public static function reverse($yieldable)
    {
        try {
            $result = (yield $yieldable);
        } catch (\RuntimeException $e) {
            yield CoInterface::RETURN_WITH => $e;
        }
        throw new ControlException($result);
    }