anchor.diff:                        NextLvlNodesActIN, HashCmpI_IN, HashCmpL_IN);
   merkle_cmp_result(<<?recon_fail_stop_leaf:2, TR/bitstring>>, [Node | TN],
                     SigSizeI, SigSizeL,
  -                  MyMaxItemsCount, OtherMaxItemsCount, MerkleSyncIn, Params, Stats,
  +                  MyMaxItemsCount, OtherMaxItemsCount, SyncIn, Params, Stats,
                     RestTreeAcc, SyncAccSend, SyncAccRcv,
                     SyncAccDRK, SyncAccDRLCount, AccCmp, AccSkip,
                     NextLvlNodesActIN, HashCmpI_IN, HashCmpL_IN) ->
  
positive.code:        IsLeafNode ->
             if IsLeafHash andalso Hash =/= none ->
                    % leaf mismatch (our node may be empty)
                    SyncAccSend1 =
                        [{erlang:min(Params#merkle_params.bucket_size,
                                     OtherMaxItemsCount), merkle_tree:get_bucket(Node),
                          merkle_tree:get_item_count(Node)} | SyncAccSend],
                    SyncAccDRK1 = SyncAccDRK,
                    SyncAccDRLCount1 = SyncAccDRLCount,
                    HashCmpL_OUT = HashCmpL_IN + 1;
                IsLeafHash -> % andalso Hash =:= none
                    % empty leaf hash on the other node - we can resolve
                    % this case without a trivial sub process
                    SyncAccSend1 = SyncAccSend,
                    SyncAccDRK1 =
                        [element(1, X) || X <- merkle_tree:get_bucket(Node)]
  
negative.code:                   HashCmpL_OUT = HashCmpL_IN;
                true ->
                    % leaf node and inner hash
                    ResultCode = ?recon_fail_stop_leaf,
                    SyncAccSend1 =
                        [{OtherMaxItemsCount, merkle_tree:get_bucket(Node),
                          merkle_tree:get_item_count(Node)} | SyncAccSend],
  