concrete QuestionGla of Question = CatGla ** open Prelude, ResGla, ParadigmsGla in { lincat QVP = SS ; lin IdetCN idet cn = {s = idet.s ++ cn.s ! NOM ! Indef ! Pl} ; IdetIP idet = idet ; IdetQuant iquant num = {s = iquant.s ++ num.s} ; QuestSlash ip cls = {s = \\t,a,p => ip.s ++ "a" ++ whClause t a p cls} ; QuestCl cl = {s = \\t,a,p => polarClause t a p cl} ; QuestVP ip vp = {s = \\t,a,p => ip.s ++ "a" ++ whClause t a p { subj = [] ; n = Sg ; pred = vp }} ; QuestIAdv iadv cls = {s = \\t,a,p => iadv.s ++ whClause t a p cls} ; CompIP ip = ip ; QuestIComp icomp np = {s = \\t,a,p => icomp.s ++ polarClause t a p { subj = linNP np ; n = agrNumber np.a ; pred = questionBiV }} ; AdvIP ip adv = {s = ip.s ++ adv.s} ; PrepIP prep ip = {s = prep.s ! PrepBase ++ ip.s} ; AdvIAdv iadv adv = {s = iadv.s ++ adv.s} ; CompIAdv iadv = iadv ; ComplSlashIP vps ip = {s = vps.s ++ ip.s} ; AdvQVP vp iadv = {s = vp.s ++ iadv.s} ; AddAdvQVP qvp iadv = {s = qvp.s ++ iadv.s} ; QuestQVP ip qvp = {s = \\_,_,_ => ip.s ++ qvp.s} ; oper questionBiV : LinV = { s = "bi" ; conditional = \\_ => "bhiodh" ; imperative = \\_,_ => "bi" ; future = \\_ => "bidh" ; past = \\_ => "bha" ; noun = "bhith" ; participle = "air a bhith" ; copular = True ; complement = [] } ; polarClause : GlaTense -> GlaAnteriority -> GlaPolarity -> LinCl -> Str = \t,a,p,cl -> case of { => "a bheil" ++ cl.subj ++ cl.pred.complement ; => "a bheil" ++ cl.subj ++ AG ++ cl.pred.noun ; => "a bheil" ++ cl.subj ++ cl.pred.participle ; => "an robh" ++ cl.subj ++ cl.pred.complement ; => "an do rinn" ++ cl.subj ++ cl.pred.noun ; => "an robh" ++ cl.subj ++ cl.pred.participle ; => "am bi" ++ cl.subj ++ cl.pred.complement ; => "am bi" ++ cl.subj ++ AG ++ cl.pred.noun ; => "am biodh" ++ cl.subj ++ cl.pred.complement ; => "am biodh" ++ cl.subj ++ AG ++ cl.pred.noun ; => "nach eil" ++ cl.subj ++ cl.pred.complement ; => "nach eil" ++ cl.subj ++ AG ++ cl.pred.noun ; => "nach eil" ++ cl.subj ++ cl.pred.participle ; => "nach robh" ++ cl.subj ++ cl.pred.complement ; => "nach do rinn" ++ cl.subj ++ cl.pred.noun ; => "nach robh" ++ cl.subj ++ cl.pred.participle ; => "nach bi" ++ cl.subj ++ cl.pred.complement ; => "nach bi" ++ cl.subj ++ AG ++ cl.pred.noun ; => "nach biodh" ++ cl.subj ++ cl.pred.complement ; => "nach biodh" ++ cl.subj ++ AG ++ cl.pred.noun } ; whClause : GlaTense -> GlaAnteriority -> GlaPolarity -> LinCl -> Str = \t,a,p,cl -> case of { => "tha" ++ cl.subj ++ cl.pred.complement ; => "tha" ++ cl.subj ++ AG ++ cl.pred.noun ; => "tha" ++ cl.subj ++ cl.pred.participle ; => "bha" ++ cl.subj ++ cl.pred.complement ; => "rinn" ++ cl.subj ++ cl.pred.noun ; => "bha" ++ cl.subj ++ cl.pred.participle ; => "bhios" ++ cl.subj ++ cl.pred.complement ; => "bhios" ++ cl.subj ++ AG ++ cl.pred.noun ; => "bhiodh" ++ cl.subj ++ cl.pred.complement ; => "bhiodh" ++ cl.subj ++ AG ++ cl.pred.noun ; => "nach eil" ++ cl.subj ++ cl.pred.complement ; => "nach eil" ++ cl.subj ++ AG ++ cl.pred.noun ; => "nach eil" ++ cl.subj ++ cl.pred.participle ; => "nach robh" ++ cl.subj ++ cl.pred.complement ; => "nach do rinn" ++ cl.subj ++ cl.pred.noun ; => "nach robh" ++ cl.subj ++ cl.pred.participle ; => "nach bi" ++ cl.subj ++ cl.pred.complement ; => "nach bi" ++ cl.subj ++ AG ++ cl.pred.noun ; => "nach biodh" ++ cl.subj ++ cl.pred.complement ; => "nach biodh" ++ cl.subj ++ AG ++ cl.pred.noun } ; }