      mkText : Phr -> (Punct) -> (Text) -> Text  -- Does she sleep? Yes. 
mkText (mkPhr (mkQS (mkCl she_NP sleep_V))) questMarkPunct (mkText (mkPhr yes_Utt) fullStopPunct)
      mkText : Utt ->  Text    -- Yes. 
mkText yes_Utt
      mkText : S   ->  Text    -- She slept. 
mkText (mkS pastTense (mkCl she_NP sleep_V))
      mkText : Cl  ->  Text    -- She sleeps.
mkText (mkCl she_NP sleep_V)
      mkText : QS  ->  Text    -- Did she sleep? 
mkText (mkQS pastTense (mkQCl (mkCl she_NP sleep_V)))
      mkText : (Pol) -> Imp ->  Text    -- Don't sleep!
mkText negativePol (mkImp sleep_V)
      mkText : Text -> Text -> Text  -- Where? Here. When? Now! 
mkText (mkText (mkPhr (mkUtt where_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt here_Adv)))) (mkText (mkPhr (mkUtt when_IAdv)) questMarkPunct (mkText (mkPhr (mkUtt now_Adv)) exclMarkPunct))
--      emptyText : Text  -- (empty text)
--emptyText)
      fullStopPunct  : Punct   -- .   
mkText (mkPhr yes_Utt) fullStopPunct
      questMarkPunct : Punct   -- ?   
mkText (mkPhr yes_Utt) questMarkPunct
      exclMarkPunct  : Punct   -- !   
mkText (mkPhr yes_Utt) exclMarkPunct
      mkPhr : (PConj) -> Utt -> (Voc) -> Phr   -- but sleep, my friend   
mkPhr but_PConj (mkUtt (mkImp sleep_V)) (mkVoc (mkNP i_Pron friend_N))
      mkPhr : S -> Phr   -- she won't sleep
mkPhr (mkS futureTense negativePol (mkCl she_NP sleep_V))
      mkPhr : Cl -> Phr   -- she sleeps
mkPhr (mkCl she_NP sleep_V)
      mkPhr : QS -> Phr   -- would she sleep
mkPhr (mkQS conditionalTense (mkQCl (mkCl she_NP sleep_V)))  
      mkPhr : Imp -> Phr  -- sleep
mkPhr (mkImp sleep_V)
      mkPConj : Conj -> PConj   -- and   
mkPhr (mkPConj and_Conj) (mkUtt now_Adv)
      mkVoc : NP -> Voc  -- my friend
mkPhr yes_Utt (mkVoc (mkNP i_Pron friend_N))
      mkUtt : S -> Utt                     -- she slept     
mkUtt (mkS pastTense (mkCl she_NP sleep_V))
      mkUtt : Cl -> Utt                     -- she sleeps  
mkUtt (mkCl she_NP sleep_V)
      mkUtt : QS -> Utt                    -- who didn't sleep
mkUtt (mkQS pastTense negativePol (mkQCl who_IP sleep_V))   
      mkUtt : QCl -> Utt                   -- who sleeps 
mkUtt (mkQCl who_IP sleep_V) 
      mkUtt : (ImpForm) -> (Pol) -> Imp -> Utt  -- don't be men
mkUtt pluralImpForm negativePol (mkImp (mkVP man_N))
      mkUtt : IP   -> Utt     -- who
mkUtt who_IP
      mkUtt : IAdv -> Utt     -- why   
mkUtt why_IAdv
      mkUtt : NP   -> Utt     -- this man   
mkUtt (mkNP this_Det man_N)
      mkUtt : Adv  -> Utt     -- here
mkUtt here_Adv   
      mkUtt : VP   -> Utt     -- to sleep  
mkUtt (mkVP sleep_V)
      mkUtt : CN   -> Utt     -- beer
mkUtt (mkCN beer_N)      
      mkUtt : AP   -> Utt     -- good
mkUtt (mkAP good_A)   
      mkUtt : Card -> Utt     -- five  
mkUtt (mkCard (mkNumeral n5_Unit)) 
      lets_Utt : VP ->  Utt  -- let's sleep
mkPhr (lets_Utt (mkVP sleep_V))
      positivePol : Pol   -- she sleeps [default]    
mkUtt (mkS positivePol (mkCl she_NP sleep_V))
      negativePol : Pol   -- she doesn't sleep    
mkUtt (mkS negativePol (mkCl she_NP sleep_V))
      simultaneousAnt : Ant   -- she sleeps [default]
mkUtt (mkS simultaneousAnt (mkCl she_NP sleep_V))
      anteriorAnt : Ant   -- she has slept       --# notpresent   
mkUtt (mkS anteriorAnt (mkCl she_NP sleep_V))
      presentTense     : Tense  -- she sleeps [default]   
mkUtt (mkS presentTense (mkCl she_NP sleep_V))
      pastTense        : Tense  -- she slept           --# notpresent   
mkUtt (mkS pastTense (mkCl she_NP sleep_V))
      futureTense      : Tense  -- she will sleep        --# notpresent  
mkUtt (mkS futureTense (mkCl she_NP sleep_V))
      conditionalTense : Tense  -- she would sleep       --# notpresent   
mkUtt (mkS conditionalTense (mkCl she_NP sleep_V))
      singularImpForm : ImpForm   -- be a man [default]
mkUtt singularImpForm (mkImp (mkVP man_N))
      pluralImpForm   : ImpForm   -- be men 
mkUtt pluralImpForm (mkImp (mkVP man_N)) 
      politeImpForm   : ImpForm   -- be a man [polite singular]  
mkUtt politeImpForm (mkImp (mkVP man_N))
      mkS : (Tense) -> (Ant) -> (Pol) -> Cl  -> S -- she wouldn't have slept  
mkUtt (mkS conditionalTense anteriorAnt negativePol (mkCl she_NP sleep_V))
      mkS : Conj -> S -> S -> S   -- she sleeps and I run    
mkUtt (mkS and_Conj (mkS (mkCl she_NP sleep_V)) (mkS (mkCl i_NP run_V)))
      mkS : Conj -> ListS  -> S   -- she sleeps, I run and you walk  
mkUtt (mkS and_Conj (mkListS (mkS (mkCl she_NP sleep_V)) (mkListS (mkS (mkCl i_NP run_V)) (mkS (mkCl (mkNP youSg_Pron) walk_V)))))
      mkS : Adv -> S -> S         -- today, she sleeps 
mkUtt (mkS today_Adv (mkS (mkCl she_NP sleep_V)))
      mkCl : NP -> V -> Cl                -- she sleeps   
mkUtt (mkCl she_NP sleep_V)
      mkCl : NP -> V2 -> NP -> Cl         -- she loves him
mkUtt (mkCl she_NP love_V2 he_NP)
      mkCl : NP -> V3 -> NP -> NP -> Cl   -- she sends it to him
mkUtt (mkCl she_NP send_V3 it_NP he_NP)
      mkCl : NP  -> VV -> VP -> Cl        -- she wants to sleep
