<div dir="ltr">You can wish for such an instance all you want, but it can't exist.<br><br>The definition of Functor is forced on you by the a combination of the laws, and the way the type system works. You can't have this "other" instance even if you want it, even if the instance we have today wasn't there.<div><font face="monospace, monospace"><br></font></div><div><div><font face="monospace, monospace">(,) e :: * -> *</font></div><div><br></div><div>That is a legal choice of 'f' for </div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">class Functor f where<br></font></div><div><font face="monospace, monospace"> fmap :: (a -> b) -> f a -> f b</font></div><div><br></div><div>We don't (and can't) have a "type lambda" that lets you talk about </div><div><br></div><div><font face="monospace, monospace">instance Functor (\x -> (x,x))</font></div><div><br></div><div>With it instance resolution would go to hell.</div><div><br></div><div>There is only one solitary degree of freedom in the design, which comes down to whether or not the instance should use a strict or a lazy pattern match on the tuple.</div><div><br></div><div>-Edward</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 24, 2016 at 10:28 AM, Kosyrev Serge <span dir="ltr"><<a href="mailto:_deepfire@feelingofgreen.ru" target="_blank">_deepfire@feelingofgreen.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Nathan Bouscal <<a href="mailto:nbouscal@gmail.com">nbouscal@gmail.com</a>> writes:<br>
> As opposed to what other instance??<br>
<br>
</span>I expect there to be N similarly-structured Functor instances for a<br>
N-ary tuple.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
с уважениeм,<br>
</font></span><div class="HOEnZb"><div class="h5">Косырев Сергей<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</div></div></blockquote></div><br></div>