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

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.SemaInfoTypes

Synopsis

Documentation

type Scope = [[Name]] Source #

data NoSemanticInfo Source #

Semantic info type for any node not carrying additional semantic information

Constructors

NoSemanticInfo 

Instances

Eq NoSemanticInfo Source # 
Data NoSemanticInfo Source # 

Methods

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

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

toConstr :: NoSemanticInfo -> Constr #

dataTypeOf :: NoSemanticInfo -> DataType #

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

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

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

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

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

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

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

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

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

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

Show NoSemanticInfo Source # 

data ScopeInfo Source #

Info for expressions that tells which definitions are in scope

Constructors

ScopeInfo 

Instances

Eq ScopeInfo Source # 
Data ScopeInfo Source # 

Methods

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

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

toConstr :: ScopeInfo -> Constr #

dataTypeOf :: ScopeInfo -> DataType #

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

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

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

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

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

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

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

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

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

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

Show ScopeInfo Source # 
HasScopeInfo' ScopeInfo Source # 

data NameInfo n Source #

Info corresponding to a name

Instances

Eq n => Eq (NameInfo n) Source # 

Methods

(==) :: NameInfo n -> NameInfo n -> Bool #

(/=) :: NameInfo n -> NameInfo n -> Bool #

Data n => Data (NameInfo n) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameInfo n -> c (NameInfo n) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NameInfo n) #

toConstr :: NameInfo n -> Constr #

dataTypeOf :: NameInfo n -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> NameInfo n -> NameInfo n #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameInfo n -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameInfo n -> r #

gmapQ :: (forall d. Data d => d -> u) -> NameInfo n -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NameInfo n -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameInfo n -> m (NameInfo n) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameInfo n -> m (NameInfo n) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameInfo n -> m (NameInfo n) #

Outputable n => Show (NameInfo n) Source # 

Methods

showsPrec :: Int -> NameInfo n -> ShowS #

show :: NameInfo n -> String #

showList :: [NameInfo n] -> ShowS #

HasDefiningInfo' (NameInfo n) Source # 
HasScopeInfo' (NameInfo n) Source # 
HasNameInfo' (NameInfo Name) Source # 

data CNameInfo Source #

Info corresponding to a name that is correctly identified

Instances

Eq CNameInfo Source # 
Data CNameInfo Source # 

Methods

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

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

toConstr :: CNameInfo -> Constr #

dataTypeOf :: CNameInfo -> DataType #

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

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

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

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

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

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

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

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

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

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

Show CNameInfo Source # 
HasDefiningInfo' CNameInfo Source # 
HasScopeInfo' CNameInfo Source # 
HasFixityInfo' CNameInfo Source # 
HasIdInfo' CNameInfo Source # 
HasNameInfo' CNameInfo Source # 

data ModuleInfo n Source #

Info for the module element

Constructors

ModuleInfo 

Fields

Instances

Eq n => Eq (ModuleInfo n) Source # 

Methods

(==) :: ModuleInfo n -> ModuleInfo n -> Bool #

(/=) :: ModuleInfo n -> ModuleInfo n -> Bool #

Data n => Data (ModuleInfo n) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleInfo n -> c (ModuleInfo n) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ModuleInfo n) #

toConstr :: ModuleInfo n -> Constr #

dataTypeOf :: ModuleInfo n -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> ModuleInfo n -> ModuleInfo n #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleInfo n -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleInfo n -> r #

gmapQ :: (forall d. Data d => d -> u) -> ModuleInfo n -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleInfo n -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleInfo n -> m (ModuleInfo n) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleInfo n -> m (ModuleInfo n) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleInfo n -> m (ModuleInfo n) #

Outputable n => Show (ModuleInfo n) Source # 
HasModuleInfo' (ModuleInfo Id) Source # 
HasModuleInfo' (ModuleInfo Name) Source # 

data ImportInfo n Source #

Info corresponding to an import declaration

Constructors

ImportInfo 

Fields

Instances

Eq n => Eq (ImportInfo n) Source # 

Methods

(==) :: ImportInfo n -> ImportInfo n -> Bool #

(/=) :: ImportInfo n -> ImportInfo n -> Bool #

Data n => Data (ImportInfo n) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ImportInfo n -> c (ImportInfo n) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ImportInfo n) #

toConstr :: ImportInfo n -> Constr #

dataTypeOf :: ImportInfo n -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> ImportInfo n -> ImportInfo n #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ImportInfo n -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ImportInfo n -> r #

gmapQ :: (forall d. Data d => d -> u) -> ImportInfo n -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ImportInfo n -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ImportInfo n -> m (ImportInfo n) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportInfo n -> m (ImportInfo n) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ImportInfo n -> m (ImportInfo n) #

Outputable n => Show (ImportInfo n) Source # 
HasImportInfo' (ImportInfo Id) Source # 
HasImportInfo' (ImportInfo Name) Source # 

data ImplicitFieldInfo Source #

Info corresponding to an record-wildcard

Constructors

ImplicitFieldInfo 

Fields

Instances

Eq ImplicitFieldInfo Source # 
Data ImplicitFieldInfo Source # 

Methods

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

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

toConstr :: ImplicitFieldInfo -> Constr #

dataTypeOf :: ImplicitFieldInfo -> DataType #

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

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

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

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

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

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

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

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

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

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

Show ImplicitFieldInfo Source # 
HasImplicitFieldsInfo' ImplicitFieldInfo Source # 

nameInfo :: forall n n'. Partial (NameInfo n) (NameInfo n') n n' Source #

implicitNames :: forall n n'. Lens (ModuleInfo n) (ModuleInfo n') [n] [n'] Source #

importedNames :: forall n. Lens (ImportInfo n) (ImportInfo n) [n] [n] Source #

availableNames :: forall n. Lens (ImportInfo n) (ImportInfo n) [n] [n] Source #

data NodeInfo sema src Source #

Semantic and source code related information for an AST node.

Constructors

NodeInfo 

Fields

Instances

(Eq sema, Eq src) => Eq (NodeInfo sema src) Source # 

Methods

(==) :: NodeInfo sema src -> NodeInfo sema src -> Bool #

(/=) :: NodeInfo sema src -> NodeInfo sema src -> Bool #

(Data sema, Data src) => Data (NodeInfo sema src) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NodeInfo sema src -> c (NodeInfo sema src) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NodeInfo sema src) #

toConstr :: NodeInfo sema src -> Constr #

dataTypeOf :: NodeInfo sema src -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (NodeInfo sema src)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (NodeInfo sema src)) #

gmapT :: (forall b. Data b => b -> b) -> NodeInfo sema src -> NodeInfo sema src #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NodeInfo sema src -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NodeInfo sema src -> r #

gmapQ :: (forall d. Data d => d -> u) -> NodeInfo sema src -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NodeInfo sema src -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NodeInfo sema src -> m (NodeInfo sema src) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NodeInfo sema src -> m (NodeInfo sema src) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NodeInfo sema src -> m (NodeInfo sema src) #

(Show sema, Show src) => Show (NodeInfo sema src) Source # 

Methods

showsPrec :: Int -> NodeInfo sema src -> ShowS #

show :: NodeInfo sema src -> String #

showList :: [NodeInfo sema src] -> ShowS #

sourceInfo :: forall sema src src'. Lens (NodeInfo sema src) (NodeInfo sema src') src src' Source #

semanticInfo :: forall sema src sema'. Lens (NodeInfo sema src) (NodeInfo sema' src) sema sema' Source #