An error channel carries failures separately from ordinary result values. Task adds this channel to IO, storing evaluation failures as Try values while allowing normal mapping to continue unchanged. section 15.3.2
The channel supports several compositional operations:
- Use attempt to expose the underlying Try, including failures such as NumberFormatException. section 15.3.2
- Use handleErrorWith to sequence recovery through the error channel, short-circuiting on Failure like Try and Either. section 15.3.2
- Extend the same behavior to Stream and Pull; MonadThrow supplies raising and handling operations beyond Monad. section 15.3.2