mkUtt (mkCl she_NP want_VV (mkVP sleep_V))
      mkCl : NP  -> VS -> S  -> Cl        -- she says that I sleep
mkUtt (mkCl she_NP say_VS (mkS (mkCl i_NP sleep_V)))
      mkCl : NP  -> VQ -> QS -> Cl        -- she wonders who sleeps
mkUtt (mkCl she_NP wonder_VQ (mkQS (mkQCl who_IP sleep_V)))
      mkCl : NP  -> VA -> A  -> Cl        -- she becomes old
mkUtt (mkCl she_NP become_VA old_A)
      mkCl : NP  -> VA -> AP -> Cl        -- she becomes very old
mkUtt (mkCl she_NP become_VA (mkAP very_AdA old_A))
      mkCl : NP  -> V2A -> NP -> A  -> Cl -- she paints it red
mkUtt (mkCl she_NP paint_V2A it_NP red_A)
      mkCl : NP  -> V2A -> NP -> AP -> Cl -- she paints it very red
mkUtt (mkCl she_NP paint_V2A it_NP (mkAP red_A))
      mkCl : NP  -> V2S -> NP -> S -> Cl  -- she answers to him that we sleep
mkUtt (mkCl she_NP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)))
      mkCl : NP  -> V2Q -> NP -> QS -> Cl -- she asks him who sleeps 
mkUtt (mkCl she_NP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)))
      mkCl : NP  -> V2V -> NP -> VP -> Cl -- she begs him to sleep
mkUtt (mkCl she_NP beg_V2V he_NP (mkVP sleep_V))
      mkCl : NP -> A  -> Cl       -- she is old
mkUtt (mkCl she_NP old_A)
      mkCl : NP -> A -> NP -> Cl  -- she is older than he   
mkUtt (mkCl she_NP old_A he_NP)
      mkCl : NP -> A2 -> NP -> Cl -- she is married to him 
mkUtt (mkCl she_NP married_A2 he_NP)
      mkCl : NP -> AP -> Cl    -- she is very old 
mkUtt (mkCl she_NP (mkAP very_AdA old_A))
      mkCl : NP -> NP -> Cl    -- she is the woman   
mkUtt (mkCl she_NP (mkNP the_Det woman_N))
      mkCl : NP -> N -> Cl     -- she is a woman   
mkUtt (mkCl she_NP woman_N)
      mkCl : NP -> CN -> Cl    -- she is an old woman   
mkUtt (mkCl she_NP (mkCN old_A woman_N))
      mkCl : NP -> Adv -> Cl   -- she is here   
mkUtt (mkCl she_NP here_Adv)
      mkCl : NP -> VP -> Cl    -- she always sleeps
mkUtt (mkCl she_NP (mkVP always_AdV (mkVP sleep_V)))
      mkCl : N -> Cl           -- there is a house
mkUtt (mkCl house_N)
      mkCl : CN -> Cl          -- there is an old house
mkUtt (mkCl (mkCN old_A house_N))
      mkCl : NP -> Cl          -- there are many houses 
mkUtt (mkCl (mkNP many_Det house_N)  )
      mkCl : NP  -> RS -> Cl   -- it is she who sleeps
mkUtt (mkCl she_NP (mkRS (mkRCl which_RP (mkVP sleep_V))))
      mkCl : Adv -> S  -> Cl   -- it is here that she sleeps
mkUtt (mkCl here_Adv (mkS (mkCl she_NP sleep_V)) )
      mkCl : V -> Cl           -- it rains
mkUtt (mkCl rain_V0 )
      mkCl : VP -> Cl          -- it is raining    
mkUtt (mkCl (progressiveVP (mkVP rain_V0)))
      mkCl : SC -> VP -> Cl    -- that she sleeps is good
mkUtt (mkCl (mkSC (mkS (mkCl she_NP sleep_V))) (mkVP good_A))
      genericCl : VP ->  Cl    -- one sleeps
mkUtt (mkS (genericCl (mkVP sleep_V))              )
      mkVP : V   -> VP                -- sleep
mkUtt (mkVP sleep_V) 
      mkVP : V2  -> NP -> VP          -- love him 
mkUtt (mkVP love_V2 he_NP) 
      mkVP : V3  -> NP -> NP -> VP    -- send it to him 
mkUtt (mkVP send_V3 it_NP he_NP) 
      mkVP : VV  -> VP -> VP          -- want to sleep
mkUtt (mkVP want_VV (mkVP sleep_V)) 
      mkVP : VS  -> S  -> VP          -- know that she sleeps
mkUtt (mkVP know_VS (mkS (mkCl she_NP sleep_V))) 
      mkVP : VQ  -> QS -> VP          -- wonder who sleeps  
mkUtt (mkVP wonder_VQ (mkQS (mkQCl who_IP sleep_V))) 
      mkVP : VA  -> AP -> VP          -- become red 
mkUtt (mkVP become_VA (mkAP red_A))
      mkVP : V2A -> NP -> AP -> VP    -- paint it red 
mkUtt (mkVP paint_V2A it_NP (mkAP red_A))
      mkVP : V2S -> NP -> S  -> VP    -- answer to him that we sleep
mkUtt (mkVP answer_V2S he_NP (mkS (mkCl she_NP sleep_V))) 
      mkVP : V2Q -> NP -> QS -> VP    -- ask him who sleeps
mkUtt (mkVP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V))) 
      mkVP : V2V -> NP -> VP -> VP    -- beg him to sleep
mkUtt (mkVP beg_V2V he_NP (mkVP sleep_V))
      mkVP : A -> VP               -- be old
mkUtt (mkVP old_A) 
      mkVP : A -> NP -> VP         -- be older than he 
mkUtt (mkVP old_A he_NP) 
      mkVP : A2 -> NP -> VP        -- be married to him
mkUtt (mkVP married_A2 he_NP)  
      mkVP : AP -> VP              -- be very old
mkUtt (mkVP (mkAP very_AdA old_A)) 
      mkVP : N -> VP               -- be a woman
mkUtt (mkVP woman_N) 
      mkVP : CN -> VP              -- be an old woman 
mkUtt (mkVP (mkCN old_A woman_N)) 
      mkVP : NP -> VP              -- be the woman 
mkUtt (mkVP (mkNP the_Det woman_N)) 
      mkVP : Adv -> VP             -- be here 
mkUtt (mkVP here_Adv) 
      mkVP : VP -> Adv -> VP       -- sleep here
mkUtt (mkVP (mkVP sleep_V) here_Adv)
      mkVP : AdV -> VP -> VP       -- always sleep   
mkUtt (mkVP always_AdV (mkVP sleep_V))
      mkVP : VPSlash -> NP -> VP   -- paint it black  
mkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)) it_NP)
      mkVP : VPSlash -> VP         -- paint itself black 
mkUtt (mkVP (mkVPSlash paint_V2A (mkAP black_A)))
      mkVP : Comp -> VP            -- be warm 
