scalaz

Liskov

object Liskov extends AnyRef

Source
Liskov.scala
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

  10. def co1_2 [T[+_, _], Z, A, B] (a: $less$tilde$less[A, Z]): $less$tilde$less[T[A, B], T[Z, B]]

  11. def co1_3 [T[+_, _, _], Z, A, B, C] (a: $less$tilde$less[A, Z]): $less$tilde$less[T[A, B, C], T[Z, B, C]]

  12. def co1_4 [T[+_, _, _, _], Z, A, B, C, D] (a: $less$tilde$less[A, Z]): $less$tilde$less[T[A, B, C, D], T[Z, B, C, D]]

  13. def co2_2 [T[_, +_], Z, A, B] (a: $less$tilde$less[B, Z]): $less$tilde$less[T[A, B], T[A, Z]]

  14. def co2_3 [T[_, +_, _], Z, A, B, C] (a: $less$tilde$less[B, Z]): $less$tilde$less[T[A, B, C], T[A, Z, C]]

  15. def co2_4 [T[_, +_, _, _], Z, A, B, C, D] (a: $less$tilde$less[B, Z]): $less$tilde$less[T[A, B, C, D], T[A, Z, C, D]]

  16. def co3_3 [T[_, _, +_], Z, A, B, C] (a: $less$tilde$less[C, Z]): $less$tilde$less[T[A, B, C], T[A, B, Z]]

  17. def co3_4 [T[_, _, +_, _], Z, A, B, C, D] (a: $less$tilde$less[C, Z]): $less$tilde$less[T[A, B, C, D], T[A, B, Z, D]]

  18. def co4_4 [T[_, _, _, +_], Z, A, B, C, D] (a: $less$tilde$less[D, Z]): $less$tilde$less[T[A, B, C, D], T[A, B, C, Z]]

  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

  20. def contra1_2 [T[-_, _], Z, A, B] (a: $less$tilde$less[A, Z]): $less$tilde$less[T[Z, B], T[A, B]]

  21. def contra1_3 [T[-_, _, _], Z, A, B, C] (a: $less$tilde$less[A, Z]): $less$tilde$less[T[Z, B, C], T[A, B, C]]

  22. def contra1_4 [T[-_, _, _, _], Z, A, B, C, D] (a: $less$tilde$less[A, Z]): $less$tilde$less[T[Z, B, C, D], T[A, B, C, D]]

  23. def contra2_2 [T[_, -_], Z, A, B] (a: $less$tilde$less[B, Z]): $less$tilde$less[T[A, Z], T[A, B]]

  24. def contra2_3 [T[_, -_, _], Z, A, B, C] (a: $less$tilde$less[B, Z]): $less$tilde$less[T[A, Z, C], T[A, B, C]]

  25. def contra2_4 [T[_, -_, _, _], Z, A, B, C, D] (a: $less$tilde$less[B, Z]): $less$tilde$less[T[A, Z, C, D], T[A, B, C, D]]

  26. def contra3_3 [T[_, _, -_], Z, A, B, C] (a: $less$tilde$less[C, Z]): $less$tilde$less[T[A, B, Z], T[A, B, C]]

  27. def contra3_4 [T[_, _, -_, _], Z, A, B, C, D] (a: $less$tilde$less[C, Z]): $less$tilde$less[T[A, B, Z, D], T[A, B, C, D]]

  28. def contra4_4 [T[_, _, _, -_], Z, A, B, C, D] (a: $less$tilde$less[D, Z]): $less$tilde$less[T[A, B, C, Z], T[A, B, C, D]]

  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

  51. def unco [F[+_], Z, A] (a: $less$tilde$less[F[A], F[Z]])(implicit arg0: Injective[F]): $less$tilde$less[A, Z]

  52. def unco2_1 [F[+_, _], Z, A, B] (a: $less$tilde$less[F[A, B], F[Z, B]])(implicit arg0: Injective2[F]): $less$tilde$less[A, Z]

  53. def unco2_2 [F[_, +_], Z, A, B] (a: $less$tilde$less[F[A, B], F[A, Z]])(implicit arg0: Injective2[F]): $less$tilde$less[B, Z]

  54. def uncontra [F[-_], Z, A] (a: $less$tilde$less[F[A], F[Z]])(implicit arg0: Injective[F]): $less$tilde$less[Z, A]

  55. def uncontra2_1 [F[-_, _], Z, A, B] (a: $less$tilde$less[F[A, B], F[Z, B]])(implicit arg0: Injective2[F]): $less$tilde$less[Z, A]

  56. def uncontra2_2 [F[_, -_], Z, A, B] (a: $less$tilde$less[F[A, B], F[A, Z]])(implicit arg0: Injective2[F]): $less$tilde$less[Z, B]

  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

Inherited from AnyRef

Inherited from Any