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

Nathan Bouscal nbouscal at gmail.com
Thu Mar 30 21:56:00 UTC 2017


>
> Well, is there anything to be done for it at this point? Is there even
> any consensus that this was, in retrospect, a poor choice?
>

No, there isn't a consensus in either direction. As I understand it, the
basic argument for pairs being functors is that there is a single possible
way of making them functors, and that that instance *is* useful sometimes,
so someone is going to define it anyway. One of the more convincing (to me)
ways it (and other similar instances) is useful is as a building block for
other types; Free and Cofree were mentioned last time this was discussed.
The argument isn't so much about any specific instance being valuable, but
rather about the health of the ecosystem of algebraic structures. Having
arbitrary gaps in instance coverage because some people don't like those
specific instances really doesn't seem reasonable.

I also don't agree with your description of it as an "anonymous Reader".
The Functor instance is the only possible Functor instance for the type;
"Reader" is an additional semantic description of one way of thinking about
that instance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170330/faa43a66/attachment.html>


More information about the Libraries mailing list