mkUtt (mkVP (mkComp (mkAP warm_A)))
      reflexiveVP : V2 -> VP       -- love itself
mkUtt (reflexiveVP love_V2)  
      mkVP : VPSlash -> VP         -- paint itself black 
mkUtt (reflexiveVP (mkVPSlash paint_V2A (mkAP black_A)))
      passiveVP : V2 ->       VP   -- be loved
mkUtt (passiveVP love_V2)
      passiveVP : V2 -> NP -> VP   -- be loved by her 
mkUtt (passiveVP love_V2 she_NP)
      progressiveVP : VP -> VP     -- be sleeping 
mkUtt (progressiveVP (mkVP sleep_V))
      mkComp : AP -> Comp -- very old 
mkUtt (mkVP (mkComp (mkAP old_A)))
      mkComp : NP -> Comp -- this man 
mkUtt (mkVP (mkComp (mkNP this_Det man_N)))
      mkComp : Adv -> Comp -- here
mkUtt (mkVP (mkComp here_Adv))
      mkSC : S -> SC -- that she sleeps
mkSC (mkS (mkCl she_NP sleep_V))
      mkSC : QS -> SC -- who sleeps 
mkSC (mkQS (mkQCl who_IP sleep_V))
      mkSC : VP -> SC -- to sleep 
mkSC (mkVP sleep_V)
      mkImp : VP -> Imp                -- come to my house
mkUtt (mkImp (mkVP (mkVP come_V) (mkAdv to_Prep (mkNP i_Pron house_N))))
      mkImp : V  -> Imp                -- come
mkUtt (mkImp come_V)
      mkImp : V2 -> NP -> Imp          -- take it
mkUtt (mkImp buy_V2 it_NP)
      mkNP : Quant -> N  -> NP          -- this man
mkUtt (mkNP this_Quant man_N)
      mkNP : Quant -> CN -> NP          -- this old man
mkUtt (mkNP this_Quant (mkCN old_A man_N))
      mkNP : Quant -> Num -> CN -> NP   -- these five old men
mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)) (mkCN old_A man_N))
      mkNP : Quant -> Num -> N  -> NP   -- these five men
mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)) man_N)
      mkNP : Det -> CN -> NP      -- the first old man
mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit))) (mkCN old_A man_N))
      mkNP : Det -> N -> NP       -- the first man   
mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit))) man_N)
      mkNP : Numeral -> CN -> NP      -- fifty old men
mkUtt (mkNP (mkNumeral (n5_Unit)) (mkCN old_A man_N))
      mkNP : Numeral -> N -> NP       -- fifty men  
mkUtt (mkNP (mkNumeral (n5_Unit)) man_N)
      mkNP : Digits -> CN -> NP      -- 51 old men 
mkUtt (mkNP (mkDigits n5_Dig (mkDigits n1_Dig)) (mkCN old_A man_N))
      mkNP : Digits -> N -> NP       -- 51 men 
mkUtt (mkNP (mkDigits n5_Dig (mkDigits n1_Dig)) man_N)
--      mkNP : Card -> CN -> NP     -- forty-five old men
--      mkNP : Card -> N -> NP       -- forty-five men
      mkNP : Pron -> CN -> NP   -- my old man
mkUtt (mkNP i_Pron (mkCN old_A man_N))
      mkNP : Pron -> N  -> NP   -- my man
mkUtt (mkNP i_Pron man_N)
      mkNP : PN -> NP             -- Paris
mkUtt (mkNP paris_PN)
      mkNP : Pron -> NP           -- we
mkUtt (mkNP we_Pron)
      mkNP : Quant -> NP           -- this
mkUtt (mkNP this_Quant)  
      mkNP : Quant -> Num -> NP    -- these five  
mkUtt (mkNP this_Quant (mkNum (mkNumeral n5_Unit)))
      mkNP : Det -> NP             -- the five best  
mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit)) (mkOrd good_A)))
      mkNP : CN -> NP  -- old beer   
mkUtt (mkNP (mkCN old_A beer_N))
      mkNP : N -> NP  -- beer
mkUtt (mkNP beer_N)
      mkNP : Predet -> NP -> NP  -- only this woman   
mkUtt (mkNP only_Predet (mkNP this_Det woman_N))
      mkNP : NP -> V2  -> NP     -- the man seen
mkUtt (mkNP (mkNP the_Det man_N) see_V2)
      mkNP : NP -> Adv -> NP     -- Paris today
mkUtt (mkNP (mkNP paris_PN) today_Adv)
      mkNP : NP -> RS -> NP      -- John, who walks
mkUtt (mkNP (mkNP john_PN) (mkRS (mkRCl which_RP (mkVP walk_V))))
      mkNP : Conj -> NP -> NP -> NP
mkUtt (mkNP or_Conj (mkNP this_Det woman_N) (mkNP john_PN))
      mkNP : Conj -> ListNP -> NP
mkUtt (mkNP or_Conj (mkListNP (mkNP this_Det woman_N) (mkListNP (mkNP john_PN) i_NP)))
      i_NP : NP          -- I
mkUtt i_NP
      you_NP : NP        -- you (singular)
mkUtt you_NP
      youPol_NP : NP     -- you (polite singular)
mkUtt youPol_NP
      he_NP : NP         -- he
mkUtt he_NP
      she_NP : NP        -- she
mkUtt she_NP
      it_NP : NP         -- it
mkUtt it_NP
      we_NP : NP         -- we
mkUtt we_NP
      youPl_NP : NP      -- you (plural)
mkUtt youPl_NP
      they_NP : NP       -- they
mkUtt they_NP
      mkDet : Quant ->  Det       -- this  
mkUtt (mkNP (mkDet this_Quant))
      this_NP : NP 
mkUtt this_NP
      that_NP : NP 
mkUtt that_NP
      these_NP : NP 
mkUtt these_NP
      those_NP : NP 
mkUtt those_NP
      mkDet : Quant -> Card -> Det   -- these five
mkUtt (mkNP (mkDet this_Quant (mkCard (mkNumeral n5_Unit))))
      mkDet : Quant ->  Ord -> Det     -- the best
mkUtt (mkNP (mkDet the_Quant (mkOrd (mkNumeral n5_Unit))))
      mkDet : Quant -> Num -> Ord -> Det  -- these five best  
mkUtt (mkNP (mkDet the_Quant (mkNum (mkNumeral n5_Unit)) (mkOrd good_A)))
      mkDet : Quant -> Num -> Det -- these five  
mkUtt (mkNP (mkDet this_Quant pluralNum))
      mkDet : Card ->  Det     -- forty  
mkUtt (mkNP (mkDet (mkCard (mkNumeral n5_Unit))))
--      mkDet : Digits -> Det    -- 51
--      mkDet : Numeral -> Det  -- five
mkUtt (mkNP (mkDet (mkNumeral n5_Unit)))
      mkDet : Pron -> Det     -- my
