concrete PhraseRon of Phrase = CatRon ** open ResRon, Prelude in { flags optimize = all_subs ; lin PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; UttS s = {s = s.s ! Indic} ; UttQS qs = {s = qs.s ! QDir} ; UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False ! Fem} ; UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False ! Fem} ; UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True ! Fem} ; UttIP ip = {s = ip.s ! No} ; UttIAdv iadv = iadv ; UttNP np = {s = (np.s ! No).comp} ; UttVP vp = let a = agrP3 Masc Sg in {s = "sã" ++ (flattenSimpleClitics vp.nrClit vp.clAcc vp.clDat (vp.isRefl ! a)) ++ conjVP vp a ++vp.comp ! a ++ vp.ext ! Pos} ; UttAdv adv = adv ; UttCN cn = {s = cn.s ! Sg ! Indef ! ANomAcc} ; UttAP ap = {s = ap.s ! AF Masc Sg Indef ANomAcc} ; UttCard n = {s = n.sp ! Masc} ; NoPConj = {s = []} ; PConjConj conj = {s = conj.s2} ; NoVoc = {s = []} ; VocNP np = {s = "," ++ (np.s ! Vo).comp} ; }