           SPELL=haskell-psqueues
         VERSION=0.2.7.0
          SOURCE="psqueues-${VERSION}.tar.gz"
   SOURCE_URL[0]=http://hackage.haskell.org/package/psqueues-${VERSION}/${SOURCE}
     SOURCE_HASH=sha512:f947c6bd357aa89c386ac093e036dd766260257a69f542ed0db0e860bf40dc12d9932a2c79f9074a7a5e500b27298be5f2ce993bd524287d6fbac6bed3fc4f1b
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/psqueues-${VERSION}"
        WEB_SITE="http://hackage.haskell.org/package/psqueues"
      LICENSE[0]=BSD
         ENTERED=20180121
           SHORT="the psqueues package provides Priority Search Queues in three different flavors"
cat << EOF
The psqueues package provides Priority Search Queues in three different
flavors.

* OrdPSQ k p v, which uses the Ord k instance to provide fast insertion,
  deletion and lookup. This implementation is based on Ralf Hinze's A Simple
  Implementation Technique for Priority Search Queues. Hence, it is similar
  to the PSQueue library, although it is considerably faster and provides
  a slightly different API.
* IntPSQ p v is a far more efficient implementation. It fixes the key type to
  Int and uses a radix tree (like IntMap) with an additional min-heap property.
* HashPSQ k p v is a fairly straightforward extension of IntPSQ: it simply
  uses the keys' hashes as indices in the IntPSQ. If there are any hash
  collisions, it uses an OrdPSQ to resolve those. The performance of this
  implementation is comparable to that of IntPSQ, but it is more widely
  applicable since the keys are not restricted to Int, but rather to any
  Hashable datatype.

Each of the three implementations provides the same API, so they can be
used interchangeably.
EOF
