A common situation I find myselfe in with Scala is the following flow:

1. Read some props wich returns an `Option`
2. Use the props in a `Future`
3. Make some transformation on the results in the future that returns an `Option`

This yields a type such as `Option[Future[Option[_]]]` the better solution would be using a transformation such as `Future[Option[Option[_]]]` for example using something like below:

```
def transform[A](o: Option[Future[A]]): Future[Option[A]] =
  o.map(f => f.map(Option(_))).getOrElse(Future.successful(None))

```

(Code stolen from [here](https://stackoverflow.com/questions/19450222/transform-futureoptionx-into-optionfuturex))

Then I could work with an arbitrary number of `Options` inside the `Future` using `flatmap`.

This seems like such a common pattern that im sure it is avaliable in Scala in some ideomatic way without me having to implement the transform method over and over.

So my question is: What is the most ideomatic way to turn an `Option[Future[Option[_]]]` outside in as in the above example?