<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I'm both in favor of accepting this proposal and in favor of setting a direction for GHC and the language it compiles.<div class=""><br class=""></div><div class="">I think the second is more contentious than the first, so I'll start there: We comprise the GHC Steering Committee. And thus we should steer! That is, we should make decisions that all work together in pursuit of a goal. We have not spent much time (and I do not propose doing it now) crisply defining that goal, but #378 and my more recent Principles document is an attempt to bring in that higher level structure to our decision-making process. I am thus comfortable with recommending, as a committee, that future code avoid puns.</div><div class=""><br class=""></div><div class="">However, that stops short of several steps we might take:</div><div class=""> - I do <i class="">not</i><span style="font-style: normal;" class=""> recommend turning on -Wpuns or -Wpun-binds by default or in -Wall.</span></div><div class=""> - I do <i class="">not</i><span style="font-style: normal;" class=""> recommend ever planning to remove support for punning code.</span></div><div class=""> - I do <i class="">not</i><span style="font-style: normal;" class=""> recommend reaching out to developers telling them to update what they have written.</span></div><div class=""> - I do <i class="">not</i><span style="font-style: normal;" class=""> recommend ever calling punning code "old fashioned" or other derogatory descriptions.</span></div><div class=""><br class=""></div><div class="">Instead, I recommend stating that GHC will be following a course increasing support for pun-free code, and not putting effort into improving (only) punned code. For example, perhaps someone will write a proposal introducing a new syntax `newtype Age <- Int`, which would automatically use the type name as the constructor name. In a world with puns, this syntax might have some advantages. However, given our course away from puns, we would likely quickly reject such a proposal, as out-of-keeping with our overall direction. (Note: "likely". If a new proposal came along that offered great benefits but only with puns, then maybe we would still accept!)</div><div class=""><br class=""></div><div class="">In keeping with this general direction, some developers may choose to avoid puns. That is their choice, not forced on them by us, but made with the knowledge of where we are heading. Other developers will continue to use puns, and that's fine, too.</div><div class=""><br class=""></div><div class="">Back to this specific proposal: Given that we accepted #378 -- and I still support the decision to do so -- I think we should accept #270, as well.</div><div class=""><br class=""></div><div class="">Richard</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 24, 2022, at 7:46 AM, Chris Dornan <<a href="mailto:chris@chrisdornan.com" class="">chris@chrisdornan.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">I don’t think we should be in the business of overturning by fiat significant conventions that have been long established.<br class=""><br class="">I am really quite concerned about people pointing to proposals accepted by a technical committee and expanding this into wide-ranging normative conventions to be imposed on the general Haskell community after the fact.<br class=""><br class="">Accordingly I am flipping my recommendation. I now agree with Simon. Until we are satisfied that the wider consensus has been established — that these puns are no longer good style — I think we should *not* accept this proposal. The risks are too great and, as Simon points out, the potential benefits are not compelling.<br class=""><br class="">Chris<br class=""><br class=""><br class=""><blockquote type="cite" class="">On 2022-08-24, at 11:49, Joachim Breitner <<a href="mailto:mail@joachim-breitner.de" class="">mail@joachim-breitner.de</a>> wrote:<br class=""><br class="">Hi,<br class=""><br class="">thanks for the summary.<br class=""><br class="">Am Mittwoch, dem 24.08.2022 um 07:27 +0100 schrieb Chris Dornan:<br class=""><blockquote type="cite" class="">To (avoiding) this end, I suggest that we include wording in the<br class="">user guide section documenting this extension to the effect that<br class="">there is no consensus on the desirability or otherwise of the punful<br class="">code the extension seeks to address.<br class=""></blockquote><br class="">I wonder if it isn’t really on us to address that and try to establish<br class="">a consensus about where we want Haskell to evolve to? Should we not try<br class="">to provide unifying guidance by choosing between<br class=""><br class="">  puns are fine and good practice, the language evolution takes that into<br class="">  account<br class=""><br class="">and<br class=""><br class="">  puns are discouraged and undesirable, as they do not work smoothly with<br class="">  the Haskell we envision for the future,<br class="">  we provide work-arounds (like this proposal) when dealing with code<br class="">  that still has them<br class=""><br class="">It seems that by accepting<br class=""><a href="https://github.com/ghc-proposals/ghc-proposals/pull/378" class="">https://github.com/ghc-proposals/ghc-proposals/pull/378</a> we went down<br class="">the second road, although the wording in that proposal, in section<br class=""><a href="https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0378-dependent-type-design.rst#non-design-of-dependent-types" class="">https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0378-dependent-type-design.rst#non-design-of-dependent-types</a><br class="">is much more diplomatic than I was above.<br class=""><br class="">Maybe the sentiment could be that puns are a bit like lazy IO: It used<br class="">to be the thing to do so, it will continue to work, but they should no<br class="">longer be considered current good practice.<br class=""><br class="">Cheers,<br class="">Joachim<br class=""><br class=""><br class=""><br class="">-- <br class="">Joachim Breitner<br class=""> mail@joachim-breitner.de<br class=""> http://www.joachim-breitner.de/<br class=""><br class="">_______________________________________________<br class="">ghc-steering-committee mailing list<br class="">ghc-steering-committee@haskell.org<br class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee<br class=""></blockquote><br class="">_______________________________________________<br class="">ghc-steering-committee mailing list<br class=""><a href="mailto:ghc-steering-committee@haskell.org" class="">ghc-steering-committee@haskell.org</a><br class="">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee<br class=""></div></div></blockquote></div><br class=""></div></body></html>