{"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":4,"created_at":"2015-10-07T23:48:21Z","updated_at":"2015-10-08T00:58:50Z","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/146385554","html_url":"https://github.com/paf31/purescript-thermite/pull/38#issuecomment-146385554","issue_url":"https://api.github.com/repos/paf31/purescript-thermite/issues/38","id":146385554,"user":{"login":"jasonzoladz","id":8467728,"avatar_url":"https://avatars.githubusercontent.com/u/8467728?v=3","gravatar_id":"","url":"https://api.github.com/users/jasonzoladz","html_url":"https://github.com/jasonzoladz","followers_url":"https://api.github.com/users/jasonzoladz/followers","following_url":"https://api.github.com/users/jasonzoladz/following{/other_user}","gists_url":"https://api.github.com/users/jasonzoladz/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonzoladz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonzoladz/subscriptions","organizations_url":"https://api.github.com/users/jasonzoladz/orgs","repos_url":"https://api.github.com/users/jasonzoladz/repos","events_url":"https://api.github.com/users/jasonzoladz/events{/privacy}","received_events_url":"https://api.github.com/users/jasonzoladz/received_events","type":"User","site_admin":false},"created_at":"2015-10-08T00:58:50Z","updated_at":"2015-10-08T00:58:50Z","body":"@paf31 Fair enough.  If you're considering more drastic changes you might look at https://hackage.haskell.org/package/react-flux for inspiration.  It's really nice."}}