Joining the dots on recent Implicit Prioritization changes and some Scala history

Is that also solved by this change?

Yes, because you can now write

def foo[F[_] : {Functor, Traverse, Monad}, A, B](c: F[A])(f: A => B): F[B] =
  c.map(f)

and it will resolve to the Functor. Previously, adding the common superclass would have made ambiguities worse. Now, it solves the problem.

1 Like