| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
GHC.Iface.Ext.Types
Synopsis
- type Span = RealSrcSpan
- hieVersion :: Integer
- data HieFile = HieFile {}
- type NameEntityInfo = Map Name (Set EntityInfo)
- type TypeIndex = Int
- data HieType a
- = HTyVarTy Name
- | HAppTy a (HieArgs a)
- | HTyConApp IfaceTyCon (HieArgs a)
- | HForAllTy ((Name, a), ForAllTyFlag) a
- | HFunTy a a a
- | HQualTy a a
- | HLitTy IfaceTyLit
- | HCastTy a
- | HCoercionTy
- type HieTypeFlat = HieType TypeIndex
- newtype HieTypeFix = Roll (HieType HieTypeFix)
- newtype HieArgs a = HieArgs [(Bool, a)]
- type HiePath = LexicalFastString
- pattern HiePath :: FastString -> HiePath
- newtype HieASTs a = HieASTs {}
- data HieAST a = Node {
- sourcedNodeInfo :: SourcedNodeInfo a
- nodeSpan :: Span
- nodeChildren :: [HieAST a]
- newtype SourcedNodeInfo a = SourcedNodeInfo {
- getSourcedNodeInfo :: Map NodeOrigin (NodeInfo a)
- data NodeOrigin
- data NodeAnnotation = NodeAnnotation {}
- data NodeInfo a = NodeInfo {
- nodeAnnotations :: Set NodeAnnotation
- nodeType :: [a]
- nodeIdentifiers :: NodeIdentifiers a
- pprNodeIdents :: Outputable a => NodeIdentifiers a -> SDoc
- pprIdentifier :: Identifier -> SDoc
- type Identifier = Either ModuleName Name
- type NodeIdentifiers a = Map Identifier (IdentifierDetails a)
- data IdentifierDetails a = IdentifierDetails {
- identType :: Maybe a
- identInfo :: Set ContextInfo
- data ContextInfo
- = Use
- | MatchBind
- | IEThing IEType
- | TyDecl
- | ValBind BindType Scope (Maybe Span)
- | PatternBind Scope Scope (Maybe Span)
- | ClassTyDecl (Maybe Span)
- | Decl DeclType (Maybe Span)
- | TyVarBind Scope TyVarScope
- | RecField RecFieldContext (Maybe Span)
- | EvidenceVarBind EvVarSource Scope (Maybe Span)
- | EvidenceVarUse
- pprBindSpan :: Maybe Span -> SDoc
- data EvVarSource
- = EvPatternBind
- | EvSigBind
- | EvWrapperBind
- | EvImplicitBind
- | EvInstBind {
- isSuperInst :: Bool
- cls :: Name
- | EvLetBind EvBindDeps
- newtype EvBindDeps = EvBindDeps {
- getEvBindDeps :: [Name]
- data IEType
- = Import
- | ImportAs
- | ImportHiding
- | Export
- data RecFieldContext
- data BindType
- data DeclType
- data Scope
- data TyVarScope
- = ResolvedScopes [Scope]
- | UnresolvedScope [Name] (Maybe Span)
- data HieName
- hieNameOcc :: HieName -> OccName
- toHieName :: Name -> HieName
- data EntityInfo
- idEntityInfo :: Id -> Set EntityInfo
- tyThingEntityInfo :: TyThing -> Set EntityInfo
- nameEntityInfo :: Name -> Set EntityInfo
Documentation
type Span = RealSrcSpan #
hieVersion :: Integer #
Current version of .hie files
GHC builds up a wealth of information about Haskell source as it compiles it.
.hie files are a way of persisting some of this information to disk so that
external tools that need to work with haskell source don't need to parse,
typecheck, and rename all over again. These files contain:
a simplified AST
- nodes are annotated with source positions and types
- identifiers are annotated with scope information
- the raw bytes of the initial Haskell source
Besides saving compilation cycles, .hie files also offer a more stable
interface than the GHC API.
Constructors
| HieFile | |
Fields
| |
type NameEntityInfo = Map Name (Set EntityInfo) #
A flattened version of Type.
See Note [Efficient serialization of redundant type info]
Constructors
| HTyVarTy Name | |
| HAppTy a (HieArgs a) | |
| HTyConApp IfaceTyCon (HieArgs a) | |
| HForAllTy ((Name, a), ForAllTyFlag) a | |
| HFunTy a a a | |
| HQualTy a a | type with constraint: |
| HLitTy IfaceTyLit | |
| HCastTy a | |
| HCoercionTy |
Instances
| Functor HieType # | |
| Foldable HieType # | |
Defined in GHC.Iface.Ext.Types Methods fold :: Monoid m => HieType m -> m Source # foldMap :: Monoid m => (a -> m) -> HieType a -> m Source # foldMap' :: Monoid m => (a -> m) -> HieType a -> m Source # foldr :: (a -> b -> b) -> b -> HieType a -> b Source # foldr' :: (a -> b -> b) -> b -> HieType a -> b Source # foldl :: (b -> a -> b) -> b -> HieType a -> b Source # foldl' :: (b -> a -> b) -> b -> HieType a -> b Source # foldr1 :: (a -> a -> a) -> HieType a -> a Source # foldl1 :: (a -> a -> a) -> HieType a -> a Source # toList :: HieType a -> [a] Source # null :: HieType a -> Bool Source # length :: HieType a -> Int Source # elem :: Eq a => a -> HieType a -> Bool Source # maximum :: Ord a => HieType a -> a Source # minimum :: Ord a => HieType a -> a Source # | |
| Traversable HieType # | |
Defined in GHC.Iface.Ext.Types | |
| Binary (HieType TypeIndex) # | |
| Eq a => Eq (HieType a) # | |
type HieTypeFlat = HieType TypeIndex #
newtype HieTypeFix #
Roughly isomorphic to the original core Type.
Constructors
| Roll (HieType HieTypeFix) |
Instances
| Eq HieTypeFix # | |
Defined in GHC.Iface.Ext.Types Methods (==) :: HieTypeFix -> HieTypeFix -> Bool Source # (/=) :: HieTypeFix -> HieTypeFix -> Bool Source # | |
A list of type arguments along with their respective visibilities (ie. is
this an argument that would return True for isVisibleForAllTyFlag?).
Instances
| Functor HieArgs # | |
| Foldable HieArgs # | |
Defined in GHC.Iface.Ext.Types Methods fold :: Monoid m => HieArgs m -> m Source # foldMap :: Monoid m => (a -> m) -> HieArgs a -> m Source # foldMap' :: Monoid m => (a -> m) -> HieArgs a -> m Source # foldr :: (a -> b -> b) -> b -> HieArgs a -> b Source # foldr' :: (a -> b -> b) -> b -> HieArgs a -> b Source # foldl :: (b -> a -> b) -> b -> HieArgs a -> b Source # foldl' :: (b -> a -> b) -> b -> HieArgs a -> b Source # foldr1 :: (a -> a -> a) -> HieArgs a -> a Source # foldl1 :: (a -> a -> a) -> HieArgs a -> a Source # toList :: HieArgs a -> [a] Source # null :: HieArgs a -> Bool Source # length :: HieArgs a -> Int Source # elem :: Eq a => a -> HieArgs a -> Bool Source # maximum :: Ord a => HieArgs a -> a Source # minimum :: Ord a => HieArgs a -> a Source # | |
| Traversable HieArgs # | |
Defined in GHC.Iface.Ext.Types | |
| Binary (HieArgs TypeIndex) # | |
| Eq a => Eq (HieArgs a) # | |
type HiePath = LexicalFastString #
pattern HiePath :: FastString -> HiePath #
Mapping from filepaths to the corresponding AST
Instances
| Functor HieASTs # | |
| Foldable HieASTs # | |
Defined in GHC.Iface.Ext.Types Methods fold :: Monoid m => HieASTs m -> m Source # foldMap :: Monoid m => (a -> m) -> HieASTs a -> m Source # foldMap' :: Monoid m => (a -> m) -> HieASTs a -> m Source # foldr :: (a -> b -> b) -> b -> HieASTs a -> b Source # foldr' :: (a -> b -> b) -> b -> HieASTs a -> b Source # foldl :: (b -> a -> b) -> b -> HieASTs a -> b Source # foldl' :: (b -> a -> b) -> b -> HieASTs a -> b Source # foldr1 :: (a -> a -> a) -> HieASTs a -> a Source # foldl1 :: (a -> a -> a) -> HieASTs a -> a Source # toList :: HieASTs a -> [a] Source # null :: HieASTs a -> Bool Source # length :: HieASTs a -> Int Source # elem :: Eq a => a -> HieASTs a -> Bool Source # maximum :: Ord a => HieASTs a -> a Source # minimum :: Ord a => HieASTs a -> a Source # | |
| Traversable HieASTs # | |
Defined in GHC.Iface.Ext.Types | |
| Binary (HieASTs TypeIndex) # | |
| Outputable a => Outputable (HieASTs a) # | |
Defined in GHC.Iface.Ext.Types | |
Constructors
| Node | |
Fields
| |
Instances
| Functor HieAST # | |
| Foldable HieAST # | |
Defined in GHC.Iface.Ext.Types Methods fold :: Monoid m => HieAST m -> m Source # foldMap :: Monoid m => (a -> m) -> HieAST a -> m Source # foldMap' :: Monoid m => (a -> m) -> HieAST a -> m Source # foldr :: (a -> b -> b) -> b -> HieAST a -> b Source # foldr' :: (a -> b -> b) -> b -> HieAST a -> b Source # foldl :: (b -> a -> b) -> b -> HieAST a -> b Source # foldl' :: (b -> a -> b) -> b -> HieAST a -> b Source # foldr1 :: (a -> a -> a) -> HieAST a -> a Source # foldl1 :: (a -> a -> a) -> HieAST a -> a Source # toList :: HieAST a -> [a] Source # null :: HieAST a -> Bool Source # length :: HieAST a -> Int Source # elem :: Eq a => a -> HieAST a -> Bool Source # maximum :: Ord a => HieAST a -> a Source # minimum :: Ord a => HieAST a -> a Source # | |
| Traversable HieAST # | |
Defined in GHC.Iface.Ext.Types | |
| Binary (HieAST TypeIndex) # | |
| Outputable a => Outputable (HieAST a) # | |
Defined in GHC.Iface.Ext.Types | |
newtype SourcedNodeInfo a #
NodeInfos grouped by source
Constructors
| SourcedNodeInfo | |
Fields
| |
Instances
data NodeOrigin #
Source of node info
Constructors
| SourceInfo | |
| GeneratedInfo |
Instances
data NodeAnnotation #
A node annotation
Constructors
| NodeAnnotation | |
Fields
| |
Instances
| Binary NodeAnnotation # | |
Defined in GHC.Iface.Ext.Types Methods put_ :: WriteBinHandle -> NodeAnnotation -> IO () # put :: WriteBinHandle -> NodeAnnotation -> IO (Bin NodeAnnotation) # get :: ReadBinHandle -> IO NodeAnnotation # | |
| Outputable NodeAnnotation # | |
Defined in GHC.Iface.Ext.Types Methods ppr :: NodeAnnotation -> SDoc # | |
| Eq NodeAnnotation # | |
Defined in GHC.Iface.Ext.Types Methods (==) :: NodeAnnotation -> NodeAnnotation -> Bool Source # (/=) :: NodeAnnotation -> NodeAnnotation -> Bool Source # | |
| Ord NodeAnnotation # | |
Defined in GHC.Iface.Ext.Types Methods compare :: NodeAnnotation -> NodeAnnotation -> Ordering Source # (<) :: NodeAnnotation -> NodeAnnotation -> Bool Source # (<=) :: NodeAnnotation -> NodeAnnotation -> Bool Source # (>) :: NodeAnnotation -> NodeAnnotation -> Bool Source # (>=) :: NodeAnnotation -> NodeAnnotation -> Bool Source # max :: NodeAnnotation -> NodeAnnotation -> NodeAnnotation Source # min :: NodeAnnotation -> NodeAnnotation -> NodeAnnotation Source # | |
The information stored in one AST node.
The type parameter exists to provide flexibility in representation of types (see Note [Efficient serialization of redundant type info]).
Constructors
| NodeInfo | |
Fields
| |
Instances
| Functor NodeInfo # | |
| Foldable NodeInfo # | |
Defined in GHC.Iface.Ext.Types Methods fold :: Monoid m => NodeInfo m -> m Source # foldMap :: Monoid m => (a -> m) -> NodeInfo a -> m Source # foldMap' :: Monoid m => (a -> m) -> NodeInfo a -> m Source # foldr :: (a -> b -> b) -> b -> NodeInfo a -> b Source # foldr' :: (a -> b -> b) -> b -> NodeInfo a -> b Source # foldl :: (b -> a -> b) -> b -> NodeInfo a -> b Source # foldl' :: (b -> a -> b) -> b -> NodeInfo a -> b Source # foldr1 :: (a -> a -> a) -> NodeInfo a -> a Source # foldl1 :: (a -> a -> a) -> NodeInfo a -> a Source # toList :: NodeInfo a -> [a] Source # null :: NodeInfo a -> Bool Source # length :: NodeInfo a -> Int Source # elem :: Eq a => a -> NodeInfo a -> Bool Source # maximum :: Ord a => NodeInfo a -> a Source # minimum :: Ord a => NodeInfo a -> a Source # | |
| Traversable NodeInfo # | |
Defined in GHC.Iface.Ext.Types | |
| Binary (NodeInfo TypeIndex) # | |
| Outputable a => Outputable (NodeInfo a) # | |
Defined in GHC.Iface.Ext.Types | |
pprNodeIdents :: Outputable a => NodeIdentifiers a -> SDoc #
pprIdentifier :: Identifier -> SDoc #
type Identifier = Either ModuleName Name #
type NodeIdentifiers a = Map Identifier (IdentifierDetails a) #
data IdentifierDetails a #
Information associated with every identifier
We need to include types with identifiers because sometimes multiple identifiers occur in the same span(Overloaded Record Fields and so on)
Constructors
| IdentifierDetails | |
Fields
| |
Instances
data ContextInfo #
Different contexts under which identifiers exist
Constructors
| Use | regular variable |
| MatchBind | |
| IEThing IEType | import/export |
| TyDecl | |
| ValBind | Value binding |
| PatternBind | Pattern binding This case is tricky because the bound identifier can be used in two
distinct scopes. Consider the following example (with do (b, a, (a -> True)) <- bar foo a The identifier |
| ClassTyDecl (Maybe Span) | |
| Decl | Declaration |
| TyVarBind Scope TyVarScope | Type variable |
| RecField RecFieldContext (Maybe Span) | Record field |
| EvidenceVarBind | Constraint/Dictionary evidence variable binding |
Fields
| |
| EvidenceVarUse | Usage of evidence variable |
Instances
| Binary ContextInfo # | |
Defined in GHC.Iface.Ext.Types Methods put_ :: WriteBinHandle -> ContextInfo -> IO () # put :: WriteBinHandle -> ContextInfo -> IO (Bin ContextInfo) # get :: ReadBinHandle -> IO ContextInfo # | |
| Outputable ContextInfo # | |
Defined in GHC.Iface.Ext.Types Methods ppr :: ContextInfo -> SDoc # | |
| Eq ContextInfo # | |
Defined in GHC.Iface.Ext.Types Methods (==) :: ContextInfo -> ContextInfo -> Bool Source # (/=) :: ContextInfo -> ContextInfo -> Bool Source # | |
| Ord ContextInfo # | |
Defined in GHC.Iface.Ext.Types Methods compare :: ContextInfo -> ContextInfo -> Ordering Source # (<) :: ContextInfo -> ContextInfo -> Bool Source # (<=) :: ContextInfo -> ContextInfo -> Bool Source # (>) :: ContextInfo -> ContextInfo -> Bool Source # (>=) :: ContextInfo -> ContextInfo -> Bool Source # max :: ContextInfo -> ContextInfo -> ContextInfo Source # min :: ContextInfo -> ContextInfo -> ContextInfo Source # | |
pprBindSpan :: Maybe Span -> SDoc #
data EvVarSource #
Constructors
| EvPatternBind | bound by a pattern match |
| EvSigBind | bound by a type signature |
| EvWrapperBind | bound by a hswrapper |
| EvImplicitBind | bound by an implicit variable |
| EvInstBind | Bound by some instance of given class |
Fields
| |
| EvLetBind EvBindDeps | A direct let binding |
Instances
| Binary EvVarSource # | |
Defined in GHC.Iface.Ext.Types Methods put_ :: WriteBinHandle -> EvVarSource -> IO () # put :: WriteBinHandle -> EvVarSource -> IO (Bin EvVarSource) # get :: ReadBinHandle -> IO EvVarSource # | |
| Outputable EvVarSource # | |
Defined in GHC.Iface.Ext.Types Methods ppr :: EvVarSource -> SDoc # | |
| Eq EvVarSource # | |
Defined in GHC.Iface.Ext.Types Methods (==) :: EvVarSource -> EvVarSource -> Bool Source # (/=) :: EvVarSource -> EvVarSource -> Bool Source # | |
| Ord EvVarSource # | |
Defined in GHC.Iface.Ext.Types Methods compare :: EvVarSource -> EvVarSource -> Ordering Source # (<) :: EvVarSource -> EvVarSource -> Bool Source # (<=) :: EvVarSource -> EvVarSource -> Bool Source # (>) :: EvVarSource -> EvVarSource -> Bool Source # (>=) :: EvVarSource -> EvVarSource -> Bool Source # max :: EvVarSource -> EvVarSource -> EvVarSource Source # min :: EvVarSource -> EvVarSource -> EvVarSource Source # | |
newtype EvBindDeps #
Eq/Ord instances compare on the converted HieName, as non-exported names may have different uniques after a roundtrip
Constructors
| EvBindDeps | |
Fields
| |
Instances
| Binary EvBindDeps # | |
Defined in GHC.Iface.Ext.Types Methods put_ :: WriteBinHandle -> EvBindDeps -> IO () # put :: WriteBinHandle -> EvBindDeps -> IO (Bin EvBindDeps) # get :: ReadBinHandle -> IO EvBindDeps # | |
| Outputable EvBindDeps # | |
Defined in GHC.Iface.Ext.Types Methods ppr :: EvBindDeps -> SDoc # | |
| Eq EvBindDeps # | |
Defined in GHC.Iface.Ext.Types Methods (==) :: EvBindDeps -> EvBindDeps -> Bool Source # (/=) :: EvBindDeps -> EvBindDeps -> Bool Source # | |
| Ord EvBindDeps # | |
Defined in GHC.Iface.Ext.Types Methods compare :: EvBindDeps -> EvBindDeps -> Ordering Source # (<) :: EvBindDeps -> EvBindDeps -> Bool Source # (<=) :: EvBindDeps -> EvBindDeps -> Bool Source # (>) :: EvBindDeps -> EvBindDeps -> Bool Source # (>=) :: EvBindDeps -> EvBindDeps -> Bool Source # max :: EvBindDeps -> EvBindDeps -> EvBindDeps Source # min :: EvBindDeps -> EvBindDeps -> EvBindDeps Source # | |
Types of imports and exports
Constructors
| Import | |
| ImportAs | |
| ImportHiding | |
| Export |
Instances
| Binary IEType # | |
Defined in GHC.Iface.Ext.Types | |
| Outputable IEType # | |
Defined in GHC.Iface.Ext.Types | |
| Eq IEType # | |
| Ord IEType # | |
| Enum IEType # | |
Defined in GHC.Iface.Ext.Types Methods succ :: IEType -> IEType Source # pred :: IEType -> IEType Source # toEnum :: Int -> IEType Source # fromEnum :: IEType -> Int Source # enumFrom :: IEType -> [IEType] Source # enumFromThen :: IEType -> IEType -> [IEType] Source # enumFromTo :: IEType -> IEType -> [IEType] Source # enumFromThenTo :: IEType -> IEType -> IEType -> [IEType] Source # | |
data RecFieldContext #
Constructors
| RecFieldDecl | |
| RecFieldAssign | |
| RecFieldMatch | |
| RecFieldOcc |
Instances
Constructors
| RegularBind | |
| InstanceBind |
Instances
| Binary BindType # | |
Defined in GHC.Iface.Ext.Types | |
| Outputable BindType # | |
Defined in GHC.Iface.Ext.Types | |
| Eq BindType # | |
| Ord BindType # | |
Defined in GHC.Iface.Ext.Types | |
| Enum BindType # | |
Defined in GHC.Iface.Ext.Types Methods succ :: BindType -> BindType Source # pred :: BindType -> BindType Source # toEnum :: Int -> BindType Source # fromEnum :: BindType -> Int Source # enumFrom :: BindType -> [BindType] Source # enumFromThen :: BindType -> BindType -> [BindType] Source # enumFromTo :: BindType -> BindType -> [BindType] Source # enumFromThenTo :: BindType -> BindType -> BindType -> [BindType] Source # | |
Constructors
| FamDec | type or data family |
| SynDec | type synonym |
| DataDec | data declaration |
| ConDec | constructor declaration |
| PatSynDec | pattern synonym |
| ClassDec | class declaration |
| InstDec | instance declaration |
Instances
| Binary DeclType # | |
Defined in GHC.Iface.Ext.Types | |
| Outputable DeclType # | |
Defined in GHC.Iface.Ext.Types | |
| Eq DeclType # | |
| Ord DeclType # | |
Defined in GHC.Iface.Ext.Types | |
| Enum DeclType # | |
Defined in GHC.Iface.Ext.Types Methods succ :: DeclType -> DeclType Source # pred :: DeclType -> DeclType Source # toEnum :: Int -> DeclType Source # fromEnum :: DeclType -> Int Source # enumFrom :: DeclType -> [DeclType] Source # enumFromThen :: DeclType -> DeclType -> [DeclType] Source # enumFromTo :: DeclType -> DeclType -> [DeclType] Source # enumFromThenTo :: DeclType -> DeclType -> DeclType -> [DeclType] Source # | |
Constructors
| NoScope | |
| LocalScope Span | |
| ModuleScope |
Instances
| Binary Scope # | |
Defined in GHC.Iface.Ext.Types | |
| Outputable Scope # | |
Defined in GHC.Iface.Ext.Types | |
| Eq Scope # | |
| Ord Scope # | |
Defined in GHC.Iface.Ext.Types | |
| Data Scope # | |
Defined in GHC.Iface.Ext.Types Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Scope -> c Scope Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Scope Source # toConstr :: Scope -> Constr Source # dataTypeOf :: Scope -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Scope) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Scope) Source # gmapT :: (forall b. Data b => b -> b) -> Scope -> Scope Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Scope -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Scope -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Scope -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Scope -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Scope -> m Scope Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Scope -> m Scope Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Scope -> m Scope Source # | |
data TyVarScope #
Scope of a type variable.
This warrants a data type apart from Scope because of complexities
introduced by features like -XScopedTypeVariables and -XInstanceSigs. For
example, consider:
foo, bar, baz :: forall a. a -> a
Here a is in scope in all the definitions of foo, bar, and baz, so we
need a list of scopes to keep track of this. Furthermore, this list cannot be
computed until we resolve the binding sites of foo, bar, and baz.
Consequently, a starts with an
which later gets resolved into a UnresolvedScope [foo, bar, baz] NothingResolvedScopes.
Constructors
| ResolvedScopes [Scope] | |
| UnresolvedScope | Unresolved scopes should never show up in the final |
Instances
| Binary TyVarScope # | |
Defined in GHC.Iface.Ext.Types Methods put_ :: WriteBinHandle -> TyVarScope -> IO () # put :: WriteBinHandle -> TyVarScope -> IO (Bin TyVarScope) # get :: ReadBinHandle -> IO TyVarScope # | |
| Outputable TyVarScope # | |
Defined in GHC.Iface.Ext.Types Methods ppr :: TyVarScope -> SDoc # | |
| Eq TyVarScope # | |
Defined in GHC.Iface.Ext.Types Methods (==) :: TyVarScope -> TyVarScope -> Bool Source # (/=) :: TyVarScope -> TyVarScope -> Bool Source # | |
| Ord TyVarScope # | |
Defined in GHC.Iface.Ext.Types Methods compare :: TyVarScope -> TyVarScope -> Ordering Source # (<) :: TyVarScope -> TyVarScope -> Bool Source # (<=) :: TyVarScope -> TyVarScope -> Bool Source # (>) :: TyVarScope -> TyVarScope -> Bool Source # (>=) :: TyVarScope -> TyVarScope -> Bool Source # max :: TyVarScope -> TyVarScope -> TyVarScope Source # min :: TyVarScope -> TyVarScope -> TyVarScope Source # | |
Name's get converted into HieName's before being written into .hie
files. See toHieName and fromHieName for logic on how to convert between
these two types.
Constructors
| ExternalName !Module !OccName !SrcSpan | |
| LocalName !OccName !SrcSpan | |
| KnownKeyName !Unique |
Instances
| Outputable HieName # | |
Defined in GHC.Iface.Ext.Types | |
| Eq HieName # | |
| Ord HieName # | |
Defined in GHC.Iface.Ext.Types | |
hieNameOcc :: HieName -> OccName #
data EntityInfo #
Entity information
EntityInfo is a simplified version of TyThing and richer version than Namespace in OccName.
It state the kind of the entity, such as Variable, TypeVariable, DataConstructor, etc..
Constructors
Instances
idEntityInfo :: Id -> Set EntityInfo #
Get the EntityInfo for an Id
tyThingEntityInfo :: TyThing -> Set EntityInfo #
Get the EntityInfo for a TyThing
nameEntityInfo :: Name -> Set EntityInfo #