Update handling source locations authored by Simon Peyton Jones's avatar Simon Peyton Jones
...@@ -126,13 +126,14 @@ Applications for this include: ...@@ -126,13 +126,14 @@ Applications for this include:
### In GHC ### In GHC
GHC's functions' bodies will mostly **not need to change** (with some exceptions). This refactor pretty much only touches the types. GHC's functions' bodies will mostly **not need to change** (with some exceptions). This refactor pretty much only touches the types.
Some of GHC's functions used `unLoc :: Located a -> a`, but were polymorphic in the pass before: For example:
```diff ```diff
-isForeignImport :: LForeignDecl pass -> Bool -isForeignImport :: LForeignDecl pass -> Bool
+isForeignImport :: LForeignDecl (GhcPass p) -> Bool +isForeignImport :: LForeignDecl (GhcPass p) -> Bool
isForeignImport (L _ (ForeignImport {})) = True isForeignImport (L _ (ForeignImport {})) = True
isForeignImport _ = False isForeignImport _ = False
``` ```
This function uses locations (the pattern match on `L`), so it is GHC-specific, and this fact is now reflected in its type `LForeignDecl (GhcPass p) -> Bool`.
And lastly, some instance declarations that used `TypeSynonymInstances` now need to be expanded, now that we're using type families inside those type synonyms. And lastly, some instance declarations that used `TypeSynonymInstances` now need to be expanded, now that we're using type families inside those type synonyms.
... ...
......