This is a follow-up on a discussion on gitter I had with Rob Norris. Gitter is great, but it is easier to make a coherent argument in a gist.
The monad laws allow us to assert that in the following the two results will describe computations that eventually yield the same value:
val fut1 = Future(<comp1>)
val fut2 = Future()