--# -path=.:../abstract:../common:../prelude

concrete SymbolZul of Symbol = CatZul ** open Prelude, ResZul in {

-- lin
--   SymbPN i = {s = addGenitiveS i.s ; g = Neutr} ;
--   IntPN i  = {s = addGenitiveS i.s ; g = Neutr} ;
--   FloatPN i = {s = addGenitiveS i.s ; g = Neutr} ;
--   NumPN i = {s = i.s ! False ; g = Neutr} ;
--   CNIntNP cn i = {
--     s = \\c => cn.s ! Sg ! Nom ++ (addGenitiveS i.s) ! npcase2case c ;
--     a = agrgP3 Sg cn.g
--     } ;
--   CNSymbNP det cn xs = {
--     s = \\c => det.s ++ cn.s ! det.n ! Nom ++ (addGenitiveS xs.s) ! npcase2case c ;
--     a = agrgP3 det.n cn.g
--     } ;
--   CNNumNP cn i = {
--     s = \\c => cn.s ! Sg ! Nom ++ i.s ! False ! npcase2case c ;
--     a = agrgP3 Sg cn.g
--     } ;
--
--   SymbS sy = sy ;
--
--   SymbNum sy = { s,sp = \\_ => addGenitiveS sy.s ; n = Pl ; hasCard = True } ;
--   SymbOrd sy = { s    = \\c => sy.s ++ (regGenitiveS "th")!c} ;
--
lincat

  Symb = { s : Str } ;
  -- [Symb] = SS ;

lin
  MkSymb s = s ;

--   BaseSymb = infixSS "and" ;
--   ConsSymb = infixSS frontComma ;
--
-- oper
--     -- Note: this results in a space before 's, but there's
--     -- not mauch we can do about that.
--     addGenitiveS : Str -> Case => Str = \s ->
--       table { Gen => s ++ BIND ++ "'s"; _ => s } ;

}
