Traits for working with Errors.
An iterator over Error
Error is a trait representing the basic expectations for error values,
i.e., values of type E in Result<T, E>. Errors must describe
themselves through the Display and Debug traits, and may provide
cause chain information: