public boolean canAppendMatch() {for (Head head : heads) {if (head != LastHead.INSTANCE) {return true;}}return false;}
public virtual bool CanAppendMatch(){for (int i = 0; i < heads.Count; i++){if (heads[i] != LastHead.INSTANCE){return true;}}return false;}