public static Cons transformLetWithProceduralExpression(Cons tree) {
    { Cons firstdeclaration = ((Cons)(((Cons)(tree.rest.value)).value));
      Stella_Object typetree = firstdeclaration.rest.value;
      Stella_Object vrlettree = Stella_Object.walkWithoutTypeTree(firstdeclaration.rest.rest.value);

      if (typetree == Stella.SGT_STELLA_UNKNOWN) {
        firstdeclaration.rest = firstdeclaration.rest.rest;
      }
      { Cons otree = null;
        StandardObject unusedtypespec = null;

        { Object [] caller_MV_returnarray = new Object[1];

          otree = Cons.transformProceduralExpression(tree, ((Cons)(vrlettree)), ((StandardObject)(typetree)), caller_MV_returnarray);
          unusedtypespec = ((StandardObject)(caller_MV_returnarray[0]));
        }
        unusedtypespec = unusedtypespec;
        return (otree);
      }
    }
  }