public static Stella_Object deUglifyParseTree(Stella_Object tree) {
    if (tree == null) {
      return (null);
    }
    { Surrogate testValue000 = Stella_Object.safePrimaryType(tree);

      if (testValue000 == Stella.SGT_STELLA_CONS) {
        { Cons tree000 = ((Cons)(tree));

          { Stella_Object operator = tree000.value;

            if (!Stella_Object.symbolP(operator)) {
              return (Cons.deUglifyArguments(tree000));
            }
            { GeneralizedSymbol testValue001 = ((GeneralizedSymbol)(operator));

              if ((testValue001 == Stella.SYM_STELLA_SYS_SLOT_VALUE) ||
                  ((testValue001 == Stella.SYM_STELLA_SYS_SLOT_VALUE_SETTER) ||
                   (testValue001 == Stella.SYM_STELLA_SYS_CALL_METHOD))) {
                return (Stella_Object.deUglifyParseTree(tree000.rest.rest));
              }
              else if (testValue001 == Stella.SYM_STELLA_SYS_CALL_FUNCTION) {
                return (Stella_Object.deUglifyParseTree(tree000.rest));
              }
              else if ((testValue001 == Stella.SYM_STELLA_TYPED_SYS) ||
                  ((testValue001 == Stella.SYM_STELLA_VOID_SYS) ||
                   (testValue001 == Stella.SYM_STELLA_BAD_SYS))) {
                return (Stella_Object.deUglifyParseTree(tree000.rest.value));
              }
              else if (testValue001 == Stella.SYM_STELLA_GET_SYM) {
                return (Symbol.getSymFromOffset(((IntegerWrapper)(tree000.rest.value)).wrapperValue));
              }
              else {
                { Cons prettyarguments = Stella.NIL;

                  { Stella_Object arg = null;
                    Cons iter000 = tree000.rest;
                    Cons collect000 = null;

                    for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                      arg = iter000.value;
                      if (collect000 == null) {
                        {
                          collect000 = Cons.cons(Stella_Object.deUglifyParseTree(arg), Stella.NIL);
                          if (prettyarguments == Stella.NIL) {
                            prettyarguments = collect000;
                          }
                          else {
                            Cons.addConsToEndOfConsList(prettyarguments, collect000);
                          }
                        }
                      }
                      else {
                        {
                          collect000.rest = Cons.cons(Stella_Object.deUglifyParseTree(arg), Stella.NIL);
                          collect000 = collect000.rest;
                        }
                      }
                    }
                  }
                  return (Cons.cons(operator, prettyarguments.concatenate(Stella.NIL, Stella.NIL)));
                }
              }
            }
          }
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Stella.SGT_STELLA_COMPOUND_TYPE_SPECIFIER)) {
        { CompoundTypeSpecifier tree000 = ((CompoundTypeSpecifier)(tree));

          return (StandardObject.yieldTypeSpecTree(tree000));
        }
      }
      else {
        return (tree);
      }
    }
  }