sequence-0.9.9.0: 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-Inferred
LanguageHaskell2010

Data.Sequence.ToCatQueue.Internal

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 where Source #

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

Constructors

C0 :: ToCatQueue q a 
CN :: a -> !(q (ToCatQueue q a)) -> ToCatQueue q a 

Instances

Instances details
Functor q => Functor (ToCatQueue q) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

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

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

Foldable q => Foldable (ToCatQueue q) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

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

foldMap :: Monoid m => (a -> m) -> ToCatQueue q a -> 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) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

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) #

Foldable q => Show1 (ToCatQueue q) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> ToCatQueue q a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [ToCatQueue q a] -> ShowS #

Sequence q => Sequence (ToCatQueue q) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

(Foldable q, Eq a) => Eq (ToCatQueue q a) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

(==) :: ToCatQueue q a -> ToCatQueue q a -> Bool #

(/=) :: ToCatQueue q a -> ToCatQueue q a -> Bool #

(Foldable q, Ord a) => Ord (ToCatQueue q a) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

compare :: ToCatQueue q a -> ToCatQueue q a -> Ordering #

(<) :: ToCatQueue q a -> ToCatQueue q a -> Bool #

(<=) :: ToCatQueue q a -> ToCatQueue q a -> Bool #

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

(>=) :: ToCatQueue q a -> ToCatQueue q a -> Bool #

max :: ToCatQueue q a -> ToCatQueue q a -> ToCatQueue q a #

min :: ToCatQueue q a -> ToCatQueue q a -> ToCatQueue q a #

(Sequence q, Read a) => Read (ToCatQueue q a) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

(Show a, Foldable q) => Show (ToCatQueue q a) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

showsPrec :: Int -> ToCatQueue q a -> ShowS #

show :: ToCatQueue q a -> String #

showList :: [ToCatQueue q a] -> ShowS #

Sequence q => Semigroup (ToCatQueue q a) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

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

sconcat :: NonEmpty (ToCatQueue q a) -> ToCatQueue q a #

stimes :: Integral b => b -> ToCatQueue q a -> ToCatQueue q a #

Sequence q => Monoid (ToCatQueue q a) Source # 
Instance details

Defined in Data.Sequence.ToCatQueue.Internal

Methods

mempty :: ToCatQueue q a #

mappend :: ToCatQueue q a -> ToCatQueue q a -> ToCatQueue q a #

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