Packages

trait JoinLattice[L] extends Monoid[L] with PartialOrdering[L]

A (join semi-)lattice L should support the following operations

Linear Supertypes
PartialOrdering[L], Equiv[L], Serializable, Serializable, Monoid[L], Semigroup[L], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JoinLattice
  2. PartialOrdering
  3. Equiv
  4. Serializable
  5. Serializable
  6. Monoid
  7. Semigroup
  8. AnyRef
  9. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait JoinLatticeLaw extends AnyRef
  2. trait MonoidLaw extends scalaz.Monoid.SemigroupLaw
    Definition Classes
    Monoid
  3. trait SemigroupLaw extends AnyRef
    Definition Classes
    Semigroup

Abstract Value Members

  1. abstract def bottom: L

    A lattice has a bottom element

  2. abstract def cardinality(x: L): Cardinality

    Cardinality of this value

  3. abstract def counting: Boolean

    It should state whether it supports abstract counting or not.

    It should state whether it supports abstract counting or not. (TODO: this is probably not the best place for that)

  4. abstract def isPrimitiveValue(x: L): Boolean

    Some elements may contain addresses in there and are therefore not considered as primitive values

  5. abstract def join(x: L, y: L): L

    Elements of the lattice can be joined together

  6. abstract def name: String

    A name identifying the lattice

  7. abstract def subsumes(x: L, y: L): Boolean

    Subsumption between two elements can be checked

Concrete Value Members

  1. def append(x: L, y: ⇒ L): L
    Definition Classes
    JoinLattice → Semigroup
  2. final def applicative: Applicative[[α]L]
    Definition Classes
    Monoid
  3. final def apply: Apply[[α]L]
    Definition Classes
    Semigroup
  4. final def category: Category[[α, β]L]
    Definition Classes
    Monoid
  5. final def compose: Compose[[α, β]L]
    Definition Classes
    Semigroup
  6. def equiv(x: L, y: L): Boolean
    Definition Classes
    PartialOrdering → Equiv
  7. def gt(x: L, y: L): Boolean
    Definition Classes
    PartialOrdering
  8. def gteq(x: L, y: L): Boolean
    Definition Classes
    PartialOrdering
  9. final def ifEmpty[B](a: L)(t: ⇒ B)(f: ⇒ B)(implicit eq: Equal[L]): B
    Definition Classes
    Monoid
  10. def isMZero(a: L)(implicit eq: Equal[L]): Boolean
    Definition Classes
    Monoid
  11. def lt(x: L, y: L): Boolean
    Definition Classes
    PartialOrdering
  12. def lteq(x: L, y: L): Boolean
    Definition Classes
    JoinLattice → PartialOrdering
  13. def monoidLaw: MonoidLaw
    Definition Classes
    Monoid
  14. val monoidSyntax: MonoidSyntax[L]
    Definition Classes
    Monoid
  15. def multiply(value: L, n: Int): L
    Definition Classes
    Monoid
  16. def multiply1(value: L, n: Int): L
    Definition Classes
    Semigroup
  17. final def onEmpty[A, B](a: L)(v: ⇒ B)(implicit eq: Equal[L], mb: Monoid[B]): B
    Definition Classes
    Monoid
  18. final def onNotEmpty[B](a: L)(v: ⇒ B)(implicit eq: Equal[L], mb: Monoid[B]): B
    Definition Classes
    Monoid
  19. def reverse: PartialOrdering[L]
    Definition Classes
    PartialOrdering
  20. def semigroupLaw: SemigroupLaw
    Definition Classes
    Semigroup
  21. val semigroupSyntax: SemigroupSyntax[L]
    Definition Classes
    Semigroup
  22. def totalLessThan(a: L, b: L): Boolean

    Force an artificial "total order" to sort final values and have a deterministic printing output.

    Force an artificial "total order" to sort final values and have a deterministic printing output. (The corresponding relation <= is not always transitive, but it is good enough.)

  23. def tryCompare(x: L, y: L): Option[Int]

    If x and y are comparable then returns the comparison, else returns None.

    If x and y are comparable then returns the comparison, else returns None.

    Definition Classes
    JoinLattice → PartialOrdering
  24. def zero: L
    Definition Classes
    JoinLattice → Monoid