Package Info


Rose trees with cached and accumulating monoidal annotations


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 (<>), 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.

License: BSD-3-Clause



Package Version Update ID Released Package Hub Version Platforms Subpackages
0.2.1-bp150.1.3 info GA Release 2018-07-30 15
  • AArch64
  • ppc64le
  • x86-64
  • ghc-dual-tree
  • ghc-dual-tree-devel