type-level-show

Utilities for writing Show-like type families

https://github.com/raehik/type-level-show#readme

Version on this page:0.1.0
LTS Haskell 24.3:0.3.0
Stackage Nightly 2025-08-07:0.3.0
Latest on Hackage:0.3.0

See all snapshots type-level-show appears in

MIT licensed by Ben Orchard
Maintained by Ben Orchard
This version can be pinned in stack with:type-level-show-0.1.0@sha256:d4680e6d5034b3aad78efad8dc19f6bb57511dd616afd4de3de90619141d72f0,1320

Module documentation for 0.1.0

Depends on 2 packages(full list with versions):

type-level-show

Utilities for writing Show-like type families i.e. instead of showsPrec :: Int -> a -> ShowS, we have ShowsPrec :: Natural -> k -> Symbol.

Requires at least GHC 9.2 for the type-level Symbol manipulation.

Why?

refined fills out error messages using TypeReps. My rewrite rerefined allows you to use Typeable to fill out a predicate name, or you can do it yourself. But TypeRep is a pain to use, and it seems strange to do runtime work on type representations. Why can’t we just do it on the type level?

We could, but the problem is nice formatting. Show instances handle precedence, and the base library provides a bunch of handy utilities such as showParen :: Bool -> ShowS -> ShowS. Worse, I couldn’t find a ShowNat :: Natural -> Symbol type family on Hoogle, which is a very simple type family that should certainly be lying around.

This library intends to provide such utilities, so that rerefined can avoid Typeable altogether.

Unsure if I’ll provide a ShowType. Lower priority than the plain utilities.

License

Provided under the MIT license. See LICENSE for license text.

Changes

0.1.0 (2024-05-07)

Initial release.

  • some simple type-level printy helpers