Can someone explain contramap
to me? What would this implementation look like? What would good examples of usage look like?
// contravariant functor
trait Contravariant[F[_]] {
def contramap[A, B](f: B => A): F[A] => F[B]
}
Source: http://tmorris.net/posts/functors-and-things-using-scala/index.html