concrete SymbolEng of Symbol = CatEng ** open Prelude, ResEng in { lin SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c NumPN i = {s = \\c => i.s ; g = Neutr} ; --- c CNIntNP cn i = { s = \\c => (cn.s ! Sg ! Nom ++ i.s) ; a = agrgP3 Sg cn.g } ; CNSymbNP det cn xs = { s = \\c => det.s ++ cn.s ! det.n ! c ++ xs.s ; a = agrgP3 det.n cn.g } ; CNNumNP cn i = { s = \\c => (cn.s ! Sg ! Nom ++ i.s) ; a = agrgP3 Sg cn.g } ; SymbS sy = sy ; SymbNum sy = {s = sy.s ; n = Pl ; hasCard = True} ; SymbOrd sy = {s = sy.s ++ "th"} ; lincat Symb, [Symb] = SS ; lin MkSymb s = s ; BaseSymb = infixSS "and" ; ConsSymb = infixSS "," ; }