Parameters
E: BsBastet.Interface.TYPE
Signature
let make: M.t(Pervasives.result('a, 'b)) => t('a, 'b);
let runResultT: t('a, 'b) => M.t(Pervasives.result('a, 'b));
let withResultT: ('a => 'b) => t('c, 'a) => t('c, 'b);
let mapResultT: (M.t(Pervasives.result('a, 'b)) => M.t(Pervasives.result('c, 'b))) => t('a, 'b) => t('c, 'b);
let fromResult: Pervasives.result('a, 'b) => t('a, 'b);
let liftF: M.t('a) => t('a, 'b);
let subflatMap: ('a => Pervasives.result('b, 'c)) => t('a, 'c) => t('b, 'c);
let semiflatMap: ('a => M.t('b)) => t('a, 'c) => t('b, 'c);
let cond: ('a => bool) => 'a => 'b => t('a, 'b) => t('a, 'b);
let condError: ('a => bool) => 'b => t('a, 'b) => t('a, 'b);
let map: ('a => 'b) => Functor.t('a) => Functor.t('b);
let flipMap: Functor.t('a) => ('a => 'b) => Functor.t('b);
let void: Functor.t('a) => Functor.t(unit);
let voidRight: 'a => Functor.t('b) => Functor.t('a);
let voidLeft: Functor.t('a) => 'b => Functor.t('b);
let flap: Functor.t(('a => 'b)) => 'a => Functor.t('b);
let bimap: ('a => 'b) => ('c => 'd) => Bifunctor.t('a, 'c) => Bifunctor.t('b, 'd);
let mapLeft: ('a => 'c) => Bifunctor.t('a, 'b) => Bifunctor.t('c, 'b);
let mapRight: ('b => 'd) => Bifunctor.t('a, 'b) => Bifunctor.t('a, 'd);
let mapError: ('a => 'b) => Bifunctor.t('c, 'a) => Bifunctor.t('c, 'b);
let apply: Apply.t(('a => 'b)) => Apply.t('a) => Apply.t('b);
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);
let pure: 'a => Applicative.t('a);
let liftA1: ('a => 'b) => Applicative.t('a) => Applicative.t('b);
let all: list(Applicative.t('a)) => Applicative.t(list('a));
let bind: Monad.t('a) => ('a => Monad.t('b)) => Monad.t('b);
let flatMap: ('a => Monad.t('b)) => Monad.t('a) => Monad.t('b);
let flatten: Monad.t(Monad.t('a)) => Monad.t('a);
let composeKleisli: ('a => Monad.t('b)) => ('b => Monad.t('c)) => 'a => Monad.t('c);
let flipComposeKleisli: ('b => Monad.t('c)) => ('a => Monad.t('b)) => 'a => Monad.t('c);
let liftM1: ('a => 'b) => Monad.t('a) => Monad.t('b);
let when_: Monad.t(bool) => Monad.t(unit) => Monad.t(unit);
let unless: Monad.t(bool) => Monad.t(unit) => Monad.t(unit);