Class/Object

cats.evidence

Is

Related Docs: object Is | package evidence

Permalink

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()

    Permalink

Abstract Value Members

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

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def andThen[C](next: Is[B, C]): Is[A, C]

    Permalink

    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

    Permalink
    Definition Classes
    Any
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def coerce(a: A): B

    Permalink

    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]

    Permalink

    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

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def flip: Is[B, A]

    Permalink

    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[_]

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

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

    Permalink
    Definition Classes
    Any
  16. final def lift[F[_]]: Is[F[A], F[B]]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. final def predefEq: =:=[A, B]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  22. def toString(): String

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped