The new concurrent Future class (
http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/index.html#scala.concurrent.Future) should (I think) have a mechanism to lift a Future[T] into a Future[Either[Throwable, T]] (the method could be called "liftEither", or just "e").
The reason that this is useful is that it means we can go through the following process:
CC[Future[T]] ~> CC[Future[Either[Throwable, T]]] ~> CC[Future[ValidationNEL[Throwable, T]] ~> Future[ValidationNEL[Throwable, CC[T]]]
It also means that the future can be used in a for-comprehension without "silently" ignoring failure:
for (e <- intFuture.e) yield e.right.map( ... etc )
Is this worthy of an RFE? It's an incredibly simple library addition
Chris