anchor.diff:  -spec(lookup_process/1 :: (pid()) -> {any(), any()} | failed).
   lookup_process(Pid) ->
       case ets:match(?MODULE, {'$1',Pid}) of
  -	[[{Group, Name}]] ->
  -	    {Group, Name};
  -	[] ->
  -	    failed
  +        [[{Group, Name}]] ->
  +            {Group, Name};
  +        [] ->
  +            failed
       end.
   
   %% @doc tries to find a cs_node process
  
positive.code:              failed
           end.
  
  
  
  
  
  find_all_groups([], Set) ->
      Set;
  find_all_groups([{{InstanceId, _}, _} | Rest], Set) ->
  
negative.code: 
  %@private
  
  -spec(on/2 :: (any(), null) -> null).
  on({register_process, InstanceId, Name, Pid}, State) ->
      case ets:insert_new(?MODULE, {{InstanceId, Name}, Pid}) of
          true ->
              link(Pid);
          false ->
              OldPid = ets:lookup_element(?MODULE, {InstanceId, Name}, 2),
              unlink(OldPid),
              link(Pid),
              ets:insert_new(?MODULE, {{InstanceId, Name}, Pid})
      end,
      cs_send:send_local(Pid , {ok}),
      State;
  on({drop_state}, State) ->
      % only for unit tests
      Links = ets:match(?MODULE, {'_', '$1'}),
      [unlink(Pid) || [Pid] <- Links],
      ets:delete_all_objects(?MODULE),
      State;
  on({'EXIT', FromPid, _Reason}, State) ->
      Processes = ets:match(?MODULE, {'$1', FromPid}),
      [ets:delete(?MODULE, {InstanceId, Name}) || [{InstanceId, Name}] <- Processes],
      State;
  on(_, _State) ->
      unknown_event.
  
  