The dual-tree package
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 the diagrams framework (http://projects.haskell.org/diagrams), but 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 d) traveling "down".
See 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 risk.
|Versions||0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.2, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5, 0.2.0.6|
|Dependencies||base (>=4.3 && <4.8), monoid-extras (>=0.2 && <0.4), newtype (==0.2.*), semigroups (>=0.8 && <0.10) [details]|
|Source repository||head: git clone https://github.com/diagrams/dual-tree.git|
|Uploaded||Tue Jul 16 02:12:03 UTC 2013 by BrentYorgey|
|Distributions||Debian:0.2.0.6, LTSHaskell:0.2.0.6, NixOS:0.2.0.6, Stackage:0.2.0.6|
|Downloads||21052 total (427 in last 30 days)|
|Status||Docs uploaded by user|
Build status unknown [no reports yet]
- dual-tree-0.1.0.3.tar.gz [browse] (Cabal source package)
- Package description (included in the package)
For package maintainers and hackage trustees