incomplete concrete OverGrammarI of OverGrammar = 
-- Structural, Numeral, Conjunction[ListS,ListNP,ListAP,ListAdv] ** 
  open Grammar in {
lincat ImpForm = {p : PImpForm ; s : Str} ;
lincat Punct = {p : PPunct ; s : Str} ;
param PImpForm = IFSg | IFPl | IFPol ;
param PPunct = PFullStop | PExclMark | PQuestMark ;
oper  mkUttImp : PImpForm -> Str -> Pol -> Imp -> Utt = \f,s,p,i -> {s = s ++ (case f of {
  IFSg  => UttImpSg p i ; IFPl  => UttImpPl p i ; IFPol => UttImpPol p i}).s ; lock_Utt = <>} ;
oper  mkPhrPunct : Phr -> PPunct -> Str -> Text -> Text = \p,f,s,t -> {s = s ++ (case f of {
  PFullStop => TFullStop p t ; PExclMark => TExclMark p t ; PQuestMark => TQuestMark p t}).s ;
  lock_Text = <>} ;
lin ovrld0_mkAP = PositA ;
lin ovrld1_mkAP = ComparA ;
lin ovrld2_mkAP = ComplA2 ;
lin ovrld3_mkAP = ReflA2 ;
lin ovrld4_mkAP = \ap,s -> SentAP ap (EmbedS s) ;
lin ovrld5_mkAP = \ap,s -> SentAP ap (EmbedQS s) ;
lin ovrld6_mkAP = \ap,s -> SentAP ap (EmbedVP s) ;
lin ovrld7_mkAP = \x,y -> AdAP x (PositA y) ;
lin ovrld8_mkAP = AdAP ;
lin ovrld9_mkAP = \c,x,y -> ConjAP c (BaseAP x y) ;
lin ovrld10_mkAP = \c,x,y -> DConjAP c (BaseAP x y) ;
lin ovrld11_mkAP = \c,xy -> ConjAP c xy ;
lin ovrld12_mkAP = \c,xy -> DConjAP c xy ;
lin ovrld13_mkAdv = PositAdvAdj ;
lin ovrld14_mkAdv = PrepNP ;
lin ovrld15_mkAdv = ComparAdvAdj ;
lin ovrld16_mkAdv = ComparAdvAdjS ;
lin ovrld17_mkAdv = AdAdv ;
lin ovrld18_mkAdv = SubjS ;
lin ovrld19_mkAdv = \c,x,y -> ConjAdv c (BaseAdv x y) ;
lin ovrld20_mkAdv = \c,x,y -> DConjAdv c (BaseAdv x y) ;
lin ovrld21_mkAdv = \c,xy -> ConjAdv c xy ;
lin ovrld22_mkAdv = \c,xy -> DConjAdv c xy ;
lin ovrld23_mkCl = PredVP ;
lin ovrld24_mkCl = \s,v -> PredVP s (UseV v) ;
lin ovrld25_mkCl = \s,v,o -> PredVP s (ComplV2 v o) ;
lin ovrld26_mkCl = \s,v,o,i -> PredVP s (ComplV3 v o i) ;
lin ovrld27_mkCl = \s,v,vp -> PredVP s (ComplVV v vp) ;
lin ovrld28_mkCl = \s,v,p -> PredVP s (ComplVS v p) ;
lin ovrld29_mkCl = \s,v,q -> PredVP s (ComplVQ v q) ;
lin ovrld30_mkCl = \s,v,q -> PredVP s (ComplVA v q) ;
lin ovrld31_mkCl = \s,v,n,q -> PredVP s (ComplV2A v n q) ;
lin ovrld32_mkCl = ImpersCl ;
lin ovrld33_mkCl = CleftNP ;
lin ovrld34_mkCl = CleftAdv ;
lin ovrld35_mkCl = \y -> ExistNP (DetCN (DetSg (IndefArt) NoOrd) (UseN y)) ;
lin ovrld36_mkCl = \y -> ExistNP (DetCN (DetSg (IndefArt) NoOrd) y) ;
lin ovrld37_mkCl = ExistNP ;
lin ovrld38_mkCl = \x,y -> PredVP x (UseComp (CompAP y)) ;
lin ovrld39_mkCl = \x,y -> PredVP x (UseComp (CompAP (PositA y))) ;
lin ovrld40_mkCl = \x,y,z -> PredVP x (UseComp (CompAP (ComparA y z))) ;
lin ovrld41_mkCl = \x,y,z -> PredVP x (UseComp (CompAP (ComplA2 y z))) ;
lin ovrld42_mkCl = \x,y -> PredVP x (UseComp (CompNP y)) ;
lin ovrld43_mkCl = \x,y -> PredVP x (UseComp (CompNP (DetCN (DetSg (IndefArt) NoOrd) y))) ;
lin ovrld44_mkCl = \x,y -> PredVP x (UseComp (CompNP (DetCN (DetSg (IndefArt) NoOrd) (UseN y)))) ;
lin ovrld45_mkCl = \x,y -> PredVP x (UseComp (CompAdv y)) ;
lin ovrld46_mkCl = \v -> ImpersCl (UseV v) ;
lin ovrld47_genericCl = GenericCl ;
lin ovrld48_mkNP = DetCN ;
lin ovrld49_mkNP = \d,n -> DetCN d (UseN n) ;
lin ovrld50_mkNP = \d,n -> DetCN (DetPl (IndefArt) d NoOrd) n ;
lin ovrld51_mkNP = \d,n -> DetCN (DetPl (IndefArt) d NoOrd) (UseN n) ;
lin ovrld52_mkNP = \q,n -> DetCN (DetSg q NoOrd) n ;
lin ovrld53_mkNP = \q,n -> DetCN (DetSg q NoOrd) (UseN n) ;
--lin ovrld54_mkNP = \q,n -> DetCN (DetPl q NoNum NoOrd) n ;
--lin ovrld55_mkNP = \q,n -> DetCN (DetPl q NoNum NoOrd) (UseN n) ;
lin ovrld56_mkNP = \p,n -> DetCN (DetSg ((PossPron p)) NoOrd) n ;
lin ovrld57_mkNP = \p,n -> DetCN (DetSg ((PossPron p)) NoOrd) (UseN n) ;
lin ovrld58_mkNP = \d,n -> DetCN (DetPl (IndefArt) (NumNumeral d) NoOrd) n ;
lin ovrld59_mkNP = \d,n -> DetCN (DetPl (IndefArt) (NumNumeral d) NoOrd) (UseN n) ;
lin ovrld60_mkNP = \d,n -> DetCN (DetPl (IndefArt) (NumInt d) NoOrd) n ;
lin ovrld61_mkNP = \d,n -> DetCN (DetPl (IndefArt) (NumInt d) NoOrd) (UseN n) ;
lin ovrld62_mkNP = UsePN ;
lin ovrld63_mkNP = UsePron ;
lin ovrld64_mkNP = PredetNP ;
lin ovrld65_mkNP = PPartNP ;
lin ovrld66_mkNP = AdvNP ;
lin ovrld67_mkNP = \c,x,y -> ConjNP c (BaseNP x y) ;
lin ovrld68_mkNP = \c,x,y -> DConjNP c (BaseNP x y) ;
lin ovrld69_mkNP = \c,xy -> ConjNP c xy ;
lin ovrld70_mkNP = \c,xy -> DConjNP c xy ;
lin ovrld71_mkDet = DetSg ;
lin ovrld72_mkDet = \q -> DetSg q NoOrd ;
lin ovrld73_mkDet = DetPl ;
----lin ovrld74_mkDet = \q -> DetPl q NoNum NoOrd ;
----lin ovrld75_mkDet = \q -> DetSg (q) NoOrd ;
lin ovrld76_mkDet = \q,nu -> DetPl (q) nu NoOrd ;
lin ovrld77_mkDet = \n -> DetPl (IndefArt) n NoOrd ;
lin ovrld78_mkDet = \n -> DetPl (IndefArt) (NumInt n) NoOrd ;
lin ovrld79_mkDet = \d -> DetPl (IndefArt) (NumNumeral d) NoOrd ;
lin ovrld80_mkDet = \p -> DetSg ((PossPron p)) NoOrd ;
lin ovrld81_defSgDet = DetSg (DefArt) NoOrd ;
lin ovrld82_defPlDet = DetPl (DefArt) NoNum NoOrd ;
lin ovrld83_indefSgDet = DetSg (IndefArt) NoOrd ;
lin ovrld84_indefPlDet = DetPl (IndefArt) NoNum NoOrd ;
----lin ovrld85_mkQuantSg q = q ; ----SgQuant ;
----lin ovrld86_mkQuantPl q = q ; ----PlQuant ;
lin ovrld87_defQuant = DefArt ;
lin ovrld88_indefQuant = IndefArt ;
lin ovrld89_massQuant = MassDet ;
lin ovrld90_mkNum = NumNumeral ;
lin ovrld91_mkNum = NumInt ;
lin ovrld92_mkNum = \d -> NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))) ;
lin ovrld93_mkNum = AdNum ;
lin ovrld94_noNum = NoNum ;
lin ovrld95_n1_Numeral = num (pot2as3 (pot1as2 (pot0as1 pot01))) ;
lin ovrld96_n2_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n2)))) ;
lin ovrld97_n3_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n3)))) ;
lin ovrld98_n4_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n4)))) ;
lin ovrld99_n5_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n5)))) ;
lin ovrld100_n6_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n6)))) ;
lin ovrld101_n7_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n7)))) ;
lin ovrld102_n8_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n8)))) ;
lin ovrld103_n9_Numeral = num (pot2as3 (pot1as2 (pot0as1 (pot0 n9)))) ;
lin ovrld104_n10_Numeral = num (pot2as3 (pot1as2 pot110)) ;
lin ovrld105_n20_Numeral = num (pot2as3 (pot1as2 (pot1 n2))) ;
lin ovrld106_n100_Numeral = num (pot2as3 (pot2 pot01)) ;
lin ovrld107_n1000_Numeral = num (pot3 (pot1as2 (pot0as1 pot01))) ;
lin ovrld108_mkAdN = AdnCAdv ;
lin ovrld109_mkOrd = OrdNumeral ;
lin ovrld110_mkOrd = OrdInt ;
lin ovrld111_mkOrd = \d -> OrdNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 d))))) ;
lin ovrld112_mkOrd = OrdSuperl ;
lin ovrld113_noOrd = NoOrd ;
lin ovrld114_mkCN = UseN ;
lin ovrld115_mkCN = ComplN2 ;
lin ovrld116_mkCN = \f,x -> ComplN2 (ComplN3 f x) ;
lin ovrld117_mkCN = UseN2 ;
lin ovrld118_mkCN = UseN3 ;
lin ovrld119_mkCN = AdjCN ;
lin ovrld120_mkCN = \x,y -> AdjCN x (UseN y) ;
lin ovrld121_mkCN = \x,y -> AdjCN y x ;
lin ovrld122_mkCN = \x,y -> AdjCN y (UseN x) ;
lin ovrld123_mkCN = \x,y -> AdjCN (PositA x) y ;
lin ovrld124_mkCN = \x,y -> AdjCN (PositA x) (UseN y) ;
lin ovrld125_mkCN = RelCN ;
lin ovrld126_mkCN = \x,y -> RelCN (UseN x) y ;
lin ovrld127_mkCN = AdvCN ;
lin ovrld128_mkCN = \x,y -> AdvCN (UseN x) y ;
lin ovrld129_mkCN = \cn,s -> SentCN cn (EmbedS s) ;
lin ovrld130_mkCN = \cn,s -> SentCN cn (EmbedQS s) ;
lin ovrld131_mkCN = \cn,s -> SentCN cn (EmbedVP s) ;
lin ovrld132_mkCN = ApposCN ;
lin ovrld133_mkCN = \x,y -> ApposCN (UseN x) y ;
lin ovrld134_mkPhr = PhrUtt ;
lin ovrld135_mkPhr = \u,v -> PhrUtt NoPConj u v ;
lin ovrld136_mkPhr = \u,v -> PhrUtt u v NoVoc ;
lin ovrld137_mkPhr = \u -> PhrUtt NoPConj u NoVoc ;
lin ovrld138_mkPhr = \s -> PhrUtt NoPConj (UttS s) NoVoc ;
lin ovrld139_mkPhr = \s -> PhrUtt NoPConj (UttS (UseCl Grammar.TPres ASimul PPos s)) NoVoc ;
lin ovrld140_mkPhr = \s -> PhrUtt NoPConj (UttQS s) NoVoc ;
lin ovrld141_mkPhr = \s -> PhrUtt NoPConj (UttImpSg PPos s) NoVoc ;
lin ovrld142_mkPConj = PConjConj ;
lin ovrld143_noPConj = NoPConj ;
lin ovrld144_mkVoc = VocNP ;
lin ovrld145_noVoc = NoVoc ;
lin ovrld146_positivePol = PPos ;
lin ovrld147_negativePol = PNeg ;
lin ovrld148_simultaneousAnt = ASimul ;
lin ovrld149_anteriorAnt = AAnter ; --# notpresent
lin ovrld150_presentTense = Grammar.TPres ;
lin ovrld151_pastTense = Grammar.TPast ; --# notpresent
lin ovrld152_futureTense = Grammar.TFut ; --# notpresent
lin ovrld153_conditionalTense = Grammar.TCond ; --# notpresent
lin ovrld154_singularImpForm = {p= IFSg; s= []} ;
lin ovrld155_pluralImpForm = {p= IFPl; s= []} ;
lin ovrld156_politeImpForm = {p= IFPol; s= []} ;
lin ovrld157_mkUtt = UttS ;
lin ovrld158_mkUtt = \c -> UttS (UseCl Grammar.TPres ASimul PPos c) ;
lin ovrld159_mkUtt = UttQS ;
lin ovrld160_mkUtt = \f -> mkUttImp f.p f.s ;
lin ovrld161_mkUtt = \f -> mkUttImp f.p f.s PPos ;
lin ovrld162_mkUtt = UttImpSg ;
lin ovrld163_mkUtt = UttImpSg PPos ;
lin ovrld164_mkUtt = UttIP ;
lin ovrld165_mkUtt = UttIAdv ;
lin ovrld166_mkUtt = UttNP ;
lin ovrld167_mkUtt = UttAdv ;
lin ovrld168_mkUtt = UttVP ;
lin ovrld169_lets_Utt = ImpPl1 ;
lin ovrld170_mkQCl = QuestCl ;
lin ovrld171_mkQCl = QuestVP ;
lin ovrld172_mkQCl = QuestSlash ;
lin ovrld173_mkQCl = \ip,np,v -> QuestSlash ip (SlashV2 np v) ;
lin ovrld174_mkQCl = QuestIAdv ;
lin ovrld175_mkQCl = \p,ip -> QuestIAdv (PrepIP p ip) ;
lin ovrld176_mkQCl = \a -> QuestIComp (CompIAdv a) ;
lin ovrld177_mkQCl = ExistIP ;
lin ovrld178_mkIP = IDetCN ;
lin ovrld179_mkIP = \i -> IDetCN i NoNum ;
lin ovrld180_mkIP = \i,n -> IDetCN i n NoOrd ;
lin ovrld181_mkIP = \i,n -> IDetCN i NoNum NoOrd (UseN n) ;
lin ovrld182_mkIP = AdvIP ;
lin ovrld183_mkIAdv = PrepIP ;
lin ovrld184_mkRCl = RelCl ;
lin ovrld185_mkRCl = RelVP ;
lin ovrld186_mkRCl = RelSlash ;
lin ovrld187_mkRCl = \rp,np,v2 -> RelSlash rp (SlashV2 np v2) ;
lin ovrld188_which_RP = IdRP ;
lin ovrld189_mkRP = FunRP ;
lin ovrld190_mkSlash = SlashV2 ;
lin ovrld191_mkSlash = SlashVVV2 ;
lin ovrld192_mkSlash = AdvSlash ;
lin ovrld193_mkSlash = SlashPrep ;
lin ovrld194_mkImp = ImpVP ;
lin ovrld195_mkImp = \v -> ImpVP (UseV v) ;
lin ovrld196_mkImp = \v,np -> ImpVP (ComplV2 v np) ;
lin ovrld197_mkS = UseCl Grammar.TPres ASimul PPos ;
lin ovrld198_mkS = \t -> UseCl t ASimul PPos ;
lin ovrld199_mkS = \a -> UseCl Grammar.TPres a PPos ;
lin ovrld200_mkS = \p -> UseCl Grammar.TPres ASimul p ;
lin ovrld201_mkS = \t,a -> UseCl t a PPos ;
lin ovrld202_mkS = \t,p -> UseCl t ASimul p ;
lin ovrld203_mkS = \a,p -> UseCl Grammar.TPres a p ;
lin ovrld204_mkS = UseCl ;
lin ovrld205_mkS = \c,x,y -> ConjS c (BaseS x y) ;
lin ovrld206_mkS = \c,x,y -> DConjS c (BaseS x y) ;
lin ovrld207_mkS = \c,xy -> ConjS c xy ;
lin ovrld208_mkS = \c,xy -> DConjS c xy ;
lin ovrld209_mkS = AdvS ;
lin ovrld210_mkQS = UseQCl Grammar.TPres ASimul PPos ;
lin ovrld211_mkQS = \t -> UseQCl t ASimul PPos ;
lin ovrld212_mkQS = \a -> UseQCl Grammar.TPres a PPos ;
lin ovrld213_mkQS = \p -> UseQCl Grammar.TPres ASimul p ;
lin ovrld214_mkQS = \t,a -> UseQCl t a PPos ;
lin ovrld215_mkQS = \t,p -> UseQCl t ASimul p ;
lin ovrld216_mkQS = \a,p -> UseQCl Grammar.TPres a p ;
lin ovrld217_mkQS = UseQCl ;
lin ovrld218_mkQS = \x -> UseQCl Grammar.TPres ASimul PPos (QuestCl x) ;
lin ovrld219_mkRS = UseRCl Grammar.TPres ASimul PPos ;
lin ovrld220_mkRS = \t,c -> UseRCl t ASimul PPos c ;
lin ovrld221_mkRS = \a,c -> UseRCl Grammar.TPres a PPos c ;
lin ovrld222_mkRS = \p,c -> UseRCl Grammar.TPres ASimul p c ;
lin ovrld223_mkRS = \t,a,c -> UseRCl t a PPos c ;
lin ovrld224_mkRS = \t,p,c -> UseRCl t ASimul p c ;
lin ovrld225_mkRS = \a,p,c -> UseRCl Grammar.TPres a p c ;
lin ovrld226_mkRS = UseRCl ;
lin ovrld227_emptyText = TEmpty ;
lin ovrld228_fullStopPunct = {p= PFullStop; s= []} ;
lin ovrld229_questMarkPunct = {p= PQuestMark; s= []} ;
lin ovrld230_exclMarkPunct = {p= PExclMark; s= []} ;
lin ovrld231_mkText = \p,f -> mkPhrPunct p f.p f.s ;
lin ovrld232_mkText = \p,f -> mkPhrPunct p f.p f.s TEmpty ;
lin ovrld233_mkText = \x -> TFullStop x TEmpty ;
lin ovrld234_mkText = \u -> TFullStop (PhrUtt NoPConj u NoVoc) TEmpty ;
lin ovrld235_mkText = \s -> TFullStop (PhrUtt NoPConj (UttS s) NoVoc) TEmpty ;
lin ovrld236_mkText = \c -> TFullStop (PhrUtt NoPConj (UttS (UseCl Grammar.TPres ASimul PPos c)) NoVoc) TEmpty ;
lin ovrld237_mkText = \q -> TQuestMark (PhrUtt NoPConj (UttQS q) NoVoc) TEmpty ;
lin ovrld238_mkText = \i -> TExclMark (PhrUtt NoPConj (UttImpSg PPos i) NoVoc) TEmpty ;
lin ovrld239_mkText = \p,i -> TExclMark (PhrUtt NoPConj (UttImpSg p i) NoVoc) TEmpty ;
lin ovrld240_mkText = TFullStop ;
lin ovrld241_mkVP = UseV ;
lin ovrld242_mkVP = ComplV2 ;
lin ovrld243_mkVP = ComplV3 ;
lin ovrld244_mkVP = ComplVV ;
lin ovrld245_mkVP = ComplVS ;
lin ovrld246_mkVP = ComplVQ ;
lin ovrld247_mkVP = ComplVA ;
lin ovrld248_mkVP = ComplV2A ;
lin ovrld249_mkVP = \a -> UseComp (CompAP (PositA a)) ;
lin ovrld250_mkVP = \y,z -> (UseComp (CompAP (ComparA y z))) ;
lin ovrld251_mkVP = \y,z -> (UseComp (CompAP (ComplA2 y z))) ;
lin ovrld252_mkVP = \a -> UseComp (CompAP a) ;
lin ovrld253_mkVP = \a -> UseComp (CompNP a) ;
lin ovrld254_mkVP = \y -> (UseComp (CompNP (DetCN (DetSg (IndefArt) NoOrd) y))) ;
lin ovrld255_mkVP = \y -> (UseComp (CompNP (DetCN (DetSg (IndefArt) NoOrd) (UseN y)))) ;
lin ovrld256_mkVP = \a -> UseComp (CompAdv a) ;
lin ovrld257_mkVP = AdvVP ;
lin ovrld258_mkVP = AdVVP ;
lin ovrld259_reflexiveVP = ReflV2 ;
lin ovrld260_passiveVP = PassV2 ;
lin ovrld261_passiveVP = \v,np -> (AdvVP (PassV2 v) (PrepNP by8agent_Prep np)) ;
lin ovrld262_progressiveVP = ProgrVP ;
lin ovrld263_mkListS = BaseS ;
lin ovrld264_mkListS = ConsS ;
lin ovrld265_mkListAP = BaseAP ;
lin ovrld266_mkListAP = ConsAP ;
lin ovrld267_mkListAdv = BaseAdv ;
lin ovrld268_mkListAdv = ConsAdv ;
lin ovrld269_mkListNP = BaseNP ;
lin ovrld270_mkListNP = ConsNP ;
}
