... | ... | @@ -254,16 +254,7 @@ GHC 8.8 implements the final phase of the `MonadFail` proposal and now does the |
|
|
* `MonadFail(..)` is now exported from the `Prelude` and `Control.Monad` modules.
|
|
|
* The `MonadFailDesugaring` language extension is now deprecated, as its effects are always enabled.
|
|
|
|
|
|
As a consequence, you are likely to see breakage when upgrading to GHC 8.8 in the following scenarios:
|
|
|
|
|
|
1. You have a `Monad` instance that explicitly defines `fail`.
|
|
|
2. You have code that uses a `Monad` constraint to invoke `fail`:
|
|
|
|
|
|
```hs
|
|
|
failIfFalse :: Monad m => Bool -> m ()
|
|
|
failIfFalse True = return True
|
|
|
failIfFalse False = fail "It's False"
|
|
|
```
|
|
|
See [here](https://gitlab.haskell.org/ghc/ghc/wikis/proposal/monad-fail#adapting-old-code) for how to migrate your code.
|
|
|
|
|
|
### `template-haskell-2.15.0.0`
|
|
|
|
... | ... | |