trait IsContravariant[F[_]] extends AnyRef
Type constructors that are contravariant with respect to subtyping.
A type constructor F[_]
admits an instance IsContravariant[F]
iff
F[B]
is a subtype of F[A]
whenever A
is a subtype of B
.
The Scala language represents this natively using the [-A]
notation on
type constructors. The factory scalaContravariant
provides an instance of this typeclass for any such type. However, type
constructors which behave contravariantly despite not being thus notated can also
implement this typeclass. The factory force constructs
an instance of IsContravariant
for any type, based on the programmer's
assertion that it is indeed contravariant.
Note the relationship between this typeclass and Contravariant: whereas Contravariant instances are contravariant functors in the "category" of Scala types and functions, instances of this typeclass are contravariant functors in the "category" of Scala types and subtyping relations.
- Self Type
- IsContravariant[F]
- Source
- IsContravariant.scala
- Alphabetic
- By Inheritance
- IsContravariant
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val isContravariantSyntax: IsContravariantSyntax[F]
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def narrow[A, B](fa: F[B])(implicit ev: <~<[A, B]): F[A]
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def substCo[G[+_], A, B](g: G[F[B]])(implicit ev: <~<[A, B]): G[F[A]]
- def substCt[G[-_], A, B](g: G[F[A]])(implicit ev: <~<[A, B]): G[F[B]]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()