resource MiniParadigmsEng = open MiniGrammarEng, MiniResEng in { oper mkN = overload { mkN : Str -> Noun -- predictable noun, e.g. car-cars, boy-boys, fly-flies, bush-bushes = \n -> lin N (smartNoun n) ; mkN : Str -> Str -> Noun -- irregular noun, e.g. man-men = \sg,pl -> lin N (mkNoun sg pl) ; } ; mkPN : Str -> PN = \s -> lin PN {s = s} ; mkA : Str -> A = \s -> lin A {s = s} ; mkV = overload { mkV : (inf : Str) -> V -- predictable verb, e.g. play-plays, cry-cries, wash-washes = \s -> lin V (smartVerb s) ; mkV : (inf,pres,part : Str) -> V -- irregular verb, e.g. drink-drank-drunk = \inf,pres,part -> lin V (irregVerb inf pres part) ; } ; mkV2 = overload { mkV2 : Str -> V2 -- predictable verb with direct object, e.g. "wash" = \s -> lin V2 (smartVerb s ** {c = []}) ; mkV2 : Str -> Str -> V2 -- predictable verb with preposition, e.g. "wait - for" = \s,p -> lin V2 (smartVerb s ** {c = p}) ; mkV2 : V -> V2 -- any verb with direct object, e.g. "drink" = \v -> lin V2 (v ** {c = []}) ; mkV2 : V -> Str -> V2 -- any verb with preposition = \v,p -> lin V2 (v ** {c = p}) ; } ; mkVS : V -> VS = \v -> lin VS v ; mkAdv : Str -> Adv = \s -> lin Adv {s = s} ; mkPrep : Str -> Prep = \s -> lin Prep {s = s} ; }