ghc-9.6.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Hs.Dump

Contents

- Dumping ASTs

Description

Contains a debug function to dump parts of the GHC.Hs AST. It uses a syb traversal which falls back to displaying based on the constructor name, so can be used to dump anything having a `Data.Data` instance.

Synopsis

- showAstData :: Data a => BlankSrcSpan -> BlankEpAnnotations -> a -> SDoc
- showAstDataFull :: Data a => a -> SDoc
- data BlankSrcSpan
  - = BlankSrcSpan
  - | BlankSrcSpanFile
  - | NoBlankSrcSpan
- data BlankEpAnnotations
  - = BlankEpAnnotations
  - | NoBlankEpAnnotations

# Dumping ASTs

showAstData :: Data a => BlankSrcSpan -> BlankEpAnnotations -> a -> SDoc Source #

Show a GHC syntax tree. This parameterised because it is also used for comparing ASTs in ppr roundtripping tests, where the SrcSpan's are blanked out, to avoid comparing locations, only structure

showAstDataFull :: Data a => a -> SDoc Source #

Show the full AST as the compiler sees it.

data BlankSrcSpan Source #

Should source spans be removed from output.

Constructors

BlankSrcSpan |
BlankSrcSpanFile |
NoBlankSrcSpan |

#### Instances

Instances details

Show BlankSrcSpan Source # |
Instance details Defined in GHC.Hs.Dump Methods showsPrec :: Int -> BlankSrcSpan -> ShowS Source # show :: BlankSrcSpan -> String Source # showList :: [BlankSrcSpan] -> ShowS Source #
Eq BlankSrcSpan Source # |
Instance details Defined in GHC.Hs.Dump Methods (==) :: BlankSrcSpan -> BlankSrcSpan -> Bool # (/=) :: BlankSrcSpan -> BlankSrcSpan -> Bool #

data BlankEpAnnotations Source #

Should EpAnnotations be removed from output.

Constructors

BlankEpAnnotations |
NoBlankEpAnnotations |

#### Instances

Instances details

Show BlankEpAnnotations Source # |
Instance details Defined in GHC.Hs.Dump Methods showsPrec :: Int -> BlankEpAnnotations -> ShowS Source # show :: BlankEpAnnotations -> String Source # showList :: [BlankEpAnnotations] -> ShowS Source #
Eq BlankEpAnnotations Source # |
Instance details Defined in GHC.Hs.Dump Methods (==) :: BlankEpAnnotations -> BlankEpAnnotations -> Bool # (/=) :: BlankEpAnnotations -> BlankEpAnnotations -> Bool #