haskell / mtl

The Monad Transformer Library
http://www.haskell.org/haskellwiki/Monad_Transformers
Other
360 stars 63 forks source link

Revert "Remove re-exports of Control.Monad, ... (#99)" #103

Closed chessai closed 2 years ago

chessai commented 2 years ago

This reverts commit 9e1582a0b5155a0d2072f020773b25b69462bec7.

cc @phadej @Bodigrim @emilypi

emilypi commented 2 years ago

FTR - not a fan of this. What's the point of this release if we don't rip of this particular bandaid along with the rest of the breaking changes? We're just punting the pain down the road (yet again)

ekmett commented 2 years ago

I just want to go on the record saying that I'm very much against this decision. It was after all much of the reason for 2.3 being released at all, rather than jumping into the 3.0 release process.

chessai commented 2 years ago

After discussing it with @emilypi and considering everything, we've decided to reverse this decision.

We are going to provide a migration guide, and a writeup of our reasoning.

@emilypi is going to revert this revert later, and write a migration guide. Tonight or tomorrow I'm going to create the writeup with our reasoning.

ysangkok commented 2 years ago

So is it better to test with rc3 than rc4? Since it still has the removed re-exports.

andreasabel commented 2 years ago

Note that everything depending on ghc cannot upgrade mtl, unless ghc also upgrades the mtl it ships with. At least this is how I interpret the following error (with the RC under allow-newer: *:mtl and constraints: mtl==2.3):

[__2] trying: doctest-0.20.0 (dependency of BNFC *test)
[__3] trying: ghc-9.2.1/installed-9.2.1 (dependency of doctest)
[__4] trying: parsec-3.1.14.0/installed-3.1.14.0 (dependency of ghc)
[__5] trying: base-4.16.0.0/installed-4.16.0.0 (dependency of BNFC)
[__6] next goal: mtl (user goal)
[__6] rejecting: mtl-2.3 (conflict: parsec => mtl==2.2.2/installed-2.2.2)

Because doctest depends on ghc, everything using doctests can also not upgrade mtl.

This means that I cannot test the RC on many projects. I can only update such projects once a new ghc is released with the new mtl bundled with it. Is that right? @emilypi @ekmett @chessai

sjakobi commented 2 years ago

@andreasabel AFAIK ghc's dependency on parsec and mtl will be removed in GHC 9.4: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7472.

For now, I'd probably temporarily disable or remove the doctest dependency.