Packages

abstract class Is[A, B] extends Serializable

A value of A Is B is proof that the types A and B are the same. More powerfully, it asserts that they have the same meaning in all type contexts. This can be a more powerful assertion than A =:= B and is more easily used in manipulation of types while avoiding (potentially erroneous) coercions.

A Is B is also known as Leibniz equality.

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Is
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Is()

Abstract Value Members

  1. abstract def substitute[F[_]](fa: F[A]): F[B]

    To create an instance of A Is B you must show that for every choice of F[_] you can convert F[A] to F[B].

    To create an instance of A Is B you must show that for every choice of F[_] you can convert F[A] to F[B]. Loosely, this reads as saying that B must have the same effect as A in all contexts therefore allowing type substitution.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def andThen[C](next: Is[B, C]): Is[A, C]

    Is is transitive and therefore values of Is can be composed in a chain much like functions.

    Is is transitive and therefore values of Is can be composed in a chain much like functions. See also compose.

    Annotations
    @inline()
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  7. final def coerce(a: A): B

    Substitution on identity brings about a direct coercion function of the same form that =:= provides.

    Substitution on identity brings about a direct coercion function of the same form that =:= provides.

    Annotations
    @inline()
  8. final def compose[C](prev: Is[C, A]): Is[C, B]

    Is is transitive and therefore values of Is can be composed in a chain much like functions.

    Is is transitive and therefore values of Is can be composed in a chain much like functions. See also andThen.

    Annotations
    @inline()
  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 flip: Is[B, A]

    Is is symmetric and therefore can be flipped around.

    Is is symmetric and therefore can be flipped around. Flipping is its own inverse, so x.flip.flip == x.

    Annotations
    @inline()
  13. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def lift[F[_]]: Is[F[A], F[B]]

    Sometimes for more complex substitutions it helps the typechecker to wrap one layer of F[_] context around the types you're equating before substitution.

    Sometimes for more complex substitutions it helps the typechecker to wrap one layer of F[_] context around the types you're equating before substitution.

    Annotations
    @inline()
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def predefEq: =:=[A, B]

    A value A Is B is always sufficient to produce a similar Predef.=:= value.

    A value A Is B is always sufficient to produce a similar Predef.=:= value.

    Annotations
    @inline()
  21. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  22. def toString(): String
    Definition Classes
    AnyRef → Any
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped