transformers-compat
A small compatibility shim for the transformers library
http://github.com/ekmett/transformers-compat/
| LTS Haskell 24.16: | 0.7.2 |
| Stackage Nightly 2025-10-24: | 0.7.2 |
| Latest on Hackage: | 0.7.2 |
transformers-compat-0.7.2@sha256:044fb9955f63ee138fcebedfdcbe54afe741f2d5892a2d0bdf3a8052bd342643,5601Module documentation for 0.7.2
- Control
- Control.Monad
- Control.Monad.Trans
- Control.Monad
transformers-compat
This provides a thin compatibility shim on top of transformers-0.2 to add the types that were added in transformers-0.3.
This enables users to maintain haskell-platform compatibility, while still gaining access ot the new functionality.
Related packages
The writer-cps-transformers package backports the
Control.Monad.Trans.{RWS,Writer}.CPS modules that were introduced in
transformers-0.5.6.0. There are also a variety of companion packages which
backport orphan instances for these types. One example is writer-cps-mtl,
which backports instances of type classes from the mtl library.
Contact Information
Contributions and bug reports are welcome!
Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
-Edward Kmett
Changes
0.7.2 [2022.06.26]
- Add
Eq,Ord,Read, andShowinstances forFunctorClassesDefaultinData.Functor.Classes.Generic.
0.7.1 [2021.10.30]
- Backport new instances from GHC 9.2/
base-4.16Eq1,Read1, andShow1instances forComplexEq{1,2},Ord{1,2},Show{1,2}, andRead{1,2}instances for(,,)and(,,,)
0.7 [2021.07.25]
- Backport changes from
transformers-0.6.*:- Remove the long-deprecated
selectToContfunction fromControl.Monad.Trans.Select. - Backport various
Generic,Generic1, andDatainstances. - Backport
handleE,tryE, andfinallyEtoControl.Monad.Trans.Except. - Backport explicit implementations of
(<$),liftA2,(*>), and(<*)forControl.Applicative.Backwards. - Backport a lazier implementation of
(<*>)forControl.Applicative.Lift.
- Remove the long-deprecated
0.6.6 [2020.09.30]
- Add
FunctorClassesDefault, an adapter newtype suitable forDerivingVia, toData.Functor.Classes.Generic. - Fix a bug in which
readsPrec1Default/liftReadsPrecDefaultwould parse empty data types too strictly.
0.6.5 [2019.05.11]
- Ensure that the backported
MonadFailinstance forExceptTis available when built againsttransformers-0.4.*.
0.6.4 [2019.04.01]
- Use more conservative CPP to guard the backported
MonadFixinstance forListT.
0.6.3 [2019.04.01]
- Backport changes from
transformers-0.5.6.*:- Backport the
MonadFixinstance forListTinControl.Monad.Trans.Instances. - Generalize the type of
exceptinControl.Monad.Trans.Except.
- Backport the
- Backport
MonadFailinstances forAccumT,Reverse, andSelectTon pre-8.0 versions of GHC by depending on thefailpackage if necessary. - Backport
MonadFailinstances for monad transformer types inControl.Monad.Trans.Instances.
0.6.2
-
transformers-compatnow uses automatic flags instead of manual ones. This has a number of benefits:- There is no need for making several simultaneous releases to support each flag combination.
- As a result, the
cabal-installconstraint solver should have a much easier time figuring out install-plans involvingtransformers-compat.
Due to old
cabal-installbugs,cabal-install-1.16and older may have a harder time installing this package, so it is recommended that you usecabal-install-1.18or later. (Or, if you must usecabal-install-1.16or older, installingtransformers-compatwith the appropriate flags should help.)
0.6.1.6
- Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6.1 release notes describe the changes in this version. This release is configured with none of-ftwo,-fthree,-ffour, or-ffive(which works withtransformers-0.5.3and above).
0.6.1.5
- Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6.1 release notes describe the changes in this version. This release is configured with-ffive(which works withtransformers-0.5up until, but not including,transformers-0.5.3).
0.6.1.4
- Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6.1 release notes describe the changes in this version. This release is configured with-ffour(which works with thetransformers-0.4series).
0.6.1.3
- Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6.1 release notes describe the changes in this version. This release is configured with-fthree(which works with thetransformers-0.3series).
0.6.1.2
- Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6.1 release notes describe the changes in this version. This release is configured with-ftwo(which works with thetransformers-0.2series).
0.6.1
- Fix an oversight in which the
Control.Monad.Trans.AccumandControl.Monad.Trans.Selectmodules were not backported when built with the-ffourflag.
0.6.0.6
- Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6 release notes describe the changes in this version. This release is configured with none of-ftwo,-fthree,-ffour, or-ffive(which works withtransformers-0.5.3and above).
0.6.0.5
- Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6 release notes describe the changes in this version. This release is configured with-ffive(which works withtransformers-0.5up until, but not including,transformers-0.5.3).
0.6.0.4
- Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6 release notes describe the changes in this version. This release is configured with-ffour(which works with thetransformers-0.4series).
0.6.0.3
- Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6 release notes describe the changes in this version. This release is configured with-fthree(which works with thetransformers-0.3series).
0.6.0.2
- Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.6 release notes describe the changes in this version. This release is configured with-ftwo(which works with thetransformers-0.2series).
0.6
- Introduce the
Data.Functor.Classes.Genericmodule, which provides functions that can generically implement methods in theEq1,Ord1,Read1, andShow1classes (without the usual boilerplate involved). - Introduce the
generic-derivingflag. When enabled,transformers-compatwill depend on thegeneric-derivinglibrary on older versions of GHC to backportGHC.Genericssupport forGenericinstances and the machinery inData.Functor.Classes.Generic. - Some instances were present in
Data.Functor.Sumbut not inControl.Monad.Trans.Instances(e.g., theGeneric,Typeable, andDatainstances forSum). This has been fixed. - Backport changes from
transformers-0.5.5:- Backport the
Semigroupinstance forConstant - Add
mapSelectandmapSelectT - Define
selectToContT(and deprecateselectToContin favor of that) - Define some explicit
(*>)definitions to avoid space leaks
- Backport the
- Backport changes from
transformers-0.5.4(i.e., addBifoldableandBitraversableinstances forData.Functor.Constant) - Backport changes from
transformers-0.5.3:- Backport the
Control.Monad.Trans.AccumandControl.Monad.Trans.Selectmodules - Backport the
eitherToErrorsandelimLiftfunctions toControl.Applicative.Lift - Backport
Bits,FiniteBits,IsString,Num,Real,Integral,Fractional,Floating,RealFrac, andRealFloatinstances forData.Functor.Identity - Backport
Monad,MonadFail, andMonadPlusinstances forData.Functor.Reverse - Backport
Eq1,Ord1,Read1, andShow1instances forData.Proxy
- Backport the
- Backport changes from
transformers-0.5.2(i.e., add moreINLINEannotations) - Backport changes from
transformers-0.5.1(i.e., addBounded,Enum,Ix, andStorableinstances forIdentity)
0.5.1.4
- Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.5.1 release notes describe the changes in this version. This release is configured with neither-ftwonor-fthree(which works withtransformers-0.4and above).
0.5.1.3
- Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.5.1 release notes describe the changes in this version. This release is configured with-fthree(which works with thetransformers-0.3series).
0.5.1.2
- Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.5.1 release notes describe the changes in this version. This release is configured with-ftwo(which works with thetransformers-0.2series).
0.5.1
- Fix a bug in which
PolyKindswas enabled on GHC 7.4, resulting in interface file bugs on that version of GHC.
0.5.0.4
- Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.5 release notes describe the changes in this version. This release is configured with neither-ftwonor-fthree(which works withtransformers-0.4and above).
0.5.0.3
- Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.5 release notes describe the changes in this version. This release is configured with-fthree(which works with thetransformers-0.3series).
0.5.0.2
- Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.5 release notes describe the changes in this version. This release is configured with-ftwo(which works with thetransformers-0.2series).
0.5
- Update
transformers-compatto incorporate changes from thetransformers-0.5series. These changes include:- The
Data.Functor.Classesmodule was completely redesigned. - Modules now have
SafeorTrustworthyannotations. - Data types and type synonyms are poly-kinded when possible.
- The
- Add
Control.Monad.Trans.Instances, a module of orphan instances that mimic instances available in later versions oftransformers.
0.4.0.4
- Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.4 release notes describe the changes in this version. This release is configured with neither-ftwonor-fthree(which works withtransformers-0.4and above).
0.4.0.3
- Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.4 release notes describe the changes in this version. This release is configured with-fthree(which works with thetransformers-0.3series).
0.4.0.2
- Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set of flags configured. Building this way allows us to work around bugs in
cabal’s backtracker. The 0.4 release notes describe the changes in this version. This release is configured with-ftwo(which works with thetransformers-0.2series).
0.4
-
Added support for the missing
ExceptTinstances frommtl.This was not done lightly. While this means that by default incurring a dependency on
transformers-compatdrags inmtlwhen you are using an oldtransformers, it means that users do not have to orphan these instances and permits wider adoption ofExceptT.If you absolutely can’t stand
mtland really want this package to build as validHaskell98, then you can usecabal install transformers-compat -f-mtlto avoid incurring the dependency to get these instances. However, that is effectively an unsupported configuration.
0.3.3.4
- Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build problems caused by the cabal backtracker.
- Each of these is a build with a different set of flags configured.
This release is configured with neither
-ftwonor-fthree(which works withtransformers-0.4and above).
0.3.3.3
- Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build problems caused by the cabal backtracker.
- Each of these is a build with a different set of flags configured.
This release is configured with
-fthree(which works with thetransformers-0.3series).
0.3.3.2
- Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build problems caused by the cabal backtracker.
- Each of these is a build with a different set of flags configured.
This release is configured with
-ftwo(which works with thetransformers-0.2series).
0.3.2
- This release was a failed (or at least, only partially successful) attempt to fix build problems caused by the cabal backtracker.
0.3.1
transformers 0.4.1compatibility
0.3
- Added the instances for
Data.Functor.Classesfromtransformers 0.4 - Switched
Control.Applicative.BackwardsandData.Functor.Reverseto the split constructor/accessor style fromtransformers 0.4.
0.2
- Added the new types and classes from
transformers 0.4
0.1.1.1
- Wrote a better synopsis
0.1.1
- Updated to trick
cabalinto building an emptylibHStransformers-compat-0.1.aon GHC 7.6.
0.1
- Repository initialized by pulling the
transformers-0.2compatibility layer out oflens.