I'm not sure what you're suggesting should be in the impl. Maybe the `flatMap` method itself? Or the pattern match on the future returned by `f(v)`?

I suspect you're getting a bad feeling about seeing impl symbols like DefaultPromise inside the otherwise clean Future trait, but I'll await clarification…