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