An expression parser in Haskell.