Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ior Monad Transformer #1977

Merged
merged 11 commits into from
Nov 22, 2017
Prev Previous commit
Next Next commit
Switch priority of MonadError instances for IorT
  • Loading branch information
frroliveira committed Nov 20, 2017
commit 5be9cb1b0d7ebe305a01364916ba48626cea075a
12 changes: 6 additions & 6 deletions core/src/main/scala/cats/data/IorT.scala
Original file line number Diff line number Diff line change
Expand Up @@ -406,18 +406,18 @@ private[data] abstract class IorTInstances1 extends IorTInstances2 {
implicit def catsDataFoldableForIorT[F[_], A](implicit F: Foldable[F]): Foldable[IorT[F, A, ?]] =
new IorTFoldable[F, A] { val F0: Foldable[F] = F }

implicit def catsDataMonadErrorFForIorT[F[_], A, E](implicit FE: MonadError[F, E], A: Semigroup[A]): MonadError[IorT[F, A, ?], E] =
new IorTMonadErrorF[F, A, E] {
implicit def catsDataMonadErrorForIorT[F[_], A](implicit F: Monad[F], A: Semigroup[A]): MonadError[IorT[F, A, ?], A] =
new IorTMonadError[F, A] {
val A0: Semigroup[A] = A
val F0: MonadError[F, E] = FE
val F0: Monad[F] = F
}
}

private[data] abstract class IorTInstances2 extends IorTInstances3 {
implicit def catsDataMonadErrorForIorT[F[_], A](implicit F: Monad[F], A: Semigroup[A]): MonadError[IorT[F, A, ?], A] =
new IorTMonadError[F, A] {
implicit def catsDataMonadErrorFForIorT[F[_], A, E](implicit FE: MonadError[F, E], A: Semigroup[A]): MonadError[IorT[F, A, ?], E] =
new IorTMonadErrorF[F, A, E] {
val A0: Semigroup[A] = A
val F0: Monad[F] = F
val F0: MonadError[F, E] = FE
}

implicit def catsDataEqForIorT[F[_], A, B](implicit F: Eq[F[Ior[A, B]]]): Eq[IorT[F, A, B]] =
Expand Down