* @param optionsTable
   * @param MV_returnarray
   * @return Stella_Object
   */
  public static Stella_Object destructureDefmethodTree(Cons methodTree, KeyValueList optionsTable, Object [] MV_returnarray) {
    { Stella_Object nametree = methodTree.rest.value;
      Stella_Object parameterstree = methodTree.rest.rest.value;

      if (!Stella_Object.consP(parameterstree)) {
        if (parameterstree == null) {
          { Object old$PrintreadablyP$000 = Stella.$PRINTREADABLYp$.get();

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              Stella.signalTranslationError();
              if (!(Stella.suppressWarningsP())) {
                Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                {
                  Stella.STANDARD_ERROR.nativeStream.println();
                  Stella.STANDARD_ERROR.nativeStream.println(" Missing parameter list.");
                }
;
              }

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
            }
          }
        }
        else {
          { Object old$PrintreadablyP$001 = Stella.$PRINTREADABLYp$.get();

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              Stella.signalTranslationError();
              if (!(Stella.suppressWarningsP())) {
                Stella.printErrorContext(">> ERROR: ", Stella.STANDARD_ERROR);
                {
                  Stella.STANDARD_ERROR.nativeStream.println();
                  Stella.STANDARD_ERROR.nativeStream.println(" Illegal parameter list: `" + Stella_Object.deUglifyParseTree(parameterstree) + "'.");
                }
;
              }

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
            }
          }
        }
        parameterstree = Stella.NIL;
      }
      Cons.extractOptions(methodTree, optionsTable);
      { Stella_Object _return_temp = nametree;

        MV_returnarray[0] = ((Cons)(parameterstree));
        MV_returnarray[1] = methodTree.nthRest(3);
        return (_return_temp);
      }
    }
  }