This library contains a generic implementation of the prettyVal
function
from the pretty-show package.
Using the pretty printer, values can easily be rendered to strings and HTML
documents in a uniform way.
This library makes use of the generics-sop package and is an example of a generic function defined in the SOP style.
This is the development repository. For releases, look on Hackage.
{-# LANGUAGE DeriveGeneric #-}
import Generics.SOP.PrettyVal
import Generics.SOP
import qualified GHC.Generics as G
import Text.Show.Pretty
data Car = Car
{ name :: String
, seats :: Int
} deriving (G.Generic)
instance Generic Car
instance HasDatatypeInfo Car
instance PrettyVal Car where
prettyVal = gprettyVal
main :: IO ()
main = putStrLn $ dumpStr $ Car "test" 3
would print:
Car { name = test , seats = 3 }