ghc-8.2.2: The GHC API

Safe Haskell | None
Language | Haskell2010

HsImpExp

Synopsis

- type LImportDecl name = Located (ImportDecl name)
- data ImportDecl name = ImportDecl {
  - ideclSourceSrc :: SourceText
  - ideclName :: Located ModuleName
  - ideclPkgQual :: Maybe StringLiteral
  - ideclSource :: Bool
  - ideclSafe :: Bool
  - ideclQualified :: Bool
  - ideclImplicit :: Bool
  - ideclAs :: Maybe (Located ModuleName)
  - ideclHiding :: Maybe (Bool, Located [LIE name])
  }
- simpleImportDecl :: ModuleName -> ImportDecl name
- data IEWrappedName name
  - = IEName (Located name)
  - | IEPattern (Located name)
  - | IEType (Located name)
- type LIEWrappedName name = Located (IEWrappedName name)
- type LIE name = Located (IE name)
- data IE name
  - = IEVar (LIEWrappedName name)
  - | IEThingAbs (LIEWrappedName name)
  - | IEThingAll (LIEWrappedName name)
  - | IEThingWith (LIEWrappedName name) IEWildcard [LIEWrappedName name] [Located (FieldLbl name)]
  - | IEModuleContents (Located ModuleName)
  - | IEGroup Int HsDocString
  - | IEDoc HsDocString
  - | IEDocNamed String
- data IEWildcard
  - = NoIEWildcard
  - | IEWildcard Int
- ieName :: IE name -> name
- ieNames :: IE a -> [a]
- ieWrappedName :: IEWrappedName name -> name
- ieLWrappedName :: LIEWrappedName name -> Located name
- replaceWrappedName :: IEWrappedName name1 -> name2 -> IEWrappedName name2
- replaceLWrappedName :: LIEWrappedName name1 -> name2 -> LIEWrappedName name2
- pprImpExp :: (HasOccName name, OutputableBndr name) => name -> SDoc

# Documentation

type LImportDecl name #

Arguments

= Located (ImportDecl name)

When in a list this may have

- `AnnKeywordId` : `AnnSemi`

Located Import Declaration

data ImportDecl name #

Import Declaration

A single Haskell `import` declaration.

Constructors

ImportDecl

`AnnKeywordId`s

- `AnnImport`
- `AnnOpen`, `AnnClose` for ideclSource
- `AnnSafe`,`AnnQualified`, `AnnPackageName`,`AnnAs`, `AnnVal`
- `AnnHiding`,`AnnOpen`, `AnnClose` attached to location in ideclHiding

Fields

- ideclSourceSrc :: SourceText
- ideclName :: Located ModuleName

  Module name.

- ideclPkgQual :: Maybe StringLiteral

  Package qualifier.

- ideclSource :: Bool

  True = {-# SOURCE #-} import

- ideclSafe :: Bool

  True => safe import

- ideclQualified :: Bool

  True => qualified

- ideclImplicit :: Bool

  True => implicit import (of Prelude)

- ideclAs :: Maybe (Located ModuleName)

  as Module

- ideclHiding :: Maybe (Bool, Located [LIE name])

  (True => hiding, names)

Instances

Data name => Data (ImportDecl name) # |

Methods

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

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

toConstr :: ImportDecl name -> Constr Source #

dataTypeOf :: ImportDecl name -> DataType Source #

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

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

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

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

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

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

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

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

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

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

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

simpleImportDecl :: ModuleName -> ImportDecl name #

data IEWrappedName name #

A name in an import or export specfication which may have adornments. Used primarily for accurate pretty printing of ParsedSource, and API Annotation placement.

Constructors

IEName (Located name) | no extra
IEPattern (Located name) | pattern X
IEType (Located name) | type (:+:)

Instances

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

Methods

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

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

toConstr :: IEWrappedName name -> Constr Source #

dataTypeOf :: IEWrappedName name -> DataType Source #

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

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

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

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

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

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

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

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

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

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

(OutputableBndr name, HasOccName name) => OutputableBndr (IEWrappedName name) # |
Methods pprBndr :: BindingSite -> IEWrappedName name -> SDoc # pprPrefixOcc :: IEWrappedName name -> SDoc # pprInfixOcc :: IEWrappedName name -> SDoc # bndrIsJoin_maybe :: IEWrappedName name -> Maybe Int #
(HasOccName name, OutputableBndr name) => Outputable (IEWrappedName name) # |
Methods ppr :: IEWrappedName name -> SDoc # pprPrec :: Rational -> IEWrappedName name -> SDoc #
HasOccName name => HasOccName (IEWrappedName name) # |
Methods occName :: IEWrappedName name -> OccName #

type LIEWrappedName name = Located (IEWrappedName name) #

Located name with possible adornment - `AnnKeywordId`s : `AnnType`, `AnnPattern`

type LIE name #

Arguments

= Located (IE name)

When in a list this may have

- `AnnKeywordId` : `AnnComma`

Located Import or Export

data IE name #

Imported or exported entity.

Constructors

IEVar (LIEWrappedName name) | Imported or Exported Variable
IEThingAbs (LIEWrappedName name) | Imported or exported Thing with Absent list The thing is a Class/Type (can't tell) - `AnnKeywordId`s : `AnnPattern`, `AnnType`,`AnnVal`

IEThingAll (LIEWrappedName name)

Imported or exported Thing with All imported or exported

The thing is a ClassType and the All refers to methodsconstructors

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

IEThingWith (LIEWrappedName name) IEWildcard [LIEWrappedName name] [Located (FieldLbl name)] | Imported or exported Thing With given imported or exported The thing is a Class/Type and the imported or exported things are methods/constructors and record fields; see Note [IEThingWith] - `AnnKeywordId`s : `AnnOpen`, `AnnClose`, `AnnComma`, `AnnType`

IEModuleContents (Located ModuleName)

Imported or exported module contents

(Export Only)

- `AnnKeywordId`s : `AnnModule`

IEGroup Int HsDocString | Doc section heading
IEDoc HsDocString | Some documentation
IEDocNamed String | Reference to named doc

Instances

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

Methods

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

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

toConstr :: IE name -> Constr Source #

dataTypeOf :: IE name -> DataType Source #

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

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

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

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

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

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

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

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

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

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

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

data IEWildcard #

Imported or Exported Wildcard

Constructors

NoIEWildcard |
IEWildcard Int |

Instances

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

Methods

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

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

toConstr :: IEWildcard -> Constr Source #

dataTypeOf :: IEWildcard -> DataType Source #

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

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

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

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

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

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

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

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

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

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

ieName :: IE name -> name #

ieNames :: IE a -> [a] #

ieWrappedName :: IEWrappedName name -> name #

ieLWrappedName :: LIEWrappedName name -> Located name #

replaceWrappedName :: IEWrappedName name1 -> name2 -> IEWrappedName name2 #

replaceLWrappedName :: LIEWrappedName name1 -> name2 -> LIEWrappedName name2 #

pprImpExp :: (HasOccName name, OutputableBndr name) => name -> SDoc #