Returns an effectful function that extracts out the first element of a tuple.
Returns an effectful function that extracts out the second element of a tuple.
See KleisliIO.compose
Returns a KleisliIO
representing a failure with the specified E
.
See @KleisliIO.flatMap
Returns the identity effectful function, which performs no effects and merely returns its input unmodified.
Returns a new effectful function that passes an A
to the condition, and
if the condition returns false, passes the A
to the then0
function, but
otherwise returns the original A
unmodified.
Returns a new effectful function that passes an A
to the condition, and
if the condition returns true, passes the A
to the then0
function, but
otherwise returns the original A
unmodified.
Returns a new effectful function that passes an A
to the condition, and
if the condition returns true, passes the A
to the then0
function,
but if the condition returns false, passes the A
to the else0
function.
Lifts an impure function into KleisliIO
, converting throwables into the
specified error type E
.
Lifts an impure function into KleisliIO
, assuming any throwables are
non-recoverable and do not need to be converted into errors.
See KleisliIO.|||
See KleisliIO.left
Lifts a pure A => B
into KleisliIO
.
Lifts a value into the monad formed by KleisliIO
.
Lifts a pure A => IO[E, B]
into KleisliIO
.
See KleisliIO.left
Returns an effectful function that merely swaps the elements in a Tuple2
.
Returns a new effectful function that passes an A
to the condition, and
if the condition returns true, returns Left(a)
, but if the condition
returns false, returns Right(a)
.
Returns a new effectful function that passes an A
to the condition, and
if the condition returns true, passes the A
through the body to yield a
new A
, which repeats until the condition returns false.
Returns a new effectful function that passes an A
to the condition, and
if the condition returns true, passes the A
through the body to yield a
new A
, which repeats until the condition returns false. This is the
KleisliIO
equivalent of a while(cond) { body }
loop.
See KleisliIO.zipWith