trait IsCovariant[F[_]] extends AnyRef
Type constructors that are covariant with respect to subtyping.
A type constructor F[_]
admits an instance IsCovariant[F]
iff
F[A]
is a subtype of F[B]
whenever A
is a subtype of B
.
The Scala language represents this natively using the [+A]
notation on
type constructors. The factory scalaCovariant
provides an instance of this typeclass for any such type. However, type
constructors which behave covariantly despite not being thus notated can also
implement this typeclass. The factory force constructs
an instance of IsCovariant
for any type, based on the programmer's
assertion that it is indeed covariant.
Note the relationship between this typeclass and Functor: whereas Functor instances are covariant functors in the "category" of Scala types and functions, instances of this typeclass are covariant functors in the "category" of Scala types and subtyping relations.
- Self Type
- IsCovariant[F]
- Source
- IsCovariant.scala
- Alphabetic
- By Inheritance
- IsCovariant
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- val isCovariantSyntax: IsCovariantSyntax[F]
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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[A]])(implicit ev: <~<[A, B]): G[F[B]]
- def substCt[G[-_], A, B](g: G[F[B]])(implicit ev: <~<[A, B]): G[F[A]]
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def widen[A, B](fa: F[A])(implicit ev: <~<[A, B]): F[B]