anchor.diff:                               SyncAccDRK, SyncAccDRLCount,
                                SyncIN, AccCmp + 1, AccSkip,
                                NextLvlNodesActOUT, HashCmpI_OUT, HashCmpL_IN);
  -       (not IsLeafNode) andalso IsLeafHash ->
  +       (not IsLeafNode) andalso IsLeafHash andalso Hash =/= none ->
  +           % inner node here, non-empty leaf there
              % don't compare hashes -> this is an exact process based on the tags
              {MyKVItems, LeafCount} = merkle_tree:get_items([Node]),
              Sync = {MyMaxItemsCount, MyKVItems, LeafCount},
              merkle_check_node(TK, TN, SigSizeI, SigSizeL,
                                MyMaxItemsCount, OtherMaxItemsCount, Params, Stats,
                                <<FlagsAcc/bitstring, ?recon_fail_stop_inner:2>>, RestTreeAcc,
  -                             SyncAccSend, [Sync | SyncAccRcv], 
  +                             SyncAccSend, [Sync | SyncAccRcv],
                                SyncAccDRK, SyncAccDRLCount,
  +                             SyncIN, AccCmp + 1, AccSkip,
  +                             NextLvlNodesActIN, HashCmpI_IN, HashCmpL_IN);
  +       (not IsLeafNode) andalso IsLeafHash -> % andalso Hash =:= none
  +           % inner node here, empty leaf there -> resolve directly (without a trivial sub process)
  +           % don't compare hashes -> this is an exact process based on the tags
  +           {MyKVItems, LeafCount} = merkle_tree:get_items([Node]),
  +           SyncAccDRK1 = [element(1, X) || X <- MyKVItems] ++ SyncAccDRK,
  +           SyncAccDRLCount1 = SyncAccDRLCount + LeafCount,
  +           merkle_check_node(TK, TN, SigSizeI, SigSizeL,
  +                             MyMaxItemsCount, OtherMaxItemsCount, Params, Stats,
  +                             <<FlagsAcc/bitstring, ?recon_fail_stop_inner:2>>, RestTreeAcc,
  +                             SyncAccSend, SyncAccRcv,
  +                             SyncAccDRK1, SyncAccDRLCount1,
                                SyncIN, AccCmp + 1, AccSkip,
                                NextLvlNodesActIN, HashCmpI_IN, HashCmpL_IN);
          IsLeafNode ->
  
positive.code:     case SyncNew of
          {[], [], {SyncDRK, SyncDRLCount}} when RTree =:= [] ->
              send(DestReconPid, {?check_nodes_response, FlagsBin, MyMaxItemsCount}),
              % resolve the leaf-leaf comparisons's items with empty leaves on the initiator as key_upd:
              NStats1 = send_resolve_request(NStats, SyncDRK, OwnerL, DestRRPid, false, true),
              NStats2 = rr_recon_stats:inc([{tree_leavesSynced, SyncDRLCount}], NStats1),
              shutdown(sync_finished,
  
negative.code:           {OtherMaxItemsCount::non_neg_integer(),
             MyKVItems::merkle_tree:mt_bucket(), MyItemsCount::non_neg_integer()}.
  -type merkle_sync_direct() ::
            % emptyLeaf-* mismatches with an empty leaf hash on the initiator
            % -> these are resolved directly by the non-initiator
            {MyKItems::[?RT:key()], LeafCount::non_neg_integer()}.
  -type merkle_sync() :: {[merkle_sync_send()], [merkle_sync_rcv()], merkle_sync_direct()}.
  