This class represent a portion of computation that has a 'hole' in it.
An annotation that denotes a type is part of a continuation context.
This annotation is used to mark a parameter as part of a continuation context.
An annotation that denotes a type is part of a side effecting continuation context.
This method converts from the sugared
A @cpsParam[B,C] type to the desugared
Creates a context for continuations captured within the argument closure
reset call and returns the result of the entire transformed
The result of a block of code that uses
shift to capture continuations.
shift function captures the remaining computation in a
and passes it to a closure provided by the user.
A function where
resetblock. This is passed as a function
A => B.
ControlContextwhich is generated from this inversion.
Must be invoked in the context of a call to
reset This context
may not be far up the stack, but a call to reset is needed to
eventually remove the
@cps annotations from types.
Captures a computation into a
The function which accepts the inverted computation and returns a final result.