
On 2013-08-14 17:43, Gabriel Gonzalez wrote:
I echo Edward's sentiments. If you disagree with Edward's design choices then you should vote with your code instead of your +1's by building and actively maintaining libraries that uphold your design principles.
I see all these hypothetical arguments that `Either` might cause somebody to accidentally use its monad instance once, ever, but let's consult the facts:
* Nobody here has even lifted a finger to write up a library with this hypothetical alternative to the `Either` without the `Monad` instance. This signals to me that the people arguing for removing the `Monad` instance don't actually care about this as much about this as they say they do.
* Nobody has ever come onto Haskell cafe, Stack Overflow, or /r/haskell and asked: "Where can I find an `Either` without the `Monad` instance?" This signals to me that most Haskell programmers don't actually want this "feature" as much as you say they do.
* Lots of Haskell programmers use Either and EitherT fluently for error handling without any confusion or programming mistakes. My `errors` library is proof of that:
http://packdeps.haskellers.com/reverse/errors
The reason Edward's libraries are popular and so widely used is because they solve an *actual* need, not a hypothetical need.
+1 all the way.