Parameters
R: BsBastet.Interface.TYPES: BsBastet.Interface.TYPELog: Relude_WriterT.WriterLog.LOG
Signature
let runRWST: 'a => 'b => t('c, 'a, 'b, 'd) => M.t(RWSResult.t('c, 'b, 'd));let evalRWST: 'a => 'b => t('c, 'a, 'b, 'd) => M.t(('c, 'd));let execRWST: 'a => 'b => t('c, 'a, 'b, 'd) => M.t(('b, 'd));let mapRWST: (M.t(RWSResult.t('a, 'b, 'c)) => M.t(RWSResult.t('d, 'b, 'e))) => t('a, 'f, 'b, 'c) => t('d, 'f, 'b, 'e);let withRWST: ('a => 'b => ('c, 'b)) => t('d, 'c, 'b, 'e) => t('d, 'a, 'b, 'e);
module Functor: BsBastet.Interface.FUNCTOR with type Functor.t('a) = t('a, R.t, S.t, Log.t);let map: ('a => 'b) => Functor.t('a) => Functor.t('b);
module Apply: BsBastet.Interface.APPLY with type Apply.t('a) = t('a, R.t, S.t, Log.t);let apply: Apply.t(('a => 'b)) => Apply.t('a) => Apply.t('b);
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, R.t, S.t, Log.t);let pure: 'a => Applicative.t('a);
module Monad: BsBastet.Interface.MONAD with type Monad.t('a) = t('a, R.t, S.t, Log.t);let bind: Monad.t('a) => ('a => Monad.t('b)) => Monad.t('b);