CanEqual

object CanEqual

Companion object containing a few universally known CanEqual instances. CanEqual instances involving primitive types or the Null type are handled directly in the compiler (see Implicits.synthesizedCanEqual), so they are not included here.

Companion:
class
Source:
CanEqual.scala
trait Sum
trait Mirror
class Object
trait Matchable
class Any

Type members

Classlikes

object derived extends CanEqual[Any, Any]

A universal CanEqual instance.

A universal CanEqual instance.

Source:
CanEqual.scala

Inherited types

The names of the product elements

The names of the product elements

Inherited from:
Mirror
Source:
Mirror.scala

The name of the type

The name of the type

Inherited from:
Mirror
Source:
Mirror.scala

Value members

Concrete methods

def canEqualAny[L, R]: CanEqual[L, R]

A fall-back instance to compare values of any types. Even though this method is not declared as given, the compiler will synthesize implicit arguments as solutions to CanEqual[T, U] queries if the rules of multiversal equality require it.

A fall-back instance to compare values of any types. Even though this method is not declared as given, the compiler will synthesize implicit arguments as solutions to CanEqual[T, U] queries if the rules of multiversal equality require it.

Source:
CanEqual.scala

Givens

Givens

@since("3.1")
given canEqualEither[L1, R1, L2, R2](using eqL: CanEqual[L1, L2], eqR: CanEqual[R1, R2]): CanEqual[Either[L1, R1], Either[L2, R2]]
@since("3.1")
given canEqualOption[T](using eq: CanEqual[T, T]): CanEqual[Option[T], Option[T]]
@since("3.1")
given canEqualOptions[T, U](using eq: CanEqual[T, U]): CanEqual[Option[T], Option[U]]
given canEqualSeq[T](using eq: CanEqual[T, T]): CanEqual[Seq[T], Seq[T]]
@since("3.1")
given canEqualSeqs[T, U](using eq: CanEqual[T, U]): CanEqual[Seq[T], Seq[U]]
given canEqualSet[T, U](using eq: CanEqual[T, U]): CanEqual[Set[T], Set[U]]