Parsec is good but it&#x27;s a rather old library. For more specialised needs there are even better choices in Haskell: (taken from Gabriel Gonzalez&#x27;s recent post)<p>* attoparsec remains the king of speed, generating parsers competitive in speed with C<p>* trifecta remains the king of error messages, generating gorgeous clang-style errors<p>* earley is a newcomer but deals with context-free grammars, while other parser combinatory are basically recursive descent parsers<p>* and good old alex+happy for direct yacc+bison equivalent<p>* I should probably mention that in certain simple cases you don&#x27;t even need a parser combinator library to parse things. Just a good old `StateT (Text, r) [] ()` or similar can do wonders.