static class JNatList { }

static class JconcJNat extends JNatList {
  public JNat head;
  public JNatList tail;
  public JconcJNat() { head = null; tail = null; }
  public JconcJNat(JNat h, JNatList ntail) {
    head = h;
    tail = ntail;
  }
  public boolean isEmpty() {
    return (head == null && tail == null);
  }
  public boolean equals(Object o) {
    if (o instanceof JconcJNat) {
      JconcJNat obj = (JconcJNat) o;
      if (this.isEmpty() && obj.isEmpty()) {
        return true;
      } else if (!this.isEmpty() && !obj.isEmpty()) {
        return 
          head.equals(obj.head) && tail.equals(obj.tail);
      }
    }
    return false;
  }
}
