anchor.diff:                  undefined -> ignore;
                   _ -> PoolPid!DyingMessage
               end,
  -            erlang:exit(FunctionPid, async_die);
  +            erlang:exit(FunctionPid, async_die),
  +            erlang:exit({guardian_process, exiting_accumulator_died});
   
           {'DOWN', _, process, PoolPid, _} ->
  +            ?PRINT({down, process, PoolPid}),
               % The pool should never die on us.
  -            ?PRINT(unexpected_pool_death);
  +            ?PRINT(unexpected_pool_death),
  +            erlang:exit({guardian_process, exiting_pool_died});
   
           Other ->
               ?PRINT({FunctionPid, AccumulatorPid, PoolPid}),
  -            ?PRINT({guardian_process, unhandled_event, Other})
  +            ?PRINT({guardian_process, unhandled_event, Other}),
  +            guardian_process(FunctionPid, AccumulatorPid, PoolPid, DyingMessage)
       end.
   
   
  
positive.code: % The accumulator_loop keeps track of guardian processes within a pool,
  % and gathers actions from the various AsyncFunctions in order 
  % to send it the page when the actions are requested.
  %
  accumulator_loop(Guardians, Actions, Waiting, TimerRef) ->
      receive
          {add_guardian, Pid} ->
  
negative.code:             accumulator_loop([Pid|Guardians], Actions, Waiting, TimerRef);
  
          {'DOWN', _, process, Pid, _} ->
              ?PRINT({down, process, Pid}),
              accumulator_loop(Guardians -- [Pid], Actions, Waiting, TimerRef);
  
          {add_actions, NewActions} ->
  