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

Safe HaskellNone
LanguageHaskell98

DDC.Core.Transform.Lambdas

Synopsis

Documentation

lambdasModule :: (Show a, Pretty a, Show n, Pretty n, Ord n, CompoundName n) => Profile n -> Module a n -> S (Module a n) Source #

Perform lambda lifting in a module.

evalState :: String -> S a -> a Source #

Evaluate a desguaring computation, using the given prefix for freshly introduced variables.

newVar Source #

Arguments

:: CompoundName n 
=> String

Informational name to add.

-> Type n

Type of the new binder.

-> S (Bind n, Bound n) 

Allocate a new named variable, yielding its associated bind and bound.