{"action":"created","comment":{"url":"https://api.github.com/repos/exercism/xocaml/pulls/comments/81469962","pull_request_review_id":2448890,"id":81469962,"diff_hunk":"@@ -0,0 +1,201 @@\n+open Core.Std\n+open OUnit2\n+open Say\n+\n+let print_result = function\n+  | None -> \"None\"\n+  | Some(x) -> x\n+                 \n+let tests =\n+  [\"cannot say numbers below 0\">::(fun _ ->\n+     assert_bool \"-1\"\n+                  (in_english (-1L) |> Option.is_none)\n+   );\n+   \"cannot say numbers above 1 trillion\">::(fun _ ->\n+     assert_bool \"1 trillion\"\n+                 (in_english 1_000_000_000_000L |> Option.is_none)\n+   );\n+   \"zero\">::(fun _ ->\n+     assert_equal ~printer:print_result\n+                  (Some \"zero\")\n+                  (in_english 0L)\n+   );","path":"exercises/say/test.ml","position":22,"original_position":22,"commit_id":"1e4b35437edc200a2be3824fa26ac5fc020c9243","original_commit_id":"1e4b35437edc200a2be3824fa26ac5fc020c9243","user":{"login":"dvberkel","id":493347,"avatar_url":"https://avatars.githubusercontent.com/u/493347?v=3","gravatar_id":"","url":"https://api.github.com/users/dvberkel","html_url":"https://github.com/dvberkel","followers_url":"https://api.github.com/users/dvberkel/followers","following_url":"https://api.github.com/users/dvberkel/following{/other_user}","gists_url":"https://api.github.com/users/dvberkel/gists{/gist_id}","starred_url":"https://api.github.com/users/dvberkel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dvberkel/subscriptions","organizations_url":"https://api.github.com/users/dvberkel/orgs","repos_url":"https://api.github.com/users/dvberkel/repos","events_url":"https://api.github.com/users/dvberkel/events{/privacy}","received_events_url":"https://api.github.com/users/dvberkel/received_events","type":"User","site_admin":false},"body":"A lot of the assertions have the same structure. I.e.\r\n\r\n```ocaml\r\n(fun _ ->\r\n    assert_equal ~printer:print_result (Some \"zero\") (in_english 0L)\r\n)\r\n```\r\n\r\nOther exercises introduced a function that so that the boilerplate noise is reduced. In this case that could be something like\r\n\r\n```ocaml\r\nlet ae exp got _test_ctxt = assert_equal ~printer:print_result exp got\r\n```","created_at":"2016-10-02T13:18:16Z","updated_at":"2016-10-02T13:20:11Z","html_url":"https://github.com/exercism/xocaml/pull/64#discussion_r81469962","pull_request_url":"https://api.github.com/repos/exercism/xocaml/pulls/64","_links":{"self":{"href":"https://api.github.com/repos/exercism/xocaml/pulls/comments/81469962"},"html":{"href":"https://github.com/exercism/xocaml/pull/64#discussion_r81469962"},"pull_request":{"href":"https://api.github.com/repos/exercism/xocaml/pulls/64"}}},"pull_request":{"url":"https://api.github.com/repos/exercism/xocaml/pulls/64","id":87626827,"html_url":"https://github.com/exercism/xocaml/pull/64","diff_url":"https://github.com/exercism/xocaml/pull/64.diff","patch_url":"https://github.com/exercism/xocaml/pull/64.patch","issue_url":"https://api.github.com/repos/exercism/xocaml/issues/64","number":64,"state":"open","locked":false,"title":"Say","user":{"login":"stevejb71","id":1400291,"avatar_url":"https://avatars.githubusercontent.com/u/1400291?v=3","gravatar_id":"","url":"https://api.github.com/users/stevejb71","html_url":"https://github.com/stevejb71","followers_url":"https://api.github.com/users/stevejb71/followers","following_url":"https://api.github.com/users/stevejb71/following{/other_user}","gists_url":"https://api.github.com/users/stevejb71/gists{/gist_id}","starred_url":"https://api.github.com/users/stevejb71/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevejb71/subscriptions","organizations_url":"https://api.github.com/users/stevejb71/orgs","repos_url":"https://api.github.com/users/stevejb71/repos","events_url":"https://api.github.com/users/stevejb71/events{/privacy}","received_events_url":"https://api.github.com/users/stevejb71/received_events","type":"User","site_admin":false},"body":"Implementation of the \"Say\" exercise in OCaml.","created_at":"2016-10-02T07:11:39Z","updated_at":"2016-10-02T13:20:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2f0a6d9e7ff7814c7065b0d7c71d3d3eb9dcb3ae","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/exercism/xocaml/pulls/64/commits","review_comments_url":"https://api.github.com/repos/exercism/xocaml/pulls/64/comments","review_comment_url":"https://api.github.com/repos/exercism/xocaml/pulls/comments{/number}","comments_url":"https://api.github.com/repos/exercism/xocaml/issues/64/comments","statuses_url":"https://api.github.com/repos/exercism/xocaml/statuses/1e4b35437edc200a2be3824fa26ac5fc020c9243","head":{"label":"stevejb71:Say","ref":"Say","sha":"1e4b35437edc200a2be3824fa26ac5fc020c9243","user":{"login":"stevejb71","id":1400291,"avatar_url":"https://avatars.githubusercontent.com/u/1400291?v=3","gravatar_id":"","url":"https://api.github.com/users/stevejb71","html_url":"https://github.com/stevejb71","followers_url":"https://api.github.com/users/stevejb71/followers","following_url":"https://api.github.com/users/stevejb71/following{/other_user}","gists_url":"https://api.github.com/users/stevejb71/gists{/gist_id}","starred_url":"https://api.github.com/users/stevejb71/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevejb71/subscriptions","organizations_url":"https://api.github.com/users/stevejb71/orgs","repos_url":"https://api.github.com/users/stevejb71/repos","events_url":"https://api.github.com/users/stevejb71/events{/privacy}","received_events_url":"https://api.github.com/users/stevejb71/received_events","type":"User","site_admin":false},"repo":{"id":61976057,"name":"xocaml","full_name":"stevejb71/xocaml","owner":{"login":"stevejb71","id":1400291,"avatar_url":"https://avatars.githubusercontent.com/u/1400291?v=3","gravatar_id":"","url":"https://api.github.com/users/stevejb71","html_url":"https://github.com/stevejb71","followers_url":"https://api.github.com/users/stevejb71/followers","following_url":"https://api.github.com/users/stevejb71/following{/other_user}","gists_url":"https://api.github.com/users/stevejb71/gists{/gist_id}","starred_url":"https://api.github.com/users/stevejb71/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevejb71/subscriptions","organizations_url":"https://api.github.com/users/stevejb71/orgs","repos_url":"https://api.github.com/users/stevejb71/repos","events_url":"https://api.github.com/users/stevejb71/events{/privacy}","received_events_url":"https://api.github.com/users/stevejb71/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stevejb71/xocaml","description":"Exercism Exercises in OCaml","fork":true,"url":"https://api.github.com/repos/stevejb71/xocaml","forks_url":"https://api.github.com/repos/stevejb71/xocaml/forks","keys_url":"https://api.github.com/repos/stevejb71/xocaml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stevejb71/xocaml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stevejb71/xocaml/teams","hooks_url":"https://api.github.com/repos/stevejb71/xocaml/hooks","issue_events_url":"https://api.github.com/repos/stevejb71/xocaml/issues/events{/number}","events_url":"https://api.github.com/repos/stevejb71/xocaml/events","assignees_url":"https://api.github.com/repos/stevejb71/xocaml/assignees{/user}","branches_url":"https://api.github.com/repos/stevejb71/xocaml/branches{/branch}","tags_url":"https://api.github.com/repos/stevejb71/xocaml/tags","blobs_url":"https://api.github.com/repos/stevejb71/xocaml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stevejb71/xocaml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stevejb71/xocaml/git/refs{/sha}","trees_url":"https://api.github.com/repos/stevejb71/xocaml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stevejb71/xocaml/statuses/{sha}","languages_url":"https://api.github.com/repos/stevejb71/xocaml/languages","stargazers_url":"https://api.github.com/repos/stevejb71/xocaml/stargazers","contributors_url":"https://api.github.com/repos/stevejb71/xocaml/contributors","subscribers_url":"https://api.github.com/repos/stevejb71/xocaml/subscribers","subscription_url":"https://api.github.com/repos/stevejb71/xocaml/subscription","commits_url":"https://api.github.com/repos/stevejb71/xocaml/commits{/sha}","git_commits_url":"https://api.github.com/repos/stevejb71/xocaml/git/commits{/sha}","comments_url":"https://api.github.com/repos/stevejb71/xocaml/comments{/number}","issue_comment_url":"https://api.github.com/repos/stevejb71/xocaml/issues/comments{/number}","contents_url":"https://api.github.com/repos/stevejb71/xocaml/contents/{+path}","compare_url":"https://api.github.com/repos/stevejb71/xocaml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stevejb71/xocaml/merges","archive_url":"https://api.github.com/repos/stevejb71/xocaml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stevejb71/xocaml/downloads","issues_url":"https://api.github.com/repos/stevejb71/xocaml/issues{/number}","pulls_url":"https://api.github.com/repos/stevejb71/xocaml/pulls{/number}","milestones_url":"https://api.github.com/repos/stevejb71/xocaml/milestones{/number}","notifications_url":"https://api.github.com/repos/stevejb71/xocaml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stevejb71/xocaml/labels{/name}","releases_url":"https://api.github.com/repos/stevejb71/xocaml/releases{/id}","deployments_url":"https://api.github.com/repos/stevejb71/xocaml/deployments","created_at":"2016-06-26T06:01:04Z","updated_at":"2016-06-26T06:01:05Z","pushed_at":"2016-10-02T07:10:07Z","git_url":"git://github.com/stevejb71/xocaml.git","ssh_url":"git@github.com:stevejb71/xocaml.git","clone_url":"https://github.com/stevejb71/xocaml.git","svn_url":"https://github.com/stevejb71/xocaml","homepage":null,"size":23465,"stargazers_count":0,"watchers_count":0,"language":"OCaml","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"exercism:master","ref":"master","sha":"8fb2187fa16f50e2d1f3696f4bb347316d14dc6c","user":{"login":"exercism","id":5624255,"avatar_url":"https://avatars.githubusercontent.com/u/5624255?v=3","gravatar_id":"","url":"https://api.github.com/users/exercism","html_url":"https://github.com/exercism","followers_url":"https://api.github.com/users/exercism/followers","following_url":"https://api.github.com/users/exercism/following{/other_user}","gists_url":"https://api.github.com/users/exercism/gists{/gist_id}","starred_url":"https://api.github.com/users/exercism/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exercism/subscriptions","organizations_url":"https://api.github.com/users/exercism/orgs","repos_url":"https://api.github.com/users/exercism/repos","events_url":"https://api.github.com/users/exercism/events{/privacy}","received_events_url":"https://api.github.com/users/exercism/received_events","type":"Organization","site_admin":false},"repo":{"id":17273866,"name":"xocaml","full_name":"exercism/xocaml","owner":{"login":"exercism","id":5624255,"avatar_url":"https://avatars.githubusercontent.com/u/5624255?v=3","gravatar_id":"","url":"https://api.github.com/users/exercism","html_url":"https://github.com/exercism","followers_url":"https://api.github.com/users/exercism/followers","following_url":"https://api.github.com/users/exercism/following{/other_user}","gists_url":"https://api.github.com/users/exercism/gists{/gist_id}","starred_url":"https://api.github.com/users/exercism/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/exercism/subscriptions","organizations_url":"https://api.github.com/users/exercism/orgs","repos_url":"https://api.github.com/users/exercism/repos","events_url":"https://api.github.com/users/exercism/events{/privacy}","received_events_url":"https://api.github.com/users/exercism/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/exercism/xocaml","description":"Exercism Exercises in OCaml","fork":false,"url":"https://api.github.com/repos/exercism/xocaml","forks_url":"https://api.github.com/repos/exercism/xocaml/forks","keys_url":"https://api.github.com/repos/exercism/xocaml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/exercism/xocaml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/exercism/xocaml/teams","hooks_url":"https://api.github.com/repos/exercism/xocaml/hooks","issue_events_url":"https://api.github.com/repos/exercism/xocaml/issues/events{/number}","events_url":"https://api.github.com/repos/exercism/xocaml/events","assignees_url":"https://api.github.com/repos/exercism/xocaml/assignees{/user}","branches_url":"https://api.github.com/repos/exercism/xocaml/branches{/branch}","tags_url":"https://api.github.com/repos/exercism/xocaml/tags","blobs_url":"https://api.github.com/repos/exercism/xocaml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/exercism/xocaml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/exercism/xocaml/git/refs{/sha}","trees_url":"https://api.github.com/repos/exercism/xocaml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/exercism/xocaml/statuses/{sha}","languages_url":"https://api.github.com/repos/exercism/xocaml/languages","stargazers_url":"https://api.github.com/repos/exercism/xocaml/stargazers","contributors_url":"https://api.github.com/repos/exercism/xocaml/contributors","subscribers_url":"https://api.github.com/repos/exercism/xocaml/subscribers","subscription_url":"https://api.github.com/repos/exercism/xocaml/subscription","commits_url":"https://api.github.com/repos/exercism/xocaml/commits{/sha}","git_commits_url":"https://api.github.com/repos/exercism/xocaml/git/commits{/sha}","comments_url":"https://api.github.com/repos/exercism/xocaml/comments{/number}","issue_comment_url":"https://api.github.com/repos/exercism/xocaml/issues/comments{/number}","contents_url":"https://api.github.com/repos/exercism/xocaml/contents/{+path}","compare_url":"https://api.github.com/repos/exercism/xocaml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/exercism/xocaml/merges","archive_url":"https://api.github.com/repos/exercism/xocaml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/exercism/xocaml/downloads","issues_url":"https://api.github.com/repos/exercism/xocaml/issues{/number}","pulls_url":"https://api.github.com/repos/exercism/xocaml/pulls{/number}","milestones_url":"https://api.github.com/repos/exercism/xocaml/milestones{/number}","notifications_url":"https://api.github.com/repos/exercism/xocaml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/exercism/xocaml/labels{/name}","releases_url":"https://api.github.com/repos/exercism/xocaml/releases{/id}","deployments_url":"https://api.github.com/repos/exercism/xocaml/deployments","created_at":"2014-02-28T03:23:52Z","updated_at":"2016-09-21T15:30:56Z","pushed_at":"2016-10-02T07:11:39Z","git_url":"git://github.com/exercism/xocaml.git","ssh_url":"git@github.com:exercism/xocaml.git","clone_url":"https://github.com/exercism/xocaml.git","svn_url":"https://github.com/exercism/xocaml","homepage":null,"size":23509,"stargazers_count":26,"watchers_count":26,"language":"OCaml","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":15,"mirror_url":null,"open_issues_count":7,"forks":15,"open_issues":7,"watchers":26,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/exercism/xocaml/pulls/64"},"html":{"href":"https://github.com/exercism/xocaml/pull/64"},"issue":{"href":"https://api.github.com/repos/exercism/xocaml/issues/64"},"comments":{"href":"https://api.github.com/repos/exercism/xocaml/issues/64/comments"},"review_comments":{"href":"https://api.github.com/repos/exercism/xocaml/pulls/64/comments"},"review_comment":{"href":"https://api.github.com/repos/exercism/xocaml/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/exercism/xocaml/pulls/64/commits"},"statuses":{"href":"https://api.github.com/repos/exercism/xocaml/statuses/1e4b35437edc200a2be3824fa26ac5fc020c9243"}}}}
{"actor":{"display_login":"dvberkel"}}