Should I avoid using Monad fail?
Some monads have a sensible failure mechanism, e.g. the terminal monad: data Fail x = Fail Some monads don’t have a sensible failure mechanism (undefined is not sensible), e.g. the initial monad: data Return x = Return x In that sense, it’s clearly a wart to require all monads to have a fail method. If … Read more