| template-haskell-2.2.0.0 | Source code | Contents | Index

Language.Haskell.TH.PprLib

Contents

The document type
Primitive Documents
Converting values into documents
Wrapping documents in delimiters
Combining documents
Predicates on documents

Synopsis

type Doc = PprM Doc
data PprM a
empty :: Doc
semi :: Doc
comma :: Doc
colon :: Doc
space :: Doc
equals :: Doc
lparen :: Doc
rparen :: Doc
lbrack :: Doc
rbrack :: Doc
lbrace :: Doc
rbrace :: Doc
text :: String -> Doc
char :: Char -> Doc
ptext :: String -> Doc
int :: Int -> Doc
integer :: Integer -> Doc
float :: Float -> Doc
double :: Double -> Doc
rational :: Rational -> Doc
parens :: Doc -> Doc
brackets :: Doc -> Doc
braces :: Doc -> Doc
quotes :: Doc -> Doc
doubleQuotes :: Doc -> Doc
(<>) :: Doc -> Doc -> Doc
(<+>) :: Doc -> Doc -> Doc
hcat :: [Doc] -> Doc
hsep :: [Doc] -> Doc
($$) :: Doc -> Doc -> Doc
($+$) :: Doc -> Doc -> Doc
vcat :: [Doc] -> Doc
sep :: [Doc] -> Doc
cat :: [Doc] -> Doc
fsep :: [Doc] -> Doc
fcat :: [Doc] -> Doc
nest :: Int -> Doc -> Doc
hang :: Doc -> Int -> Doc -> Doc
punctuate :: Doc -> [Doc] -> [Doc]
isEmpty :: Doc -> PprM Bool
to_HPJ_Doc :: Doc -> Doc
pprName :: Name -> Doc
pprName' :: NameIs -> Name -> Doc

The document type

type Doc = PprM Doc | Source

data PprM a | Source

Instances

Monad PprM

Primitive Documents

empty :: Doc | Source

An empty document

semi :: Doc | Source

A ';' character

comma :: Doc | Source

A ',' character

colon :: Doc | Source

A ':' character

space :: Doc | Source

A space character

equals :: Doc | Source

A '=' character

lparen :: Doc | Source

A '(' character

rparen :: Doc | Source

A ')' character

lbrack :: Doc | Source

A '[' character

rbrack :: Doc | Source

A ']' character

lbrace :: Doc | Source

A '{' character

rbrace :: Doc | Source

A '}' character
Converting values into documents

text :: String -> Doc | Source

char :: Char -> Doc | Source

ptext :: String -> Doc | Source

int :: Int -> Doc | Source

integer :: Integer -> Doc | Source

float :: Float -> Doc | Source

double :: Double -> Doc | Source

rational :: Rational -> Doc | Source

Wrapping documents in delimiters

parens :: Doc -> Doc | Source

Wrap document in `(...)`

brackets :: Doc -> Doc | Source

Wrap document in `[...]`

braces :: Doc -> Doc | Source

Wrap document in `{...}`

quotes :: Doc -> Doc | Source

Wrap document in `'...'`

doubleQuotes :: Doc -> Doc | Source

Wrap document in `"..."`
Combining documents

(<>) :: Doc -> Doc -> Doc | Source

Beside

(<+>) :: Doc -> Doc -> Doc | Source

Beside, separated by space

hcat :: [Doc] -> Doc | Source

List version of `<>`

hsep :: [Doc] -> Doc | Source

List version of `<+>`

($$) :: Doc -> Doc -> Doc | Source

Above; if there is no overlap it "dovetails" the two

($+$) :: Doc -> Doc -> Doc | Source

Above, without dovetailing.

vcat :: [Doc] -> Doc | Source

List version of `$$`

sep :: [Doc] -> Doc | Source

Either hsep or vcat

cat :: [Doc] -> Doc | Source

Either hcat or vcat

fsep :: [Doc] -> Doc | Source

"Paragraph fill" version of sep

fcat :: [Doc] -> Doc | Source

"Paragraph fill" version of cat

nest :: Int -> Doc -> Doc | Source

Nested

hang :: Doc -> Int -> Doc -> Doc | Source

    hang d1 n d2 = sep [d1, nest n d2]

punctuate :: Doc -> [Doc] -> [Doc] | Source

    punctuate p [d1, ... dn] = [d1 <> p, d2 <> p, ... dn-1 <> p, dn]

Predicates on documents

isEmpty :: Doc -> PprM Bool | Source

Returns `True` if the document is empty

to_HPJ_Doc :: Doc -> Doc | Source

pprName :: Name -> Doc | Source

pprName' :: NameIs -> Name -> Doc | Source

Produced by Haddock version 0.9