Document
class allowing to have different interpretations of the
HughesPJ pretty-printing combinators.
- data Doc
- class Document d where
- char :: Char -> d
- text :: String -> d
- zeroWidthText :: String -> d
- emptyDoc :: d
- (<>) :: d -> d -> d
- (<->) :: d -> d -> d
- hcat :: [d] -> d
- hsep :: [d] -> d
- ($$) :: d -> d -> d
- ($-$) :: d -> d -> d
- vcat :: [d] -> d
- sep :: [d] -> d
- cat :: [d] -> d
- fsep :: [d] -> d
- fcat :: [d] -> d
- nest :: Int -> d -> d
- caseEmptyDoc :: d -> d -> d -> d
- isEmpty :: Doc -> Bool
- render :: Doc -> String
- renderStyle :: Style -> Doc -> String
- style :: Style
- data Style = Style {
- mode :: Mode
- lineLength :: Int
- ribbonsPerLine :: Float
- data Mode
- = PageMode
- | ZigZagMode
- | LeftMode
- | OneLineMode
- ($--$) :: Document d => d -> d -> d
- semi :: Document d => d
- colon :: Document d => d
- comma :: Document d => d
- space :: Document d => d
- equals :: Document d => d
- lparen :: Document d => d
- rparen :: Document d => d
- lbrack :: Document d => d
- rbrack :: Document d => d
- lbrace :: Document d => d
- rbrace :: Document d => d
- int :: Document d => Int -> d
- integer :: Document d => Integer -> d
- float :: Document d => Float -> d
- double :: Document d => Double -> d
- rational :: Document d => Rational -> d
- quotes :: Document d => d -> d
- doubleQuotes :: Document d => d -> d
- parens :: Document d => d -> d
- brackets :: Document d => d -> d
- braces :: Document d => d -> d
- hang :: Document d => d -> Int -> d -> d
- punctuate :: Document d => d -> [d] -> [d]
Documentation
data Doc
zeroWidthText :: String -> dSource
caseEmptyDoc :: d -> d -> d -> dSource
Document Doc | |
(Document d, Applicative f) => Document (f d) |
renderStyle :: Style -> Doc -> String
Render the document as a string using a specified style.
data Style
A rendering style.
Style | |
|
data Mode
Rendering mode.
PageMode | Normal |
ZigZagMode | With zig-zag cuts |
LeftMode | No indentation, infinitely long lines |
OneLineMode | All on one line |
($--$) :: Document d => d -> d -> dSource
Vertical concatentation of two documents with an empty line in between.
doubleQuotes :: Document d => d -> dSource