What I Wish I Knew When Learning Haskell
syntax. of the dozen languages i've taught myself, (which is a super-set of the half dozen i've used to write significant things), Haskell's syntax has been, and remains, the largest barrier for me (and this includes perl!).  For example, just a clear equivalence, like this one given by the very helpful linked article here, would've helped enormously ("sugared form" for monad):<p><pre><code>    do { a <- f ; m } ≡ f >>= \a -> do { m }
</code></pre>
Sometimes i think the authors of Haskell had a completely different glyph set.  I'm sure some of you folks can read this like a book, but this sort of thing still throws me into the ditch:<p><pre><code>    M2 :: (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r</code></pre>