Idris2Doc : Text.PrettyPrint.Prettyprinter.Doc


(<++>) : Docann -> Docann -> Docann
Concatenates two documents with a space in between.
Totality: total
Fixity Declaration: infixr operator, level 6
Doc : Type -> Type
This data type represents pretty documents that have
been annotated with an arbitrary data type `ann`.
Totality: total
Empty : Docann
Chara : Char -> Docann
Text : Int -> String -> Docann
Line : Docann
FlatAlt : Lazy (Docann) -> Lazy (Docann) -> Docann
Cat : Docann -> Docann -> Docann
Nest : Int -> Docann -> Docann
Union : Lazy (Docann) -> Lazy (Docann) -> Docann
Column : (Int -> Docann) -> Docann
WithPageWidth : (PageWidth -> Docann) -> Docann
Nesting : (Int -> Docann) -> Docann
Annotated : ann -> Docann -> Docann
FittingPredicate : Type -> Type
Totality: total
FusionDepth : Type
Fusion depth parameter.
Totality: total
Shallow : FusionDepth
Do not dive deep into nested documents.
Deep : FusionDepth
Recurse into all parts of the `Doc`. May impact performace.
LayoutOptions : Type
Totality: total
PageWidth : Type
Maximum number of characters that fit in one line.
Totality: total
AvailablePerLine : Int -> Double -> PageWidth
The `Int` is the number of characters, including whitespace, that fit in a line.
The `Double` is the ribbon, the fraction of the toal page width that can be printed on.
Unbounded : PageWidth
The layouters should not introduce line breaks.
Pretty : Type -> Type
Overloaded converison to `Doc`.
Parameters: a
pretty : a -> Docann
prettyPrec : Prec -> a -> Docann

