Parameters
R: BsBastet.Interface.TYPE
Signature
type nonrec t('a)
= t(R.t, 'a)
;
let make: (('a => M.t('b)) => M.t('b)) => t('b, 'a);
let runContT: ('a => M.t('b)) => t('b, 'a) => M.t('b);
let mapContT: (M.t('a) => M.t('a)) => t('a, 'b) => t('a, 'b);
let withContT: (('a => M.t('b)) => 'c => M.t('b)) => t('b, 'c) => t('b, 'a);
let map: ('a => 'b) => t('c, 'a) => t('c, 'b);
let apply: t('a, 'b => 'c) => t('a, 'b) => t('a, 'c);
let pure: 'a => t('b, 'a);
let bind: t('a, 'b) => ('b => t('a, 'c)) => t('a, 'c);
module Functor: BsBastet.Interface.FUNCTOR with type Functor.t('a) = t('a);
module Apply: BsBastet.Interface.APPLY with type Apply.t('a) = t('a);
include { ... };
let applyFirst: Apply.t('a) => Apply.t('b) => Apply.t('a);
let applySecond: Apply.t('a) => Apply.t('b) => Apply.t('b);
let map2: ('a => 'b => 'c) => Apply.t('a) => Apply.t('b) => Apply.t('c);
let map3: ('a => 'b => 'c => 'd) => Apply.t('a) => Apply.t('b) => Apply.t('c) => Apply.t('d);
let map4: ('a => 'b => 'c => 'd => 'e) => Apply.t('a) => Apply.t('b) => Apply.t('c) => Apply.t('d) => Apply.t('e);
let map5: ('a => 'b => 'c => 'd => 'e => 'f) => Apply.t('a) => Apply.t('b) => Apply.t('c) => Apply.t('d) => Apply.t('e) => Apply.t('f);
let tuple2: Apply.t('a) => Apply.t('b) => Apply.t(('a, 'b));
let tuple3: Apply.t('a) => Apply.t('b) => Apply.t('c) => Apply.t(('a, 'b, 'c));
let tuple4: Apply.t('a) => Apply.t('b) => Apply.t('c) => Apply.t('d) => Apply.t(('a, 'b, 'c, 'd));
let tuple5: Apply.t('a) => Apply.t('b) => Apply.t('c) => Apply.t('d) => Apply.t('e) => Apply.t(('a, 'b, 'c, 'd, 'e));
let mapTuple2: ('a => 'b => 'c) => (Apply.t('a), Apply.t('b)) => Apply.t('c);
let mapTuple3: ('a => 'b => 'c => 'd) => (Apply.t('a), Apply.t('b), Apply.t('c)) => Apply.t('d);
let mapTuple4: ('a => 'b => 'c => 'd => 'e) => (Apply.t('a), Apply.t('b), Apply.t('c), Apply.t('d)) => Apply.t('e);
let mapTuple5: ('a => 'b => 'c => 'd => 'e => 'f) => (Apply.t('a), Apply.t('b), Apply.t('c), Apply.t('d), Apply.t('e)) => Apply.t('f);
module Applicative: BsBastet.Interface.APPLICATIVE with type Applicative.t('a) = t('a);
module Monad: BsBastet.Interface.MONAD with type Monad.t('a) = t('a);