anchor.diff:      Rdisp = fun({Rpat, Rtabs}) -> io:format("~p = ~p~n", [Rpat, Rtabs]) end,
       lists:foreach(Rdisp, lists:sort(Repl)).
   
  +-spec get_backend_types() -> [BackendType::term()].
   get_backend_types() ->
       case ?catch_val({schema, user_property, mnesia_backend_types}) of
   	{'EXIT', _} ->
  
positive.code: do_dirty_delete(_SyncMode, Tab, _Key) ->
      abort({bad_type, Tab}).
  
  dirty_delete_object(Val) when is_tuple(Val), tuple_size(Val) > 2 ->
      Tab = element(1, Val),
      dirty_delete_object(Tab, Val);
  dirty_delete_object(Val) ->
      abort({bad_type, Val}).
  
  dirty_delete_object(Tab, Val) ->
      do_dirty_delete_object(async_dirty, Tab, Val).
  
  
negative.code: 	    false
      end.
  
  -spec transaction(Fun) -> t_result(Res) when
        Fun :: fun(() -> Res).
  transaction(Fun) ->
      transaction(get(mnesia_activity_state), Fun, [], infinity, ?DEFAULT_ACCESS, async).
  
  -spec transaction(Fun, Retries) -> t_result(Res) when
        Fun :: fun(() -> Res),
        Retries :: non_neg_integer() | 'infinity';
                   (Fun, [Arg::_]) -> t_result(Res) when
        Fun :: fun((...) -> Res).
  transaction(Fun, Retries) when is_integer(Retries), Retries >= 0 ->
      transaction(get(mnesia_activity_state), Fun, [], Retries, ?DEFAULT_ACCESS, async);
  transaction(Fun, Retries) when Retries == infinity ->
      transaction(get(mnesia_activity_state), Fun, [], Retries, ?DEFAULT_ACCESS, async);
  transaction(Fun, Args) ->
      transaction(get(mnesia_activity_state), Fun, Args, infinity, ?DEFAULT_ACCESS, async).
  
  -spec transaction(Fun, [Arg::_], Retries) -> t_result(Res) when
        Fun :: fun((...) -> Res),
        Retries :: non_neg_integer() | 'infinity'.
  transaction(Fun, Args, Retries) ->
      transaction(get(mnesia_activity_state), Fun, Args, Retries, ?DEFAULT_ACCESS, async).
  
  -spec sync_transaction(Fun) -> t_result(Res) when
        Fun :: fun(() -> Res).
  sync_transaction(Fun) ->
      transaction(get(mnesia_activity_state), Fun, [], infinity, ?DEFAULT_ACCESS, sync).
  
  -spec sync_transaction(Fun, Retries) -> t_result(Res) when
        Fun :: fun(() -> Res),
        Retries :: non_neg_integer() | 'infinity';
                        (Fun, [Arg::_]) -> t_result(Res) when
        Fun :: fun((...) -> Res).
  sync_transaction(Fun, Retries) when is_integer(Retries), Retries >= 0 ->
      transaction(get(mnesia_activity_state), Fun, [], Retries, ?DEFAULT_ACCESS, sync);
  sync_transaction(Fun, Retries) when Retries == infinity ->
      transaction(get(mnesia_activity_state), Fun, [], Retries, ?DEFAULT_ACCESS, sync);
  sync_transaction(Fun, Args) ->
      transaction(get(mnesia_activity_state), Fun, Args, infinity, ?DEFAULT_ACCESS, sync).
  
  -spec sync_transaction(Fun, [Arg::_], Retries) -> t_result(Res) when
        Fun :: fun((...) -> Res),
        Retries :: non_neg_integer() | 'infinity'.
  sync_transaction(Fun, Args, Retries) ->
      transaction(get(mnesia_activity_state), Fun, Args, Retries, ?DEFAULT_ACCESS, sync).
  
  transaction(State, Fun, Args, Retries, Mod, Kind)
    when is_function(Fun), is_list(Args), Retries == infinity, is_atom(Mod) ->
  