Yes, exactly. And Future is meant to be implemented by others. This may not be an issue though since today we are in practice returning DefaultPromises all over the place. Perhaps one solution would be to have a "createPromise" method on the Future trait and have that be called instead of Promise.apply. * thinking out loud *