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

Henning Thielemann lemming at henning-thielemann.de
Thu Mar 30 18:30:32 UTC 2017


On Thu, 23 Mar 2017, Fumiaki Kinoshita wrote:

> It's surprising that they are missing (forgive me, I'm not here to make people grumpy).

I am not surprised because it was discussed at length a year before. I 
still think all these instances on pairs, triples and other tuples are 
more dangerous than helpful. It is so easy and much more expressive to 
define custom data types for your particular application. Actually, I am 
still actively using only GHC up to GHC-7.8.4, because starting with 
GHC-7.10.3 the slogan "if it can be compiled, it is certainly correct" 
cannot be reasonably claimed anymore (length(a,b)==1, maximum(2,1)==1 etc. 
are just not sane). And it seems that adding damage to the libraries is 
done at a much faster pace than adding compiler features to make them less 
dangerous (like user-configurable warnings about dangerous instances).


More information about the Libraries mailing list