--concrete SentenceTel of Sentence = CatTel ** open Prelude, ResTel in {
--
--  flags optimize=all_subs ;
--
--  lin
--
--    PredVP np vp = mkClause np vp ;
--
----    PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
----
----    ImpVP vp = {
----      s = \\pol,n => 
----        let 
----          agr   = AgP2 (numImp n) ;
----          verb  = infVP True vp agr ;
----          dont  = case pol of {
----            CNeg True => "don't" ;
----            CNeg False => "do" ++ "not" ;
----            _ => []
----            }
----        in
----        dont ++ verb
----    } ;
----
----    SlashVP np vp = 
----      mkClause (np.s ! Nom) np.a vp ** {c2 = vp.c2} ;
----
----    AdvSlash slash adv = {
----      s  = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ;
----      c2 = slash.c2
----    } ;
----
----    SlashPrep cl prep = cl ** {c2 = prep.s} ;
----
----    SlashVS np vs slash = 
----      mkClause (np.s ! Nom) np.a 
----        (insertObj (\\_ => conjThat ++ slash.s) (predV vs))  **
----        {c2 = slash.c2} ;
----
----    EmbedS  s  = {s = conjThat ++ s.s} ;
----    EmbedQS qs = {s = qs.s ! QIndir} ;
----    EmbedVP vp = {s = infVP False vp (agrP3 Sg)} ; --- agr
----
----    UseCl  t a p cl = {
----      s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! ODir
----    } ;
----    UseQCl t a p cl = {
----      s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! q
----    } ;
----    UseRCl t a p cl = {
----      s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p ! r ;
----      c = cl.c
----    } ;
----    UseSlash t a p cl = {
----      s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! ctr p.p  ! ODir ;
----      c2 = cl.c2
----    } ;
----
----    AdvS a s = {s = a.s ++ "," ++ s.s} ;
----
----    RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ;
----
----  oper
----    ctr = contrNeg True ;  -- contracted negations
----
--}
