Haskell: The Craft of Functional Programming (3rd Edition) (International Computer Science Series)