Cancellation

A function is said to support ContextAwaitable cancellation when its return type models concept ContextAwaitable and this return object a controls a coroutine which can be prematurely stopped using the std::stop_token propagated through the ContextAwaitable protocol. Additionally, if the result type of expression co_await a in the context of a Capy-coroutine is a specialization of results then the cancelling of an operation is considered a contingency represented by condition cond::canceled.