anchor.diff:      Foldl = fun() -> mnesia:foldl(Fun, Acc, Table) end,
       mnesia:activity(transaction, Foldl).
   
  --spec empty_table(atom()) -> true | {aborted, term()}.
  +-spec empty_table(atom()) -> ok | {aborted, term()}.
   empty_table(Table) ->
  -    ClearTable = fun() ->mnesia:clear_table(Table) end,
  -    mnesia:activity(transaction, ClearTable).
  +    {atomic, ok} = mnesia:clear_table(Table),
  +    ok.
   
   %% Private
   ensure_mnesia_started() ->
  
positive.code:     end.
  
  -spec insert(atom(), #zone{}) -> true | any().
  insert(zones, {_N, #zone{name = Name,
                           version = Version,
                           authority = Authority,
                           record_count = RecordCount,
                           records = Records,
                           records_by_name = RecordsByName,
                           records_by_type = RecordsByType
  }})->
      Write = fun() ->mnesia:write(zones, #zone{name = Name,
                                         version = Version,
                                         authority = Authority,
                                         record_count = RecordCount,
                                         records = Records,
                                         records_by_name = RecordsByName,
                                         records_by_type = RecordsByType
      }, write) end,
      mnesia:activity(transaction, Write).
  
  
  -spec delete_table(atom()) -> true | {aborted, any()}.
  delete_table(Table) ->
      DeleteTable = fun() -> mnesia:delete_table(Table) end,
      mnesia:activity(transaction, DeleteTable).
  
  -spec delete(Table :: atom(), Key :: term()) -> true | any().
  delete(Table, Key)->
     Delete = fun() -> mnesia:delete({Table, Key})end,
     mnesia:activity(transaction, Delete).
  
  -spec backup_table(atom()) -> ok | {error, Reason :: term()}.
  backup_table(_Table)->
      Backup = fun() -> mnesia:backup(mnesia:schema()) end,
      mnesia:activity(transaction, Backup).
  
  
  -spec backup_tables() -> ok | {error, Reason :: term()}.
  
negative.code:     ok = ensure_mnesia_started(),
      case mnesia:create_table(zones,
          [{attributes, record_info(fields, zone)},
              {record_name, zone},
              {disc_copies, [node()]}]) of
          {aborted, {already_exists, zones}} ->
              lager:warning("The zone table already exists on node ~p.~n",
  