Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype Continuation r t a = Continuation ((((->) ::|:. a) :. t) := r)
- cwcc :: ((a -> Continuation r t b) -> Continuation r t a) -> Continuation r t a
- reset :: (forall u. Bindable (->) u, Monad t) => Continuation r t r -> Continuation s t r
- shift :: Monoidal (->) (->) (:*:) (:*:) t => ((a -> t r) -> Continuation r t r) -> Continuation r t a
- interruptable :: Monoidal (->) (->) (:*:) (:*:) t => ((a -> Continuation a t a) -> Continuation a t a) -> t a
Documentation
newtype Continuation r t a Source #
Continuation ((((->) ::|:. a) :. t) := r) |
Instances
(forall (u :: Type -> Type). Bindable ((->) :: Type -> Type -> Type) u) => Liftable ((->) :: Type -> Type -> Type) (Continuation r) Source # | |
Defined in Pandora.Paradigm.Primary.Transformer.Continuation lift :: Covariant (->) (->) u => u a -> Continuation r u a Source # | |
Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (Continuation r t) Source # | |
Defined in Pandora.Paradigm.Primary.Transformer.Continuation (-<$>-) :: (a -> b) -> Continuation r t a -> Continuation r t b Source # | |
Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Bindable ((->) :: Type -> Type -> Type) (Continuation r t) Source # | |
Defined in Pandora.Paradigm.Primary.Transformer.Continuation (=<<) :: (a -> Continuation r t b) -> Continuation r t a -> Continuation r t b Source # | |
Interpreted (Continuation r t) Source # | |
Defined in Pandora.Paradigm.Primary.Transformer.Continuation type Primary (Continuation r t) a Source # run :: Continuation r t a -> Primary (Continuation r t) a Source # unite :: Primary (Continuation r t) a -> Continuation r t a Source # (||=) :: Interpreted u => (Primary (Continuation r t) a -> Primary u b) -> Continuation r t a -> u b Source # (=||) :: Interpreted u => (Continuation r t a -> u b) -> Primary (Continuation r t) a -> Primary u b Source # (<$||=) :: (Covariant (->) (->) j, Interpreted u) => (Primary (Continuation r t) a -> Primary u b) -> (j := Continuation r t a) -> j := u b Source # (<$$||=) :: (Covariant (->) (->) j, Covariant (->) (->) k, Interpreted u) => (Primary (Continuation r t) a -> Primary u b) -> ((j :. k) := Continuation r t a) -> (j :. k) := u b Source # (<$$$||=) :: (Covariant (->) (->) j, Covariant (->) (->) k, Covariant (->) (->) l, Interpreted u) => (Primary (Continuation r t) a -> Primary u b) -> ((j :. (k :. l)) := Continuation r t a) -> (j :. (k :. l)) := u b Source # (<$$$$||=) :: (Covariant (->) (->) j, Covariant (->) (->) k, Covariant (->) (->) l, Covariant (->) (->) m, Interpreted u) => (Primary (Continuation r t) a -> Primary u b) -> ((j :. (k :. (l :. m))) := Continuation r t a) -> (j :. (k :. (l :. m))) := u b Source # (=||$>) :: (Covariant (->) (->) j, Interpreted u) => (Continuation r t a -> u b) -> (j := Primary (Continuation r t) a) -> j := Primary u b Source # (=||$$>) :: (Covariant (->) (->) j, Covariant (->) (->) k, Interpreted u) => (Continuation r t a -> u b) -> ((j :. k) := Primary (Continuation r t) a) -> (j :. k) := Primary u b Source # (=||$$$>) :: (Covariant (->) (->) j, Covariant (->) (->) k, Covariant (->) (->) l, Interpreted u) => (Continuation r t a -> u b) -> ((j :. (k :. l)) := Primary (Continuation r t) a) -> (j :. (k :. l)) := Primary u b Source # (=||$$$$>) :: (Covariant (->) (->) j, Covariant (->) (->) k, Covariant (->) (->) l, Covariant (->) (->) m, Interpreted u) => (Continuation r t a -> u b) -> ((j :. (k :. (l :. m))) := Primary (Continuation r t) a) -> (j :. (k :. (l :. m))) := Primary u b Source # | |
type Primary (Continuation r t) a Source # | |
cwcc :: ((a -> Continuation r t b) -> Continuation r t a) -> Continuation r t a Source #
Call with current continuation
reset :: (forall u. Bindable (->) u, Monad t) => Continuation r t r -> Continuation s t r Source #
Delimit the continuation of any shift
shift :: Monoidal (->) (->) (:*:) (:*:) t => ((a -> t r) -> Continuation r t r) -> Continuation r t a Source #
Capture the continuation up to the nearest enclosing reset
and pass it
interruptable :: Monoidal (->) (->) (:*:) (:*:) t => ((a -> Continuation a t a) -> Continuation a t a) -> t a Source #