
ajb@spamcop.net wrote:
Quoting Ertugrul Soeylemez
: In its highest level "not fragmenting the user base" means going back to C++ and Windows.
Ha. You wouldn't say that if you were familiar with the current state of C++ on Windows.
Since nobody has come out and admitted it, here's the real problem: What constitutes the best API for a monad library is still a research problem. This is evidenced by the fact that a few times a year we get yet another paper which proposes a fundamental change to the API which would improve matters in yet another direction.
What's the matter? The more popular languages don't even go that far to implement an advanced concept like monads /at all/. They are slowly adopting what Haskell programmers take for granted. Look at how monads are implemented in F# or even C#. This is WAY behind Haskell. They don't even know about transformers, only about monads, and only in a very modest way. Do you realize at what level we are complaining? We are complaining that a wonderful feature could be implemented in a more elegant, more wonderful way. Programmers in other languages wouldn't even know that this wonderful feature exists. But my point is that "not fragmenting the user base" means not using Haskell or Linux, because everybody uses Windows and C++. This is not related to quality at all. This is just to show how invalid the argument is that "we shouldn't fragment the user base".
Transformers, monadLib and MTL all have their respective strengths and weaknesses, but they are all considerably behind the state of the art, if you go by published research.
To be honest, I don't know any strength of MTL compared to transformers and monadLib. Actually even transformers is quite primitive compared to monadLib. The only real advantage is that it has flipped run functions and a built-in MaybeT. Iavor S. Diatchki has done a great job. Greets, Ertugrul -- nightmare = unsafePerformIO (getWrongWife >>= sex) http://ertes.de/