anchor.diff:  -export([storage_backend_reset/1]).
   
   %% Definitions for the bind/read fun abstraction.
  --define(BIND, fun(_AccId, AccValue, _Store) ->
  +-define(BACKEND_BIND, fun(_AccId, AccValue, _Store) ->
                   ?MODULE:bind_var(_AccId, AccValue, _Store)
                 end).
   
  --define(WRITE, fun(_Store) ->
  +-define(BACKEND_WRITE, fun(_Store) ->
                    fun(_AccId, _AccValue) ->
                      {ok, _} = ?MODULE:bind(_AccId, _AccValue, _Store)
                    end
                  end).
   
  --define(READ, fun(_Id, _Threshold) ->
  +-define(BACKEND_READ, fun(_Id, _Threshold) ->
                   ?MODULE:read_var(_Id, _Threshold, Store)
                 end).
   
  
positive.code:     ReadRightFun = fun(_Right, _Threshold, _Variables) ->
              ?MODULE:read_var(_Right, _Threshold, _Variables)
      end,
      union(Left, Right, Union, Store, ?WRITE, ReadLeftFun, ReadRightFun).
  
  %% @doc Compute the cartesian product of two sets.
  %%
  
negative.code: %%
  -spec map(id(), function(), id(), store()) -> {ok, pid()}.
  map(Id, Function, AccId, Store) ->
      map(Id, Function, AccId, Store, ?BACKEND_WRITE, ?BACKEND_READ).
  
  %% @doc Compute the intersection of two sets.
  %%
  