Legend:
Library
Module
Module type
Parameter
Class
Class type
This module explains how a node is stored in memory, with functions to create and view nodes.
We use a uniform type 'map view to pattern match on maps and sets The actual types 'map t can be a bit different from 'map view to allow for more efficient representations, but view should be a constant time operation for quick conversions.
Types
type'key key
The type of keys.
type('key, 'map) value
The type of value, which depends on the type of the key and the type of the map.
type'map t
The type of the map, which is parameterized by a type.
Branching bit contains only one bit set; the corresponding mask is (branching_bit - 1). The prefixes are normalized: the bits below the branching bit are set to zero (i.e. prefix & (branching_bit - 1) = 0).
This makes the map nodes accessible to the pattern matching algorithm; this corresponds 1:1 to the SimpleNode implementation. This just needs to be copy-and-pasted for every node type.