I've addressed this here:

http://bitemyapp.com/posts/2015-10-19-either-is-not-arbitrary.html

The thousand-papercuts opposition to typeclass instances on the premise that a Functor for (a, b, c) maps over the final type not making sense is a rejection of how higher kinded types and typeclasses work together. This is natural and predictable if one bothers to explain it.


On Mon, Jan 18, 2016 at 2:42 PM, Henning Thielemann <lemming@henning-thielemann.de> wrote:

On Mon, 18 Jan 2016, David Feuer wrote:

Actually, I currently get a much worse error message:

Prelude> fmap (+1) (1,2,3)

<interactive>:2:1:
   Non type-variable argument in the constraint: Functor ((,,) t t)
   (Use FlexibleContexts to permit this)
   When checking that ‘it’ has the inferred type
     it :: forall b t t1.
           (Functor ((,,) t t1), Num b, Num t, Num t1) =>
           (t, t1, b)

That there is a *lousy* error message.

indeed


I understand that there are newcomers who struggle to understand the
difference between tuples and lists; I don't think that's a good
enough reason to omit a good and valid instance.

I would not qualify myself as a newcomer. For me these instances are a problem, not a help.
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries




--
Chris Allen
Currently working on http://haskellbook.com