anchor.diff:  %% @doc Delete all objects from this memory backend
   -spec drop(state()) -> {ok, state()}.
   drop(State=#state{data_ref=DataRef,
  +                  index_ref=IndexRef,
                     time_ref=TimeRef}) ->
       ets:delete_all_objects(DataRef),
  +    ets:delete_all_objects(IndexRef),
       case TimeRef of
           undefined ->
               ok;
  
positive.code:          [
            {timeout, 60000,
             [?_assertEqual(true,
                           backend_eqc:test(?MODULE, true))]}
          ]}]}]}.
  
  setup() ->
      application:load(sasl),
  
negative.code:          status/1,
           callback/3]).
  
  %% "Testing" backend API
  %% -export([reset/0]).
  
  -ifdef(TEST).
  -include_lib("eunit/include/eunit.hrl").
  -endif.
  
  -define(API_VERSION, 1).
  -define(CAPABILITIES, [async_fold, indexes]).
  
  %% Macros for working with indexes
  -define(SELECT_BATCH_SIZE, 100).
  -define(EQ_MS(B,I,V), [{{{B,I,V,'_'},'_'},[],['$_']}]).
  -define(KEY_RANGE_MS(B,L,H), [{{{B,'$1'},'_'},
                                 [{'>=', '$1', L},
                                  {'=<', '$1', H}],
                                 ['$_']}]).
  -define(RANGE_MS(B,I,L,H), [{{{B,I,'$1','$2'}, '_'},
                               [{'>=','$1',L},
                                {'=<','$1',H}],
                               ['$_']}]).
  -define(DELETE_PTN(B,K), {{B,'_','_',K},'_'}).
  
  -record(state, {data_ref :: ets:tid(),
                  index_ref :: ets:tid(),
                  time_ref :: ets:tid(),
                  max_memory :: undefined | integer(),
                  used_memory=0 :: integer(),
                  ttl :: integer()}).
  