The error is not easy to understand for this code: ``` rust use std::error::Error; use std::fmt; #[derive(Debug, Clone)] struct SomeError { cause: String } impl fmt::Display for SomeError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "SomeError") } } impl Error for SomeError { fn description(&self) -> &str { "Some Error" } fn cause(&self) -> Option<&Error> { None } } #[derive(Debug, Clone)] enum NewError { SomeCause(Error + Sized) } fn main() { let error = NewError::SomeCause(SomeError { cause: "some cause".to_string() }); println!("{:?}", error); } ``` (it's also in https://play.rust-lang.org/?gist=ec4209f420275037c3f652a7aeae01ff&version=stable&mode=debug) If I understand properly, the issue is that I should have something like this instead: ``` rust enum NewError<T: Error> { SomeCause(T) } ``` But the error is very misleading.