Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Warning: internal module! This means that the API may change arbitrarily between versions without notice. Depending on this module may lead to unexpected breakages, so proceed with caution!
This module provides debugging helpers for inspecting Doc
s.
Use the pretty-simple
package to get a nicer layout for show
n
Diag
s:
> Text.Pretty.Simple.pPrintNoColor . diag $ align (vcat ["foo", "bar"]) Column [ ( 10 , Nesting [ ( 10 , Cat ( Text 3 "foo" ) ( Cat ( FlatAlt Line Empty ) ( Text 3 "bar" ) ) ) ] ) ]
Documentation
A variant of Doc
for debugging.
Unlike in the Doc
type, the Column
, WithPageWidth
and Nesting
constructors don't contain functions but are "sampled" to allow
simple inspection with show
.
Fail | |
Empty | |
Char !Char | |
Text !Int !Text | |
Line | |
FlatAlt (Diag ann) (Diag ann) | |
Cat (Diag ann) (Diag ann) | |
Nest !Int (Diag ann) | |
Union (Diag ann) (Diag ann) | |
Column [(Int, Diag ann)] |
|
WithPageWidth [(PageWidth, Diag ann)] |
|
Nesting [(Int, Diag ann)] |
|
Annotated ann (Diag ann) |
diag :: Doc ann -> Diag ann Source #
Convert a Doc
to its diagnostic representation.
The functions in the Column
, WithPageWidth
and Nesting
constructors are
sampled with some default values.
Use diag'
to control the function inputs yourself.
>>>
diag $ Doc.align (Doc.vcat ["foo", "bar"])
Column [(10,Nesting [(10,Cat (Text 3 "foo") (Cat (FlatAlt Line Empty) (Text 3 "bar")))])]