-- 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.7 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(n). Leave only the first elements satisfying the predicate. takeWhile :: (a -> Bool) -> Deque a -> Deque a -- | O(n). Drop the first elements satisfying the predicate. dropWhile :: (a -> Bool) -> Deque 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). null :: Deque a -> Bool -- | 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.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 instance GHC.Base.Alternative Deque.Deque instance GHC.Base.MonadPlus Deque.Deque instance Control.Monad.Fail.MonadFail Deque.Deque