mkUtt (mkNP (mkDet i_Pron))
      mkDet : Pron -> Num -> Det -- my five
mkUtt (mkNP (mkDet i_Pron  (mkNum (mkNumeral n5_Unit))))
      the_Det   : Det -- the (house)
mkUtt (mkNP the_Det house_N)
      a_Det     : Det -- a (house)
mkUtt (mkNP a_Det house_N)
      theSg_Det : Det -- the (houses)
mkUtt (mkNP theSg_Det house_N)
      thePl_Det : Det -- the (houses)
mkUtt (mkNP thePl_Det house_N)
      aSg_Det   : Det -- a (house)
mkUtt (mkNP aSg_Det woman_N)
      aPl_Det   : Det -- (houses)
mkUtt (mkNP aPl_Det woman_N)
      this_Det : Det 
mkUtt (mkNP this_Det woman_N)
      that_Det : Det 
mkUtt (mkNP that_Det woman_N)
      these_Det : Det 
mkUtt (mkNP these_Det woman_N)
      those_Det : Det 
mkUtt (mkNP those_Det woman_N)
      mkQuant : Pron -> Quant   -- my  
mkUtt (mkNP (mkQuant i_Pron) house_N)
      the_Quant : Quant    -- the 
mkUtt (mkNP the_Quant house_N)
      a_Quant   : Quant    -- a  
mkUtt (mkNP a_Quant house_N)
--      mkNum : Str -> Num   -- thirty-five (given by "35")
      mkNum : Numeral -> Num  -- twenty  
mkNum (mkNumeral (tenfoldSub100 n2_Unit))
      mkNum : Digits -> Num   -- 21 
mkNum (mkDigits n2_Dig (mkDigits n1_Dig))
--      mkNum : Digit -> Num -- five)
      mkNum : Card -> Num  -- almost ten
mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))
      mkNum : AdN -> Card -> Num  -- almost ten
mkNum (mkCard almost_AdN (mkCard (mkNumeral n5_Unit)))
--      singularNum : Num              -- singular )
--      pluralNum : Num                -- plural )
--      mkCard : Str -> Card   -- thirty-five (given as "35"))
      mkCard : Numeral -> Card   -- twenty  
mkUtt (mkCard (mkNumeral n7_Unit))
--      mkCard : Digits -> Card      -- 51  )
--      mkCard : AdN -> Card -> Card  -- almost fifty)
--      mkOrd : Numeral -> Ord   -- twentieth  )
--      mkOrd : Digits -> Ord         -- 51st )
--      mkOrd : Digit -> Ord       -- fifth )
      mkOrd : A -> Ord           -- largest  
mkUtt (mkAP (mkOrd small_A))
      mkAdN : CAdv -> AdN  -- more than  
mkUtt (mkCard (mkAdN more_CAdv) (mkCard (mkNumeral n8_Unit)))
      mkNumeral : Sub1000 -> Numeral -- coerce 1..999  
mkUtt (mkCard (mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))))
      mkNumeral : Sub1000 -> Sub1000 -> Numeral -- 1000m + n  
mkUtt (mkCard (mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit)) (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))))
--      mkNumeral : Str -> Numeral   -- thirty-five (given by "35") )
      thousandfoldNumeral : Sub1000 -> Numeral -- 1000n  
mkUtt (mkCard (thousandfoldNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))))
      mkSub1000 : Sub100 -> Sub1000 -- coerce 1..99  
mkUtt (mkCard (mkNumeral (mkSub1000 (mkSub100 n9_Unit n9_Unit))))
      mkSub1000 : Unit -> Sub1000 -- 100n  
mkUtt (mkCard (mkNumeral (mkSub1000 n9_Unit)))
      mkSub1000 : Unit -> Sub100 -> Sub1000 -- 100m + n  
mkUtt (mkCard (mkNumeral (mkSub1000 n9_Unit (mkSub100 n9_Unit n9_Unit))))
      mkSub100 : Unit -> Sub100            -- eight (coerce 1..9)  
mkUtt (mkCard (mkNumeral (mkSub100 n8_Unit)))
    mkSub100 : Unit -> Unit -> Sub100    -- 10m + n  
mkUtt (mkCard (mkNumeral (mkSub100 n8_Unit n3_Unit)))
    tenfoldSub100 : Unit -> Sub100 -- 10n  
mkUtt (mkCard (mkNumeral (mkSub100 n8_Unit)))
    n1_Unit : Unit -- one 
mkUtt (mkCard (mkNumeral n1_Unit))
    n2_Unit : Unit -- two  
mkUtt (mkCard (mkNumeral n2_Unit))
    n3_Unit : Unit -- three  
mkUtt (mkCard (mkNumeral n3_Unit))
    n4_Unit : Unit -- four  
mkUtt (mkCard (mkNumeral n4_Unit))
    n5_Unit : Unit -- five  
mkUtt (mkCard (mkNumeral n5_Unit))
    n6_Unit : Unit -- six  
mkUtt (mkCard (mkNumeral n6_Unit))
    n7_Unit : Unit -- seven  
mkUtt (mkCard (mkNumeral n7_Unit))
    n8_Unit : Unit -- eight  
mkUtt (mkCard (mkNumeral n8_Unit))
    n9_Unit : Unit -- nine  
mkUtt (mkCard (mkNumeral n9_Unit))
--      mkDigits : Str -> Digits -- 35 (from string "35"))
      mkDigits : Dig -> Digits -- 4  
mkUtt (mkCard (mkDigits n4_Dig))
      mkDigits : Dig -> Digits -> Digits -- 1,233,486 
mkUtt (mkCard (mkDigits n1_Dig (mkDigits n2_Dig (mkDigits n3_Dig (mkDigits n3_Dig (mkDigits n4_Dig (mkDigits n8_Dig (mkDigits n6_Dig))))))))
--      n0_Dig : Dig   -- 0  )
--      n1_Dig : Dig   -- 1  )
--      n2_Dig : Dig   -- 2   )
--      n3_Dig : Dig   -- 3      )
--      n4_Dig : Dig   -- 4  )
--      n5_Dig : Dig   -- 5      )
--      n6_Dig : Dig   -- 6      )
--      n7_Dig : Dig   -- 7           )
--      n8_Dig : Dig   -- 8      )
--      n9_Dig : Dig   -- 9  )
      mkCN : N  -> CN            -- house 
mkUtt (mkCN house_N )
      mkCN : N2 -> NP -> CN      -- mother of the king   
mkUtt (mkCN mother_N2 (mkNP the_Det king_N))
      mkCN : N3 -> NP -> NP -> CN  -- distance from this city to Paris
mkUtt (mkCN distance_N3 (mkNP this_Det city_N) (mkNP paris_PN) )
      mkCN : N2 -> CN            -- mother 
mkUtt (mkCN mother_N2)
      mkCN : N3 -> CN            -- distance 
mkUtt (mkCN distance_N3)
      mkCN :  A ->  N  -> CN     -- big house
