anchor.diff:  %% ====================================================================
   
   init([]) ->
  -   Tab = ets:new(?MODULE, []),
  +   Tab = ets:new(?MODULE, [public]),
      {ok, #{tab => Tab}}.
   
   
  -handle_call({touch, DocId, InPathId, Steps}, _, #{tab := Tab} = State) ->
  -   Key = {DocId, InPathId, Steps},
  -   _ = case ets:lookup(Tab, Key) of
  -      [] ->
  -         undefined;
  -      [{_, undefined, _}] ->
  -         undefined;
  -      [{_, _, _}] ->
  -         Now = expire(),
  -         ets:update_element(Tab, Key, {3, Now})
  -   end,
  -   {reply, ok, State};
   handle_call({put, DocId, InPathId, Steps, Results}, _, #{tab := Tab} = State) ->
      Key = {DocId, InPathId, Steps},
      Now = expire(),
  
positive.code:          end,               
     ok = lists:foreach(Del, ToDel),
     {noreply, State};
  handle_cast(_Msg, State) ->
     {noreply, State}.
  
  
negative.code:          _ = erlang:put(Key, Val),
           Val;
        V ->
           gen_server:cast(Server, {touch, DocId, InPathId, Steps}),
           V
     end.
  
  