|
Scala example source code file (ContravariantSyntax.scala)
The ContravariantSyntax.scala Scala example source code
package scalaz
package syntax
/** Wraps a value `self` and provides methods related to `Contravariant` */
final class ContravariantOps[F[_],A] private[syntax](val self: F[A])(implicit val F: Contravariant[F]) extends Ops[F[A]] {
////
final def contramap[B](f: B => A): F[B] = F.contramap(self)(f)
final def ∙[B](f: B => A): F[B] = F.contramap(self)(f)
////
}
sealed trait ToContravariantOps0 {
implicit def ToContravariantOpsUnapply[FA](v: FA)(implicit F0: Unapply[Contravariant, FA]) =
new ContravariantOps[F0.M,F0.A](F0(v))(F0.TC)
}
trait ToContravariantOps extends ToContravariantOps0 with ToInvariantFunctorOps {
implicit def ToContravariantOps[F[_],A](v: F[A])(implicit F0: Contravariant[F]) =
new ContravariantOps[F,A](v)
////
////
}
trait ContravariantSyntax[F[_]] extends InvariantFunctorSyntax[F] {
implicit def ToContravariantOps[A](v: F[A]): ContravariantOps[F, A] = new ContravariantOps[F,A](v)(ContravariantSyntax.this.F)
def F: Contravariant[F]
////
////
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala ContravariantSyntax.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.