model-0.5: Derive a model of a data type using Generics

Safe HaskellSafe
LanguageHaskell2010

Data.Model.Pretty

Contents

Description

Pretty instances for the model types

Synopsis

Documentation

newtype CompactPretty a Source #

Compact representation: a value enveloped in CompactPretty will have only its first lines displayed

Constructors

CompactPretty a 
Instances
Pretty a => Pretty (CompactPretty a) Source # 
Instance details

Defined in Data.Model.Pretty

Utilities

dottedP :: [String] -> Doc Source #

Intercalate a dot between the non empty elements of a list of strings

spacedP :: Pretty a => [a] -> Doc Source #

Intercalate with a space

vspacedP :: Pretty a => [a] -> Doc Source #

Intercalate with a new line

varP :: Integral n => n -> Doc Source #

Convert a variable number (0,1,..) to a name (a,b,..)

varC :: Integral a => a -> Char Source #

Convert a variable number (0,1,..) to a name (a,b,..)

Re-exports

class Pretty a where #

Pretty printing class. The precedence level is used in a similar way as in the Show class. Minimal complete definition is either pPrintPrec or pPrint.

Minimal complete definition

pPrintPrec | pPrint

Methods

pPrintPrec :: PrettyLevel -> Rational -> a -> Doc #

pPrint :: a -> Doc #

pPrintList :: PrettyLevel -> [a] -> Doc #

Instances
Pretty Bool 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Char 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Double 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Float 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Int 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Integer 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty Ordering 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty () 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> () -> Doc #

pPrint :: () -> Doc #

pPrintList :: PrettyLevel -> [()] -> Doc #

Pretty Doc Source # 
Instance details

Defined in Data.Model.Pretty

Pretty Name Source # 
Instance details

Defined in Data.Model.Pretty

Pretty QualName Source # 
Instance details

Defined in Data.Model.Pretty

Pretty a => Pretty [a] 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> [a] -> Doc #

pPrint :: [a] -> Doc #

pPrintList :: PrettyLevel -> [[a]] -> Doc #

Pretty a => Pretty (Maybe a) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Pretty n => Pretty (TypeRef n) Source # 
Instance details

Defined in Data.Model.Pretty

Pretty r => Pretty (TypeN r) Source # 
Instance details

Defined in Data.Model.Pretty

Pretty r => Pretty (Type r) Source # 
Instance details

Defined in Data.Model.Pretty

Methods

pPrintPrec :: PrettyLevel -> Rational -> Type r -> Doc #

pPrint :: Type r -> Doc #

pPrintList :: PrettyLevel -> [Type r] -> Doc #

Pretty a => Pretty (CompactPretty a) Source # 
Instance details

Defined in Data.Model.Pretty

(Pretty a, Pretty b) => Pretty (Either a b) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> Either a b -> Doc #

pPrint :: Either a b -> Doc #

pPrintList :: PrettyLevel -> [Either a b] -> Doc #

(Pretty name, Pretty ref) => Pretty (name, Fields name ref) Source # 
Instance details

Defined in Data.Model.Pretty

Methods

pPrintPrec :: PrettyLevel -> Rational -> (name, Fields name ref) -> Doc #

pPrint :: (name, Fields name ref) -> Doc #

pPrintList :: PrettyLevel -> [(name, Fields name ref)] -> Doc #

(Pretty a, Pretty b) => Pretty (a, b) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b) -> Doc #

pPrint :: (a, b) -> Doc #

pPrintList :: PrettyLevel -> [(a, b)] -> Doc #

(Pretty name, Pretty ref) => Pretty (Fields name ref) Source # 
Instance details

Defined in Data.Model.Pretty

Methods

pPrintPrec :: PrettyLevel -> Rational -> Fields name ref -> Doc #

pPrint :: Fields name ref -> Doc #

pPrintList :: PrettyLevel -> [Fields name ref] -> Doc #

(Pretty name, Pretty ref) => Pretty (ConTree name ref) Source # 
Instance details

Defined in Data.Model.Pretty

Methods

pPrintPrec :: PrettyLevel -> Rational -> ConTree name ref -> Doc #

pPrint :: ConTree name ref -> Doc #

pPrintList :: PrettyLevel -> [ConTree name ref] -> Doc #

(Pretty a, Pretty b, Pretty c) => Pretty (a, b, c) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c) -> Doc #

pPrint :: (a, b, c) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c)] -> Doc #

(Pretty n, Pretty cn, Pretty r) => Pretty (ADT n cn r) Source # 
Instance details

Defined in Data.Model.Pretty

Methods

