ghc-9.10.0.20240426: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Driver.Pipeline.Monad

Description

The TPipelineClass and MonadUse classes and associated types

Synopsis

Documentation

type TPipelineClass (f :: Type -> Type) (m :: Type -> Type) = (Functor m, MonadIO m, Applicative m, Monad m, MonadUse f m) Source #

class MonadUse (f :: k -> Type) (m :: k -> Type) where Source #

Lift a f action into an m action.

Methods

use :: forall (a :: k). f a -> m a Source #

Instances

Instances details
MonadUse TPhase HookedUse Source # 
Instance details

Defined in GHC.Driver.Pipeline.Execute

Methods

use :: TPhase a -> HookedUse a Source #

data PipeEnv Source #

Constructors

PipeEnv 

Fields

data PipelineOutput Source #

Constructors

Temporary TempFileLifetime

Output should be to a temporary file: we're going to run more compilation steps on this output later.

Persistent

We want a persistent file, i.e. a file in the current directory derived from the input filename, but with the appropriate extension. eg. in "ghc -c Foo.hs" the output goes into ./Foo.o.

SpecificFile

The output must go into the specific outputFile in DynFlags. We don't store the filename in the constructor as it changes when doing -dynamic-too.

NoOutputFile

No output should be created, like in Interpreter or NoBackend.

Instances

Instances details
Show PipelineOutput Source # 
Instance details

Defined in GHC.Driver.Pipeline.Monad