public static MethodSlot defineMethodFromParseTree(Cons parsetree) {
    if (Cons.badArgumentRangeP(parsetree, 2, Stella.NULL_INTEGER)) {
      return (null);
    }
    { MethodSlot method = null;
      boolean identicalmethodP = false;

      { Object [] caller_MV_returnarray = new Object[1];

        method = Cons.helpDefineMethodFromParseTree(parsetree, null, caller_MV_returnarray);
        identicalmethodP = ((boolean)(((BooleanWrapper)(caller_MV_returnarray[0])).wrapperValue));
      }
      if (!(identicalmethodP ||
          (method == null))) {
        if (((BooleanWrapper)(KeyValueList.dynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_SLOT_AUXILIARYp, Stella.FALSE_WRAPPER))).wrapperValue) {
          method.slotExternalP = true;
        }
        else {
          MethodSlot.attachMethodSlotToOwner(method);
        }
      }
      return (method);
    }
  }