# Functions
Decompose splits the [begin, end) range into a minimal number of sub-ranges, each of which is of the form [m * 2^k, (m+1) * 2^k), i.e.
NewNodeID returns a NodeID with the passed in node coordinates.
RangeNodes appends the IDs of the nodes that comprise the [begin, end) compact range to the given slice, and returns the new slice.
RangeSize returns the number of nodes in the [begin, end) compact range.
# Structs
NodeID identifies a node of a Merkle tree.
Range represents a compact Merkle tree range for leaf indices [begin, end).
RangeFactory allows creating compact ranges with the specified hash function, which must not be nil, and must not be changed.