Description
Combinators to write Show instances.
Description
A minimal pretty-printing library for Show instances in Haskell.
README.md
Show combinators
A minimal set of convenient combinators to write Show
instances.
data MyType a
= C a a -- a regular constructor
| a :+: a -- an infix constructor
| R { f1 :: a, f2 :: a } -- a record
infixl 4 :+:
instance Show a => Show (MyType a) where
showsPrec = flip precShows where
precShows (C a b) = showCon "C" @| a @| b
precShows (c :+: d) = showInfix ":+:" 4 c d
precShows (R {f1 = e, f2 = f}) =
showRecord "R" ("f1" .=. e &| "f2" .=. f)