ewww.  This seems like the kind of thing that could break in a future version of clojure.  Not sure I have a better solution, though.

How were we dealing with this before?

If we do think this check is necesary, are we really using all of the features of a promise that force us to check it that specifically?  Would, e.g., `IDeref` or `IBlockingDeref` be sufficient on their own?

Not sure whether I'm actually suggesting any changes here, just food for thought.