anchor.diff:  
   reply(Req) ->
     case {method(Req),uri(Req),true_headers(Req)} of
  +    {"PUT",   [Tab]     ,[]}          -> je(gcall({create,Tab}));
  +    {"PUT",   [Tab|KeyL],[]}          -> je(ets({insert,Tab,KeyL,body(Req)}));
       {"PUT",   [Tab|KeyL],["counter"]} -> ets({counter,Tab,KeyL});
       {"PUT",   [Tab|KeyL],["reset"]}   -> ets({reset,Tab,KeyL});
  -    {"PUT",   [Tab|KeyL],[]}          -> je(ets({insert,Tab,KeyL,body(Req)}));
  -    {"PUT",   [Tab]    ,[]}           -> je(gcall({create,Tab}));
  -    {"GET",   [[]]     ,[]}           -> je([l2b(T)||T<-gcall({all,[]})]);
  -    {"GET",   [Tab]    ,[]}           -> je(ets({keys,Tab}));
  +    {"GET",   [[]]      ,[]}          -> je([l2b(T)||T<-gcall({all,[]})]);
  +    {"GET",   [Tab]     ,[]}          -> je(ets({keys,Tab}));
       {"GET",   [Tab|KeyL],[]}          -> ets({get,Tab,KeyL});
  -    {"POST",  [Tab]    ,[]}           -> je(ets({insert,Tab,body(Req)}));
  -    {"DELETE",[Tab]    ,[]}           -> je(gcall({delete,Tab}));
  +    {"POST",  [Tab]     ,[]}          -> je(ets({insert,Tab,body(Req)}));
  +    {"DELETE",[Tab]     ,[]}          -> je(gcall({delete,Tab}));
       {"DELETE",[Tab|KeyL],[]}          -> je(ets({delete,Tab,KeyL}));
       X                                 -> throw({404,X})
     end.
  
positive.code: 
  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({insert,Tab,KVs}) -> ets:insert(tab(Tab),unpack(KVs));
  ets({counter,Tab,Key})-> update_counter(tab(Tab),ikey(Key));
  ets({reset,Tab,Key})  -> ets:insert(tab(Tab),{ikey(Key),0}),"0";
  ets({get,Tab,Key})    -> getter(tab(Tab),lkey(Key));
  ets({delete,Tab,Key}) -> ets:delete(tab(Tab),ikey(Key)).
  
  inserter(Tab,{K,V}) ->
    case ets:insert_new(Tab,{K,V}) of
  
negative.code:   catch _:_ -> ets:insert(Tab,{Key,1}),"1"
    end.
  
  jd(Term) ->
    jiffy:decode(Term).
  
  