chaselev-deque: Chase & Lev work-stealing lock-free double-ended queues (deques).

[ bsd3, concurrent, data, library ] [ Propose Tags ]

A queue that is push/pop on one end and pop-only on the other. These are commonly used for work-stealing. This implementation derives directly from the pseudocode in the 2005 SPAA paper:


Versions [faq] 0.1.2, 0.1.3, 0.4,,,
Dependencies abstract-deque (>=0.2.2 && <0.3), array, atomic-primops (==0.4.*), base (>= && <5), bits-atomic, ghc-prim, transformers, vector [details]
License BSD-3-Clause
Author Ryan R. Newton, Edward Kmett
Category Data, Concurrent
Home page
Source repo head: git clone git://
Uploaded by RyanNewton at Tue Sep 17 06:55:18 UTC 2013
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 6260 total (386 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]



  • Data
    • Concurrent
      • Deque
        • Data.Concurrent.Deque.ChaseLev
          • Data.Concurrent.Deque.ChaseLev.DequeInstance



Enable the extra internal checks.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees