concrete SaldoSwe of Saldo = CatSwe [N,A,V,Adv,Prep,PN] ** open ParadigmsSwe, Prelude in { -- to deal with incomplete paradigms --- the values could be in special categories to avoid overgeneration oper mkVDep : Str -> V = \v -> case v of { x + "as" => depV (mkV (x + "a")) ; x + "es" => depV (mkV (x + "er")) ; x + "s" => depV (mkV (x + "er")) ; _ => Predef.error (v ++ "not for mkVDep") } ; mkVIntr : (_,_,_,_,_ : Str) -> V = \i,_,_,p,pt -> mkV i p pt ; --- mkAUtr : (_,_,_,_ : Str) -> A = \u,p,c,s -> mkA u u p c s ; --- mkAComp : (_,_,_ : Str) -> A = \u,n,p -> compoundA (mkA u n) ; --- mkPNDef : Str -> PN = \s -> case s of { _ + "n" => mkPN s utrum ; _ => mkPN s neutrum } ; mkPNIndef : Str -> PN = \s -> mkPN s neutrum ; --- mkNSg : (_,_ : Str) -> N = \i,d -> case d of { _ + "n" => mkN i utrum ; --- _ => mkN i neutrum --- } ; mkNPl : (_,_ : Str) -> N = \i,d -> case i of { s + "or" => mkN (s + "a") ; --- s + ("ar"|"er") => mkN s i ; --- s + "en" => mkN (s + "e") i ; --- _ => mkN i i --- } ;