A library for constructing multi-way trees. Each Tree carries two pieces of information, it's datum and children.
A list of Trees. Convenient for describing children.
Access the datum of the current tree
Access the children of the current tree
Reduce a Tree from the left.
Reduce a Tree from the right.
Flattens a Tree into a List where the root is the first element of that list.
Filter the MultiwayTree. Keep only elements whose datum satisfy the predicate.
Filter the MultiwayTree. If the predicate is True for a Child the entire path to the root will be part of the result Tree.
Inserts a Tree as the first child of a Tree
Inserts a Tree as the last child of a Tree
Map over the MultiwayTree
A type to keep track of datum and children.