This method (and `canonical`) is public because the `DefaultPromise` class is essentially `private[concurrent]`. However I can also make these methods `private[concurrent]` if it seems like a good idea.