Rose trees with cached and accumulating monoidal annotations
|Version on this page:||0.2.0.9|
|LTS Haskell 20.23:||0.2.3.1@rev:1|
|Stackage Nightly 2023-05-31:||0.2.3.1@rev:1|
|Latest on Hackage:||0.2.3.1@rev:1|
Module documentation for 0.2.0.9
Rose (n-ary) trees with both upwards- (i.e.
cached) and downwards-traveling (i.e.
accumulating) monoidal annotations. This is used
as the core data structure underlying
potentially has other applications as well.
Abstractly, a DUALTree is a rose (n-ary) tree
with data (of type
l) at leaves, data (of type
a) at internal nodes, and two types of monoidal
annotations, one (of type
u) travelling "up"
the tree and one (of type
Data.Tree.DUAL for full documentation.
Data.Tree.DUAL provides a public API which
should suffice for most purposes.
Data.Tree.DUAL.Internal exports more of the
internal implementation---use it at your own