- By Inheritance
- Hide All
- Show All
<~<[-A, +B] = As[A, B]
A convenient type alias for As, this declares that A is a subtype of B, and should be able to be a B is expected.
===[A, B] = Is[A, B]
A convenient type alias for Is, which declares that A is the same type as B.
>~>[+B, -A] = As[A, B]
A flipped alias, for those used to their arrows running left to right
As[-A, +B] extends Serializable
As substitutability: A better
- sealed abstract class AsInstances extends AnyRef
Is[A, B] extends Serializable
A value of
A Is Bis proof that the types
Bare the same.
- sealed abstract class IsInstances extends AnyRef
Leibniz[A, B] = Is[A, B]
This type level equality represented by
Isis referred to as "Leibniz equality", and it had the name "Leibniz" in the scalaz https://en.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz
Liskov[-A, +B] = As[A, B]
The property that a value of type A can be used in a context expecting a B if A <~< B is referred to as the "Liskov Substitution Principle", which is named for Barbara Liskov: https://en.wikipedia.org/wiki/Barbara_Liskov