anchor.diff:      i_repeat(Fun, Args, Times - 1, Params, NewAcc).
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  -% parallel repeat helper functions 
  +% parallel repeat helper functions
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   -spec parallel_run(pid(), fun(), args(), boolean(), Id::any()) -> ok.
  
positive.code: repeat(Fun, Args, Times, Params) ->
      NewParams = case proplists:is_defined(collect, Params) of
                      false -> Params;
                      _ -> [{accumulate, fun(I, R) -> [I | R] end, []} | 
                                proplists:delete(accumulate, Params)]
                  end,
      Acc = lists:keyfind(accumulate, 1, NewParams),
      case proplists:is_defined(parallel, NewParams) of
          true -> 
              repeat(fun spawn/3, [?MODULE, parallel_run, [self(), Fun, Args, Acc =/= false, ok]], Times),
              case Acc of
                  false -> ok;
  
negative.code:         _    -> T - 1
      end.
  
  %% @doc Returns the smallest integer not smaller than X.
  -spec ceil(X::number()) -> integer().
  ceil(X) when X < 0 ->
      erlang:trunc(X);
  