Added a catch method that calls Monad.fail on exceptions