<div dir="ltr">There is a large downside to duplication: Once you have the Product functor, you want to be able to talk about its unit. Such multi-parameter typeclasses and type families often talk about 'the' product instance or 'the' initial or terminal object for a given category. I have plenty of these classes lying around in packages on and off hackage.<div><br></div><div>Once you for all intents and purposes duplicate the type, in base no less, the community painfully splits into two incompatible subsets.<div><br></div><div>We already have a fair bit of that going on with Const vs Constant, though, at least there the bias is almost overwhelmingly in the Const direction, but that sure isn't a pattern I'm eager to repeat.</div><div><br></div><div>-Edward</div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 26, 2017 at 12:23 PM, Bryan Richter <span dir="ltr"><<a href="mailto:b@chreekat.net" target="_blank">b@chreekat.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Jan 26, 2017 at 08:43:05AM -0800, Eric Seidel wrote:<br>
> I see the argument against One (duplicating types), but from a user’s<br>
> perspective I imagine it would be quite annoying to import Zero from<br>
> Data.Functor, but then be forced to<br>
><br>
> 1. remember that Proxy is isomorphic to One<br>
> 2. import Proxy from elsewhere<br>
><br>
> We could add a type alias One = Proxy, and maybe even a pattern synonym for<br>
> the constructor, to alleviate the UX issue. But that might bring issues of its<br>
> own.<br>
><br>
> I’m neutral on the actual proposal though, as I don’t consider myself a<br>
> potential user.<br>
<br>
</span>I second all of Eric's points.<br>
<br>
>From a user's perspective, isomorphism does not equate to duplication when<br>
considering other factors such as home module, intended use, discoverability,<br>
connotation, ....<br>
<span class="HOEnZb"><font color="#888888"><br>
-Bryan<br>
</font></span><br>______________________________<wbr>_________________<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-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div>