BREAKING: Channels now require a SleepProvider BREAKING: `Error::ResolveError` now contains an enum instead of a String BREAKING: `Error::ChanelClosed` now contains a unit error `ChannelClosed`