ClampEq

libretto.lambda.util.ClampEq
trait ClampEq[F[_]]

Equality test where value equality of a: F[A], b: F[B] implies type equality A =:= B. I.e., value equality "clamps" A and B together.

Corollary: a value a: F[A] cannot also be assigned a type F[B] where B != A: testEqual(a: F[A], a: F[B]) results in Some[A =:= B].

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def testEqual[A, B](a: F[A], b: F[B]): Option[A =:= B]