| Safe Haskell | Safe | 
|---|---|
| Language | Haskell2010 | 
Control.Monad.Skeleton
- 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
- data Skeleton t a where
- 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
Documentation
data MonadView t m x where Source #
A deconstructed action
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.
data Skeleton t a where Source #
Skeleton tt.
 Skeletons can be fleshed out by getting transformed to other monads.
 It provides O(1) (>>=) and debone, the monadic reflection.
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.