Fat Interface Files
This is a new ticket which is related to #10871, the motivation is different here.
A "fat" interface file is a file which stores the core program at the end of simplification. The file can be read and deserialised so that compilation can resume from this point and the core can be translated into STG and hence Bytecode.
We are motivated for two reasons
- Faster GHCi startup time when using bytecode interpreter. You no longer have to typecheck and simplify every module every time you start GHCi.
- If you can interpret everything (even package modules) makes TH evaluation much more resilient to ABI changes.
(Secret reason 3), if we distribute these files for all dependencies then you can generate code which passes types at runtime (as needed for a good implementation of typed template haskell)
A draft MR is in !7502