anchor.diff:                                          #constant{value = _, units = _} = From,
                                           #constant{value = _, units = _} = To]}]} ->
               if
  -                From == To -> looprun(ProcNum, TimeFun, Iterator, Spawn, {constant, Evaluator(From)}, Body, WorkerProvider, State3, Env);
  -                true -> looprun(ProcNum, TimeFun, Iterator, Spawn, {linear, Evaluator(From), Evaluator(To)}, Body, WorkerProvider, State3, Env)
  +                From == To -> looprun(ProcNum, TimeFun, Iterator, Spawn, #const_rate{rate_fun = Evaluator(From)}, Body, WorkerProvider, State3, Env);
  +                true -> looprun(ProcNum, TimeFun, Iterator, Spawn, #linear_rate{from_fun = Evaluator(From), to_fun = Evaluator(To)}, Body, WorkerProvider, State3, Env)
               end
       end.
   
  
positive.code:     {Params, NextState} = eval_expr(Args, State, Env, WorkerProvider),
      apply(mzb_stdlib, Name, [NextState, Env, Meta | Params]).
  
  -spec eval_loop([proplists:property()], [script_expr()], worker_state(), worker_env(), module())
      -> {script_value(), worker_state()}.
  eval_loop(LoopSpec, Body, State, Env, WorkerProvider) ->
  
negative.code:             {nil, State3};
          false ->
              RPSFun = fun (S) -> {undefined, S} end,
              looprun(ProcNum, TimeFun, Iterator, Spawn, #const_rate{rate_fun = RPSFun}, Body, WorkerProvider, State3, Env);
          #operation{args = [#constant{value = _, units = _} = RPS]} ->
              RPSFun = Evaluator(RPS),
              looprun(ProcNum, TimeFun, Iterator, Spawn, #const_rate{rate_fun = RPSFun}, Body, WorkerProvider, State3, Env);
          #operation{args = [#operation{name = think_time,
                                        args = [#constant{units = _} = Rate,
                                                #constant{units = _} = ThinkTime]}]} ->
  