Skip to content

WIP: Add `topLevelNames`, `importedNames`, and `localNames` to Template Haskell; record module exports in `ModuleInfo` when reifying

Winston Hartnett requested to merge WinstonHartnett/ghc:add-9699 into master

Closes #9699 and #10391.

  • Adds three methods to Quasi
    • topLevelNames: Returns top-level names bound in the current module. Splices that introduce subsequent top-level names are not included.
    • importedNames: Returns names in scope bound outside this module.
    • localNames: Returns local bindings (e.g. let, where, lambda, and case).
  • Adds field to ModuleInfo containing module exports when used with reifyModule

user-facing

Merge request reports