{"action":"created","issue":{"url":"https://api.github.com/repos/reflex-frp/reflex-dom/issues/36","repository_url":"https://api.github.com/repos/reflex-frp/reflex-dom","labels_url":"https://api.github.com/repos/reflex-frp/reflex-dom/issues/36/labels{/name}","comments_url":"https://api.github.com/repos/reflex-frp/reflex-dom/issues/36/comments","events_url":"https://api.github.com/repos/reflex-frp/reflex-dom/issues/36/events","html_url":"https://github.com/reflex-frp/reflex-dom/issues/36","id":117767632,"number":36,"title":"provide a possibility to terminate `mainWidget`","user":{"login":"soenkehahn","id":402539,"avatar_url":"https://avatars.githubusercontent.com/u/402539?v=3","gravatar_id":"","url":"https://api.github.com/users/soenkehahn","html_url":"https://github.com/soenkehahn","followers_url":"https://api.github.com/users/soenkehahn/followers","following_url":"https://api.github.com/users/soenkehahn/following{/other_user}","gists_url":"https://api.github.com/users/soenkehahn/gists{/gist_id}","starred_url":"https://api.github.com/users/soenkehahn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/soenkehahn/subscriptions","organizations_url":"https://api.github.com/users/soenkehahn/orgs","repos_url":"https://api.github.com/users/soenkehahn/repos","events_url":"https://api.github.com/users/soenkehahn/events{/privacy}","received_events_url":"https://api.github.com/users/soenkehahn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-11-19T08:47:49Z","updated_at":"2016-02-22T18:32:21Z","closed_at":null,"body":"It should be possible to somehow cleanly let a call to `mainWidget` terminate. For testing it is crucial that it's possible to run a `mainWidget`, perform some tests and then cleanly tear everything down again to be able to run the next test-case.\r\n\r\nI tried throwing exceptions, but for some reason I'm not able to catch any exception that is thrown inside `mainWidget` from the outside. It just causes the whole process to die."},"comment":{"url":"https://api.github.com/repos/reflex-frp/reflex-dom/issues/comments/187308817","html_url":"https://github.com/reflex-frp/reflex-dom/issues/36#issuecomment-187308817","issue_url":"https://api.github.com/repos/reflex-frp/reflex-dom/issues/36","id":187308817,"user":{"login":"cgibbard","id":7033452,"avatar_url":"https://avatars.githubusercontent.com/u/7033452?v=3","gravatar_id":"","url":"https://api.github.com/users/cgibbard","html_url":"https://github.com/cgibbard","followers_url":"https://api.github.com/users/cgibbard/followers","following_url":"https://api.github.com/users/cgibbard/following{/other_user}","gists_url":"https://api.github.com/users/cgibbard/gists{/gist_id}","starred_url":"https://api.github.com/users/cgibbard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgibbard/subscriptions","organizations_url":"https://api.github.com/users/cgibbard/orgs","repos_url":"https://api.github.com/users/cgibbard/repos","events_url":"https://api.github.com/users/cgibbard/events{/privacy}","received_events_url":"https://api.github.com/users/cgibbard/received_events","type":"User","site_admin":false},"created_at":"2016-02-22T18:32:21Z","updated_at":"2016-02-22T18:32:21Z","body":"Ah, forgot to leave a comment here, but there's getQuitWidget now, which can be used to obtain an action which should quit the widget in such a way that it can be restarted. (Apologies for the awkward indirection, it helps the type system work out what the WidgetHost monad is.)"}}