Copyright | (C) 2012-2014 Edward Kmett |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Edward Kmett <ekmett@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell98 |
- type family Zoomed m :: * -> * -> *
- newtype Focusing m s a = Focusing {
- unfocusing :: m (s, a)
- newtype FocusingWith w m s a = FocusingWith {
- unfocusingWith :: m (s, a, w)
- newtype FocusingPlus w k s a = FocusingPlus {
- unfocusingPlus :: k (s, w) a
- newtype FocusingOn f k s a = FocusingOn {
- unfocusingOn :: k (f s) a
- newtype FocusingMay k s a = FocusingMay {
- unfocusingMay :: k (May s) a
- newtype May a = May {}
- newtype FocusingErr e k s a = FocusingErr {
- unfocusingErr :: k (Err e s) a
- newtype Err e a = Err {}
- type family Magnified m :: * -> * -> *
- newtype Effect m r a = Effect {
- getEffect :: m r
- newtype EffectRWS w st m s a = EffectRWS {
- getEffectRWS :: st -> m (s, st, w)
Zoom
type family Zoomed m :: * -> * -> * Source
This type family is used by Zoom
to describe the common effect type.
type Zoomed (IdentityT m) = Zoomed m | |
type Zoomed (ListT m) = FocusingOn [] (Zoomed m) | |
type Zoomed (MaybeT m) = FocusingMay (Zoomed m) | |
type Zoomed (ReaderT e m) = Zoomed m | |
type Zoomed (StateT s z) = Focusing z | |
type Zoomed (StateT s z) = Focusing z | |
type Zoomed (ExceptT e m) = FocusingErr e (Zoomed m) | |
type Zoomed (ErrorT e m) = FocusingErr e (Zoomed m) | |
type Zoomed (WriterT w m) = FocusingPlus w (Zoomed m) | |
type Zoomed (WriterT w m) = FocusingPlus w (Zoomed m) | |
type Zoomed (RWST r w s z) = FocusingWith w z | |
type Zoomed (RWST r w s z) = FocusingWith w z |
Focusing | |
|
newtype FocusingWith w m s a Source
FocusingWith | |
|
Monad m => Functor (FocusingWith w m s) | |
(Monad m, Monoid s, Monoid w) => Applicative (FocusingWith w m s) | |
(Monad m, Semigroup s, Semigroup w) => Apply (FocusingWith w m s) |
newtype FocusingPlus w k s a Source
FocusingPlus | |
|
Functor (k (s, w)) => Functor (FocusingPlus w k s) | |
Applicative (k (s, w)) => Applicative (FocusingPlus w k s) | |
Apply (k (s, w)) => Apply (FocusingPlus w k s) |
newtype FocusingOn f k s a Source
FocusingOn | |
|
Functor (k (f s)) => Functor (FocusingOn f k s) | |
Applicative (k (f s)) => Applicative (FocusingOn f k s) | |
Apply (k (f s)) => Apply (FocusingOn f k s) |
newtype FocusingMay k s a Source
FocusingMay | |
|
Functor (k (May s)) => Functor (FocusingMay k s) | |
Applicative (k (May s)) => Applicative (FocusingMay k s) | |
Apply (k (May s)) => Apply (FocusingMay k s) |
newtype FocusingErr e k s a Source
FocusingErr | |
|
Functor (k (Err e s)) => Functor (FocusingErr e k s) | |
Applicative (k (Err e s)) => Applicative (FocusingErr e k s) | |
Apply (k (Err e s)) => Apply (FocusingErr e k s) |
Magnify
type family Magnified m :: * -> * -> * Source
This type family is used by Magnify
to describe the common effect type.
Wrap a monadic effect with a phantom type argument.
newtype EffectRWS w st m s a Source
Wrap a monadic effect with a phantom type argument. Used when magnifying RWST
.
EffectRWS | |
|