ghc-8.2.2: The GHC API

Safe Haskell | None
Language | Haskell2010

HsSyn

Synopsis

- module HsBinds
- module HsDecls
- module HsExpr
- module HsImpExp
- module HsLit
- module HsPat
- module HsTypes
- module HsUtils
- module HsDoc
- module PlaceHolder
- data Fixity
- data HsModule name = HsModule {
  - hsmodName :: Maybe (Located ModuleName)
  - hsmodExports :: Maybe (Located [LIE name])
  - hsmodImports :: [LImportDecl name]
  - hsmodDecls :: [LHsDecl name]
  - hsmodDeprecMessage :: Maybe (Located WarningTxt)
  - hsmodHaddockModHeader :: Maybe LHsDocString
  }

# Documentation

module HsBinds

module HsDecls

module HsExpr

module HsImpExp

module HsLit

module HsPat

module HsTypes

module HsUtils

module HsDoc

module PlaceHolder

data Fixity #

Instances

Eq Fixity # |
Methods (==) :: Fixity -> Fixity -> Bool # (/=) :: Fixity -> Fixity -> Bool #
Data Fixity # |

Methods

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

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

toConstr :: Fixity -> Constr Source #

dataTypeOf :: Fixity -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Outputable Fixity # |
Methods ppr :: Fixity -> SDoc # pprPrec :: Rational -> Fixity -> SDoc #
Binary Fixity # |
Methods put_ :: BinHandle -> Fixity -> IO () # put :: BinHandle -> Fixity -> IO (Bin * Fixity) # get :: BinHandle -> IO Fixity #

data HsModule name #

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

- hsmodName :: Maybe (Located ModuleName)

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

- hsmodExports :: Maybe (Located [LIE name])

  Export list

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

  We snaffle interesting stuff out of the imported interfaces early on, adding that info to TyDecls/etc; so this list is often empty, downstream.

- hsmodDecls :: [LHsDecl name]

  Type, class, value, and interface signature decls

- hsmodDeprecMessage :: Maybe (Located WarningTxt)

  reason/explanation for warning/deprecation of this module

  - `AnnKeywordId`s : `AnnOpen` ,`AnnClose`
- hsmodHaddockModHeader :: Maybe LHsDocString

  Haddock module info and description, unparsed

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

Instances

DataId name => Data (HsModule name) # |

Methods

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

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

toConstr :: HsModule name -> Constr Source #

dataTypeOf :: HsModule name -> DataType Source #

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

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

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

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

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

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

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

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

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

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

(OutputableBndrId name, HasOccName name) => Outputable (HsModule name) # |
Methods ppr :: HsModule name -> SDoc # pprPrec :: Rational -> HsModule name -> SDoc #