homepage: https://github.com/robrix/semilattices
changelog-type: markdown
hash: 91496184ff435cb67c68ea2365eded62407c9a50562f6db068ea1a8b439ecc2c
test-bench-deps:
  base: -any
  doctest: ! '>=0.7 && <1.0'
  quickcheck-instances: ==0.3.*
  QuickCheck: ! '>=2.7 && <2.12'
maintainer: rob.rix@me.com
synopsis: Semilattices
changelog: ! '# 0.0.0.0


  Initial release on hackage.

'
basic-deps:
  base: ! '>=4.9 && <4.12'
  unordered-containers: ! '>=0.2 && <0.3'
  containers: ! '>=0.5 && <0.6'
  hashable: ! '>=1.2 && <1.3'
all-versions:
- '0.0.0.0'
author: Rob Rix
latest: '0.0.0.0'
description-type: markdown
description: ! '# `semilattices`


  This Haskell package defines typeclasses for join- and meet-semilattices, and for
  upper and lower bounds, and a variety of instances for each.



  ## Usage


  Semilattices are idempotent commutative semigroups, and come in two flavours: `Join`
  and `Meet`. This presentation of them doesn’t inherit from `Semigroup` however,
  since `Semigroup`s already exist and the relationships between the various classes
  here warrant their own operators.


  Join semilattices can be combined using the `\/` operator (pronounced “lub,” for
  “least upper bound”). Meet semilattices can be combined with the `/\` operator (pronounced
  “glb,” for “greatest lower bound”). They have opposite relationships to `Lower`
  and `Upper` bounds (which are optional; in general, there are more lower bounds
  than upper ones).

'
license-name: BSD3

Update from Hackage at 2018-06-15T15:22:59Z
Update from Hackage at 2018-06-15T15:22:59Z
