incomplete resource Overload = open Grammar in { oper pred = overload { pred : NP -> V -> Cl = \v,np -> PredVP np (UseV v) ; pred : NP -> V2 -> NP -> Cl = \v,np,ob -> PredVP np (ComplV2 v ob) ; pred : NP -> V3 -> NP -> NP -> Cl = \v,np,ob,ob2 -> PredVP np (ComplV3 v ob ob2) ; pred : NP -> A -> Cl = \a,np -> PredVP np (UseComp (CompAP (PositA a))) } ; mod = overload { mod : A -> N -> CN = \a,n -> AdjCN (PositA a) (UseN n) ; mod : AP -> N -> CN = \a,n -> AdjCN a (UseN n) ; mod : AP -> CN -> CN = \a,n -> AdjCN a n ; mod : AdA -> A -> AP = \m,a -> AdAP m (PositA a) ; mod : Quant -> N -> NP = \q,n -> DetCN (DetSg (SgQuant q) NoOrd) (UseN n) ; mod : Quant -> CN -> NP = \q,n -> DetCN (DetSg (SgQuant q) NoOrd) n ; mod : Predet -> N -> NP = \q,n -> PredetNP q (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN n)) ; mod : Num -> N -> NP = \nu,n -> DetCN (DetPl (PlQuant IndefArt) nu NoOrd) (UseN n) } ; coord = overload { coord : Conj -> Adv -> Adv -> Adv = \c,x,y -> ConjAdv c (BaseAdv x y) ; coord : Conj -> AP -> AP -> AP = \c,x,y -> ConjAP c (BaseAP x y) ; coord : Conj -> NP -> NP -> NP = \c,x,y -> ConjNP c (BaseNP x y) ; coord : Conj -> S -> S -> S = \c,x,y -> ConjS c (BaseS x y) ; coord : DConj -> Adv -> Adv -> Adv = \c,x,y -> DConjAdv c (BaseAdv x y) ; coord : DConj -> AP -> AP -> AP = \c,x,y -> DConjAP c (BaseAP x y) ; coord : DConj -> NP -> NP -> NP = \c,x,y -> DConjNP c (BaseNP x y) ; coord : DConj -> S -> S -> S = \c,x,y -> DConjS c (BaseS x y) ; coord : Conj -> ListAdv -> Adv = \c,xy -> ConjAdv c xy ; coord : Conj -> ListAP -> AP = \c,xy -> ConjAP c xy ; coord : Conj -> ListNP -> NP = \c,xy -> ConjNP c xy ; coord : Conj -> ListS -> S = \c,xy -> ConjS c xy ; coord : DConj -> ListAdv -> Adv = \c,xy -> DConjAdv c xy ; coord : DConj -> ListAP -> AP = \c,xy -> DConjAP c xy ; coord : DConj -> ListNP -> NP = \c,xy -> DConjNP c xy ; coord : DConj -> ListS -> S = \c,xy -> DConjS c xy } ; mkCN = overload { mkCN : N -> CN = UseN ; mkCN : A -> N -> CN = \a,n -> AdjCN (PositA a) (UseN n) ; mkCN : AP -> N -> CN = \a,n -> AdjCN a (UseN n) ; mkCN : AP -> CN -> CN = \a,n -> AdjCN a n ; } ; mkNP = overload { mkNP : NP = this_NP ; mkNP : Pron -> NP = UsePron ; mkNP : PN -> NP = UsePN ; mkNP : Quant -> N -> NP = \q,n -> DetCN (DetSg (SgQuant q) NoOrd) (UseN n) ; mkNP : Predet -> N -> NP = \q,n -> PredetNP q (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN n)) } ; }