Tense-aspect typology — substrate types and WALS data #
@cite{wals-2013} (Chs 65–69, 78) @cite{comrie-1985} @cite{dahl-velupillai-2013} @cite{de-haan-2013} @cite{dryer-haspelmath-2013} @cite{bybee-perkins-pagliuca-1994}
Type-level enums + per-language profile struct for tense-aspect-mood- evidentiality systems across @cite{wals-2013} chapters 65–69 and 78, plus WALS distribution data and the principal cross-linguistic generalizations.
Schema #
AspectMarking(Ch 65): grammatical perfective/imperfective markingPastMarking(Ch 66): past tense marking + remoteness distinctionsFutureMarking(Ch 67): inflectional future tensePerfectType(Ch 68): perfect category and its diachronic sourceTAAffixPosition(Ch 69): position of tense-aspect affixesEvidentialityCoding(Ch 78): coding strategy for evidentialityTAProfile: per-language bundle (Chs 65–69 + optional Ch 78)
Per-language data lives in Fragments/{Lang}/TenseAspect.lean.
Note on EvidentialityCoding #
A parallel enum EvidentialCoding lives in Linglib/Typology/Modality.lean
(promoted there during the Modality/Typology dissolution). The two enums
have overlapping values; consumers requiring full WALS Ch 78 round-tripping
should use Typology.Modality.EvidentialCoding.
WALS Ch 65: whether the perfective/imperfective distinction is grammaticalized. "Grammatical marking" includes both morphological and periphrastic constructions.
- grammatical : AspectMarking
Grammatical perfective/imperfective marking present.
- none : AspectMarking
No grammatical marking.
Instances For
Equations
- Typology.instDecidableEqAspectMarking x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprAspectMarking = { reprPrec := Typology.instReprAspectMarking.repr }
WALS Ch 66: past tense marking and remoteness distinctions. Past imperfectives (Armenian-style, restricted to imperfective contexts) count as past marking.
- marked : PastMarking
Past/non-past marked, no remoteness distinctions.
- markedRemoteness2_3 : PastMarking
Past/non-past marked + 2–3 degrees of remoteness.
- markedRemoteness4plus : PastMarking
Past/non-past marked + 4+ degrees of remoteness.
- none : PastMarking
No grammatical past/non-past distinction.
Instances For
Equations
- Typology.instDecidableEqPastMarking x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.instReprPastMarking = { reprPrec := Typology.instReprPastMarking.repr }
Equations
- One or more equations did not get rendered due to their size.
- Typology.instReprPastMarking.repr Typology.PastMarking.none prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Typology.PastMarking.none")).group prec✝
Instances For
Whether a language has any past tense marking.
Equations
Instances For
WALS Ch 67: inflectional future marking. Only inflectional marking is counted (not periphrastic will + V). Irrealis markers that obligatorily encode future reference are included.
- inflectional : FutureMarking
Inflectional future/nonfuture distinction.
- none : FutureMarking
No inflectional future.
Instances For
Equations
- Typology.instDecidableEqFutureMarking x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprFutureMarking = { reprPrec := Typology.instReprFutureMarking.repr }
WALS Ch 68: perfect category and its diachronic source. A form counts as a perfect only if it has both resultative and experiential uses (not a general past, not a dedicated resultative).
- fromPossessive : PerfectType
'have'-perfect from possessive construction (almost exclusively western Europe).
- fromFinishAlready : PerfectType
Perfect from 'finish' or 'already' (concentrated in SE Asia and West Africa).
- other : PerfectType
Other perfect (dedicated resultative source, or undetermined).
- none : PerfectType
No perfect category.
Instances For
Equations
- Typology.instDecidableEqPerfectType x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
- Typology.instReprPerfectType.repr Typology.PerfectType.none prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Typology.PerfectType.none")).group prec✝
Instances For
Equations
- Typology.instReprPerfectType = { reprPrec := Typology.instReprPerfectType.repr }
Whether a language has any perfect category.
Equations
Instances For
WALS Ch 69: primary morphological strategy for tense-aspect marking.
Mixed strategies with no dominant type are coded as mixed; infixes and
stem changes are subsumed under prefix/suffix when localized at edges.
- prefixing : TAAffixPosition
Tense-aspect prefixes.
- suffixing : TAAffixPosition
Tense-aspect suffixes.
- tonal : TAAffixPosition
Tonal tense-aspect (almost exclusively African).
- mixed : TAAffixPosition
Mixed strategies, none primary.
- noInflection : TAAffixPosition
No tense-aspect inflection.
Instances For
Equations
- Typology.instDecidableEqTAAffixPosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprTAAffixPosition = { reprPrec := Typology.instReprTAAffixPosition.repr }
Whether a language has any tense-aspect affixation.
Equations
Instances For
WALS Ch 78: how evidentiality is coded. "Evidentiality" means grammaticalized marking of information source.
- none : EvidentialityCoding
No grammatical evidentiality.
- partOfTense : EvidentialityCoding
Evidentiality is part of the tense paradigm (e.g., Turkish -miş).
- verbalAffix : EvidentialityCoding
Verbal affix.
- clitic : EvidentialityCoding
Clitic.
- particle : EvidentialityCoding
Particle.
- other : EvidentialityCoding
Other strategy.
Instances For
Equations
- Typology.instDecidableEqEvidentialityCoding x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether a language has any grammatical evidentiality.
Equations
- Typology.EvidentialityCoding.none.hasEvidentiality = false
- x✝.hasEvidentiality = true
Instances For
A language's tense-aspect-mood-evidentiality profile across @cite{wals-2013} Chs 65–69 (mandatory) and Ch 78 (optional).
- language : String
- iso : String
- family : String
- aspect : AspectMarking
Ch 65: perfective/imperfective aspect.
- past : PastMarking
Ch 66: past tense marking.
- future : FutureMarking
Ch 67: inflectional future.
- perfect : PerfectType
Ch 68: perfect category.
- affixPosition : TAAffixPosition
Ch 69: tense-aspect affix position.
- evidentialityCoding : Option EvidentialityCoding
Ch 78: evidentiality coding (none if not in WALS Ch 78 sample).
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprTAProfile = { reprPrec := Typology.instReprTAProfile.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether a profile has any tense or aspect marking.
Equations
- p.hasTenseOrAspect = (p.aspect == Typology.AspectMarking.grammatical || p.past.hasMarking || p.future == Typology.FutureMarking.inflectional)
Instances For
Whether a profile lacks all three major T/A gram types (the SE Asian isolating signature).
Equations
- p.lacksMajorTAGrams = (p.aspect == Typology.AspectMarking.none && p.past == Typology.PastMarking.none && p.future == Typology.FutureMarking.none)
Instances For
Equations
Instances For
Equations
- Typology.fromWALS66A Data.WALS.F66A.PastTenseType.presentNoRemotenessDistinctions = Typology.PastMarking.marked
- Typology.fromWALS66A Data.WALS.F66A.PastTenseType.present23RemotenessDistinctions = Typology.PastMarking.markedRemoteness2_3
- Typology.fromWALS66A Data.WALS.F66A.PastTenseType.present4OrMoreRemotenessDistinctions = Typology.PastMarking.markedRemoteness4plus
- Typology.fromWALS66A Data.WALS.F66A.PastTenseType.noPastTense = Typology.PastMarking.none
Instances For
Equations
Instances For
Equations
- Typology.fromWALS68A Data.WALS.F68A.PerfectType.fromPossessive = Typology.PerfectType.fromPossessive
- Typology.fromWALS68A Data.WALS.F68A.PerfectType.fromFinishAlready = Typology.PerfectType.fromFinishAlready
- Typology.fromWALS68A Data.WALS.F68A.PerfectType.otherPerfect = Typology.PerfectType.other
- Typology.fromWALS68A Data.WALS.F68A.PerfectType.noPerfect = Typology.PerfectType.none
Instances For
Equations
- Typology.fromWALS69A Data.WALS.F69A.TenseAspectAffixPosition.tenseAspectPrefixes = Typology.TAAffixPosition.prefixing
- Typology.fromWALS69A Data.WALS.F69A.TenseAspectAffixPosition.tenseAspectSuffixes = Typology.TAAffixPosition.suffixing
- Typology.fromWALS69A Data.WALS.F69A.TenseAspectAffixPosition.tenseAspectTone = Typology.TAAffixPosition.tonal
- Typology.fromWALS69A Data.WALS.F69A.TenseAspectAffixPosition.mixedType = Typology.TAAffixPosition.mixed
- Typology.fromWALS69A Data.WALS.F69A.TenseAspectAffixPosition.noTenseAspectInflection = Typology.TAAffixPosition.noInflection
Instances For
WALS Ch 65 distribution (n = 222).
- grammatical : Nat
- noMarking : Nat
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprCh65Counts = { reprPrec := Typology.instReprCh65Counts.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- c.total = c.grammatical + c.noMarking
Instances For
WALS Ch 65 counts (222 languages).
Equations
- Typology.walsCh65 = { grammatical := 101, noMarking := 121 }
Instances For
WALS Ch 66 distribution (n = 222).
- markedNoRemoteness : Nat
- markedRemoteness2_3 : Nat
- markedRemoteness4plus : Nat
- noMarking : Nat
Instances For
Equations
- Typology.instReprCh66Counts = { reprPrec := Typology.instReprCh66Counts.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- c.total = c.markedNoRemoteness + c.markedRemoteness2_3 + c.markedRemoteness4plus + c.noMarking
Instances For
Equations
Instances For
WALS Ch 66 counts (222 languages).
Equations
- Typology.walsCh66 = { markedNoRemoteness := 94, markedRemoteness2_3 := 38, markedRemoteness4plus := 2, noMarking := 88 }
Instances For
WALS Ch 67 distribution (n = 222).
- inflectional : Nat
- noInflectional : Nat
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprCh67Counts = { reprPrec := Typology.instReprCh67Counts.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- c.total = c.inflectional + c.noInflectional
Instances For
WALS Ch 67 counts (222 languages).
Equations
- Typology.walsCh67 = { inflectional := 110, noInflectional := 112 }
Instances For
WALS Ch 68 distribution (n = 222).
- fromPossessive : Nat
- fromFinishAlready : Nat
- otherPerfect : Nat
- noPerfect : Nat
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Typology.instReprCh68Counts = { reprPrec := Typology.instReprCh68Counts.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- c.total = c.fromPossessive + c.fromFinishAlready + c.otherPerfect + c.noPerfect
Instances For
WALS Ch 68 counts (222 languages).
Equations
- Typology.walsCh68 = { fromPossessive := 7, fromFinishAlready := 21, otherPerfect := 80, noPerfect := 114 }
Instances For
WALS Ch 69 distribution (n = 1131).
- prefixing : Nat
- suffixing : Nat
- tonal : Nat
- mixed : Nat
- noInflection : Nat
Instances For
Equations
- Typology.instReprCh69Counts = { reprPrec := Typology.instReprCh69Counts.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
WALS Ch 69 counts (1131 languages).
Equations
- Typology.walsCh69 = { prefixing := 153, suffixing := 667, tonal := 13, mixed := 24, noInflection := 274 }
Instances For
A majority of @cite{wals-2013} Ch 66 languages have past marking (134 of 222 = 60%).
Tone as a primary T/A strategy is rare (~13/1131 ≈ 1%), almost exclusively in Africa.
The future-tense split is approximately even (110 vs 112). Neither inflectional future nor its absence is a strong majority.
'have'-perfects are extremely rare cross-linguistically (only 7/222), restricted almost exclusively to western Europe.
'finish'/'already' perfects are more common than 'have'-perfects (21 vs 7), concentrated in SE Asia and West Africa.
Most languages lack a distinct perfect category entirely.
Most past-marking languages make no remoteness distinctions (94 of 134). Languages with 4+ degrees of remoteness are extremely rare (only 2; Yagua being the richest with 5 degrees).
Extreme remoteness (4+ degrees) is attested in only 2 languages worldwide in the @cite{wals-2013} sample.