[Haskell-cafe] [ANN] text-display 0.0.1.0: A typeclass for user-facing output
Hécate
hecate at glitchbra.in
Tue Nov 2 20:06:22 UTC 2021
Hi everyone, I am proud to release the first version of text-display¹, a
typeclass for user-facing output.
`Display` is a typeclass that doesn't abide by the rules of `Show` &
`Read`, and brings with it a nice and ergonomic way to derive instances
through `DerivingVia` when they already have a `Show` instance:
```haskell
{-# LANGUAGE DerivingVia #-}
data AutomaticallyDerived = AD
-- We derive 'Show'
deriving Show
-- We take advantage of the 'Show' instance to derive 'Display' from it
deriving Display
via (ShowInstance AutomaticallyDerived)
```
But let's say you want to redact an instance of `Display`? You can do it
locally, through
the `OpaqueInstance` helper. It is most useful to hide tokens or passwords:
```haskell
data UserToken = UserToken UUID
deriving Display
via (OpaqueInstance "[REDACTED]" UserToken)
display $ UserToken "7a01d2ce-31ff-11ec-8c10-5405db82c3cd"
-- => "[REDACTED]"
```
I hope you will have fun with this library!
Cheers!
¹ https://hackage.haskell.org/package/text-display-0.0.1.0
--
Hécate ✨
🐦: @TechnoEmpress
IRC: Hecate
WWW: https://glitchbra.in
RUN: BSD
More information about the Haskell-Cafe
mailing list