Module type Relude_Interface.MONAD_ERROR

Module type signature for a Monad that can handle an error by creating a new monadic value.

include MONAD_THROW;
include BsBastet.Interface.MONAD;
type t('a);
let map: ('a => 'b) => t('a) => t('b);
let apply: t(('a => 'b)) => t('a) => t('b);
let pure: 'a => t('a);
let flat_map: t('a) => ('a => t('b)) => t('b);
type e;
let throwError: e => t('a);
let catchError: (e => t('a)) => t('a) => t('a);