anchor.diff:  
   -type keydiff() :: {missing | remote_missing | different, binary()}.
   
  --type remote_fun() :: fun((get_bucket | key_hashes | init | final,
  +-type remote_fun() :: fun((get_bucket | key_hashes | start_exchange_level | start_exchange_segments | init | final,
                              {integer(), integer()} | integer() | term()) -> any()).
   
   -type acc_fun(Acc) :: fun(([keydiff()], Acc) -> Acc).
  
positive.code:          new/3,
           insert/3,
           insert/4,
           delete/2,
           update_tree/1,
           update_snapshot/1,
  
negative.code: -define(WIDTH, 1024).
  -define(MEM_LEVELS, 0).
  
  -define(NUM_KEYS_REQUIRED, 1000).
  -define(MAX_NUM_SEGMENTS, 10000).
  
  -type tree_id_bin() :: <<_:176>>.
  -type segment_bin() :: <<_:256, _:_*8>>.
  -type bucket_bin()  :: <<_:320>>.
  