Here’s something I don’t understand.
We used to have, in matrix.tdl:
basic-extracted-subj-phrase := basic-extracted-arg-phrase & head-compositional & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < >, COMPS #comps, SPEC #spec, SPR #spr ], HEAD-DTR.SYNSEM [ LOCAL.CAT [ VAL [ SUBJ < gap & [ LOCAL #slash & local & [ CONT.HOOK.INDEX ref-ind ] ] >, SPR #spr, COMPS #comps, SPEC #spec], MC na ], NON-LOCAL.SLASH.LIST < #slash >], C-CONT [ RELS 0-alist, HCONS 0-alist, ICONS 0-alist ] ].
This did not work for multiple fronting, and furthermore, Emily had pointed out back then that this explicit constraint is unnecessary with lexical threading. The gap on the SUBJ list will end up on the SLASH list. Indeed taking it out fixed things for me. I was still adding these constraints by default by mistake (when my library wasn’t customized). And now that I noticed that and took them out, an information structure test started failing; somehow it requires this explicit constraint, otherwise it loses the link between the event and the ARG1. But I don’t have this problem in my tests? Why would that be? What should I be looking at here? The main verb is just a transitive verb, so, lexical threading should apply. In fact, the parse which does not involve any special rules has correct semantics, so, it is not the lexical entries that are to blame.
I suspect the type called nf-head-comp-phrase that the information structure library uses because it is special and it is involved everywhere in this test. Except that type seems to inherit perfectly fine from head-valence-phrase (ultimately), so why would appends be broken there?
I don’t need to fix this, especially not if lexical threading is going out, but wanted to document it here (I opened also a bug on github).