... | ... | @@ -258,6 +258,24 @@ f = [] |
|
|
|
|
|
## Library changes
|
|
|
|
|
|
### `base-4.13.0.0`
|
|
|
|
|
|
GHC 8.8 implements the final phase of the `MonadFail` proposal and now does the following:
|
|
|
|
|
|
* The `fail` method of `Monad` has been removed in favor of the method of the same name in the `MonadFail` class.
|
|
|
* `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"
|
|
|
```
|
|
|
|
|
|
### `template-haskell-2.15.0.0`
|
|
|
|
... | ... | |