add subcat-contraints to make all heads of phrases obey the following:

In any rule, the head’s subcat must have all of the subcat arguments of the parent, (excluding ‘() in e.g. {:3 ‘()}). 

For example, if the parent’s subcat is {:1 :top, :2 :top, :3 ‘()}, then the head’s subcat must be: {:1 :top,:2 :top} (which means that :3 may or may not be present).
hp -> hlcl works