anchor.diff:  
   -record(state, {func, func_state}).
   
  +%% API
  +-export([subscribe_link/1, subscribe_link/3, unsubscribe/1]).
  +
  +%% gen_event callbacks
   -export([code_change/3, init/1, handle_call/2, handle_event/2, handle_info/2,
            terminate/2]).
   
  --export([subscribe_link/1, subscribe_link/3, unsubscribe/1]).
  +%% called by proc_lib:start from subscribe_link/3
  +-export([do_subscribe_link/4]).
   
   
   %%
  
positive.code:             Pid ! Event,
              ignored
      end.
  
negative.code: 
  
  subscribe_link(Name, Fun, State) ->
      proc_lib:start(?MODULE, do_subscribe_link, [Name, Fun, State, self()]).
  
  
  unsubscribe(Pid) ->
      Pid ! unsubscribe,
  