public static void createAccessorUnitsForSlot(StorageSlot slot, Stella_Class renamed_Class, boolean mixinaccessorsP, boolean signaturesonlyP) {
    { Cons methodtree = null;
      MethodSlot method = null;

      if (StorageSlot.systemDefinedSlotReaderP(slot)) {
        methodtree = StorageSlot.yieldSlotReaderTree(slot, renamed_Class);
        if (signaturesonlyP) {
          { Object old$Module$000 = Stella.$MODULE$.get();
            Object old$Context$000 = Stella.$CONTEXT$.get();

            try {
              Native.setSpecial(Stella.$MODULE$, slot.homeModule());
              Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
              method = Cons.defineMethodFromParseTree(methodtree);

            } finally {
              Stella.$CONTEXT$.set(old$Context$000);
              Stella.$MODULE$.set(old$Module$000);
            }
          }
        }
        else {
          method = ((MethodSlot)(Cons.helpWalkAuxiliaryTree(methodtree, true).theObject));
        }
        MethodSlot.registerAuxiliaryMethod(method, slot);
      }
      if (StorageSlot.systemDefinedSlotWriterP(slot)) {
        methodtree = StorageSlot.yieldSlotWriterTree(slot, renamed_Class);
        if (signaturesonlyP) {
          { Object old$Module$001 = Stella.$MODULE$.get();
            Object old$Context$001 = Stella.$CONTEXT$.get();

            try {
              Native.setSpecial(Stella.$MODULE$, slot.homeModule());
              Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
              method = Cons.defineMethodFromParseTree(methodtree);

            } finally {
              Stella.$CONTEXT$.set(old$Context$001);
              Stella.$MODULE$.set(old$Module$001);
            }
          }
        }
        else {
          method = ((MethodSlot)(Cons.helpWalkAuxiliaryTree(methodtree, true).theObject));
        }
        MethodSlot.registerAuxiliaryMethod(method, slot);
      }
      if (mixinaccessorsP &&
          (!slot.abstractP)) {
        methodtree = StorageSlot.yieldNativeSlotReaderTree(slot, renamed_Class);
        if (signaturesonlyP) {
          { Object old$Module$002 = Stella.$MODULE$.get();
            Object old$Context$002 = Stella.$CONTEXT$.get();

            try {
              Native.setSpecial(Stella.$MODULE$, slot.homeModule());
              Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
              method = Cons.defineMethodFromParseTree(methodtree);

            } finally {
              Stella.$CONTEXT$.set(old$Context$002);
              Stella.$MODULE$.set(old$Module$002);
            }
          }
        }
        else {
          method = ((MethodSlot)(Cons.helpWalkAuxiliaryTree(methodtree, true).theObject));
        }
        MethodSlot.registerAuxiliaryMethod(method, slot);
        if (!(slot.slotHardwiredP)) {
          methodtree = StorageSlot.yieldNativeSlotWriterTree(slot, renamed_Class);
          if (signaturesonlyP) {
            { Object old$Module$003 = Stella.$MODULE$.get();
              Object old$Context$003 = Stella.$CONTEXT$.get();

              try {
                Native.setSpecial(Stella.$MODULE$, slot.homeModule());
                Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
                method = Cons.defineMethodFromParseTree(methodtree);

              } finally {
                Stella.$CONTEXT$.set(old$Context$003);
                Stella.$MODULE$.set(old$Module$003);
              }
            }
          }
          else {
            method = ((MethodSlot)(Cons.helpWalkAuxiliaryTree(methodtree, true).theObject));
          }
          MethodSlot.registerAuxiliaryMethod(method, slot);
        }
      }
    }
  }