{"action":"created","issue":{"url":"https://api.github.com/repos/slamdata/purescript-halogen/issues/24","labels_url":"https://api.github.com/repos/slamdata/purescript-halogen/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/slamdata/purescript-halogen/issues/24/comments","events_url":"https://api.github.com/repos/slamdata/purescript-halogen/issues/24/events","html_url":"https://github.com/slamdata/purescript-halogen/issues/24","id":60289356,"number":24,"title":"Polish halogen for public release","user":{"login":"jdegoes","id":156745,"avatar_url":"https://avatars.githubusercontent.com/u/156745?v=3","gravatar_id":"","url":"https://api.github.com/users/jdegoes","html_url":"https://github.com/jdegoes","followers_url":"https://api.github.com/users/jdegoes/followers","following_url":"https://api.github.com/users/jdegoes/following{/other_user}","gists_url":"https://api.github.com/users/jdegoes/gists{/gist_id}","starred_url":"https://api.github.com/users/jdegoes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdegoes/subscriptions","organizations_url":"https://api.github.com/users/jdegoes/orgs","repos_url":"https://api.github.com/users/jdegoes/repos","events_url":"https://api.github.com/users/jdegoes/events{/privacy}","received_events_url":"https://api.github.com/users/jdegoes/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"paf31","id":630306,"avatar_url":"https://avatars.githubusercontent.com/u/630306?v=3","gravatar_id":"","url":"https://api.github.com/users/paf31","html_url":"https://github.com/paf31","followers_url":"https://api.github.com/users/paf31/followers","following_url":"https://api.github.com/users/paf31/following{/other_user}","gists_url":"https://api.github.com/users/paf31/gists{/gist_id}","starred_url":"https://api.github.com/users/paf31/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paf31/subscriptions","organizations_url":"https://api.github.com/users/paf31/orgs","repos_url":"https://api.github.com/users/paf31/repos","events_url":"https://api.github.com/users/paf31/events{/privacy}","received_events_url":"https://api.github.com/users/paf31/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2015-03-09T02:00:07Z","updated_at":"2015-03-11T03:47:09Z","closed_at":null,"body":"Halogen's quickly approaching the point where I think we should do a public release / announcement. \r\n\r\nHere's some things I'd like to see before we do that:\r\n\r\n1. **Increase type-safety**. Newtypes, phantom types, type classes, etc., wherever applicable.\r\n2. **Documentation**. Per method, per module, etc., so newbies can get up to speed.\r\n3. **Generalize & Parameterize**. For example, can we extract out the HTML tags so they can be used to generate HTML strings, etc., similar to blaze (without the monadic sugar, maybe using finally tagless)? Can we use `Aff` in more places which do not require an immediate return value?\r\n4. **Beef Up Example**. A good example, I think, is Pursuit, which uses Ajax and the hash string. Could we do that using Halogen?\r\n5. **Separate JS**. Not sure we are ready to do this, but if we are, then pulling out the JS pieces to \"future proof\" this for FFI changes would be nice. I'd prefer the JS be in this project as I don't think it will be useful by itself -- and personally I haven't figured out a way to do that."},"comment":{"url":"https://api.github.com/repos/slamdata/purescript-halogen/issues/comments/78200505","html_url":"https://github.com/slamdata/purescript-halogen/issues/24#issuecomment-78200505","issue_url":"https://api.github.com/repos/slamdata/purescript-halogen/issues/24","id":78200505,"user":{"login":"jdegoes","id":156745,"avatar_url":"https://avatars.githubusercontent.com/u/156745?v=3","gravatar_id":"","url":"https://api.github.com/users/jdegoes","html_url":"https://github.com/jdegoes","followers_url":"https://api.github.com/users/jdegoes/followers","following_url":"https://api.github.com/users/jdegoes/following{/other_user}","gists_url":"https://api.github.com/users/jdegoes/gists{/gist_id}","starred_url":"https://api.github.com/users/jdegoes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdegoes/subscriptions","organizations_url":"https://api.github.com/users/jdegoes/orgs","repos_url":"https://api.github.com/users/jdegoes/repos","events_url":"https://api.github.com/users/jdegoes/events{/privacy}","received_events_url":"https://api.github.com/users/jdegoes/received_events","type":"User","site_admin":false},"created_at":"2015-03-11T03:47:09Z","updated_at":"2015-03-11T03:47:09Z","body":"Let's hold off on (5) then because I'd rather whatever solution we end up with for PureScript 0.7 not be tied to the bower or NPM  ecosystems. As for (4), I do think some AJAX would be nice, or maybe IndexedDB which has async and is global."}}