Example of arithmetic expression parsing, with decoding of semantic
values (ie it gives a list of possible results of computation).
BUT: it runs the computations under a monad. In this example, certain
cases of addition fail, which are caught and shown as zeros.
"make run" to run the test case.
For Hugs, load up Hugs.lhs - it doesn't produce graphs, and has easy entry
point "test :: String -> IO ()