Matthew Pickering - Explicit Level Imports

Collaborators: Rodrigo Mesquita, Adam Gundry Explicit Level Imports is an extension to GHC which allows a programmer to be more precise about which dependencies are needed for Template Haskell. In a module, each import is annotated with which level it will be needed at, some modules will be needed for use in splices, some in quotes and some in normal contexts. This precision means it is straightforward for the compiler to work out what is exactly needed at each stage, and only provide that. The result is faster compilation times and the potential for improved cross-compilation support. In this talk we will explain the design of the extension, the implementation and finally reflect on future directions the extension makes possible.