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

### `StarIsType`


### `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:


`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 
...  @@ 33,7 +33,7 @@ Will not typecheck if `StarIsType` is enabled, since `m * n` is treated as if on 

### `MonadFailDesugaring` by default


### `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


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

...  @@ 51,7 +51,7 @@ f::[[a]]>[a]f l =case l of(_:xs)> xs 
...  @@ 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`


### Constructorless GADTs now require `GADTSyntax`





...   ...  