{"action":"created","issue":{"url":"https://api.github.com/repos/typelevel/cats-effect/issues/244","repository_url":"https://api.github.com/repos/typelevel/cats-effect","labels_url":"https://api.github.com/repos/typelevel/cats-effect/issues/244/labels{/name}","comments_url":"https://api.github.com/repos/typelevel/cats-effect/issues/244/comments","events_url":"https://api.github.com/repos/typelevel/cats-effect/issues/244/events","html_url":"https://github.com/typelevel/cats-effect/issues/244","id":326544828,"number":244,"title":"Should bracket emit Canceled(None) on OptionT and EitherT?","user":{"login":"alexandru","id":11753,"avatar_url":"https://avatars2.githubusercontent.com/u/11753?v=4","gravatar_id":"","url":"https://api.github.com/users/alexandru","html_url":"https://github.com/alexandru","followers_url":"https://api.github.com/users/alexandru/followers","following_url":"https://api.github.com/users/alexandru/following{/other_user}","gists_url":"https://api.github.com/users/alexandru/gists{/gist_id}","starred_url":"https://api.github.com/users/alexandru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexandru/subscriptions","organizations_url":"https://api.github.com/users/alexandru/orgs","repos_url":"https://api.github.com/users/alexandru/repos","events_url":"https://api.github.com/users/alexandru/events{/privacy}","received_events_url":"https://api.github.com/users/alexandru/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-25T14:23:42Z","updated_at":"2018-05-25T14:49:09Z","closed_at":null,"author_association":"MEMBER","body":"Currently bracket emits `Completed` when we've got a `None` in `OptionT`. This may not be accurate.\r\n\r\nOne argument flying around is that OptionT basically does a form of interruption, None effectively interrupting a bind chain. So maybe we should emit `Canceled(None)` in such cases.\r\n\r\n/cc @LukaJCB I don't remember what issues we had with `Error(None)`, which was in your initial design."},"comment":{"url":"https://api.github.com/repos/typelevel/cats-effect/issues/comments/392082076","html_url":"https://github.com/typelevel/cats-effect/issues/244#issuecomment-392082076","issue_url":"https://api.github.com/repos/typelevel/cats-effect/issues/244","id":392082076,"user":{"login":"oleg-py","id":4143670,"avatar_url":"https://avatars2.githubusercontent.com/u/4143670?v=4","gravatar_id":"","url":"https://api.github.com/users/oleg-py","html_url":"https://github.com/oleg-py","followers_url":"https://api.github.com/users/oleg-py/followers","following_url":"https://api.github.com/users/oleg-py/following{/other_user}","gists_url":"https://api.github.com/users/oleg-py/gists{/gist_id}","starred_url":"https://api.github.com/users/oleg-py/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oleg-py/subscriptions","organizations_url":"https://api.github.com/users/oleg-py/orgs","repos_url":"https://api.github.com/users/oleg-py/repos","events_url":"https://api.github.com/users/oleg-py/events{/privacy}","received_events_url":"https://api.github.com/users/oleg-py/received_events","type":"User","site_admin":false},"created_at":"2018-05-25T14:49:09Z","updated_at":"2018-05-25T14:49:09Z","author_association":"CONTRIBUTOR","body":"I think it should be doing the same thing as we do with EitherT, `Option[A]` being basically an `Either[Unit, A]`.\r\n\r\nWith this line of thinking we get `Canceled(None)` on `Left(_)` case - note that we cannot actually use error from Left, since `ExitCase` requires `Error[E]` and `Canceled[E]` to be the same `E`, and for `Sync` that is `Throwable`. This feels like an odd something to me."}}
{"actor":{"display_login":"oleg-py"}}