semigroupoids-5.3.6: Semigroupoids: Category sans id
Copyright (C) 2011-2015 Edward Kmett BSD-style (see the file LICENSE) Edward Kmett provisional portable Trustworthy Haskell2010

Data.Functor.Bind

Description

Synopsis

# Functors

class Functor (f :: Type -> Type) where Source #

A type f is a Functor if it provides a function fmap which, given any types a and b lets you apply any function from (a -> b) to turn an f a into an f b, preserving the structure of f. Furthermore f needs to adhere to the following:

Identity
fmap id == id
Composition
fmap (f . g) == fmap f . fmap g

Note, that the second law follows from the free theorem of the type fmap and the first law, so you need only check that the former condition holds.

Minimal complete definition

fmap

Methods

fmap :: (a -> b) -> f a -> f b Source #

Using ApplicativeDo: 'fmap f as' can be understood as the do expression

do a <- as
pure (f a)


with an inferred Functor constraint.

(<$) :: a -> f b -> f a infixl 4 Source # Replace all locations in the input with the same value. The default definition is fmap . const, but this may be overridden with a more efficient version. Using ApplicativeDo: 'a <$ bs' can be understood as the do expression

do bs
pure a


with an inferred Functor constraint.

#### Instances

Instances details
 Functor [] Since: base-2.1 Instance detailsDefined in GHC.Base Methodsfmap :: (a -> b) -> [a] -> [b] Source #(<$) :: a -> [b] -> [a] Source # Since: base-2.1 Instance detailsDefined in GHC.Base Methodsfmap :: (a -> b) -> Maybe a -> Maybe b Source #(<$) :: a -> Maybe b -> Maybe a Source # Since: base-2.1 Instance detailsDefined in GHC.Base Methodsfmap :: (a -> b) -> IO a -> IO b Source #(<$) :: a -> IO b -> IO a Source # Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> Par1 a -> Par1 b Source #(<$) :: a -> Par1 b -> Par1 a Source # Instance detailsDefined in Language.Haskell.TH.Syntax Methodsfmap :: (a -> b) -> Q a -> Q b Source #(<$) :: a -> Q b -> Q a Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Complex Methodsfmap :: (a -> b) -> Complex a -> Complex b Source #(<$) :: a -> Complex b -> Complex a Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsfmap :: (a -> b) -> Min a -> Min b Source #(<$) :: a -> Min b -> Min a Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsfmap :: (a -> b) -> Max a -> Max b Source #(<$) :: a -> Max b -> Max a Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsfmap :: (a -> b) -> First a -> First b Source #(<$) :: a -> First b -> First a Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsfmap :: (a -> b) -> Last a -> Last b Source #(<$) :: a -> Last b -> Last a Source # Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsfmap :: (a -> b) -> Option a -> Option b Source #(<$) :: a -> Option b -> Option a Source # Since: base-2.1 Instance detailsDefined in Control.Applicative Methodsfmap :: (a -> b) -> ZipList a -> ZipList b Source #(<$) :: a -> ZipList b -> ZipList a Source # Since: base-4.8.0.0 Instance detailsDefined in Data.Functor.Identity Methodsfmap :: (a -> b) -> Identity a -> Identity b Source #(<$) :: a -> Identity b -> Identity a Source # Since: base-4.6.0.0 Instance detailsDefined in Control.Exception Methodsfmap :: (a -> b) -> Handler a -> Handler b Source #(<$) :: a -> Handler b -> Handler a Source # Since: base-4.3.0.0 Instance detailsDefined in GHC.Conc.Sync Methodsfmap :: (a -> b) -> STM a -> STM b Source #(<$) :: a -> STM b -> STM a Source # Since: base-4.8.0.0 Instance detailsDefined in Data.Monoid Methodsfmap :: (a -> b) -> First a -> First b Source #(<$) :: a -> First b -> First a Source # Since: base-4.8.0.0 Instance detailsDefined in Data.Monoid Methodsfmap :: (a -> b) -> Last a -> Last b Source #(<$) :: a -> Last b -> Last a Source # Since: base-4.8.0.0 Instance detailsDefined in Data.Semigroup.Internal Methodsfmap :: (a -> b) -> Dual a -> Dual b Source #(<$) :: a -> Dual b -> Dual a Source # Since: base-4.8.0.0 Instance detailsDefined in Data.Semigroup.Internal Methodsfmap :: (a -> b) -> Sum a -> Sum b Source #(<$) :: a -> Sum b -> Sum a Source # Since: base-4.8.0.0 Instance detailsDefined in Data.Semigroup.Internal Methodsfmap :: (a -> b) -> Product a -> Product b Source #(<$) :: a -> Product b -> Product a Source # Since: base-4.11.0.0 Instance detailsDefined in Data.Ord Methodsfmap :: (a -> b) -> Down a -> Down b Source #(<$) :: a -> Down b -> Down a Source # Since: base-2.1 Instance detailsDefined in Text.ParserCombinators.ReadP Methodsfmap :: (a -> b) -> ReadP a -> ReadP b Source #(<$) :: a -> ReadP b -> ReadP a Source # Since: base-4.9.0.0 Instance detailsDefined in GHC.Base Methodsfmap :: (a -> b) -> NonEmpty a -> NonEmpty b Source #(<$) :: a -> NonEmpty b -> NonEmpty a Source # Instance detailsDefined in Data.IntMap.Internal Methodsfmap :: (a -> b) -> IntMap a -> IntMap b Source #(<$) :: a -> IntMap b -> IntMap a Source # Instance detailsDefined in Data.Tree Methodsfmap :: (a -> b) -> Tree a -> Tree b Source #(<$) :: a -> Tree b -> Tree a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> Seq a -> Seq b Source #(<$) :: a -> Seq b -> Seq a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> FingerTree a -> FingerTree b Source #(<$) :: a -> FingerTree b -> FingerTree a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> Digit a -> Digit b Source #(<$) :: a -> Digit b -> Digit a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> Node a -> Node b Source #(<$) :: a -> Node b -> Node a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> Elem a -> Elem b Source #(<$) :: a -> Elem b -> Elem a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> ViewL a -> ViewL b Source #(<$) :: a -> ViewL b -> ViewL a Source # Instance detailsDefined in Data.Sequence.Internal Methodsfmap :: (a -> b) -> ViewR a -> ViewR b Source #(<$) :: a -> ViewR b -> ViewR a Source # Instance detailsDefined in Text.PrettyPrint.Annotated.HughesPJ Methodsfmap :: (a -> b) -> Doc a -> Doc b Source #(<$) :: a -> Doc b -> Doc a Source # Instance detailsDefined in Text.PrettyPrint.Annotated.HughesPJ Methodsfmap :: (a -> b) -> AnnotDetails a -> AnnotDetails b Source #(<$) :: a -> AnnotDetails b -> AnnotDetails a Source # Instance detailsDefined in Text.PrettyPrint.Annotated.HughesPJ Methodsfmap :: (a -> b) -> Span a -> Span b Source #(<$) :: a -> Span b -> Span a Source # Since: base-4.8.0.0 Instance detailsDefined in Text.ParserCombinators.ReadP Methodsfmap :: (a -> b) -> P a -> P b Source #(<$) :: a -> P b -> P a Source # Since: base-3.0 Instance detailsDefined in Data.Either Methodsfmap :: (a0 -> b) -> Either a a0 -> Either a b Source #(<$) :: a0 -> Either a b -> Either a a0 Source # Functor (V1 :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> V1 a -> V1 b Source #(<$) :: a -> V1 b -> V1 a Source # Functor (U1 :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> U1 a -> U1 b Source #(<$) :: a -> U1 b -> U1 a Source # Functor ((,) a) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsfmap :: (a0 -> b) -> (a, a0) -> (a, b) Source #(<$) :: a0 -> (a, b) -> (a, a0) Source # Functor (Array i) Since: base-2.1 Instance detailsDefined in GHC.Arr Methodsfmap :: (a -> b) -> Array i a -> Array i b Source #(<$) :: a -> Array i b -> Array i a Source # Functor (Arg a) Since: base-4.9.0.0 Instance detailsDefined in Data.Semigroup Methodsfmap :: (a0 -> b) -> Arg a a0 -> Arg a b Source #(<$) :: a0 -> Arg a b -> Arg a a0 Source # Monad m => Functor (WrappedMonad m) Since: base-2.1 Instance detailsDefined in Control.Applicative Methodsfmap :: (a -> b) -> WrappedMonad m a -> WrappedMonad m b Source #(<$) :: a -> WrappedMonad m b -> WrappedMonad m a Source # Arrow a => Functor (ArrowMonad a) Since: base-4.6.0.0 Instance detailsDefined in Control.Arrow Methodsfmap :: (a0 -> b) -> ArrowMonad a a0 -> ArrowMonad a b Source #(<$) :: a0 -> ArrowMonad a b -> ArrowMonad a a0 Source # Functor (Proxy :: Type -> Type) Since: base-4.7.0.0 Instance detailsDefined in Data.Proxy Methodsfmap :: (a -> b) -> Proxy a -> Proxy b Source #(<$) :: a -> Proxy b -> Proxy a Source # Functor (Map k) Instance detailsDefined in Data.Map.Internal Methodsfmap :: (a -> b) -> Map k a -> Map k b Source #(<$) :: a -> Map k b -> Map k a Source # Functor f => Functor (Lift f) Instance detailsDefined in Control.Applicative.Lift Methodsfmap :: (a -> b) -> Lift f a -> Lift f b Source #(<$) :: a -> Lift f b -> Lift f a Source # Functor m => Functor (MaybeT m) Instance detailsDefined in Control.Monad.Trans.Maybe Methodsfmap :: (a -> b) -> MaybeT m a -> MaybeT m b Source #(<$) :: a -> MaybeT m b -> MaybeT m a Source # Functor m => Functor (ListT m) Instance detailsDefined in Control.Monad.Trans.List Methodsfmap :: (a -> b) -> ListT m a -> ListT m b Source #(<$) :: a -> ListT m b -> ListT m a Source # Instance detailsDefined in Data.HashMap.Internal Methodsfmap :: (a -> b) -> HashMap k a -> HashMap k b Source #(<$) :: a -> HashMap k b -> HashMap k a Source # Functor f => Functor (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methodsfmap :: (a -> b) -> MaybeApply f a -> MaybeApply f b Source #(<$) :: a -> MaybeApply f b -> MaybeApply f a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methodsfmap :: (a -> b) -> WrappedApplicative f a -> WrappedApplicative f b Source #(<$) :: a -> WrappedApplicative f b -> WrappedApplicative f a Source # Functor f => Functor (Rec1 f) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> Rec1 f a -> Rec1 f b Source #(<$) :: a -> Rec1 f b -> Rec1 f a Source # Functor (URec Char :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> URec Char a -> URec Char b Source #(<$) :: a -> URec Char b -> URec Char a Source # Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> URec Double a -> URec Double b Source #(<$) :: a -> URec Double b -> URec Double a Source # Functor (URec Float :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> URec Float a -> URec Float b Source #(<$) :: a -> URec Float b -> URec Float a Source # Functor (URec Int :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> URec Int a -> URec Int b Source #(<$) :: a -> URec Int b -> URec Int a Source # Functor (URec Word :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> URec Word a -> URec Word b Source #(<$) :: a -> URec Word b -> URec Word a Source # Functor (URec (Ptr ()) :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> URec (Ptr ()) a -> URec (Ptr ()) b Source #(<$) :: a -> URec (Ptr ()) b -> URec (Ptr ()) a Source # Functor ((,,) a b) Since: base-4.14.0.0 Instance detailsDefined in GHC.Base Methodsfmap :: (a0 -> b0) -> (a, b, a0) -> (a, b, b0) Source #(<$) :: a0 -> (a, b, b0) -> (a, b, a0) Source # Arrow a => Functor (WrappedArrow a b) Since: base-2.1 Instance detailsDefined in Control.Applicative Methodsfmap :: (a0 -> b0) -> WrappedArrow a b a0 -> WrappedArrow a b b0 Source #(<$) :: a0 -> WrappedArrow a b b0 -> WrappedArrow a b a0 Source # Functor m => Functor (Kleisli m a) Since: base-4.14.0.0 Instance detailsDefined in Control.Arrow Methodsfmap :: (a0 -> b) -> Kleisli m a a0 -> Kleisli m a b Source #(<$) :: a0 -> Kleisli m a b -> Kleisli m a a0 Source # Functor (Const m :: Type -> Type) Since: base-2.1 Instance detailsDefined in Data.Functor.Const Methodsfmap :: (a -> b) -> Const m a -> Const m b Source #(<$) :: a -> Const m b -> Const m a Source # Functor f => Functor (Ap f) Since: base-4.12.0.0 Instance detailsDefined in Data.Monoid Methodsfmap :: (a -> b) -> Ap f a -> Ap f b Source #(<$) :: a -> Ap f b -> Ap f a Source # Functor f => Functor (Alt f) Since: base-4.8.0.0 Instance detailsDefined in Data.Semigroup.Internal Methodsfmap :: (a -> b) -> Alt f a -> Alt f b Source #(<$) :: a -> Alt f b -> Alt f a Source # Bifunctor p => Functor (Join p) Instance detailsDefined in Data.Bifunctor.Join Methodsfmap :: (a -> b) -> Join p a -> Join p b Source #(<$) :: a -> Join p b -> Join p a Source # Functor w => Functor (TracedT m w) Instance detailsDefined in Control.Comonad.Trans.Traced Methodsfmap :: (a -> b) -> TracedT m w a -> TracedT m w b Source #(<$) :: a -> TracedT m w b -> TracedT m w a Source # Functor w => Functor (StoreT s w) Instance detailsDefined in Control.Comonad.Trans.Store Methodsfmap :: (a -> b) -> StoreT s w a -> StoreT s w b Source #(<$) :: a -> StoreT s w b -> StoreT s w a Source # Functor w => Functor (EnvT e w) Instance detailsDefined in Control.Comonad.Trans.Env Methodsfmap :: (a -> b) -> EnvT e w a -> EnvT e w b Source #(<$) :: a -> EnvT e w b -> EnvT e w a Source # Functor m => Functor (IdentityT m) Instance detailsDefined in Control.Monad.Trans.Identity Methodsfmap :: (a -> b) -> IdentityT m a -> IdentityT m b Source #(<$) :: a -> IdentityT m b -> IdentityT m a Source # (Applicative f, Monad f) => Functor (WhenMissing f x) Since: containers-0.5.9 Instance detailsDefined in Data.IntMap.Internal Methodsfmap :: (a -> b) -> WhenMissing f x a -> WhenMissing f x b Source #(<$) :: a -> WhenMissing f x b -> WhenMissing f x a Source # Instance detailsDefined in Data.Tagged Methodsfmap :: (a -> b) -> Tagged s a -> Tagged s b Source #(<$) :: a -> Tagged s b -> Tagged s a Source # Functor f => Functor (Reverse f) Derived instance. Instance detailsDefined in Data.Functor.Reverse Methodsfmap :: (a -> b) -> Reverse f a -> Reverse f b Source #(<$) :: a -> Reverse f b -> Reverse f a Source # Functor (Constant a :: Type -> Type) Instance detailsDefined in Data.Functor.Constant Methodsfmap :: (a0 -> b) -> Constant a a0 -> Constant a b Source #(<$) :: a0 -> Constant a b -> Constant a a0 Source # Functor m => Functor (WriterT w m) Instance detailsDefined in Control.Monad.Trans.Writer.Strict Methodsfmap :: (a -> b) -> WriterT w m a -> WriterT w m b Source #(<$) :: a -> WriterT w m b -> WriterT w m a Source # Functor m => Functor (WriterT w m) Instance detailsDefined in Control.Monad.Trans.Writer.Lazy Methodsfmap :: (a -> b) -> WriterT w m a -> WriterT w m b Source #(<$) :: a -> WriterT w m b -> WriterT w m a Source # Functor m => Functor (WriterT w m) Instance detailsDefined in Control.Monad.Trans.Writer.CPS Methodsfmap :: (a -> b) -> WriterT w m a -> WriterT w m b Source #(<$) :: a -> WriterT w m b -> WriterT w m a Source # Functor m => Functor (StateT s m) Instance detailsDefined in Control.Monad.Trans.State.Strict Methodsfmap :: (a -> b) -> StateT s m a -> StateT s m b Source #(<$) :: a -> StateT s m b -> StateT s m a Source # Functor m => Functor (StateT s m) Instance detailsDefined in Control.Monad.Trans.State.Lazy Methodsfmap :: (a -> b) -> StateT s m a -> StateT s m b Source #(<$) :: a -> StateT s m b -> StateT s m a Source # Functor m => Functor (ReaderT r m) Instance detailsDefined in Control.Monad.Trans.Reader Methodsfmap :: (a -> b) -> ReaderT r m a -> ReaderT r m b Source #(<$) :: a -> ReaderT r m b -> ReaderT r m a Source # Functor m => Functor (ExceptT e m) Instance detailsDefined in Control.Monad.Trans.Except Methodsfmap :: (a -> b) -> ExceptT e m a -> ExceptT e m b Source #(<$) :: a -> ExceptT e m b -> ExceptT e m a Source # Functor m => Functor (ErrorT e m) Instance detailsDefined in Control.Monad.Trans.Error Methodsfmap :: (a -> b) -> ErrorT e m a -> ErrorT e m b Source #(<$) :: a -> ErrorT e m b -> ErrorT e m a Source # Functor f => Functor (Backwards f) Derived instance. Instance detailsDefined in Control.Applicative.Backwards Methodsfmap :: (a -> b) -> Backwards f a -> Backwards f b Source #(<$) :: a -> Backwards f b -> Backwards f a Source # Functor (Mag a b) Instance detailsDefined in Data.Biapplicative Methodsfmap :: (a0 -> b0) -> Mag a b a0 -> Mag a b b0 Source #(<$) :: a0 -> Mag a b b0 -> Mag a b a0 Source # Functor f => Functor (Static f a) Source # Instance detailsDefined in Data.Semigroupoid.Static Methodsfmap :: (a0 -> b) -> Static f a a0 -> Static f a b Source #(<$) :: a0 -> Static f a b -> Static f a a0 Source # Functor ((->) r :: Type -> Type) Since: base-2.1 Instance detailsDefined in GHC.Base Methodsfmap :: (a -> b) -> (r -> a) -> r -> b Source #(<$) :: a -> (r -> b) -> r -> a Source # Functor (K1 i c :: Type -> Type) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> K1 i c a -> K1 i c b Source #(<$) :: a -> K1 i c b -> K1 i c a Source # (Functor f, Functor g) => Functor (f :+: g) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> (f :+: g) a -> (f :+: g) b Source #(<$) :: a -> (f :+: g) b -> (f :+: g) a Source # (Functor f, Functor g) => Functor (f :*: g) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> (f :*: g) a -> (f :*: g) b Source #(<$) :: a -> (f :*: g) b -> (f :*: g) a Source # Functor ((,,,) a b c) Since: base-4.14.0.0 Instance detailsDefined in GHC.Base Methodsfmap :: (a0 -> b0) -> (a, b, c, a0) -> (a, b, c, b0) Source #(<$) :: a0 -> (a, b, c, b0) -> (a, b, c, a0) Source # (Functor f, Functor g) => Functor (Product f g) Since: base-4.9.0.0 Instance detailsDefined in Data.Functor.Product Methodsfmap :: (a -> b) -> Product f g a -> Product f g b Source #(<$) :: a -> Product f g b -> Product f g a Source # (Functor f, Functor g) => Functor (Sum f g) Since: base-4.9.0.0 Instance detailsDefined in Data.Functor.Sum Methodsfmap :: (a -> b) -> Sum f g a -> Sum f g b Source #(<$) :: a -> Sum f g b -> Sum f g a Source # Functor (Cokleisli w a) Instance detailsDefined in Control.Comonad Methodsfmap :: (a0 -> b) -> Cokleisli w a a0 -> Cokleisli w a b Source #(<$) :: a0 -> Cokleisli w a b -> Cokleisli w a a0 Source # Functor f => Functor (WhenMatched f x y) Since: containers-0.5.9 Instance detailsDefined in Data.IntMap.Internal Methodsfmap :: (a -> b) -> WhenMatched f x y a -> WhenMatched f x y b Source #(<$) :: a -> WhenMatched f x y b -> WhenMatched f x y a Source # (Applicative f, Monad f) => Functor (WhenMissing f k x) Since: containers-0.5.9 Instance detailsDefined in Data.Map.Internal Methodsfmap :: (a -> b) -> WhenMissing f k x a -> WhenMissing f k x b Source #(<$) :: a -> WhenMissing f k x b -> WhenMissing f k x a Source # Functor (ContT r m) Instance detailsDefined in Control.Monad.Trans.Cont Methodsfmap :: (a -> b) -> ContT r m a -> ContT r m b Source #(<$) :: a -> ContT r m b -> ContT r m a Source # Functor f => Functor (M1 i c f) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> M1 i c f a -> M1 i c f b Source #(<$) :: a -> M1 i c f b -> M1 i c f a Source # (Functor f, Functor g) => Functor (f :.: g) Since: base-4.9.0.0 Instance detailsDefined in GHC.Generics Methodsfmap :: (a -> b) -> (f :.: g) a -> (f :.: g) b Source #(<$) :: a -> (f :.: g) b -> (f :.: g) a Source # (Functor f, Functor g) => Functor (Compose f g) Since: base-4.9.0.0 Instance detailsDefined in Data.Functor.Compose Methodsfmap :: (a -> b) -> Compose f g a -> Compose f g b Source #(<$) :: a -> Compose f g b -> Compose f g a Source # Bifunctor p => Functor (WrappedBifunctor p a) Instance detailsDefined in Data.Bifunctor.Wrapped Methodsfmap :: (a0 -> b) -> WrappedBifunctor p a a0 -> WrappedBifunctor p a b Source #(<$) :: a0 -> WrappedBifunctor p a b -> WrappedBifunctor p a a0 Source # Functor g => Functor (Joker g a) Instance detailsDefined in Data.Bifunctor.Joker Methodsfmap :: (a0 -> b) -> Joker g a a0 -> Joker g a b Source #(<$) :: a0 -> Joker g a b -> Joker g a a0 Source # Bifunctor p => Functor (Flip p a) Instance detailsDefined in Data.Bifunctor.Flip Methodsfmap :: (a0 -> b) -> Flip p a a0 -> Flip p a b Source #(<$) :: a0 -> Flip p a b -> Flip p a a0 Source # Functor (Clown f a :: Type -> Type) Instance detailsDefined in Data.Bifunctor.Clown Methodsfmap :: (a0 -> b) -> Clown f a a0 -> Clown f a b Source #(<$) :: a0 -> Clown f a b -> Clown f a a0 Source # Functor f => Functor (WhenMatched f k x y) Since: containers-0.5.9 Instance detailsDefined in Data.Map.Internal Methodsfmap :: (a -> b) -> WhenMatched f k x y a -> WhenMatched f k x y b Source #(<$) :: a -> WhenMatched f k x y b -> WhenMatched f k x y a Source # Functor m => Functor (RWST r w s m) Instance detailsDefined in Control.Monad.Trans.RWS.Strict Methodsfmap :: (a -> b) -> RWST r w s m a -> RWST r w s m b Source #(<$) :: a -> RWST r w s m b -> RWST r w s m a Source # Functor m => Functor (RWST r w s m) Instance detailsDefined in Control.Monad.Trans.RWS.Lazy Methodsfmap :: (a -> b) -> RWST r w s m a -> RWST r w s m b Source #(<$) :: a -> RWST r w s m b -> RWST r w s m a Source # Functor m => Functor (RWST r w s m) Instance detailsDefined in Control.Monad.Trans.RWS.CPS Methodsfmap :: (a -> b) -> RWST r w s m a -> RWST r w s m b Source #(<$) :: a -> RWST r w s m b -> RWST r w s m a Source # (Functor f, Bifunctor p) => Functor (Tannen f p a) Instance detailsDefined in Data.Bifunctor.Tannen Methodsfmap :: (a0 -> b) -> Tannen f p a a0 -> Tannen f p a b Source #(<$) :: a0 -> Tannen f p a b -> Tannen f p a a0 Source # (Bifunctor p, Functor g) => Functor (Biff p f g a) Instance detailsDefined in Data.Bifunctor.Biff Methodsfmap :: (a0 -> b) -> Biff p f g a a0 -> Biff p f g a b Source #(<$) :: a0 -> Biff p f g a b -> Biff p f g a a0 Source # (<$>) :: Functor f => (a -> b) -> f a -> f b infixl 4 Source #

