
This is sort of a tangent... One of the things I notice happens a lot on the lists is that it is very difficult to answer questions without knowing the background of the person asking it. Haskell is a 'multi-level' language in a lot of ways, there is the nice friendly veneer described in the report, but a lot of that functionality exposed to the user is implemented in haskell itself using unsafe operations and interesting and useful implementation specific tricks, but that are probably not what someone learning the language is looking for. So, the most basic question, perhaps one of the first things someone exploring the language asks: "How do I turn an IO String into a String?" gets several different replys which can be quite intimidating for someone expecting a simple answer "unsafePerformIO but don't use it!" "Haskell Performs IO using Monads, a mathematical construct taken from category theory" "You need to put your call to getContents in a 'do' block" "perhaps you should be using Arrows" (okay, perhaps this one doesn't come up so much) now, for a newbie, picking out choice number 3 may or may not be obvious, but it certainly can be a very intimidating barrage of replies. I think we need some sort of signal, to show that one means "I understand why haskell doesn't allow this in general, but am interested in a compiler specific trick or some theoretical background on the issue" rather than "I am learning haskell and am somewhat confused due to preconcieved notions fostered by my experience with other languages, can someone help me?" Perhaps we as a community need to avoid the urge (it is hard to resist) to give esoteric answers unless specifically asked for and veterans will have to try not to be too offended if someone mistakes their obscure implementation question for a confused beginning one on occasion. John -- John Meacham - ⑆repetae.net⑆john⑈