anchor.diff:  
  -%% Temporary compiler warning fix
  --export([receive_reply/1]).
  +%% Extra single data flow methods to add:
  +%%   TODO: Add 'shuffle' to randomly sample without duplicates
  +%%   TODO: Add 'consume' to use round_robin but expire at end of task
  +%%          consume requires {Init_Count, Threshold_Count, Replenish_Count}
   
  -%% TODO: Add 'ephemeral' to use round_robin but expire at end of task
   -type single_data_flow_method() :: random | round_robin.
  +
  +%% Extra multiple data flow methods to add:
  +%%    TODO: Add 'multichoice' for selecting subset of nodes
  +
   -type multiple_data_flow_method() :: broadcast.
  +
   -type data_flow_method() :: single_data_flow_method() | multiple_data_flow_method().
   
   -type task_function() :: {module(), atom()}.
  
positive.code: -type coop_head() :: {coop_head, pid(), pid()}.
  -type coop_node() :: {coop_node, pid(), pid()}.
  
  -define(DAG_TOKEN,  '$$_DAG').
  -define(DATA_TOKEN, '$$_DATA').
  -define(CTL_TOKEN,  '$$_CTL').
  -define(ROOT_TOKEN, '$$_ROOT').
  
  -define(SEND_CTL_MSG(__Coop_Node, __Ctl_Msg),
          {coop_node, __Ctl_Pid, __Task_Pid} = __Coop_Node,
          __Ctl_Pid ! {?DAG_TOKEN, ?CTL_TOKEN, __Ctl_Msg}).
  
negative.code:         {coop_node, __Ctl_Pid, __Task_Pid} = __Coop_Node,
          __Ctl_Pid ! {?DAG_TOKEN, ?CTL_TOKEN, __Ctl_Msg, __Flag, __Caller}).
  
  