transformers-compat
A small compatibility shim for the transformers library
http://github.com/ekmett/transformers-compat/
| Version on this page: | 0.6.6 | 
| LTS Haskell 24.17: | 0.7.2 | 
| Stackage Nightly 2025-10-31: | 0.7.2 | 
| Latest on Hackage: | 0.7.2 | 
transformers-compat-0.6.6@sha256:510709db2b12d1510d70de824ee544ca0a9e6f27aa7e299218cbacc0750b4a5e,5560Module documentation for 0.6.6
- 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.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.
 
