# CHANGELOG

- 0.2.8.3 (2025-12-28)
    * Fix compilation with MicroHS

- 0.2.8.2 (2025-08-08)
    * Use Straka's balancing algorithm for OrdPSQ (#64):

      Milan Straka's paper 'Adams’ Trees Revisited' argues that Adams'
      balancing algorithm previously did not have a correct proof. It
      provides a proof of a slightly modified balancing algorithm that
      prefers single rotations in many more cases. The small change
      specified in that paper fixes the frequent quickcheck failures
      exposed when the balance test was made more precise.

    * Remove unnecessary dependencies: array, containers, ghc-prim, mtl,
      unordered-containers

- 0.2.8.1 (2025-01-28)
    * Fix performance issue in OrdPSQ relating to balancing (#61).
    * Relax hashable upper bound to 1.5
    * Relax QuickCheck upper bound to 2.15
    * Relax tasty-quickcheck upper bound to 0.11

- 0.2.8.0 (2022-10-27)
    * Add a number of minor optimizations and INLINE pragmas:
        - The previous `INLINABLE` pragmas were insufficient to fully specialize
          functions. Add a bunch more. I believe they now do the job they were
          meant to.
        - Change the way we check for very short queues in `lbalance` and
          `rbalance` to avoid redundant size comparisons in the non-short
          case.
        - Make the fields of `Play` strict. I doubt this makes any practical
          difference, since `tourView` is `INLINE`, but in fact the fields are
          always in WHNF, so we might as well make that explicitly clear.
    * Fix a bug in `fromList`. It previously used the *first* occurrence
      of a duplicated key; it now uses the *last* occurrence, as documented.
    * Cleanup: refactor `binShrinkL` and `binShrinkR` into `bin`.
    * Bump deepseq upper bound to 1.6
    * Bump tasty upper bound to 1.6

- 0.2.7.3 (2021-11-05)
    * Relax hashable, tasty and QuickCheck upper bounds
    * Bump Cabal-version to 1.10

- 0.2.7.2 (2019-06-07)
    * Relax hashable upper bound to 1.3
    * Relax QuickCheck upper bound to 2.13
    * Switch from test-framework to tasty

- 0.2.7.1 (2019-01-07)
    * Relax QuickCheck upper bound to 2.12

- 0.2.7.0 (2018-04-30)
    * Export unsafe operations

- 0.2.6.0 (2018-03-14)
    * Fix issue with (<>) on 8.4
    * Bump QuickCheck dependency to 2.11

- 0.2.5.0 (2018-01-18)
    * Fix build on GHC 8.4

- 0.2.4.0 (2017-09-27)
    * Add `unsafeMapMonotonic`
    * Lower build depends version for hashable
    * Move repo to `jaspervdj/psqueues` to enable travis
    * Lower build depends version for hashable

- 0.2.3.0
    * Add an `atMostView` function to all PSQ flavours
    * Bump HUnit dependency to 1.6
    * Bump QuickCheck dependency to 2.10
    * Clean up warnings on newer and older GHC versions

- 0.2.2.3
    * Bump HUnit dependency to 1.5

- 0.2.2.2
    * Bump QuickCheck dependency bounds

- 0.2.2.1
    * Fix benchmark compilation with stack

- 0.2.2.0
    * Fix import of Traversable on GHC 7.8

- 0.2.1.0
    * Add Traversable instances

- 0.2.0.3
    * Bump HUnit dependency bounds

- 0.2.0.2
    * Bump QuickCheck dependency bounds

- 0.2.0.1
    * Minor documentation fixes

- 0.2.0.0
    * Add convenience `deleteMin` function
    * Bump `deepseq` dependency to 1.4

- 0.1.1.0
    * Remove constraints from `size`

- 0.1.0.1
    * Extend cabal description, include CHANGELOG

- 0.1.0.0
    * First release: <https://medium.com/@bttr/announcing-psqueues-8a0fe9fe939>
