Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- data MonadView t m x where
- hoistMV :: (forall x. s x -> t x) -> (m a -> n a) -> MonadView s m a -> MonadView t n a
- iterMV :: Monad m => (t a -> MonadView m t a) -> t a -> m a
- newtype Skeleton t a = Skeleton {
- unSkeleton :: Spine t (Skeleton t) a
- bone :: t a -> Skeleton t a
- debone :: Skeleton t a -> MonadView t (Skeleton t) a
- unbone :: Skeleton t a -> MonadView t (Skeleton t) a
- boned :: MonadView t (Skeleton t) a -> Skeleton t a
- hoistSkeleton :: forall s t a. (forall x. s x -> t x) -> Skeleton s a -> Skeleton t a
- data Spine t m a where
- graftSpine :: Cat (Kleisli m) a b -> Spine t m a -> Spine t m b
Documentation
hoistMV :: (forall x. s x -> t x) -> (m a -> n a) -> MonadView s m a -> MonadView t n a Source #
Transform the action and the continuation.
is a monadic skeleton (operational monad) made out of Skeleton
tt
.
Skeletons can be fleshed out by getting transformed to other monads.
It provides O(1) (>>=
) and debone
, the monadic reflection.
Skeleton | |
|
unbone :: Skeleton t a -> MonadView t (Skeleton t) a Source #
Deprecated: Use debone instead
Uncommon synonym for debone
.
hoistSkeleton :: forall s t a. (forall x. s x -> t x) -> Skeleton s a -> Skeleton t a Source #
Lift a transformation between bones into transformation between skeletons.