homepage: https://oss.xkcd.com/
changelog-type: markdown
hash: e20da2075514267b59451aa9752982586ad471457c71c4a2b1235694b905df01
test-bench-deps:
  equeue: -any
  stm: -any
  base: ! '>=4.8 && <4.13'
  time: ! '>=1.8 && <1.10'
  semigroups: -any
  containers: -any
  contravariant: -any
  delay: ^>=0
  tasty-hunit: ^>=0.10
  tasty: ! '>=1.1 && <1.3'
maintainer: oss@xkcd.com
synopsis: Application level triggered, and edge triggered event multiqueues.
changelog: |
  # Revision history for equeue

  ## 0 -- YYYY-mm-dd

  * First version. Released on an unsuspecting world.
basic-deps:
  stm: ^>=2.5
  base: ! '>=4.8 && <4.13'
  semigroups: ^>=0.18
  containers: ^>=0.6
  contravariant: ^>=1.5
  mtl: ^>=2.2
all-versions:
- '0'
author: davean
latest: '0'
description-type: haddock
description: |-
  A system for providing late binding for how different types of events are handled.

  It is often important for an application to control how it consumes updates for optimal
  processing, but event sources are typically in control of delivery. The EQueue abstraction
  allows the consumer to provide an implimentation that balances delivery for its needs.
  To do this, it distinguishes events into two types, level and edge triggered.

  Level triggered events are used where the resulting state is cared about and a pure model
  of how events combine is available as a Semigroup instance. The transitions it took to get
  to the new state between dequeues is not of interest.

  Edge triggered events are where the sequence of occurences are of importance, or a
  pure model is not available.
license-name: BSD-3-Clause

Update from Hackage at 2019-01-01T06:56:17Z
Update from Hackage at 2019-01-01T06:56:17Z
