...  ...  @@ 10,7 +10,7 @@ This guide summarises the changes you may need to make to your code to migrate f 


### `StarIsType`









As part of [ this GHC proposal](https://github.com/ghcproposals/ghcproposals/blob/05721788de9ab6538def68c3c2c9dec50c9f24a8/proposals/0020notypeintype.rst) (as amended by [ this GHC proposal](https://github.com/ghcproposals/ghcproposals/pull/146)), 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.



As part of [this GHC proposal](https://github.com/ghcproposals/ghcproposals/blob/05721788de9ab6538def68c3c2c9dec50c9f24a8/proposals/0020notypeintype.rst) (as amended by [this GHC proposal](https://github.com/ghcproposals/ghcproposals/pull/146)), 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.






`StarIsType` is enabled by default, and one consequence of this is that GHC will interpret any use of `*` as `Type`, even if it would have been previously interpreted as a binary type operator. A notable example of such a binary type operator is `GHC.TypeLits.*`, so code like:




...  ...  @@ 33,7 +33,7 @@ Will not typecheck if `StarIsType` is enabled, since `m * n` is treated as if on 


### `MonadFailDesugaring` by default









GHC now enables the `MonadFailDesugaring` extension by default, as discussed in [ https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail\#Transitionalstrategy](https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail#Transitionalstrategy). This means that code that uses partial pattern matches in `do`notation, such as this:



GHC now enables the `MonadFailDesugaring` extension by default, as discussed in [https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail\#Transitionalstrategy](https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail#Transitionalstrategy). This means that code that uses partial pattern matches in `do`notation, such as this:






```



f::[[a]]>[a]f l =do(_:xs)< l

...  ...  @@ 51,7 +51,7 @@ f::[[a]]>[a]f l =case l of(_:xs)> xs 


```









Depending on the code, it is possible that this change will result in breakage. See [ https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail\#Adaptingoldcode](https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail#Adaptingoldcode) for ways to adapt to breakage.



Depending on the code, it is possible that this change will result in breakage. See [https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail\#Adaptingoldcode](https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail#Adaptingoldcode) for ways to adapt to breakage.






### Constructorless GADTs now require `GADTSyntax`




...  ...  