pub type OpResult = Result<Val, Val>;
An op’s failure is an ordinary narju value, so a partial op is a throw the program can catch, not a second error channel.
throw
pub enum OpResult { Ok(Val), Err(Val), }
Contains the success value
Contains the error value