Functor, Applicative, Monad, Foldable, Traversable instances for (, , ) a b

Simon Marechal simon at banquise.net
Wed Apr 26 20:23:41 UTC 2017


On 04/09/2017 10:27 PM, amindfv at gmail.com wrote:
> Genuinely curious: can people point to specific examples in their (or
> others') code where the ((,) a) instance for Foldable is really helpful
> and difficult to replace?

I use it quite often when prototyping stuff. I used it in two distinct
instances in the last two weeks.

As for the other usual suspects (Either, Maybe, etc.), their instances
are *really* useful, especially the Traversable, and especially in the REPL.

I write Haskell quite a lot now, and this only caused a bug *once*. I
didn't even realize these instances existed. But once I learned about
them, I never had a problem again (well, I can't be sure it isn't lying
dormant in some code I wrote).

On the other hand, I still get <<loop>> when I have a typo in my let
blocks. There are many other issues that seem more pressing to me.


Here is my plea, please step back, and consider the following before
getting worked up about these instances:

 * this is a very minor issue in the Haskell ecosystem
 * I believe most people are satisfied with the current state of
affairs. Every time I saw informal polls, such as [1], about what is
annoying about Haskell, this didn't even surface!
 * that ship has sailed, and another round of repeating the same old
argument will only clog the mailing list

[1]
https://www.reddit.com/r/haskell/comments/4f47ou/why_does_haskell_in_your_opinion_suck/


More information about the Libraries mailing list