modify parser to never fail; add quickcheck to test arbitrary strings