Skip to content

Commit

Permalink
Merge branch 'master' into koz/monad-cont
Browse files Browse the repository at this point in the history
  • Loading branch information
kozross committed Aug 10, 2022
2 parents f2b6d23 + 0a71324 commit c3dfa94
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
ghc: ['8.6', '8.8', '8.10', '9.0', '9.2']
ghc: ['8.6', '8.8', '8.10', '9.0', '9.2', '9.4.1']
steps:
- name: Checkout base repo
uses: actions/[email protected]
Expand Down
11 changes: 7 additions & 4 deletions CHANGELOG.markdown
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
2.3.1 -- Unreleased
2.3.1 -- 2022-07-05
-----
* Add `modifyError` to `Control.Monad.Error.Class`, and re-export from
`Control.Monad.Except`.
* Make the `MonadCont` instance for `ContT` more polykinded; now, `r` is allowed
to be of an arbitrary kind `k`, rather than only `Type`.
* Add a generic `liftCallCC` for use with any `MonadTrans`.
* Add `modifyError` to `Control.Monad.Error.Class`
* Return re-export of `ExceptT` and related functions to `Control.Monad.Except`.
* Add `label` function to `MonadCont`

2.3 -- 2022-05-07
---
* Add instances for `Control.Monad.Trans.Writer.CPS` and
`Control.Monad.Trans.RWS.CPS` from `transformers` 0.5.6 and add
* Add instances for `Control.Monad.Trans.Writer.CPS` and
`Control.Monad.Trans.RWS.CPS` from `transformers` 0.5.6 and add
`Control.Monad.Writer.CPS` and `Control.Monad.RWS.CPS`.
* `Control.Monad.Cont` now re-exports `evalCont` and `evalContT`.
* Add `tryError`, `withError`, `handleError`, and `mapError` to
`Control.Monad.Error.Class`, and re-export from `Control.Monad.Except`.
* Remove `Control.Monad.List` and `Control.Monad.Error`.
* Remove instances of deprecated `ListT` and `ErrorT`.
* Remove re-exports of `Error`.
* Add instances for `Control.Monad.Trans.Accum` and
* Add instances for `Control.Monad.Trans.Accum` and
`Control.Monad.Trans.Select`.
* Require GHC 8.6 or higher, and `cabal-install` 3.0 or higher.
* Require `transformers-0.5.6` or higher.
Expand Down
34 changes: 34 additions & 0 deletions docs/Mtl-2.3.x-Migration.md
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.
15 changes: 7 additions & 8 deletions mtl.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ version: 2.3.1
license: BSD-3-Clause
license-file: LICENSE
author: Andy Gill
maintainer: chessai <[email protected]>,
Emily Pillmore <[email protected]>,
maintainer: chessai <[email protected]>,
Emily Pillmore <[email protected]>,
Koz Ross <[email protected]>
category: Control
synopsis: Monad classes for transformers, using functional dependencies
Expand All @@ -18,11 +18,11 @@ description:

build-type: Simple

extra-source-files:
extra-source-files:
CHANGELOG.markdown
README.markdown

tested-with: GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.2
tested-with: GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.1

source-repository head
type: git
Expand Down Expand Up @@ -54,15 +54,14 @@ Library
Control.Monad.Writer.Strict
Control.Monad.Accum
Control.Monad.Select
build-depends:

build-depends:
, base >=4.12 && < 5
, transformers >= 0.5.6 && <0.7

ghc-options:
ghc-options:
-Wall -Wcompat -Wincomplete-record-updates
-Wincomplete-uni-patterns -Wredundant-constraints
-Wmissing-export-lists

default-language: Haskell2010

0 comments on commit c3dfa94

Please sign in to comment.