mkUtt (mkCN big_A house_N  )
      mkCN :  A -> CN  -> CN     -- big blue house  
mkUtt (mkCN big_A (mkCN blue_A house_N))
      mkCN : AP ->  N  -> CN     -- very big house
mkUtt (mkCN (mkAP very_AdA big_A) house_N  )
      mkCN : AP -> CN  -> CN     -- very big blue house  
mkUtt (mkCN (mkAP very_AdA big_A) (mkCN blue_A house_N)  )
      mkCN :  N -> RS  -> CN     -- man whom she loves 
mkUtt (mkCN man_N (mkRS (mkRCl which_RP she_NP love_V2)))
      mkCN : CN -> RS  -> CN     -- old man whom she loves 
mkUtt (mkCN (mkCN old_A man_N) (mkRS (mkRCl which_RP she_NP love_V2)) )
      mkCN :  N -> Adv -> CN     -- house on the hill 
mkUtt (mkCN house_N (mkAdv on_Prep (mkNP the_Det hill_N)))
      mkCN : CN -> Adv -> CN     -- big house on the hill 
mkUtt (mkCN (mkCN big_A house_N) (mkAdv on_Prep (mkNP the_Det hill_N)))
      mkCN : CN -> S   -> CN     -- rule that she sleeps 
mkUtt (mkCN (mkCN rule_N) (mkS (mkCl she_NP sleep_V)))
      mkCN : CN -> QS  -> CN     -- question if she sleeps 
mkUtt (mkCN (mkCN question_N) (mkQS (mkQCl (mkCl she_NP sleep_V))))
      mkCN : CN -> VP  -> CN     -- reason to sleep 
mkUtt (mkCN (mkCN reason_N) (mkVP sleep_V))
      mkCN : CN -> SC  -> CN     -- reason to sleep  
mkUtt (mkCN (mkCN reason_N) (mkVP sleep_V))
      mkCN :  N -> NP  -> CN     -- king John
mkUtt (mkCN king_N (mkNP john_PN) )
      mkCN : CN -> NP  -> CN     -- old king John
mkUtt (mkCN (mkCN old_A king_N) (mkNP john_PN))
      mkAP : A -> AP           -- warm   
mkUtt (mkAP warm_A)
      mkAP : A -> NP -> AP     -- warmer than Paris    
mkUtt (mkAP warm_A (mkNP paris_PN))
      mkAP : A2 -> NP -> AP    -- married to her
mkUtt (mkAP married_A2 she_NP )
      mkAP : A2 -> AP          -- married 
mkUtt (mkAP married_A2)
      mkAP : AP -> S -> AP    -- probable that she sleeps  
mkUtt (mkCl (mkVP (mkAP (mkAP good_A) (mkS (mkCl she_NP sleep_V)))))
      mkAP : AP -> QS -> AP    -- uncertain who sleeps  
mkUtt (mkCl (mkVP (mkAP (mkAP uncertain_A) (mkQS (mkQCl who_IP sleep_V)))))
      mkAP : AP -> VP -> AP    -- ready to go 
mkUtt (mkCl she_NP (mkAP (mkAP ready_A) (mkVP sleep_V)))
      mkAP : AP -> SC -> AP    -- ready to go  
mkUtt (mkCl she_NP (mkAP (mkAP ready_A) (mkSC (mkVP sleep_V))))
      mkAP : AdA -> A -> AP   -- very old
mkUtt (mkAP very_AdA old_A)
      mkAP : AdA -> AP -> AP   -- very very old  
mkUtt (mkAP very_AdA (mkAP very_AdA old_A))
      mkAP : Conj -> AP -> AP -> AP -- old and big 
mkUtt (mkAP or_Conj (mkAP old_A) (mkAP young_A))
      mkAP : Conj -> ListAP -> AP   -- old, big and warm 
mkUtt (mkAP and_Conj (mkListAP (mkAP old_A) (mkListAP (mkAP big_A) (mkAP warm_A))))
      mkAP : Ord   -> AP              -- oldest 
mkUtt (mkAP (mkOrd old_A))
      mkAP : CAdv -> AP -> NP -> AP   -- as old as she
mkUtt (mkAP as_CAdv (mkAP old_A) she_NP)
      reflAP   : A2 -> AP             -- married to himself 
mkUtt (reflAP married_A2)
      comparAP : A -> AP              -- warmer 
mkUtt (comparAP warm_A)
      mkAdv : A -> Adv            -- warmly   
mkUtt (mkAdv warm_A)
      mkAdv : Prep -> NP -> Adv          -- in the house    
mkUtt (mkAdv in_Prep (mkNP the_Det house_N))
      mkAdv : Subj -> S -> Adv   -- when she sleeps
mkUtt (mkAdv when_Subj (mkS (mkCl she_NP sleep_V)))
      mkAdv : CAdv -> A -> NP -> Adv   -- more warmly than he
mkUtt (mkAdv more_CAdv warm_A he_NP  )
      mkAdv : CAdv -> A -> S -> Adv    -- more warmly than he runs 
mkUtt (mkAdv more_CAdv warm_A (mkS (mkCl he_NP run_V))  )
      mkAdv : AdA -> Adv -> Adv        -- very warmly
mkUtt (mkAdv very_AdA (mkAdv warm_A) )
      mkAdv : Conj -> Adv -> Adv -> Adv  -- here and now
mkUtt (mkAdv and_Conj here_Adv now_Adv)
      mkAdv : Conj -> ListAdv -> Adv   -- with her, here and now  
mkUtt (mkAdv and_Conj (mkListAdv (mkAdv with_Prep she_NP) (mkListAdv here_Adv now_Adv)))
      mkQS : (Tense) -> (Ant) -> (Pol) -> QCl -> QS -- who wouldn't have slept 
mkUtt (mkQS conditionalTense anteriorAnt negativePol (mkQCl who_IP sleep_V))
      mkQS : Cl -> QS -- 
mkUtt (mkQS (mkCl she_NP sleep_V))
      mkQCl : Cl -> QCl -- does she sleep
mkUtt (mkQCl (mkCl she_NP sleep_V))
      mkQCl : IP -> VP -> QCl               -- who sleeps      
mkUtt (mkQCl who_IP (mkVP (mkVP sleep_V) here_Adv))
      mkQCl : IP -> V -> QCl                -- who sleeps
mkUtt (mkQCl who_IP sleep_V)
      mkQCl : IP -> V2 -> NP -> QCl         -- who loves her
mkUtt (mkQCl who_IP love_V2 she_NP)
      mkQCl : IP -> V3 -> NP -> NP -> QCl   -- who sends it to her
mkUtt (mkQCl who_IP send_V3 it_NP she_NP)
      mkQCl : IP  -> VV -> VP -> QCl        -- who wants to sleep
mkUtt (mkQCl who_IP want_VV (mkVP sleep_V))
      mkQCl : IP  -> VS -> S  -> QCl        -- who says that I sleep
