Home

Awesome

pretty-sop

Build Status Hackage

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.

Example

{-# 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 }