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

Safe HaskellSafe
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

(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.