if (first == null) { return this;
if (this == factory.empty) { return factory.empty;
  public ATerm make(List args)  {    if (first == null) {      return this;    }    System.out.println("first: " + first);    System.out.println("next: " + next);    ATerm head = first.make(args);    ATermList tail = (ATermList) next.make(args);System.out.println("head: " + head + " tail: " + tail);    return factory.makeList(head, tail);  }