@hackage show-combinators0.2.0.0
Combinators to write Show instances
Categories
License
MIT
Maintainer
lysxia@gmail.com
Links
Versions
Installation
Tested Compilers
Dependencies (1)
Dependents (7)
@hackage/hypertypes, @hackage/generic-data, @hackage/generic-data-surgery, @hackage/sr-extra, @hackage/diff-loc, @hackage/heap-console, Show all…
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)