anchor.diff:  true_headers(Req) ->
     [binary_to_list(K) || {K,<<"true">>} <- headers(Req)].
   
  -ets({keys,Tab})       -> ets:foldr(fun({K,_},A)->[K|A]end,[],tab(Tab));
  -ets({insert,Tab,K,V}) -> inserter(tab(Tab),{ikey(K),V});
  +ets({keys,Tab})       -> key_getter(tab(Tab));
  +ets({insert,Tab,K,V}) -> inserter(tab(Tab),{K,V});
   ets({insert,Tab,KVs}) -> multi_inserter(tab(Tab),KVs);
   ets({counter,Tab,Key})-> update_counter(tab(Tab),ikey(Key));
   ets({reset,Tab,Key})  -> ets:insert(tab(Tab),{ikey(Key),0}),"0";
  
positive.code: 
  %% table names
  tab(L) ->
    T = list_to_existing_atom(L),
    case ets:info(T,size) of
      undefined -> throw({404,no_such_table});
      _ -> T
    end.
  
  gcall(What) ->
  
negative.code:   ?assertEqual({200,"true"},
                 rets_client:put(localhost,tibbe,ddd,[{a,"A"},{b,b},{c,123.3}])),
    ?assertEqual({200,"AAA"},
                 rets_client:get(localhost,tibbe,'aaa/_/x')),
    ?assertEqual({200,"AAA"},
                 rets_client:get(localhost,tibbe,'_/1/_')),
    ?assertEqual({200,"AAA"},
                 rets_client:get(localhost,tibbe,'aaa/1/x')),
    ?assertEqual({200,bBbB},
                 rets_client:get(localhost,tibbe,bbb)),
    ?assertEqual({200,123.1},
  