{"action":"opened","issue":{"url":"https://api.github.com/repos/commercialhaskell/jump/issues/12","repository_url":"https://api.github.com/repos/commercialhaskell/jump","labels_url":"https://api.github.com/repos/commercialhaskell/jump/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/commercialhaskell/jump/issues/12/comments","events_url":"https://api.github.com/repos/commercialhaskell/jump/issues/12/events","html_url":"https://github.com/commercialhaskell/jump/issues/12","id":154115783,"number":12,"title":"More instances for MapClass and its subclasses?","user":{"login":"sjakobi","id":3664523,"avatar_url":"https://avatars.githubusercontent.com/u/3664523?v=3","gravatar_id":"","url":"https://api.github.com/users/sjakobi","html_url":"https://github.com/sjakobi","followers_url":"https://api.github.com/users/sjakobi/followers","following_url":"https://api.github.com/users/sjakobi/following{/other_user}","gists_url":"https://api.github.com/users/sjakobi/gists{/gist_id}","starred_url":"https://api.github.com/users/sjakobi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sjakobi/subscriptions","organizations_url":"https://api.github.com/users/sjakobi/orgs","repos_url":"https://api.github.com/users/sjakobi/repos","events_url":"https://api.github.com/users/sjakobi/events{/privacy}","received_events_url":"https://api.github.com/users/sjakobi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-05-10T21:54:31Z","updated_at":"2016-05-10T21:54:31Z","closed_at":null,"body":"While looking around for mappings from `String` keys to values I've come across a few packages containing potential instances for `MapClass`:\r\n\r\n* `bytestring-trie` ([hackage](https://hackage.haskell.org/package/bytestring-trie), [github](https://github.com/wrengr/bytestring-trie))\r\n* `TernaryTrees` ([hackage](https://hackage.haskell.org/package/TernaryTrees), [github](https://github.com/axman6/TernaryTrees))\r\n* `list-tries` ([hackage](hackage.haskell.org/package/list-tries), [github](https://github.com/Deewiant/list-tries))\r\n* `data-stringmap` ([hackage](https://hackage.haskell.org/package/data-stringmap), [github](https://github.com/sebastian-philipp/StringMap))\r\n\r\nSome of these haven't been updated in a while and might not be worth bothering with.\r\n\r\nIf `MapClass` and its subclasses should in principle allow for instances from these packages, the classes should be checked for whether they can be implemented with reasonable effort (and while satisfying reasonable laws).\r\n\r\nFor example the `Trie` from `bytestring-trie` doesn't currently seem to offer a better definition of `OrdMap.splitRoot` than `(: [])`.\r\n\r\n\r\nOn a less related note, I'm wondering whether there would be a point in moving `MapClass` and its subclasses into a separate package, so they're less heavyweight to use for packages that might not use `jump` as a whole?"}}