Break up Parser.hs, make use of Parsec optional