-----------------------------------------------------------------------------
-- |
-- Module : Data.Queue.Class
-- Copyright : (c) Leon P Smith 2009
-- License : BSD3
--
-- Maintainer : leon at melding-monads dot com
-- Stability : experimental
-- Portability : portable
--
-----------------------------------------------------------------------------
module Data.Queue.Class
( Queue(empty, enque, deque)
) where
class Queue q where
empty :: q a
enque :: a -> q a -> q a
deque :: q a -> (Maybe a, q a)