anchor.diff:  handle_info({mnesia_table_event, {delete, Table, Pattern, OldRecords, _ActivityInfo}}, {Mod, Tables, CBState})->
   	{ok, State} = apply(Mod, delete, [Pattern, OldRecords, CBState]),
   	{noreply, State};
  +handle_info({mnesia_system_event, Event}, {Mod, Tables, CBState}) ->
  +	{ok, State} = case Event of
  +		{mnesia_up, Node} ->
  +			apply(Mod, info, [node_up, Node, CBState]);
  +		{mnesia_down, Node} ->
  +			apply(Mod, info, [node_down, Node, CBState]);
  +		{mnesia_overload, Details} ->
  +			apply(Mod, info, [overload, Details, CBState]);
  +		{inconsistent_database, Context, Node} ->
  +			apply(Mod, info, [conflict, {Context, Node}, CBState]);
  +		{mnesia_fatal, Format, Args, BinaryCore} ->
  +			apply(Mod, info, [fatal, {Format, Args, BinaryCore}, CBState]);
  +		{mnesia_user, Event} ->
  +			apply(Mod, info, [user, Event, CBState]);
  +		_ -> CBState
  +	end,
  +	{noreply, {Mod, Tables, State}};
   handle_info(_Info, State) ->
   	{noreply, State}.
   
  
positive.code:                 {create, 2}, % create(NewRecord, State)
                  {update, 3}, % update(NewRecord, OldRecords, State)
                  {delete, 3}, % delete(Pattern,   OldRecords, State)
                  {info, 3},   % info(Type, Item, Details)
  	];
  behaviour_info(_Other) -> undefined.
  
  
negative.code: 
  init({Mod, Tables}) ->
          [{ok, _} = mnesia:subscribe({table, Table, detailed}) || Table <- Tables],
          {ok, _} = mnesia:subscribe(system),
          {ok, State} = apply(Module, init, [Tables]), 
          {ok, {Mod, Tables, State}}.
  
  