None345K $A tree is defined completely by its  and its .To construct a tree, use  or .'The value at the root node of the tree.7The forest containing all descendants of the tree's .&A forest is defined completely by its .To construct a forest, use  or .%The trees that constitute the forest.(Construct a forest from a list of trees. [] is equivalent to .5Construct a tree with a single root and no subforest. x is equivalent to  x .DConstruct a forest of depth 1, where each tree contains only a root. is equivalent to  . fmap +Construct a tree with a root and subforest. The tree's immediate subtrees.  is equivalent to  . . Catamorphism on forests. :{example :: Forest Charexample = forest [ tree 'a' $ leaves "bc" , tree 'd' $ forest [ leaf 'e' , tree 'f' $ leaves "g" ] ]:}QfoldForest (intercalate ", " . fmap (\(a, b) -> [a] <> " [" <> b <> "]")) example$"a [b [], c []], d [e [], f [g []]]" Catamorphism on trees. :{example :: Tree Charexample = tree 'a' $ forest [ tree 'b' $ leaves "cd" , tree 'e' $ forest [ leaf 'f' , tree 'g' $ leaves "h" ] ]:}EfoldTree (\a bs -> [a] <> " [" <> intercalate ", " bs <> "]") example("a [b [c [], d []], e [f [], g [h []]]]"   Safei !"#      !"#$%&*data-forest-0.1.0.6-34wGCbR9GqF4RA0skSPDGi Data.ForestPaths_data_forestTreeroot subforestForesttreesforestleafleavestreesubtrees foldForestfoldTree$fEqTree $fShowTree $fFunctorTree$fFoldableTree$fTraversableTree $fEqForest $fShowForest$fFunctorForest$fFoldableForest$fTraversableForest$fSemigroupForest$fMonoidForestbaseGHC.Basememptyversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName