Adapt Promise.cast; make omitting when/then callbacks work