Module Relude_ContT.Cont
type t('r, 'a)
= WithMonad(Relude_Identity.Monad).t('r, 'a)
=
;|
ContT(('a => Relude_Identity.Monad.t('r)) => Relude_Identity.Monad.t('r))
The type of a continuation.
'a
is the intermediate result type, and'r
is the final result type.
let make: (('a => Relude_Identity.Monad.t('r)) => Relude_Identity.Monad.t('r)) => t('r, 'a);
let runContT: ('a => Relude_Identity.Monad.t('r)) => t('r, 'a) => Relude_Identity.Monad.t('r);
let mapContT: (Relude_Identity.Monad.t('r) => Relude_Identity.Monad.t('r)) => t('r, 'a) => t('r, 'a);
let withContT: (('b => Relude_Identity.Monad.t('r)) => 'a => Relude_Identity.Monad.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) => { ... };