@@ 16,6 16,31 @@
problem, because ranges are always subregions of allocations, and so by
definition will never cross block alignments greater than the parent region.
+ logregions are also valid addresses for a pointerless binary tree, where
+ the ordering matches that of a sorted array:
+
+ ----------------
+ --------0-------
+ ----1-------1---
+ --2---2---2---2-
+ -3-3-3-3-3-3-3-3
+ -323132303231323
+
+ increasing the depth of an array addressed by logregions:
+
+ a.) at bottom
+
+ shift right & space apart by 1 element
+ -323132303231323 -> -4342434143424340434243414342434
+ - - - - - - - - - - - - - - -
+
+ b.) at top (e.g. as in a merkle tree expansion)
+
+ append new right hand side
+ -434243414342434 -> -4342434143424340434243414342434
+ ---------------
+
+
""""round x to the next highest power of 2
inline... alignsizeu (x : u32)
x := x - 1