<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 29, 2019, at 11:48 AM, Carter Schonwald <<a href="mailto:carter.schonwald@gmail.com" class="">carter.schonwald@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div style="font-size:16px;color:rgb(49,49,49);word-spacing:1px" dir="auto" class=""><div dir="auto" style="font-size:1rem" class="">Phrased differently is a magic stand in for 0 ary sum and products ?</div></div><div dir="auto" style="font-size:16px;color:rgb(49,49,49);word-spacing:1px" class=""><br class=""></div><div dir="auto" style="font-size:1rem;color:rgb(49,49,49);word-spacing:1px" class="">Or do you mean how n-ary sum and product are the same structure when n=1?</div></div></div></blockquote><div><br class=""></div><div>No -- I just mean that 0 (that is, Void) is the identity for sums and 1 (that is, Unit) is the identity for products. Sorry if this wasn't clear!</div><div><br class=""></div><div>Richard</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="auto" style="font-size:1rem;color:rgb(49,49,49);word-spacing:1px" class=""><br class=""></div><div dir="auto" style="font-size:1rem;color:rgb(49,49,49);word-spacing:1px" class="">Forgot to cc list. Pardon the double send :)</div><div class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 24, 2019 at 11:22 PM Richard Eisenberg <<a href="mailto:rae@richarde.dev" class="">rae@richarde.dev</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I forget if I'm the contributor Ben mentions below, but regardless: NoExt is used in two separate ways within GHC. It's used both as the extension of a sum (new constructor) and the extension of a product (new field in a constructor). But the identity for sum is different than the identity for products. To me, it makes good sense for the NoExt used as a product extension (new field) to have the 1 trivial inhabitant (thus forming the identity for products), but the NoExt used as a sum extension (new constructor) to have 0 inhabitants (thus forming the identity for sums). Clearly, one of these will need a new name.<br class="">
<br class="">
Thanks,<br class="">
Richard<br class="">
<br class="">
> On Jun 24, 2019, at 4:57 PM, Ben Gamari <<a href="mailto:ben@smart-cactus.org" target="_blank" class="">ben@smart-cactus.org</a>> wrote:<br class="">
> <br class="">
> Hi Shayan,<br class="">
> <br class="">
> During code review a contributor asked about a TTG extension point.<br class="">
> While answering his question I realized I didn't have a good explanation<br class="">
> for why NoExt is inhabited; as far as I can tell it should rather be<br class="">
> unhabited.<br class="">
> <br class="">
> If there is a reason for this then can you:<br class="">
> <br class="">
> 1. describe why this is so in #16863 [1]<br class="">
> 2. open an MR documenting the reason in Note [Trees that Grow].<br class="">
> <br class="">
> If not, perhaps we should consider changing it; the current state of<br class="">
> things is a bit awkward.<br class="">
> <br class="">
> Cheers,<br class="">
> <br class="">
> - Ben<br class="">
> <br class="">
> <br class="">
> [1] <a href="https://gitlab.haskell.org/ghc/ghc/issues/16863" rel="noreferrer" target="_blank" class="">https://gitlab.haskell.org/ghc/ghc/issues/16863</a><br class="">
> _______________________________________________<br class="">
> ghc-devs mailing list<br class="">
> <a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a><br class="">
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br class="">
<br class="">
_______________________________________________<br class="">
ghc-devs mailing list<br class="">
<a href="mailto:ghc-devs@haskell.org" target="_blank" class="">ghc-devs@haskell.org</a><br class="">
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br class="">
</blockquote></div></div>
</div></blockquote></div><br class=""></body></html>