haskell-tools-ast-0.4.0.0: Haskell AST for efficient tooling

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.SemaInfoClasses

Contents

Synopsis

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

Minimal complete definition

semanticsName

Methods

semanticsName :: si -> Maybe Name Source #

Instances

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

Minimal complete definition

semanticsId

Methods

semanticsId :: si -> Id Source #

Instances

HasIdInfo' CNameInfo Source # 
HasIdInfo dom => HasIdInfo' (Ann UQualifiedName dom st) Source # 

Methods

semanticsId :: Ann UQualifiedName dom st -> Id 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

Minimal complete definition

semanticsFixity

Instances

HasFixityInfo' CNameInfo Source # 
HasFixityInfo dom => HasFixityInfo' (Ann UQualifiedName dom st) Source # 

Methods

semanticsFixity :: Ann UQualifiedName dom st -> Maybe Fixity 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

Minimal complete definition

semanticsScope

Methods

semanticsScope :: si -> Scope Source #

Instances

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

Minimal complete definition

semanticsDefining

Methods

semanticsDefining :: si -> Bool Source #

Information about source info in sema

Information about modules

type HasModuleInfo dom = (Domain dom, HasModuleInfo' (SemanticInfo dom UModule)) Source #

Information about imports

type HasImportInfo dom = (Domain dom, HasImportInfo' (SemanticInfo dom UImportDecl)) Source #

Information about implicitely bounded fields

class HasImplicitFieldsInfo' si where Source #

Minimal complete definition

semanticsImplicitFlds

Methods

semanticsImplicitFlds :: si -> [(Name, Name)] Source #

AST elements with no information