Module WithErrorAndEnv.WithMonad
module IOE: { ... };module M = IOE.MonadError;type t('r, 'a)= WithError(ERR).t('r, 'a)=
;|RIO('r => M.t('a))
let make: ('r => M.t('a)) => t('r, 'a);let runRIO: 'r => t('r, 'a) => M.t('a);let mapRIO: (M.t('a) => M.t('b)) => t('r, 'a) => t('r, 'b);let withRIO: ('r2 => 'r1) => t('r1, 'a) => t('r2, 'a);let ask: t('r, 'r);let asks: ('r => 'a) => t('r, 'a);let local: ('r => 'r) => t('r, 'a) => t('r, 'a);let map: ('a => 'b) => t('r, 'a) => t('r, 'b);let apply: t('r, 'a => 'b) => t('r, 'a) => t('r, 'b);let pure: 'a => t('r, 'a);let bind: t('r, 'a) => ('a => t('r, 'b)) => t('r, 'b);let semiflatMap: ('a => M.t('b)) => t('r, 'a) => t('r, 'b);let catchError: (M.e => M.t('a)) => t('r, 'a) => t('r, 'a);let throwError: M.e => t('r, 'a);let mapError: (M.e => M.e) => t('r, 'a) => t('r, 'a);