pub enum Either { Left(T), Right(E), } pub mod err { pub struct Error; pub struct ErrorWrap(T); } pub fn foo_err() -> Either<(), err::Error> { Either::Left(()) } pub fn foo_err_wrap() -> Either<(), err::ErrorWrap> { Either::Left(()) }