{"action":"created","issue":{"url":"https://api.github.com/repos/jml/holborn/issues/9","labels_url":"https://api.github.com/repos/jml/holborn/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/jml/holborn/issues/9/comments","events_url":"https://api.github.com/repos/jml/holborn/issues/9/events","html_url":"https://github.com/jml/holborn/pull/9","id":97331575,"number":9,"title":"Cleanup and tests for \"merge left\" behaviour","user":{"login":"jml","id":125674,"avatar_url":"https://avatars.githubusercontent.com/u/125674?v=3","gravatar_id":"","url":"https://api.github.com/users/jml","html_url":"https://github.com/jml","followers_url":"https://api.github.com/users/jml/followers","following_url":"https://api.github.com/users/jml/following{/other_user}","gists_url":"https://api.github.com/users/jml/gists{/gist_id}","starred_url":"https://api.github.com/users/jml/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jml/subscriptions","organizations_url":"https://api.github.com/users/jml/orgs","repos_url":"https://api.github.com/users/jml/repos","events_url":"https://api.github.com/users/jml/events{/privacy}","received_events_url":"https://api.github.com/users/jml/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-26T16:31:40Z","updated_at":"2015-07-26T17:46:10Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jml/holborn/pulls/9","html_url":"https://github.com/jml/holborn/pull/9","diff_url":"https://github.com/jml/holborn/pull/9.diff","patch_url":"https://github.com/jml/holborn/pull/9.patch"},"body":"I had an idle hour, so I extracted the `mergeLeftBy` behaviour out of the `annotateTokens` function in an effort to clarify what we're doing. \"No raw algorithms\" and all that.\r\n\r\n* New `mergeLeftBy` function\r\n* Some types now derive `Show`, so we can report errors\r\n* QuickCheck and unit tests for `mergeLeftBy`\r\n* `annotateTokens` uses `mergeLeftBy` (still untested)\r\n* New `assertRight` helper\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/jml/holborn/9)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/jml/holborn/issues/comments/125022337","html_url":"https://github.com/jml/holborn/pull/9#issuecomment-125022337","issue_url":"https://api.github.com/repos/jml/holborn/issues/9","id":125022337,"user":{"login":"teh","id":139251,"avatar_url":"https://avatars.githubusercontent.com/u/139251?v=3","gravatar_id":"","url":"https://api.github.com/users/teh","html_url":"https://github.com/teh","followers_url":"https://api.github.com/users/teh/followers","following_url":"https://api.github.com/users/teh/following{/other_user}","gists_url":"https://api.github.com/users/teh/gists{/gist_id}","starred_url":"https://api.github.com/users/teh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/teh/subscriptions","organizations_url":"https://api.github.com/users/teh/orgs","repos_url":"https://api.github.com/users/teh/repos","events_url":"https://api.github.com/users/teh/events{/privacy}","received_events_url":"https://api.github.com/users/teh/received_events","type":"User","site_admin":false},"created_at":"2015-07-26T17:46:10Z","updated_at":"2015-07-26T17:46:10Z","body":"nice, LGTM\r\n\r\nI think the algorithm is in the same O-class but could be slower when written as a left-merge with Nothings + filter like right now but that doesn't really matter at all. Cleaner to read."}}