Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Bicompose f g h a = Bicompose {
- getBicompose :: f (h (g a))
Documentation
newtype Bicompose f g h a Source #
Both-side composition of Monad.
If both of f
and g
are Monad
, Bicompose f g
is an instance of FMonad
in a similar way
Compose
and Precompose
are.
Bicompose | |
|
Instances
(Comonad f, Comonad g) => FComonad (Bicompose f g) Source # | |
(Functor f, Functor g) => FFunctor (Bicompose f g) Source # | |
(Monad f, Monad g) => FMonad (Bicompose f g) Source # | |
(Functor f, Functor f') => FStrong (Bicompose f f') Source # | |
Defined in FStrong | |
(Foldable f, Foldable h, Foldable g) => Foldable (Bicompose f g h) Source # | |
Defined in Data.Functor.Bicompose fold :: Monoid m => Bicompose f g h m -> m # foldMap :: Monoid m => (a -> m) -> Bicompose f g h a -> m # foldMap' :: Monoid m => (a -> m) -> Bicompose f g h a -> m # foldr :: (a -> b -> b) -> b -> Bicompose f g h a -> b # foldr' :: (a -> b -> b) -> b -> Bicompose f g h a -> b # foldl :: (b -> a -> b) -> b -> Bicompose f g h a -> b # foldl' :: (b -> a -> b) -> b -> Bicompose f g h a -> b # foldr1 :: (a -> a -> a) -> Bicompose f g h a -> a # foldl1 :: (a -> a -> a) -> Bicompose f g h a -> a # toList :: Bicompose f g h a -> [a] # null :: Bicompose f g h a -> Bool # length :: Bicompose f g h a -> Int # elem :: Eq a => a -> Bicompose f g h a -> Bool # maximum :: Ord a => Bicompose f g h a -> a # minimum :: Ord a => Bicompose f g h a -> a # | |
(Traversable f, Traversable g, Traversable h) => Traversable (Bicompose f g h) Source # | |
Defined in Data.Functor.Bicompose traverse :: Applicative f0 => (a -> f0 b) -> Bicompose f g h a -> f0 (Bicompose f g h b) # sequenceA :: Applicative f0 => Bicompose f g h (f0 a) -> f0 (Bicompose f g h a) # mapM :: Monad m => (a -> m b) -> Bicompose f g h a -> m (Bicompose f g h b) # sequence :: Monad m => Bicompose f g h (m a) -> m (Bicompose f g h a) # | |
(Alternative f, Applicative g, Applicative h) => Alternative (Bicompose f g h) Source # | |
(Applicative f, Applicative g, Applicative h) => Applicative (Bicompose f g h) Source # | |
Defined in Data.Functor.Bicompose pure :: a -> Bicompose f g h a # (<*>) :: Bicompose f g h (a -> b) -> Bicompose f g h a -> Bicompose f g h b # liftA2 :: (a -> b -> c) -> Bicompose f g h a -> Bicompose f g h b -> Bicompose f g h c # (*>) :: Bicompose f g h a -> Bicompose f g h b -> Bicompose f g h b # (<*) :: Bicompose f g h a -> Bicompose f g h b -> Bicompose f g h a # | |
(Functor f, Functor h, Functor g) => Functor (Bicompose f g h) Source # | |
Read (f (h (g a))) => Read (Bicompose f g h a) Source # | |
Show (f (h (g a))) => Show (Bicompose f g h a) Source # | |
(Eq1 f, Eq1 g, Eq1 h, Eq a) => Eq (Bicompose f g h a) Source # | |
(Ord1 f, Ord1 g, Ord1 h, Ord a) => Ord (Bicompose f g h a) Source # | |
Defined in Data.Functor.Bicompose compare :: Bicompose f g h a -> Bicompose f g h a -> Ordering # (<) :: Bicompose f g h a -> Bicompose f g h a -> Bool # (<=) :: Bicompose f g h a -> Bicompose f g h a -> Bool # (>) :: Bicompose f g h a -> Bicompose f g h a -> Bool # (>=) :: Bicompose f g h a -> Bicompose f g h a -> Bool # max :: Bicompose f g h a -> Bicompose f g h a -> Bicompose f g h a # min :: Bicompose f g h a -> Bicompose f g h a -> Bicompose f g h a # |