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 ((->) :: Type -> Type -> Type) (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 # (||=) :: (Semigroupoid (->), Interpreted (->) u) => (Primary (Continuation r t) a -> Primary u b) -> Continuation r t a -> u b Source # (=||) :: (Semigroupoid (->), Interpreted (->) u) => (Continuation r t a -> u b) -> Primary (Continuation r t) a -> Primary u b Source # (<$||=) :: (Semigroupoid (->), Covariant (->) (->) j, Interpreted (->) u) => (Primary (Continuation r t) a -> Primary u b) -> (j := Continuation r t a) -> (j := u b) Source # (<$$||=) :: (Semigroupoid (->), 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 # (<$$$||=) :: (Semigroupoid (->), 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 # (<$$$$||=) :: (Semigroupoid (->), Covariant (->) (->) j, Covariant (->) (->) k, Covariant (->) (->) l, Covariant (->) (->) n, Interpreted (->) u) => (Primary (Continuation r t) a -> Primary u b) -> ((j :. (k :. (l :. n))) := Continuation r t a) -> ((j :. (k :. (l :. n))) := 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 (->) (->) n, Interpreted (->) u) => (Continuation r t a -> u b) -> ((j :. (k :. (l :. n))) := Primary (Continuation r t) a) -> ((j :. (k :. (l :. n))) := 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 #