Module Relude_ResultT.WithMonad
Creates a ResultT Monad with the given outer Monad module.
Parameters
M: BsBastet.Interface.MONAD
Signature
type t('a, 'e)
=
;|
ResultT(M.t(Pervasives.result('a, 'e)))
let make: a e. M.t(Pervasives.result('a, 'e)) => t('a, 'e);
let runResultT: a e. t('a, 'e) => M.t(Pervasives.result('a, 'e));
let withResultT: a e1 e2. ('e1 => 'e2) => t('a, 'e1) => t('a, 'e2);
let mapResultT: a b e. (M.t(Pervasives.result('a, 'e)) => M.t(Pervasives.result('b, 'e))) => t('a, 'e) => t('b, 'e);
let fromResult: a e. Pervasives.result('a, 'e) => t('a, 'e);
let liftF: a e. M.t('a) => t('a, 'e);
let map: a b e. ('a => 'b) => t('a, 'e) => t('b, 'e);
let subflatMap: a b e. ('a => Pervasives.result('b, 'e)) => t('a, 'e) => t('b, 'e);
let cond: a e. ('a => bool) => 'a => 'e => t('a, 'e) => t('a, 'e);
let condError: a e. ('a => bool) => 'e => t('a, 'e) => t('a, 'e);
let mapError: a e1 e2. ('e1 => 'e2) => t('a, 'e1) => t('a, 'e2);
let bimap: a b e1 e2. ('a => 'b) => ('e1 => 'e2) => t('a, 'e1) => t('b, 'e2);
let apply: a b e. t('a => 'b, 'e) => t('a, 'e) => t('b, 'e);
let pure: a e. 'a => t('a, 'e);
let bind: a b e. t('a, 'e) => ('a => t('b, 'e)) => t('b, 'e);
let semiflatMap: a b e. ('a => M.t('b)) => t('a, 'e) => t('b, 'e);