rewrote parser to use parsec instead of ReadP, some small changes to the AST type