| Haskell Hierarchical Libraries (template-haskell package) | 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

The document type
type Doc = PprM Doc
data PprM a

Instances

Monad PprM

Primitive Documents
empty :: Doc
An empty document
semi :: Doc
A ';' character
comma :: Doc
A ',' character
colon :: Doc
A ':' character
space :: Doc
A space character
equals :: Doc
A '=' character
lparen :: Doc
A '(' character
rparen :: Doc
A ')' character
lbrack :: Doc
A '[' character
rbrack :: Doc
A ']' character
lbrace :: Doc
A '{' character
rbrace :: Doc
A '}' character
Converting values into documents
text :: String -> Doc
char :: Char -> Doc
ptext :: String -> Doc
int :: Int -> Doc
integer :: Integer -> Doc
float :: Float -> Doc
double :: Double -> Doc
rational :: Rational -> Doc
Wrapping documents in delimiters
parens :: Doc -> Doc
Wrap document in `(...)`
brackets :: Doc -> Doc
Wrap document in `[...]`
braces :: Doc -> Doc
Wrap document in `{...}`
quotes :: Doc -> Doc
Wrap document in `'...'`
doubleQuotes :: Doc -> Doc
Wrap document in `"..."`
Combining documents
(<>) :: Doc -> Doc -> Doc
Beside
(<+>) :: Doc -> Doc -> Doc
Beside, separated by space
hcat :: [Doc] -> Doc
List version of `<>`
hsep :: [Doc] -> Doc
List version of `<+>`
($$) :: Doc -> Doc -> Doc
Above; if there is no overlap it "dovetails" the two
($+$) :: Doc -> Doc -> Doc
Above, without dovetailing.
vcat :: [Doc] -> Doc
List version of `$$`
sep :: [Doc] -> Doc
Either hsep or vcat
cat :: [Doc] -> Doc
Either hcat or vcat
fsep :: [Doc] -> Doc
"Paragraph fill" version of sep
fcat :: [Doc] -> Doc
"Paragraph fill" version of cat
nest :: Int -> Doc -> Doc
Nested
hang :: Doc -> Int -> Doc -> Doc

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

punctuate :: Doc -> [Doc] -> [Doc]

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

Predicates on documents
isEmpty :: Doc -> PprM Bool
Returns `True` if the document is empty
to_HPJ_Doc :: Doc -> Doc
pprName :: Name -> Doc
Produced by Haddock version 0.7