* @param otherlists
   * @return Cons
   */
  public Cons concatenate(Cons list2, Cons otherlists) {
    { Cons list1 = this;

      if (list1 == Stella.NIL) {
        list1 = list2;
      }
      else {
        if (list2 == Stella.NIL) {
          list2 = list1;
        }
        else {
          Cons.lastCons(list1).rest = list2;
        }
      }
      if (otherlists.length() > 0) {
        { Cons list = null;
          Cons iter000 = otherlists;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
            list = ((Cons)(iter000.value));
            if (!(list == Stella.NIL)) {
              if (!(list2 == Stella.NIL)) {
                Cons.lastCons(list2).rest = list;
              }
              else {
                list1 = list;
              }
              list2 = list;
            }
          }
        }
      }
      return (list1);
    }
  }