pub trait ToResult {
// Provided methods
fn ok<Err>(self) -> Result<Self, Err>
where Self: Sized { ... }
fn err<Any>(self) -> Result<Any, Self>
where Self: Sized { ... }
fn some(self) -> Option<Self>
where Self: Sized { ... }
}