concrete FragmentNumber of FragmentAbstract = open FragmentResource in { flags startcat= S; lincat N = { s : Num => Str }; V = { s : Num => Str }; VP = { s : Num => Str }; D = { s : Str; n : Num }; NP = { s : Str; n : Num }; lin s_p x y = { s = x.s ++ y.s!x.n }; np_d x y = { s = x.s ++ y.s!x.n; n = x.n }; np_p x = { s = x.s!Pl; n = Pl }; vp_t x y = { s = table { z => x.s!z ++ y.s } }; d_a = { s = "a"; n = Sg }; d_m = { s = "many"; n = Pl }; n_c = { s = table { Sg => "lion"; Pl => "lions" } }; n_f = { s = table { _ => "fish" } }; v_e = { s = table { Sg => "eats" ; Pl => "eat" } }; v_h = { s = table { Sg => "hunts" ; Pl => "hunt" } }; }