-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Tree and Forest types -- -- Tree and Forest types, where the leafs and branches of a tree can -- store different types of data, and forests are parameterised by an -- arbitrary functor (usually [], but sometimes you might want -- NonEmpty for example). @package forest @version 0.2 module Data.Tree.Forest data Tree f s a Leaf :: !a -> Tree f s a Node :: !s -> (Forest f s a) -> Tree f s a newtype Forest f s a Forest :: (f (Tree f s a)) -> Forest f s a _Leaf :: (Choice p, Applicative f) => p a (f a) -> p (Tree g s a) (f (Tree g s a)) _Node :: (Choice p, Applicative f) => p (s, Forest g s a) (f (s, Forest g s a)) -> p (Tree g s a) (f (Tree g s a)) _Forest :: (Profunctor p, Functor f) => p (g (Tree g s a)) (f (g (Tree g s a))) -> p (Forest g s a) (f (Forest g s a)) hmap :: Functor f => (forall x. f x -> g x) -> Tree f s a -> Tree g s a hfoldr :: Foldable f => (forall x. f x -> b -> b) -> b -> Tree f s a -> b htraverse :: (Traversable f, Applicative h, Monad h) => (forall x. f x -> h (g x)) -> Tree f s a -> h (Tree g s a) hmap' :: Functor f => (forall x. f x -> g x) -> Forest f s a -> Forest g s a hfoldr' :: Foldable f => (forall x. f x -> b -> b) -> b -> Forest f s a -> b htraverse' :: (Traversable f, Applicative h, Monad h) => (forall x. f x -> h (g x)) -> Forest f s a -> h (Forest g s a) instance GHC.Generics.Generic1 (Data.Tree.Forest.Tree f s) instance GHC.Generics.Generic (Data.Tree.Forest.Tree f s a) instance GHC.Base.Functor f => GHC.Generics.Generic1 (Data.Tree.Forest.Forest f s) instance GHC.Generics.Generic (Data.Tree.Forest.Forest f s a) instance (GHC.Classes.Eq a, GHC.Classes.Eq s, GHC.Classes.Eq (Data.Tree.Forest.Forest f s a)) => GHC.Classes.Eq (Data.Tree.Forest.Tree f s a) instance (GHC.Classes.Ord a, GHC.Classes.Ord s, GHC.Classes.Ord (Data.Tree.Forest.Forest f s a), GHC.Classes.Ord (f (Data.Tree.Forest.Tree f s a))) => GHC.Classes.Ord (Data.Tree.Forest.Tree f s a) instance (GHC.Read.Read a, GHC.Read.Read s, GHC.Read.Read (Data.Tree.Forest.Forest f s a)) => GHC.Read.Read (Data.Tree.Forest.Tree f s a) instance (GHC.Show.Show a, GHC.Show.Show s, GHC.Show.Show (Data.Tree.Forest.Forest f s a)) => GHC.Show.Show (Data.Tree.Forest.Tree f s a) instance GHC.Classes.Eq (f (Data.Tree.Forest.Tree f s a)) => GHC.Classes.Eq (Data.Tree.Forest.Forest f s a) instance GHC.Classes.Ord (f (Data.Tree.Forest.Tree f s a)) => GHC.Classes.Ord (Data.Tree.Forest.Forest f s a) instance GHC.Read.Read (f (Data.Tree.Forest.Tree f s a)) => GHC.Read.Read (Data.Tree.Forest.Forest f s a) instance GHC.Show.Show (f (Data.Tree.Forest.Tree f s a)) => GHC.Show.Show (Data.Tree.Forest.Forest f s a) instance (Control.DeepSeq.NFData s, Control.DeepSeq.NFData a, Control.DeepSeq.NFData (f (Data.Tree.Forest.Tree f s a))) => Control.DeepSeq.NFData (Data.Tree.Forest.Tree f s a) instance (Data.Hashable.Class.Hashable s, Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable (f (Data.Tree.Forest.Tree f s a))) => Data.Hashable.Class.Hashable (Data.Tree.Forest.Tree f s a) instance GHC.Base.Functor f => Data.Bifunctor.Bifunctor (Data.Tree.Forest.Tree f) instance Data.Foldable.Foldable f => Data.Bifoldable.Bifoldable (Data.Tree.Forest.Tree f) instance Data.Foldable.Foldable f => Data.Semigroup.Foldable.Class.Bifoldable1 (Data.Tree.Forest.Tree f) instance Data.Traversable.Traversable f => Data.Bitraversable.Bitraversable (Data.Tree.Forest.Tree f) instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Bitraversable1 (Data.Tree.Forest.Tree f) instance GHC.Base.Functor f => GHC.Base.Functor (Data.Tree.Forest.Tree f s) instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Data.Tree.Forest.Tree f s) instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Foldable1 (Data.Tree.Forest.Tree f s) instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Data.Tree.Forest.Tree f s) instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Traversable1 (Data.Tree.Forest.Tree f s) instance GHC.Base.Functor f => Data.Functor.Bind.Class.Apply (Data.Tree.Forest.Tree f s) instance GHC.Base.Functor f => Data.Functor.Bind.Class.Bind (Data.Tree.Forest.Tree f s) instance GHC.Base.Functor f => GHC.Base.Applicative (Data.Tree.Forest.Tree f s) instance GHC.Base.Functor f => GHC.Base.Monad (Data.Tree.Forest.Tree f s) instance (Data.Aeson.Types.FromJSON.FromJSON s, Data.Aeson.Types.FromJSON.FromJSON a, Data.Aeson.Types.FromJSON.FromJSON (f (Data.Tree.Forest.Tree f s a))) => Data.Aeson.Types.FromJSON.FromJSON (Data.Tree.Forest.Tree f s a) instance (Data.Aeson.Types.ToJSON.ToJSON s, Data.Aeson.Types.ToJSON.ToJSON a, Data.Aeson.Types.ToJSON.ToJSON (f (Data.Tree.Forest.Tree f s a))) => Data.Aeson.Types.ToJSON.ToJSON (Data.Tree.Forest.Tree f s a) instance Data.Aeson.Types.FromJSON.FromJSON (Data.Tree.Forest.Tree f s a) => Data.Aeson.Types.FromJSON.FromJSONKey (Data.Tree.Forest.Tree f s a) instance Data.Aeson.Types.ToJSON.ToJSON (Data.Tree.Forest.Tree f s a) => Data.Aeson.Types.ToJSON.ToJSONKey (Data.Tree.Forest.Tree f s a) instance Data.Functor.Classes.Eq1 f => Data.Functor.Classes.Eq2 (Data.Tree.Forest.Tree f) instance Data.Functor.Classes.Ord1 f => Data.Functor.Classes.Ord2 (Data.Tree.Forest.Tree f) instance Data.Functor.Classes.Read1 f => Data.Functor.Classes.Read2 (Data.Tree.Forest.Tree f) instance Data.Functor.Classes.Show1 f => Data.Functor.Classes.Show2 (Data.Tree.Forest.Tree f) instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq s) => Data.Functor.Classes.Eq1 (Data.Tree.Forest.Tree f s) instance (Data.Functor.Classes.Ord1 f, GHC.Classes.Ord s) => Data.Functor.Classes.Ord1 (Data.Tree.Forest.Tree f s) instance (Data.Functor.Classes.Read1 f, GHC.Read.Read s) => Data.Functor.Classes.Read1 (Data.Tree.Forest.Tree f s) instance (Data.Functor.Classes.Show1 f, GHC.Show.Show s) => Data.Functor.Classes.Show1 (Data.Tree.Forest.Tree f s) instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData s, Control.DeepSeq.NFData (f (Data.Tree.Forest.Tree f s a))) => Control.DeepSeq.NFData (Data.Tree.Forest.Forest f s a) instance (Data.Hashable.Class.Hashable a, Data.Hashable.Class.Hashable s, Data.Hashable.Class.Hashable (f (Data.Tree.Forest.Tree f s a))) => Data.Hashable.Class.Hashable (Data.Tree.Forest.Forest f s a) instance GHC.Exts.IsList (f (Data.Tree.Forest.Tree f s a)) => GHC.Exts.IsList (Data.Tree.Forest.Forest f s a) instance GHC.Base.Functor f => Data.Bifunctor.Bifunctor (Data.Tree.Forest.Forest f) instance Data.Foldable.Foldable f => Data.Bifoldable.Bifoldable (Data.Tree.Forest.Forest f) instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Bifoldable1 (Data.Tree.Forest.Forest f) instance Data.Traversable.Traversable f => Data.Bitraversable.Bitraversable (Data.Tree.Forest.Forest f) instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Bitraversable1 (Data.Tree.Forest.Forest f) instance GHC.Base.Functor f => GHC.Base.Functor (Data.Tree.Forest.Forest f s) instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Data.Tree.Forest.Forest f s) instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Foldable1 (Data.Tree.Forest.Forest f s) instance Data.Traversable.Traversable f => Data.Traversable.Traversable (Data.Tree.Forest.Forest f s) instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Traversable1 (Data.Tree.Forest.Forest f s) instance Data.Functor.Bind.Class.Apply f => Data.Functor.Bind.Class.Apply (Data.Tree.Forest.Forest f s) instance Data.Functor.Alt.Alt f => Data.Functor.Alt.Alt (Data.Tree.Forest.Forest f s) instance Data.Functor.Plus.Plus f => Data.Functor.Plus.Plus (Data.Tree.Forest.Forest f s) instance (GHC.Base.Applicative f, Data.Functor.Bind.Class.Bind f, Data.Traversable.Traversable f) => Data.Functor.Bind.Class.Bind (Data.Tree.Forest.Forest f s) instance GHC.Base.Applicative f => GHC.Base.Applicative (Data.Tree.Forest.Forest f s) instance GHC.Base.Alternative f => GHC.Base.Alternative (Data.Tree.Forest.Forest f s) instance (GHC.Base.Applicative f, GHC.Base.Monad f, Data.Traversable.Traversable f) => GHC.Base.Monad (Data.Tree.Forest.Forest f s) instance (Control.Monad.Fail.MonadFail f, Data.Traversable.Traversable f) => Control.Monad.Fail.MonadFail (Data.Tree.Forest.Forest f s) instance (GHC.Base.Alternative f, GHC.Base.Monad f, Data.Traversable.Traversable f) => GHC.Base.MonadPlus (Data.Tree.Forest.Forest f s) instance Data.Functor.Alt.Alt f => Data.Semigroup.Semigroup (Data.Tree.Forest.Forest f s a) instance GHC.Base.Alternative f => GHC.Base.Monoid (Data.Tree.Forest.Forest f s a) instance (Data.Aeson.Types.FromJSON.FromJSON s, Data.Aeson.Types.FromJSON.FromJSON a, Data.Aeson.Types.FromJSON.FromJSON (f (Data.Tree.Forest.Tree f s a))) => Data.Aeson.Types.FromJSON.FromJSON (Data.Tree.Forest.Forest f s a) instance (Data.Aeson.Types.ToJSON.ToJSON s, Data.Aeson.Types.ToJSON.ToJSON a, Data.Aeson.Types.ToJSON.ToJSON (f (Data.Tree.Forest.Tree f s a))) => Data.Aeson.Types.ToJSON.ToJSON (Data.Tree.Forest.Forest f s a) instance Data.Aeson.Types.FromJSON.FromJSON (Data.Tree.Forest.Forest f s a) => Data.Aeson.Types.FromJSON.FromJSONKey (Data.Tree.Forest.Forest f s a) instance Data.Aeson.Types.ToJSON.ToJSON (Data.Tree.Forest.Forest f s a) => Data.Aeson.Types.ToJSON.ToJSONKey (Data.Tree.Forest.Forest f s a) instance Data.Functor.Classes.Eq1 f => Data.Functor.Classes.Eq2 (Data.Tree.Forest.Forest f) instance Data.Functor.Classes.Ord1 f => Data.Functor.Classes.Ord2 (Data.Tree.Forest.Forest f) instance Data.Functor.Classes.Read1 f => Data.Functor.Classes.Read2 (Data.Tree.Forest.Forest f) instance Data.Functor.Classes.Show1 f => Data.Functor.Classes.Show2 (Data.Tree.Forest.Forest f) instance (Data.Functor.Classes.Eq1 f, GHC.Classes.Eq s) => Data.Functor.Classes.Eq1 (Data.Tree.Forest.Forest f s) instance (Data.Functor.Classes.Ord1 f, GHC.Classes.Ord s) => Data.Functor.Classes.Ord1 (Data.Tree.Forest.Forest f s) instance (Data.Functor.Classes.Read1 f, GHC.Read.Read s) => Data.Functor.Classes.Read1 (Data.Tree.Forest.Forest f s) instance (Data.Functor.Classes.Show1 f, GHC.Show.Show s) => Data.Functor.Classes.Show1 (Data.Tree.Forest.Forest f s)