mkUtt (mkQCl who_IP say_VS (mkS (mkCl i_NP sleep_V)))
      mkQCl : IP  -> VQ -> QS -> QCl        -- who wonders who sleeps
mkUtt (mkQCl who_IP wonder_VQ (mkQS (mkQCl who_IP sleep_V)))
      mkQCl : IP  -> VA -> A  -> QCl        -- who becomes old
mkUtt (mkQCl who_IP become_VA old_A)
      mkQCl : IP  -> VA -> AP -> QCl        -- who becomes very old
mkUtt (mkQCl who_IP become_VA (mkAP very_AdA old_A))
      mkQCl : IP  -> V2A -> NP -> A  -> QCl -- who paints it red
mkUtt (mkQCl who_IP paint_V2A it_NP red_A)
      mkQCl : IP  -> V2A -> NP -> AP -> QCl -- who paints it very red
mkUtt (mkQCl who_IP paint_V2A it_NP (mkAP very_AdA red_A))
      mkQCl : IP  -> V2S -> NP -> S -> QCl  -- who answers to him that we sleep
mkUtt (mkQCl who_IP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)))
      mkQCl : IP  -> V2Q -> NP -> QS -> QCl -- who asks him who sleeps 
mkUtt (mkQCl who_IP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)))
      mkQCl : IP  -> V2V -> NP -> VP -> QCl -- who begs him to sleep
mkUtt (mkQCl who_IP beg_V2V he_NP (mkVP sleep_V))
      mkQCl : IP -> A  -> QCl       -- who is old
mkUtt (mkQCl who_IP old_A)
      mkQCl : IP -> A -> NP -> QCl  -- who is older than he   
mkUtt (mkQCl who_IP old_A he_NP)
      mkQCl : IP -> A2 -> NP -> QCl -- who is married to him 
mkUtt (mkQCl who_IP married_A2 he_NP)
      mkQCl : IP -> AP -> QCl    -- who is very old 
mkUtt (mkQCl who_IP (mkAP very_AdA old_A))
      mkQCl : IP -> NP -> QCl    -- who is the woman   
mkUtt (mkQCl who_IP (mkNP the_Det woman_N))
      mkQCl : IP -> N -> QCl     -- who is a woman   
mkUtt (mkQCl who_IP woman_N)
      mkQCl : IP -> CN -> QCl    -- who is an old woman   
mkUtt (mkQCl who_IP (mkCN old_A woman_N))
      mkQCl : IP -> Adv -> QCl   -- who is here   
mkUtt (mkQCl who_IP here_Adv)
      mkQCl : IP -> VP -> QCl    -- who always sleeps
mkUtt (mkQCl who_IP (mkVP always_AdV (mkVP sleep_V)))
      mkQCl : IAdv -> Cl -> QCl            -- why does she sleep
mkUtt (mkQCl why_IAdv (mkCl she_NP sleep_V)     )
      mkQCl : Prep -> IP -> Cl -> QCl      -- with whom does she sleep
mkUtt (mkQCl with_Prep who_IP (mkCl she_NP sleep_V)      )
      mkQCl : IAdv -> NP -> QCl   -- where is she
mkUtt (mkQCl where_IAdv she_NP )
      mkQCl : IComp -> NP -> QCl   -- who is this man
mkUtt (mkQCl (mkIComp who_IP) (mkNP this_Det man_N))
      mkQCl : IP -> QCl         -- which cities are there
mkUtt (mkQCl (mkIP which_IQuant city_N))
      mkQCl : IP -> NP -> V2 -> QCl        -- who does she love 
mkUtt (mkQCl who_IP she_NP)
      mkQCl : IP -> ClSlash -> QCl         -- who does she love today   --:   
mkUtt (mkQCl who_IP (mkClSlash (mkClSlash she_NP love_V2) today_Adv))
      mkIP : IDet -> CN -> IP          -- which five big cities
mkUtt (mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))) (mkCN big_A city_N)    )
      mkIP : IDet -> N -> IP      -- which five cities
mkUtt (mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))) city_N    )
      mkIP : IDet -> IP      -- which five 
mkUtt (mkIP (mkIDet which_IQuant (mkNum (mkNumeral n5_Unit))))
      mkIP : IQuant -> CN -> IP    -- which big city
mkUtt (mkIP which_IQuant (mkCN big_A city_N)    )
      mkIP : IQuant -> Num -> CN -> IP          -- which five big cities
mkUtt (mkIP which_IQuant (mkNum (mkNumeral n5_Unit)) (mkCN big_A city_N)    )
      mkIP : IQuant -> N -> IP      -- which city
mkUtt (mkIP which_IQuant city_N)
      mkIP : IP -> Adv -> IP        -- who in Paris
mkUtt (mkIP who_IP (mkAdv in_Prep (mkNP paris_PN)))
      what_IP : IP  -- what (singular)
mkUtt what_IP
      who_IP : IP   -- who (singular)
mkUtt who_IP
      mkIAdv : Prep -> IP -> IAdv --  in which city 
mkUtt (mkIAdv in_Prep (mkIP which_IQuant city_N))
      mkIAdv : IAdv -> Adv -> IAdv --  where in Paris
mkUtt (mkIAdv where_IAdv (mkAdv in_Prep (mkNP paris_PN))  )
      mkIDet : IQuant -> Num -> IDet          -- which (songs) 
mkUtt (mkIP (mkIDet which_IQuant pluralNum) house_N)
      mkIDet : IQuant -> IDet
mkUtt (mkIP (mkIDet which_IQuant) house_N      )
      which_IDet : IDet 
mkUtt (mkIP which_IDet house_N)
      whichPl_IDet : IDet 
mkUtt (mkIP whichPl_IDet house_N)
      mkRS : (Tense) -> (Ant) -> (Pol) -> RCl -> RS -- that wouldn't have slept 
mkUtt (mkCN woman_N (mkRS conditionalTense anteriorAnt negativePol (mkRCl which_RP sleep_V)))
      mkRS : RCl -> RS -- 
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP sleep_V)))
      mkRS : Conj -> RS -> RS -> RS -- 
