Monad error is not for computations that can throw but for computations that wish to represent their error with a custom error. MonadThrow is when the custom error is a Throwable and this will probably change once we add custom errors to the effect hierarchy and bifunctor IO