Preview fragment. Get full access
Effective Haskell: Solving Real-World Problems with Strongly Typed Functional Programming