fm.common

TypeWiseBalancedEquality

object TypeWiseBalancedEquality

By importing TypeWiseBalancedEquality._ you get type-safe and type-wise balanced equality:

import name.heikoseeberger.demoequality.TypeWiseBalancedEquality._

123 === 666 // false
"a" === "a" // true
123 === "a" // won't compile!

This equality is balanced with respect to subtyping, hence === works (compiles) for any two arguments on the left and right, whose types are in a subtype relationship (which includes type equality):

Seq(1, 2, 3) === List(1, 2, 3)
List(1, 2, 3) === Seq(1, 2, 3)

Yet it doesn't work (compile) for two arguments on the left and right, whose types are in an implicit conversion relationship:

1L === 1 // won't compile!
1 === 1L // won't compile!
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. TypeWiseBalancedEquality
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. implicit final class Equal[L] extends AnyVal

    Extends any type with a type-safe and balanced === operator.

  2. sealed trait Equality[L, R] extends AnyRef

    Type-class representing equality of two arguments with arbitrary respective types.

  3. trait LowPriorityEqualityImplicits extends AnyRef

    Mixed into Equality to disambiguate the L =:= R case.

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. object Equality extends LowPriorityEqualityImplicits

    Provides type-class instances based on natural equality for any two types in a L <: R or R <: L relationship.

  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  19. def toString(): String

    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped