status of mtl

Ben Franksen ben.franksen at
Sat Sep 25 11:42:38 UTC 2021

I wanted to use the CPS version of RWST from transformers but the latest 
release of mtl (2.2.2) does not provide instances yet. Looking at the 
github repo I see that the missing instances were added two years ago, 
with no release since then. With all due respect to the maintainers and 
developers, this is disappointing.

The ticket for release 2.3 mentions the following TODO items:

  - Document AccumT and SelectT
  - MonadAccum (including documentation)
  - MonadSelect (including documentation)

These all concern new additions made in the last two years, some of them 
quite recent.

This style of package maintenance doesn't make sense to me. Why add new 
features before releasing what's been done years ago? Why accept patches 
with additional features in the mainline if they are apparently 
incomplete (e.g. missing documentation) if that blocks progress toward a 

The obvious solution (need i spell it out?) is to move all new features 
that aren't mature yet to feature branches until they are ready for the 
mainline. Then take the work that is complete and release that. What's 
the big deal? Add a few lines to the changelog, bump the version number, 
upload, announce it on the mailing list. If you don't like to rebase the 
master branch, fork off a release branch at the appropriate point in the 
history and do the release on that branch, cherry-picking later patches 
from master as necessary. (Maintaining a release branch per major 
version bump is good practice anyway and requires only minimal extra work.)

Don't fall into the trap of the perfect becoming the enemy of the good. 
No release is perfect, nor does it have to be. You can always make patch 
releases. If you make a mistake and the release is broken, just mark it 
as such on hackage, so cabal won't pick it by default.

Needless to say, none of this is in any way new or original.

I would rather have questions that cannot be answered, than answers that
cannot be questioned.  -- Richard Feynman

More information about the Libraries mailing list