Haskell : the craft of functional programming - Thompson, Simon (International computer science series, 1998)