[Haskell-cafe] Removing mtl from the Haskell Platform

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Wed May 13 07:30:33 EDT 2009


On Wed, 2009-05-13 at 12:01 +0100, Neil Brown wrote:
> Sittampalam, Ganesh wrote:
> > We've discussed replacing it with transformers+monads-fd+an mtl
> > compatiblity layer on libraries at . Ross and I plan to propose doing this
> > for the second release of the platform - it's not fair to disrupt the
> > first release at this stage.
> >
> > transformers+monads-fd is quite a small evolution over mtl - it factors
> > out the fundeps into a separate package, tightens up some of the class
> > constraints, and makes State = StateT Identity etc rather than a
> > separate type. Even this breaks a few packages, but doing anything more
> > substantial would be quite disruptive. That's not to say that we
> > shouldn't do it, though.
> 
> For those of us wishing to target applications to the Haskell platform 
> (e.g. our software works on Haskell Platform 2009.2, 2009.8, etc) will 
> there be an easy way to determine which Haskell platform is currently 
> installed so that we can accommodate any such incompatible changes?  
> E.g. if Haskell platform = 2009.2 then use libraries mtl, parsec and 
> #define HP_VERSION 200902, if Haskell platform = 2009.8 then use 
> libraries transformers+monads-fd, parsec-compatibility, and #define 
> HP_VERSION 200908.

There are already cpp macros to enable to determine if your package is
being compiled using one library or another and to do conditional
compilation on the version. There is no additional mechanism planned for
the platform as a whole (because there is nothing to enforce that an end
user picks a set of dependencies that is consistent with a platform
release).

Duncan



More information about the Haskell-Cafe mailing list