ghc-8.6.1: The GHC API

Safe HaskellNone
LanguageHaskell2010

Plugins

Synopsis

Documentation

data Plugin Source #

Plugin is the compiler plugin data type. Try to avoid constructing one of these directly, and just modify some fields of defaultPlugin instead: this is to try and preserve source-code compatibility when we add fields to this.

Nonetheless, this API is preliminary and highly likely to change in the future.

Constructors

Plugin 

Fields

type CommandLineOption = String Source #

Command line options gathered from the -PModule.Name:stuff syntax are given to you as this type

data LoadedPlugin Source #

A plugin with its arguments. The result of loading the plugin.

Constructors

LoadedPlugin 

Fields

defaultPlugin :: Plugin Source #

Default plugin: does nothing at all! For compatibility reasons you should base all your plugin definitions on this default value.

keepRenamedSource :: [CommandLineOption] -> TcGblEnv -> HsGroup GhcRn -> TcM (TcGblEnv, HsGroup GhcRn) Source #

A renamer plugin which mades the renamed source available in a typechecker plugin.

withPlugins :: Monad m => DynFlags -> PluginOperation m a -> a -> m a Source #

Perform an operation by using all of the plugins in turn.

withPlugins_ :: Monad m => DynFlags -> ConstPluginOperation m a -> a -> m () Source #

Perform a constant operation by using all of the plugins in turn.