{"action":"created","issue":{"url":"https://api.github.com/repos/typelevel/cats/issues/2594","repository_url":"https://api.github.com/repos/typelevel/cats","labels_url":"https://api.github.com/repos/typelevel/cats/issues/2594/labels{/name}","comments_url":"https://api.github.com/repos/typelevel/cats/issues/2594/comments","events_url":"https://api.github.com/repos/typelevel/cats/issues/2594/events","html_url":"https://github.com/typelevel/cats/pull/2594","id":377190739,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4MjAwMjY3","number":2594,"title":"Get FunctorFilter on par with the other MTL typeclasses","user":{"login":"barambani","id":201339,"node_id":"MDQ6VXNlcjIwMTMzOQ==","avatar_url":"https://avatars2.githubusercontent.com/u/201339?v=4","gravatar_id":"","url":"https://api.github.com/users/barambani","html_url":"https://github.com/barambani","followers_url":"https://api.github.com/users/barambani/followers","following_url":"https://api.github.com/users/barambani/following{/other_user}","gists_url":"https://api.github.com/users/barambani/gists{/gist_id}","starred_url":"https://api.github.com/users/barambani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barambani/subscriptions","organizations_url":"https://api.github.com/users/barambani/orgs","repos_url":"https://api.github.com/users/barambani/repos","events_url":"https://api.github.com/users/barambani/events{/privacy}","received_events_url":"https://api.github.com/users/barambani/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-11-04T20:24:05Z","updated_at":"2018-11-04T21:06:54Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/typelevel/cats/pulls/2594","html_url":"https://github.com/typelevel/cats/pull/2594","diff_url":"https://github.com/typelevel/cats/pull/2594.diff","patch_url":"https://github.com/typelevel/cats/pull/2594.patch"},"body":"This adds `FunctorFilter` to `Kleisli` and `IndexedStateT` as from the issue https://github.com/typelevel/cats/issues/2556 . As a side note I tried to reduce the requirements for the `IndexedStateT` instance but I couldn't come up with anything that need less than `Applicative` and `FlatMap`, so I kept the implementation in the issue that requires `Monad` (see below as an example)\r\n```scala\r\ndef mapFilter[A, B](fa: IndexedStateT[F, SA, SB, A])(f: A => Option[B]): IndexedStateT[F, SA, SB, B] =\r\n  IndexedStateT[F, SA, SB, B] { sa =>\r\n    FF.mapFilter(fa.run(sa)){ case (sb, a) => f(a) map (sb -> _) }\r\n  }\r\n```\r\nI'm happy to change it though if there's something less restrictive.\r\nThere is still some work to do about the comments at the bottom of the ticket that I'm still investigating. I need more details there.\r\n\r\nAlso I'm planning to open some follow up PRs to add instances of `TraverseFilter` as well to `Kleisli` and `IndexedStateT`, and to add both to other transformers where they are still missing. Is it something that's needed ? Happy to stop if they are not a priority.\r\n"},"comment":{"url":"https://api.github.com/repos/typelevel/cats/issues/comments/435706197","html_url":"https://github.com/typelevel/cats/pull/2594#issuecomment-435706197","issue_url":"https://api.github.com/repos/typelevel/cats/issues/2594","id":435706197,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNTcwNjE5Nw==","user":{"login":"codecov-io","id":8655789,"node_id":"MDQ6VXNlcjg2NTU3ODk=","avatar_url":"https://avatars0.githubusercontent.com/u/8655789?v=4","gravatar_id":"","url":"https://api.github.com/users/codecov-io","html_url":"https://github.com/codecov-io","followers_url":"https://api.github.com/users/codecov-io/followers","following_url":"https://api.github.com/users/codecov-io/following{/other_user}","gists_url":"https://api.github.com/users/codecov-io/gists{/gist_id}","starred_url":"https://api.github.com/users/codecov-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codecov-io/subscriptions","organizations_url":"https://api.github.com/users/codecov-io/orgs","repos_url":"https://api.github.com/users/codecov-io/repos","events_url":"https://api.github.com/users/codecov-io/events{/privacy}","received_events_url":"https://api.github.com/users/codecov-io/received_events","type":"User","site_admin":false},"created_at":"2018-11-04T21:06:54Z","updated_at":"2018-11-04T21:06:54Z","author_association":"NONE","body":"# [Codecov](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=h1) Report\n> Merging [#2594](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=desc) into [master](https://codecov.io/gh/typelevel/cats/commit/1aac3759b1f7fc2deedf7a040d8bd4b8c6d78184?src=pr&el=desc) will **increase** coverage by `<.01%`.\n> The diff coverage is `100%`.\n\n[![Impacted file tree graph](https://codecov.io/gh/typelevel/cats/pull/2594/graphs/tree.svg?width=650&token=ZBxboja6xq&height=150&src=pr)](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=tree)\n\n```diff\n@@            Coverage Diff             @@\n##           master    #2594      +/-   ##\n==========================================\n+ Coverage   95.16%   95.16%   +<.01%     \n==========================================\n  Files         361      361              \n  Lines        6634     6641       +7     \n  Branches      294      301       +7     \n==========================================\n+ Hits         6313     6320       +7     \n  Misses        321      321\n```\n\n\n| [Impacted Files](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=tree) | Coverage Δ | |\n|---|---|---|\n| [core/src/main/scala/cats/data/Kleisli.scala](https://codecov.io/gh/typelevel/cats/pull/2594/diff?src=pr&el=tree#diff-Y29yZS9zcmMvbWFpbi9zY2FsYS9jYXRzL2RhdGEvS2xlaXNsaS5zY2FsYQ==) | `97.24% <100%> (+0.1%)` | :arrow_up: |\n| [core/src/main/scala/cats/data/IndexedStateT.scala](https://codecov.io/gh/typelevel/cats/pull/2594/diff?src=pr&el=tree#diff-Y29yZS9zcmMvbWFpbi9zY2FsYS9jYXRzL2RhdGEvSW5kZXhlZFN0YXRlVC5zY2FsYQ==) | `89.89% <100%> (+0.31%)` | :arrow_up: |\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=footer). Last update [1aac375...d9bcf99](https://codecov.io/gh/typelevel/cats/pull/2594?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n"}}
{"actor":{"display_login":"codecov-io"}}