Changed the Semigroup instance of Parser types to use 'try' instead of '+' for effiency.