No need to route through `Promise.call` here, as `fn` will already be evaluated in a worker thread. 

I see [how Twitter Futures handle `respond`](https://github.com/twitter/util/blob/master/util-core/src/main/scala/com/twitter/util/Promise.scala#L148-L157), but I can't say I quite understand. Do you?