Even if the source language does not expose continuations as an abstraction for the programmer, continuations can still be useful as a language implementation technique.
e.g., effects in Leijen2016 can be clearly implemented with continuations.
CPS also shares properties with other intermediate representations:
- Double-barrelled continuations—passing two continuations: one normal and one for exceptions.
- CPS is better suited for later compilation stages