Idris2Doc : Text.PrettyPrint.Prettyprinter.Doc

Text.PrettyPrint.Prettyprinter.Doc

(<++>) : Docann -> Docann -> Docann
  Concatenates two documents with a space in between.

Totality: total
Fixity Declaration: infixr operator, level 6
dataDoc : Type -> Type
  This data type represents pretty documents that have
been annotated with an arbitrary data type `ann`.

Totality: total
Constructors:
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
dataFusionDepth : Type
  Fusion depth parameter.

Totality: total
Constructors:
Shallow : FusionDepth
  Do not dive deep into nested documents.
Deep : FusionDepth
  Recurse into all parts of the `Doc`. May impact performace.
recordLayoutOptions : Type
Totality: total
Constructor: 
MkLayoutOptions : PageWidth -> LayoutOptions

Projection: 
.layoutPageWidth : LayoutOptions -> PageWidth
dataPageWidth : Type
  Maximum number of characters that fit in one line.

Totality: total
Constructors:
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.
interfacePretty : Type -> Type
  Overloaded converison to `Doc`.

Parameters: a
Methods:
pretty : a -> Docann
prettyPrec : Prec -> a -> Docann

Implementations:
PrettyString
Prettya => Pretty (Lista)
Prettya => Pretty (List1a)
Pretty ()
PrettyBool
PrettyChar
PrettyNat
PrettyInt
PrettyInteger
PrettyDouble
PrettyBits8
PrettyBits16
PrettyBits32
PrettyBits64
(Prettya, Prettyb) => Pretty (a, b)
Prettya => Pretty (Maybea)
PrettyStopReason
dataSimpleDocStream : Type -> Type
  This data type represents laid out documents and is used by the display functions.

Totality: total
Constructors:
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
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"]
Text.PrettyPrint.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