Haskell is a fascinating language. It is clearly an imperfect culmination of years of careful research by the languages community. There are many things I like about: currying, the functional style, the type system, etc. There are also many things I don't fully understand, mostly due to lack of experience. For a long time, one of the things I didn't understand was the monad. I read quite a few tut