MonadError if you want to abstract away from the d...
# arrow
r
MonadError if you want to abstract away from the datatype on a stack when handling errors. There are a few instances for monad error available for different datatypes that allow you to construct full abstract programs in terms of the behaviors provided by typeclasses such as MonadError. Try is rarely needed in pure FP though is a popular datatype because in the same way Option and Either are consider friendlier than their abstract type classes they can provide instances for. Understanding monad error is pretty easy if you give it 5 mins. For more FP recomendations on error handling check out http://kategory.io/docs/patterns/error_handling/