Idris2Doc : Text.PrettyPrint.Prettyprinter.Doc

Text.PrettyPrint.Prettyprinter.Doc

Reexports

importpublic Data.List1
importpublic Data.String.Extra

Definitions

textSpaces : Int->String
Totality: total
Visibility: export
dataPageWidth : Type
  Maximum number of characters that fit in one line.

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

Totality: total
Visibility: public export
Constructors:
Shallow : FusionDepth
  Do not dive deep into nested documents.
Deep : FusionDepth
  Recurse into all parts of the `Doc`. May impact performace.
dataDoc : Type->Type
  This data type represents pretty documents that have
been annotated with an arbitrary data type `ann`.

Totality: total
Visibility: public export
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

Hints:
FromString (Docann)
FunctorDoc
Monoid (Docann)
Semigroup (Docann)
Show (Docann)
column : (Int->Docann) ->Docann
  Layout a document depending on which column it starts at.

Totality: total
Visibility: export
nest : Int->Docann->Docann
  Lays out a document with the current nesting level increased by `i`.

Totality: total
Visibility: export
nesting : (Int->Docann) ->Docann
  Layout a document depending on the current nesting level.

Totality: total
Visibility: export
width : Docann-> (Int->Docann) ->Docann
  Lays out a document, and makes the column width of it available to a function.

Totality: total
Visibility: export
pageWidth : (PageWidth->Docann) ->Docann
  Layout a document depending on the page width, if one has been specified.

Totality: total
Visibility: export
align : Docann->Docann
  Lays out a document with the nesting level set to the current column.

Totality: total
Visibility: export
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
Visibility: export
spaces : Int->Docann
  Insert a number of spaces.

Totality: total
Visibility: export
indent : Int->Docann->Docann
  Indents a document with `i` spaces, starting from the current cursor position.

Totality: total
Visibility: export
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
Visibility: export
(<++>) : Docann->Docann->Docann
  Concatenates two documents with a space in between.

Totality: total
Visibility: export
Fixity Declarations:
infix operator, level 5
infixr operator, level 5
infixr operator, level 6
emptyDoc : Docann
  The empty document behaves like `pretty ""`, so it has a height of 1.

Totality: total
Visibility: export
softline : Docann
  Behaves like `space` if the resulting output fits the page, otherwise like `line`.

Totality: total
Visibility: export
softline' : Docann
  Like `softline`, but behaves like `neutral` if the resulting output does not fit
on the page.

Totality: total
Visibility: export
hardline : Docann
  A line break, even when grouped.

Totality: total
Visibility: export
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
Visibility: export
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
Visibility: export
line : Docann
  Advances to the next line and indents to the current nesting level.

Totality: total
Visibility: export
line' : Docann
  Like `line`, but behaves like `neutral` if the line break is undone by `group`.

Totality: total
Visibility: export
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
Visibility: export
concatWith : (Docann->Docann->Docann) ->List (Docann) ->Docann
  Concatenate all documents element-wise with a binary function.

Totality: total
Visibility: export
hsep : List (Docann) ->Docann
  Concatenates all documents horizontally with `(<++>)`.

Totality: total
Visibility: export
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
Visibility: export
fillSep : List (Docann) ->Docann
  Concatenates the documents horizontally with `(<++>)` as long as it fits the page,
then inserts a line and continues.

Totality: total
Visibility: export
sep : List (Docann) ->Docann
  Tries laying out the documents separated with spaces and if this does not fit,
separates them with newlines.

Totality: total
Visibility: export
hcat : List (Docann) ->Docann
  Concatenates all documents horizontally with `(<+>)`.

Totality: total
Visibility: export
vcat : List (Docann) ->Docann
  Vertically concatenates the documents. If it is grouped, the line breaks are removed.

Totality: total
Visibility: export
fillCat : List (Docann) ->Docann
  Concatenates documents horizontally with `(<+>)` as log as it fits the page, then
inserts a line and continues.

Totality: total
Visibility: export
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
Visibility: export
punctuate : Docann->List (Docann) ->List (Docann)
  Appends `p` to all but the last document.

Totality: total
Visibility: export
plural : Numamount=>Eqamount=>doc->doc->amount->doc
Totality: total
Visibility: export
enclose : Docann->Docann->Docann->Docann
  Encloses the document between two other documents using `(<+>)`.

Totality: total
Visibility: export
surround : Docann->Docann->Docann->Docann
  Reordering of `encloses`.
