Fast combinator parsing for bytestrings and text

Version on this page:
LTS Haskell 11.22:
Stackage Nightly 2018-03-12:
Latest on Hackage:

See all snapshots picoparsec appears in

BSD-3-Clause licensed and maintained by Mario Blažević
This version can be pinned in stack with:picoparsec-,3407

Welcome to picoparsec

Picoparsec is a fast and flexible parser combinator library, accepting any input type that is an instance of an appropriate monoid subclass.

Join in!

I’m happy to receive bug reports, fixes, documentation enhancements, and other improvements.

Please report bugs via the Mercurial repository:

  • hg clone


This library is a fork of attoparsec written and maintained by Bryan O’Sullivan, [email protected].



  • Now compatible with GHC 7.9

  • Reintroduced the Chunk class, used by the parsers package

  • A new internal representation makes almost all real-world parsers faster, sometimes by big margins. For example, parsing JSON data with aeson is now up to 70% faster. These performance improvements also come with reduced memory consumption and some new capabilities.

  • The new match combinator gives both the result of a parse and the input that it matched.

  • The test suite has doubled in size. This made it possible to switch to the new internal representation with a decent degree of confidence that everything was more or less working.

  • The benchmark suite now contains a small family of benchmarks taken from real-world uses of attoparsec.

  • A few types that ought to have been private now are.

  • A few obsolete modules and functions have been marked as deprecated. They will be removed from the next major release.

  • Initial commit.