scalaz

# Liskov

#### object Liskov extends LiskovInstances with LiskovFunctions

Source
Liskov.scala
Linear Supertypes
Ordering
1. Alphabetic
2. By inheritance
Inherited
1. Liskov
2. LiskovFunctions
3. LiskovInstances
4. AnyRef
5. Any
1. Hide All
2. Show all
Visibility
1. Public
2. All

### Type Members

1. #### type <~<[-A, +B] = Liskov[A, B]

A convenient type alias for Liskov

2. #### type >~>[+B, -A] = Liskov[A, B]

A flipped alias, for those used to their arrows running left to right

### 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. #### final def asInstanceOf[T0]: T0

Definition Classes
Any
7. #### def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
8. #### def co[T[_], A, A2](a: <~<[A, A2]): <~<[T[A], T[A2]]

We can lift subtyping into any invariant or covariant type constructor

We can lift subtyping into any invariant or covariant type constructor

Definition Classes
LiskovFunctions
9. #### def co2[T[_, _], Z, A, B](a: <~<[A, Z]): <~<[T[A, B], T[Z, B]]

Definition Classes
LiskovFunctions
10. #### def co3[T[_, _, _], Z, A, B, C](a: <~<[A, Z]): <~<[T[A, B, C], T[Z, B, C]]

Definition Classes
LiskovFunctions
11. #### def co4[T[_, _, _, _], Z, A, B, C, D](a: <~<[A, Z]): <~<[T[A, B, C, D], T[Z, B, C, D]]

Definition Classes
LiskovFunctions
12. #### def contra[T[-_], A, A2](a: <~<[A, A2]): <~<[T[A2], T[A]]

We can lift subtyping into any contravariant type constructor

We can lift subtyping into any contravariant type constructor

Definition Classes
LiskovFunctions
13. #### def contra1_2[T[-_, _], Z, A, B](a: <~<[A, Z]): <~<[T[Z, B], T[A, B]]

Definition Classes
LiskovFunctions
14. #### def contra1_3[T[-_, _, _], Z, A, B, C](a: <~<[A, Z]): <~<[T[Z, B, C], T[A, B, C]]

Definition Classes
LiskovFunctions
15. #### def contra1_4[T[-_, _, _, _], Z, A, B, C, D](a: <~<[A, Z]): <~<[T[Z, B, C, D], T[A, B, C, D]]

Definition Classes
LiskovFunctions
16. #### def contra2_2[T[_, -_], Z, A, B](a: <~<[B, Z]): <~<[T[A, Z], T[A, B]]

Definition Classes
LiskovFunctions
17. #### def contra2_3[T[_, -_, _], Z, A, B, C](a: <~<[B, Z]): <~<[T[A, Z, C], T[A, B, C]]

Definition Classes
LiskovFunctions
18. #### def contra2_4[T[_, -_, _, _], Z, A, B, C, D](a: <~<[B, Z]): <~<[T[A, Z, C, D], T[A, B, C, D]]

Definition Classes
LiskovFunctions
19. #### def contra3_3[T[_, _, -_], Z, A, B, C](a: <~<[C, Z]): <~<[T[A, B, Z], T[A, B, C]]

Definition Classes
LiskovFunctions
20. #### def contra3_4[T[_, _, -_, _], Z, A, B, C, D](a: <~<[C, Z]): <~<[T[A, B, Z, D], T[A, B, C, D]]

Definition Classes
LiskovFunctions
21. #### def contra4_4[T[_, _, _, -_], Z, A, B, C, D](a: <~<[D, Z]): <~<[T[A, B, C, Z], T[A, B, C, D]]

Definition Classes
LiskovFunctions
22. #### final def eq(arg0: AnyRef): Boolean

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

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

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
25. #### def force[A, B]: <~<[A, B]

Unsafely force a claim that A is a subtype of B

Unsafely force a claim that A is a subtype of B

Definition Classes
LiskovFunctions
26. #### final def getClass(): Class[_]

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

Definition Classes
AnyRef → Any
28. #### def inv[T[_], A, A2](a: <~<[A, A2]): <~<[T[A], T[A2]]

Definition Classes
LiskovFunctions
29. #### final def isInstanceOf[T0]: Boolean

Definition Classes
Any
30. #### implicit def isa[A, B >: A]: <~<[A, B]

Lift Scala's subtyping relationship

Lift Scala's subtyping relationship

Definition Classes
LiskovFunctions
31. #### def lift2[T[+_, +_], A, A2, B, B2](a: <~<[A, A2], b: <~<[B, B2]): <~<[T[A, B], T[A2, B2]]

lift2(a,b) = co1_2(a) compose co2_2(b)

lift2(a,b) = co1_2(a) compose co2_2(b)

Definition Classes
LiskovFunctions
32. #### def lift3[T[+_, +_, +_], A, A2, B, B2, C, C2](a: <~<[A, A2], b: <~<[B, B2], c: <~<[C, C2]): <~<[T[A, B, C], T[A2, B2, C2]]

lift3(a,b,c) = co1_3(a) compose co2_3(b) compose co3_3(c)

lift3(a,b,c) = co1_3(a) compose co2_3(b) compose co3_3(c)

