Update coroutine specification and contract