{"action":"created","issue":{"url":"https://api.github.com/repos/reflex-frp/reflex/issues/76","repository_url":"https://api.github.com/repos/reflex-frp/reflex","labels_url":"https://api.github.com/repos/reflex-frp/reflex/issues/76/labels{/name}","comments_url":"https://api.github.com/repos/reflex-frp/reflex/issues/76/comments","events_url":"https://api.github.com/repos/reflex-frp/reflex/issues/76/events","html_url":"https://github.com/reflex-frp/reflex/pull/76","id":187530941,"number":76,"title":"Added a base monad capable of `PerformEvent`, `PostBuild`, and `TriggerEvent`","user":{"login":"ElvishJerricco","id":1365692,"avatar_url":"https://avatars.githubusercontent.com/u/1365692?v=3","gravatar_id":"","url":"https://api.github.com/users/ElvishJerricco","html_url":"https://github.com/ElvishJerricco","followers_url":"https://api.github.com/users/ElvishJerricco/followers","following_url":"https://api.github.com/users/ElvishJerricco/following{/other_user}","gists_url":"https://api.github.com/users/ElvishJerricco/gists{/gist_id}","starred_url":"https://api.github.com/users/ElvishJerricco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElvishJerricco/subscriptions","organizations_url":"https://api.github.com/users/ElvishJerricco/orgs","repos_url":"https://api.github.com/users/ElvishJerricco/repos","events_url":"https://api.github.com/users/ElvishJerricco/events{/privacy}","received_events_url":"https://api.github.com/users/ElvishJerricco/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":22,"created_at":"2016-11-05T23:31:01Z","updated_at":"2016-11-14T18:45:25Z","closed_at":"2016-11-14T18:44:54Z","pull_request":{"url":"https://api.github.com/repos/reflex-frp/reflex/pulls/76","html_url":"https://github.com/reflex-frp/reflex/pull/76","diff_url":"https://github.com/reflex-frp/reflex/pull/76.diff","patch_url":"https://github.com/reflex-frp/reflex/pull/76.patch"},"body":"This pull request adds a base monad `ReflexBase` capable of most of the functionality offered by the various Reflex typeclasses. In particular, it uses `PerformEventT` and `PostBuildT` to enable their corresponding typeclasses, and it uses a new `TriggerEventT` monad transformer for the `TriggerEvent` class. The motivation of this pull request is to enable users of `reflex` to write reactive programs in contexts other than web apps with the same relative ease. Having one monad with these three main classes on top of `SpiderHost` covers a large surface area of requirements.\r\n\r\n`TriggerEventT` was factored out of `ImmediateDomBuilder` from `reflex-dom`. As such, much of the `Widget` monad can be replaced with `ReflexBase`. This includes most of the implementation of `attachWidget`, which was factored out into `runReflexBase`. I haven't changed `reflex-dom` to make use of this refactoring, but it shouldn't be difficult.\r\n\r\nThere is one breaking change. The `TriggerEvent` class now exists in its own module, instead of sitting in the `Reflex.PerformEvent.Class` module. This is for clarity, not a requirement."},"comment":{"url":"https://api.github.com/repos/reflex-frp/reflex/issues/comments/260423704","html_url":"https://github.com/reflex-frp/reflex/pull/76#issuecomment-260423704","issue_url":"https://api.github.com/repos/reflex-frp/reflex/issues/76","id":260423704,"user":{"login":"ryantrinkle","id":1156448,"avatar_url":"https://avatars.githubusercontent.com/u/1156448?v=3","gravatar_id":"","url":"https://api.github.com/users/ryantrinkle","html_url":"https://github.com/ryantrinkle","followers_url":"https://api.github.com/users/ryantrinkle/followers","following_url":"https://api.github.com/users/ryantrinkle/following{/other_user}","gists_url":"https://api.github.com/users/ryantrinkle/gists{/gist_id}","starred_url":"https://api.github.com/users/ryantrinkle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryantrinkle/subscriptions","organizations_url":"https://api.github.com/users/ryantrinkle/orgs","repos_url":"https://api.github.com/users/ryantrinkle/repos","events_url":"https://api.github.com/users/ryantrinkle/events{/privacy}","received_events_url":"https://api.github.com/users/ryantrinkle/received_events","type":"User","site_admin":false},"created_at":"2016-11-14T18:45:25Z","updated_at":"2016-11-14T18:45:25Z","body":"@ElvishJerricco I've merged most of this, but not ReflexBase itself."}}
{"actor":{"display_login":"ryantrinkle"}}