pub type PResult<T, E> = Result<T, Fail<E>>;
pub enum PResult<T, E> { Ok(T), Err(Fail<E>), }
Contains the success value
Contains the error value