Hello community,

here is the log from the commit of package ghc-megaparsec for openSUSE:Factory 
checked in at 2018-11-13 17:01:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-megaparsec (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-megaparsec.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-megaparsec"

Tue Nov 13 17:01:15 2018 rev:5 rq:648468 version:7.0.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-megaparsec/ghc-megaparsec.changes    
2018-11-09 07:52:28.263845328 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-megaparsec.new/ghc-megaparsec.changes       
2018-11-13 17:11:29.294749952 +0100
@@ -1,0 +2,9 @@
+Fri Nov  9 03:01:15 UTC 2018 - psim...@suse.com
+
+- Update megaparsec to version 7.0.4.
+  Upstream has edited the change log file since the last release in
+  a non-trivial way, i.e. they did more than just add a new entry
+  at the top. You can review the file at:
+  http://hackage.haskell.org/package/megaparsec-7.0.4/src/CHANGELOG.md
+
+-------------------------------------------------------------------

Old:
----
  megaparsec-7.0.3.tar.gz

New:
----
  megaparsec-7.0.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-megaparsec.spec ++++++
--- /var/tmp/diff_new_pack.wUpFMd/_old  2018-11-13 17:11:30.790747994 +0100
+++ /var/tmp/diff_new_pack.wUpFMd/_new  2018-11-13 17:11:30.790747994 +0100
@@ -19,7 +19,7 @@
 %global pkg_name megaparsec
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        7.0.3
+Version:        7.0.4
 Release:        0
 Summary:        Monadic parser combinators
 License:        BSD-2-Clause

++++++ megaparsec-7.0.3.tar.gz -> megaparsec-7.0.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/CHANGELOG.md 
new/megaparsec-7.0.4/CHANGELOG.md
--- old/megaparsec-7.0.3/CHANGELOG.md   2018-10-31 12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/CHANGELOG.md   1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +1,7 @@
+## Megaparsec 7.0.4
+
+* Numerous documentation corrections.
+
 ## Megaparsec 7.0.3
 
 * Fixed the build with `mtl` older than `2.2.2`.
@@ -10,7 +14,7 @@
 * More descriptive error messages when `elabel` or `ulabel` from
   `Text.Megaparsec.Error.Builder` are used with empty strings.
 
-* Typos fixes in the docs.
+* Typo fixes in the docs.
 
 ## Megaparsec 7.0.1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/README.md 
new/megaparsec-7.0.4/README.md
--- old/megaparsec-7.0.3/README.md      2018-10-31 12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/README.md      1970-01-01 01:00:00.000000000 +0100
@@ -40,65 +40,65 @@
 ### Core features
 
 The package is built around `MonadParsec`, an MTL-style monad transformer.
-All tools and features work with all instances of `MonadParsec`. You can
-achieve various effects combining monad transformers, i.e. building a
-monadic stack. Since the common monad transformers like `WriterT`, `StateT`,
-`ReaderT` and others are instances of the `MonadParsec` type class, you can
-wrap `ParsecT` *in* these monads, achieving, for example, backtracking
-state.
+Most features work with all instances of `MonadParsec`. One can achieve
+various effects combining monad transformers, i.e. building a monadic stack.
+Since the common monad transformers like `WriterT`, `StateT`, `ReaderT` and
+others are instances of the `MonadParsec` type class, one can also wrap
+`ParsecT` *in* these monads, achieving, for example, backtracking state.
 
 On the other hand `ParsecT` is an instance of many type classes as well. The
 most useful ones are `Monad`, `Applicative`, `Alternative`, and
 `MonadParsec`.
 
-Megaparsec includes all functionality that is available in Parsec plus
-features some combinators that are missing in other parsing libraries:
-
-* `failure` allows to fail reporting a parse error with unexpected and
-  expected items.
-* `fancyFailure` allows to fail reporting custom error messages.
-* `withRecovery` allows to recover from parse errors “on-the-fly” and
+Megaparsec includes all functionality that is typically available in
+Parsec-like libraries and also features some combinators that are quite
+unique to it:
+
+* `failure` allows us to report a parse error with unexpected and expected
+  items.
+* `fancyFailure` provides a way to report custom parse errors.
+* `withRecovery` can be used to recover from parse errors “on-the-fly” and
   continue parsing. Once parsing is finished, several parse errors may be
   reported or ignored altogether.
-* `observing` allows to “observe” parse errors without ending parsing (they
-  are returned in `Left`, while normal results are wrapped in `Right`).
+* `observing` makes it possible to “observe” parse errors without ending
+  parsing (they are returned in `Left`, while normal results are wrapped in
+  `Right`).
 
 In addition to that, Megaparsec features high-performance combinators
-similar to those found in Attoparsec:
+similar to those found in [Attoparsec][attoparsec]:
 
 * `tokens` makes it easy to parse several tokens in a row (`string` and
   `string'` are built on top of this primitive). This is about 100 times
   faster than matching a string token by token. `tokens` returns “chunk” of
   original input, meaning that if you parse `Text`, it'll return `Text`
-  without any repacking.
+  without repacking.
 * `takeWhile` and `takeWhile1` are about 150 times faster than approaches
   involving `many`, `manyTill` and other similar combinators.
-* `takeP` allows to grab n tokens from the stream and returns them as a
+* `takeP` allows us to grab n tokens from the stream and returns them as a
   “chunk” of the stream.
 
 Megaparsec is about as fast as Attoparsec if you write your parser carefully
 (see also [the section about performance](#performance)).
 
-Megaparsec can currently work with the following types of input stream
+The library can currently work with the following types of input stream
 out-of-the-box:
 
-* `String` = `[Char]`
+* `String = [Char]`
 * `ByteString` (strict and lazy)
 * `Text` (strict and lazy)
 
-It's also simple to make it work with custom token streams, and Megaparsec
-users have done so many times.
+It's also possible to make it work with custom token streams by making them
+an instance of the `Stream` type class.
 
 ### Error messages
 
-Megaparsec has well-typed error messages and the ability to use custom data
-types to adjust the library to specific domain of interest. No need to use a
-shapeless bunch of strings.
+Megaparsec has well-typed error messages and the ability to signal custom
+parse errors to better work in user's domain of interest.
 
 Megaparsec 7 introduced the `ParseErrorBundle` data type that helps to
 manage multi-error messages and pretty-print them easily and efficiently.
 That version of the library also made the practice of displaying offending
-line the default.
+line the default, similar to how recent versions of GHC do it.
 
 ### Alex support
 
@@ -110,53 +110,45 @@
 ### Character and binary parsing
 
 Megaparsec has decent support for Unicode-aware character parsing. Functions
-for character parsing live in the
-[`Text.Megaparsec.Char`](https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Char.html)
-module. Similarly, there is
-[`Text.Megaparsec.Byte`](https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Byte.html)
-module for parsing streams of bytes.
+for character parsing live in the [`Text.Megaparsec.Char`][tm-char] module.
+Similarly, there is [`Text.Megaparsec.Byte`][tm-byte] module for parsing
+streams of bytes.
 
 ### Lexer
 
-[`Text.Megaparsec.Char.Lexer`](https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Char-Lexer.html)
-is a module that should help you write your lexer. If you have used `Parsec`
-in the past, this module “fixes” its particularly inflexible
-`Text.Parsec.Token`.
-
-`Text.Megaparsec.Char.Lexer` is intended to be imported using a qualified
-import, it's not included in `Text.Megaparsec`. The module doesn't impose
-how you should write your parser, but certain approaches may be more elegant
-than others. An especially important theme is parsing of white space,
-comments, and indentation.
-
-The design of the module allows you quickly solve simple tasks and doesn't
-get in your way when you want to implement something less standard.
-
-Since Megaparsec 5, all tools for indentation-sensitive parsing are
-available in `Text.Megaparsec.Char.Lexer` module—no third party packages
-required.
+[`Text.Megaparsec.Char.Lexer`][tm-char-lexer] is a module that should help
+you write your lexer. If you have used `Parsec` in the past, this module
+“fixes” its particularly inflexible `Text.Parsec.Token`.
+
+[`Text.Megaparsec.Char.Lexer`][tm-char-lexer] is intended to be imported
+using a qualified import, it's not included in [`Text.Megaparsec`][tm]. The
+module doesn't impose how you should write your parser, but certain
+approaches may be more elegant than others. An especially important theme is
+parsing of white space, comments, and indentation.
+
+The design of the module allows one quickly solve simple tasks and doesn't
+get in the way when the need to implement something less standard arises.
 
-`Text.Megaparsec.Byte.Lexer` is also available for users who wish to parse
-binary data.
+[`Text.Megaparsec.Byte.Lexer`][tm-byte-lexer] is also available for users
+who wish to parse binary data.
 
 ## Documentation
 
 Megaparsec is well-documented. See the [current version of Megaparsec
-documentation on Hackage](https://hackage.haskell.org/package/megaparsec).
+documentation on Hackage][hackage].
 
 ## Tutorials
 
-You can find Megaparsec tutorials
-[here](https://markkarpov.com/learn-haskell.html#megaparsec-tutorials). They
-should provide sufficient guidance to help you to start with your parsing
-tasks. The site also has instructions and tips for Parsec users who decide
-to migrate to Megaparsec.
+You can find Megaparsec tutorials [here][tutorials]. They should provide
+sufficient guidance to help you start with your parsing tasks. The site also
+has instructions and tips for Parsec users who decide to migrate to
+Megaparsec.
 
 ## Performance
 
 Despite being flexible, Megaparsec is also fast. Here is how Megaparsec
-7.0.0 compares to Attoparsec 0.13.2.2 (the fastest widely used parsing
-library in the Haskell ecosystem):
+7.0.0 compares to [Attoparsec][attoparsec] 0.13.2.2 (the fastest widely used
+parsing library in the Haskell ecosystem):
 
 Test case         | Execution time | Allocated | Max residency
 ------------------|---------------:|----------:|-------------:
@@ -168,11 +160,10 @@
 JSON (Megaparsec) |       25.45 μs |   203,824 |         9,176
 
 The benchmarks were created to guide development of Megaparsec 6 and can be
-found [here](https://github.com/mrkkrp/parsers-bench).
+found [here][parsers-bench].
 
 If you think your Megaparsec parser is not efficient enough, take a look at
-[these
-instructions](https://markkarpov.com/megaparsec/writing-a-fast-parser.html).
+[these instructions][fast-parser].
 
 ## Comparison with other solutions
 
@@ -181,10 +172,9 @@
 
 ### Megaparsec vs Attoparsec
 
-[Attoparsec](https://hackage.haskell.org/package/attoparsec) is another
-prominent Haskell library for parsing. Although the both libraries deal with
-parsing, it's usually easy to decide which you will need in particular
-project:
+[Attoparsec][attoparsec] is another prominent Haskell library for parsing.
+Although both libraries deal with parsing, it's usually easy to decide which
+you will need in particular project:
 
 * *Attoparsec* is sometimes faster but not that feature-rich. It should be
   used when you want to process large amounts of data where performance
@@ -195,56 +185,35 @@
   transformer.
 
 So, if you work with something human-readable where size of input data is
-usually not huge, just go with Megaparsec, otherwise Attoparsec may be a
-better choice.
-
-Since version 6, Megaparsec features the same fast primitives that
-Attoparsec has, so in many cases the difference in speed is not that big.
-Megaparsec now aims to be “one size fits all” ultimate solution to parsing,
-so it can be used even to parse low-level binary formats.
+moderate, just go with Megaparsec, otherwise Attoparsec may be a better
+choice.
 
 ### Megaparsec vs Parsec
 
-Since Megaparsec is a fork of
-[Parsec](https://hackage.haskell.org/package/parsec), we are bound to list
-the main differences between the two libraries:
-
-* Better error messages. We test our error messages using numerous
-  QuickCheck (generative) tests. Good error messages are just as important
-  for us as correct return values of our parsers. Megaparsec will be
-  especially useful if you write a compiler or an interpreter for some
-  language.
+Since Megaparsec is a fork of [Parsec][parsec], we are bound to list the
+main differences between the two libraries:
 
-* Megaparsec 6 can show the line on which parse error happened as part of
+* Better error messages. Megaparsec has well-typed error messages and custom
+  error messages.
+
+* Megaparsec can show the line on which parse error happened as part of
   parse error. This makes it a lot easier to figure out where the error
   happened.
 
 * Some quirks and “buggy features” (as well as plain bugs) of original
   Parsec are fixed. There is no undocumented surprising stuff in Megaparsec.
 
-* Better support for Unicode parsing in `Text.Megaparsec.Char`.
+* Better support for Unicode parsing in [`Text.Megaparsec.Char`][tm-char].
 
 * Megaparsec has more powerful combinators and can parse languages where
   indentation matters out-of-the-box.
 
-* Comprehensive test suite covering nearly 100% of our code. Compare that to
-  absence
-
-* We have benchmarks to detect performance regressions.
-
-* Better documentation, with 100% of functions covered, without typos and
-  obsolete information, with working examples. Megaparsec's documentation is
-  well-structured and doesn't contain things useless to end users.
-
-* Megaparsec's code is clearer and doesn't contain “magic” found in original
-  Parsec.
-
-* Megaparsec has well-typed error messages and custom error messages.
+* Better documentation.
 
 * Megaparsec can recover from parse errors “on the fly” and continue
   parsing.
 
-* Megaparsec allows to conditionally process parse errors *inside your
+* Megaparsec allows us to conditionally process parse errors *inside your
   parser* before parsing is finished. In particular, it's possible to define
   regions in which parse errors, should they happen, will get a “context
   tag”, e.g. we could build a context stack like “in function definition
@@ -254,17 +223,14 @@
   `takeWhileP`, `takeWhile1P`, `takeP` like Attoparsec.
 
 If you want to see a detailed change log, `CHANGELOG.md` may be helpful.
-Also see [this original
-announcement](https://mail.haskell.org/pipermail/haskell-cafe/2015-September/121530.html)
-for another comparison.
+Also see [this original announcement][original-announcement] for another
+comparison.
 
 ### Megaparsec vs Trifecta
 
-[Trifecta](https://hackage.haskell.org/package/trifecta) is another Haskell
-library featuring good error messages. It's probably good, but also
-under-documented, and has unfixed [bugs and
-flaws](https://github.com/ekmett/trifecta/issues). Other reasons one may
-question choice of Trifecta is his/her parsing library:
+[Trifecta][trifecta] is another Haskell library featuring good error
+messages. Some reasons one may question choice of Trifecta is his/her
+parsing library:
 
 * Complicated, doesn't have any tutorials available, and documentation
   doesn't help at all.
@@ -279,23 +245,23 @@
   dependencies. Also if you're not into `lens` and would like to keep your
   code “vanilla”, you may not like the API.
 
-[Idris](https://www.idris-lang.org/) has recently switched from Trifecta to
-Megaparsec which allowed it to [have better error messages and fewer
-dependencies](https://twitter.com/edwinbrady/status/950084043282010117?s=09).
+[Idris][idris] has recently switched from Trifecta to Megaparsec which
+allowed it to [have better error messages and fewer
+dependencies][idris-testimony].
 
 ### Megaparsec vs Earley
 
-[Earley](https://hackage.haskell.org/package/Earley) is a newer library that
-allows to safely (it your code compiles, then it probably works) parse
-context-free grammars (CFG). Megaparsec is a lower-level library compared to
-Earley, but there are still enough reasons to choose it over Earley:
+[Earley][earley] is a newer library that allows us to safely (it your code
+compiles, then it probably works) parse context-free grammars (CFG).
+Megaparsec is a lower-level library compared to Earley, but there are still
+enough reasons to choose it:
 
 * Megaparsec is faster.
 
 * Your grammar may be not context-free or you may want introduce some sort
   of state to the parsing process. Almost all non-trivial parsers require
   something of this sort. Even if your grammar is context-free, state may
-  allow to add some additional niceties. Earley does not support that.
+  allow us to add some additional niceties. Earley does not support that.
 
 * Megaparsec's error messages are more flexible allowing to include
   arbitrary data in them, return multiple error messages, mark regions that
@@ -306,7 +272,7 @@
   much more productive with libraries taking more traditional path to
   parsing like Megaparsec.
 
-IOW, Megaparsec is less safe but also more powerful.
+In other words, Megaparsec is less safe but also more powerful.
 
 ## Related packages
 
@@ -326,7 +292,7 @@
 
 ## Prominent projects that use Megaparsec
 
-The following are some prominent projects that use Megaparsec:
+Some prominent projects that use Megaparsec:
 
 * [Idris](https://github.com/idris-lang/Idris-dev)—a general-purpose
   functional programming language with dependent types
@@ -349,7 +315,7 @@
 * [Latest additions to 
Megaparsec](https://markkarpov.com/post/latest-additions-to-megaparsec.html)
 * [Announcing Megaparsec 
5](https://markkarpov.com/post/announcing-megaparsec-5.html)
 * [Megaparsec 4 and 5](https://markkarpov.com/post/megaparsec-4-and-5.html)
-* [The original Megaparsec 4.0.0 
announcement](https://mail.haskell.org/pipermail/haskell-cafe/2015-September/121530.html)
+* [The original Megaparsec 4.0.0 announcement][original-announcement]
 
 ## Authors
 
@@ -357,15 +323,14 @@
 find the complete list of contributors in the `AUTHORS.md` file in the
 official repository of the project. Thanks to all the people who propose
 features and ideas, although they are not in `AUTHORS.md`, without them
-Megaparsec would not be that good.
+Megaparsec would not be so good.
 
 ## Contribution
 
 Issues (bugs, feature requests or otherwise feedback) may be reported in
 [the GitHub issue tracker for this 
project](https://github.com/mrkkrp/megaparsec/issues).
 
-Pull requests are also welcome (and yes, they will get attention and will be
-merged quickly if they are good).
+Pull requests are also welcome.
 
 ## License
 
@@ -374,3 +339,23 @@
 Copyright © 1999–2000 Daan Leijen
 
 Distributed under FreeBSD license.
+
+[hackage]: https://hackage.haskell.org/package/megaparsec
+[tutorials]: https://markkarpov.com/learn-haskell.html#megaparsec-tutorials
+
+[tm]: https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec.html
+[tm-char]: 
https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Char.html
+[tm-byte]: 
https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Byte.html
+[tm-char-lexer]: 
https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Char-Lexer.html
+[tm-byte-lexer]: 
https://hackage.haskell.org/package/megaparsec/docs/Text-Megaparsec-Byte-Lexer.html
+
+[attoparsec]: https://hackage.haskell.org/package/attoparsec
+[parsec]: https://hackage.haskell.org/package/parsec
+[trifecta]: https://hackage.haskell.org/package/trifecta
+[earley]: https://hackage.haskell.org/package/Earley
+[idris]: https://www.idris-lang.org/
+[idris-testimony]: 
https://twitter.com/edwinbrady/status/950084043282010117?s=09
+
+[parsers-bench]: https://github.com/mrkkrp/parsers-bench
+[fast-parser]: https://markkarpov.com/megaparsec/writing-a-fast-parser.html
+[original-announcement]: 
https://mail.haskell.org/pipermail/haskell-cafe/2015-September/121530.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Byte/Lexer.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Byte/Lexer.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Byte/Lexer.hs  2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Byte/Lexer.hs  1970-01-01 
01:00:00.000000000 +0100
@@ -97,7 +97,7 @@
 -- | Parse an integer in decimal representation according to the format of
 -- integer literals described in the Haskell report.
 --
--- If you need to parse signed integers, see 'signed' combinator.
+-- If you need to parse signed integers, see the 'signed' combinator.
 
 decimal
   :: forall e s m a. (MonadParsec e s m, Token s ~ Word8, Integral a)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Char/Lexer.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Char/Lexer.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Char/Lexer.hs  2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Char/Lexer.hs  1970-01-01 
01:00:00.000000000 +0100
@@ -11,8 +11,7 @@
 --
 -- High-level parsers to help you write your lexer. The module doesn't
 -- impose how you should write your parser, but certain approaches may be
--- more elegant than others. Especially important theme is parsing of white
--- space, comments, and indentation.
+-- more elegant than others.
 --
 -- Parsing of white space is an important part of any parser. We propose a
 -- convention where __every lexeme parser assumes no spaces before the__
@@ -190,8 +189,8 @@
 nonIndented sc p = indentGuard sc EQ pos1 *> p
 {-# INLINEABLE nonIndented #-}
 
--- | The data type represents available behaviors for parsing of indented
--- tokens. This is used in 'indentBlock', which see.
+-- | Behaviors for parsing of indented tokens. This is used in
+-- 'indentBlock', which see.
 --
 -- @since 4.3.0
 
@@ -269,9 +268,9 @@
 -- | Create a parser that supports line-folding. The first argument is used
 -- to consume white space between components of line fold, thus it /must/
 -- consume newlines in order to work properly. The second argument is a
--- callback that receives a custom space-consuming parser as argument. This
--- parser should be used after separate components of line fold that can be
--- put on different lines.
+-- callback that receives a custom space-consuming parser as an argument.
+-- This parser should be used after separate components of line fold that
+-- can be put on different lines.
 --
 -- An example should clarify the usage pattern:
 --
@@ -328,7 +327,7 @@
 -- | Parse an integer in decimal representation according to the format of
 -- integer literals described in the Haskell report.
 --
--- If you need to parse signed integers, see 'signed' combinator.
+-- If you need to parse signed integers, see the 'signed' combinator.
 --
 -- __Note__: before version 6.0.0 the function returned 'Integer', i.e. it
 -- wasn't polymorphic in its return type.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Class.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Class.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Class.hs       2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Class.hs       1970-01-01 
01:00:00.000000000 +0100
@@ -120,11 +120,12 @@
   -- unexpected "le"
   -- expecting "let" or "lexical"
   --
-  -- __Please note__ that as of Megaparsec 4.4.0, 'string' backtracks
-  -- automatically (see 'tokens'), so it does not need 'try'. However, the
-  -- examples above demonstrate the idea behind 'try' so well that it was
-  -- decided to keep them. You still need to use 'try' when your
-  -- alternatives are complex, composite parsers.
+  -- __Please note__ that as of Megaparsec 4.4.0,
+  -- 'Text.Megaparsec.Char.string' backtracks automatically (see 'tokens'),
+  -- so it does not need 'try'. However, the examples above demonstrate the
+  -- idea behind 'try' so well that it was decided to keep them. You still
+  -- need to use 'try' when your alternatives are complex, composite
+  -- parsers.
 
   try :: m a -> m a
 
@@ -160,7 +161,7 @@
     -> m a             -- ^ Parser that can recover from failures
 
   -- | @'observing' p@ allows to “observe” failure of the @p@ parser, should
-  -- it happen, without actually ending parsing, but instead getting the
+  -- it happen, without actually ending parsing but instead getting the
   -- 'ParseError' in 'Left'. On success parsed value is returned in 'Right'
   -- as usual. Note that this primitive just allows you to observe parse
   -- errors as they happen, it does not backtrack or change how the @p@
@@ -172,7 +173,7 @@
     :: m a             -- ^ The parser to run
     -> m (Either (ParseError s e) a)
 
-  -- | This parser only succeeds at the end of the input.
+  -- | This parser only succeeds at the end of input.
 
   eof :: m ()
 
@@ -231,8 +232,8 @@
 
   -- | Parse /zero/ or more tokens for which the supplied predicate holds.
   -- Try to use this as much as possible because for many streams the
-  -- combinator is much faster than parsers built with 'many' and
-  -- 'Text.Megaparsec.Char.satisfy'.
+  -- combinator is much faster than parsers built with
+  -- 'Control.Monad.Combinators.many' and 'Text.Megaparsec.satisfy'.
   --
   -- The following equations should clarify the behavior:
   --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Debug.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Debug.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Debug.hs       2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Debug.hs       1970-01-01 
01:00:00.000000000 +0100
@@ -52,7 +52,8 @@
 -- transformers without introducing surprising behavior (e.g. unexpected
 -- state backtracking) or adding otherwise redundant constraints (e.g.
 -- 'Show' instance for state), so this helper is only available for
--- 'ParsecT' monad, not any instance of 'MonadParsec' in general.
+-- 'ParsecT' monad, not any instance of 'Text.Megaparsec.MonadParsec' in
+-- general.
 
 dbg :: forall e s m a.
   ( Stream s
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Error.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Error.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Error.hs       2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Error.hs       1970-01-01 
01:00:00.000000000 +0100
@@ -96,8 +96,7 @@
     -- level and actual level, reference indentation level, actual
     -- indentation level
   | ErrorCustom e
-    -- ^ Custom error data, can be conveniently disabled by indexing
-    -- 'ErrorFancy' by 'Void'
+    -- ^ Custom error data
   deriving (Show, Read, Eq, Ord, Data, Typeable, Generic, Functor)
 
 instance NFData a => NFData (ErrorFancy a) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Internal.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Internal.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Internal.hs    2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Internal.hs    1970-01-01 
01:00:00.000000000 +0100
@@ -100,7 +100,7 @@
 
 data Reply e s a = Reply (State s) Consumption (Result s e a)
 
--- | This data structure represents an aspect of result of parser's work.
+-- | Whether the input has been consumed or not.
 --
 -- See also: 'Result', 'Reply'.
 
@@ -108,7 +108,8 @@
   = Consumed -- ^ Some part of input stream was consumed
   | Virgin   -- ^ No input was consumed
 
--- | This data structure represents an aspect of result of parser's work.
+-- | Whether the parser has failed or not. On success we include the
+-- resulting value, on failure we include a 'ParseError'.
 --
 -- See also: 'Consumption', 'Reply'.
 
@@ -540,7 +541,7 @@
 ----------------------------------------------------------------------------
 -- Helper functions
 
--- | Convert 'ParseError' record into 'Hints'.
+-- | Convert 'ParseError' record to 'Hints'.
 
 toHints
   :: Stream s
@@ -588,8 +589,8 @@
 {-# INLINE accHints #-}
 
 -- | Replace the most recent group of hints (if any) with the given
--- 'ErrorItem' (or delete it if 'Nothing' is given). This is used in 'label'
--- primitive.
+-- 'ErrorItem' (or delete it if 'Nothing' is given). This is used in the
+-- 'label' primitive.
 
 refreshLastHint :: Hints t -> Maybe (ErrorItem t) -> Hints t
 refreshLastHint (Hints [])     _        = Hints []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Lexer.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Lexer.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Lexer.hs       2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Lexer.hs       1970-01-01 
01:00:00.000000000 +0100
@@ -43,10 +43,10 @@
 -- 'takeWhile1P' are preferred because of their speed.
 --
 -- @lineComment@ is used to parse line comments. You can use
--- 'skipLineComment' if you don't need anything special.
+-- @skipLineComment@ if you don't need anything special.
 --
 -- @blockComment@ is used to parse block (multi-line) comments. You can use
--- 'skipBlockComment' or 'skipBlockCommentNested' if you don't need anything
+-- @skipBlockComment@ or @skipBlockCommentNested@ if you don't need anything
 -- special.
 --
 -- If you don't want to allow a kind of comment, simply pass 'empty' which
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Pos.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Pos.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Pos.hs 2018-10-31 12:17:51.000000000 
+0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Pos.hs 1970-01-01 01:00:00.000000000 
+0100
@@ -8,8 +8,7 @@
 -- Portability :  portable
 --
 -- Textual source position. The position includes name of file, line number,
--- and column number. A non-empty list of such positions can be used to
--- model a stack of include files.
+-- and column number.
 --
 -- You probably do not want to import this module directly because
 -- "Text.Megaparsec" re-exports it anyway.
@@ -87,6 +86,10 @@
 -- you want to refer to the default tab width because actual value /may/
 -- change in future.
 --
+-- Currently:
+--
+-- > defaultTabWidth = mkPos 8
+--
 -- @since 5.0.0
 
 defaultTabWidth :: Pos
@@ -109,8 +112,7 @@
 -- @since 5.0.0
 
 newtype InvalidPosException = InvalidPosException Int
-  -- ^ The first value is the minimal allowed value, the second value is the
-  -- actual value that was passed to 'mkPos'.
+  -- ^ Contains the actual value that was passed to 'mkPos'
   deriving (Eq, Show, Data, Typeable, Generic)
 
 instance Exception InvalidPosException
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec/Stream.hs 
new/megaparsec-7.0.4/Text/Megaparsec/Stream.hs
--- old/megaparsec-7.0.3/Text/Megaparsec/Stream.hs      2018-10-31 
12:17:51.000000000 +0100
+++ new/megaparsec-7.0.4/Text/Megaparsec/Stream.hs      1970-01-01 
01:00:00.000000000 +0100
@@ -166,7 +166,7 @@
   reachOffset
     :: Int             -- ^ Offset to reach
     -> PosState s      -- ^ Initial 'PosState' to use
-    -> (SourcePos, String, PosState s) -- ^ (See above)
+    -> (SourcePos, String, PosState s) -- ^ (See below)
 
   -- | A version of 'reachOffset' that may be faster because it doesn't need
   -- to fetch the line at which the given offset in located.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/Text/Megaparsec.hs 
new/megaparsec-7.0.4/Text/Megaparsec.hs
--- old/megaparsec-7.0.3/Text/Megaparsec.hs     2018-10-31 12:17:51.000000000 
+0100
+++ new/megaparsec-7.0.4/Text/Megaparsec.hs     1970-01-01 01:00:00.000000000 
+0100
@@ -11,7 +11,8 @@
 --
 -- This module includes everything you need to get started writing a parser.
 -- If you are new to Megaparsec and don't know where to begin, take a look
--- at the tutorials 
<https://markkarpov.com/learn-haskell.html#megaparsec-tutorials>.
+-- at the tutorials
+-- <https://markkarpov.com/learn-haskell.html#megaparsec-tutorials>.
 --
 -- In addition to the "Text.Megaparsec" module, which exports and re-exports
 -- most everything that you may need, we advise to import
@@ -39,7 +40,7 @@
 --
 -- Megaparsec uses some type-level machinery to provide flexibility without
 -- compromising on type safety. Thus type signatures are sometimes necessary
--- to avoid ambiguous types. If you're seeing a error message that reads
+-- to avoid ambiguous types. If you're seeing an error message that reads
 -- like “Type variable @e0@ is ambiguous …”, you need to give an explicit
 -- signature to your parser to resolve the ambiguity. It's a good idea to
 -- provide type signatures for all top-level definitions.
@@ -173,7 +174,7 @@
 -- will fail.
 --
 -- The function is supposed to be useful for lightweight parsing, where
--- error messages (and thus file name) are not important and entire input
+-- error messages (and thus file names) are not important and entire input
 -- should be parsed. For example, it can be used when parsing of a single
 -- number according to a specification of its format is desired.
 
@@ -183,7 +184,7 @@
     Left  _ -> Nothing
     Right x -> Just x
 
--- | The expression @'parseTest' p input@ applies the parser @p@ against
+-- | The expression @'parseTest' p input@ applies the parser @p@ against the
 -- input @input@ and prints the result to stdout. Useful for testing.
 
 parseTest :: ( ShowErrorComponent e
@@ -200,8 +201,8 @@
 
 -- | @'runParser' p file input@ runs parser @p@ on the input stream of
 -- tokens @input@, obtained from source @file@. The @file@ is only used in
--- error messages and may be the empty string. Returns either a 'ParseError'
--- ('Left') or a value of type @a@ ('Right').
+-- error messages and may be the empty string. Returns either a
+-- 'ParseErrorBundle' ('Left') or a value of type @a@ ('Right').
 --
 -- > parseFromFile p file = runParser p file <$> readFile file
 
@@ -228,8 +229,8 @@
 -- | @'runParserT' p file input@ runs parser @p@ on the input list of tokens
 -- @input@, obtained from source @file@. The @file@ is only used in error
 -- messages and may be the empty string. Returns a computation in the
--- underlying monad @m@ that returns either a 'ParseError' ('Left') or a
--- value of type @a@ ('Right').
+-- underlying monad @m@ that returns either a 'ParseErrorBundle' ('Left') or
+-- a value of type @a@ ('Right').
 
 runParserT :: Monad m
   => ParsecT e s m a -- ^ Parser to run
@@ -296,8 +297,7 @@
 {-# INLINE single #-}
 
 -- | The parser @'satisfy' f@ succeeds for any token for which the supplied
--- function @f@ returns 'True'. Returns the character that is actually
--- parsed.
+-- function @f@ returns 'True'.
 --
 -- > digitChar = satisfy isDigit <?> "digit"
 -- > oneOf cs  = satisfy (`elem` cs)
@@ -315,7 +315,7 @@
 {-# INLINE satisfy #-}
 
 -- | Parse and return a single token. It's a good idea to attach a 'label'
--- to this parser manually.
+-- to this parser.
 --
 -- > anySingle = satisfy (const True)
 --
@@ -328,7 +328,7 @@
 {-# INLINE anySingle #-}
 
 -- | Match any token but the given one. It's a good idea to attach a 'label'
--- to this parser manually.
+-- to this parser.
 --
 -- > anySingleBut t = satisfy (/= t)
 --
@@ -377,7 +377,7 @@
 --
 -- See also: 'satisfy'.
 --
--- __Performance note__: prefer 'satisfy' and 'singleBut' when you can
+-- __Performance note__: prefer 'satisfy' and 'anySingleBut' when you can
 -- because it's faster.
 --
 -- @since 7.0.0
@@ -520,9 +520,9 @@
 -- not call it e.g. on matching of every token, that's a bad idea. Still you
 -- can use it to get 'SourcePos' to attach to things that you parse.
 --
--- The function works under the assumption that we move in input stream only
--- forward and never backward, which is always true unless the user abuses
--- the library on purpose.
+-- The function works under the assumption that we move in the input stream
+-- only forwards and never backwards, which is always true unless the user
+-- abuses the library.
 --
 -- @since 7.0.0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/megaparsec-7.0.3/megaparsec.cabal 
new/megaparsec-7.0.4/megaparsec.cabal
--- old/megaparsec-7.0.3/megaparsec.cabal       2018-10-31 12:17:51.000000000 
+0100
+++ new/megaparsec-7.0.4/megaparsec.cabal       1970-01-01 01:00:00.000000000 
+0100
@@ -1,7 +1,7 @@
 name:                 megaparsec
-version:              7.0.3
+version:              7.0.4
 cabal-version:        1.18
-tested-with:          GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, 
GHC==8.6.1
+tested-with:          GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, 
GHC==8.6.2
 license:              BSD2
 license-file:         LICENSE.md
 author:               Megaparsec contributors,


Reply via email to