cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe-Inferred
LanguageHaskell2010

Math.Tools.Tree

Documentation

data Tree e n Source #

Constructors

Node 

Fields

Instances

Instances details
Foldable (Tree e) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

fold :: Monoid m => Tree e m -> m #

foldMap :: Monoid m => (a -> m) -> Tree e a -> m #

foldMap' :: Monoid m => (a -> m) -> Tree e a -> m #

foldr :: (a -> b -> b) -> b -> Tree e a -> b #

foldr' :: (a -> b -> b) -> b -> Tree e a -> b #

foldl :: (b -> a -> b) -> b -> Tree e a -> b #

foldl' :: (b -> a -> b) -> b -> Tree e a -> b #

foldr1 :: (a -> a -> a) -> Tree e a -> a #

foldl1 :: (a -> a -> a) -> Tree e a -> a #

toList :: Tree e a -> [a] #

null :: Tree e a -> Bool #

length :: Tree e a -> Int #

elem :: Eq a => a -> Tree e a -> Bool #

maximum :: Ord a => Tree e a -> a #

minimum :: Ord a => Tree e a -> a #

sum :: Num a => Tree e a -> a #

product :: Num a => Tree e a -> a #

Traversable (Tree e) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

traverse :: Applicative f => (a -> f b) -> Tree e a -> f (Tree e b) #

sequenceA :: Applicative f => Tree e (f a) -> f (Tree e a) #

mapM :: Monad m => (a -> m b) -> Tree e a -> m (Tree e b) #

sequence :: Monad m => Tree e (m a) -> m (Tree e a) #

Monoid e => Applicative (Tree e) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

pure :: a -> Tree e a #

(<*>) :: Tree e (a -> b) -> Tree e a -> Tree e b #

liftA2 :: (a -> b -> c) -> Tree e a -> Tree e b -> Tree e c #

(*>) :: Tree e a -> Tree e b -> Tree e b #

(<*) :: Tree e a -> Tree e b -> Tree e a #

Functor (Tree e) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

fmap :: (a -> b) -> Tree e a -> Tree e b #

(<$) :: a -> Tree e b -> Tree e a #

(Monoid n, Monoid e) => Monoid (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

mempty :: Tree e n #

mappend :: Tree e n -> Tree e n -> Tree e n #

mconcat :: [Tree e n] -> Tree e n #

(Semigroup n, Semigroup e) => Semigroup (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

(<>) :: Tree e n -> Tree e n -> Tree e n #

sconcat :: NonEmpty (Tree e n) -> Tree e n #

stimes :: Integral b => b -> Tree e n -> Tree e n #

(Num n, Ord e, Semigroup e) => Num (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

(+) :: Tree e n -> Tree e n -> Tree e n #

(-) :: Tree e n -> Tree e n -> Tree e n #

(*) :: Tree e n -> Tree e n -> Tree e n #

negate :: Tree e n -> Tree e n #

abs :: Tree e n -> Tree e n #

signum :: Tree e n -> Tree e n #

fromInteger :: Integer -> Tree e n #

(Show n, Show e) => Show (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

showsPrec :: Int -> Tree e n -> ShowS #

show :: Tree e n -> String #

showList :: [Tree e n] -> ShowS #

(Binary e, Binary n) => Binary (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

put :: Tree e n -> Put #

get :: Get (Tree e n) #

putList :: [Tree e n] -> Put #

(PpShow n, PpShow e) => PpShow (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Methods

pp :: Tree e n -> Doc Source #

Builder (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Associated Types

data Unfold (Tree e n) :: Type -> Type Source #

Methods

build :: Unfold (Tree e n) a -> a -> Tree e n Source #

Visitor (Tree e n) Source # 
Instance details

Defined in Math.Tools.Tree

Associated Types

data Fold (Tree e n) :: Type -> Type Source #

Methods

visit :: Fold (Tree e n) a -> Tree e n -> a Source #

data Fold (Tree e n) a Source # 
Instance details

Defined in Math.Tools.Tree

data Fold (Tree e n) a = TreeFold (n -> [a] -> a) (e -> a -> a)
data Unfold (Tree e n) a Source # 
Instance details

Defined in Math.Tools.Tree

data Unfold (Tree e n) a = TreeUnfold (a -> (n, [(e, a)]))

pattern LeafNode :: n -> Tree e n Source #

pattern Edge :: n -> e -> Tree e n -> Tree e n Source #

pattern BinNode :: n -> Tree Bool n -> Tree Bool n -> Tree Bool n Source #

join_lists :: Ord e => (a -> a -> a) -> [(e, a)] -> [(e, a)] -> [(e, a)] Source #

type Path e = [e] Source #

type Forest n e = [Tree e n] Source #

tlookup :: (Show e, Eq e, MonadFail m) => Tree e n -> Path e -> m (Tree e n) Source #

map_tree :: (e -> e') -> (n -> n') -> Tree e n -> Tree e' n' Source #

map_edges :: (e -> e') -> Tree e n -> Tree e' n Source #

leaf :: n -> Tree e n Source #

tree_node :: n -> [(e, Tree e n)] -> Tree e n Source #

tree_level :: Integer -> Forest n e -> [n] Source #

roots :: Forest n e -> [n] Source #

edges_below :: Tree e n -> [e] Source #

tree_leaves :: Tree e n -> [n] Source #

all_nodes :: Tree e n -> [n] Source #

all_edges :: Tree e n -> [e] Source #

nodesFold :: Fold (Tree e n) [n] Source #

edgesFold :: Fold (Tree e n) [e] Source #

leavesFold :: Fold (Tree e n) [n] Source #

find_child :: (MonadFail m, Eq e, Show e) => e -> Tree e n -> m (Tree e n) Source #

tree_find_subtree :: (MonadFail m, Show e, Eq e) => Path e -> Tree e n -> m (Tree e n) Source #