ddc-core-simpl-0.4.2.1: Disciplined Disciple Compiler code transformations.

Safe HaskellNone
LanguageHaskell98

DDC.Core.Simplifier.Result

Synopsis

Documentation

data TransformResult r Source

Package up the result of applying a single transform.

Constructors

TransformResult 

Fields

result :: r

Transform result proper (eg the new module)

resultProgress :: Bool

Whether this transform made any progess.

If False then the result program must be the same as the input program, and a simplifer fixpoint won't apply this transform again to the result program.

resultAgain :: Bool

Whether it might help to run the same transform again.

If False then a simplifier fixpoint won't apply this transform again to the result program.

resultInfo :: TransformInfo

Transform specific log. This might contain a count of what rules fired, or information about what parts of the program couldn't be processed.

data TransformInfo Source

Existential package for a typeable thing, used in TransformResult.

Constructors

forall i . (Typeable i, Pretty i) => TransformInfo i 

data NoInformation Source

Place-holder type to use when there is no real TransformResult.

resultDone :: String -> r -> TransformResult r Source

Create a default result with no transform again.

We'll say we made progress, but set resultAgain to False so to stop any simplifier fixpoints.