concrete RelativeGre of Relative = CatGre ** open Prelude, ResGre in { flags coding= utf8; lin RelCl cl = { s = \\ag,t,a,p,_ =>"ώστε" ++ cl.s ! Main ! t ! a ! p ! Ind ; c = Nom } ; RelVP rp vp = case rp.hasAgr of { True => {s = \\ag,t,a,p,m => (predVP (rp.s ! False! complAgr ag ! Nom ) (Ag rp.a.g rp.a.n P3) vp).s ! Main !t !a! p! m ; c = Nom } ; False => {s = \\ag,t,a,p,m => (predVP (rp.s ! True! complAgr ag ! Nom) ag vp).s! Main !t! a! p! m ; c = Nom } } ; RelSlash rp slash = { s = \\ag,t,a,p,m => let aag = complAgr ag ; agr = Ag rp.a.g rp.a.n P3 ; in slash.c2.s ++ rp.s ! False ! aag ! slash.c2.c ++ slash.s ! aag ! Main ! t ! a ! p ! m ++ slash.n3 ! agr ; c = Acc } ; FunRP p np rp = { s = \\_,a,c => (np.s ! c).comp ++ p.s ++ rp.s ! False ! a ! p.c ; a = complAgr np.a ; hasAgr = True } ; IdRP = { s = relPron ; a = {g = Masc ; n = Sg} ; hasAgr = False } ; }