anchor.diff:  handle_pattern( 
        [{_A,has,_B},
         {_B,has,_C},
  -      {_C,is_a,dog}]=P, {assert,_}=_WMO, _State) ->
  -    ?ECHO({'HANDLE-PATTERN-ASSERT',_WMO, P}),
  +      {_C,is_a,dog}]=P, #assert{}=_WMO, #state{reply_to=ReplyPid}=_State) ->
  +    ReplyPid ! P,
  +    noop;
  +handle_pattern( 
  +     [#person{age=Age},
  +      {_B,has,_C},
  +      {_C,is_a,dog}]=P, _, #state{reply_to=ReplyPid}=_State) when Age > 3 ->
  +    ReplyPid ! P,
       noop;
   handle_pattern(
  -     [#person{age=Age},
  -      {_B,has,_C},
  -      {_C,is_a,dog}]=P, _, _State) when Age > 3 ->
  -    ?ECHO({'HANDLE-PATTERN', P}), 
  -    noop.
  +    P, _, #state{reply_to=ReplyPid}=_State) -> 
  +    ReplyPid ! {retire, P},
  +    noop. 
   
   % @doc
   % Handle an event & do some Working Memory updates.
   % @end
   -spec handle_event(Event :: term(), FromPid :: pid(), State :: term() ) ->  elips:ok_reply() | noop.
   handle_event({'-',_Event}, _FromPid, _State) ->
  -    ?ECHO({'-HANDLE-EVENT', _Event}),
       {ok,_State,[{retire, _Event}]};
   handle_event(_Event, _FromPid, _State) ->
  -    ?ECHO({'HANDLE-EVENT', _Event}),
       {ok,_State,[{assert, _Event}]}. 
   
   % @doc
  
positive.code: % Initialize ELIPS state & insert some data to Working Memory (WM).
  % @end
  -spec init( Args :: term() ) -> elips:ok_reply() | ignore.
  init(_Args) ->
  %%     Self=self(),
      State=#state{},
      {ok, 
       State, []}. 
  %%      [{assert, {Self, is_a, elips} },
  
negative.code:          code_change/3, 
           terminate/2]).
   
  -record(state,{reply_to}).
  
  %% 
  %% API Functions
  %%
  
  start() ->
      elips:start({local, ?MODULE}, ?MODULE, tester, []).
  
  notify(Event) ->
      elips:notify(?MODULE, Event).
  