Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype IntrospectT (t :: (* -> *) -> * -> *) (r :: (* -> *) -> *) (m :: * -> *) (a :: *) = IntrospectT {
- runIntrospectT :: r (t (IntrospectT t r m)) -> m a
- runIntrospect :: (Representational r, Coercible (t (IntrospectT t r m)) n) => r n -> IntrospectT t r m a -> m a
- mapIntrospectT :: (m a -> m b) -> IntrospectT t r m a -> IntrospectT t r m b
- liftCallCC :: CallCC m a b -> CallCC (IntrospectT t r m) a b
- liftCatch :: Catch e m a -> Catch e (IntrospectT t r m) a
Concrete interface
newtype IntrospectT (t :: (* -> *) -> * -> *) (r :: (* -> *) -> *) (m :: * -> *) (a :: *) Source #
extends the monad IntrospectT
t r m am
with access to an environment
r
parameterized by m
with additional effects t
on top.
IntrospectT | |
|
Instances
runIntrospect :: (Representational r, Coercible (t (IntrospectT t r m)) n) => r n -> IntrospectT t r m a -> m a Source #
Run an IntrospectT
. If introspection is the outermost effect then you
will likely have t ~
and thus you
can pick IdentityT
n ~
.IntrospectT
t r m
Utility functions for proxying other effects
mapIntrospectT :: (m a -> m b) -> IntrospectT t r m a -> IntrospectT t r m b Source #
liftCallCC :: CallCC m a b -> CallCC (IntrospectT t r m) a b Source #