Может кто-нибудь объяснить contramap
мне? Как выглядит эта реализация? Как выглядят хорошие примеры использования?
// contravariant functor
trait Contravariant[F[_]] {
def contramap[A, B](f: B => A): F[A] => F[B]
}
Источник: http://tmorris.net/posts/functors-and-things-using-scala/index.html