Pretty String
Prettya => Pretty (Lista)
Prettya => Pretty (List1a)
Pretty Char
Pretty Int
Pretty Integer
Pretty Double
Pretty Bits8
Pretty Bits16
Pretty Bits32
Pretty Bits64
(Prettya, Prettyb) => Pretty (a, b)
Prettya => Pretty (Maybea)
SimpleDocStream : Type -> Type
This data type represents laid out documents and is used by the display functions.
Totality: total
SEmpty : SimpleDocStreamann
SChar : Char -> Lazy (SimpleDocStreamann) -> SimpleDocStreamann
SText : Int -> String -> Lazy (SimpleDocStreamann) -> SimpleDocStreamann
SLine : Int -> SimpleDocStreamann -> SimpleDocStreamann
SAnnPush : ann -> SimpleDocStreamann -> SimpleDocStreamann
SAnnPop : SimpleDocStreamann -> SimpleDocStreamann
align : Docann -> Docann
Lays out a document with the nesting level set to the current column.
Totality: total
alterAnnotations : (ann -> Listann') -> Docann -> Docann'
Changes the annotations of a document. Individual annotations can be removed,
changed, or replaced by multiple ones.
Totality: total
alterAnnotationsS : (ann -> Maybeann') -> SimpleDocStreamann -> SimpleDocStreamann'
Changes the annotation of a document to a different annotation or none.
Totality: total
annotate : ann -> Docann -> Docann
Adds an annotation to a document.
Totality: total
cat : List (Docann) -> Docann
Tries laying out the documents separated with nothing, and if it does not fit the page,
separates them with newlines.
Totality: total
collectAnnotations : Monoidm => (ann -> m) -> SimpleDocStreamann -> m
Collects all annotations from a document.
Totality: total
column : (Int -> Docann) -> Docann
Layout a document depending on which column it starts at.
Totality: total
concatWith : (Docann -> Docann -> Docann) -> List (Docann) -> Docann
Concatenate all documents element-wise with a binary function.
Totality: total
defaultLayoutOptions : LayoutOptions
Totality: total
defaultPageWidth : PageWidth
Totality: total
emptyDoc : Docann
The empty document behaves like `pretty ""`, so it has a height of 1.
Totality: total
enclose : Docann -> Docann -> Docann -> Docann
Encloses the document between two other documents using `(<+>)`.
Totality: total
encloseSep : Docann -> Docann -> Docann -> List (Docann) -> Docann
Concatenates the documents separated by `s` and encloses the resulting document by `l` and `r`.
Totality: total
fill : Int -> Docann -> Docann
Lays out a document. It then appends spaces until the width is equal to `i`.
If the width is already larger, nothing is appended.
Totality: total
fillBreak : Int -> Docann -> Docann
First lays out the document. It then appends spaces until the width is equal to `i`.
If the width is already larger than `i`, the nesting level is decreased by `i`
and a line is appended.
Totality: total
fillCat : List (Docann) -> Docann
Concatenates documents horizontally with `(<+>)` as log as it fits the page, then
inserts a line and continues.
Totality: total
fillSep : List (Docann) -> Docann
Concatenates the documents horizontally with `(<++>)` as long as it fits the page,
then inserts a line and continues.
Totality: total
flatAlt : Lazy (Docann) -> Lazy (Docann) -> Docann
By default renders the first document, When grouped renders the second, with
the first as fallback when there is not enough space.
Totality: total
fuse : FusionDepth -> Docann -> Docann
Combines text nodes so they can be rendered more efficiently.
Totality: total
group : Docann -> Docann
Tries laying out a document into a single line by removing the contained
line breaks; if this does not fit the page, or has an `hardline`, the document
is laid out without changes.
Totality: total
hang : Int -> Docann -> Docann
Lays out a document with a nesting level set to the current column plus `i`.
Negative values are allowed, and decrease the nesting level accordingly.
Totality: total
hardline : Docann
A line break, even when grouped.
Totality: total
hcat : List (Docann) -> Docann
Concatenates all documents horizontally with `(<+>)`.
Totality: total
hsep : List (Docann) -> Docann
Concatenates all documents horizontally with `(<++>)`.
Totality: total
indent : Int -> Docann -> Docann
Indents a document with `i` spaces, starting from the current cursor position.
Totality: total
layoutCompact : Docann -> SimpleDocStreamann
Lays out the document without adding any indentation. This layouter is very fast.
Totality: total
layoutPretty : LayoutOptions -> Docann -> SimpleDocStreamann
The default layout algorithm.
Totality: total
layoutSmart : LayoutOptions -> Docann -> SimpleDocStreamann
Layout algorithm with more lookahead than layoutPretty.
Totality: total
layoutUnbounded : Docann -> SimpleDocStreamann
Layout a document with unbounded page width.
Totality: total
layoutWadlerLeijen : FittingPredicateann -> PageWidth -> Docann -> SimpleDocStreamann
The Wadler/Leijen layout algorithm.
Totality: total
line : Docann
Advances to the next line and indents to the current nesting level.
Totality: total
line' : Docann
Like `line`, but behaves like `neutral` if the line break is undone by `group`.
Totality: total
list : List (Docann) -> Docann
Variant of `encloseSep` with braces and comma as separator.
Totality: total
nest : Int -> Docann -> Docann
Lays out a document with the current nesting level increased by `i`.
Totality: total
nesting : (Int -> Docann) -> Docann
Layout a document depending on the current nesting level.
Totality: total
pageWidth : (PageWidth -> Docann) -> Docann
Layout a document depending on the page width, if one has been specified.
Totality: total
plural : (Numamount, Eqamount) => doc -> doc -> amount -> doc
Totality: total
pretty : Prettya => a -> Docann
Totality: total
No documentation for Text.PrettyPrint.Prettyprinter.Doc.prettyListMaybe
prettyPrec : Prettya => Prec -> a -> Docann
Totality: total
punctuate : Docann -> List (Docann) -> List (Docann)
Appends `p` to all but the last document.
Totality: total
reAnnotate : (ann -> ann') -> Docann -> Docann'
Changes the annotations of a document.
Totality: total
reAnnotateS : (ann -> ann') -> SimpleDocStreamann -> SimpleDocStreamann'
Changes the annotation of a document.
Totality: total
removeTrailingWhitespace : SimpleDocStreamann -> SimpleDocStreamann
Removes all trailing space characters.
Totality: total
renderShow : SimpleDocStreamann -> String -> String
Totality: total
sep : List (Docann) -> Docann
Tries laying out the documents separated with spaces and if this does not fit,
separates them with newlines.
Totality: total
softline : Docann
Behaves like `space` if the resulting output fits the page, otherwise like `line`.
Totality: total
softline' : Docann
Like `softline`, but behaves like `neutral` if the resulting output does not fit
on the page.
Totality: total
spaces : Int -> Docann
Insert a number of spaces.
Totality: total
surround : Docann -> Docann -> Docann -> Docann
Reordering of `encloses`.
Example: concatWith (surround (pretty ".")) [pretty "Text", pretty "PrettyPrint", pretty "Doc"]
Totality: total
textSpaces : Int -> String
Totality: total
traverse : Applicativef => (ann -> fann') -> SimpleDocStreamann -> f (SimpleDocStreamann')
Transform a document based on its annotations.
Totality: total
tupled : List (Docann) -> Docann
Variant of `encloseSep` with parentheses and comma as separator.
Totality: total
unAnnotate : Docann -> Docxxx
Removes all annotations.
Totality: total
unAnnotateS : SimpleDocStreamann -> SimpleDocStreamxxx
Removes all annotations.
Totality: total
vcat : List (Docann) -> Docann
Vertically concatenates the documents. If it is grouped, the line breaks are removed.
Totality: total
vsep : List (Docann) -> Docann
Concatenates all documents above each other. If a `group` undoes the line breaks,
the documents are separated with a space instead.
Totality: total
width : Docann -> (Int -> Docann) -> Docann
Lays out a document, and makes the column width of it available to a function.
Totality: total