anchor.diff:  
   -export([traverse_table_and_show/1]).
   
  +-spec start() -> ok.
  +start() ->
  +  application:set_env(mnesia, dir, list_to_atom("../data/" ++ atom_to_list(node()))),
  +  case mnesia:create_schema([node()]) of
  +    ok -> ok;
  +    Msg ->
  +      io:format("starting mnesia: ~w", [Msg])
  +  end,
  +  _ = application:start(mnesia),
  +  ok.
  +
  +%% @doc traverse table and print content
  +-spec traverse_table_and_show(Table_name::nonempty_string()) -> ok.
   traverse_table_and_show(Table_name)->
     Iterator =  fun(Rec,_)->
  -    io:format("~p~n",[Rec]),
  +    log:log(warn, "~p~n",[Rec]),
       []
     end,
     case mnesia:is_transaction() of
  
positive.code: %% -define(TRACE(X, Y), ct:pal(X, Y)).
  
  %% primitives
  -export([new/1, new/2, open/1, close/1, put/2, get/2, delete/2]).
  %% db info
  -export([get_name/1, get_load/1]).
  
  %% iteration
  -export([foldl/3, foldl/4, foldl/5]).
  
negative.code:     {atomic, Next} = mnesia:transaction(fun()-> mnesia:next(DB, Start) end),
      foldl_iter(DB, Fun, Fun(Start, Acc), {'[', Next, End, ']'}, MaxNum - 1).
  
  %% @doc Is equivalent to foldr(Fun, Acc0, DB).
  -spec foldr(db(), fun((Key::key(), AccIn::A) -> AccOut::A), Acc0::A) -> Acc1::A.
  foldr(DB, Fun, Acc) ->
      {atomic, First} = mnesia:transaction(fun()-> mnesia:first(DB) end),
      {atomic, Last} = mnesia:transaction(fun()-> mnesia:last(DB) end),
      foldr(DB, Fun, Acc, {'[', First, Last, ']'}, mnesia:table_info(DB, size)).
  
  %% @doc Is equivalent to foldr(DB, Fun, Acc0, Interval, get_load(DB)).
  -spec foldr(db(), fun((Key::key(), AccIn::A) -> AccOut::A), Acc0::A, db_backend_beh:interval()) -> Acc1::A.
  foldr(DB, Fun, Acc, Interval) ->
      foldr(DB, Fun, Acc, Interval, mnesia:table_info(DB, size)).
  
  %% @doc Behaves like foldl/5 with the difference that it starts at the end of
  %%      Interval and iterates towards the start of Interval.
  