lens-4.6: Lenses, Folds and Traversals

Control.Lens.Internal.Deque

Description

This module is designed to be imported qualified.

Synopsis

# Documentation

data Deque a Source

A Banker's deque based on Chris Okasaki's "Purely Functional Data Structures"

Constructors

 BD !Int [a] !Int [a]

Instances

 Alternative Deque Monad Deque Functor Deque MonadPlus Deque Applicative Deque Foldable Deque Traversable Deque Plus Deque Alt Deque Apply Deque Bind Deque TraversableWithIndex Int Deque FoldableWithIndex Int Deque FunctorWithIndex Int Deque Eq a => Eq (Deque a) Ord a => Ord (Deque a) Show a => Show (Deque a) Monoid (Deque a) Semigroup (Deque a) Reversing (Deque a) Snoc (Deque a) (Deque b) a b Cons (Deque a) (Deque b) a b

size :: Deque a -> Int Source

O(1). Calculate the size of a `Deque`

````>>> ````size (fromList [1,4,6])
```3
```

fromList :: [a] -> Deque a Source

O(n) amortized. Construct a `Deque` from a list of values.

````>>> ````fromList [1,2]
```BD 1  1 
```

null :: Deque a -> Bool Source

O(1). Determine of a `Deque` is `empty`.

````>>> ````null empty
```True
```
````>>> ````null (singleton 1)
```False
```

singleton :: a -> Deque a Source

O(1). Generate a singleton `Deque`

````>>> ````singleton 1
```BD 1  0 []
```