:\
Maybe Retry should operate over Future[T] so it can respond to errors accordingly? Can use

```
future.transform {
  case Return(r) => r
  case Throw(t) => // log the error and try again
}