Haskell the craft of functional programming - Thompson, Simon (Addison-Wesley, 1996)