public static Surrogate defineStellaTypeFromParseTree(Cons tree) {
    { Stella_Object typename = tree.rest.value;
      StandardObject typedefinition = tree.rest.rest.value.yieldTypeSpecifier();
      Surrogate type = null;

      if (Surrogate.subtypeOfSymbolP(Stella_Object.safePrimaryType(typename))) {
        { Symbol typename000 = ((Symbol)(typename));

          type = Stella_Object.typify(typename000);
          if ((!Surrogate.definedTypeP(type)) &&
              (type.surrogateValue != null)) {
            { 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(" Cannot define type `" + Stella_Object.deUglifyParseTree(typename000) + "', since `" + Stella_Object.deUglifyParseTree(type) + "'");
                    Stella.STANDARD_ERROR.nativeStream.println("   already points to `" + type.surrogateValue + "'.");
                  }
;
                }

              } finally {
                Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$000);
              }
            }
            return (null);
          }
          type.surrogateValue = typedefinition;
          return (type);
        }
      }
      else {
        { 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(" Illegal type name: `" + Stella_Object.deUglifyParseTree(typename) + "'.");
              }
;
            }

          } finally {
            Stella.$PRINTREADABLYp$.set(old$PrintreadablyP$001);
          }
        }
        return (null);
      }
    }
  }