-
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