| Copyright | (c) Edward Kmett 2011 (c) Conal Elliott 2008 |
|---|---|
| License | BSD3 |
| Maintainer | ekmett@gmail.com |
| Stability | experimental |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Control.Monad.Representable.Reader
Description
Representable functors on Hask are all monads, because they are isomorphic to
a Reader monad.
Synopsis
- type Reader (f :: Type -> Type) = ReaderT f Identity
- runReader :: forall (f :: Type -> Type) b. Representable f => Reader f b -> Rep f -> b
- newtype ReaderT (f :: Type -> Type) (m :: Type -> Type) b = ReaderT {
- getReaderT :: f (m b)
- readerT :: forall (f :: Type -> Type) m b. Representable f => (Rep f -> m b) -> ReaderT f m b
- runReaderT :: forall (f :: Type -> Type) m b. Representable f => ReaderT f m b -> Rep f -> m b
- class Monad m => MonadReader r (m :: Type -> Type) | m -> r where
- module Data.Functor.Rep
Representable functor monad
Monad Transformer
newtype ReaderT (f :: Type -> Type) (m :: Type -> Type) b Source #
Constructors
| ReaderT | |
Fields
| |
Instances
| (Representable f, Monad m, Rep f ~ e) => MonadReader e (ReaderT f m) Source # | |
| (Representable f, MonadWriter w m) => MonadWriter w (ReaderT f m) Source # | |
| Representable f => MonadTrans (ReaderT f) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Representable f, Representable m) => Representable (ReaderT f m) Source # | |
| (Foldable1 f, Foldable1 m) => Foldable1 (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader Methods fold1 :: Semigroup m0 => ReaderT f m m0 -> m0 foldMap1 :: Semigroup m0 => (a -> m0) -> ReaderT f m a -> m0 foldMap1' :: Semigroup m0 => (a -> m0) -> ReaderT f m a -> m0 toNonEmpty :: ReaderT f m a -> NonEmpty a maximum :: Ord a => ReaderT f m a -> a minimum :: Ord a => ReaderT f m a -> a foldrMap1 :: (a -> b) -> (a -> b -> b) -> ReaderT f m a -> b foldlMap1' :: (a -> b) -> (b -> a -> b) -> ReaderT f m a -> b foldlMap1 :: (a -> b) -> (b -> a -> b) -> ReaderT f m a -> b foldrMap1' :: (a -> b) -> (a -> b -> b) -> ReaderT f m a -> b | |
| (Representable f, Representable m, Monoid (Rep f), Monoid (Rep m)) => Comonad (ReaderT f m) Source # | |
| (Representable f, Distributive m) => Distributive (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Representable f, Applicative m) => Applicative (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Functor f, Functor m) => Functor (ReaderT f m) Source # | |
| (Representable f, Monad m) => Monad (ReaderT f m) Source # | |
| (Representable f, MonadIO m) => MonadIO (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Foldable f, Foldable m) => Foldable (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader Methods fold :: Monoid m0 => ReaderT f m m0 -> m0 foldMap :: Monoid m0 => (a -> m0) -> ReaderT f m a -> m0 foldMap' :: Monoid m0 => (a -> m0) -> ReaderT f m a -> m0 foldr :: (a -> b -> b) -> b -> ReaderT f m a -> b foldr' :: (a -> b -> b) -> b -> ReaderT f m a -> b foldl :: (b -> a -> b) -> b -> ReaderT f m a -> b foldl' :: (b -> a -> b) -> b -> ReaderT f m a -> b foldr1 :: (a -> a -> a) -> ReaderT f m a -> a foldl1 :: (a -> a -> a) -> ReaderT f m a -> a toList :: ReaderT f m a -> [a] length :: ReaderT f m a -> Int elem :: Eq a => a -> ReaderT f m a -> Bool maximum :: Ord a => ReaderT f m a -> a minimum :: Ord a => ReaderT f m a -> a | |
| (Traversable f, Traversable m) => Traversable (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Representable f, Apply m) => Apply (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Representable f, Bind m) => Bind (ReaderT f m) Source # | |
| (Representable f, Representable m, Semigroup (Rep f), Semigroup (Rep m)) => Extend (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
| (Traversable1 f, Traversable1 m) => Traversable1 (ReaderT f m) Source # | |
| type Rep (ReaderT f m) Source # | |
Defined in Control.Monad.Representable.Reader | |
readerT :: forall (f :: Type -> Type) m b. Representable f => (Rep f -> m b) -> ReaderT f m b Source #
runReaderT :: forall (f :: Type -> Type) m b. Representable f => ReaderT f m b -> Rep f -> m b Source #
class Monad m => MonadReader r (m :: Type -> Type) | m -> r where #
Instances
| (Representable f, Rep f ~ a) => MonadReader a (Co f) Source # | |
| MonadReader e m => MonadReader e (Free m) # | |
| MonadReader e m => MonadReader e (Free m) # | |
| MonadReader e m => MonadReader e (F m) # | |
| MonadReader e m => MonadReader e (IterT m) # | |
| MonadReader r m => MonadReader r (MaybeT m) # | |
| (Representable f, Monad m, Rep f ~ e) => MonadReader e (ReaderT f m) Source # | |
| (Representable g, MonadReader e m) => MonadReader e (StateT g m) Source # | |
| (Functor f, MonadReader r m) => MonadReader r (FreeT f m) # | |
| (Applicative f, MonadReader r m) => MonadReader r (FreeT f m) # | |
| MonadReader r m => MonadReader r (FT f m) # | |
| (Monoid w, MonadReader r m) => MonadReader r (AccumT w m) # | |
| MonadReader r m => MonadReader r (ExceptT e m) # | |
| MonadReader r m => MonadReader r (IdentityT m) # | |
| Monad m => MonadReader r (ReaderT r m) # | |
| MonadReader r m => MonadReader r (StateT s m) # | |
| MonadReader r m => MonadReader r (StateT s m) # | |
| (Monoid w, MonadReader r m) => MonadReader r (WriterT w m) # | |
| (Monoid w, MonadReader r m) => MonadReader r (WriterT w m) # | |
| (Monoid w, MonadReader r m) => MonadReader r (WriterT w m) # | |
| MonadReader r' m => MonadReader r' (SelectT r m) # | |
| MonadReader r ((->) r) # | |
| MonadReader r' m => MonadReader r' (ContT r m) # | |
| (Monad m, Monoid w) => MonadReader r (RWST r w s m) # | |
| (Monad m, Monoid w) => MonadReader r (RWST r w s m) # | |
| (Monad m, Monoid w) => MonadReader r (RWST r w s m) # | |
module Data.Functor.Rep