{"action":"created","issue":{"url":"https://api.github.com/repos/paf31/purescript-thermite/issues/38","labels_url":"https://api.github.com/repos/paf31/purescript-thermite/issues/38/labels{/name}","comments_url":"https://api.github.com/repos/paf31/purescript-thermite/issues/38/comments","events_url":"https://api.github.com/repos/paf31/purescript-thermite/issues/38/events","html_url":"https://github.com/paf31/purescript-thermite/pull/38","id":110342635,"number":38,"title":"Remove Action monad, add focus operator, Semigroup and Monoid instances","user":{"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},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-10-07T23:48:21Z","updated_at":"2015-10-08T00:30:43Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/paf31/purescript-thermite/pulls/38","html_url":"https://github.com/paf31/purescript-thermite/pull/38","diff_url":"https://github.com/paf31/purescript-thermite/pull/38.diff","patch_url":"https://github.com/paf31/purescript-thermite/pull/38.patch"},"body":"@ethul @kRITZCREEK What do you think about this?\r\n\r\nThis adds `Monoid` and a lens/prism operator for `Spec`, so that there is a means to compose components. I based this on `optic-ui` since I think it's the most solid form of component composition I've seen.\r\n\r\nThe next step would be to add a `foreach` operator to create things like list components using a `Traversal`, as in `optic-ui` or `syb`.\r\n\r\n/cc @zrho"},"comment":{"url":"https://api.github.com/repos/paf31/purescript-thermite/issues/comments/146379527","html_url":"https://github.com/paf31/purescript-thermite/pull/38#issuecomment-146379527","issue_url":"https://api.github.com/repos/paf31/purescript-thermite/issues/38","id":146379527,"user":{"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},"created_at":"2015-10-08T00:30:43Z","updated_at":"2015-10-08T00:30:43Z","body":"@jasonzoladz You might be right, but I'm definitely not happy with certain things in the API right now. Specifically, component composition is harder than it needs to be, and the `Action` monad is a constant source of confusion/frustration. I'm going to leave this one open for a while, so people can try it out.\r\n\r\nWhen I'm happy with the API, I'll call it 1.0, and breaking changes will slow down considerably, but you should expect some breakage until we get there."}}