{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/vector/issues/102","labels_url":"https://api.github.com/repos/haskell/vector/issues/102/labels{/name}","comments_url":"https://api.github.com/repos/haskell/vector/issues/102/comments","events_url":"https://api.github.com/repos/haskell/vector/issues/102/events","html_url":"https://github.com/haskell/vector/pull/102","id":116032007,"number":102,"title":"Add Hashable Vector instances","user":{"login":"phadej","id":51087,"avatar_url":"https://avatars.githubusercontent.com/u/51087?v=3","gravatar_id":"","url":"https://api.github.com/users/phadej","html_url":"https://github.com/phadej","followers_url":"https://api.github.com/users/phadej/followers","following_url":"https://api.github.com/users/phadej/following{/other_user}","gists_url":"https://api.github.com/users/phadej/gists{/gist_id}","starred_url":"https://api.github.com/users/phadej/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phadej/subscriptions","organizations_url":"https://api.github.com/users/phadej/orgs","repos_url":"https://api.github.com/users/phadej/repos","events_url":"https://api.github.com/users/phadej/events{/privacy}","received_events_url":"https://api.github.com/users/phadej/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-11-10T05:46:08Z","updated_at":"2015-11-10T12:04:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/haskell/vector/pulls/102","html_url":"https://github.com/haskell/vector/pull/102","diff_url":"https://github.com/haskell/vector/pull/102.diff","patch_url":"https://github.com/haskell/vector/pull/102.patch"},"body":"Related to https://github.com/tibbe/hashable/issues/108#"},"comment":{"url":"https://api.github.com/repos/haskell/vector/issues/comments/155403308","html_url":"https://github.com/haskell/vector/pull/102#issuecomment-155403308","issue_url":"https://api.github.com/repos/haskell/vector/issues/102","id":155403308,"user":{"login":"phadej","id":51087,"avatar_url":"https://avatars.githubusercontent.com/u/51087?v=3","gravatar_id":"","url":"https://api.github.com/users/phadej","html_url":"https://github.com/phadej","followers_url":"https://api.github.com/users/phadej/followers","following_url":"https://api.github.com/users/phadej/following{/other_user}","gists_url":"https://api.github.com/users/phadej/gists{/gist_id}","starred_url":"https://api.github.com/users/phadej/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phadej/subscriptions","organizations_url":"https://api.github.com/users/phadej/orgs","repos_url":"https://api.github.com/users/phadej/repos","events_url":"https://api.github.com/users/phadej/events{/privacy}","received_events_url":"https://api.github.com/users/phadej/received_events","type":"User","site_admin":false},"created_at":"2015-11-10T12:04:08Z","updated_at":"2015-11-10T12:04:08Z","body":"A) please explain\r\nB) I cannot derive (using `Generic`) `Hashable` for types with `Vector` fields, because `Vector` isn't `Hashable`. I have to write boilerplate just for that.\r\nC) `Hashable` is meant to provide hash function so values can be used as keys in hash-based data structures, `unordered-containers`. For that current function is good and fast enough. To clarify `Hashable` isn't meant to be good cryptographic hash.\r\n\r\n> This package \\[ `hashable` \\] defines a class, Hashable, for types that can be converted to a hash value. This class exists for the benefit of hashing-based data structures.\r\n\r\nAlso I'm unaware of any libraries with hashable orphans for vectors. AFAIK there aren't one on Hackage. If there is one, I'd happy to use it, but I'd rather not to create any if there aren't.\r\n"}}