add deferred->stream coercion, and make ->deferred et al throw when given an invalid type