anchor.diff:  %% new/0
   %% --------------------------------------------------------------------
   %% @doc create empty volume for default max depth.
  -%% 
  +%%
   -spec new_volume() -> ot_volume().
   %% --------------------------------------------------------------------
   new_volume() -> #ot_volume{}.
  
positive.code: %%
  %% Originaly from: https://gist.github.com/gburd/4955104
  %% @end
  -spec bit_count( non_neg_integer() | #ot_node_id{}) -> 
            non_neg_integer(). 
  %% --------------------------------------------------------------------
  bit_count(0) -> 0;
  bit_count(X) when is_integer(X), X > 0, X < 16#FFFFFFFFFFFFFFFF -> c6(X);
  
negative.code: %%
  %% @end
  -spec split(TreePrefix :: [ot_child_code()], RestDepth :: non_neg_integer(),
              P1 :: #ot_node_id{}, P2 :: #ot_node_id{}) ->
            [ {#ot_node_id{}, #ot_node_id{}} ].
  %% --------------------------------------------------------------------
  split(TreePrefix, RestDepth, P1, P2) ->
  
      F1 = first_node(P1), F2 = first_node(P2),
  
  %%     ?debugFmt("TreePrefix: ~p, RestDepth: ~p, F1: ~p, F2: ~p, P1: ~p, P2: ~p",[TreePrefix, RestDepth, F1, F2, P1, P2]),
  
      case F1 == F2 of
          true ->
              R1 = rest_nodes(P1), R2 = rest_nodes(P2),
              split(TreePrefix ++ [F1], RestDepth-1, R1, R2);
          false ->
              case (F1 == 0) and (F2 == 7) of
                  % in case the covers the whole tree, sweep up and only return the prefix
                  % twice, as it will be collected by filter_full_area
                  true ->
                      [ {to_node_id(TreePrefix, ?DEFAULT_MAX_DEPTH),
                         to_node_id(TreePrefix, ?DEFAULT_MAX_DEPTH)} ];
  
                  false ->
                      List1 = split_borders([{P1,P2}],x),
                      List2 = split_borders(List1,y),
                      List3 = split_borders(List2,z),
  
                      lists:map(fun({Node1, Node2}) ->
                                        {prepend_path(Node1, TreePrefix),
                                         prepend_path(Node2, TreePrefix)}
                                end, List3)
              end
      end.
  