Given:
scala> trait Functor[F[_]] {
def fmap[A, B](f: A => B, func: F[A]): F[B]
}
and then the something function:
scala> def something[A, B, F[_]](f: A => B, x: A)
(implicit ev: Functor[F]): F[B] =
| ev.fmap(f, ???)
something: [A, B, F[_]](f: A => B, x: A)(implicit ev: Functor[F])F[B]
How could I re-write something using Context Bounds for the Functor rather than the implicit ev ... mechanism?