Real World Haskell: Code You Can Believe In