reader-0.0.8: A reader data type with all the bits
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Reader.Reader2

Documentation

newtype Reader2T (f :: Type -> Type) a b Source #

Constructors

Reader2T (a -> f b) 

Instances

Instances details
Monad f => Category (Reader2T f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

id :: Reader2T f a a #

(.) :: Reader2T f b c -> Reader2T f a b -> Reader2T f a c #

Bind f => Semigroupoid (Reader2T f :: Type -> Type -> Type) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

o :: Reader2T f j k1 -> Reader2T f i j -> Reader2T f i k1 #

MonadError a f => MonadError a (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

throwError :: a -> Reader2T f a a0 #

catchError :: Reader2T f a a0 -> (a -> Reader2T f a a0) -> Reader2T f a a0 #

Monad f => MonadReader a (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

ask :: Reader2T f a a #

local :: (a -> a) -> Reader2T f a a0 -> Reader2T f a a0 #

reader :: (a -> a0) -> Reader2T f a a0 #

MonadState a f => MonadState a (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

get :: Reader2T f a a #

put :: a -> Reader2T f a () #

state :: (a -> (a0, a)) -> Reader2T f a a0 #

MonadWriter a f => MonadWriter a (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

writer :: (a0, a) -> Reader2T f a a0 #

tell :: a -> Reader2T f a () #

listen :: Reader2T f a a0 -> Reader2T f a (a0, a) #

pass :: Reader2T f a (a0, a -> a) -> Reader2T f a a0 #

Monad f => Arrow (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

arr :: (b -> c) -> Reader2T f b c #

first :: Reader2T f b c -> Reader2T f (b, d) (c, d) #

second :: Reader2T f b c -> Reader2T f (d, b) (d, c) #

(***) :: Reader2T f b c -> Reader2T f b' c' -> Reader2T f (b, b') (c, c') #

(&&&) :: Reader2T f b c -> Reader2T f b c' -> Reader2T f b (c, c') #

Monad f => ArrowApply (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

app :: Reader2T f (Reader2T f b c, b) c #

Monad f => ArrowChoice (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

left :: Reader2T f b c -> Reader2T f (Either b d) (Either c d) #

right :: Reader2T f b c -> Reader2T f (Either d b) (Either d c) #

(+++) :: Reader2T f b c -> Reader2T f b' c' -> Reader2T f (Either b b') (Either c c') #

(|||) :: Reader2T f b d -> Reader2T f c d -> Reader2T f (Either b c) d #

MonadFix f => ArrowLoop (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

loop :: Reader2T f (b, d) (c, d) -> Reader2T f b c #

MonadPlus f => ArrowPlus (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

(<+>) :: Reader2T f b c -> Reader2T f b c -> Reader2T f b c #

MonadPlus f => ArrowZero (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

zeroArrow :: Reader2T f b c #

Applicative f => Choice (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

left' :: Reader2T f a b -> Reader2T f (Either a c) (Either b c) #

right' :: Reader2T f a b -> Reader2T f (Either c a) (Either c b) #

Traversable f => Cochoice (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

unleft :: Reader2T f (Either a d) (Either b d) -> Reader2T f a b #

unright :: Reader2T f (Either d a) (Either d b) -> Reader2T f a b #

Distributive f => Closed (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

closed :: Reader2T f a b -> Reader2T f (x -> a) (x -> b) #

(Applicative f, Distributive f) => Mapping (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

map' :: Functor f0 => Reader2T f a b -> Reader2T f (f0 a) (f0 b) #

roam :: ((a -> b) -> s -> t) -> Reader2T f a b -> Reader2T f s t #

MonadFix f => Costrong (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

unfirst :: Reader2T f (a, d) (b, d) -> Reader2T f a b #

unsecond :: Reader2T f (d, a) (d, b) -> Reader2T f a b #

Functor f => Strong (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

first' :: Reader2T f a b -> Reader2T f (a, c) (b, c) #

second' :: Reader2T f a b -> Reader2T f (c, a) (c, b) #

Applicative f => Traversing (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

traverse' :: Traversable f0 => Reader2T f a b -> Reader2T f (f0 a) (f0 b) #

wander :: (forall (f0 :: Type -> Type). Applicative f0 => (a -> f0 b) -> s -> f0 t) -> Reader2T f a b -> Reader2T f s t #

Functor f => Profunctor (Reader2T f) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

dimap :: (a -> b) -> (c -> d) -> Reader2T f b c -> Reader2T f a d #

lmap :: (a -> b) -> Reader2T f b c -> Reader2T f a c #

rmap :: (b -> c) -> Reader2T f a b -> Reader2T f a c #

(#.) :: forall a b c q. Coercible c b => q b c -> Reader2T f a b -> Reader2T f a c #

(.#) :: forall a b c q. Coercible b a => Reader2T f b c -> q a b -> Reader2T f a c #

MonadIO f => MonadIO (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

liftIO :: IO a0 -> Reader2T f a a0 #

Contravariant f => Contravariant (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

contramap :: (a' -> a0) -> Reader2T f a a0 -> Reader2T f a a' #

(>$) :: b -> Reader2T f a b -> Reader2T f a a0 #

Alternative f => Alternative (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

empty :: Reader2T f a a0 #

(<|>) :: Reader2T f a a0 -> Reader2T f a a0 -> Reader2T f a a0 #

some :: Reader2T f a a0 -> Reader2T f a [a0] #

many :: Reader2T f a a0 -> Reader2T f a [a0] #

Applicative f => Applicative (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

pure :: a0 -> Reader2T f a a0 #

(<*>) :: Reader2T f a (a0 -> b) -> Reader2T f a a0 -> Reader2T f a b #

liftA2 :: (a0 -> b -> c) -> Reader2T f a a0 -> Reader2T f a b -> Reader2T f a c #

(*>) :: Reader2T f a a0 -> Reader2T f a b -> Reader2T f a b #

(<*) :: Reader2T f a a0 -> Reader2T f a b -> Reader2T f a a0 #

Functor f => Functor (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

fmap :: (a0 -> b) -> Reader2T f a a0 -> Reader2T f a b #

(<$) :: a0 -> Reader2T f a b -> Reader2T f a a0 #

Monad f => Monad (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

(>>=) :: Reader2T f a a0 -> (a0 -> Reader2T f a b) -> Reader2T f a b #

(>>) :: Reader2T f a a0 -> Reader2T f a b -> Reader2T f a b #

return :: a0 -> Reader2T f a a0 #

MonadPlus f => MonadPlus (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

mzero :: Reader2T f a a0 #

mplus :: Reader2T f a a0 -> Reader2T f a a0 -> Reader2T f a a0 #

Decidable f => Decidable (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

lose :: (a0 -> Void) -> Reader2T f a a0 #

choose :: (a0 -> Either b c) -> Reader2T f a b -> Reader2T f a c -> Reader2T f a a0 #

Divisible f => Divisible (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

divide :: (a0 -> (b, c)) -> Reader2T f a b -> Reader2T f a c -> Reader2T f a a0 #

conquer :: Reader2T f a a0 #

MonadCont f => MonadCont (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

callCC :: ((a0 -> Reader2T f a b) -> Reader2T f a a0) -> Reader2T f a a0 #

Alt f => Alt (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

(<!>) :: Reader2T f a a0 -> Reader2T f a a0 -> Reader2T f a a0 #

some :: Applicative (Reader2T f a) => Reader2T f a a0 -> Reader2T f a [a0] #

many :: Applicative (Reader2T f a) => Reader2T f a a0 -> Reader2T f a [a0] #

Apply f => Apply (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

(<.>) :: Reader2T f a (a0 -> b) -> Reader2T f a a0 -> Reader2T f a b #

(.>) :: Reader2T f a a0 -> Reader2T f a b -> Reader2T f a b #

(<.) :: Reader2T f a a0 -> Reader2T f a b -> Reader2T f a a0 #

liftF2 :: (a0 -> b -> c) -> Reader2T f a a0 -> Reader2T f a b -> Reader2T f a c #

Bind f => Bind (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

(>>-) :: Reader2T f a a0 -> (a0 -> Reader2T f a b) -> Reader2T f a b #

join :: Reader2T f a (Reader2T f a a0) -> Reader2T f a a0 #

(Alt f, Alternative f) => Plus (Reader2T f a) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

zero :: Reader2T f a a0 #

(Monoid b, Apply f, Applicative f) => Monoid (Reader2T f a b) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

mempty :: Reader2T f a b #

mappend :: Reader2T f a b -> Reader2T f a b -> Reader2T f a b #

mconcat :: [Reader2T f a b] -> Reader2T f a b #

(Semigroup b, Apply f) => Semigroup (Reader2T f a b) Source # 
Instance details

Defined in Data.Reader.Reader2

Methods

(<>) :: Reader2T f a b -> Reader2T f a b -> Reader2T f a b #

sconcat :: NonEmpty (Reader2T f a b) -> Reader2T f a b #

stimes :: Integral b0 => b0 -> Reader2T f a b -> Reader2T f a b #

Wrapped (Reader2T f a b) Source # 
Instance details

Defined in Data.Reader.Reader2

Associated Types

type Unwrapped (Reader2T f a b) 
Instance details

Defined in Data.Reader.Reader2

type Unwrapped (Reader2T f a b) = a -> f b

Methods

_Wrapped' :: Iso' (Reader2T f a b) (Unwrapped (Reader2T f a b)) #

Reader2T f a b ~ x => Rewrapped (Reader2T f' a' b') x Source # 
Instance details

Defined in Data.Reader.Reader2

type Unwrapped (Reader2T f a b) Source # 
Instance details

Defined in Data.Reader.Reader2

type Unwrapped (Reader2T f a b) = a -> f b

type Reader2Lens (f :: Type -> Type) s t a b = Reader2T f a b -> Reader2T f s t Source #

reader2 :: forall a b a' b' p f. (Profunctor p, Functor f) => p (a -> b) (f (a' -> b')) -> p (Reader2 a b) (f (Reader2 a' b')) Source #

reader2Lens :: forall f1 s t a b f' s' t' a' b' p f2. (Profunctor p, Functor f2) => p (Reader2Lens f1 s t a b) (f2 (Reader2Lens f' s' t' a' b')) -> p (LensLike f1 s t a b) (f2 (LensLike f' s' t' a' b')) Source #

reader2' :: forall a (f1 :: Type -> Type) b a' (f' :: Type -> Type) b' p f2. (Profunctor p, Functor f2) => p (Reader2T f1 a b) (f2 (Reader2T f' a' b')) -> p (ReaderT a f1 b) (f2 (ReaderT a' f' b')) Source #

star2 :: forall (f1 :: Type -> Type) a b (f' :: Type -> Type) a' b' p f2. (Profunctor p, Functor f2) => p (Reader2T f1 a b) (f2 (Reader2T f' a' b')) -> p (Star f1 a b) (f2 (Star f' a' b')) Source #

kleisli2 :: forall (f1 :: Type -> Type) a b (f' :: Type -> Type) a' b' p f2. (Profunctor p, Functor f2) => p (Reader2T f1 a b) (f2 (Reader2T f' a' b')) -> p (Kleisli f1 a b) (f2 (Kleisli f' a' b')) Source #

liftReader2 :: forall f1 a b f' a' b' p f2. (Profunctor p, Functor f2) => p (Reader2 a (f1 b)) (f2 (Reader2 a' (f' b'))) -> p (Reader2T f1 a b) (f2 (Reader2T f' a' b')) Source #

pureReader2 :: forall (f :: Type -> Type) a b. Applicative f => Reader2 a b -> Reader2T f a b Source #

homReader2 :: (forall x. f x -> g x) -> Reader2T f a b -> Reader2T g a b Source #