« Previous | Next » 

Revision 27a5367a


Added by Petr Pudlak about 7 years ago

Add functions for manipulating errors in Result(T)

There is often need to manipulate these errors, for example to convert a String
from Result into an exception. These functions make this easier.

Function 'toErrorStr' lifts 'Result' to any 'MonadError'. This is useful
for converting 'Result' into 'ResultT' or any other similar monad stack.

Functions 'catchErrorT' and 'handleErrorT' catch errors just as 'catchError'
does, but also allow to change the error type.

Functions `withError` and `withErrorT` allow to modify an error within
GenericResult or ResultT. This is convenient when combining functions
with different error types, for example to convert between strings and

Furthemore, 'failError' generalize 'Bad'. It can be used anywhere 'Bad' is, and
in any 'MonadError' instance.

Signed-off-by: Petr Pudlak <>
Reviewed-by: Klaus Aehlig <>

Cherry-pick of 565821d1804f8734bdd2959e367

Signed-off-by: Klaus Aehlig <>
Reviewed-by: Petr Pudlak <>


  • added
  • modified
  • copied
  • renamed
  • deleted

View differences