Re: [RFC] Support Unicode characters in instance Show String

Viktor Dukhovni <[email protected]> Thu, 8 Jul 2021 16:00:37 -0400
Newsgroups gmane.comp.lang.haskell.libraries
Message-ID <[email protected]>
On Thu, Jul 08, 2021 at 10:48:28PM +0300, Oleg Grenrus wrote:

> GHC Manual: Using a custom interactive printing function [1]
> 
>     Prelude Data.Char> "foo"
>     "foo"
>     Prelude Data.Char> let myprint=putStrLn . map toUpper . show
>     Prelude Data.Char> :set -interactive-print myprint
>     Prelude Data.Char> "foo"
>     "FOO"
> 
> I remember some people using e.g. pretty-show or pretty-simple packages
> with great success.
> 
> No need to change anything in base, just make users aware of a configuration
> possibility.

This is NOT viable, not all escapes are valid to unescape after the fact
in a print function.  Which pieces of the `show` output are escaped
unicode characters, and which are not depends on the original data type
that got serialised to a given `String`.

For example, in a `ByteString` the octet '\xFC' should display
as '\252', while in a `String` or `Text` U+00FC should display
as 'ü'.   Thus, there is no correct unescape function for the
string "M\\252ller", it could be "Müller", or not...

-- 
    Viktor.
_______________________________________________
Libraries mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries