Vowel hiatus #
Two adjacent vowels — a hiatus — are cross-linguistically dispreferred, and languages repair the configuration, most often at morpheme junctures, by eliding one of the two vowels ([Cas97]'s question: which one goes?), epenthesizing a consonant between them, or fusing them ([Cas11b]). This file defines the configuration and its elision and epenthesis repairs.
Like OCP.IsClean, Hiatus.Free is a thin layer over List.IsChain — but
over co-vowelhood rather than identity, and string-adjacent rather than
tier-adjacent, so neither constraint instantiates the other and the repairs
differ (elision and epenthesis here; fusion and antigemination there).
Main definitions #
Hiatus.Free/Hiatus.count— no vowel–vowel adjacency; the number of vowel–vowel adjacencies.Hiatus.Juncture— hiatus at a morpheme boundary: a vowel-final stem meets a vowel-initial suffix.Juncture.epenthesize,Juncture.elideV1,Juncture.elideV2— the repairs, applicable only to a genuine hiatus configuration.
Main results #
Hiatus.free_iff_count_eq_zero— the ban and the count agree.Juncture.elideV2_eq_stem_iff— V2 elision merges the suffixed form with the bare stem exactly for monosegmental suffixes.
A form is hiatus-free when no two adjacent segments are both vowels.
Equations
- Phonology.Hiatus.Free fm = List.IsChain (fun (a b : Phonology.Segment) => ¬(a.IsVowel ∧ b.IsVowel)) fm
Instances For
The number of vowel–vowel adjacencies in a form — the violation count of the markedness constraint *Hiatus.
Equations
- Phonology.Hiatus.count fm = List.countP (fun (p : Phonology.Segment × Phonology.Segment) => decide (p.1.IsVowel ∧ p.2.IsVowel)) (fm.zip fm.tail)
Instances For
The categorical ban and the violation count agree.
Hiatus at a morpheme juncture #
Hiatus at a morpheme boundary ([Cas97]'s hiatus context): a
vowel-final stem stemBody ++ [v1] meets a vowel-initial suffix
v2 :: suffixBody. The repairs below resolve the v1–v2 adjacency, and
apply only here — a consonant-final stem or consonant-initial suffix never
presents the configuration.
- stemBody : List Segment
The stem minus its final vowel.
- v1 : Segment
The stem-final vowel.
- v2 : Segment
The suffix-initial vowel.
- suffixBody : List Segment
The suffix minus its initial vowel.
The stem-final segment is a vowel.
The suffix-initial segment is a vowel.
Instances For
Consonant epenthesis: insert c between the two vowels.
Equations
- j.epenthesize c = j.stemBody ++ j.v1 :: c :: j.v2 :: j.suffixBody
Instances For
The faithful concatenation is longer than the bare stem.
The epenthesized form is longer than the bare stem.
V2 elision merges the suffixed form with the bare stem exactly when the suffix is monosegmental — the categorical core of suffix-length-conditioned hiatus resolution.