-- 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.2 module Deque -- | Double-ended queue (aka Dequeue or Deque) based on the head-tail -- linked list. Can be cycled. See shiftLeft and -- shiftRight. data Deque a Deque :: [a] -> [a] -> Deque a -- | O(1). toList is available from the Foldable -- instance. fromList :: [a] -> Deque a -- | O(1), occasionally O(n). -- --
-- λ toList . shiftLeft $ fromList [1,2,3] -- [2,3,1] --shiftLeft :: Deque a -> Deque a -- | O(1), occasionally O(n). -- --
-- λ toList . shiftRight $ fromList [1,2,3] -- [3,1,2] --shiftRight :: Deque a -> Deque a -- | O(1). Prepend an element. cons :: a -> Deque a -> Deque a -- | O(1). Append an element. 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). head :: Deque a -> Maybe a -- | O(1), occasionally O(n). tail :: Deque a -> Deque a -- | O(1), occasionally O(n). init :: Deque a -> Deque a -- | O(1), occasionally O(n). last :: Deque a -> Maybe a instance GHC.Classes.Eq a => GHC.Classes.Eq (Deque.Deque a) instance GHC.Show.Show a => GHC.Show.Show (Deque.Deque a) instance GHC.Base.Functor Deque.Deque instance GHC.Base.Monoid (Deque.Deque a) instance Data.Foldable.Foldable Deque.Deque instance Data.Traversable.Traversable Deque.Deque instance GHC.Base.Applicative Deque.Deque instance GHC.Base.Monad Deque.Deque