effects-0.1: src/Control/Effects/Cont.hs
{-# LANGUAGE MultiParamTypeClasses, TypeFamilies, FlexibleContexts #-}
module Control.Effects.Cont where
import Control.Effects
shift :: (c ~ ContT r m, AutoLift c n, Monad m) => Proxy c -> ((m a -> m r) -> m r) -> n a
shift p c = operation p $ \k -> c (>>= k)
reset :: Monad m => Handler a a m a
reset = Handler
{ ret = return
, fin = return
}