liftM package:ghc

The analysis monad consists of the following RWST components:
  • Env: Reader-like context. Contains a substitution, info about how how lifted identifiers are to be expanded into applications and configuration options.
  • OrdList FloatLang: Writer output for the resulting STG program.
  • No pure state component
  • But wrapping around UniqSM for generating fresh lifted binders. (The uniqAway approach could give the same name to two different lifted binders, so this is necessary.)