Variance

zio.blocks.typeid.Variance
See theVariance companion object
sealed trait Variance

Represents the variance of a type parameter.

Variance determines how subtyping of type arguments affects subtyping of parameterized types:

  • Covariant (+A): If Dog <: Animal, then List[Dog] <: List[Animal]
  • Contravariant (-A): If Dog <: Animal, then Handler[Animal] <: Handler[Dog]
  • Invariant (A): No subtyping relationship between Box[Dog] and Box[Animal]

Attributes

Companion
object
Source
Variance.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Contravariant
object Covariant
object Invariant

Members list

Value members

Concrete methods

def *(other: Variance): Variance

Combines two variances. Used when a type parameter appears in a nested position.

Combines two variances. Used when a type parameter appears in a nested position.

Attributes

Source
Variance.scala
def flip: Variance

Flips the variance (covariant contravariant, invariant stays).

Flips the variance (covariant contravariant, invariant stays).

Attributes

Source
Variance.scala
def isContravariant: Boolean

Returns true if this is contravariant.

Returns true if this is contravariant.

Attributes

Source
Variance.scala
def isCovariant: Boolean

Returns true if this is covariant.

Returns true if this is covariant.

Attributes

Source
Variance.scala
def isInvariant: Boolean

Returns true if this is invariant.

Returns true if this is invariant.

Attributes

Source
Variance.scala
def symbol: String

Returns the Scala syntax for this variance annotation.

Returns the Scala syntax for this variance annotation.

Attributes

Source
Variance.scala