Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Tree a = Node {}
- apply :: Semigroup ann => Tree (ann, a) -> Tree (ann, a)
- applyWith :: (ann -> acc -> acc) -> acc -> Tree (ann, a) -> Tree (acc, a)
- mapAccum :: (t -> a -> (t, b)) -> t -> Tree a -> Tree b
- node_ :: ann -> [Tree (ann, Maybe a)] -> Tree (ann, Maybe a)
- leaf_ :: Monoid ann => a -> Tree (ann, Maybe a)
- collect_ :: Monoid ann => Tree (ann, Maybe a) -> [(ann, a)]
- annotateMap :: Monoid ann => (a -> ann) -> Tree a -> Tree (ann, a)
- annotateWith :: (a -> ann) -> (a -> [ann] -> ann) -> Tree a -> Tree (ann, a)
Documentation
Non-empty, possibly infinite, multi-way trees; also known as rose trees.
Instances
MonadFix Tree | Since: containers-0.5.11 |
MonadZip Tree | |
Foldable Tree | |
Defined in Data.Tree fold :: Monoid m => Tree m -> m # foldMap :: Monoid m => (a -> m) -> Tree a -> m # foldMap' :: Monoid m => (a -> m) -> Tree a -> m # foldr :: (a -> b -> b) -> b -> Tree a -> b # foldr' :: (a -> b -> b) -> b -> Tree a -> b # foldl :: (b -> a -> b) -> b -> Tree a -> b # foldl' :: (b -> a -> b) -> b -> Tree a -> b # foldr1 :: (a -> a -> a) -> Tree a -> a # foldl1 :: (a -> a -> a) -> Tree a -> a # elem :: Eq a => a -> Tree a -> Bool # maximum :: Ord a => Tree a -> a # | |
Eq1 Tree | Since: containers-0.5.9 |
Ord1 Tree | Since: containers-0.5.9 |
Read1 Tree | Since: containers-0.5.9 |
Show1 Tree | Since: containers-0.5.9 |
Traversable Tree | |
Applicative Tree | |
Functor Tree | |
Monad Tree | |
Hashable1 Tree | Since: hashable-1.3.4.0 |
Defined in Data.Hashable.Class | |
Generic1 Tree | |
Data a => Data (Tree a) | |
Defined in Data.Tree gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Tree a -> c (Tree a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Tree a) # toConstr :: Tree a -> Constr # dataTypeOf :: Tree a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Tree a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Tree a)) # gmapT :: (forall b. Data b => b -> b) -> Tree a -> Tree a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tree a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tree a -> r # gmapQ :: (forall d. Data d => d -> u) -> Tree a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Tree a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tree a -> m (Tree a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tree a -> m (Tree a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tree a -> m (Tree a) # | |
Generic (Tree a) | |
Read a => Read (Tree a) | |
Show a => Show (Tree a) | |
NFData a => NFData (Tree a) | |
Eq a => Eq (Tree a) | |
Ord a => Ord (Tree a) | Since: containers-0.6.5 |
Hashable v => Hashable (Tree v) | Since: hashable-1.3.4.0 |
Defined in Data.Hashable.Class | |
MonoFoldable (Tree a) | |
Defined in Data.MonoTraversable ofoldMap :: Monoid m => (Element (Tree a) -> m) -> Tree a -> m # ofoldr :: (Element (Tree a) -> b -> b) -> b -> Tree a -> b # ofoldl' :: (a0 -> Element (Tree a) -> a0) -> a0 -> Tree a -> a0 # otoList :: Tree a -> [Element (Tree a)] # oall :: (Element (Tree a) -> Bool) -> Tree a -> Bool # oany :: (Element (Tree a) -> Bool) -> Tree a -> Bool # olength64 :: Tree a -> Int64 # ocompareLength :: Integral i => Tree a -> i -> Ordering # otraverse_ :: Applicative f => (Element (Tree a) -> f b) -> Tree a -> f () # ofor_ :: Applicative f => Tree a -> (Element (Tree a) -> f b) -> f () # omapM_ :: Applicative m => (Element (Tree a) -> m ()) -> Tree a -> m () # oforM_ :: Applicative m => Tree a -> (Element (Tree a) -> m ()) -> m () # ofoldlM :: Monad m => (a0 -> Element (Tree a) -> m a0) -> a0 -> Tree a -> m a0 # ofoldMap1Ex :: Semigroup m => (Element (Tree a) -> m) -> Tree a -> m # ofoldr1Ex :: (Element (Tree a) -> Element (Tree a) -> Element (Tree a)) -> Tree a -> Element (Tree a) # ofoldl1Ex' :: (Element (Tree a) -> Element (Tree a) -> Element (Tree a)) -> Tree a -> Element (Tree a) # headEx :: Tree a -> Element (Tree a) # lastEx :: Tree a -> Element (Tree a) # unsafeHead :: Tree a -> Element (Tree a) # unsafeLast :: Tree a -> Element (Tree a) # maximumByEx :: (Element (Tree a) -> Element (Tree a) -> Ordering) -> Tree a -> Element (Tree a) # minimumByEx :: (Element (Tree a) -> Element (Tree a) -> Ordering) -> Tree a -> Element (Tree a) # | |
MonoFunctor (Tree a) | |
MonoPointed (Tree a) | |
MonoTraversable (Tree a) | |
type Rep1 Tree | Since: containers-0.5.8 |
Defined in Data.Tree type Rep1 Tree = D1 ('MetaData "Tree" "Data.Tree" "containers-0.6.5.1" 'False) (C1 ('MetaCons "Node" 'PrefixI 'True) (S1 ('MetaSel ('Just "rootLabel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1 :*: S1 ('MetaSel ('Just "subForest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 Tree))) | |
type Rep (Tree a) | Since: containers-0.5.8 |
Defined in Data.Tree type Rep (Tree a) = D1 ('MetaData "Tree" "Data.Tree" "containers-0.6.5.1" 'False) (C1 ('MetaCons "Node" 'PrefixI 'True) (S1 ('MetaSel ('Just "rootLabel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a) :*: S1 ('MetaSel ('Just "subForest") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Tree a]))) | |
type Element (Tree a) | |
Defined in Data.MonoTraversable |
apply :: Semigroup ann => Tree (ann, a) -> Tree (ann, a) Source #
Distribute annotations down the tree without changing the type.
applyWith :: (ann -> acc -> acc) -> acc -> Tree (ann, a) -> Tree (acc, a) Source #
Distribute accumulator down the tree using the accumulator function.
mapAccum :: (t -> a -> (t, b)) -> t -> Tree a -> Tree b Source #
Transform a tree by combining branch-independent accumulator with node contents.
annotateMap :: Monoid ann => (a -> ann) -> Tree a -> Tree (ann, a) Source #
Annotate nodes with bottom-up monoidal summary.
annotateWith :: (a -> ann) -> (a -> [ann] -> ann) -> Tree a -> Tree (ann, a) Source #
Annotate the nodes with bottom-up summary.