-- 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.1 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 Data.Semigroup.Semigroup (Deque.Deque a) 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