Why can this repository call begin before the returned `IO` is run?
scala
def load(id: Long)(using ec: ExecutionContext): IO[User] = {
val started = Future(repository.find(id))
IO.fromFuture(IO.pure(started))
}
def load(id: Long)(using ec: ExecutionContext): IO[User] = {
val started = Future(repository.find(id))
IO.fromFuture(IO.pure(started))
}