anchor.diff:  
   drop(_) -> ok.
   
  -is_empty(none) ->
  +is_empty(_BitcaskRoot) ->
       %% Determining if a bitcask is empty requires us to find at least
       %% one value that is NOT a tombstone. Accomplish this by doing a fold
       %% that forcibly bails on the very first k/v encountered.
  
positive.code:             {error, Reason}
      end.
  
  list(none) ->
      State0 = erlang:get(?MODULE),
      case bitcask:list_keys(State0) of
          KeyList when is_list(KeyList) ->
  
negative.code:             Other
      end.
  
  list_bucket(_BitcaskRoot, {filter, Bucket, Fun}) ->
      [K || {B, K} <- ?MODULE:list(none),
            B =:= Bucket,
            Fun(K)];
  list_bucket(_BitcaskRoot, '_') ->
      [B || {B, _K} <- ?MODULE:list(none)];
  list_bucket(_BitcaskRoot, Bucket) ->
      [K || {B, K} <- ?MODULE:list(none), B =:= Bucket].
  
  
  fold(_BitcaskRoot, Fun0, Acc0) ->
      %% When folding across the bitcask, the bucket/key tuple must
      %% be decoded. The intermediate binary_to_term call handles this
      %% and yields the expected fun({B, K}, Value, Acc)
  