anchor.diff:  
       _ = ets:new(lru_test, [named_table, ordered_set, public]),
       ets:insert_new(lru_test, {evict_count, 0}),
  -
       EvictFun = fun(Key, Value) ->
                          if
                              Key /= Value ->
  
positive.code:     {reply, Sz, Cache};
  
  handle_call(purge, _From, Cache) ->
      lists:foreach(fun(Key) ->
                            remove_item(Key, Cache)
                    end, Cache#cache.evict_list),
      {reply, ok, Cache#cache{evict_list=[]}};
  
  handle_call(info, _From, Cache) ->
      #cache{size=Max, evict_list=EvictList} = Cache,
  
negative.code: -spec contains_or_add(Cache::pid(), Key::term(), Value::term()) ->
      {Exists::boolean(), Evict::boolean()}.
  contains_or_add(Cache, Key, Value) ->
      call(Cache, {contains_or_add, Key, Value}).
  
  %% @doc remove a key from the cache
  -spec remove(Cache::pid(), Key::term()) -> ok.
  