{"action":"created","comment":{"url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/comments/121319381","pull_request_review_id":43355413,"id":121319381,"diff_hunk":"@@ -0,0 +1,212 @@\n+\n+(* This file is free software, part of containers. See file \"license\" for more details. *)\n+\n+type 'a t = 'a array\n+\n+val empty : 'a t\n+\n+val isEmpty: 'a t -> bool\n+\n+external make : int -> 'a -> 'a t = \"caml_make_vect\"\n+(** [Barray.make n x] returns a fresh t of length [n],\n+    initialized with [x].\n+    All the elements of this new t are initially\n+    physically equal to [x] (in the sense of the [==] predicate).\n+    Consequently, if [x] is mutable, it is shared among all elements\n+    of the t, and modifying [x] through one of the t entries\n+    will modify all other entries at the same time.\n+    Raise [Invalid_argument] if [n < 0] or [n > Sys.max_array_length].\n+    If the value of [x] is a floating-point number, then the maximum\n+    size is only [Sys.max_array_length / 2].*)\n+\n+val makeWithInit : int -> (int -> 'a) -> 'a t\n+(** [Barray.init n f] returns a fresh t of length [n],\n+    with element number [i] initialized to the result of [f i].\n+    In other terms, [Array.init n f] tabulates the results of [f]\n+    applied to the integers [0] to [n-1].\n+    Raise [Invalid_argument] if [n < 0] or [n > Sys.max_array_length].\n+    If the return type of [f] is [float], then the maximum\n+    size is only [Sys.max_array_length / 2].*)\n+\n+val length : 'a t -> int\n+\n+val get : int -> 'a t -> 'a option\n+\n+val set : int -> 'a -> 'a t -> bool\n+\n+val getOrRaise : int -> 'a t -> 'a\n+\n+val setOrRaise : int -> 'a -> 'a t -> unit\n+\n+val unsafeGetUnchecked : int -> 'a t -> 'a\n+\n+val unsafeSetUnchecked : int -> 'a -> 'a t -> unit\n+\n+val equals : 'a Equality.t -> 'a t -> 'a t -> bool\n+\n+val compare : ('a -> 'b -> Ordering.t) -> 'a t -> 'b t -> Ordering.t\n+\n+val append : 'a t -> 'a t -> 'a t\n+(** [Barray.append v1 v2] returns a fresh t containing the\n+    concatenation of the arrays [v1] and [v2]. *)\n+\n+val concat : 'a t list -> 'a t\n+(** Same as [Barray.append], but concatenates a list of arrays. *)\n+\n+val slice : start_:int -> end_:int -> 'a t -> 'a t option\n+(** [Barray.slice start end a] returns a fresh t,\n+    containing the elements number [start] to [end - 1]\n+    of t [a].\n+    Return None if [start] and [end] do not\n+    designate a valid subarray of [a]; that is, if\n+    [start < 0], or [end < 0], or [end > Array.length a]. *)\n+\n+val copy : 'a t -> 'a t\n+(** [Barray.copy a] returns a copy of [a], that is, a fresh t\n+    containing the same elements as [a]. *)\n+\n+val toSequence : 'a t -> 'a Bsequence.t\n+\n+val fromSequence : 'a Bsequence.t -> 'a t\n+\n+val map : ('a -> 'b) -> 'a t -> 'b t\n+\n+val mapWithIndex : (int -> 'a -> 'b) -> 'a t -> 'b t\n+(** Same as {!Array.map}, but the\n+    function is applied to the index of the element as first argument,\n+    and the element itself as second argument. *)\n+\n+val map2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t option\n+(** Map on two arrays stepwise.\n+      @raise Invalid_argument if they have distinct lengths *)\n+\n+val reduce : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a\n+(** [Barray.reduce f x a] computes\n+    [f (... (f (f x a.(0)) a.(1)) ...) a.(n-1)],\n+    where [n] is the length of the t [a]. *)\n+\n+val reduceReversed : ('b -> 'a -> 'a) -> 'a -> 'b t -> 'a\n+(** [Baray.reduceReversed f a x] computes\n+    [f a.(0) (f a.(1) ( ... (f a.(n-1) x) ...))],\n+    where [n] is the length of the t [a]. *)\n+\n+val reduceWithIndex : ('a -> int -> 'b -> 'a) -> 'a -> 'b t -> 'a\n+(** Fold left on t, with index *)\n+\n+val reduceWhile : ('a -> 'b -> 'a * bool) -> 'a -> 'b t -> 'a\n+(** Fold left on t until a stop condition is\n+    indicated by the accumulator *)\n+\n+val blit : x:'a t -> idx:int -> y:'a t -> idy:int -> len:int -> unit\n+(** [Barray.blit from i into j len] copies [len] elements from the first t\n+    to the second. See {!Array.blit}. *)\n+\n+val reverse : 'a t -> 'a t\n+(** Copy + reverse in place *)\n+\n+val reverseInPlace : 'a t -> unit\n+(** Reverse the t in place *)\n+\n+val sort : ('a Comparator.t) -> 'a t -> unit\n+(** Sort an t in increasing order according to a comparison\n+    function. After calling [Barray.sort], the\n+    t is sorted in place in increasing order.\n+    [Barray.sort] is guaranteed to run in constant heap space\n+    and (at most) logarithmic stack space.\n+    The current implementation uses Heap Sort.  It runs in constant\n+    stack space.\n+    When [Barray.sort] returns, [a] contains the same elements as before,\n+    reordered in such a way that for all i and j valid indices of [a] :\n+    -   [cmp a.(i) a.(j)] == Ordering.Greater if and only if i >= j\n+*)\n+\n+val stableSort : ('a -> 'a -> int) -> 'a t-> unit\n+(** Same as {!Barray.sort}, but the sorting algorithm is stable (i.e.\n+    elements that compare equal are kept in their original order) and\n+    not guaranteed to run in constant heap space.\n+    The current implementation uses Merge Sort. It uses [n/2]\n+    words of heap space, where [n] is the length of the t.\n+    It is usually faster than the current implementation of {!Barray.sort}.\n+*)\n+\n+val fastSort : ('a -> 'a -> int) -> 'a t -> unit\n+(** Same as {!Barray.sort} or {!Barray.stableSort}, whichever is faster\n+    on typical input.\n+*)\n+\n+val sorted : ('a Comparator.t) -> 'a t -> 'a t\n+(** [sorted cmp a] makes a copy of [a] and sorts it with [cmp]. *)\n+\n+val sortIndices : ('a Comparator.t) -> 'a t -> int t\n+(** [sortIndices cmp a] returns a new t [b], with the same length as [a],\n+    such that [b.(i)] is the index of the [i]-th element of [a] in [sort cmp a].\n+    In other words, [map (fun i -> a.(i)) (sortIndices a) = sorted cmp a].\n+    [a] is not modified. *)\n+\n+val sortRanking : ('a Comparator.t) -> 'a t -> int t\n+(** [sortRanking cmp a] returns a new t [b], with the same length as [a],\n+    such that [b.(i)] is the position in [sorted cmp a] of the [i]-th\n+    element of [a].\n+    [a] is not modified.\n+\n+    In other words, [map (fun i -> (sorted cmp a).(i)) (sortRanking cmp a) = a].\n+*)\n+\n+val find : ('a -> 'b option) -> 'a t -> 'b option\n+\n+val findWithIndex : (int -> 'a -> 'b option) -> 'a t -> 'b option\n+(** Like {!find}, but also pass the index to the predicate function. *)\n+\n+val findIndex : ('a -> bool) -> 'a t -> (int * 'a) option\n+(** [Barray.findIndex p x] returns [Some (i,x)] where [x] is the [i]-th element of [l],\n+    and [p x] holds. Otherwise returns [None] *)\n+\n+val bsearch : 'a Comparator.t -> 'a -> 'a t ->\n+    [ `All_lower | `All_bigger | `Just_after of int | `Empty | `At of int ]\n+(** [Barray.bsearch cmp x arr] finds the index of the object [x] in the t [arr],\n+    provided [arr] is {b sorted} using [cmp]. If the t is not sorted,\n+    the result is not specified (may raise Invalid_argument).\n+\n+    Complexity: O(log n) where n is the length of the t\n+    (dichotomic search).\n+\n+    @return\n+    - [`At i] if [cmp arr.(i) x = 0] (for some i)\n+    - [`All_lower] if all elements of [arr] are lower than [x]\n+    - [`All_bigger] if all elements of [arr] are bigger than [x]\n+    - [`Just_after i] if [arr.(i) < x < arr.(i+1)]\n+    - [`Empty] if the t is empty *)\n+\n+val forAll : ('a -> bool) -> 'a t -> bool\n+\n+val exists : ('a -> bool) -> 'a t -> bool\n+\n+val count : ('a -> bool) -> 'a t -> int\n+\n+val forEach : ('a -> unit) -> 'a t -> unit\n+\n+val forEachWithIndex : ('a -> int -> unit) -> 'a t -> unit\n+\n+val shuffle : 'a t -> unit\n+(** Shuffle randomly the t, in place *)\n+\n+val shuffleWith : Random.State.t -> 'a t -> unit\n+(** Like shuffle but using a specialized random state *)\n+\n+val filter : ('a -> bool) -> 'a t -> 'a t\n+(** Filter elements out of the t. Only the elements satisfying\n+    the given predicate will be kept. *)\n+\n+val filterMap : ('a -> 'b option) -> 'a t -> 'b t\n+(** Map each element into another value, or discard it *)\n+\n+val flatMap : ('a -> 'b t) -> 'a t -> 'b t\n+(** Transform each element into an t, then flatten *)\n+\n+module Infix : sig\n+    val (--) : int -> int -> int t","path":"src/containers/barray.mli","position":207,"original_position":207,"commit_id":"ba284d3b80eaf33ad82ef1a63183f3a50c7fcfe9","original_commit_id":"ba284d3b80eaf33ad82ef1a63183f3a50c7fcfe9","user":{"login":"glennsl","id":5207036,"avatar_url":"https://avatars0.githubusercontent.com/u/5207036?v=3","gravatar_id":"","url":"https://api.github.com/users/glennsl","html_url":"https://github.com/glennsl","followers_url":"https://api.github.com/users/glennsl/followers","following_url":"https://api.github.com/users/glennsl/following{/other_user}","gists_url":"https://api.github.com/users/glennsl/gists{/gist_id}","starred_url":"https://api.github.com/users/glennsl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glennsl/subscriptions","organizations_url":"https://api.github.com/users/glennsl/orgs","repos_url":"https://api.github.com/users/glennsl/repos","events_url":"https://api.github.com/users/glennsl/events{/privacy}","received_events_url":"https://api.github.com/users/glennsl/received_events","type":"User","site_admin":false},"body":"This file still has too much indentation. There's not very many places where it actually shows though.","created_at":"2017-06-12T06:46:48Z","updated_at":"2017-06-12T06:49:02Z","html_url":"https://github.com/BuckleTypes/bs-containers/pull/38#discussion_r121319381","pull_request_url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38","_links":{"self":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/comments/121319381"},"html":{"href":"https://github.com/BuckleTypes/bs-containers/pull/38#discussion_r121319381"},"pull_request":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38"}}},"pull_request":{"url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38","id":117110372,"html_url":"https://github.com/BuckleTypes/bs-containers/pull/38","diff_url":"https://github.com/BuckleTypes/bs-containers/pull/38.diff","patch_url":"https://github.com/BuckleTypes/bs-containers/pull/38.patch","issue_url":"https://api.github.com/repos/BuckleTypes/bs-containers/issues/38","number":38,"state":"open","locked":false,"title":"[barray] adopt the barray module","user":{"login":"dorafmon","id":1662778,"avatar_url":"https://avatars3.githubusercontent.com/u/1662778?v=3","gravatar_id":"","url":"https://api.github.com/users/dorafmon","html_url":"https://github.com/dorafmon","followers_url":"https://api.github.com/users/dorafmon/followers","following_url":"https://api.github.com/users/dorafmon/following{/other_user}","gists_url":"https://api.github.com/users/dorafmon/gists{/gist_id}","starred_url":"https://api.github.com/users/dorafmon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dorafmon/subscriptions","organizations_url":"https://api.github.com/users/dorafmon/orgs","repos_url":"https://api.github.com/users/dorafmon/repos","events_url":"https://api.github.com/users/dorafmon/events{/privacy}","received_events_url":"https://api.github.com/users/dorafmon/received_events","type":"User","site_admin":false},"body":"This is WIP, but I think we can do a quick review for it.\r\n\r\nA few things in this change:\r\n1. I added the iterator module to replace the sequence module. The OCaml\r\ncommunity seems have not reached an aggrement on how functional\r\niterator would look like, we've got `gen`, `seq`, `Core.Sequence` etc. I\r\npicked this because it is purely functional and have a monadic\r\ninterface, while `Sequence` is side-effect based. Dave suggested we use\r\nthis as well.\r\n2. Adopted the barray module, added a Collection interface\r\n\r\nThings to do:\r\n1. add unit tests for barray","created_at":"2017-04-22T13:43:16Z","updated_at":"2017-06-12T06:49:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a0647352d75dc6f1510f9ad779f29b129a7d8e8c","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38/commits","review_comments_url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38/comments","review_comment_url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/comments{/number}","comments_url":"https://api.github.com/repos/BuckleTypes/bs-containers/issues/38/comments","statuses_url":"https://api.github.com/repos/BuckleTypes/bs-containers/statuses/ba284d3b80eaf33ad82ef1a63183f3a50c7fcfe9","head":{"label":"dorafmon:array","ref":"array","sha":"ba284d3b80eaf33ad82ef1a63183f3a50c7fcfe9","user":{"login":"dorafmon","id":1662778,"avatar_url":"https://avatars3.githubusercontent.com/u/1662778?v=3","gravatar_id":"","url":"https://api.github.com/users/dorafmon","html_url":"https://github.com/dorafmon","followers_url":"https://api.github.com/users/dorafmon/followers","following_url":"https://api.github.com/users/dorafmon/following{/other_user}","gists_url":"https://api.github.com/users/dorafmon/gists{/gist_id}","starred_url":"https://api.github.com/users/dorafmon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dorafmon/subscriptions","organizations_url":"https://api.github.com/users/dorafmon/orgs","repos_url":"https://api.github.com/users/dorafmon/repos","events_url":"https://api.github.com/users/dorafmon/events{/privacy}","received_events_url":"https://api.github.com/users/dorafmon/received_events","type":"User","site_admin":false},"repo":{"id":85747864,"name":"bs-containers","full_name":"dorafmon/bs-containers","owner":{"login":"dorafmon","id":1662778,"avatar_url":"https://avatars3.githubusercontent.com/u/1662778?v=3","gravatar_id":"","url":"https://api.github.com/users/dorafmon","html_url":"https://github.com/dorafmon","followers_url":"https://api.github.com/users/dorafmon/followers","following_url":"https://api.github.com/users/dorafmon/following{/other_user}","gists_url":"https://api.github.com/users/dorafmon/gists{/gist_id}","starred_url":"https://api.github.com/users/dorafmon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dorafmon/subscriptions","organizations_url":"https://api.github.com/users/dorafmon/orgs","repos_url":"https://api.github.com/users/dorafmon/repos","events_url":"https://api.github.com/users/dorafmon/events{/privacy}","received_events_url":"https://api.github.com/users/dorafmon/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dorafmon/bs-containers","description":null,"fork":true,"url":"https://api.github.com/repos/dorafmon/bs-containers","forks_url":"https://api.github.com/repos/dorafmon/bs-containers/forks","keys_url":"https://api.github.com/repos/dorafmon/bs-containers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dorafmon/bs-containers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dorafmon/bs-containers/teams","hooks_url":"https://api.github.com/repos/dorafmon/bs-containers/hooks","issue_events_url":"https://api.github.com/repos/dorafmon/bs-containers/issues/events{/number}","events_url":"https://api.github.com/repos/dorafmon/bs-containers/events","assignees_url":"https://api.github.com/repos/dorafmon/bs-containers/assignees{/user}","branches_url":"https://api.github.com/repos/dorafmon/bs-containers/branches{/branch}","tags_url":"https://api.github.com/repos/dorafmon/bs-containers/tags","blobs_url":"https://api.github.com/repos/dorafmon/bs-containers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dorafmon/bs-containers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dorafmon/bs-containers/git/refs{/sha}","trees_url":"https://api.github.com/repos/dorafmon/bs-containers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dorafmon/bs-containers/statuses/{sha}","languages_url":"https://api.github.com/repos/dorafmon/bs-containers/languages","stargazers_url":"https://api.github.com/repos/dorafmon/bs-containers/stargazers","contributors_url":"https://api.github.com/repos/dorafmon/bs-containers/contributors","subscribers_url":"https://api.github.com/repos/dorafmon/bs-containers/subscribers","subscription_url":"https://api.github.com/repos/dorafmon/bs-containers/subscription","commits_url":"https://api.github.com/repos/dorafmon/bs-containers/commits{/sha}","git_commits_url":"https://api.github.com/repos/dorafmon/bs-containers/git/commits{/sha}","comments_url":"https://api.github.com/repos/dorafmon/bs-containers/comments{/number}","issue_comment_url":"https://api.github.com/repos/dorafmon/bs-containers/issues/comments{/number}","contents_url":"https://api.github.com/repos/dorafmon/bs-containers/contents/{+path}","compare_url":"https://api.github.com/repos/dorafmon/bs-containers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dorafmon/bs-containers/merges","archive_url":"https://api.github.com/repos/dorafmon/bs-containers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dorafmon/bs-containers/downloads","issues_url":"https://api.github.com/repos/dorafmon/bs-containers/issues{/number}","pulls_url":"https://api.github.com/repos/dorafmon/bs-containers/pulls{/number}","milestones_url":"https://api.github.com/repos/dorafmon/bs-containers/milestones{/number}","notifications_url":"https://api.github.com/repos/dorafmon/bs-containers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dorafmon/bs-containers/labels{/name}","releases_url":"https://api.github.com/repos/dorafmon/bs-containers/releases{/id}","deployments_url":"https://api.github.com/repos/dorafmon/bs-containers/deployments","created_at":"2017-03-21T20:05:40Z","updated_at":"2017-03-21T20:28:22Z","pushed_at":"2017-06-11T18:12:50Z","git_url":"git://github.com/dorafmon/bs-containers.git","ssh_url":"git@github.com:dorafmon/bs-containers.git","clone_url":"https://github.com/dorafmon/bs-containers.git","svn_url":"https://github.com/dorafmon/bs-containers","homepage":null,"size":1172,"stargazers_count":0,"watchers_count":0,"language":"OCaml","has_issues":false,"has_projects":true,"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":"BuckleTypes:master","ref":"master","sha":"5cce6942931ce2ddaa21fb434b8747f2a4657553","user":{"login":"BuckleTypes","id":25113633,"avatar_url":"https://avatars0.githubusercontent.com/u/25113633?v=3","gravatar_id":"","url":"https://api.github.com/users/BuckleTypes","html_url":"https://github.com/BuckleTypes","followers_url":"https://api.github.com/users/BuckleTypes/followers","following_url":"https://api.github.com/users/BuckleTypes/following{/other_user}","gists_url":"https://api.github.com/users/BuckleTypes/gists{/gist_id}","starred_url":"https://api.github.com/users/BuckleTypes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BuckleTypes/subscriptions","organizations_url":"https://api.github.com/users/BuckleTypes/orgs","repos_url":"https://api.github.com/users/BuckleTypes/repos","events_url":"https://api.github.com/users/BuckleTypes/events{/privacy}","received_events_url":"https://api.github.com/users/BuckleTypes/received_events","type":"Organization","site_admin":false},"repo":{"id":85745162,"name":"bs-containers","full_name":"BuckleTypes/bs-containers","owner":{"login":"BuckleTypes","id":25113633,"avatar_url":"https://avatars0.githubusercontent.com/u/25113633?v=3","gravatar_id":"","url":"https://api.github.com/users/BuckleTypes","html_url":"https://github.com/BuckleTypes","followers_url":"https://api.github.com/users/BuckleTypes/followers","following_url":"https://api.github.com/users/BuckleTypes/following{/other_user}","gists_url":"https://api.github.com/users/BuckleTypes/gists{/gist_id}","starred_url":"https://api.github.com/users/BuckleTypes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BuckleTypes/subscriptions","organizations_url":"https://api.github.com/users/BuckleTypes/orgs","repos_url":"https://api.github.com/users/BuckleTypes/repos","events_url":"https://api.github.com/users/BuckleTypes/events{/privacy}","received_events_url":"https://api.github.com/users/BuckleTypes/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/BuckleTypes/bs-containers","description":"Containers for Bucklescript application","fork":false,"url":"https://api.github.com/repos/BuckleTypes/bs-containers","forks_url":"https://api.github.com/repos/BuckleTypes/bs-containers/forks","keys_url":"https://api.github.com/repos/BuckleTypes/bs-containers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BuckleTypes/bs-containers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BuckleTypes/bs-containers/teams","hooks_url":"https://api.github.com/repos/BuckleTypes/bs-containers/hooks","issue_events_url":"https://api.github.com/repos/BuckleTypes/bs-containers/issues/events{/number}","events_url":"https://api.github.com/repos/BuckleTypes/bs-containers/events","assignees_url":"https://api.github.com/repos/BuckleTypes/bs-containers/assignees{/user}","branches_url":"https://api.github.com/repos/BuckleTypes/bs-containers/branches{/branch}","tags_url":"https://api.github.com/repos/BuckleTypes/bs-containers/tags","blobs_url":"https://api.github.com/repos/BuckleTypes/bs-containers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BuckleTypes/bs-containers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BuckleTypes/bs-containers/git/refs{/sha}","trees_url":"https://api.github.com/repos/BuckleTypes/bs-containers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BuckleTypes/bs-containers/statuses/{sha}","languages_url":"https://api.github.com/repos/BuckleTypes/bs-containers/languages","stargazers_url":"https://api.github.com/repos/BuckleTypes/bs-containers/stargazers","contributors_url":"https://api.github.com/repos/BuckleTypes/bs-containers/contributors","subscribers_url":"https://api.github.com/repos/BuckleTypes/bs-containers/subscribers","subscription_url":"https://api.github.com/repos/BuckleTypes/bs-containers/subscription","commits_url":"https://api.github.com/repos/BuckleTypes/bs-containers/commits{/sha}","git_commits_url":"https://api.github.com/repos/BuckleTypes/bs-containers/git/commits{/sha}","comments_url":"https://api.github.com/repos/BuckleTypes/bs-containers/comments{/number}","issue_comment_url":"https://api.github.com/repos/BuckleTypes/bs-containers/issues/comments{/number}","contents_url":"https://api.github.com/repos/BuckleTypes/bs-containers/contents/{+path}","compare_url":"https://api.github.com/repos/BuckleTypes/bs-containers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BuckleTypes/bs-containers/merges","archive_url":"https://api.github.com/repos/BuckleTypes/bs-containers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BuckleTypes/bs-containers/downloads","issues_url":"https://api.github.com/repos/BuckleTypes/bs-containers/issues{/number}","pulls_url":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls{/number}","milestones_url":"https://api.github.com/repos/BuckleTypes/bs-containers/milestones{/number}","notifications_url":"https://api.github.com/repos/BuckleTypes/bs-containers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BuckleTypes/bs-containers/labels{/name}","releases_url":"https://api.github.com/repos/BuckleTypes/bs-containers/releases{/id}","deployments_url":"https://api.github.com/repos/BuckleTypes/bs-containers/deployments","created_at":"2017-03-21T19:35:50Z","updated_at":"2017-06-08T17:16:42Z","pushed_at":"2017-06-11T18:12:52Z","git_url":"git://github.com/BuckleTypes/bs-containers.git","ssh_url":"git@github.com:BuckleTypes/bs-containers.git","clone_url":"https://github.com/BuckleTypes/bs-containers.git","svn_url":"https://github.com/BuckleTypes/bs-containers","homepage":"https://buckletypes.github.io/bs-containers/","size":1132,"stargazers_count":16,"watchers_count":16,"language":"OCaml","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":12,"forks":5,"open_issues":12,"watchers":16,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38"},"html":{"href":"https://github.com/BuckleTypes/bs-containers/pull/38"},"issue":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/issues/38"},"comments":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/issues/38/comments"},"review_comments":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38/comments"},"review_comment":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/pulls/38/commits"},"statuses":{"href":"https://api.github.com/repos/BuckleTypes/bs-containers/statuses/ba284d3b80eaf33ad82ef1a63183f3a50c7fcfe9"}}}}
{"actor":{"display_login":"glennsl"}}