{"action":"created","issue":{"url":"https://api.github.com/repos/racket/typed-racket/issues/74","labels_url":"https://api.github.com/repos/racket/typed-racket/issues/74/labels{/name}","comments_url":"https://api.github.com/repos/racket/typed-racket/issues/74/comments","events_url":"https://api.github.com/repos/racket/typed-racket/issues/74/events","html_url":"https://github.com/racket/typed-racket/pull/74","id":65640581,"number":74,"title":"Add typed/rnrs/sorting-6","user":{"login":"lexi-lambda","id":759911,"avatar_url":"https://avatars.githubusercontent.com/u/759911?v=3","gravatar_id":"","url":"https://api.github.com/users/lexi-lambda","html_url":"https://github.com/lexi-lambda","followers_url":"https://api.github.com/users/lexi-lambda/followers","following_url":"https://api.github.com/users/lexi-lambda/following{/other_user}","gists_url":"https://api.github.com/users/lexi-lambda/gists{/gist_id}","starred_url":"https://api.github.com/users/lexi-lambda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lexi-lambda/subscriptions","organizations_url":"https://api.github.com/users/lexi-lambda/orgs","repos_url":"https://api.github.com/users/lexi-lambda/repos","events_url":"https://api.github.com/users/lexi-lambda/events{/privacy}","received_events_url":"https://api.github.com/users/lexi-lambda/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-04-01T09:12:40Z","updated_at":"2015-04-01T15:58:27Z","closed_at":"2015-04-01T15:57:37Z","pull_request":{"url":"https://api.github.com/repos/racket/typed-racket/pulls/74","html_url":"https://github.com/racket/typed-racket/pull/74","diff_url":"https://github.com/racket/typed-racket/pull/74.diff","patch_url":"https://github.com/racket/typed-racket/pull/74.patch"},"body":"This is a small addition to `typed-racket-more`, adding a `typed/rnrs/sorting-6` module. Here's my reasoning for adding it:\r\n\r\n- For some reason, Racket does not provide built-in `vector-sort` and `vector-sort!` functions. This does, and they operate on plain Racket vectors.\r\n- Including this polymorphically with `require/typed` is impossible, since the wrapped value causes contract errors (this might actually be a bug with polymorphic vectors; I should look into that more).\r\n- Even if it were possible (or if you require it with a more specific, non-polymorphic type), the generated contracts make these functions considerably more expensive than they should be.\r\n\r\nEven if it's uncommonly used, I figure it can't hurt to stick in the library. I found myself wanting it, at least."},"comment":{"url":"https://api.github.com/repos/racket/typed-racket/issues/comments/88532360","html_url":"https://github.com/racket/typed-racket/pull/74#issuecomment-88532360","issue_url":"https://api.github.com/repos/racket/typed-racket/issues/74","id":88532360,"user":{"login":"samth","id":244723,"avatar_url":"https://avatars.githubusercontent.com/u/244723?v=3","gravatar_id":"","url":"https://api.github.com/users/samth","html_url":"https://github.com/samth","followers_url":"https://api.github.com/users/samth/followers","following_url":"https://api.github.com/users/samth/following{/other_user}","gists_url":"https://api.github.com/users/samth/gists{/gist_id}","starred_url":"https://api.github.com/users/samth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samth/subscriptions","organizations_url":"https://api.github.com/users/samth/orgs","repos_url":"https://api.github.com/users/samth/repos","events_url":"https://api.github.com/users/samth/events{/privacy}","received_events_url":"https://api.github.com/users/samth/received_events","type":"User","site_admin":false},"created_at":"2015-04-01T15:58:27Z","updated_at":"2015-04-01T15:58:27Z","body":"I think `sort` actually has a `vector-sort!` implementation inside."}}