Spurious recompilation in GHCi due to incorrect pruning logic
The pruneCache
function assumes that the list of CachedInfo
all have unique ModuleName
, this is not true:
- In normal compilation, the same module name can appear for a file and it's boot file.
- In multiple home unit compilation the same ModuleName can appear in different units
The fix is to use a NodeKey
as the actual key for the interfaces which includes ModuleName
, IsBoot
and UnitId
.