public static Cons walkMakeTree(Cons tree, Object [] MV_returnarray) {
    { Stella_Object classname = tree.rest.value;
      Cons arguments = tree.rest.rest;
      Surrogate type = null;
      Stella_Class renamed_Class = null;

      if (Stella_Object.symbolP(classname)) {
      }
      else if (Stella_Object.typeP(classname)) {
        tree.secondSetter(Symbol.internSymbolInModule(((Surrogate)(classname)).symbolName, ((Module)(((Surrogate)(classname)).homeContext)), true));
      }
      else {
        { 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(" Bad argument to 'make':");
                Stella.STANDARD_ERROR.nativeStream.println("   `" + Stella_Object.deUglifyParseTree(classname) + "' found where symbol expected.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
          }
        }
        return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_UNKNOWN, MV_returnarray));
      }
      type = Stella_Object.typify(classname);
      renamed_Class = ((Stella_Class)(type.surrogateValue));
      if (!(renamed_Class != null)) {
        { 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(" Reference to undefined class `" + Stella_Object.deUglifyParseTree(classname) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
          }
        }
        return (Stella_Object.walkDontCallMeTree(tree, Stella.SGT_STELLA_UNKNOWN, MV_returnarray));
      }
      if ((!(arguments == Stella.NIL)) &&
          (!Stella_Class.exceptionClassP(renamed_Class))) {
        if (((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_CPP) {
          if (!(((StringWrapper)(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_CLASS_CPP_NATIVE_TYPE, Stella.NULL_STRING_WRAPPER))).wrapperValue != null)) {
            { Object old$PrintreadablyP$002 = 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(" MAKE arguments not supported for non-native class `" + Stella_Object.deUglifyParseTree(classname) + "'.");
                  }
;
                }

              } finally {
                Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$002);
              }
            }
            return (Stella_Object.walkDontCallMeTree(tree, type, MV_returnarray));
          }
        }
        else if (((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_JAVA) {
          if (!(((StringWrapper)(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_CLASS_JAVA_NATIVE_TYPE, Stella.NULL_STRING_WRAPPER))).wrapperValue != null)) {
            { Object old$PrintreadablyP$003 = 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(" MAKE arguments not supported for non-native class `" + Stella_Object.deUglifyParseTree(classname) + "'.");
                  }
;
                }

              } finally {
                Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$003);
              }
            }
            return (Stella_Object.walkDontCallMeTree(tree, type, MV_returnarray));
          }
        }
        else {
          { Object old$PrintreadablyP$004 = Stella.$PRINTREADABLYp$.get();

            try {
              Native.setBooleanSpecial(Stella.$PRINTREADABLYp$, true);
              Stella.signalTranslationWarning();
              if (!(Stella.suppressWarningsP())) {
                Stella.printErrorContext(">> WARNING: ", Stella.STANDARD_WARNING);
                {
                  Stella.STANDARD_WARNING.nativeStream.println();
                  Stella.STANDARD_WARNING.nativeStream.println(" MAKE arguments not supported for `" + Stella.translatorOutputLanguageName() + "'; skipping them.");
                }
;
              }

            } finally {
              Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$004);
            }
          }
          arguments = Stella.NIL;
        }
      }
      tree.rest.rest = Cons.walkListOfTrees(arguments);
      { Cons _return_temp = tree;

        MV_returnarray[0] = type;
        return (_return_temp);
      }
    }
  }