It would be nice to be able to interoperate with other Promise/A+ implementations. I agree that the `typeof obj.then === 'function'` check is a little dangerous. Maybe we just need a function which will coerce any Promise/A+ to promise to kew promise.