pPrintPrec :: PrettyLevel -> Rational -> ADT n cn r -> Doc #

pPrint :: ADT n cn r -> Doc #

pPrintList :: PrettyLevel -> [ADT n cn r] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d) => Pretty (a, b, c, d) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d) -> Doc #

pPrint :: (a, b, c, d) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d)] -> Doc #

(Functor t, Pretty (t Name), Pretty exRef, Ord exRef, Show exRef, Convertible adtName String, Convertible consName String, Convertible iref String) => Pretty (TypeModel adtName consName (t iref) exRef) Source # 
Instance details

Defined in Data.Model.Pretty

Methods

pPrintPrec :: PrettyLevel -> Rational -> TypeModel adtName consName (t iref) exRef -> Doc #

pPrint :: TypeModel adtName consName (t iref) exRef -> Doc #

pPrintList :: PrettyLevel -> [TypeModel adtName consName (t iref) exRef] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e) => Pretty (a, b, c, d, e) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e) -> Doc #

pPrint :: (a, b, c, d, e) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e, Pretty f) => Pretty (a, b, c, d, e, f) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e, f) -> Doc #

pPrint :: (a, b, c, d, e, f) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e, f)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e, Pretty f, Pretty g) => Pretty (a, b, c, d, e, f, g) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e, f, g) -> Doc #

pPrint :: (a, b, c, d, e, f, g) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e, f, g)] -> Doc #

(Pretty a, Pretty b, Pretty c, Pretty d, Pretty e, Pretty f, Pretty g, Pretty h) => Pretty (a, b, c, d, e, f, g, h) 
Instance details

Defined in Text.PrettyPrint.HughesPJClass

Methods

pPrintPrec :: PrettyLevel -> Rational -> (a, b, c, d, e, f, g, h) -> Doc #

pPrint :: (a, b, c, d, e, f, g, h) -> Doc #

pPrintList :: PrettyLevel -> [(a, b, c, d, e, f, g, h)] -> Doc #

prettyShow :: Pretty a => a -> String #

Pretty print a value with the prettyNormal level.

prettyADT :: (Pretty name, Pretty consName, Pretty ref) => String -> Char -> ADT name consName ref -> Doc Source #

Orphan instances

Pretty Doc Source # 
Instance details

Pretty Name Source # 
Instance details

Pretty QualName Source # 
Instance details

Pretty n => Pretty (TypeRef n) Source # 
Instance details

Pretty r => Pretty (TypeN r) Source # 
Instance details

Pretty r => Pretty (Type r) Source # 
Instance details

Methods

pPrintPrec :: PrettyLevel -> Rational -> Type r -> Doc #

pPrint :: Type r -> Doc #

pPrintList :: PrettyLevel -> [Type r] -> Doc #

(Pretty name, Pretty ref) => Pretty (name, Fields name ref) Source # 
Instance details

Methods

pPrintPrec :: PrettyLevel -> Rational -> (name, Fields name ref) -> Doc #

pPrint :: (name, Fields name ref) -> Doc #

pPrintList :: PrettyLevel -> [(name, Fields name ref)] -> Doc #

(Pretty name, Pretty ref) => Pretty (Fields name ref) Source # 
Instance details

Methods

pPrintPrec :: PrettyLevel -> Rational -> Fields name ref -> Doc #

pPrint :: Fields name ref -> Doc #

pPrintList :: PrettyLevel -> [Fields name ref] -> Doc #

(Pretty name, Pretty ref) => Pretty (ConTree name ref) Source # 
Instance details

Methods

pPrintPrec :: PrettyLevel -> Rational -> ConTree name ref -> Doc #

pPrint :: ConTree name ref -> Doc #

pPrintList :: PrettyLevel -> [ConTree name ref] -> Doc #

(Pretty n, Pretty cn, Pretty r) => Pretty (ADT n cn r) Source # 
Instance details

Methods

pPrintPrec :: PrettyLevel -> Rational -> ADT n cn r -> Doc #

pPrint :: ADT n cn r -> Doc #

pPrintList :: PrettyLevel -> [ADT n cn r] -> Doc #

(Functor t, Pretty (t Name), Pretty exRef, Ord exRef, Show exRef, Convertible adtName String, Convertible consName String, Convertible iref String) => Pretty (TypeModel adtName consName (t iref) exRef) Source # 
Instance details

Methods

pPrintPrec :: PrettyLevel -> Rational -> TypeModel adtName consName (t iref) exRef -> Doc #

pPrint :: TypeModel adtName consName (t iref) exRef -> Doc #

pPrintList :: PrettyLevel -> [TypeModel adtName consName (t iref) exRef] -> Doc #