Definition Classes
LiskovFunctions
33. #### def lift4[T[+_, +_, +_, +_], A, A2, B, B2, C, C2, D, D2](a: <~<[A, A2], b: <~<[B, B2], c: <~<[C, C2], d: <~<[D, D2]): <~<[T[A, B, C, D], T[A2, B2, C2, D2]]

lift4(a,b,c,d) = co1_3(a) compose co2_3(b) compose co3_3(c) compose co4_4(d)

lift4(a,b,c,d) = co1_3(a) compose co2_3(b) compose co3_3(c) compose co4_4(d)

Definition Classes
LiskovFunctions
34. #### def liftF1[F[-_, +_], A, A2, R, R2](a: <~<[A, A2], r: <~<[R, R2]): <~<[F[A2, R], F[A, R2]]

Lift subtyping into a Function1-like type liftF1(a,r) = contra1_2(a) compose co2_2(b)

Lift subtyping into a Function1-like type liftF1(a,r) = contra1_2(a) compose co2_2(b)

Definition Classes
LiskovFunctions
35. #### def liftF2[F[-_, -_, +_], A, A2, B, B2, R, R2](a: <~<[A, A2], b: <~<[B, B2], r: <~<[R, R2]): <~<[F[A2, B2, R], F[A, B, R2]]

Lift subtyping into a function liftF2(a,b,r) = contra1_3(a) compose contra2_3(b) compose co3_3(c)

Lift subtyping into a function liftF2(a,b,r) = contra1_3(a) compose contra2_3(b) compose co3_3(c)

Definition Classes
LiskovFunctions
36. #### def liftF3[F[-_, -_, -_, +_], A, A2, B, B2, C, C2, R, R2](a: <~<[A, A2], b: <~<[B, B2], c: <~<[C, C2], r: <~<[R, R2]): <~<[F[A2, B2, C2, R], F[A, B, C, R2]]

Lift subtyping into a function liftF3(a,b,c,r) = contra1_4(a) compose contra2_4(b) compose contra3_4(c) compose co3_4(d)

Lift subtyping into a function liftF3(a,b,c,r) = contra1_4(a) compose contra2_4(b) compose contra3_4(c) compose co3_4(d)

Definition Classes
LiskovFunctions
37. #### def liftF4[F[-_, -_, -_, -_, +_], A, A2, B, B2, C, C2, D, D2, R, R2](a: <~<[A, A2], b: <~<[B, B2], c: <~<[C, C2], d: <~<[D, D2], r: <~<[R, R2]): <~<[F[A2, B2, C2, D2, R], F[A, B, C, D, R2]]

Lift subtyping into a function

Lift subtyping into a function

Definition Classes
LiskovFunctions
38. #### implicit def liskov: Category[<~<]

Subtyping forms a category

Subtyping forms a category

Definition Classes
LiskovInstances
39. #### final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef
40. #### final def notify(): Unit

Definition Classes
AnyRef
41. #### final def notifyAll(): Unit

Definition Classes
AnyRef
42. #### implicit def refl[A]: <~<[A, A]

Subtyping is reflexive

Subtyping is reflexive

Definition Classes
LiskovFunctions
43. #### final def synchronized[T0](arg0: ⇒ T0): T0

Definition Classes
AnyRef
44. #### def toString(): String

Definition Classes
AnyRef → Any
45. #### def trans[A, B, C](f: <~<[B, C], g: <~<[A, B]): <~<[A, C]

Subtyping is transitive

Subtyping is transitive

Definition Classes
LiskovFunctions
46. #### def unco[F[+_], Z, A](a: <~<[F[A], F[Z]])(implicit arg0: Injective[F]): <~<[A, Z]

Definition Classes
LiskovFunctions
47. #### def unco2_1[F[+_, _], Z, A, B](a: <~<[F[A, B], F[Z, B]])(implicit arg0: Injective2[F]): <~<[A, Z]

Definition Classes
LiskovFunctions
48. #### def unco2_2[F[_, +_], Z, A, B](a: <~<[F[A, B], F[A, Z]])(implicit arg0: Injective2[F]): <~<[B, Z]

Definition Classes
LiskovFunctions
49. #### def uncontra[F[-_], Z, A](a: <~<[F[A], F[Z]])(implicit arg0: Injective[F]): <~<[Z, A]

Definition Classes
LiskovFunctions
50. #### def uncontra2_1[F[-_, _], Z, A, B](a: <~<[F[A, B], F[Z, B]])(implicit arg0: Injective2[F]): <~<[Z, A]

Definition Classes
LiskovFunctions
51. #### def uncontra2_2[F[_, -_], Z, A, B](a: <~<[F[A, B], F[A, Z]])(implicit arg0: Injective2[F]): <~<[Z, B]

Definition Classes
LiskovFunctions
52. #### final def wait(): Unit

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

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

Definition Classes
AnyRef
Annotations
@throws( ... )
55. #### implicit def witness[A, B](lt: <~<[A, B]): (A) ⇒ B

We can witness equality by using it to convert between types

We can witness equality by using it to convert between types

Definition Classes
LiskovFunctions