{"action":"created","issue":{"url":"https://api.github.com/repos/aurapm/aura/issues/223","labels_url":"https://api.github.com/repos/aurapm/aura/issues/223/labels{/name}","comments_url":"https://api.github.com/repos/aurapm/aura/issues/223/comments","events_url":"https://api.github.com/repos/aurapm/aura/issues/223/events","html_url":"https://github.com/aurapm/aura/issues/223","id":32593800,"number":223,"title":"Haskell libraries to switch to","user":{"login":"fosskers","id":229679,"avatar_url":"https://avatars.githubusercontent.com/u/229679?v=3","gravatar_id":"","url":"https://api.github.com/users/fosskers","html_url":"https://github.com/fosskers","followers_url":"https://api.github.com/users/fosskers/followers","following_url":"https://api.github.com/users/fosskers/following{/other_user}","gists_url":"https://api.github.com/users/fosskers/gists{/gist_id}","starred_url":"https://api.github.com/users/fosskers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fosskers/subscriptions","organizations_url":"https://api.github.com/users/fosskers/orgs","repos_url":"https://api.github.com/users/fosskers/repos","events_url":"https://api.github.com/users/fosskers/events{/privacy}","received_events_url":"https://api.github.com/users/fosskers/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/aurapm/aura/labels/Aura2","name":"Aura2","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":38,"created_at":"2014-05-01T04:28:35Z","updated_at":"2015-02-21T23:36:41Z","closed_at":null,"body":"Aura is two years old now, and some libraries have since moved on. Others have better replacements. This is a list of libraries that should be switched to:\r\n\r\n1. [wreq](http://hackage.haskell.org/package/wreq). Simpler than `http-conduit`, and uses Lenses.\r\n2. [aeson](http://hackage.haskell.org/package/aeson). A lot better than the `json` package, which is quite out of date by now.\r\n3. [aeson-pretty](http://hackage.haskell.org/package/aeson-pretty) for changing how backup data is stored.\r\n4. [text](http://hackage.haskell.org/package/text) `Text` is modern and more performant. Also, `parsec` can work with `Text`.\r\n5. [optparse-applicative](http://hackage.haskell.org/package/optparse-applicative) Use applicatives for commandline args.\r\n6. [semigroups](http://hackage.haskell.org/package/semigroups) Provides `Data.List.NonEmpty`. This would be good to have after initial dep checks are done.\r\n7. [semigroupoids](http://hackage.haskell.org/package/semigroupoids) For Monoidal Functor typeclasses, among others.\r\n\r\nI'm up for suggestions."},"comment":{"url":"https://api.github.com/repos/aurapm/aura/issues/comments/75399596","html_url":"https://github.com/aurapm/aura/issues/223#issuecomment-75399596","issue_url":"https://api.github.com/repos/aurapm/aura/issues/223","id":75399596,"user":{"login":"mrak","id":491140,"avatar_url":"https://avatars.githubusercontent.com/u/491140?v=3","gravatar_id":"","url":"https://api.github.com/users/mrak","html_url":"https://github.com/mrak","followers_url":"https://api.github.com/users/mrak/followers","following_url":"https://api.github.com/users/mrak/following{/other_user}","gists_url":"https://api.github.com/users/mrak/gists{/gist_id}","starred_url":"https://api.github.com/users/mrak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrak/subscriptions","organizations_url":"https://api.github.com/users/mrak/orgs","repos_url":"https://api.github.com/users/mrak/repos","events_url":"https://api.github.com/users/mrak/events{/privacy}","received_events_url":"https://api.github.com/users/mrak/received_events","type":"User","site_admin":false},"created_at":"2015-02-21T23:36:41Z","updated_at":"2015-02-21T23:36:41Z","body":"[optparse-applicative](https://github.com/pcapriotti/optparse-applicative) currently doesn't allow short flags to be specified together, a la `-Syu` :disappointed: \r\n\r\nThere is an open PR for it, though:\r\nhttps://github.com/pcapriotti/optparse-applicative/pull/123"}}