<div dir="ltr"><div>I have some concerns that this is not as general as it could be and that it is more invasive than one might think to "do this right."</div><div><br></div>e.g. One usecase where custom Show instances are often written is to take a record type and transform it into something that shows with just a positional constructor. This typically delegates to the existing showsPrec of the fields.<div><br></div><div>I'd kind of expect "showNE" to do something sensible for such a record, but here it'll get delegated away by default to the normal implementation, which will delegate to showsPrec not something that tries to preserve this property for its part.</div><div><br></div><div>You could move to using a 'showsPrecNE' instead of 'showNE' to enable you to walk down to those leaf level strings you want to escape, but now anything with a non-trivial Show instance is going to require two copies of that non-trivial showsPrec code to be put in place.</div><div><br></div><div>Without something like that, as written, this proposal would make it so you get very different output for "some unicode string" and ("some unicode string","some other unicode string"), which seems less than optimal.</div><div><br></div><div>On the other hand, duplicating all the work in custom Show instances also seems suboptimal.</div><div><br></div><div>I don't have a solution that I like, though several options present themselves, but I did want to throw up this concern before folks ran away and pushed this into base.</div><div><br></div><div>-Edward<br><br><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 19, 2021 at 11:26 PM Kai Ma <<a href="mailto:justksqsf@gmail.com">justksqsf@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have opened an issue here [1], with modifications based on my experience of implementation.<br>
<br>
[1] <a href="https://github.com/haskell/core-libraries-committee/issues/25" rel="noreferrer" target="_blank">https://github.com/haskell/core-libraries-committee/issues/25</a><br>
<br>
Kai<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">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>
</blockquote></div>