anchor.diff:       #assert{}, #state{reply_to=ReplyPid}=_State) ->
       ReplyPid ! P,
       noop;
  +handle_pattern( 
  +     [{_F2, has_dog, _D},
  +      {_A, has_friend, _B},
  +      {_B, has_fname, _F},
  +      {_B, has_lname, _F1},
  +      {_A, has_fname, _C},
  +      {_B, has_friend, _F2},
  +      {_A, has_lname, _E}]=P, 
  +     #assert{}, #state{reply_to=ReplyPid}=_State) when _A=/=_B ->
  +    try ReplyPid ! P
  +    catch
  +        _:badarg ->
  +            throw({noproc, ReplyPid})
  +    end,
  +    noop;
   handle_pattern(
       P, #retire{}, #state{reply_to=ReplyPid}=_State) -> 
       ReplyPid ! {retire, P},
  
positive.code:               ?assertThrow(timeout, receive_result()),
                
                notify({'-', {g1, g1, g1, g1} }),
                ?assertThrow(timeout, receive_result())
        end,
        % Test rule with 'disconnected-by-var' fact patterns
        fun() ->
  
negative.code: 
  init_per_testcase() ->
      {ok,SrvPid}=start(),SrvPid.
  end_per_testcase(SrvPid) ->
      elips:shutdown(?MODULE),
      MRef=monitor(process, SrvPid),
      receive 
          {'DOWN', MRef, process, SrvPid, _Info} ->
              ok
      end.
  
  check_victim_alive() ->
      timer:sleep(30),
  