|Maintainer||Edward Kmett <firstname.lastname@example.org>|
This data type represents a path-compressed copy of one level of a source data structure. We can safely use path-compression because we know the depth of the tree.
Path compression is performed by viewing a
Level as a PATRICIA trie of the
paths into the structure to leaves at a given depth, similar in many ways
IntMap, but unlike a regular PATRICIA trie we do not need
to store the mask bits merely the depth of the fork.
|(FunctorWithIndex i (Level i), FoldableWithIndex i (Level i), Traversable (Level i)) => TraversableWithIndex i (Level i)|
|Foldable (Level i) => FoldableWithIndex i (Level i)|
|Functor (Level i) => FunctorWithIndex i (Level i)|
|Functor (Level i)|
|Foldable (Level i)|
|(Functor (Level i), Foldable (Level i)) => Traversable (Level i)|
|(Eq i, Eq a) => Eq (Level i a)|
|(Eq (Level i a), Ord i, Ord a) => Ord (Level i a)|
|(Read i, Read a) => Read (Level i a)|
|(Show i, Show a) => Show (Level i a)|
Generate the leaf of a given
Deepening based on whether or not we're at the correct depth.
Flow something back into a shape other than the one it was taken from will fail.