Module WithMonadAndResult.WithMonad

type t('r, 'a) = WithMonad(M).t('r'a) =
| ContT(('a => M.t('r)) => M.t('r))
;

The type of a continuation. 'a is the intermediate result type, and 'r is the final result type.

let make: (('a => M.t('r)) => M.t('r)) => t('r'a);
let runContT: ('a => M.t('r)) => t('r'a) => M.t('r);
let mapContT: (M.t('r) => M.t('r)) => t('r'a) => t('r'a);
let withContT: (('b => M.t('r)) => 'a => M.t('r)) => t('r'a) => t('r'b);
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);
module WithResult: (R: BsBastet.Interface.TYPE) => { ... };