[Haskell-cafe] ANNOUNCE: Megaparsec – an improved and actively maintained fork of Parsec

Andrey Chudnov achudnov at gmail.com
Tue Sep 29 19:46:38 UTC 2015

(Artyom, I hope you can forward the following to the original author 
and, ideally, have them subscribe to the mailing list)

As a heavy user of parsec, I have to say this is simply awesome. I've 
read through the announcement and the changelog, and I have to say the 
changes seem to be spot on and scratch so many old itches I have 
personally struggled with when using parsec. I'm at the point where I am 
seriously considering porting all my code to megaparsec; however, lack 
of compatibility with GHC <7.10 is a bit of a deal-breaker at this point.

I'd like to discuss the decision to fork parsec. Now, I'm not judging: 
as long as the license permits it, whether to fork or not is really up 
to the forker.

However, it seems the author of megaparsec would like it to become the 
new standard parsing library (see "How you can help"). I'd like that 
too. However, I don't think that forking is the best way to achieve 
that. Of the two reasons that were given here, the first (stagnant 
development and maintenance) is a good reason to become either a 
co-maintainer, or a new maintainer. There seems to be a pretty smooth 
process for that now, and it doesn't raise any eyebrows when someone 
requests to be the new maintainer having good reasons for it (like 
willingness to contribute time and effort to the package).

The second reason is backwards compatibility. It's true the changes 
might break some code, but that's why we have major versions. And the 
overall architecture and interface is still in line with parsec. So, to 
me it makes perfect sense to call megaparsec a parsec- and get 
some continuity from the older library. That way megaparsec becomes the 
default just by inheritance.

So, if the author of megaparsec is open to becoming a maintainer of 
parsec, I'm sure the Hackage Trustees would be willing to help. If not, 
I'm personally willing to champion that.


On 09/29/2015 02:42 PM, Artyom wrote:
> Hello!
> I'd like to announce the release of Megaparsec, a fork of Parsec that has
> been in the works for the past 2 months. There's a lot of improvements 
> and
> bugfixes under the hood – as well as a new test suite with 128 Quickcheck
> tests covering 80% of code (Parsec has only 3 tests, by the way) – but 
> first
> I'd like to explain why a fork was needed, since forking a popular 
> library is
> a pretty drastic measure and should be accompanied by an explanation. (A
> disclaimer: I've been given permission to announce the library, but I'm
> neither the author nor an expert on parsing.)
> [..snip..]

More information about the Haskell-Cafe mailing list