Safe Haskell | None |
---|---|
Language | GHC2021 |
Documentation
type ShiftFix ans (eh :: [(Type -> Type) -> Type -> Type]) (ef :: [EffectF]) = Shift ans (ShiftBase ans eh ef) Source #
newtype ShiftBase ans (eh :: [(Type -> Type) -> Type -> Type]) (ef :: [EffectF]) a Source #
ShiftBase | |
|
Instances
Applicative (ShiftBase ans eh ef) Source # | |
Defined in Control.Monad.Hefty.ShiftReset pure :: a -> ShiftBase ans eh ef a # (<*>) :: ShiftBase ans eh ef (a -> b) -> ShiftBase ans eh ef a -> ShiftBase ans eh ef b # liftA2 :: (a -> b -> c) -> ShiftBase ans eh ef a -> ShiftBase ans eh ef b -> ShiftBase ans eh ef c # (*>) :: ShiftBase ans eh ef a -> ShiftBase ans eh ef b -> ShiftBase ans eh ef b # (<*) :: ShiftBase ans eh ef a -> ShiftBase ans eh ef b -> ShiftBase ans eh ef a # | |
Functor (ShiftBase ans eh ef) Source # | |
Monad (ShiftBase ans eh ef) Source # | |
evalShift :: forall ans (ef :: [EffectF]). Eff '[ShiftFix ans ('[] :: [(Type -> Type) -> Type -> Type]) ef] ef ans -> Eff ('[] :: [EffectH]) ef ans Source #
runShift :: forall a (ef :: [EffectF]) ans. (a -> Eff ('[] :: [EffectH]) ef ans) -> Eff '[ShiftFix ans ('[] :: [(Type -> Type) -> Type -> Type]) ef] ef a -> Eff ('[] :: [EffectH]) ef ans Source #
withShift :: forall ans (eh :: [EffectH]) (ef :: [EffectF]). Eff '[ShiftFix ans ('[] :: [(Type -> Type) -> Type -> Type]) '[Eff eh ef]] '[Eff eh ef] ans -> Eff eh ef ans Source #