# 0.14.4

* Fix a segmentation fault when built against `text-2.0`
* Restructure project to allow more convenient usage of benchmark suite
* Allow benchmarks to build with GHC 9.2

# 0.14.3

* Support for GHC 9.2.1

# 0.14.2

* Support for GHC 9.2.1

# 0.14.1

* Added `Data.Attoparsec.ByteString.getChunk`.

# 0.14.0

* Added `Data.Attoparsec.ByteString.takeWhileIncluding`.
* Make `Data.Attoparsec.{Text,ByteString}.Lazy.parseOnly` accept lazy input.

# 0.13.2.1

* Improved performance of `Data.Attoparsec.Text.asciiCI`

# 0.13.2.0

* `pure` is now strict in `Position`

# 0.13.1.0

* `runScanner` now correctly returns the final state
  (https://github.com/bos/attoparsec/issues/105).
* `Parser`, `ZeptoT`, `Buffer`, and `More` now expose `Semigroup` instances.
* `Parser`, and `ZeptoT` now expose `MonadFail` instances.

# 0.13.0.2

* Restore the fast specialised character set implementation for Text
* Move testsuite from test-framework to tasty
* Performance optimization of takeWhile and takeWhile1

# 0.13.0.1

* Fixed a bug in the implementations of inClass and notInClass for
  Text (https://github.com/bos/attoparsec/issues/103)

# 0.13.0.0

* Made the parser type in the Zepto module a monad transformer
  (needed by aeson's string unescaping parser).

# 0.12.1.6

* Fixed a case folding bug in the ByteString version of stringCI.

# 0.12.1.5

* Fixed an indexing bug in the new Text implementation of string,
  reported by Michel Boucey.

# 0.12.1.4

* Fixed a case where the string parser would consume an unnecessary
  amount of input before failing a match, when it could bail much
  earlier (https://github.com/bos/attoparsec/issues/97)

* Added more context to error messages
  (https://github.com/bos/attoparsec/pull/79)

# 0.12.1.3

* Fixed incorrect tracking of Text lengths
  (https://github.com/bos/attoparsec/issues/80)

# 0.12.1.2

* Fixed the incorrect tracking of capacity if the initial buffer was
  empty (https://github.com/bos/attoparsec/issues/75)

# 0.12.1.1

* Fixed a data corruption bug that occurred under some circumstances
  if a buffer grew after prompting for more input
  (https://github.com/bos/attoparsec/issues/74)

# 0.12.1.0

* Now compatible with GHC 7.9

* Reintroduced the Chunk class, used by the parsers package

# 0.12.0.0

* 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.

# 0.11.3.0

* New function scientific is compatible with rational, but parses
  integers more efficiently (https://github.com/bos/aeson/issues/198)

# 0.11.2.0

* The new Chunk typeclass allows for some code sharing with Ed
  Kmett's parsers package: http://hackage.haskell.org/package/parsers

* New function runScanner generalises scan to return the final state
  of the scanner as well as the input consumed.

# 0.11.1.0

* New dependency: the scientific package.  This allows us to parse
  numbers much more efficiently.

* peekWord8', peekChar': new primitive parsers that allow
  single-character lookahead.