mkUtt (mkCN woman_N (mkRS or_Conj (mkRS (mkRCl which_RP sleep_V)) (mkRS (mkRCl which_RP we_NP love_V2))))
      mkRCl : RP -> VP -> RCl               -- who sleeps      
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP (mkVP (mkVP sleep_V) here_Adv))))
      mkRCl : RP -> V -> RCl                -- who sleeps
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP sleep_V)))
      mkRCl : RP -> V2 -> NP -> RCl         -- who loves her
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP love_V2 he_NP)))
      mkRCl : RP -> V3 -> NP -> NP -> RCl   -- who sends it to her
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP send_V3 it_NP he_NP)))
      mkRCl : RP  -> VV -> VP -> RCl        -- who wants to sleep
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP want_VV (mkVP sleep_V))))
      mkRCl : RP  -> VS -> S  -> RCl        -- who says that I sleep
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP say_VS (mkS (mkCl i_NP sleep_V)))))
      mkRCl : RP  -> VQ -> QS -> RCl        -- who wonders who sleeps
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP wonder_VQ (mkQS (mkQCl who_IP sleep_V)))))
      mkRCl : RP  -> VA -> A  -> RCl        -- who becomes old
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP become_VA old_A)))
      mkRCl : RP  -> VA -> AP -> RCl        -- who becomes very old
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP become_VA (mkAP very_AdA old_A))))
      mkRCl : RP  -> V2A -> NP -> A  -> RCl -- who paints it red
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP red_A)))
      mkRCl : RP  -> V2A -> NP -> AP -> RCl -- who paints it very red
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP paint_V2A it_NP (mkAP very_AdA red_A))))
      mkRCl : RP  -> V2S -> NP -> S -> RCl  -- who answers to him that we sleep
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP answer_V2S he_NP (mkS (mkCl we_NP sleep_V)))))
      mkRCl : RP  -> V2Q -> NP -> QS -> RCl -- who asks him who sleeps 
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP ask_V2Q he_NP (mkQS (mkQCl who_IP sleep_V)))))
      mkRCl : RP  -> V2V -> NP -> VP -> RCl -- who begs him to sleep
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP beg_V2V he_NP (mkVP sleep_V))))
      mkRCl : RP -> A  -> RCl       -- who is old
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP old_A)))
      mkRCl : RP -> A -> NP -> RCl  -- who is older than he   
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP old_A he_NP)))
      mkRCl : RP -> A2 -> NP -> RCl -- who is married to him 
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP married_A2 he_NP)))
      mkRCl : RP -> AP -> RCl    -- who is very old 
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP (mkAP very_AdA old_A))))
      mkRCl : RP -> NP -> RCl    -- who is the woman   
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP (mkNP the_Det woman_N))))
      mkRCl : RP -> N -> RCl     -- who is a woman   
mkUtt (mkCN student_N (mkRS (mkRCl which_RP woman_N)))
      mkRCl : RP -> CN -> RCl    -- who is an old woman   
mkUtt (mkCN student_N (mkRS (mkRCl which_RP (mkCN old_A woman_N))))
      mkRCl : RP -> Adv -> RCl   -- who is here   
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP here_Adv)))
      mkRCl : RP -> VP -> RCl    -- who always sleeps
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP (mkVP always_AdV (mkVP sleep_V)))))
      mkRCl : RP -> NP -> V2 -> RCl        -- who she loves 
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP we_NP love_V2)))
      mkRCl : RP -> ClSlash -> RCl         -- who she loves today   --:   
mkUtt (mkCN woman_N (mkRS (mkRCl which_RP (mkClSlash (mkClSlash she_NP love_V2) today_Adv))))
      which_RP : RP                        -- which/who )
which_RP
      mkRP : Prep -> NP -> RP -> RP    -- all the cities in which
mkRP in_Prep (mkNP all_Predet (mkNP the_Quant pluralNum city_N)) which_RP
      mkSSlash : Temp -> Pol -> ClSlash -> SSlash  
mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash she_NP (mkVPSlash see_V2))
      mkClSlash : NP -> VPSlash -> ClSlash        -- (whom) he sees here  
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2)))
      mkClSlash : NP -> V2 -> ClSlash        -- (whom) he sees 
mkUtt (mkQCl who_IP (mkClSlash she_NP see_V2))
      mkClSlash : NP -> VV -> V2 -> ClSlash  -- (whom) he wants to see
mkUtt (mkQCl who_IP (mkClSlash she_NP want_VV see_V2))
      mkClSlash : Cl -> Prep -> ClSlash      -- (with whom) he sleeps
mkUtt (mkQCl who_IP (mkClSlash (mkCl she_NP sleep_V) with_Prep))
      mkClSlash : ClSlash -> Adv -> ClSlash    -- (whom) he sees tomorrow   
mkUtt (mkQCl who_IP (mkClSlash (mkClSlash she_NP see_V2) today_Adv))
      mkClSlash : NP -> VS -> SSlash -> ClSlash -- (whom)she says that he s
mkUtt (mkQCl who_IP (mkClSlash she_NP know_VS (mkSSlash (mkTemp pastTense anteriorAnt) negativePol (mkClSlash we_NP (mkVPSlash see_V2)))))
      mkVPSlash : V2  -> VPSlash         -- (whom) (she) loves 
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash see_V2)))
      mkVPSlash : V3  -> NP -> VPSlash   -- (whom) (she) gives an apple 
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash send_V3 it_NP))  )
      mkVPSlash : V2A -> AP -> VPSlash   -- (whom) (she) paints red
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash paint_V2A (mkAP red_A)))  )
      mkVPSlash : V2Q -> QS -> VPSlash   -- (whom) (she) asks who sleeps
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash ask_V2Q (mkQS (mkQCl where_IAdv (mkCl i_NP sleep_V)))))   )
      mkVPSlash : V2S -> S  -> VPSlash   -- (whom) (she) tells that we sleep
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash answer_V2S (mkS (mkCl i_NP sleep_V))))   )
      mkVPSlash : V2V -> VP -> VPSlash   -- (whom) (she) forces to sleep  
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V (mkVP sleep_V))))
      mkVPSlash : VV  -> VPSlash -> VPSlash  -- want always to buy 
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash want_VV (mkVPSlash see_V2))))
      mkVPSlash : V2V -> NP -> VPSlash -> VPSlash -- beg me always to buy 
mkUtt (mkQCl who_IP (mkClSlash she_NP (mkVPSlash beg_V2V i_NP (mkVPSlash see_V2))))
    above_Prep : Prep   
mkUtt (mkAdv above_Prep it_NP)
    after_Prep : Prep 
mkUtt (mkAdv after_Prep it_NP)
    all_Predet : Predet 
mkUtt (mkNP all_Predet (mkNP thePl_Det man_N))
    almost_AdA : AdA    
mkUtt (mkAP almost_AdA red_A)
    almost_AdN : AdN
mkUtt (mkCard almost_AdN (mkCard (mkNumeral n8_Unit))    )
    although_Subj : Subj 
mkUtt (mkAdv although_Subj (mkS (mkCl she_NP sleep_V)))
    always_AdV : AdV 
always_AdV
    and_Conj : Conj 
mkUtt (mkAdv and_Conj here_Adv now_Adv)
    because_Subj : Subj 
mkUtt (mkAdv because_Subj (mkS (mkCl she_NP sleep_V)))
    before_Prep : Prep 
mkUtt (mkAdv before_Prep it_NP)
    behind_Prep : Prep 
mkUtt (mkAdv behind_Prep it_NP)
    between_Prep : Prep 
mkUtt (mkAdv between_Prep (mkNP and_Conj you_NP i_NP))
    both7and_DConj : Conj  -- both...and
mkUtt (mkAdv both7and_DConj here_Adv there_Adv)
    but_PConj : PConj 
but_PConj
    by8agent_Prep : Prep  -- by (agent)