Example: concatWith (surround (pretty ".")) [pretty "Text", pretty "PrettyPrint", pretty "Doc"]
Text.PrettyPrint.Doc

Totality: total
Visibility: export
encloseSep : Docann->Docann->Docann->List (Docann) ->Docann
  Concatenates the documents separated by `s` and encloses the resulting document by `l` and `r`.

Totality: total
Visibility: export
annotate : ann->Docann->Docann
  Adds an annotation to a document.

Totality: total
Visibility: export
alterAnnotations : (ann->Listann') ->Docann->Docann'
  Changes the annotations of a document. Individual annotations can be removed,
changed, or replaced by multiple ones.

Totality: total
Visibility: export
unAnnotate : Docann->Docxxx
  Removes all annotations.

Totality: total
Visibility: export
reAnnotate : (ann->ann') ->Docann->Docann'
  Changes the annotations of a document.

Totality: total
Visibility: export
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
PrettyInt8
PrettyInt16
PrettyInt32
PrettyInt64
(Prettya, Prettyb) =>Pretty (a, b)
Prettya=>Pretty (Maybea)
PrettyStopReason
pretty : Prettya=>a->Docann
Totality: total
Visibility: public export
prettyPrec : Prettya=>Prec->a->Docann
Totality: total
Visibility: public export
list : List (Docann) ->Docann
  Variant of `encloseSep` with braces and comma as separator.

Totality: total
Visibility: export
tupled : List (Docann) ->Docann
  Variant of `encloseSep` with parentheses and comma as separator.

Totality: total
Visibility: export
fuse : FusionDepth->Docann->Docann
  Combines text nodes so they can be rendered more efficiently.

Totality: total
Visibility: export
dataSimpleDocStream : Type->Type
  This data type represents laid out documents and is used by the display functions.

Totality: total
Visibility: public export
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

Hint: 
FunctorSimpleDocStream
alterAnnotationsS : (ann->Maybeann') ->SimpleDocStreamann->SimpleDocStreamann'
  Changes the annotation of a document to a different annotation or none.

Totality: total
Visibility: export
unAnnotateS : SimpleDocStreamann->SimpleDocStreamxxx
  Removes all annotations.

Totality: total
Visibility: export
reAnnotateS : (ann->ann') ->SimpleDocStreamann->SimpleDocStreamann'
  Changes the annotation of a document.

Totality: total
Visibility: export
collectAnnotations : Monoidm=> (ann->m) ->SimpleDocStreamann->m
  Collects all annotations from a document.

Totality: total
Visibility: export
traverse : Applicativef=> (ann->fann') ->SimpleDocStreamann->f (SimpleDocStreamann')
  Transform a document based on its annotations.

Totality: total
Visibility: export
removeTrailingWhitespace : SimpleDocStreamann->SimpleDocStreamann
  Removes all trailing space characters.

Totality: total
Visibility: export
FittingPredicate : Type->Type
Totality: total
Visibility: public export
defaultPageWidth : PageWidth
Totality: total
Visibility: export
recordLayoutOptions : Type
Totality: total
Visibility: public export
Constructor: 
MkLayoutOptions : PageWidth->LayoutOptions

Projection: 
.layoutPageWidth : LayoutOptions->PageWidth
.layoutPageWidth : LayoutOptions->PageWidth
Totality: total
Visibility: public export
layoutPageWidth : LayoutOptions->PageWidth
Totality: total
Visibility: public export
defaultLayoutOptions : LayoutOptions
Totality: total
Visibility: export
layoutWadlerLeijen : FittingPredicateann->PageWidth->Docann->SimpleDocStreamann
  The Wadler/Leijen layout algorithm.

Totality: total
Visibility: export
layoutUnbounded : Docann->SimpleDocStreamann
  Layout a document with unbounded page width.

Totality: total
Visibility: export
layoutPretty : LayoutOptions->Docann->SimpleDocStreamann
  The default layout algorithm.

Totality: total
Visibility: export
layoutSmart : LayoutOptions->Docann->SimpleDocStreamann
  Layout algorithm with more lookahead than layoutPretty.

Totality: total
Visibility: export
layoutCompact : Docann->SimpleDocStreamann
  Lays out the document without adding any indentation. This layouter is very fast.

Totality: total
Visibility: export
renderShow : SimpleDocStreamann->String->String
Totality: total
Visibility: export