return getPureFactory().makeList(first.make(args), (ATermList) next.make(args));
ATerm head = first.make(args); ATermList tail = (ATermList) next.make(args); if(isListPlaceHolder(first)) {  return head; } else { return getPureFactory().makeList(head, tail); }
  public ATerm make(List args) {    if (first == null) {      return this;    }    return getPureFactory().makeList(first.make(args), (ATermList) next.make(args));  }