Changes from #14710 authored by Ryan Scott's avatar Ryan Scott
......@@ -7,6 +7,30 @@ This guide summarises the changes you may need to make to your code to migrate f
## Compiler changes
### `PolyKinds` and `TypeInType` are pickier
GHC is now more diligent about catching illegal uses of kind polymorphism that snuck into recent GHC releases. For instance, this used to be accepted without `PolyKinds`:
```
classC a where
c ::Proxy(x :: a)
```
Despite the fact that `a` is used as a kind variable in the type signature for `c`. This is now an error unless `PolyKinds` is explicitly enabled.
Moreover, GHC 8.4 would accept the following without the use of `TypeInType` (or even `PolyKinds`!):
```
f:: forall k (a :: k).Proxy a
f=Proxy
```
Despite the fact that `k` is used as both a type and kind variable. This is now an error unless `TypeInType` is explicitly enabled.
---
## Library changes
......
......