Re: [Haskell-cafe] Removing mtl from the Haskell Platform

(Platform discussion on libraries@ please) Right, so the Haskell Platform can be a mechanism by which we move the community forward. You could propose to remove mtl (which would involve deprecating for a major (or two? or many more?) releases, before we actually rip it out. Equivalent functionality for something so fundamental would also have to be found. We would need a new monad library, documented, in use, with a migration story for developers ideally. Identifying the candidate that provides equivalent functionality (and better) is strongly desirable. File a ticket, so we don't forget you've proposed this. http://trac.haskell.org/haskell-platform/wiki -- Don roconnor:
I wanted to pass this idea around the cafe to get some thoughts before submitting a trac on this topic.
I'd like to see the mtl removed from the Haskell Platform.
The mtl was a tremendous step forward when it was developed. However, we have learned a few things about monad transformers since the development of the mtl, and it is time that we moved forward.
There are at least 3 significant problem with the mtl.
1) `pass' should not be a member functions of the MonadWriter class. It is my understanding that there is no `MonadWriter w m => MonadWriter w (ContT s m)' instance because the `pass' function cannot be implemented. I'm also highly suspicious of some other methods too (I'm looking at you `local').
2) The `StateT s (Cont r a)' instance of callCC is wrong. The paper on modular monad transformers http://www.cs.nott.ac.uk/~mjj/pubs/mmt/mmt.pdf describes why this is wrong.
3) I am told by many people that the order of the state and value pair in `State' is backwards. Actually, I'm not entirely sure what the issue is here, but I trust the people who say this.
I think that use of the mtl should be deprecated so that we move on to improved monad transformer libraries. Having the mtl in the Haskell Platform does the opposite by further entrenching its use, possibly to the point where we may not be able to get rid of it for years.
If I had to recommend a replace library, I would pick monadLib. However, there are other libraries, such as the mmtl and transformers and it's related packages that I haven't looked at, and may also make fine replacements for the mtl.
-- Russell O'Connor http://r6.ca/ ``All talk about `theft,''' the general counsel of the American Graphophone Company wrote, ``is the merest claptrap, for there exists no property in ideas musical, literary or artistic, except as defined by statute.'' _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (1)
-
Don Stewart