public static void createDefprintUnit(Stella_Class renamed_Class) {
    if (!(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_PRINT_FORM, null) == null)) {
      Cons.walkAuxiliaryTree(Cons.list$(Cons.cons(Stella.SYM_STELLA_DEFMETHOD, Cons.cons(Stella.SYM_STELLA_PRINT_OBJECT, Cons.cons(Cons.list$(Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(renamed_Class.classType, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_STREAM, Cons.cons(Stella.SYM_STELLA_NATIVE_OUTPUT_STREAM, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.KWD_PUBLICp, Cons.cons(Stella.SYM_STELLA_TRUE, Cons.cons(Stella_Object.copyConsTree(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_PRINT_FORM, null)), Cons.cons(Stella.NIL, Stella.NIL)))))))));
      { boolean testValue000 = false;

        testValue000 = ((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_CPP;
        if (testValue000) {
          { boolean foundP000 = false;

            { Stella_Class renamed_Super = null;
              Cons iter000 = renamed_Class.classAllSuperClasses;

              loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                renamed_Super = ((Stella_Class)(iter000.value));
                if (KeyValueList.dynamicSlotValue(renamed_Super.dynamicSlots, Stella.SYM_STELLA_PRINT_FORM, null) != null) {
                  foundP000 = true;
                  break loop000;
                }
              }
            }
            testValue000 = foundP000;
          }
          testValue000 = !testValue000;
        }
        if (testValue000) {
          Symbol.pushVariableBinding(Stella.SYM_STELLA_SELF, renamed_Class.classType);
          Symbol.pushVariableBinding(Stella.SYM_STELLA_STREAM, Stella.SGT_STELLA_NATIVE_OUTPUT_STREAM);
          { TranslationUnit self000 = TranslationUnit.newTranslationUnit();

            self000.theObject = renamed_Class;
            self000.category = Stella.SYM_STELLA_PRINT_METHOD;
            self000.tuHomeModule = ((Module)(Stella.$MODULE$.get()));
            self000.codeRegister = Stella_Object.walkATree(Cons.list$(Cons.cons(Stella.SYM_STELLA_IF, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_NULLp, Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_PRINT_NATIVE_STREAM, Cons.cons(Stella.SYM_STELLA_STREAM, Cons.cons(StringWrapper.wrapString("!NULL!"), Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_PRINT_OBJECT, Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Stella.SYM_STELLA_STREAM, Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL)))))), new Object[1]);
            self000.auxiliaryP = true;
            ((List)(Stella.$TRANSLATIONUNITS$.get())).push(self000);
          }
          Stella.popVariableBinding();
          Stella.popVariableBinding();
        }
      }
      { boolean testValue001 = false;

        testValue001 = ((Keyword)(Stella.$TRANSLATOROUTPUTLANGUAGE$.get())) == Stella.KWD_JAVA;
        if (testValue001) {
          { boolean foundP001 = false;

            { Stella_Class renamed_Super = null;
              Cons iter001 = renamed_Class.classAllSuperClasses;

              loop001 : for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
                renamed_Super = ((Stella_Class)(iter001.value));
                if (KeyValueList.dynamicSlotValue(renamed_Super.dynamicSlots, Stella.SYM_STELLA_PRINT_FORM, null) != null) {
                  foundP001 = true;
                  break loop001;
                }
              }
            }
            testValue001 = foundP001;
          }
          testValue001 = !testValue001;
        }
        if (testValue001) {
          { Object old$Methodbeingwalked$000 = Stella.$METHODBEINGWALKED$.get();

            try {
              Native.setSpecial(Stella.$METHODBEINGWALKED$, MethodSlot.newMethodSlot());
              ((MethodSlot)(Stella.$METHODBEINGWALKED$.get())).methodReturnTypeSpecifiers = List.list(Cons.cons(Stella.SGT_STELLA_STRING, Stella.NIL));
              Symbol.pushVariableBinding(Stella.SYM_STELLA_SELF, renamed_Class.classType);
              { TranslationUnit self002 = TranslationUnit.newTranslationUnit();

                self002.theObject = renamed_Class;
                self002.category = Stella.SYM_STELLA_PRINT_METHOD;
                self002.tuHomeModule = ((Module)(Stella.$MODULE$.get()));
                self002.codeRegister = Stella_Object.walkATree(Cons.list$(Cons.cons(Stella.SYM_STELLA_IF, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_NULLp, Cons.cons(Stella.SYM_STELLA_SELF, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(StringWrapper.wrapString("!NULL!"), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_RETURN, Cons.cons(Cons.list$(Cons.cons(Stella.SYM_STELLA_VERBATIM, Cons.cons(Stella.KWD_JAVA, Cons.cons(StringWrapper.wrapString("#$(STELLAROOT).javalib.Native.stringify_via_print(self)"), Cons.cons(Stella.NIL, Stella.NIL))))), Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))))), new Object[1]);
                self002.auxiliaryP = true;
                ((List)(Stella.$TRANSLATIONUNITS$.get())).push(self002);
              }
              Stella.popVariableBinding();

            } finally {
              Stella.$METHODBEINGWALKED$.set(old$Methodbeingwalked$000);
            }
          }
        }
      }
    }
  }