haskell-tools-backend-ghc-1.1.0.2: Creating the Haskell-Tools AST from GHC's representations

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.BackendGHC.GHCUtils

Description

Utility functions defined on the GHC AST representation.

Synopsis

Documentation

class OutputableBndrId name => GHCName name where #

Methods

rdrName :: IdP name -> RdrName #

getFromNameUsing :: Applicative f => (Name -> Ghc (f Id)) -> Name -> Ghc (f (IdP name)) #

getBindsAndSigs :: HsValBinds name -> ([LSig name], LHsBinds name) #

nameFromId :: Id -> IdP name #

unpackPostRn :: RdrName -> PostRn name (IdP name) -> IdP name #

gunpackPostRn :: a -> (IdP name -> a) -> PostRn name (IdP name) -> a #

occName :: forall n. GHCName n => IdP n -> OccName #

getFieldOccName :: forall n. GHCName n => Located (FieldOcc n) -> Located (IdP n) #

getFieldOccName' :: forall n. GHCName n => FieldOcc n -> IdP n #

getTopLevelId :: Name -> Ghc (Maybe Id) #

Loading ids for top-level ghc names

hsGetNames' :: HsHasName a => a -> [Name] #

class HsHasName a where #

Get names from the GHC AST

Minimal complete definition

hsGetNames

Methods

hsGetNames :: Maybe Name -> a -> [(Name, Maybe Name)] #

Instances
HsHasName Id # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Id -> [(Name, Maybe Name)] #

HsHasName RdrName # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> RdrName -> [(Name, Maybe Name)] #

HsHasName Name # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Name -> [(Name, Maybe Name)] #

HsHasName e => HsHasName [e] # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> [e] -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (HsDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsDecl n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (HsGroup n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsGroup n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (TyClDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> TyClDecl n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (TyClGroup n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> TyClGroup n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (FamilyDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> FamilyDecl n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (HsDataDefn n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsDataDefn n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (ConDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> ConDecl n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (HsConDeclDetails n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

(GHCName n, HsHasName (IdP n)) => HsHasName (DataFamInstDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

(GHCName n, HsHasName (IdP n)) => HsHasName (InstDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> InstDecl n -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (ForeignDecl n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> ForeignDecl n -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (HsLocalBinds n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsLocalBinds n -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (HsValBinds n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsValBinds n -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (HsBind n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsBind n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (Sig n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Sig n -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (HsTyVarBndr n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> HsTyVarBndr n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (ConDeclField n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> ConDeclField n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n)) => HsHasName (FieldOcc n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> FieldOcc n -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (Pat n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Pat n -> [(Name, Maybe Name)] #

HsHasName n => HsHasName (Bag n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Bag n -> [(Name, Maybe Name)] #

HsHasName e => HsHasName (Located e) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Located e -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (Match n b) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Match n b -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (Stmt n b) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> Stmt n b -> [(Name, Maybe Name)] #

HsHasName (IdP n) => HsHasName (ParStmtBlock l n) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> ParStmtBlock l n -> [(Name, Maybe Name)] #

(GHCName n, HsHasName (IdP n), HsHasName r) => HsHasName (FamEqn n p r) # 
Instance details

Defined in Language.Haskell.Tools.BackendGHC.GHCUtils

Methods

hsGetNames :: Maybe Name -> FamEqn n p r -> [(Name, Maybe Name)] #

rdrNameStr :: RdrName -> String #

Get the original form of a name

class FromGHCName n where #

Minimal complete definition

fromGHCName

Methods

fromGHCName :: Name -> n #

cleanHsType :: forall n. (OutputableBndrId n, SourceTextX n) => HsType n -> HsType n #

Tries to simplify the type that has HsAppsTy before renaming. Does not always provide the correct form. Treats each operator as if they are of equivalent precedence and always left-associative.