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.
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 ...].