content: -- | 'IntPSQ' fixes the key type to 'Int'. It is generally much faster than
  -- an 'OrdPSQ'.
  --
  -- Many operations have a worst-case complexity of O(min(n,W)). This means that
  -- the operation can -- become linear in the number of elements with a maximum
  -- of W -- the number of bits in an Int (32 or 64).
  {-# LANGUAGE CPP           #-}
  {-# LANGUAGE BangPatterns  #-}
  {-# LANGUAGE UnboxedTuples #-}
  module Data.IntPSQ
      ( -- * Type
        IntPSQ
  
        -- * Query
      , null
      , size
      , member
      , lookup
      , findMin
  
        -- * Construction
      , empty
      , singleton
  
        -- * Insertion
      , insert
  
        -- * Delete/update
      , delete
      , deleteMin
      , alter
      , alterMin
  
        -- * Lists
      , fromList
      , toList
      , keys
  
        -- * Views
      , insertView
      , deleteView
      , minView
      , atMostView
  
        -- * Traversal
      , map
      , unsafeMapMonotonic
      , fold'
  
        -- * Unsafe operations
      , unsafeInsertNew
      , unsafeInsertIncreasePriority
      , unsafeInsertIncreasePriorityView
      , unsafeInsertWithIncreasePriority
      , unsafeInsertWithIncreasePriorityView
      , unsafeLookupIncreasePriority
  
        -- * Validity check
      , valid
      ) where
  
  import           Prelude hiding (lookup, map, filter, foldr, foldl, null)
  
  import           Data.IntPSQ.Internal
  