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

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.FromGHC.GHCUtils

Description

Utility functions defined on the GHC AST representation.

Synopsis

Documentation

class OutputableBndr name => GHCName name where #

Methods

rdrName :: name -> RdrName #

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

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

nameFromId :: Id -> name #

unpackPostRn :: RdrName -> PostRn name name -> name #

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

occName :: GHCName n => n -> OccName #

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

Loading ids for top-level ghc names

class HsHasName a where #

Get names from the GHC AST

Minimal complete definition

hsGetNames

Methods

hsGetNames :: a -> [Name] #

Instances

HsHasName RdrName # 

Methods

hsGetNames :: RdrName -> [Name] #

HsHasName Id # 

Methods

hsGetNames :: Id -> [Name] #

HsHasName Name # 

Methods

hsGetNames :: Name -> [Name] #

HsHasName e => HsHasName [e] # 

Methods

hsGetNames :: [e] -> [Name] #

(GHCName n, HsHasName n) => HsHasName (HsDecl n) # 

Methods

hsGetNames :: HsDecl n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (HsGroup n) # 

Methods

hsGetNames :: HsGroup n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (TyClDecl n) # 

Methods

hsGetNames :: TyClDecl n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (TyClGroup n) # 

Methods

hsGetNames :: TyClGroup n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (HsDataDefn n) # 

Methods

hsGetNames :: HsDataDefn n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (ConDecl n) # 

Methods

hsGetNames :: ConDecl n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (HsConDeclDetails n) # 
(GHCName n, HsHasName n) => HsHasName (DataFamInstDecl n) # 

Methods

hsGetNames :: DataFamInstDecl n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (InstDecl n) # 

Methods

hsGetNames :: InstDecl n -> [Name] #

HsHasName n => HsHasName (ForeignDecl n) # 

Methods

hsGetNames :: ForeignDecl n -> [Name] #

HsHasName n => HsHasName (HsLocalBinds n) # 

Methods

hsGetNames :: HsLocalBinds n -> [Name] #

HsHasName n => HsHasName (HsValBinds n) # 

Methods

hsGetNames :: HsValBinds n -> [Name] #

HsHasName n => HsHasName (HsBind n) # 

Methods

hsGetNames :: HsBind n -> [Name] #

HsHasName n => HsHasName (Sig n) # 

Methods

hsGetNames :: Sig n -> [Name] #

HsHasName n => HsHasName (HsTyVarBndr n) # 

Methods

hsGetNames :: HsTyVarBndr n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (ConDeclField n) # 

Methods

hsGetNames :: ConDeclField n -> [Name] #

(GHCName n, HsHasName n) => HsHasName (FieldOcc n) # 

Methods

hsGetNames :: FieldOcc n -> [Name] #

HsHasName n => HsHasName (Pat n) # 

Methods

hsGetNames :: Pat n -> [Name] #

HsHasName n => HsHasName (Bag n) # 

Methods

hsGetNames :: Bag n -> [Name] #

HsHasName e => HsHasName (Located e) # 

Methods

hsGetNames :: Located e -> [Name] #

HsHasName n => HsHasName (Stmt n b) # 

Methods

hsGetNames :: Stmt n b -> [Name] #

HsHasName n => HsHasName (ParStmtBlock l n) # 

Methods

hsGetNames :: ParStmtBlock l n -> [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. OutputableBndr 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.