
12 Jan
2016
12 Jan
'16
3:38 p.m.
On 2016-01-11 05:28 AM, Dmitriy Matrosov wrote:
Wouldn't it be simpler (better?) to just define shift/reset like
shift' :: ((a -> w) -> w) -> Cont w a shift' = cont
reset' :: Cont w w -> w reset' m = runCont m id
shiftT' :: ((a -> m w) -> m w) -> ContT w m a shiftT' = ContT
resetT' :: Monad m => ContT w m w -> m w resetT' m = runContT m return
Yes. See also https://www.schoolofhaskell.com/user/dolio/monad-transformers-and-static-eff...