{"action":"created","issue":{"url":"https://api.github.com/repos/ollef/Earley/issues/12","labels_url":"https://api.github.com/repos/ollef/Earley/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/ollef/Earley/issues/12/comments","events_url":"https://api.github.com/repos/ollef/Earley/issues/12/events","html_url":"https://github.com/ollef/Earley/issues/12","id":106928351,"number":12,"title":"document implementation","user":{"login":"sboosali","id":2320433,"avatar_url":"https://avatars.githubusercontent.com/u/2320433?v=3","gravatar_id":"","url":"https://api.github.com/users/sboosali","html_url":"https://github.com/sboosali","followers_url":"https://api.github.com/users/sboosali/followers","following_url":"https://api.github.com/users/sboosali/following{/other_user}","gists_url":"https://api.github.com/users/sboosali/gists{/gist_id}","starred_url":"https://api.github.com/users/sboosali/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sboosali/subscriptions","organizations_url":"https://api.github.com/users/sboosali/orgs","repos_url":"https://api.github.com/users/sboosali/repos","events_url":"https://api.github.com/users/sboosali/events{/privacy}","received_events_url":"https://api.github.com/users/sboosali/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ollef/Earley/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2015-09-17T07:45:06Z","updated_at":"2015-10-06T08:43:30Z","closed_at":null,"body":"I want to contribute a few ideas I have for new features. but after reading the source, I still can't understand how `parse` works. \r\n\r\nin http://www.nltk.org/book/ch08-extras.html (2 Chart Parsing and 2.7 The Earley Algorithm), the concepts seem to be: \r\n\r\n1. edges between tokens, complete or non-complete \r\n2. rules, which add new edges given the current edges \r\n3. a chart, a structure that holds edges\r\n4. strategies, this set of rules that differentiate chart parsers from each other \r\n\r\nbut I don't see these in the types (State/Cont/Conts/Result). if they're not really there, how should I think about the types? is there a blog post or paper I could read that more closely reflects the core ideas behind this package?\r\n\r\nalso, it helps to know about:\r\n\r\n4. any patterns this package uses, or tricks. e.g. why the nested reference in `Conts`:\r\n\r\n```haskell \r\n     contsArgs :: !(STRef s (Maybe (STRef s (Results s a))))\r\n```\r\n\r\nis it for performance, for correctness? Everything is there for a reason, but it's hard to read for a noob like me.\r\n\r\nthanks :-)"},"comment":{"url":"https://api.github.com/repos/ollef/Earley/issues/comments/145785361","html_url":"https://github.com/ollef/Earley/issues/12#issuecomment-145785361","issue_url":"https://api.github.com/repos/ollef/Earley/issues/12","id":145785361,"user":{"login":"ollef","id":197549,"avatar_url":"https://avatars.githubusercontent.com/u/197549?v=3","gravatar_id":"","url":"https://api.github.com/users/ollef","html_url":"https://github.com/ollef","followers_url":"https://api.github.com/users/ollef/followers","following_url":"https://api.github.com/users/ollef/following{/other_user}","gists_url":"https://api.github.com/users/ollef/gists{/gist_id}","starred_url":"https://api.github.com/users/ollef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ollef/subscriptions","organizations_url":"https://api.github.com/users/ollef/orgs","repos_url":"https://api.github.com/users/ollef/repos","events_url":"https://api.github.com/users/ollef/events{/privacy}","received_events_url":"https://api.github.com/users/ollef/received_events","type":"User","site_admin":false},"created_at":"2015-10-06T08:43:30Z","updated_at":"2015-10-06T08:43:30Z","body":"@sboosali: I've added you as a collaborator to the repository so you can add this to the documentation if you're up for it. I suggest adding it to the `docs` directory and linking it somewhere appropriate in the README. I can help flesh it out when I find the time. A minor issue from a quick look is that the types of a few of the combinators are incorrect: the list and maybe types should be \"pushed into\" the return types."}}