An infix synonym for fmap.

The name of this operator is an allusion to $. Note the similarities between their types:  ($)  ::              (a -> b) ->   a ->   b
(<$>) :: Functor f => (a -> b) -> f a -> f b Whereas $ is function application, <$> is function application lifted over a Functor. #### Examples Expand Convert from a Maybe Int to a Maybe String using show: >>> show <$> Nothing
Nothing
>>> show <$> Just 3 Just "3"  Convert from an Either Int Int to an Either Int String using show: >>> show <$> Left 17
Left 17
>>> show <$> Right 17 Right "17"  Double each element of a list: >>> (*2) <$> [1,2,3]
[2,4,6]


Apply even to the second element of a pair:

>>> even <$> (2,2) (2,True)  ($>) :: Functor f => f a -> b -> f b infixl 4 Source #

Flipped version of <$. Using ApplicativeDo: 'as$> b' can be understood as the do expression

do as
pure b


with an inferred Functor constraint.

#### Examples

Expand

Replace the contents of a Maybe Int with a constant String:

>>> Nothing $> "foo" Nothing >>> Just 90210$> "foo"
Just "foo"


Replace the contents of an Either Int Int with a constant String, resulting in an Either Int String:

>>> Left 8675309 $> "foo" Left 8675309 >>> Right 8675309$> "foo"
Right "foo"


