[Haskell-cafe] Removing mtl from the Haskell Platform

Wolfgang Jeltsch g9ks157k at acme.softbase.org
Thu May 14 04:14:48 EDT 2009


Am Mittwoch, 13. Mai 2009 01:03 schrieb roconnor at theorem.ca:
> 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.

4) The identifiers State and StateT are flawed. Something of value State s a 
doesn’t denote a state but a state transformer or however you want to name 
it.

Best wishes,
Wolfgang


More information about the Libraries mailing list