StarIsType authored by Ryan Scott's avatar Ryan Scott
......@@ -7,6 +7,21 @@ This guide summarises the changes you may need to make to your code to migrate f
## Compiler changes
### `StarIsType`
As part of the [ this GHC proposal](https://github.com/ghc-proposals/ghc-proposals/blob/05721788de9ab6538def68c3c2c9dec50c9f24a8/proposals/0020-no-type-in-type.rst), a new `StarIsType` extension was introduced, which instructs GHC to treat `*` as a synonym for `Type` (from `Data.Kind`) instead of a binary type operator. To provide a migration path for code that uses `*` as a type operator, the `TypeOperators` extension implies `NoStarIsType` in GHC 8.6.
As a result, any code that simultaneously enables `TypeOperators` and uses `*` as a `Type` synonym will not compile in 8.6. There are two ways to adapt to this change:
1. Replace uses of `*` with `Type`. (This is backwards compatible back to GHC 8.0, when `Type` was introduced.)
1. Add the following CPP to the top of the module, after enabling `TypeOperators`:
```
#if __GLASGOW_HASKELL__ >=805{-# LANGUAGE StarIsType #-}#endif
```
### Constructor-less GADTs now require `GADTSyntax`
......
......