Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #128 from haskell/release/mtl-2.3.1
mtl-2.3.1 release prep
- Loading branch information
Showing
3 changed files
with
48 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# Migrating to `mtl-2.3.x` | ||
|
||
In `mtl-2.3.x`, [re-exports were removed](https://github.com/haskell/mtl/pull/108) from the library in order to achieve PVP compliance, as well as disentangle some historical warts in its design. This was a breaking change that maintainers decided was in the `mtl`'s best interest due to the re-exports overlapping with `base`, as well as generally being confusing and outdated for modern GHC versions. While all changes were detailed in the changelog, navigating the removal of re-exports can be tricky. Below is a detailed review of what needs to be done to use the new `mtl`. | ||
|
||
## Removed re-exports | ||
|
||
The following `base`-specific re-exports were cut from many modules: | ||
|
||
- `Control.Monad` | ||
- `Control.Monad.Fix` | ||
- `Data.Monoid` | ||
|
||
In `mtl-2.3`, the following export was erroneously removed from `mtl`-specific modules: | ||
|
||
- `ExceptT` and related functions from `Control.Monad.Except` | ||
|
||
## What do I need to do? | ||
|
||
First, update your `*.cabal` file to point to the new `mtl-2.3.1` release (currently on Hackage), or add the following to your `cabal.project`: | ||
|
||
|
||
``` | ||
packages: . | ||
source-repository-package | ||
type: git | ||
location: https://github.com/haskell/mtl | ||
tag: 2.3.1 | ||
allow-newer: | ||
*:mtl | ||
``` | ||
|
||
Now, if upon recompile you see anything to the effect that particular functions from any of the above re-exports are missing, then you'll need to import the modules explicitly in order to expose the functions. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters