[RFC] Support Unicode characters in instance Show String
Hécate
hecate at glitchbra.in
Thu Jul 8 19:55:39 UTC 2021
> I don't see a plausible path of getting most libraries that implement
> `Show` to start implemeting a second parallel class for friendly display.
* Extensive publicity of this typeclass in community (social media, etc)
* Stock deriving (implemented by GHC & the CLC)
* First-class place in documentation (Documentation Task Force of the HF)
* Coordinated effort with popular libraries to implement its adoption
(CLC + stakeholders)
* Maybe a code-modding script using retrie
<https://hackage.haskell.org/package/retrie>.
We will have to work as a community on that one but I am convinced that
this is doable.
Le 08/07/2021 à 21:18, Viktor Dukhovni a écrit :
> On Thu, Jul 08, 2021 at 09:02:29PM +0200, Hécate wrote:
>> From what I can see from the various typeclasses that exist:
>>
> Sadly, no new or extant alternative type classes can address the
> problem, simply because they're NOT `Show`, which is the default
> interface for inspecting the content of a term, and so is the only
> one at all likely to be available for the terms of interest.
>
> Yes, we should also consider having more type classes for presentation
> in forms other than compiler-friendly source syntax.
>
> Thus, e.g. for DNS data, one might have `Show` for debugging, but
> `Present` for textual presentations of DNS resource records specified in
> the multitude of DNS-related RFCs and used as the input syntax in DNS
> zone files. (Thus a DNS RR would have a binary wire form, an ASCII
> ByteString presentation form, a `Show` instance that exposes all the
> constructors, ..., and in the case of domain names also a U-label
> form for display of domain names to users more comfortable with the
> native script).
>
> Multiple applicable serialisation formats are to be expected, and yet I
> think that `Show` should still avoid escaping unicode printable text...
>
> I don't see a plausible path of getting most libraries that implement
> `Show` to start implemeting a second parallel class for friendly
> display.
>
> Unless you're thinking overlapping instances:
>
> instance Show a => Display a where
> display = show
>
> instance Display String where
> display = displayString
>
--
Hécate ✨
🐦: @TechnoEmpress
IRC: Hecate
WWW: https://glitchbra.in
RUN: BSD
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20210708/3395c9cd/attachment.html>
More information about the Libraries
mailing list