mkUtt (mkAdv by8agent_Prep it_NP)
    by8means_Prep : Prep  -- by (means of)
mkUtt (mkAdv by8means_Prep it_NP)
    can8know_VV : VV  -- can (capacity)
mkUtt (mkVP can8know_VV (mkVP sleep_V))
    can_VV : VV       -- can (possibility)
mkUtt (mkVP can_VV (mkVP sleep_V))
    during_Prep : Prep 
mkUtt (mkAdv during_Prep it_NP)
    either7or_DConj : Conj  -- either...or
mkUtt (mkAdv either7or_DConj here_Adv there_Adv)
    every_Det : Det 
mkUtt (mkNP every_Det woman_N)
    everybody_NP : NP   -- everybody
mkUtt everybody_NP
    everything_NP : NP 
mkUtt everything_NP
    everywhere_Adv : Adv 
mkUtt (everywhere_Adv)
    few_Det : Det 
mkUtt (mkNP few_Det woman_N)
    for_Prep : Prep 
mkUtt (mkAdv for_Prep it_NP)
    from_Prep : Prep 
mkUtt (mkAdv from_Prep it_NP)
    he_Pron : Pron 
mkUtt (mkNP he_Pron)
    here_Adv : Adv 
mkUtt (here_Adv)
    here7to_Adv : Adv  -- to here
mkUtt (here7to_Adv)
    here7from_Adv : Adv   -- from here
mkUtt (here7from_Adv)
    how_IAdv : IAdv 
mkUtt how_IAdv
    how8many_IDet : IDet 
mkUtt (mkIP how8many_IDet house_N)
    how8much_IAdv : IAdv 
mkUtt how8much_IAdv
    i_Pron : Pron 
mkUtt (mkNP i_Pron)
    if_Subj : Subj 
mkUtt (mkAdv if_Subj (mkS (mkCl she_NP sleep_V)))
    in8front_Prep : Prep  -- in front of
mkUtt (mkAdv in8front_Prep it_NP)
    in_Prep : Prep 
mkUtt (mkAdv in_Prep it_NP)
    it_Pron : Pron 
mkUtt (mkNP it_Pron)
    less_CAdv : CAdv 
less_CAdv
    many_Det : Det 
mkUtt (mkNP many_Det house_N)
    more_CAdv : CAdv 
more_CAdv
    most_Predet : Predet 
most_Predet
    much_Det : Det 
mkUtt (mkNP much_Det wine_N)
    must_VV : VV 
must_VV
    no_Utt : Utt 
no_Utt
    on_Prep : Prep 
mkUtt (mkAdv on_Prep it_NP)
    only_Predet : Predet 
only_Predet
    or_Conj : Conj 
mkUtt (mkAdv or_Conj here_Adv there_Adv)
    otherwise_PConj : PConj 
otherwise_PConj
    part_Prep : Prep 
mkUtt (mkAdv part_Prep it_NP)
    please_Voc : Voc 
please_Voc
    possess_Prep : Prep  -- of (possessive)
mkUtt (mkAdv possess_Prep it_NP)
    quite_Adv : AdA 
quite_Adv
    she_Pron : Pron 
mkUtt (mkNP she_Pron)
    so_AdA : AdA 
mkUtt (mkAP so_AdA warm_A)
    someSg_Det : Det 
mkUtt (mkNP someSg_Det wine_N)
    somePl_Det : Det 
mkUtt (mkNP somePl_Det woman_N)
    somebody_NP : NP 
mkUtt somebody_NP
    something_NP : NP 
mkUtt something_NP
    somewhere_Adv : Adv 
mkUtt (somewhere_Adv)
    that_Quant : Quant 
mkUtt (mkNP that_Quant house_N)
    that_Subj : Subj 
mkUtt (mkAdv that_Subj (mkS (mkCl she_NP sleep_V)))
    there_Adv : Adv 
mkUtt (there_Adv)
    there7to_Adv : Adv  -- to there
mkUtt (there7to_Adv)
    there7from_Adv : Adv  -- from there
mkUtt (there7from_Adv)
    therefore_PConj : PConj 
therefore_PConj
    they_Pron : Pron  
mkUtt (mkNP they_Pron)
    this_Quant : Quant 
mkUtt (mkNP this_Quant house_N)
    through_Prep : Prep 
mkUtt (mkAdv through_Prep it_NP)
    to_Prep : Prep 
mkUtt (mkAdv to_Prep it_NP)
    too_AdA : AdA 
mkUtt (mkAP too_AdA warm_A)
    under_Prep : Prep 
mkUtt (mkAdv under_Prep it_NP)
    very_AdA : AdA 
mkUtt (mkAP very_AdA warm_A)
    want_VV : VV 
mkUtt (mkVP want_VV (mkVP sleep_V))
    we_Pron : Pron 
mkUtt (mkNP we_Pron)
    whatPl_IP : IP  -- what (plural)
mkUtt (whatPl_IP)
    whatSg_IP : IP  -- what (singular)
mkUtt (whatSg_IP)
    when_IAdv : IAdv 
mkUtt when_IAdv
    when_Subj : Subj 
mkUtt (mkAdv when_Subj (mkS (mkCl she_NP sleep_V)))
    where_IAdv : IAdv 
mkUtt where_IAdv
    which_IQuant : IQuant 
mkUtt (mkIP which_IQuant house_N)
    whoPl_IP : IP   -- who (plural)
mkUtt (whoPl_IP)
    whoSg_IP : IP   -- who (singular)
mkUtt (whoSg_IP)
    why_IAdv : IAdv 
mkUtt why_IAdv
    with_Prep : Prep 
mkUtt (mkAdv with_Prep it_NP)
    without_Prep : Prep 
mkUtt (mkAdv without_Prep it_NP)
    yes_Utt : Utt 
yes_Utt
    youSg_Pron : Pron  -- you (singular)
mkUtt (mkNP youSg_Pron)
    youPl_Pron : Pron  -- you (plural)
mkUtt (mkNP youPl_Pron)
    youPol_Pron : Pron  -- you (polite)
mkUtt (mkNP youPol_Pron)
    no_Quant : Quant  
mkUtt (mkNP no_Quant house_N)
    not_Predet : Predet 
mkUtt (mkNP not_Predet everybody_NP)
    if_then_Conj : Conj 
mkUtt (mkAdv if_then_Conj here_Adv there_Adv)
    at_least_AdN : AdN 
mkUtt (mkCard at_least_AdN (mkCard (mkNumeral n8_Unit)))
    at_most_AdN : AdN 
mkUtt (mkCard at_most_AdN (mkCard (mkNumeral n8_Unit)))
    nobody_NP : NP 
mkUtt nobody_NP
    nothing_NP : NP 
mkUtt nothing_NP
    except_Prep : Prep 
mkUtt (mkAdv except_Prep it_NP)
    as_CAdv : CAdv 
as_CAdv
    have_V2 : V2 
mkUtt (mkVP have_V2 it_NP)
