Safe Haskell | None |
---|
Combinators used for printing.
- write :: Builder -> Printer ()
- newline :: Printer ()
- space :: Printer ()
- comma :: Printer ()
- int :: Integral n => n -> Printer ()
- string :: String -> Printer ()
- maybeCtx :: Pretty a => [a] -> Printer ()
- inter :: Printer () -> [Printer ()] -> Printer ()
- spaced :: [Printer ()] -> Printer ()
- lined :: [Printer ()] -> Printer ()
- prefixedLined :: Char -> [Printer ()] -> Printer ()
- commas :: [Printer ()] -> Printer ()
- parens :: Printer a -> Printer a
- brackets :: Printer a -> Printer a
- braces :: Printer a -> Printer a
- indented :: Int64 -> Printer a -> Printer a
- column :: Int64 -> Printer a -> Printer a
- depend :: Printer () -> Printer b -> Printer b
- swing :: Printer () -> Printer b -> Printer b
- getIndentSpaces :: Printer Int64
- getColumnLimit :: Printer Int64
- nullBinds :: Binds -> Bool
- sandbox :: MonadState s m => m a -> m s
- pretty' :: Pretty a => a -> Printer ()
Insertion
Common node types
Interspersing
prefixedLined :: Char -> [Printer ()] -> Printer ()Source
Print all the printers separated newlines and optionally a line prefix.
Wrapping
Indentation
indented :: Int64 -> Printer a -> Printer aSource
Increase indentation level by n spaces for the given printer.
column :: Int64 -> Printer a -> Printer aSource
Set the (newline-) indent level to the given column for the given printer.
depend :: Printer () -> Printer b -> Printer bSource
Make the latter's indentation depend upon the end column of the former.
swing :: Printer () -> Printer b -> Printer bSource
Swing the second printer below and indented with respect to the first.
getIndentSpaces :: Printer Int64Source
Indent spaces, e.g. 2.
getColumnLimit :: Printer Int64Source
Column limit, e.g. 80
Predicates
Sandboxing
sandbox :: MonadState s m => m a -> m sSource
Play with a printer and then restore the state to what it was before.