ghc-lib-parser-9.10.1.20250103: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Hs

Contents

- Orphan instances

Synopsis

- module Language.Haskell.Syntax
- module GHC.Hs.Binds
- module GHC.Hs.Decls
- module GHC.Hs.Expr
- module GHC.Hs.ImpExp
- module GHC.Hs.Lit
- module GHC.Hs.Pat
- module GHC.Hs.Type
- module GHC.Hs.Utils
- module GHC.Hs.Doc
- module GHC.Hs.Extension
- module GHC.Parser.Annotation
- data Fixity
- data HsModule p
  - = HsModule {
    - hsmodExt :: XCModule p
    - hsmodName :: Maybe (XRec p ModuleName)
    - hsmodExports :: Maybe (XRec p [LIE p])
    - hsmodImports :: [LImportDecl p]
    - hsmodDecls :: [LHsDecl p]
    }
  - | XModule !(XXModule p)
- data AnnsModule = AnnsModule {
  - am_main :: [AddEpAnn]
  - am_decls :: [TrailingAnn]
  - am_cs :: [LEpaComment]
  - am_eof :: Maybe (RealSrcSpan, RealSrcSpan)
  }
- data HsParsedModule = HsParsedModule {
  - hpm_module :: Located (HsModule GhcPs)
  - hpm_src_files :: [FilePath]
  }
- data XModulePs = XModulePs {
  - hsmodAnn :: EpAnn AnnsModule
  - hsmodLayout :: EpLayout
  - hsmodDeprecMessage :: Maybe (LWarningTxt GhcPs)
  - hsmodHaddockModHeader :: Maybe (LHsDoc GhcPs)
  }

# Documentation

module Language.Haskell.Syntax

module GHC.Hs.Binds

module GHC.Hs.Decls

module GHC.Hs.Expr

module GHC.Hs.ImpExp

module GHC.Hs.Lit

module GHC.Hs.Pat

module GHC.Hs.Type

module GHC.Hs.Utils

module GHC.Hs.Doc

module GHC.Hs.Extension

module GHC.Parser.Annotation

data Fixity #

#### Instances

Instances details

Data Fixity # |

Instance details

Defined in GHC.Types.Fixity

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity #

toConstr :: Fixity -> Constr #

dataTypeOf :: Fixity -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Fixity) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity) #

gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r #

gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity #

Binary Fixity # |
Instance details Defined in GHC.Types.Fixity Methods put_ :: BinHandle -> Fixity -> IO () # put :: BinHandle -> Fixity -> IO (Bin Fixity) # get :: BinHandle -> IO Fixity #
Outputable Fixity # |
Instance details Defined in GHC.Types.Fixity Methods ppr :: Fixity -> SDoc #
Eq Fixity # |
Instance details Defined in GHC.Types.Fixity Methods (==) :: Fixity -> Fixity -> Bool # (/=) :: Fixity -> Fixity -> Bool #

data HsModule p #

Haskell Module

All we actually declare here is the top-level structure for a module.

Constructors

HsModule

`AnnKeywordId`s

- `AnnModule`,`AnnWhere`
- `AnnOpen`,`AnnSemi`, `AnnClose` for explicit braces and semi around hsmodImports,hsmodDecls if this style is used.

Fields

- hsmodExt :: XCModule p

  HsModule extension point

- hsmodName :: Maybe (XRec p ModuleName)

  `Nothing`: "module X where" is omitted (in which case the next field is Nothing too)

