sequence-0.9.8: A type class for sequences and various sequence data structures.

Copyright(c) Atze van der Ploeg 2013
LicenseBSD-style
Maintaineratzeus@gmail.org
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Data.Sequence.ToCatQueue

Description

A purely functional catenable queue representation with that turns takes a purely functional queue and turns in it into a catenable queue, i.e. with the same complexity for >< as for |> Based on Purely functional data structures by Chris Okasaki section 7.2: Catenable lists

Synopsis

Documentation

data ToCatQueue q a #

The catenable queue type. The first type argument is the type of the queue we use (|>)

Instances

Functor q => Functor (ToCatQueue q) # 

Methods

fmap :: (a -> b) -> ToCatQueue q a -> ToCatQueue q b #

(<$) :: a -> ToCatQueue q b -> ToCatQueue q a #

Foldable q => Foldable (ToCatQueue q) # 

Methods

fold :: Monoid m => ToCatQueue q m -> m #

foldMap :: Monoid m => (a -> m) -> ToCatQueue q a -> m #

foldr :: (a -> b -> b) -> b -> ToCatQueue q a -> b #

foldr' :: (a -> b -> b) -> b -> ToCatQueue q a -> b #

foldl :: (b -> a -> b) -> b -> ToCatQueue q a -> b #

foldl' :: (b -> a -> b) -> b -> ToCatQueue q a -> b #

foldr1 :: (a -> a -> a) -> ToCatQueue q a -> a #

foldl1 :: (a -> a -> a) -> ToCatQueue q a -> a #

toList :: ToCatQueue q a -> [a] #

null :: ToCatQueue q a -> Bool #

length :: ToCatQueue q a -> Int #

elem :: Eq a => a -> ToCatQueue q a -> Bool #

maximum :: Ord a => ToCatQueue q a -> a #

minimum :: Ord a => ToCatQueue q a -> a #

sum :: Num a => ToCatQueue q a -> a #

product :: Num a => ToCatQueue q a -> a #

Traversable q => Traversable (ToCatQueue q) # 

Methods

traverse :: Applicative f => (a -> f b) -> ToCatQueue q a -> f (ToCatQueue q b) #

sequenceA :: Applicative f => ToCatQueue q (f a) -> f (ToCatQueue q a) #

mapM :: Monad m => (a -> m b) -> ToCatQueue q a -> m (ToCatQueue q b) #

sequence :: Monad m => ToCatQueue q (m a) -> m (ToCatQueue q a) #

Sequence q => Sequence (ToCatQueue q) # 

Methods

empty :: ToCatQueue q c #

singleton :: c -> ToCatQueue q c #

(><) :: ToCatQueue q c -> ToCatQueue q c -> ToCatQueue q c #

viewl :: ToCatQueue q c -> ViewL (ToCatQueue q) c #

viewr :: ToCatQueue q c -> ViewR (ToCatQueue q) c #

(|>) :: ToCatQueue q c -> c -> ToCatQueue q c #

(<|) :: c -> ToCatQueue q c -> ToCatQueue q c #