Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- class Magma a where
- (<>) :: a -> a -> a
- data BinaryTree a
- = Leaf a
- | Node (BinaryTree a) (BinaryTree a)
- cataBinaryTree :: (a -> r) -> (r -> r -> r) -> BinaryTree a -> r
- anaBinaryTree :: (b -> Either a (b, b)) -> b -> BinaryTree a
- foldMap :: Magma m => (a -> m) -> BinaryTree a -> m
- _Leaf :: forall p f a. (Choice p, Applicative f) => p a (f a) -> p (BinaryTree a) (f (BinaryTree a))
- _Node :: forall p f a. (Choice p, Applicative f) => p (BinaryTree a, BinaryTree a) (f (BinaryTree a, BinaryTree a)) -> p (BinaryTree a) (f (BinaryTree a))
- nodeLeft :: Applicative f => (BinaryTree a -> f (BinaryTree a)) -> BinaryTree a -> f (BinaryTree a)
- nodeRight :: Applicative f => (BinaryTree a -> f (BinaryTree a)) -> BinaryTree a -> f (BinaryTree a)
Documentation
Instances
Magma () Source # | |
Defined in Data.Magma | |
Magma All Source # | |
Defined in Data.Magma | |
Magma Any Source # | |
Defined in Data.Magma | |
Magma (Endo a) Source # | |
Defined in Data.Magma | |
Num a => Magma (Sum a) Source # | |
Defined in Data.Magma | |
Num a => Magma (Product a) Source # | |
Defined in Data.Magma | |
Magma (Last a) Source # | |
Defined in Data.Magma | |
Magma (First a) Source # | |
Defined in Data.Magma | |
Magma a => Magma (Dual a) Source # | |
Defined in Data.Magma | |
Ord a => Magma (Max a) Source # | |
Defined in Data.Magma | |
Ord a => Magma (Min a) Source # | |
Defined in Data.Magma | |
Monoid m => Magma (WrappedMonoid m) Source # | |
Defined in Data.Magma | |
Magma (BinaryTree a) Source # | |
Defined in Data.Magma (<>) :: BinaryTree a -> BinaryTree a -> BinaryTree a Source # | |
(Magma a, Magma b) => Magma (a, b) Source # | |
Defined in Data.Magma |
data BinaryTree a Source #
Leaf a | |
Node (BinaryTree a) (BinaryTree a) |
Instances
Monad BinaryTree Source # | |
Defined in Data.Magma (>>=) :: BinaryTree a -> (a -> BinaryTree b) -> BinaryTree b (>>) :: BinaryTree a -> BinaryTree b -> BinaryTree b return :: a -> BinaryTree a | |
Functor BinaryTree Source # | |
Defined in Data.Magma fmap :: (a -> b) -> BinaryTree a -> BinaryTree b # (<$) :: a -> BinaryTree b -> BinaryTree a # | |
Applicative BinaryTree Source # | |
Defined in Data.Magma pure :: a -> BinaryTree a (<*>) :: BinaryTree (a -> b) -> BinaryTree a -> BinaryTree b liftA2 :: (a -> b -> c) -> BinaryTree a -> BinaryTree b -> BinaryTree c (*>) :: BinaryTree a -> BinaryTree b -> BinaryTree b (<*) :: BinaryTree a -> BinaryTree b -> BinaryTree a | |
Foldable BinaryTree Source # | |
Defined in Data.Magma fold :: Monoid m => BinaryTree m -> m foldMap :: Monoid m => (a -> m) -> BinaryTree a -> m foldMap' :: Monoid m => (a -> m) -> BinaryTree a -> m foldr :: (a -> b -> b) -> b -> BinaryTree a -> b foldr' :: (a -> b -> b) -> b -> BinaryTree a -> b foldl :: (b -> a -> b) -> b -> BinaryTree a -> b foldl' :: (b -> a -> b) -> b -> BinaryTree a -> b foldr1 :: (a -> a -> a) -> BinaryTree a -> a foldl1 :: (a -> a -> a) -> BinaryTree a -> a toList :: BinaryTree a -> [a] null :: BinaryTree a -> Bool length :: BinaryTree a -> Int elem :: Eq a => a -> BinaryTree a -> Bool maximum :: Ord a => BinaryTree a -> a minimum :: Ord a => BinaryTree a -> a sum :: Num a => BinaryTree a -> a product :: Num a => BinaryTree a -> a | |
Traversable BinaryTree Source # | |
Defined in Data.Magma traverse :: Applicative f => (a -> f b) -> BinaryTree a -> f (BinaryTree b) sequenceA :: Applicative f => BinaryTree (f a) -> f (BinaryTree a) mapM :: Monad m => (a -> m b) -> BinaryTree a -> m (BinaryTree b) sequence :: Monad m => BinaryTree (m a) -> m (BinaryTree a) | |
Eq a => Eq (BinaryTree a) Source # | |
Defined in Data.Magma (==) :: BinaryTree a -> BinaryTree a -> Bool (/=) :: BinaryTree a -> BinaryTree a -> Bool | |
Ord a => Ord (BinaryTree a) Source # | |
Defined in Data.Magma compare :: BinaryTree a -> BinaryTree a -> Ordering (<) :: BinaryTree a -> BinaryTree a -> Bool (<=) :: BinaryTree a -> BinaryTree a -> Bool (>) :: BinaryTree a -> BinaryTree a -> Bool (>=) :: BinaryTree a -> BinaryTree a -> Bool max :: BinaryTree a -> BinaryTree a -> BinaryTree a min :: BinaryTree a -> BinaryTree a -> BinaryTree a | |
Read a => Read (BinaryTree a) Source # | |
Defined in Data.Magma readsPrec :: Int -> ReadS (BinaryTree a) readList :: ReadS [BinaryTree a] readPrec :: ReadPrec (BinaryTree a) readListPrec :: ReadPrec [BinaryTree a] | |
Show a => Show (BinaryTree a) Source # | |
Defined in Data.Magma showsPrec :: Int -> BinaryTree a -> ShowS show :: BinaryTree a -> String showList :: [BinaryTree a] -> ShowS | |
NFData a => NFData (BinaryTree a) Source # | |
Defined in Data.Magma rnf :: BinaryTree a -> () | |
Magma (BinaryTree a) Source # | |
Defined in Data.Magma (<>) :: BinaryTree a -> BinaryTree a -> BinaryTree a Source # |
cataBinaryTree :: (a -> r) -> (r -> r -> r) -> BinaryTree a -> r Source #
anaBinaryTree :: (b -> Either a (b, b)) -> b -> BinaryTree a Source #
foldMap :: Magma m => (a -> m) -> BinaryTree a -> m Source #
_Leaf :: forall p f a. (Choice p, Applicative f) => p a (f a) -> p (BinaryTree a) (f (BinaryTree a)) Source #
_Leaf
:: Prism' (BinaryTree
a) a
_Node :: forall p f a. (Choice p, Applicative f) => p (BinaryTree a, BinaryTree a) (f (BinaryTree a, BinaryTree a)) -> p (BinaryTree a) (f (BinaryTree a)) Source #
_Node
:: Prism' (BinaryTree
a) (BinaryTree
a,BinaryTree
a)
nodeLeft :: Applicative f => (BinaryTree a -> f (BinaryTree a)) -> BinaryTree a -> f (BinaryTree a) Source #
nodeLeft
:: Traversal' (BinaryTree
a) (BinaryTree
a)
nodeRight :: Applicative f => (BinaryTree a -> f (BinaryTree a)) -> BinaryTree a -> f (BinaryTree a) Source #
nodeRight
:: Traversal' (BinaryTree
a) (BinaryTree
a)