anchor.diff:  get_XOR_fun() ->
       (fun([H|T]) -> lists:foldl(fun(X, Acc) -> util:bin_xor(X, Acc) end, H, T) end).
   
  +get_small_sha() ->
  +    (fun(B) ->
  +             Sha = crypto:sha(B),
  +             ByteSize = erlang:byte_size(Sha),
  +             binary_part(Sha, {ByteSize, -2})
  +     end).
  +
  
positive.code: -spec gen_hash_node(Node, Config) -> Node when
        is_subtype(Node,   mt_node()),
        is_subtype(Config, mt_config()).
  gen_hash_node({_, Count, Bucket, I, []}, Config) ->
      LeafHf = Config#mt_config.leaf_hf,
      Hash = case Count > 0 of
                 true -> LeafHf(erlang:term_to_binary(Bucket));
                 _ -> LeafHf(term_to_binary(0))
             end,
      {Hash, Count, Bucket, I, []};
  gen_hash_node({_, Count, [], I, List}, Config) ->    
      NewChilds = [gen_hash_node(X, Config) || X <- List],
      InnerHf = Config#mt_config.inner_hf,
  
negative.code:     Acc;
  build_childs([{Interval, Count, Bucket} | T], Config, Acc) ->
      BucketSize = Config#mt_config.bucket_size,
      KeepBucket = Config#mt_config.keep_bucket,
      Node = case Count > BucketSize of
                 true -> p_bulk_build({nil, 1, [], Interval, []}, Config, Bucket);
                 false -> 
                     LeafHf = Config#mt_config.leaf_hf,
                     Hash = case Count > 0 of
                                true -> LeafHf(erlang:term_to_binary(Bucket));
                                _ -> LeafHf(term_to_binary(0))
                            end,                    
                     {Hash, Count, ?IIF(KeepBucket, Bucket, []), Interval, []}
             end,
      build_childs(T, Config, [Node | Acc]).
  
  