Add parser from Real World Haskell
Reorganize, comment and change main to use the new parsing way