Replace each element of a list with a constant String:

>>> [1,2,3] $> "foo" ["foo","foo","foo"]  Replace the second element of a pair with a constant String: >>> (1,2)$> "foo"
(1,"foo")


Since: base-4.7.0.0

# Applyable functors

class Functor f => Apply f where Source #

A strong lax semi-monoidal endofunctor. This is equivalent to an Applicative without pure.

Laws:

(.) <$> u <.> v <.> w = u <.> (v <.> w) x <.> (f <$> y) = (. f) <$> x <.> y f <$> (x <.> y) = (f .) <$> x <.> y  The laws imply that .> and <. really ignore their left and right results, respectively, and really return their right and left results, respectively. Specifically, (mf <$> m) .> (nf <$> n) = nf <$> (m .> n)
(mf <$> m) <. (nf <$> n) = mf <$> (m <. n)  Minimal complete definition Methods (<.>) :: f (a -> b) -> f a -> f b infixl 4 Source # (.>) :: f a -> f b -> f b infixl 4 Source #  a .> b = const id <$> a <.> b

(<.) :: f a -> f b -> f a infixl 4 Source #

 a <. b = const <$> a <.> b liftF2 :: (a -> b -> c) -> f a -> f b -> f c Source # Lift a binary function into a comonad with zipping #### Instances Instances details  Apply [] Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: [a -> b] -> [a] -> [b] Source #(.>) :: [a] -> [b] -> [b] Source #(<.) :: [a] -> [b] -> [a] Source #liftF2 :: (a -> b -> c) -> [a] -> [b] -> [c] Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Maybe (a -> b) -> Maybe a -> Maybe b Source #(.>) :: Maybe a -> Maybe b -> Maybe b Source #(<.) :: Maybe a -> Maybe b -> Maybe a Source #liftF2 :: (a -> b -> c) -> Maybe a -> Maybe b -> Maybe c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: IO (a -> b) -> IO a -> IO b Source #(.>) :: IO a -> IO b -> IO b Source #(<.) :: IO a -> IO b -> IO a Source #liftF2 :: (a -> b -> c) -> IO a -> IO b -> IO c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Par1 (a -> b) -> Par1 a -> Par1 b Source #(.>) :: Par1 a -> Par1 b -> Par1 b Source #(<.) :: Par1 a -> Par1 b -> Par1 a Source #liftF2 :: (a -> b -> c) -> Par1 a -> Par1 b -> Par1 c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Q (a -> b) -> Q a -> Q b Source #(.>) :: Q a -> Q b -> Q b Source #(<.) :: Q a -> Q b -> Q a Source #liftF2 :: (a -> b -> c) -> Q a -> Q b -> Q c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Complex (a -> b) -> Complex a -> Complex b Source #(.>) :: Complex a -> Complex b -> Complex b Source #(<.) :: Complex a -> Complex b -> Complex a Source #liftF2 :: (a -> b -> c) -> Complex a -> Complex b -> Complex c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Min (a -> b) -> Min a -> Min b Source #(.>) :: Min a -> Min b -> Min b Source #(<.) :: Min a -> Min b -> Min a Source #liftF2 :: (a -> b -> c) -> Min a -> Min b -> Min c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Max (a -> b) -> Max a -> Max b Source #(.>) :: Max a -> Max b -> Max b Source #(<.) :: Max a -> Max b -> Max a Source #liftF2 :: (a -> b -> c) -> Max a -> Max b -> Max c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: First (a -> b) -> First a -> First b Source #(.>) :: First a -> First b -> First b Source #(<.) :: First a -> First b -> First a Source #liftF2 :: (a -> b -> c) -> First a -> First b -> First c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Last (a -> b) -> Last a -> Last b Source #(.>) :: Last a -> Last b -> Last b Source #(<.) :: Last a -> Last b -> Last a Source #liftF2 :: (a -> b -> c) -> Last a -> Last b -> Last c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Option (a -> b) -> Option a -> Option b Source #(.>) :: Option a -> Option b -> Option b Source #(<.) :: Option a -> Option b -> Option a Source #liftF2 :: (a -> b -> c) -> Option a -> Option b -> Option c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: ZipList (a -> b) -> ZipList a -> ZipList b Source #(.>) :: ZipList a -> ZipList b -> ZipList b Source #(<.) :: ZipList a -> ZipList b -> ZipList a Source #liftF2 :: (a -> b -> c) -> ZipList a -> ZipList b -> ZipList c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Identity (a -> b) -> Identity a -> Identity b Source #(.>) :: Identity a -> Identity b -> Identity b Source #(<.) :: Identity a -> Identity b -> Identity a Source #liftF2 :: (a -> b -> c) -> Identity a -> Identity b -> Identity c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: First (a -> b) -> First a -> First b Source #(.>) :: First a -> First b -> First b Source #(<.) :: First a -> First b -> First a Source #liftF2 :: (a -> b -> c) -> First a -> First b -> First c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Last (a -> b) -> Last a -> Last b Source #(.>) :: Last a -> Last b -> Last b Source #(<.) :: Last a -> Last b -> Last a Source #liftF2 :: (a -> b -> c) -> Last a -> Last b -> Last c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Dual (a -> b) -> Dual a -> Dual b Source #(.>) :: Dual a -> Dual b -> Dual b Source #(<.) :: Dual a -> Dual b -> Dual a Source #liftF2 :: (a -> b -> c) -> Dual a -> Dual b -> Dual c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Sum (a -> b) -> Sum a -> Sum b Source #(.>) :: Sum a -> Sum b -> Sum b Source #(<.) :: Sum a -> Sum b -> Sum a Source #liftF2 :: (a -> b -> c) -> Sum a -> Sum b -> Sum c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Product (a -> b) -> Product a -> Product b Source #(.>) :: Product a -> Product b -> Product b Source #(<.) :: Product a -> Product b -> Product a Source #liftF2 :: (a -> b -> c) -> Product a -> Product b -> Product c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Down (a -> b) -> Down a -> Down b Source #(.>) :: Down a -> Down b -> Down b Source #(<.) :: Down a -> Down b -> Down a Source #liftF2 :: (a -> b -> c) -> Down a -> Down b -> Down c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: NonEmpty (a -> b) -> NonEmpty a -> NonEmpty b Source #(.>) :: NonEmpty a -> NonEmpty b -> NonEmpty b Source #(<.) :: NonEmpty a -> NonEmpty b -> NonEmpty a Source #liftF2 :: (a -> b -> c) -> NonEmpty a -> NonEmpty b -> NonEmpty c Source # Source # An IntMap is not Applicative, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: IntMap (a -> b) -> IntMap a -> IntMap b Source #(.>) :: IntMap a -> IntMap b -> IntMap b Source #(<.) :: IntMap a -> IntMap b -> IntMap a Source #liftF2 :: (a -> b -> c) -> IntMap a -> IntMap b -> IntMap c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Tree (a -> b) -> Tree a -> Tree b Source #(.>) :: Tree a -> Tree b -> Tree b Source #(<.) :: Tree a -> Tree b -> Tree a Source #liftF2 :: (a -> b -> c) -> Tree a -> Tree b -> Tree c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Seq (a -> b) -> Seq a -> Seq b Source #(.>) :: Seq a -> Seq b -> Seq b Source #(<.) :: Seq a -> Seq b -> Seq a Source #liftF2 :: (a -> b -> c) -> Seq a -> Seq b -> Seq c Source # Apply (Either a) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Either a (a0 -> b) -> Either a a0 -> Either a b Source #(.>) :: Either a a0 -> Either a b -> Either a b Source #(<.) :: Either a a0 -> Either a b -> Either a a0 Source #liftF2 :: (a0 -> b -> c) -> Either a a0 -> Either a b -> Either a c Source # Apply (V1 :: Type -> Type) Source # A V1 is not Applicative, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: V1 (a -> b) -> V1 a -> V1 b Source #(.>) :: V1 a -> V1 b -> V1 b Source #(<.) :: V1 a -> V1 b -> V1 a Source #liftF2 :: (a -> b -> c) -> V1 a -> V1 b -> V1 c Source # Apply (U1 :: Type -> Type) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: U1 (a -> b) -> U1 a -> U1 b Source #(.>) :: U1 a -> U1 b -> U1 b Source #(<.) :: U1 a -> U1 b -> U1 a Source #liftF2 :: (a -> b -> c) -> U1 a -> U1 b -> U1 c Source # Semigroup m => Apply ((,) m) Source # A (,) m is not Applicative unless its m is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: (m, a -> b) -> (m, a) -> (m, b) Source #(.>) :: (m, a) -> (m, b) -> (m, b) Source #(<.) :: (m, a) -> (m, b) -> (m, a) Source #liftF2 :: (a -> b -> c) -> (m, a) -> (m, b) -> (m, c) Source # Monad m => Apply (WrappedMonad m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WrappedMonad m (a -> b) -> WrappedMonad m a -> WrappedMonad m b Source #(.>) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m b Source #(<.) :: WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m a Source #liftF2 :: (a -> b -> c) -> WrappedMonad m a -> WrappedMonad m b -> WrappedMonad m c Source # Apply (Proxy :: Type -> Type) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Proxy (a -> b) -> Proxy a -> Proxy b Source #(.>) :: Proxy a -> Proxy b -> Proxy b Source #(<.) :: Proxy a -> Proxy b -> Proxy a Source #liftF2 :: (a -> b -> c) -> Proxy a -> Proxy b -> Proxy c Source # Ord k => Apply (Map k) Source # A 'Map k' is not Applicative, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Map k (a -> b) -> Map k a -> Map k b Source #(.>) :: Map k a -> Map k b -> Map k b Source #(<.) :: Map k a -> Map k b -> Map k a Source #liftF2 :: (a -> b -> c) -> Map k a -> Map k b -> Map k c Source # Apply f => Apply (Lift f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Lift f (a -> b) -> Lift f a -> Lift f b Source #(.>) :: Lift f a -> Lift f b -> Lift f b Source #(<.) :: Lift f a -> Lift f b -> Lift f a Source #liftF2 :: (a -> b -> c) -> Lift f a -> Lift f b -> Lift f c Source # (Functor m, Monad m) => Apply (MaybeT m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: MaybeT m (a -> b) -> MaybeT m a -> MaybeT m b Source #(.>) :: MaybeT m a -> MaybeT m b -> MaybeT m b Source #(<.) :: MaybeT m a -> MaybeT m b -> MaybeT m a Source #liftF2 :: (a -> b -> c) -> MaybeT m a -> MaybeT m b -> MaybeT m c Source # Apply m => Apply (ListT m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: ListT m (a -> b) -> ListT m a -> ListT m b Source #(.>) :: ListT m a -> ListT m b -> ListT m b Source #(<.) :: ListT m a -> ListT m b -> ListT m a Source #liftF2 :: (a -> b -> c) -> ListT m a -> ListT m b -> ListT m c Source # (Hashable k, Eq k) => Apply (HashMap k) Source # A 'HashMap k' is not Applicative, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: HashMap k (a -> b) -> HashMap k a -> HashMap k b Source #(.>) :: HashMap k a -> HashMap k b -> HashMap k b Source #(<.) :: HashMap k a -> HashMap k b -> HashMap k a Source #liftF2 :: (a -> b -> c) -> HashMap k a -> HashMap k b -> HashMap k c Source # Apply f => Apply (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: MaybeApply f (a -> b) -> MaybeApply f a -> MaybeApply f b Source #(.>) :: MaybeApply f a -> MaybeApply f b -> MaybeApply f b Source #(<.) :: MaybeApply f a -> MaybeApply f b -> MaybeApply f a Source #liftF2 :: (a -> b -> c) -> MaybeApply f a -> MaybeApply f b -> MaybeApply f c Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WrappedApplicative f (a -> b) -> WrappedApplicative f a -> WrappedApplicative f b Source #(.>) :: WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f b Source #(<.) :: WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f a Source #liftF2 :: (a -> b -> c) -> WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f c Source # Apply f => Apply (Rec1 f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Rec1 f (a -> b) -> Rec1 f a -> Rec1 f b Source #(.>) :: Rec1 f a -> Rec1 f b -> Rec1 f b Source #(<.) :: Rec1 f a -> Rec1 f b -> Rec1 f a Source #liftF2 :: (a -> b -> c) -> Rec1 f a -> Rec1 f b -> Rec1 f c Source # Arrow a => Apply (WrappedArrow a b) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WrappedArrow a b (a0 -> b0) -> WrappedArrow a b a0 -> WrappedArrow a b b0 Source #(.>) :: WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b b0 Source #(<.) :: WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b a0 Source #liftF2 :: (a0 -> b0 -> c) -> WrappedArrow a b a0 -> WrappedArrow a b b0 -> WrappedArrow a b c Source # Semigroup m => Apply (Const m :: Type -> Type) Source # A Const m is not Applicative unless its m is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Const m (a -> b) -> Const m a -> Const m b Source #(.>) :: Const m a -> Const m b -> Const m b Source #(<.) :: Const m a -> Const m b -> Const m a Source #liftF2 :: (a -> b -> c) -> Const m a -> Const m b -> Const m c Source # Apply f => Apply (Alt f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Alt f (a -> b) -> Alt f a -> Alt f b Source #(.>) :: Alt f a -> Alt f b -> Alt f b Source #(<.) :: Alt f a -> Alt f b -> Alt f a Source #liftF2 :: (a -> b -> c) -> Alt f a -> Alt f b -> Alt f c Source # Biapply p => Apply (Join p) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Join p (a -> b) -> Join p a -> Join p b Source #(.>) :: Join p a -> Join p b -> Join p b Source #(<.) :: Join p a -> Join p b -> Join p a Source #liftF2 :: (a -> b -> c) -> Join p a -> Join p b -> Join p c Source # Apply w => Apply (TracedT m w) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: TracedT m w (a -> b) -> TracedT m w a -> TracedT m w b Source #(.>) :: TracedT m w a -> TracedT m w b -> TracedT m w b Source #(<.) :: TracedT m w a -> TracedT m w b -> TracedT m w a Source #liftF2 :: (a -> b -> c) -> TracedT m w a -> TracedT m w b -> TracedT m w c Source # (Apply w, Semigroup s) => Apply (StoreT s w) Source # A StoreT s w is not Applicative unless its s is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: StoreT s w (a -> b) -> StoreT s w a -> StoreT s w b Source #(.>) :: StoreT s w a -> StoreT s w b -> StoreT s w b Source #(<.) :: StoreT s w a -> StoreT s w b -> StoreT s w a Source #liftF2 :: (a -> b -> c) -> StoreT s w a -> StoreT s w b -> StoreT s w c Source # (Semigroup e, Apply w) => Apply (EnvT e w) Source # An EnvT e w is not Applicative unless its e is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: EnvT e w (a -> b) -> EnvT e w a -> EnvT e w b Source #(.>) :: EnvT e w a -> EnvT e w b -> EnvT e w b Source #(<.) :: EnvT e w a -> EnvT e w b -> EnvT e w a Source #liftF2 :: (a -> b -> c) -> EnvT e w a -> EnvT e w b -> EnvT e w c Source # Apply w => Apply (IdentityT w) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: IdentityT w (a -> b) -> IdentityT w a -> IdentityT w b Source #(.>) :: IdentityT w a -> IdentityT w b -> IdentityT w b Source #(<.) :: IdentityT w a -> IdentityT w b -> IdentityT w a Source #liftF2 :: (a -> b -> c) -> IdentityT w a -> IdentityT w b -> IdentityT w c Source # Apply (Tagged a) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Tagged a (a0 -> b) -> Tagged a a0 -> Tagged a b Source #(.>) :: Tagged a a0 -> Tagged a b -> Tagged a b Source #(<.) :: Tagged a a0 -> Tagged a b -> Tagged a a0 Source #liftF2 :: (a0 -> b -> c) -> Tagged a a0 -> Tagged a b -> Tagged a c Source # Apply f => Apply (Reverse f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Reverse f (a -> b) -> Reverse f a -> Reverse f b Source #(.>) :: Reverse f a -> Reverse f b -> Reverse f b Source #(<.) :: Reverse f a -> Reverse f b -> Reverse f a Source #liftF2 :: (a -> b -> c) -> Reverse f a -> Reverse f b -> Reverse f c Source # Semigroup f => Apply (Constant f :: Type -> Type) Source # A Constant f is not Applicative unless its f is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Constant f (a -> b) -> Constant f a -> Constant f b Source #(.>) :: Constant f a -> Constant f b -> Constant f b Source #(<.) :: Constant f a -> Constant f b -> Constant f a Source #liftF2 :: (a -> b -> c) -> Constant f a -> Constant f b -> Constant f c Source # (Apply m, Semigroup w) => Apply (WriterT w m) Source # A WriterT w m is not Applicative unless its w is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WriterT w m (a -> b) -> WriterT w m a -> WriterT w m b Source #(.>) :: WriterT w m a -> WriterT w m b -> WriterT w m b Source #(<.) :: WriterT w m a -> WriterT w m b -> WriterT w m a Source #liftF2 :: (a -> b -> c) -> WriterT w m a -> WriterT w m b -> WriterT w m c Source # (Apply m, Semigroup w) => Apply (WriterT w m) Source # A WriterT w m is not Applicative unless its w is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WriterT w m (a -> b) -> WriterT w m a -> WriterT w m b Source #(.>) :: WriterT w m a -> WriterT w m b -> WriterT w m b Source #(<.) :: WriterT w m a -> WriterT w m b -> WriterT w m a Source #liftF2 :: (a -> b -> c) -> WriterT w m a -> WriterT w m b -> WriterT w m c Source # Bind m => Apply (WriterT w m) Source # Since: 5.3.6 Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WriterT w m (a -> b) -> WriterT w m a -> WriterT w m b Source #(.>) :: WriterT w m a -> WriterT w m b -> WriterT w m b Source #(<.) :: WriterT w m a -> WriterT w m b -> WriterT w m a Source #liftF2 :: (a -> b -> c) -> WriterT w m a -> WriterT w m b -> WriterT w m c Source # Bind m => Apply (StateT s m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: StateT s m (a -> b) -> StateT s m a -> StateT s m b Source #(.>) :: StateT s m a -> StateT s m b -> StateT s m b Source #(<.) :: StateT s m a -> StateT s m b -> StateT s m a Source #liftF2 :: (a -> b -> c) -> StateT s m a -> StateT s m b -> StateT s m c Source # Bind m => Apply (StateT s m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: StateT s m (a -> b) -> StateT s m a -> StateT s m b Source #(.>) :: StateT s m a -> StateT s m b -> StateT s m b Source #(<.) :: StateT s m a -> StateT s m b -> StateT s m a Source #liftF2 :: (a -> b -> c) -> StateT s m a -> StateT s m b -> StateT s m c Source # Apply m => Apply (ReaderT e m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: ReaderT e m (a -> b) -> ReaderT e m a -> ReaderT e m b Source #(.>) :: ReaderT e m a -> ReaderT e m b -> ReaderT e m b Source #(<.) :: ReaderT e m a -> ReaderT e m b -> ReaderT e m a Source #liftF2 :: (a -> b -> c) -> ReaderT e m a -> ReaderT e m b -> ReaderT e m c Source # (Functor m, Monad m) => Apply (ExceptT e m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: ExceptT e m (a -> b) -> ExceptT e m a -> ExceptT e m b Source #(.>) :: ExceptT e m a -> ExceptT e m b -> ExceptT e m b Source #(<.) :: ExceptT e m a -> ExceptT e m b -> ExceptT e m a Source #liftF2 :: (a -> b -> c) -> ExceptT e m a -> ExceptT e m b -> ExceptT e m c Source # (Functor m, Monad m) => Apply (ErrorT e m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: ErrorT e m (a -> b) -> ErrorT e m a -> ErrorT e m b Source #(.>) :: ErrorT e m a -> ErrorT e m b -> ErrorT e m b Source #(<.) :: ErrorT e m a -> ErrorT e m b -> ErrorT e m a Source #liftF2 :: (a -> b -> c) -> ErrorT e m a -> ErrorT e m b -> ErrorT e m c Source # Apply f => Apply (Backwards f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Backwards f (a -> b) -> Backwards f a -> Backwards f b Source #(.>) :: Backwards f a -> Backwards f b -> Backwards f b Source #(<.) :: Backwards f a -> Backwards f b -> Backwards f a Source #liftF2 :: (a -> b -> c) -> Backwards f a -> Backwards f b -> Backwards f c Source # Apply f => Apply (Static f a) Source # Instance detailsDefined in Data.Semigroupoid.Static Methods(<.>) :: Static f a (a0 -> b) -> Static f a a0 -> Static f a b Source #(.>) :: Static f a a0 -> Static f a b -> Static f a b Source #(<.) :: Static f a a0 -> Static f a b -> Static f a a0 Source #liftF2 :: (a0 -> b -> c) -> Static f a a0 -> Static f a b -> Static f a c Source # Apply ((->) m :: Type -> Type) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: (m -> (a -> b)) -> (m -> a) -> m -> b Source #(.>) :: (m -> a) -> (m -> b) -> m -> b Source #(<.) :: (m -> a) -> (m -> b) -> m -> a Source #liftF2 :: (a -> b -> c) -> (m -> a) -> (m -> b) -> m -> c Source # Semigroup c => Apply (K1 i c :: Type -> Type) Source # A K1 i c is not Applicative unless its c is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: K1 i c (a -> b) -> K1 i c a -> K1 i c b Source #(.>) :: K1 i c a -> K1 i c b -> K1 i c b Source #(<.) :: K1 i c a -> K1 i c b -> K1 i c a Source #liftF2 :: (a -> b -> c0) -> K1 i c a -> K1 i c b -> K1 i c c0 Source # (Apply f, Apply g) => Apply (f :*: g) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: (f :*: g) (a -> b) -> (f :*: g) a -> (f :*: g) b Source #(.>) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) b Source #(<.) :: (f :*: g) a -> (f :*: g) b -> (f :*: g) a Source #liftF2 :: (a -> b -> c) -> (f :*: g) a -> (f :*: g) b -> (f :*: g) c Source # (Apply f, Apply g) => Apply (Product f g) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Product f g (a -> b) -> Product f g a -> Product f g b Source #(.>) :: Product f g a -> Product f g b -> Product f g b Source #(<.) :: Product f g a -> Product f g b -> Product f g a Source #liftF2 :: (a -> b -> c) -> Product f g a -> Product f g b -> Product f g c Source # Apply (Cokleisli w a) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Cokleisli w a (a0 -> b) -> Cokleisli w a a0 -> Cokleisli w a b Source #(.>) :: Cokleisli w a a0 -> Cokleisli w a b -> Cokleisli w a b Source #(<.) :: Cokleisli w a a0 -> Cokleisli w a b -> Cokleisli w a a0 Source #liftF2 :: (a0 -> b -> c) -> Cokleisli w a a0 -> Cokleisli w a b -> Cokleisli w a c Source # Apply (ContT r m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: ContT r m (a -> b) -> ContT r m a -> ContT r m b Source #(.>) :: ContT r m a -> ContT r m b -> ContT r m b Source #(<.) :: ContT r m a -> ContT r m b -> ContT r m a Source #liftF2 :: (a -> b -> c) -> ContT r m a -> ContT r m b -> ContT r m c Source # Apply f => Apply (M1 i t f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: M1 i t f (a -> b) -> M1 i t f a -> M1 i t f b Source #(.>) :: M1 i t f a -> M1 i t f b -> M1 i t f b Source #(<.) :: M1 i t f a -> M1 i t f b -> M1 i t f a Source #liftF2 :: (a -> b -> c) -> M1 i t f a -> M1 i t f b -> M1 i t f c Source # (Apply f, Apply g) => Apply (f :.: g) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: (f :.: g) (a -> b) -> (f :.: g) a -> (f :.: g) b Source #(.>) :: (f :.: g) a -> (f :.: g) b -> (f :.: g) b Source #(<.) :: (f :.: g) a -> (f :.: g) b -> (f :.: g) a Source #liftF2 :: (a -> b -> c) -> (f :.: g) a -> (f :.: g) b -> (f :.: g) c Source # (Apply f, Apply g) => Apply (Compose f g) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: Compose f g (a -> b) -> Compose f g a -> Compose f g b Source #(.>) :: Compose f g a -> Compose f g b -> Compose f g b Source #(<.) :: Compose f g a -> Compose f g b -> Compose f g a Source #liftF2 :: (a -> b -> c) -> Compose f g a -> Compose f g b -> Compose f g c Source # (Bind m, Semigroup w) => Apply (RWST r w s m) Source # An RWST r w s m is not Applicative unless its w is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: RWST r w s m (a -> b) -> RWST r w s m a -> RWST r w s m b Source #(.>) :: RWST r w s m a -> RWST r w s m b -> RWST r w s m b Source #(<.) :: RWST r w s m a -> RWST r w s m b -> RWST r w s m a Source #liftF2 :: (a -> b -> c) -> RWST r w s m a -> RWST r w s m b -> RWST r w s m c Source # (Bind m, Semigroup w) => Apply (RWST r w s m) Source # An RWST r w s m is not Applicative unless its w is a Monoid, but it is an instance of Apply Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: RWST r w s m (a -> b) -> RWST r w s m a -> RWST r w s m b Source #(.>) :: RWST r w s m a -> RWST r w s m b -> RWST r w s m b Source #(<.) :: RWST r w s m a -> RWST r w s m b -> RWST r w s m a Source #liftF2 :: (a -> b -> c) -> RWST r w s m a -> RWST r w s m b -> RWST r w s m c Source # Bind m => Apply (RWST r w s m) Source # Since: 5.3.6 Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: RWST r w s m (a -> b) -> RWST r w s m a -> RWST r w s m b Source #(.>) :: RWST r w s m a -> RWST r w s m b -> RWST r w s m b Source #(<.) :: RWST r w s m a -> RWST r w s m b -> RWST r w s m a Source #liftF2 :: (a -> b -> c) -> RWST r w s m a -> RWST r w s m b -> RWST r w s m c Source # (<..>) :: Apply w => w a -> w (a -> b) -> w b infixl 4 Source # A variant of <.> with the arguments reversed. liftF3 :: Apply w => (a -> b -> c -> d) -> w a -> w b -> w c -> w d Source # Lift a ternary function into a comonad with zipping # Wrappers newtype WrappedApplicative f a Source # Wrap an Applicative to be used as a member of Apply Constructors  WrapApplicative FieldsunwrapApplicative :: f a #### Instances Instances details  Source # Instance detailsDefined in Data.Functor.Bind.Class Methodsfmap :: (a -> b) -> WrappedApplicative f a -> WrappedApplicative f b Source #(<$) :: a -> WrappedApplicative f b -> WrappedApplicative f a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methodspure :: a -> WrappedApplicative f a Source #(<*>) :: WrappedApplicative f (a -> b) -> WrappedApplicative f a -> WrappedApplicative f b Source #liftA2 :: (a -> b -> c) -> WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f c Source #(*>) :: WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f b Source #(<*) :: WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<|>) :: WrappedApplicative f a -> WrappedApplicative f a -> WrappedApplicative f a Source #some :: WrappedApplicative f a -> WrappedApplicative f [a] Source #many :: WrappedApplicative f a -> WrappedApplicative f [a] Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: WrappedApplicative f (a -> b) -> WrappedApplicative f a -> WrappedApplicative f b Source #(.>) :: WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f b Source #(<.) :: WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f a Source #liftF2 :: (a -> b -> c) -> WrappedApplicative f a -> WrappedApplicative f b -> WrappedApplicative f c Source # Source # Instance detailsDefined in Data.Functor.Alt Methods() :: WrappedApplicative f a -> WrappedApplicative f a -> WrappedApplicative f a Source #some :: Applicative (WrappedApplicative f) => WrappedApplicative f a -> WrappedApplicative f [a] Source #many :: Applicative (WrappedApplicative f) => WrappedApplicative f a -> WrappedApplicative f [a] Source # Source # Instance detailsDefined in Data.Functor.Plus Methods

