anchor.diff:      restart_timers(S#st.ttl),
       {ok, #st{}}.
   
  +handle_call({get_value, Name, M, Type, Ref, DP}, From, S) ->
  +    S1 = add_waiter(Name, From, S),
  +    case have_worker(Name, S1) of
  +	false ->
  +	    {noreply, start_worker(Name, M, Type, Ref, DP, S1)};
  +	true ->
  +	    {noreply, S1}
  +    end;
   handle_call(_, _, S) ->
       {reply, error, S}.
   
  
positive.code: handle_cast(_, S) ->
      {noreply, S}.
  
  
  handle_info({timeout, Ref, {name, Name}}, S) ->
      ets:select_delete(
        ?TABLE, [{#cache{name = Name, tref = Ref, _='_'}, [], [true]}]),
  
negative.code: -export([start_link/0]).
  
  -export([read/1,   %% (Name) -> {ok, Value} | error
  	 read/5,   %% (Name, Mod, Type, Ref, DataPoints) ->
  	           %%     {ok,Value} | unavailable
  	 write/2,  %% (Name, Value) -> ok
  	 write/3,  %% (Name, Value, TTL) -> ok
  	 delete/1
  