anchor.diff:  -spec(get_range/3 :: (db(), key(), key()) -> [{key(), value()}]).
   get_range(DB, From, To) ->
       F = fun ({Key, {Value, _, _, _}}, Data) ->
  -                case util:is_between(From, Key, To) andalso Value =/= empty_val of
  -                    true ->
  -                        [{Key, Value} | Data];
  -                    false ->
  -                        Data
  +                case Value =/= empty_val
  +                    andalso util:is_between(From, Key, To) of
  +                    true -> [{Key, Value} | Data];
  +                    false -> Data
                   end
           end,
       ?ETS:foldl(F, [], DB).
  
positive.code:     ?ETS:insert(DB, Data),
      DB.
  
  %% @doc returns all keys (and removes them from the db) which belong 
  %%      to a new node with id HisKey
  split_data(DB, MyKey, HisKey) ->
      F = fun (KV = {Key, _}, HisList) ->
                  case util:is_between(HisKey, Key, MyKey) of
                      true ->
                          HisList;
                      false ->
                          [KV | HisList]
                  end
          end,
      HisList = ?ETS:foldl(F, [], DB),
  
negative.code:         [{Key, {_Value, false, 0, _Version}}] ->
              ?ETS:delete(DB, Key),
              {DB, ok};
          [{Key, _Value}] -> {DB, locks_set};
          [] -> {DB, undef}
      end.
  
  %% @doc reads the version of a key
  