| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Functor.Bicompose
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.
Constructors
| Bicompose | |
Fields
| |
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 Methods 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 Methods 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 Methods 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 Methods 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 # | |