- 
                Notifications
    You must be signed in to change notification settings 
- Fork 33
Open
Description
As MonadTrans relates to a natural transformation, MonadTransControl roughly relates to a type like this:
data ControlTransformation st m n = ControlTransformation
  { transWith :: !(forall a. ((forall x. n x -> m (st x)) -> m a) -> n a)
  , restoreState :: !(forall a. st a -> n a)
  }
type StatelessControlTransformation = ControlTransformation Identity
statelessControlTransformation
  :: forall m n. (Functor m, Applicative n)
  => (forall a. ((forall x. n x -> m x) -> m a) -> n a)
  -> StatelessControlTransformation m n
statelessTransWith
  :: (Functor m)
  => StatelessControlTransformation m n
  -> ((forall x. n x -> m x) -> m a) -> n aWould this type belong somewhere in monad-control?
Metadata
Metadata
Assignees
Labels
No labels