newtype MaybeApply f a Source #

Transform an Apply into an Applicative by adding a unit.

Constructors

 MaybeApply FieldsrunMaybeApply :: Either (f a) a

#### Instances

Instances details
 Functor f => Functor (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methodsfmap :: (a -> b) -> MaybeApply f a -> MaybeApply f b Source #(<$) :: a -> MaybeApply f b -> MaybeApply f a Source # Apply f => Applicative (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methodspure :: a -> MaybeApply f a Source #(<*>) :: MaybeApply f (a -> b) -> MaybeApply f a -> MaybeApply f b Source #liftA2 :: (a -> b -> c) -> MaybeApply f a -> MaybeApply f b -> MaybeApply f c Source #(*>) :: MaybeApply f a -> MaybeApply f b -> MaybeApply f b Source #(<*) :: MaybeApply f a -> MaybeApply f b -> MaybeApply f a Source # Comonad f => Comonad (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methodsextract :: MaybeApply f a -> a Source #duplicate :: MaybeApply f a -> MaybeApply f (MaybeApply f a) Source #extend :: (MaybeApply f a -> b) -> MaybeApply f a -> MaybeApply f b Source # Extend f => Extend (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methodsduplicated :: MaybeApply f a -> MaybeApply f (MaybeApply f a) Source #extended :: (MaybeApply f a -> b) -> MaybeApply f a -> MaybeApply f b Source # Apply f => Apply (MaybeApply f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(<.>) :: MaybeApply f (a -> b) -> MaybeApply f a -> MaybeApply f b Source #(.>) :: MaybeApply f a -> MaybeApply f b -> MaybeApply f b Source #(<.) :: MaybeApply f a -> MaybeApply f b -> MaybeApply f a Source #liftF2 :: (a -> b -> c) -> MaybeApply f a -> MaybeApply f b -> MaybeApply f c Source # # Bindable functors class Apply m => Bind m where Source # A Monad sans return. Minimal definition: Either join or >>- If defining both, then the following laws (the default definitions) must hold: join = (>>- id) m >>- f = join (fmap f m) Laws: induced definition of <.>: f <.> x = f >>- (<$> x)

Finally, there are two associativity conditions:

associativity of (>>-):    (m >>- f) >>- g == m >>- (\x -> f x >>- g)
associativity of join:     join . join = join . fmap join

These can both be seen as special cases of the constraint that

associativity of (->-): (f ->- g) ->- h = f ->- (g ->- h)

Minimal complete definition

Methods

(>>-) :: m a -> (a -> m b) -> m b infixl 1 Source #

join :: m (m a) -> m a Source #

#### Instances

Instances details
 Bind [] Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: [a] -> (a -> [b]) -> [b] Source #join :: [[a]] -> [a] Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Maybe a -> (a -> Maybe b) -> Maybe b Source #join :: Maybe (Maybe a) -> Maybe a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: IO a -> (a -> IO b) -> IO b Source #join :: IO (IO a) -> IO a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Q a -> (a -> Q b) -> Q b Source #join :: Q (Q a) -> Q a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Complex a -> (a -> Complex b) -> Complex b Source #join :: Complex (Complex a) -> Complex a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Min a -> (a -> Min b) -> Min b Source #join :: Min (Min a) -> Min a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Max a -> (a -> Max b) -> Max b Source #join :: Max (Max a) -> Max a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: First a -> (a -> First b) -> First b Source #join :: First (First a) -> First a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Last a -> (a -> Last b) -> Last b Source #join :: Last (Last a) -> Last a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Option a -> (a -> Option b) -> Option b Source #join :: Option (Option a) -> Option a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Identity a -> (a -> Identity b) -> Identity b Source #join :: Identity (Identity a) -> Identity a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: First a -> (a -> First b) -> First b Source #join :: First (First a) -> First a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Last a -> (a -> Last b) -> Last b Source #join :: Last (Last a) -> Last a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Dual a -> (a -> Dual b) -> Dual b Source #join :: Dual (Dual a) -> Dual a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Sum a -> (a -> Sum b) -> Sum b Source #join :: Sum (Sum a) -> Sum a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Product a -> (a -> Product b) -> Product b Source #join :: Product (Product a) -> Product a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Down a -> (a -> Down b) -> Down b Source #join :: Down (Down a) -> Down a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: NonEmpty a -> (a -> NonEmpty b) -> NonEmpty b Source #join :: NonEmpty (NonEmpty a) -> NonEmpty a Source # Source # An IntMap is not a Monad, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: IntMap a -> (a -> IntMap b) -> IntMap b Source #join :: IntMap (IntMap a) -> IntMap a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Tree a -> (a -> Tree b) -> Tree b Source #join :: Tree (Tree a) -> Tree a Source # Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Seq a -> (a -> Seq b) -> Seq b Source #join :: Seq (Seq a) -> Seq a Source # Bind (Either a) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Either a a0 -> (a0 -> Either a b) -> Either a b Source #join :: Either a (Either a a0) -> Either a a0 Source # Bind (V1 :: Type -> Type) Source # A V1 is not a Monad, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: V1 a -> (a -> V1 b) -> V1 b Source #join :: V1 (V1 a) -> V1 a Source # Semigroup m => Bind ((,) m) Source # A (,) m is not a Monad unless its m is a Monoid, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: (m, a) -> (a -> (m, b)) -> (m, b) Source #join :: (m, (m, a)) -> (m, a) Source # Monad m => Bind (WrappedMonad m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: WrappedMonad m a -> (a -> WrappedMonad m b) -> WrappedMonad m b Source #join :: WrappedMonad m (WrappedMonad m a) -> WrappedMonad m a Source # Bind (Proxy :: Type -> Type) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Proxy a -> (a -> Proxy b) -> Proxy b Source #join :: Proxy (Proxy a) -> Proxy a Source # Ord k => Bind (Map k) Source # A 'Map k' is not a Monad, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Map k a -> (a -> Map k b) -> Map k b Source #join :: Map k (Map k a) -> Map k a Source # (Functor m, Monad m) => Bind (MaybeT m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: MaybeT m a -> (a -> MaybeT m b) -> MaybeT m b Source #join :: MaybeT m (MaybeT m a) -> MaybeT m a Source # (Apply m, Monad m) => Bind (ListT m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: ListT m a -> (a -> ListT m b) -> ListT m b Source #join :: ListT m (ListT m a) -> ListT m a Source # (Hashable k, Eq k) => Bind (HashMap k) Source # A 'HashMap k' is not a Monad, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: HashMap k a -> (a -> HashMap k b) -> HashMap k b Source #join :: HashMap k (HashMap k a) -> HashMap k a Source # Bind f => Bind (Alt f) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Alt f a -> (a -> Alt f b) -> Alt f b Source #join :: Alt f (Alt f a) -> Alt f a Source # Bind m => Bind (IdentityT m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: IdentityT m a -> (a -> IdentityT m b) -> IdentityT m b Source #join :: IdentityT m (IdentityT m a) -> IdentityT m a Source # Bind (Tagged a) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Tagged a a0 -> (a0 -> Tagged a b) -> Tagged a b Source #join :: Tagged a (Tagged a a0) -> Tagged a a0 Source # (Bind m, Semigroup w) => Bind (WriterT w m) Source # A WriterT w m is not a Monad unless its w is a Monoid, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: WriterT w m a -> (a -> WriterT w m b) -> WriterT w m b Source #join :: WriterT w m (WriterT w m a) -> WriterT w m a Source # (Bind m, Semigroup w) => Bind (WriterT w m) Source # A WriterT w m is not a Monad unless its w is a Monoid, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: WriterT w m a -> (a -> WriterT w m b) -> WriterT w m b Source #join :: WriterT w m (WriterT w m a) -> WriterT w m a Source # Bind m => Bind (WriterT w m) Source # Since: 5.3.6 Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: WriterT w m a -> (a -> WriterT w m b) -> WriterT w m b Source #join :: WriterT w m (WriterT w m a) -> WriterT w m a Source # Bind m => Bind (StateT s m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: StateT s m a -> (a -> StateT s m b) -> StateT s m b Source #join :: StateT s m (StateT s m a) -> StateT s m a Source # Bind m => Bind (StateT s m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: StateT s m a -> (a -> StateT s m b) -> StateT s m b Source #join :: StateT s m (StateT s m a) -> StateT s m a Source # Bind m => Bind (ReaderT e m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: ReaderT e m a -> (a -> ReaderT e m b) -> ReaderT e m b Source #join :: ReaderT e m (ReaderT e m a) -> ReaderT e m a Source # (Functor m, Monad m) => Bind (ExceptT e m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: ExceptT e m a -> (a -> ExceptT e m b) -> ExceptT e m b Source #join :: ExceptT e m (ExceptT e m a) -> ExceptT e m a Source # (Functor m, Monad m) => Bind (ErrorT e m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: ErrorT e m a -> (a -> ErrorT e m b) -> ErrorT e m b Source #join :: ErrorT e m (ErrorT e m a) -> ErrorT e m a Source # Bind ((->) m :: Type -> Type) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: (m -> a) -> (a -> m -> b) -> m -> b Source #join :: (m -> (m -> a)) -> m -> a Source # (Bind f, Bind g) => Bind (Product f g) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: Product f g a -> (a -> Product f g b) -> Product f g b Source #join :: Product f g (Product f g a) -> Product f g a Source # Bind (ContT r m) Source # Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: ContT r m a -> (a -> ContT r m b) -> ContT r m b Source #join :: ContT r m (ContT r m a) -> ContT r m a Source # (Bind m, Semigroup w) => Bind (RWST r w s m) Source # An RWST r w s m is not a Monad unless its w is a Monoid, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: RWST r w s m a -> (a -> RWST r w s m b) -> RWST r w s m b Source #join :: RWST r w s m (RWST r w s m a) -> RWST r w s m a Source # (Bind m, Semigroup w) => Bind (RWST r w s m) Source # An RWST r w s m is not a Monad unless its w is a Monoid, but it is an instance of Bind Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: RWST r w s m a -> (a -> RWST r w s m b) -> RWST r w s m b Source #join :: RWST r w s m (RWST r w s m a) -> RWST r w s m a Source # Bind m => Bind (RWST r w s m) Source # Since: 5.3.6 Instance detailsDefined in Data.Functor.Bind.Class Methods(>>-) :: RWST r w s m a -> (a -> RWST r w s m b) -> RWST r w s m b Source #join :: RWST r w s m (RWST r w s m a) -> RWST r w s m a Source #

(-<<) :: Bind m => (a -> m b) -> m a -> m b infixr 1 Source #

(-<-) :: Bind m => (b -> m c) -> (a -> m b) -> a -> m c infixr 1 Source #

(->-) :: Bind m => (a -> m b) -> (b -> m c) -> a -> m c infixr 1 Source #

apDefault :: Bind f => f (a -> b) -> f a -> f b Source #

returning :: Functor f => f a -> (a -> b) -> f b Source #