<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
You can't not-include the instances because we'll just end up with
orphans so that's not cricket I think.<br>
<br>
<div class="moz-cite-prefix">On 02/24/2016 11:17 AM,
<a class="moz-txt-link-abbreviated" href="mailto:amindfv@gmail.com">amindfv@gmail.com</a> wrote:<br>
</div>
<blockquote
cite="mid:B0595A57-0055-4A32-B2A9-282F461A9558@gmail.com"
type="cite">
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
<div>It seems like very few people are changing their minds, after
a lot of discussion -- maybe it's time to agree to disagree, in
the form of a vote on whether to include the tuple instances.</div>
<div><br>
</div>
<div> If so, I'd think we'd want to come to the users with a
discussion of both sides and a poll, a la FTP.</div>
<div><br>
</div>
<div>Tom</div>
<div><br>
</div>
<div><br>
El 24 feb 2016, a las 11:38, David Feuer <<a
moz-do-not-send="true" href="mailto:david.feuer@gmail.com"><a class="moz-txt-link-abbreviated" href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a></a>>
escribió:<br>
<br>
</div>
<blockquote type="cite">
<div>
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Feb 24, 2016 at 11:22 AM,
Kosyrev Serge <span dir="ltr"><<a
moz-do-not-send="true"
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"><br>
Are you also saying that this cannot be resolved by
some kind of a<br>
type families-based type-level 'flip'?<br>
<span class="im HOEnZb"></span></blockquote>
<div><br>
</div>
<div>It really can't, no. You can define<br>
<br>
</div>
<div>type family FlipF f a b where<br>
</div>
<div> FlipF f a b = f b a<br>
<br>
</div>
<div>but FlipF, being a type family, is not first-class.
You can't make any instances whatsoever for FlipF f a
-- you'll probably get an error about a partially
applied type family. What you *can* do is make a Flip
newtype:<br>
<br>
</div>
<div>newtype Flip f a b = Flip {unflip :: f b a}<br>
<br>
</div>
<div>This behaves perfectly:<br>
<br>
</div>
<div>instance Bifunctor f => Functor (Flip f a) where<br>
</div>
<div> fmap f = Flip . first f . unflip<br>
</div>
<div>instance Profunctor f => Contravariant (Flip f
a) where<br>
</div>
<div> contramap f = Flip . lmap f . unflip<br>
</div>
<div>instance Bifunctor f => Bifunctor (Flip f) where<br>
</div>
<div> bimap f g (Flip x) = Flip (bimap g f x)<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<blockquote type="cite">
<div><span>_______________________________________________</span><br>
<span>Libraries mailing list</span><br>
<span><a moz-do-not-send="true"
href="mailto:Libraries@haskell.org">Libraries@haskell.org</a></span><br>
<span><a moz-do-not-send="true"
href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a></span><br>
</div>
</blockquote>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Libraries mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Libraries@haskell.org">Libraries@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a>
</pre>
</blockquote>
<br>
</body>
</html>