One point in the design space that the swift language does, which seems intersting at least to me, is to have the notion of a character be backed by a Unicode grapheme cluster, which is a character like sequence of Unicode code points.  Would library support for this at all help this discussion or problem?<br><br>On Wednesday, March 30, 2016, Brandon Allbery <<a href="mailto:allbery.b@gmail.com">allbery.b@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Mar 30, 2016 at 9:50 PM, Manuel M T Chakravarty <span dir="ltr"><<a href="javascript:_e(%7B%7D,'cvml','chak@justtesting.org');" target="_blank">chak@justtesting.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Firstly, we have</div><div><br></div><div>  isPrint :: Char -> Bool</div><div><br></div><div>Are you saying that this type is wrong?</div><div><br></div><div>Secondly, how often do you feed the output of ’show’ to ’read’ in another locale versus how often is everybody whose whole life is outside of ASCII (i.e., not anglo-centric people) bothered by this shortcoming? (*)</div><div><br></div><div>Moreover, the argument on the ticket was that changing the current implementation would go against the standard. Now that I am saying, the current implementation is not conforming to the standard, the standard suddenly doesn’t seem to matter. Personally, I would say, when we wrote that standard, we knew what we were doing.</div></blockquote></div><br>The standard I am aware of is the Report, which deliberately limited the output to the subset which is guaranteed to be usable in all locales. show conforms to this; apparently people want it to *not* conform, and in a way which requires some locale to become the One True Locale.</div><div class="gmail_extra"><br></div><div class="gmail_extra">isPrint is, as per the language Report, based on what Char is --- which is Unicode codepoints. Using it for output --- or for input, for that matter --- gets you into locale issues because nobody anywhere guarantees that Unicode codepoints that pass isPrint are representable in every locale. isPrint is not the place to verify that a character can actually be displayed in the current locale.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Or have you decided that ghc should require Unicode locales and nothing but Unicode locales from now on? If so, what do you do when the next issue comes up, where Unix is UTF8 and Windows is UTF16?<br><div><br></div>-- <br><div><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="javascript:_e(%7B%7D,'cvml','allbery.b@gmail.com');" target="_blank">allbery.b@gmail.com</a>                                  <a href="javascript:_e(%7B%7D,'cvml','ballbery@sinenomine.net');" target="_blank">ballbery@sinenomine.net</a></div><div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div></div>
</div></div>
</blockquote>