- hsmodExports :: Maybe (XRec p [LIE p])

  Export list

  - `Nothing`: export list omitted, so export everything
  - `Just []`: export nothing
  - `Just [...]`: as you would expect...
  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`
- hsmodImports :: [LImportDecl p]
- hsmodDecls :: [LHsDecl p]

  Type, class, value, and interface signature decls

XModule !(XXModule p) |

#### Instances

Instances details

Data (HsModule GhcPs) # |

Instance details

Defined in GHC.Hs

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsModule GhcPs -> c (HsModule GhcPs) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsModule GhcPs) #

toConstr :: HsModule GhcPs -> Constr #

dataTypeOf :: HsModule GhcPs -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsModule GhcPs)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsModule GhcPs)) #

gmapT :: (forall b. Data b => b -> b) -> HsModule GhcPs -> HsModule GhcPs #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsModule GhcPs -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsModule GhcPs -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsModule GhcPs -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsModule GhcPs -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsModule GhcPs -> m (HsModule GhcPs) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule GhcPs -> m (HsModule GhcPs) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule GhcPs -> m (HsModule GhcPs) #

Outputable (HsModule GhcPs) # |
Instance details Defined in GHC.Hs Methods ppr :: HsModule GhcPs -> SDoc #

data AnnsModule #

Constructors

AnnsModule |

Fields

- am_main :: [AddEpAnn]
- am_decls :: [TrailingAnn]

  Semis before the start of top decls

- am_cs :: [LEpaComment]

  Comments before start of top decl, used in exact printing only

- am_eof :: Maybe (RealSrcSpan, RealSrcSpan)

  End of file and end of prior token

#### Instances

Instances details

Data AnnsModule # |

Instance details

Defined in GHC.Hs

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnsModule -> c AnnsModule #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnsModule #

toConstr :: AnnsModule -> Constr #

dataTypeOf :: AnnsModule -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnsModule) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnsModule) #

gmapT :: (forall b. Data b => b -> b) -> AnnsModule -> AnnsModule #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnsModule -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnsModule -> r #

gmapQ :: (forall d. Data d => d -> u) -> AnnsModule -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnsModule -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnsModule -> m AnnsModule #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsModule -> m AnnsModule #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsModule -> m AnnsModule #

NoAnn AnnsModule # |
Instance details Defined in GHC.Hs Methods noAnn :: AnnsModule #
Eq AnnsModule # |
Instance details Defined in GHC.Hs Methods (==) :: AnnsModule -> AnnsModule -> Bool # (/=) :: AnnsModule -> AnnsModule -> Bool #

data HsParsedModule #

Constructors

HsParsedModule |

Fields

- hpm_module :: Located (HsModule GhcPs)
- hpm_src_files :: [FilePath]

  extra source files (e.g. from #includes). The lexer collects these from '# file line' pragmas, which the C preprocessor leaves behind. These files and their timestamps are stored in the .hi file, so that we can force recompilation if any of them change (#3589)

data XModulePs #

Haskell Module extension point: GHC specific

Constructors

XModulePs |

Fields

- hsmodAnn :: EpAnn AnnsModule
- hsmodLayout :: EpLayout

  Layout info for the module. For incomplete modules (e.g. the output of parseHeader), it is EpNoLayout.

- hsmodDeprecMessage :: Maybe (LWarningTxt GhcPs)

  reason/explanation for warning/deprecation of this module

  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`
- hsmodHaddockModHeader :: Maybe (LHsDoc GhcPs)

  Haddock module info and description, unparsed

  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`

#### Instances

Instances details

Data XModulePs # |

Instance details

Defined in GHC.Hs

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> XModulePs -> c XModulePs #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c XModulePs #

toConstr :: XModulePs -> Constr #

dataTypeOf :: XModulePs -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c XModulePs) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c XModulePs) #

gmapT :: (forall b. Data b => b -> b) -> XModulePs -> XModulePs #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> XModulePs -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> XModulePs -> r #

gmapQ :: (forall d. Data d => d -> u) -> XModulePs -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> XModulePs -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> XModulePs -> m XModulePs #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> XModulePs -> m XModulePs #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> XModulePs -> m XModulePs #

# Orphan instances

Data (HsModule GhcPs) # |

Instance details

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsModule GhcPs -> c (HsModule GhcPs) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsModule GhcPs) #

toConstr :: HsModule GhcPs -> Constr #

dataTypeOf :: HsModule GhcPs -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsModule GhcPs)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsModule GhcPs)) #

gmapT :: (forall b. Data b => b -> b) -> HsModule GhcPs -> HsModule GhcPs #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsModule GhcPs -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsModule GhcPs -> r #

gmapQ :: (forall d. Data d => d -> u) -> HsModule GhcPs -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsModule GhcPs -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsModule GhcPs -> m (HsModule GhcPs) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule GhcPs -> m (HsModule GhcPs) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsModule GhcPs -> m (HsModule GhcPs) #

Outputable (HsModule GhcPs) # |
Instance details Methods ppr :: HsModule GhcPs -> SDoc #