anchor.diff:              #merkle_params{interval = MySyncI, reconPid = DestReconPid} = Params,
               fd:subscribe(DestReconPid);
           art ->
  -            MySyncI = art:get_interval(Params),
  +            MySyncI = art:get_interval(Params#art_recon_struct.art),
               DestReconPid = undefined
       end,
       % client only sends non-empty sync intervals or exits
  
positive.code:     DBList = [encodeBlob(KeyX, VersionX) || {KeyX, VersionX} <- DBList0],
      MySyncI = case RMethod of
                    merkle_tree -> Params#merkle_params.interval;
                    art         -> art:get_interval(Params)
                end,
      build_struct(DBList, MySyncI, RestI, State);
  
  
negative.code: -record(merkle_params,
          {
           interval = intervals:empty()                       :: intervals:interval(),
           reconPid = ?required(merkle_param, reconPid)       :: comm:mypid(),
           branch_factor = get_merkle_branch_factor()         :: pos_integer(),
           bucket_size   = get_merkle_bucket_size()           :: pos_integer()
          }).
  
  -record(art_recon_struct,
          {
           art           = ?required(art_recon_struct, art)           :: art:art(),
           branch_factor = ?required(art_recon_struct, branch_factor) :: pos_integer(),
           bucket_size   = ?required(art_recon_struct, bucket_size)   :: pos_integer()
          }).
  
  -type sync_struct() :: #bloom_recon_struct{} |
                         merkle_tree:merkle_tree() |
                         [merkle_tree:mt_node()] |
                         #art_recon_struct{}.
  -type parameters() :: #bloom_recon_struct{} |
                        #art_recon_struct{} |
                        #merkle_params{}.
  -type recon_dest() :: ?RT:key() | random.
  
  