Either package:transformers-either
Map over both arguments at the same time.
Specialised version of
bimap for
EitherT.
An Either monad transformer
Drop in alternative to ExceptT. Uses a pattern synonym to maintain
compatibility with the old EitherT types but is actually ExceptT under
the covers.
Map the unwrapped computation using the given function.
Acquire a resource in
EitherT and then perform an action with
it, cleaning up afterwards regardless of
left.
This function does not clean up in the event of an exception. Prefer
bracketExceptionT in any impure setting.
Map the
Left unwrapped computation using the given function.
Try any monad action and catch the specified exception, wrapping it to
convert it to the error type of the
EitherT transformer.
Exceptions other that the specified exception type will escape the
EitherT transformer.
- Warning*: This function should be used with caution! In
particular, it is bad practice to catch SomeException because
that includes asynchronous exceptions like stack/heap overflow, thread
killed and user interrupt. Trying to handle StackOverflow,
HeapOverflow and ThreadKilled exceptions could cause
your program to crash or behave in unexpected ways.
Try an
IO action inside an
EitherT. If the
IO
action throws an
IOException, catch it and wrap it with the
provided handler to convert it to the error type of the
EitherT
transformer. Exceptions other than
IOException will escape the
EitherT transformer.
Note:
IOError is a type synonym for
IOException.
Try a monad action and catch any of the exceptions caught by the
provided handlers. The handler for each exception type needs to wrap
it to convert it to the error type of the
EitherT transformer.
Exceptions not explicitly handled by the provided handlers will escape
the
EitherT transformer.
Constructor for computations in the either monad. (The inverse of
runEitherT).
Extractor for computations in the either monad. (The inverse of
newEitherT).
Map the
Right unwrapped computation using the given function.