1. 11

Lots of good stuff in the comments, too.

  1.  

  2. 4

    The lens library came along and did a really good job at solving a couple of these problems.

    1. 4

      For more reasons why your language sucks visit theory.org’s YourLanguageSucks wiki page.

      1. 2

        That site seems especially out of date with a lot of things; some of the Ruby stuff was fixed in 1.9, which was back in 2007.

        1. 1

          Feel free to update it ;)

      2. 2

        I missed the (2008) in the title and assumed this was posted recently. It’s disappointing how many of these problems are still relevant in Haskell today.

        sometimes the type classes which are there are poorly thought out (Num shouldn’t extend Eq, and it would be nice if + was factored out in order to provide better support for things like vector spaces).

        I wouldn’t mind different typeclasses for every operation (Eq, Addable, Subtractable, etc.) with common cases such as Num around as a quick way to define many instances concisely. But this is Haskell, which means that smarter people have probably thought of this and decided against it…

        1. 0

          But this is Haskell, which means that smarter people have probably thought of this and decided against it…

          AFAIK the smart people decided against changing the default, since it would be a large breakage for mostly subjective reasons (similar changes, like making Applicative a superclass of Monad, have more objective, definitive arguments in their favour (e.g. we can derive an Applicative from a Monad, so it’s “already there” in a sense)).

          Meanwhile, lots of smart people have made alternative preludes which are opt-in for those who don’t want the default.