Lesson 5: Refactoring with Either

  • 10 minutes
Maybe Either Monad

We’ve come a long way already in our code, but some things have been dissatisfying. For one thing, we have no way to distinguish between different errors (they are all Nothing) or which error is short-circuiting our program. Using Either, a sum type similar to Maybe, allows us to pass around more information about our error cases. This lesson refactors the previous lesson’s code to use Either and its Monad instead of Maybe.