anchor.diff:  
   -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
   
  --export([has/3, for/3, cache_dump/0]).
  -
  --compile([export_all]).
  +-export([has/3, for/3, cache_dump/0, reset/0]).
   
   -record(cstate, {re, table, storage}).
   
   -define(SERVER, ?MODULE).
  +
  +-include("dlog.hrl").
   
   start_link() ->
       Result = gen_server:start_link({local, ?SERVER}, ?MODULE, [], []),
  
positive.code: cache_dump() ->
      gen_server:call(?SERVER, {cache_dump}).
  
  %%% gen_server callbacks
  handle_cast(stop, State) ->
      {stop, normal, State}.
  
  handle_call({cache_dump}, _From, #cstate{table=C}=State) ->
      {reply, ets:tab2list(C), State};
  handle_call({has_config, Kind, Name, Commit}, _From, #cstate{storage=StoreMod}=State) ->
      Result = generic_lookup(Kind, Name, Commit, State, false),
      case Result of
  
negative.code:     cache_store(Kind, Name, Commit, apply_to(BaseConfig, MyConfig, true, State), State);
  calc_one_config({Kind, Name}, Tree, Commit, #cstate{re=RE, table=Cache, storage=StoreMod}=State) 
    when Kind =:= 'group' ->
      ?D_LOG("wallaby_config:calc_one_config/4:  {~p,~p}, ~p, ~p~n", [Kind, Name, Tree, Commit]),
      %% get group object from tree
      {value, EntityObj} = wallaroo_tree:get_path([path_for_kind(Kind), Name], Tree, StoreMod),
      %% apply installed feature configs to empty config; these should already be in the cache
  