monads.either

Represents values that are either an error or a valid value.

either

(either err-fn ok-fn e)
Call err-fn if either is [:err ...], otherwise call ok-fn.

either->

macro

(either-> bindings body)
Takes a vector of bindings and a final body. Terminates
execution when the first [:err ...] value is encountered,
otherwise returns the body.

either->maybe

(either->maybe e)
If the either value is [:err ...], return nil, otherwise return
the [:ok ...] value unwrapped.

err?

(err? x)

ok?

(ok? x)

return-either

(return-either x)

try-either

macro

(try-either body)
Execute body within a try/catch block. Returns the
body wrapped in an [:ok ...] if no exception is thrown,
otherwise, the exception wrapped in an [:err ...].

unwrap-either