instance DiffKis of DiffBantu = open CommonBantu, Prelude in { param GenderKis = G1|G2|G3|G4|G5|G6|G7|G8|G9|G10|G11|G12|G13 ; oper Gender = GenderKis ; firstGender = G1 ; secondGender = G2 ; conjThan = "kuliko" ; conjThat = "kuvita" ; conjGender : Gender -> Gender -> Gender = \m,n -> case m of { G1 => n ; _ => G2 } ; reflPron :Agr => Str = \\ag=> case of { < Ag G1 Sg P1 > => "mimi" ; < Ag G1 Sg P2 > => "wewe" ; < Ag G1 Sg P3 > => "yeye" ; < Ag _ Sg P3 > => "" ; < Ag G1 Pl P1 > => "sisi" ; < Ag G1 Pl P2 > => "nyinyi" ; < Ag G1 Pl P3 > => "wao" ; < Ag _ _ _ > => "" }; possess_Prepof,part_Prepof:Number => Gender => Str = table Number { Sg => table { G3=> "la" ; G4 => "cha" ; G5 => "ya" ; G11 => "pa"; G12 => "kwa"; G13 => "mwa"; G1 |G2|G6|G7 |G8 => "wa" ; _ => ""} ; Pl => table { G1 => "wa" ; G4 => "vya" ; G5|G6 => "za" ; G2|G3 |G8 |G9 |G10 => "ya" ; _ => ""} } ; superVery ="vyu"; Cardoneprefix : Gender -> Str = \g -> case of { => "ki" ; | | | => "m" ; _ => "" } ; Cardtwoprefix : Gender -> Str = \g -> case of { => "waw" ; => "miw" ; | => "maw" ; => "viw" ; _=> "mb" } ; Allpredetprefix : Gender -> Str = \g -> case of { => "vy" ; => "p"; => "k"; => "m"; | => "z" ; | => "w" ; | | | | => "y" } ; PrefixPlNom : Gender -> Str = \g -> case of { => "wa" ; => "mi" ; => "ma" ; => "vi" ; _ => [] } ; mkprefix,Ordprefix : Gender -> Str = \g -> case of { => "la" ; => "cha" ; | | => "ya"; | | => "pa"; | | | | => "wa" } ; Cardprefix : Gender -> Str = \g -> case of { => "wa" ; => "mi" ; | => "ma" ; => "vi" ; _ => "" } ; Mostpredetprefix : Gender -> Str = \g -> case of { => "we" ; => "mi" ; => "nyi" ; => "pe" ; => "kwi" ; => "vi" ; | => "nye" ; | => "mwi" ; | | => "me" } ; ConsonantAdjprefix: Gender -> Number -> Str = \n,g -> case of { => "m" ; => "wa" ; => "m" ; => "mi" ; => "ma" ; => "ki" ; => "vi" ; => "m" ; => "m" ; => "m" ; => "ma" ; => "ma" ; => "pa" ; => "ku" ; => "m" ; <_,_> => "" } ; VowelAdjprefix: Gender -> Number -> Str = \n,g -> case of { => "mw" ; => "w" ; => "mw" ; => "my" ; => "j" ; => "m" ; => "ch" ; => "vy" ; => "ny"; => "ny"; => "mw" ; => "y" ; => "mw" ; => "mw" ; => "mw" ; => "m" ; => "m" ; => "ny" ; => "p" ; => "kw" ; => "mu" ; <_,_> => "" } ; VoweliAdjprefix: Gender -> Number -> Str = \n,g -> case of { => "mwi" ; => "we" ; => "mwi" ; => "mi" ; => "ji" ; => "me" ; => "ki" ; => "vi" ; => "zi"; => "zi"; => "mwi" ; => "zi" ; => "mwi" ; => "mwi" ; => "mwi" ; => "me" ; => "me" ; => "zi" ; => "pe" ; => "kwi" ; => "mwi" ; <_,_> => "" } ; Adjpprefix : Gender -> Number -> Str = \n,g -> case of { => "wi" ; => "me" ; => "wi" ; => "yi" ; => "yi" ; => "me" ; => "ki" ; => "syi" ; => "ke" ; => "twi" ; => "ve" ; => "kwi" ; => "yi" ; => "syi" ; <_,_> => "" } ; ProunSgprefix : Gender -> Str = \g -> case of { => "l" ; => "ch" ; => "p"; => "kw"; => "mw"; | | => "y"; _ => "w" } ; ProunPlprefix : Gender -> Str = \g -> case of { => "vy" ; => "p"; => "kw"; => "mw"; | => "z" ; | => "w" ; | | | | => "y" } ; dfltGender : Gender = G1 ; dflt2Gender : Gender = G2 ; param VForm = VInf | VPres Gender Number Person | VPast Gender Number Person | VFut Gender Number Person -- | notpresent ; DForm = unit | teen | ten |hund ; AForm = AAdj Gender Number; }