After I converted everything to append-lists and also got rid of specific append-list subtypes (like 0-1-alist), I ended up with head-filler rules which happily take as head daughters things which aren’t supposed to have nonempty SLASH lists.
I am trying to get rid of that but somehow this seems to have zero effect (see particularly the constraint on the HEAD-DTR of wh-ques-phrase; the rest are given for context):
experimental-basic-filler-phrase := binary-phrase & phrasal & [ SYNSEM [ LOCAL.CAT.VAL [ SPR < > ] ], ARGS < [ SYNSEM [ LOCAL local & [ COORD -, CAT.VAL [ SUBJ olist, COMPS olist, SPR olist ], CTXT.ACTIVATED + ], NON-LOCAL.SLASH append-list ] ], [ SYNSEM [ LOCAL [ COORD -, CAT [ VAL.COMPS olist ] ], NON-LOCAL [ SLASH append-list, REL 0-alist ] ] ] > ]. experimental-1st-head-filler-phrase := experimental-basic-filler-phrase & head-compositional & [ SYNSEM.NON-LOCAL.SLASH.LIST #slash, ARGS < [ SYNSEM.LOCAL #local ], [ SYNSEM.NON-LOCAL [ SLASH.LIST < #local . #slash >, REL 0-alist ] ] > ]. wh-ques-phrase := experimental-interrogative-clause & head-final & [ SYNSEM.LOCAL.CAT [ MC bool, VAL #val, HEAD verb & [ FORM finite ] ], HEAD-DTR.SYNSEM [ LOCAL.CAT [ MC na-or-+, VAL #val ], NON-LOCAL.SLASH.LIST cons ], NON-HEAD-DTR.SYNSEM [ LOCAL.CAT.VAL [ SPR < >, COMPS < >, SUBJ < >], NON-LOCAL.QUE.LIST < ref-ind > ] ]. wh-1st-ques-phrase := experimental-1st-head-filler-phrase & wh-ques-phrase.
Does anyone see what am I doing wrong or has an idea where else I should look?