-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Double-ended queue
--
-- An implementation of double-ended queue (aka Dequeue or Deque) based
-- on the head-tail linked list.
@package deque
@version 0.1
module Deque
data Deque a
Deque :: [a] -> [a] -> Deque a
-- | O(1).
fromList :: [a] -> Deque a
-- | O(1), occasionally O(n).
shiftRight :: Deque a -> Deque a
-- | O(1), occasionally O(n).
shiftLeft :: Deque a -> Deque a
-- | O(1).
cons :: a -> Deque a -> Deque a
-- | O(1).
snoc :: a -> Deque a -> Deque a
-- | O(1), occasionally O(n).
uncons :: Deque a -> Maybe (a, Deque a)
-- | O(1), occasionally O(n).
unsnoc :: Deque a -> Maybe (a, Deque a)
-- | O(n).
prepend :: Deque a -> Deque a -> Deque a
-- | O(1).
reverse :: Deque a -> Deque a
-- | O(1), occasionally O(n).
tail :: Deque a -> Deque a
-- | O(1), occasionally O(n).
init :: Deque a -> Deque a
instance GHC.Base.Functor Deque.Deque
instance GHC.Base.Monoid (Deque.Deque a)
instance Data.Foldable.Foldable Deque.Deque