ghc-lib-parser-9.10.1.20250103: The GHC API, decoupled from GHC versions
Safe HaskellIgnore
LanguageGHC2021

GHC.Driver.Hooks

Synopsis

Documentation

data Hooks #

class HasHooks (m :: Type -> Type) where #

Methods

getHooks :: m Hooks #

Instances

Instances details
ContainsHooks env => HasHooks (IOEnv env) # 
Instance details

Defined in GHC.Data.IOEnv

Methods

getHooks :: IOEnv env Hooks #

class ContainsHooks a where #

Methods

extractHooks :: a -> Hooks #

Instances

Instances details
ContainsHooks (Env gbl lcl) # 
Instance details

Defined in GHC.Tc.Types

Methods

extractHooks :: Env gbl lcl -> Hooks #

emptyHooks :: Hooks #

Hooks can be used by GHC API clients to replace parts of the compiler pipeline. If a hook is not installed, GHC uses the default built-in behaviour

type family DsForeignsHook #

dsForeignsHook :: Hooks -> Maybe DsForeignsHook #

Actual type: Maybe ([LForeignDecl GhcTc] -> DsM (ForeignStubs, OrdList (Id, CoreExpr)))

cmmToRawCmmHook :: Hooks -> forall a. Maybe (DynFlags -> Maybe Module -> Stream IO CmmGroupSRTs a -> IO (Stream IO RawCmmGroup a)) #

Deprecated: cmmToRawCmmHook is being deprecated. If you do use it in your project, please raise a GHC issue!