scalaz

# Liskov

#### object Liskov extends AnyRef

Linear Supertypes
AnyRef, Any
Ordering
1. Alphabetic
2. By inheritance
Inherited
1. Hide All
2. Show all
1. Liskov
2. AnyRef
3. Any
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. #### def != (arg0: AnyRef): Boolean

Attributes
final
Definition Classes
AnyRef
2. #### def != (arg0: Any): Boolean

Attributes
final
Definition Classes
Any
3. #### def ## (): Int

Attributes
final
Definition Classes
AnyRef → Any
4. #### def == (arg0: AnyRef): Boolean

Attributes
final
Definition Classes
AnyRef
5. #### def == (arg0: Any): Boolean

Attributes
final
Definition Classes
Any
6. #### implicit def LiskovCategory : Category[\$less\$tilde\$less]

Subtyping forms a category

Subtyping forms a category

Attributes
implicit
7. #### def asInstanceOf [T0] : T0

Attributes
final
Definition Classes
Any
8. #### def clone (): AnyRef

Attributes
protected[lang]
Definition Classes
AnyRef
Annotations
@throws()
9. #### def co [T[+_], A, A2] (a: \$less\$tilde\$less[A, A2]): \$less\$tilde\$less[T[A], T[A2]]

We can lift subtyping into any covariant type constructor

19. #### def contra [T[-_], A, A2] (a: \$less\$tilde\$less[A, A2]): \$less\$tilde\$less[T[A2], T[A]]

We can lift subtyping into any contravariant type constructor

29. #### def eq (arg0: AnyRef): Boolean

Attributes
final
Definition Classes
AnyRef
30. #### def equals (arg0: Any): Boolean

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

Attributes
protected[lang]
Definition Classes
AnyRef
Annotations
@throws()
32. #### def force [A, B] : \$less\$tilde\$less[A, B]

Unsafely force a claim that A is a subtype of B

33. #### def getClass (): java.lang.Class[_]

Attributes
final
Definition Classes
AnyRef → Any
34. #### def hashCode (): Int

Definition Classes
AnyRef → Any
35. #### def isInstanceOf [T0] : Boolean

Attributes
final
Definition Classes
Any
36. #### implicit def isa [A, B >: A] : \$less\$tilde\$less[A, B]

Lift scala's subtyping relationship

Lift scala's subtyping relationship

Attributes
implicit
37. #### def lift2 [T[+_, +_], A, A2, B, B2] (a: \$less\$tilde\$less[A, A2], b: \$less\$tilde\$less[B, B2]): \$less\$tilde\$less[T[A, B], T[A2, B2]]

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

38. #### def lift3 [T[+_, +_, +_], A, A2, B, B2, C, C2] (a: \$less\$tilde\$less[A, A2], b: \$less\$tilde\$less[B, B2], c: \$less\$tilde\$less[C, C2]): \$less\$tilde\$less[T[A, B, C], T[A2, B2, C2]]

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

39. #### def lift4 [T[+_, +_, +_, +_], A, A2, B, B2, C, C2, D, D2] (a: \$less\$tilde\$less[A, A2], b: \$less\$tilde\$less[B, B2], c: \$less\$tilde\$less[C, C2], d: \$less\$tilde\$less[D, D2]): \$less\$tilde\$less[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)

40. #### def liftF1 [F[-_, +_], A, A2, R, R2] (a: \$less\$tilde\$less[A, A2], r: \$less\$tilde\$less[R, R2]): \$less\$tilde\$less[F[A2, R], F[A, R2]]

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

41. #### def liftF2 [F[-_, -_, +_], A, A2, B, B2, R, R2] (a: \$less\$tilde\$less[A, A2], b: \$less\$tilde\$less[B, B2], r: \$less\$tilde\$less[R, R2]): \$less\$tilde\$less[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)

42. #### def liftF3 [F[-_, -_, -_, +_], A, A2, B, B2, C, C2, R, R2] (a: \$less\$tilde\$less[A, A2], b: \$less\$tilde\$less[B, B2], c: \$less\$tilde\$less[C, C2], r: \$less\$tilde\$less[R, R2]): \$less\$tilde\$less[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)

43. #### def liftF4 [F[-_, -_, -_, -_, +_], A, A2, B, B2, C, C2, D, D2, R, R2] (a: \$less\$tilde\$less[A, A2], b: \$less\$tilde\$less[B, B2], c: \$less\$tilde\$less[C, C2], d: \$less\$tilde\$less[D, D2], r: \$less\$tilde\$less[R, R2]): \$less\$tilde\$less[F[A2, B2, C2, D2, R], F[A, B, C, D, R2]]

Lift subtyping into a function

44. #### def ne (arg0: AnyRef): Boolean

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

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

Attributes
final
Definition Classes
AnyRef
47. #### implicit def refl [A] : \$less\$tilde\$less[A, A]

Subtyping is reflexive

Subtyping is reflexive

Attributes
implicit
48. #### def synchronized [T0] (arg0: ⇒ T0): T0

Attributes
final
Definition Classes
AnyRef
49. #### def toString (): String

Definition Classes
AnyRef → Any
50. #### def trans [A, B, C] (f: \$less\$tilde\$less[B, C], g: \$less\$tilde\$less[A, B]): \$less\$tilde\$less[A, C]

Subtyping is transitive

57. #### def wait (): Unit

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

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

Attributes
final
Definition Classes
AnyRef
Annotations
@throws()
60. #### implicit def witness [A, B] (lt: \$less\$tilde\$less[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

Attributes
implicit