    x <- atomically $ PQ.deleteMin pq
    putStrLn $ "x = " ++ show x -- prints 2
@
-}

module Data.STM.PriorityQueue.Class (
    PriorityQueue(..)
) where

import Control.Concurrent.STM

class PriorityQueue q where

    -- | /O(1)/. Creates empty priority queue.
    new          :: (Ord k) => STM (q k v)