Parsec community and up-to-date documentation

Hi! I've been busy with (trying to) learning/using parsec lately and as a beginner had a lot of headache starting from outdated documentation in various places, lack of more tutorials, confusion between Text.Parsec and Text.ParseCombinator modules and so on. While I solved most of my problems via googling / reading stackoverflow / reading source code (of outdated version first, btw, the one I got from Daan's homepage :), I still had a feeling all the time that I'm doing something wrong and that I can't find place where "party is going on". So I wondered, what can I do to create a community around Parsec, to get issue tracking, pull-requests, up-to-date comprehensive documentation and tutorials etc.? Parsec seems like a perfect candidate for something like this. Thank you.

On Mon, Mar 25, 2013 at 5:19 AM, Konstantine Rybnikov
as a beginner had a lot of headache starting from outdated documentation in various places, lack of more tutorials, confusion between Text.Parsec and Text.ParseCombinator modules and so on.
You're indeed right.
While I solved most of my problems via googling / reading stackoverflow / reading source code (of outdated version first, btw, the one I got from Daan's homepage :), I still had a feeling all the time that I'm doing something wrong and that I can't find place where "party is going on".
If you look at the dates of the papers on Wikipedia [1], the party was totally hoppin' in the last decade of the previous century. Not so much since. Sigh.
So I wondered, what can I do to create a community around Parsec, to get issue tracking, pull-requests, up-to-date comprehensive documentation and tutorials etc.? Parsec seems like a perfect candidate for something like this.
While the experience is still fresh in your mind, may I suggest that you write a note or two on the most confusing things you encountered and how you dealt with them? Making your notes public is a way of gathering a community around shared experiences. Also, the denizens of the haskell IRC at freenode will gladly converse with you about parsec. The same goes for subscribers to this list and also haskell-beginners. [1] http://en.wikipedia.org/wiki/Parser_combinator -- Kim-Ee

On Mon, Mar 25, 2013 at 1:11 AM, Kim-Ee Yeoh
as a beginner had a lot of headache starting from outdated documentation in various places, lack of more tutorials, confusion between Text.Parsec and Text.ParseCombinator modules and so on.
You're indeed right.
While I solved most of my problems via googling / reading stackoverflow / reading source code (of outdated version first, btw, the one I got from Daan's homepage :), I still had a feeling all the time that I'm doing something wrong and that I can't find place where "party is going on".
If you look at the dates of the papers on Wikipedia [1], the party was totally hoppin' in the last decade of the previous century. Not so much since. Sigh.
So I wondered, what can I do to create a community around Parsec, to get issue tracking, pull-requests, up-to-date comprehensive documentation and tutorials etc.? Parsec seems like a perfect candidate for something like this.
While the experience is still fresh in your mind, may I suggest that you write a note or two on the most confusing things you encountered and how you dealt with them? Making your notes public is a way of gathering a community around shared experiences.
These things are mostly small ones. The main issue is outdated tutorial [3] page. From what I can remember now: 1. my confusion definitely began with export-confusion (explaining about Parsec3 / Parsec2, Text.Parsec and Text.ParseCombinator modules) in various places (realworldhaskell book [1], parsec's homepage [2]) 2. also, while [2] looks like a homepage for parsec, it's also quite old and points to old version of sources, for example. 2. new parsec3 API (and examples with monad-transformer, parsing of Text) should be added to [3]. The thing I was looking for (and began implementing just before I noticed my parsec is too old and new one has what I need) was also from new API, it was anyToken function. So I was able now to write: skipWhileNot p = do { try (lookAhead p) } <|> do { anyToken; skipWhileNot p } combinator that would let me skip pieces of information I can't parse. 3. add type declarations and explanation into [3] 4. documentation [3] should be split into multiple pages with better navigation 5. not a concrete suggestion, but just adding more examples would be great I'm sure there were plenty concrete suggestions / small improvements that I already forgot. I absolutely agree that it's better to write notes when memories are fresh, that's why I think having issue tracking and ability to do small pull-requests would really help. Also, the denizens of the haskell IRC at freenode will gladly converse
with you about parsec. The same goes for subscribers to this list and also haskell-beginners.
[1] http://en.wikipedia.org/wiki/Parser_combinator
-- Kim-Ee
It's great that haskell community is such welcome for beginners, thanks. [1] http://book.realworldhaskell.org/read/using-parsec.html [2] http://legacy.cs.uu.nl/daan/parsec.html [3] http://legacy.cs.uu.nl/daan/download/parsec/parsec.html

* Konstantine Rybnikov
Hi!
I've been busy with (trying to) learning/using parsec lately and as a beginner had a lot of headache starting from outdated documentation in various places, lack of more tutorials, confusion between Text.Parsec and Text.ParseCombinator modules and so on.
While I solved most of my problems via googling / reading stackoverflow / reading source code (of outdated version first, btw, the one I got from Daan's homepage :), I still had a feeling all the time that I'm doing something wrong and that I can't find place where "party is going on".
So I wondered, what can I do to create a community around Parsec, to get issue tracking, pull-requests, up-to-date comprehensive documentation and tutorials etc.? Parsec seems like a perfect candidate for something like this.
A couple of years ago I decided to do pretty much this — create up-to-date comprehensive documentation for Parsec. Unfortunately, the project turned out too ambitious for me at the time. The only part of it that I've finished is published as this SO answer: http://stackoverflow.com/a/6040237/110081 Of course, SO answers are not a substitute for good documentation, but they are a good way to start, and you can later merge those answers into something more coherent. So this is one way you approach it — just publish the knowledge you've acquired as self-answered questions on SO. Roman

On Mon, Mar 25, 2013 at 8:49 AM, Roman Cheplyaka
* Konstantine Rybnikov
[2013-03-25 00:19:04+0200] Hi!
I've been busy with (trying to) learning/using parsec lately and as a beginner had a lot of headache starting from outdated documentation in various places, lack of more tutorials, confusion between Text.Parsec and Text.ParseCombinator modules and so on.
While I solved most of my problems via googling / reading stackoverflow / reading source code (of outdated version first, btw, the one I got from Daan's homepage :), I still had a feeling all the time that I'm doing something wrong and that I can't find place where "party is going on".
So I wondered, what can I do to create a community around Parsec, to get issue tracking, pull-requests, up-to-date comprehensive documentation and tutorials etc.? Parsec seems like a perfect candidate for something like this.
A couple of years ago I decided to do pretty much this — create up-to-date comprehensive documentation for Parsec. Unfortunately, the project turned out too ambitious for me at the time. The only part of it that I've finished is published as this SO answer: http://stackoverflow.com/a/6040237/110081
Of course, SO answers are not a substitute for good documentation, but they are a good way to start, and you can later merge those answers into something more coherent. So this is one way you approach it — just publish the knowledge you've acquired as self-answered questions on SO.
Roman
Thanks, Roman. I've totally read this answer some time yesterday (too late, unfortunately). You also seemed (due to logs) to implement functionality I needed (lookAhead, if I'm not mistaken). Thanks! But I just don't understand why such a basic thing as live community-hub for a project (github page would be enough for this) is so hard to create. I'm also not saying I would write a lot of docs, but at least making them more "up to date" doesn't look as too ambitious task.

* Konstantine Rybnikov
On Mon, Mar 25, 2013 at 8:49 AM, Roman Cheplyaka
wrote: * Konstantine Rybnikov
[2013-03-25 00:19:04+0200] Hi!
I've been busy with (trying to) learning/using parsec lately and as a beginner had a lot of headache starting from outdated documentation in various places, lack of more tutorials, confusion between Text.Parsec and Text.ParseCombinator modules and so on.
While I solved most of my problems via googling / reading stackoverflow / reading source code (of outdated version first, btw, the one I got from Daan's homepage :), I still had a feeling all the time that I'm doing something wrong and that I can't find place where "party is going on".
So I wondered, what can I do to create a community around Parsec, to get issue tracking, pull-requests, up-to-date comprehensive documentation and tutorials etc.? Parsec seems like a perfect candidate for something like this.
A couple of years ago I decided to do pretty much this — create up-to-date comprehensive documentation for Parsec. Unfortunately, the project turned out too ambitious for me at the time. The only part of it that I've finished is published as this SO answer: http://stackoverflow.com/a/6040237/110081
Of course, SO answers are not a substitute for good documentation, but they are a good way to start, and you can later merge those answers into something more coherent. So this is one way you approach it — just publish the knowledge you've acquired as self-answered questions on SO.
Roman
Thanks, Roman. I've totally read this answer some time yesterday (too late, unfortunately). You also seemed (due to logs) to implement functionality I needed (lookAhead, if I'm not mistaken). Thanks!
But I just don't understand why such a basic thing as live community-hub for a project (github page would be enough for this) is so hard to create. I'm also not saying I would write a lot of docs, but at least making them more "up to date" doesn't look as too ambitious task.
It's not hard to create — it's hard to get traction. Anyway, don't be discouraged by my experience. Go for it! I put back my original repo at https://github.com/feuerbach/parsec-doc — feel free to use it. In particular, it contains an interesting analysis of parsec usage by Dmitry Astapov. Roman
participants (3)
-
Kim-Ee Yeoh
-
Konstantine Rybnikov
-
Roman Cheplyaka