pretty-show-1.3.2: Tools for working with derived Show instances.

PortabilityHaskell 98
Stabilityprovisional
Maintaineriavor.diatchki@gmail.com
Safe HaskellNone

Text.Show.Pretty

Description

Functions for human-readable derived Show instances.

Synopsis

Documentation

type Name = StringSource

A name.

data Value Source

Generic Haskell values. NaN and Infinity are represented as constructors. The String in the literals is the text for the literals "as is".

Constructors

Con Name [Value]

Data constructor

Rec Name [(Name, Value)]

Record value

Tuple [Value]

Tuple

List [Value]

List

Neg Value

Negated value

Ratio Value Value

Rational

Integer String

Non-negative integer

Float String

Non-negative floating num.

Char String

Character

String String

String

Instances

ppValue :: Value -> DocSource

Pretty print a generic value. Our intention is that the result is equivalent to the Show instance for the original value, except possibly easier to understand by a human.

ppDoc :: Show a => a -> DocSource

Try to show a value, prettily. If we do not understand the value, then we just use its standard Show instance.

ppShow :: Show a => a -> StringSource

Convert a generic value into a pretty String, if possible.

class PrettyVal a whereSource

A class for types that may be reified into a value. Instances of this class may be derived automatically, for datatypes that support Generics.

Methods

prettyVal :: a -> ValueSource

Instances

PrettyVal Char 
PrettyVal Double 
PrettyVal Float 
PrettyVal Int 
PrettyVal Int8 
PrettyVal Int16 
PrettyVal Int32 
PrettyVal Int64 
PrettyVal Integer 
PrettyVal Word8 
PrettyVal Word16 
PrettyVal Word32 
PrettyVal Word64 
PrettyVal a => PrettyVal [a] 
(PrettyVal a, Integral a) => PrettyVal (Ratio a) 
(PrettyVal a1, PrettyVal a2) => PrettyVal (a1, a2) 
(PrettyVal a1, PrettyVal a2, PrettyVal a3) => PrettyVal (a1, a2, a3) 
(PrettyVal a1, PrettyVal a2, PrettyVal a3, PrettyVal a4) => PrettyVal (a1, a2, a3, a4) 
(PrettyVal a1, PrettyVal a2, PrettyVal a3, PrettyVal a4, PrettyVal a5) => PrettyVal (a1, a2, a3, a4, a5) 
(PrettyVal a1, PrettyVal a2, PrettyVal a3, PrettyVal a4, PrettyVal a5, PrettyVal a6) => PrettyVal (a1, a2, a3, a4, a5, a6) 
(PrettyVal a1, PrettyVal a2, PrettyVal a3, PrettyVal a4, PrettyVal a5, PrettyVal a6, PrettyVal a7) => PrettyVal (a1, a2, a3, a4, a5, a6, a7) 

dumpDoc :: PrettyVal a => a -> DocSource

Render a value in the PrettyVal class to a 'Doc. The benefit of this function is that PrettyVal instances may be derived automatically using generics.

dumpStr :: PrettyVal a => a -> StringSource

Render a value in the PrettyVal class to a String. The benefit of this function is that PrettyVal instances may be derived automatically using generics.