anchor.diff:      [{Key, Value}] -> {ok, Value}
     end.
   
  +%% @doc Add or update the `Value' for `Key'.
   -spec put(any(), any()) -> ok.
   put(Key, Value) ->
     gen_server:call(?MODULE, {put, Key, Value}).
  
positive.code: %% gen_server callbacks
  %%------------------------------------------------------------------------------
  
  start_link() ->
    gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
  
  init([]) ->
    ets:new(?MODULE, [named_table, set, protected, {keypos, 1}]),
    {ok, undefined}.
  
  handle_call({put, Key, Value}, _From, State) ->
    true = ets:insert(?MODULE, {Key, Value}),
    {reply, ok, State}.
  
  handle_cast(_Msg, State) ->
    {noreply, State}.
  
  handle_info(_Msg, State) ->
    {noreply, State}.
  
  terminate(_Msg, State) ->
    {ok, State}.
  
  code_change(_Msg, _From, State) ->
    {ok, State}.
  
negative.code: %% @doc Generic cache module
  %%
  %% Implements the `gen_server' behaviour and on initialization creates
  %% an in-memory ETS table where to keep the cached values.
  %%
  %% This cache is used for optimizing access to certain values. For
  %% example to avoid recalculating certain information regarding a
  %% module. Or to fetch the binary BEAM from memory instead of looking
  %% for it in a file's chunks.
  -module(clj_cache).
  
  -behavior(gen_server).
  