
Derek Elkins wrote:
I don't why you think, "[t]here [is] a misconception that it somehow helps beginners to understand things if they are not told how to 'say' these strange new symbols." If you had said, "it doesn't help beginners to be told how to 'say' these symbols", I would have less of an issue.
Sorry, I got a bit convoluted there. I suppose what I'm trying to say is that I struggle when I am not given direct words to attach to symbols. A word for the symbol allows me to read the program. Imagine two experienced Haskell programmers on the phone, one reading a Haskell program snippet to the other. For example Hutton first uses the => symbol on p.7 "In Haskell, every function has a type that specifies the nature of its arguments and results, which is automatically inferred from the definition of the function. For example, the function sum has the following type: Num a => [a] -> a This type states that for any type a of numbers, sum is a function that maps a list of such numbers to a single such number." This is a good description, but doesn't seem a likely way for an experienced programmer to read that statement over the phone to somebody else. I am guessing things like "For all Num a, list of a to a." "Num a implies, list of a to a." In appendix B at the back of the book I find the 'meaning' of => is 'class constraint', but again this doesn't seem a likely way of 'saying' it. Now supposing you were on the phone to a Haskell programmer and you wanted to say this f :: Int -> Int I imagine you might say "f maps Int to Int" or "function f has type Int to Int". Both symbols have been translated directly to words. Nobody would say "f, colon colon, Int, dash greater than, Int".
I don't think anyone thinks that it is helpful not to provide a reading, and in my experience, a reading is usually provided, directly or indirectly, when such things are introduced in (larger) introductions/tutorials/textbooks. However, as you've already found, some things don't seem to have meaningful readings. E.g. you list -< in the title, but the motivation of that notation has nothing to do with it having a clear "reading", but rather comes from a graphical perspective, x <- f -< y I.e. that looks like an arrow pointing left with -< the tail. That said, two readings are indirectly provided in http://www.haskell.org/arrows/sugar.html