| 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 = ReaderT f Identity
- runReader :: Representable f => Reader f b -> Rep f -> b
- newtype ReaderT f m b = ReaderT {
- getReaderT :: f (m b)
- readerT :: Representable f => (Rep f -> m b) -> ReaderT f m b
- runReaderT :: 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 m b Source #
Instances
Instances details
Instance details
Defined in Control.Monad.Representable.Reader
Instance details
Defined in Control.Monad.Representable.Reader
Instance details
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] #
null :: ReaderT f m a -> Bool #
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 #
Instance details
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 #
Instance details
Defined in Control.Monad.Representable.Reader
Methods
traverse :: Applicative f0 => (a -> f0 b) -> ReaderT f m a -> f0 (ReaderT f m b) #
sequenceA :: Applicative f0 => ReaderT f m (f0 a) -> f0 (ReaderT f m a) #
mapM :: Monad m0 => (a -> m0 b) -> ReaderT f m a -> m0 (ReaderT f m b) #
sequence :: Monad m0 => ReaderT f m (m0 a) -> m0 (ReaderT f m a) #
Instance details
Defined in Control.Monad.Representable.Reader
Instance details
Defined in Control.Monad.Representable.Reader
Methods
distribute :: Functor f0 => f0 (ReaderT f m a) -> ReaderT f m (f0 a) #
collect :: Functor f0 => (a -> ReaderT f m b) -> f0 a -> ReaderT f m (f0 b) #
distributeM :: Monad m0 => m0 (ReaderT f m a) -> ReaderT f m (m0 a) #
collectM :: Monad m0 => (a -> ReaderT f m b) -> m0 a -> ReaderT f m (m0 b) #
Instance details
Defined in Control.Monad.Representable.Reader
Instance details
Defined in Control.Monad.Representable.Reader
runReaderT :: Representable f => ReaderT f m b -> Rep f -> m b Source #
class Monad m => MonadReader r (m :: Type -> Type) | m -> r where #
See examples in Control.Monad.Reader.
Note, the partially applied function type (->) r is a simple reader monad.
See the instance declaration below.
Methods
Retrieves the monad environment.
Arguments
The function to modify the environment.
Reader to run in the modified environment.
Executes a computation in a modified environment.
Arguments
The selector function to apply to the environment.
Retrieves a function of the current environment.
Instances
Instances details
Since: mtl-2.3
Since: mtl-2.2
Since: mtl-2.3
Since: mtl-2.3
Since: mtl-2.3
module Data.Functor.Rep