Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.Haskell.Tools.AST.SemaInfoClasses
Contents
- type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom UQualifiedName))
- class HasNameInfo' si where
- type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom UQualifiedName))
- class HasNameInfo' si => HasIdInfo' si where
- type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom UQualifiedName))
- class HasFixityInfo' si where
- type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom UQualifiedName), HasScopeInfo' (SemanticInfo dom UExpr))
- class HasScopeInfo' si where
- type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom UQualifiedName))
- class HasDefiningInfo' si where
- class HasSourceInfoInSema' si where
- type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom UModule))
- class HasModuleInfo' si where
- type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom UImportDecl))
- class HasImportInfo' si where
- type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom UFieldWildcard))
- class HasImplicitFieldsInfo' si where
- type HasNoSemanticInfo dom si = SemanticInfo dom si ~ NoSemanticInfo
- data UsageSpec = UsageSpec {}
Information about names
type HasNameInfo dom = (Domain dom, HasNameInfo' (SemanticInfo dom UQualifiedName)) #
Domains that have semantic information for names
class HasNameInfo' si where #
Infos that may have a name that can be extracted
Minimal complete definition
Methods
semanticsName :: si -> Maybe Name #
Instances
HasNameInfo' CNameInfo # | |
HasNameInfo' (NameInfo Name) # | |
HasNameInfo dom => HasNameInfo' (Ann UQualifiedName dom st) # | |
Information about typed names
type HasIdInfo dom = (Domain dom, HasIdInfo' (SemanticInfo dom UQualifiedName)) #
class HasNameInfo' si => HasIdInfo' si where #
Infos that may have a typed name that can be extracted
Minimal complete definition
Methods
semanticsId :: si -> Id #
Instances
HasIdInfo' CNameInfo # | |
HasIdInfo dom => HasIdInfo' (Ann UQualifiedName dom st) # | |
Fixity information
type HasFixityInfo dom = (Domain dom, HasFixityInfo' (SemanticInfo dom UQualifiedName)) #
class HasFixityInfo' si where #
Infos that may have a fixity information
Minimal complete definition
Methods
semanticsFixity :: si -> Maybe Fixity #
Instances
HasFixityInfo' CNameInfo # | |
HasFixityInfo dom => HasFixityInfo' (Ann UQualifiedName dom st) # | |
Scope information
type HasScopeInfo dom = (Domain dom, HasScopeInfo' (SemanticInfo dom UQualifiedName), HasScopeInfo' (SemanticInfo dom UExpr)) #
class HasScopeInfo' si where #
Infos that contain the names that are available in theirs scope
Minimal complete definition
Methods
semanticsScope :: si -> Scope #
Instances
HasScopeInfo' CNameInfo # | |
HasScopeInfo' ScopeInfo # | |
HasScopeInfo' (NameInfo n) # | |
HasScopeInfo dom => HasScopeInfo' (Ann UQualifiedName dom st) # | |
HasScopeInfo dom => HasScopeInfo' (Ann UExpr dom st) # | |
Information about names being defined
type HasDefiningInfo dom = (Domain dom, HasDefiningInfo' (SemanticInfo dom UQualifiedName)) #
class HasDefiningInfo' si where #
Infos that store if they were used to define a name
Minimal complete definition
Methods
semanticsDefining :: si -> Bool #
Instances
HasDefiningInfo' CNameInfo # | |
HasDefiningInfo' (NameInfo n) # | |
HasDefiningInfo dom => HasDefiningInfo' (Ann UQualifiedName dom st) # | |
Information about source info in sema
class HasSourceInfoInSema' si where #
Minimal complete definition
Methods
semanticsSourceInfo :: si -> Maybe SrcSpan #
Instances
Information about modules
type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom UModule)) #
class HasModuleInfo' si where #
Minimal complete definition
semanticsModule, semanticsDynFlags, isBootModule, semanticsImplicitImports, semanticsPrelOrphanInsts, semanticsPrelFamInsts
Methods
semanticsModule :: si -> Module #
semanticsDynFlags :: si -> DynFlags #
isBootModule :: si -> Bool #
semanticsImplicitImports :: si -> [Name] #
semanticsPrelOrphanInsts :: si -> [ClsInst] #
semanticsPrelFamInsts :: si -> [FamInst] #
Instances
HasModuleInfo' (ModuleInfo Id) # | |
HasModuleInfo' (ModuleInfo Name) # | |
HasModuleInfo dom => HasModuleInfo' (Ann UModule dom st) # | |
Information about imports
type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom UImportDecl)) #
class HasImportInfo' si where #
Minimal complete definition
semanticsImportedModule, semanticsAvailable, semanticsImported, semanticsOrphanInsts, semanticsFamInsts
Methods
semanticsImportedModule :: si -> Module #
semanticsAvailable :: si -> [Name] #
semanticsImported :: si -> [Name] #
semanticsOrphanInsts :: si -> [ClsInst] #
semanticsFamInsts :: si -> [FamInst] #
Instances
HasImportInfo' (ImportInfo Id) # | |
HasImportInfo' (ImportInfo Name) # | |
HasImportInfo dom => HasImportInfo' (Ann UImportDecl dom st) # | |
Information about implicitly bounded fields
type HasImplicitFieldsInfo dom = (Domain dom, HasImplicitFieldsInfo' (SemanticInfo dom UFieldWildcard)) #
class HasImplicitFieldsInfo' si where #
Minimal complete definition
Methods
semanticsImplicitFlds :: si -> [(Name, Name)] #
Instances
AST elements with no information
type HasNoSemanticInfo dom si = SemanticInfo dom si ~ NoSemanticInfo #