Module Relude_RIO.WithErrorAndEnv
Creates a RIO Monad with the given error and environment. e.g. WithErrorAndEnv(ERR, ENV) = Rio(ENV.t => IO.t('a, ERR.t)).
Parameters
ERR: BsBastet.Interface.TYPEENV: BsBastet.Interface.TYPE
Signature
module WithMonad: { ... };include { ... };
type nonrec t('a)= WithMonad.t(ENV.t, 'a);
let make: ('a => WithMonad.M.t('b)) => WithMonad.t('a, 'b);let runRIO: 'a => WithMonad.t('a, 'b) => WithMonad.M.t('b);let mapRIO: (WithMonad.M.t('a) => WithMonad.M.t('b)) => WithMonad.t('c, 'a) => WithMonad.t('c, 'b);let withRIO: ('a => 'b) => WithMonad.t('b, 'c) => WithMonad.t('a, 'c);let ask: WithMonad.t('a, 'a);let asks: ('a => 'b) => WithMonad.t('a, 'b);let local: ('a => 'a) => WithMonad.t('a, 'b) => WithMonad.t('a, 'b);let semiflatMap: ('a => WithMonad.M.t('b)) => WithMonad.t('c, 'a) => WithMonad.t('c, 'b);
module Functor: { ... };module BsFunctorExtensions: { ... };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);
module Apply: { ... };module BsApplyExtensions: { ... };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: { ... };let pure: 'a => Applicative.t('a);
module BsApplicativeExtensions: { ... };let liftA1: ('a => 'b) => Applicative.t('a) => Applicative.t('b);let all: list(Applicative.t('a)) => Applicative.t(list('a));
module Monad: { ... };module BsMonadExtensions: { ... };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);
module Infix: { ... };