* @param varList
   * @param constraintTest
   * @param positionComputations
   * @return Stella_Object
   */
  public static Stella_Object defineComputedConstraint(Symbol name, Cons varList, Cons constraintTest, Cons positionComputations) {
    { Cons valuecomputationcode = Stella.NIL;
      Symbol valuesymbol = Symbol.internSymbol("VALUE");

      { Stella_Object computation = null;
        Cons iter000 = positionComputations;
        int i = Stella.NULL_INTEGER;
        int iter001 = 0;
        Cons collect000 = null;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest, iter001 = iter001 + 1) {
          computation = iter000.value;
          i = iter001;
          if (collect000 == null) {
            {
              collect000 = Cons.cons(Cons.cons(IntegerWrapper.wrapInteger(i), Cons.cons(computation, Stella.NIL)), Stella.NIL);
              if (valuecomputationcode == Stella.NIL) {
                valuecomputationcode = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(valuecomputationcode, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(Cons.cons(IntegerWrapper.wrapInteger(i), Cons.cons(computation, Stella.NIL)), Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      return (Cons.list$(Cons.cons(Logic.SYM_STELLA_DEFUN, Cons.cons(Cons.cons(name, Cons.cons(Logic.SYM_STELLA_OBJECT, Stella.NIL)), Cons.cons(Cons.cons(Cons.list$(Cons.cons(Logic.SYM_LOGIC_MISSING_ARGUMENT, Cons.cons(Logic.SYM_STELLA_INTEGER_WRAPPER, Cons.cons(Stella.NIL, Stella.NIL)))), varList.concatenate(Stella.NIL, Stella.NIL)), Cons.cons(Cons.list$(Cons.cons(Logic.SYM_STELLA_LET, Cons.cons(Cons.cons(Cons.cons(valuesymbol, Cons.list$(Cons.cons(Logic.SYM_STELLA_OBJECT, Cons.cons(Logic.SYM_STELLA_NULL, Cons.cons(Stella.NIL, Stella.NIL))))), Stella.NIL), Cons.cons(Cons.list$(Cons.cons(Logic.SYM_STELLA_CASE, Cons.cons(Cons.list$(Cons.cons(Logic.SYM_STELLA_WRAPPER_VALUE, Cons.cons(Logic.SYM_LOGIC_MISSING_ARGUMENT, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Cons.list$(Cons.cons(IntegerWrapper.wrapInteger(-1), Cons.cons(constraintTest, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(valuecomputationcode.concatenate(Cons.cons(Cons.list$(Cons.cons(Logic.SYM_STELLA_OTHERWISE, Cons.cons(Logic.SYM_STELLA_NULL, Cons.cons(Stella.NIL, Stella.NIL)))), Stella.NIL), Stella.NIL), Stella.NIL))))), Cons.cons(Cons.list$(Cons.cons(Logic.SYM_STELLA_RETURN, Cons.cons(valuesymbol, Cons.cons(Stella.NIL, Stella.NIL)))), Cons.cons(Stella.NIL, Stella.NIL)))))), Cons.cons(Stella.NIL, Stella.NIL)))))));
    }
  }