-- | Run the awaitable. You probably want to use `await` instead, `runAwaitable` is exposed to implement an instance
-- | Run the awaitable. When interacting with an awaitable you usually want to use `await` instead. `runAwaitable` is exposed to manually implement an instance
-- of `IsAwaitable`.
--
-- The implementation of `async` calls `runAwaitable` in most monads, so the implementation of `runAwaitable` must