anchor.diff:  
   -behaviour(algorithm).
   %% API
  --export([test/0, display/2, run/3]).
  +-export([test/0,
  +         display/2,
  +         run/3,
  +         poolboy_transaction/5]).
   
   -include("parallant.hrl").
   
  
positive.code:     logger:log(NewEnv),
      step(T+1, MaxT, NewEnv, Pool, Config).
  
  mk_send_to_worker(Pool, GetMoves) ->
      Caller = self(),
      fun (Agents) ->
              PoolboyTransaction =
                  fun () ->
                          poolboy:transaction(Pool,
                                              mk_worker(Caller, Agents, GetMoves))
                  end,
              spawn(PoolboyTransaction)
      end.
  
  mk_worker(Caller, Agents, GetMoves) ->
      fun (Pid) ->
              Result = gen_server:call(Pid, {agents, Agents, GetMoves}),
              Caller ! {agents, Result}
      end.
  
negative.code: 
      ProcessTile =
          fun(Tile, E) ->
                  lists:map
                    (fun(Agents) ->
                             send_to_work(Pool, Agents, Env, Config)
                     end,
                     Tile),
                  Moves = collect_results(Tile),
                  parallant:apply_moves(Moves, E, Config)
          end,
  