if (isEmpty()) { return rhs; }
  public ATermList concat(ATermList rhs)  {    if (next == PureFactory.empty) {      return factory.makeList(first, rhs);    }    return factory.makeList(first, next.concat(rhs));  }