anchor.diff:  %%% @doc Behavior for entities to use when added to a gen_event manager,
   %%% and associated functions to fire events into a gen_event manager so
   %%% a callback module can be used.
  -%%% 
  +%%%
   %%% The callback module detemines if a given entity_event is valuable or
   %%% not. It is expected that most events will simple end up being a no-op.
   %%%
  
positive.code: 
  -record(?MODULE, {
  	% the '_' make it easy to build a matchspec.
  	id = '_', state = '_', gen_event = '_' 
  }).
  
  %% ---------------------------------------------------------------------------------------------------------------------
  
negative.code: 
  -callback init(Args :: list(any())) -> {'ok', any()}.
  -callback simulate(Delta :: integer(), State :: any()) -> {'ok', any()}.
  -callback handle_event(Name :: atom(), From :: 'undefined' | any(), To :: 'undefined' | any(), Data :: any(), State :: any()) -> {'ok', any()}.
  -callback removed(Why :: any(), State :: any()) -> any().
  -callback stopping(State :: any()) -> 'persist' | {'persist', any()} | 'ok'.
  
  