// }
// ```
//
-// Since Rust doesn't acutally have dependent types and polymorphic recursion,
+// Since Rust doesn't actually have dependent types and polymorphic recursion,
// we make do with lots of unsafety.
+ // A major goal of this module is to avoid complexity by treating the tree as a generic (if
+ // weirdly shaped) container and avoiding dealing with most of the B-Tree invariants. As such,
+ // this module doesn't care whether the entries are sorted, which nodes can be underfull, or
+ // even what underfull means. However, we do rely on a few invariants:
+ //
+ // - Trees must have uniform depth/height. This means that every path down to a leaf from a
+ // given node has exactly the same length.
+ // - A node of length `n` has `n` keys, `n` values, and (in an internal node) `n + 1` edges.
+ // This implies that even an empty internal node has at least one edge.
+
use alloc::heap;
use core::marker::PhantomData;
use core::mem;