EdisonCore-1.2.1.2: A library of efficent, purely-functional data structures (Core Implementations)Source codeContentsIndex
Data.Edison.Seq.SizedSeq
PortabilityGHC, Hugs (MPTC and FD)
Stabilitystable
Maintainerrobdockins AT fastmail DOT fm
Contents
Sized Sequence Type
Sequence Operations
Unit testing
Documentation
Other supported operations
Description

This module defines a sequence adaptor Sized s. If s is a sequence type constructor, then Sized s is a sequence type constructor that is identical to s, except that it also keeps track of the current size of each sequence.

All time complexities are determined by the underlying sequence, except that size becomes O( 1 ).

Synopsis
data Sized s a
empty :: Sequence s => Sized s a
singleton :: Sequence s => a -> Sized s a
lcons :: Sequence s => a -> Sized s a -> Sized s a
rcons :: Sequence s => a -> Sized s a -> Sized s a
append :: Sequence s => Sized s a -> Sized s a -> Sized s a
lview :: (Sequence s, Monad m) => Sized s a -> m (a, Sized s a)
lhead :: Sequence s => Sized s a -> a
ltail :: Sequence s => Sized s a -> Sized s a
rview :: (Sequence s, Monad m) => Sized s a -> m (a, Sized s a)
rhead :: Sequence s => Sized s a -> a
rtail :: Sequence s => Sized s a -> Sized s a
lheadM :: (Sequence s, Monad m) => Sized s a -> m a
ltailM :: (Sequence s, Monad m) => Sized s a -> m (Sized s a)
rheadM :: (Sequence s, Monad m) => Sized s a -> m a
rtailM :: (Sequence s, Monad m) => Sized s a -> m (Sized s a)
null :: Sequence s => Sized s a -> Bool
size :: Sequence s => Sized s a -> Int
concat :: Sequence s => Sized s (Sized s a) -> Sized s a
reverse :: Sequence s => Sized s a -> Sized s a
reverseOnto :: Sequence s => Sized s a -> Sized s a -> Sized s a
fromList :: Sequence s => [a] -> Sized s a
toList :: Sequence s => Sized s a -> [a]
map :: Sequence s => (a -> b) -> Sized s a -> Sized s b
concatMap :: Sequence s => (a -> Sized s b) -> Sized s a -> Sized s b
fold :: Sequence s => (a -> b -> b) -> b -> Sized s a -> b
fold' :: Sequence s => (a -> b -> b) -> b -> Sized s a -> b
fold1 :: Sequence s => (a -> a -> a) -> Sized s a -> a
fold1' :: Sequence s => (a -> a -> a) -> Sized s a -> a
foldr :: Sequence s => (a -> b -> b) -> b -> Sized s a -> b
foldr' :: Sequence s => (a -> b -> b) -> b -> Sized s a -> b
foldl :: Sequence s => (b -> a -> b) -> b -> Sized s a -> b
foldl' :: Sequence s => (b -> a -> b) -> b -> Sized s a -> b
foldr1 :: Sequence s => (a -> a -> a) -> Sized s a -> a
foldr1' :: Sequence s => (a -> a -> a) -> Sized s a -> a
foldl1 :: Sequence s => (a -> a -> a) -> Sized s a -> a
foldl1' :: Sequence s => (a -> a -> a) -> Sized s a -> a
reducer :: Sequence s => (a -> a -> a) -> a -> Sized s a -> a
reducer' :: Sequence s => (a -> a -> a) -> a -> Sized s a -> a
reducel :: Sequence s => (a -> a -> a) -> a -> Sized s a -> a
reducel' :: Sequence s => (a -> a -> a) -> a -> Sized s a -> a
reduce1 :: Sequence s => (a -> a -> a) -> Sized s a -> a
reduce1' :: Sequence s => (a -> a -> a) -> Sized s a -> a
copy :: Sequence s => Int -> a -> Sized s a
inBounds :: Sequence s => Int -> Sized s a -> Bool
lookup :: Sequence s => Int -> Sized s a -> a
lookupM :: (Sequence s, Monad m) => Int -> Sized s a -> m a
lookupWithDefault :: Sequence s => a -> Int -> Sized s a -> a
update :: Sequence s => Int -> a -> Sized s a -> Sized s a
adjust :: Sequence s => (a -> a) -> Int -> Sized s a -> Sized s a
mapWithIndex :: Sequence s => (Int -> a -> b) -> Sized s a -> Sized s b
foldrWithIndex :: Sequence s => (Int -> a -> b -> b) -> b -> Sized s a -> b
foldlWithIndex :: Sequence s => (b -> Int -> a -> b) -> b -> Sized s a -> b
foldrWithIndex' :: Sequence s => (Int -> a -> b -> b) -> b -> Sized s a -> b
foldlWithIndex' :: Sequence s => (b -> Int -> a -> b) -> b -> Sized s a -> b
take :: Sequence s => Int -> Sized s a -> Sized s a
drop :: Sequence s => Int -> Sized s a -> Sized s a
splitAt :: Sequence s => Int -> Sized s a -> (Sized s a, Sized s a)
subseq :: Sequence s => Int -> Int -> Sized s a -> Sized s a
filter :: Sequence s => (a -> Bool) -> Sized s a -> Sized s a
partition :: Sequence s => (a -> Bool) -> Sized s a -> (Sized s a, Sized s a)
takeWhile :: Sequence s => (a -> Bool) -> Sized s a -> Sized s a
dropWhile :: Sequence s => (a -> Bool) -> Sized s a -> Sized s a
splitWhile :: Sequence s => (a -> Bool) -> Sized s a -> (Sized s a, Sized s a)
zip :: Sequence s => Sized s a -> Sized s b -> Sized s (a, b)
zip3 :: Sequence s => Sized s a -> Sized s b -> Sized s c -> Sized s (a, b, c)
zipWith :: Sequence s => (a -> b -> c) -> Sized s a -> Sized s b -> Sized s c
zipWith3 :: Sequence s => (a -> b -> c -> d) -> Sized s a -> Sized s b -> Sized s c -> Sized s d
unzip :: Sequence s => Sized s (a, b) -> (Sized s a, Sized s b)
unzip3 :: Sequence s => Sized s (a, b, c) -> (Sized s a, Sized s b, Sized s c)
unzipWith :: Sequence s => (a -> b) -> (a -> c) -> Sized s a -> (Sized s b, Sized s c)
unzipWith3 :: Sequence s => (a -> b) -> (a -> c) -> (a -> d) -> Sized s a -> (Sized s b, Sized s c, Sized s d)
strict :: Sequence s => Sized s a -> Sized s a
strictWith :: Sequence s => (a -> b) -> Sized s a -> Sized s a
structuralInvariant :: Sequence s => Sized s a -> Bool
moduleName :: String
instanceName :: Sequence s => Sized s a -> String
fromSeq :: Sequence s => s a -> Sized s a
toSeq :: Sequence s => Sized s a -> s a
Sized Sequence Type
data Sized s a Source
show/hide Instances
Sequence s => Monad (Sized s)
Sequence s => Functor (Sized s)
Sequence s => MonadPlus (Sized s)
Sequence s => Sequence (Sized s)
Eq (s a) => Eq (Sized s a)
(Sequence s, Ord a, Eq (s a)) => Ord (Sized s a)
(Sequence s, Read (s a)) => Read (Sized s a)
(Sequence s, Show (s a)) => Show (Sized s a)
Sequence s => Monoid (Sized s a)
(Sequence s, Arbitrary (s a)) => Arbitrary (Sized s a)
Sequence Operations
empty :: Sequence s => Sized s aSource
singleton :: Sequence s => a -> Sized s aSource
lcons :: Sequence s => a -> Sized s a -> Sized s aSource
rcons :: Sequence s => a -> Sized s a -> Sized s aSource
append :: Sequence s => Sized s a -> Sized s a -> Sized s aSource
lview :: (Sequence s, Monad m) => Sized s a -> m (a, Sized s a)Source
lhead :: Sequence s => Sized s a -> aSource
ltail :: Sequence s => Sized s a -> Sized s aSource
rview :: (Sequence s, Monad m) => Sized s a -> m (a, Sized s a)Source
rhead :: Sequence s => Sized s a -> aSource
rtail :: Sequence s => Sized s a -> Sized s aSource
lheadM :: (Sequence s, Monad m) => Sized s a -> m aSource
ltailM :: (Sequence s, Monad m) => Sized s a -> m (Sized s a)Source
rheadM :: (Sequence s, Monad m) => Sized s a -> m aSource
rtailM :: (Sequence s, Monad m) => Sized s a -> m (Sized s a)Source
null :: Sequence s => Sized s a -> BoolSource
size :: Sequence s => Sized s a -> IntSource
concat :: Sequence s => Sized s (Sized s a) -> Sized s aSource
reverse :: Sequence s => Sized s a -> Sized s aSource
reverseOnto :: Sequence s => Sized s a -> Sized s a -> Sized s aSource
fromList :: Sequence s => [a] -> Sized s aSource
toList :: Sequence s => Sized s a -> [a]Source
map :: Sequence s => (a -> b) -> Sized s a -> Sized s bSource
concatMap :: Sequence s => (a -> Sized s b) -> Sized s a -> Sized s bSource
fold :: Sequence s => (a -> b -> b) -> b -> Sized s a -> bSource
fold' :: Sequence s => (a -> b -> b) -> b -> Sized s a -> bSource
fold1 :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
fold1' :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
foldr :: Sequence s => (a -> b -> b) -> b -> Sized s a -> bSource
foldr' :: Sequence s => (a -> b -> b) -> b -> Sized s a -> bSource
foldl :: Sequence s => (b -> a -> b) -> b -> Sized s a -> bSource
foldl' :: Sequence s => (b -> a -> b) -> b -> Sized s a -> bSource
foldr1 :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
foldr1' :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
foldl1 :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
foldl1' :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
reducer :: Sequence s => (a -> a -> a) -> a -> Sized s a -> aSource
reducer' :: Sequence s => (a -> a -> a) -> a -> Sized s a -> aSource
reducel :: Sequence s => (a -> a -> a) -> a -> Sized s a -> aSource
reducel' :: Sequence s => (a -> a -> a) -> a -> Sized s a -> aSource
reduce1 :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
reduce1' :: Sequence s => (a -> a -> a) -> Sized s a -> aSource
copy :: Sequence s => Int -> a -> Sized s aSource
inBounds :: Sequence s => Int -> Sized s a -> BoolSource
lookup :: Sequence s => Int -> Sized s a -> aSource
lookupM :: (Sequence s, Monad m) => Int -> Sized s a -> m aSource
lookupWithDefault :: Sequence s => a -> Int -> Sized s a -> aSource
update :: Sequence s => Int -> a -> Sized s a -> Sized s aSource
adjust :: Sequence s => (a -> a) -> Int -> Sized s a -> Sized s aSource
mapWithIndex :: Sequence s => (Int -> a -> b) -> Sized s a -> Sized s bSource
foldrWithIndex :: Sequence s => (Int -> a -> b -> b) -> b -> Sized s a -> bSource
foldlWithIndex :: Sequence s => (b -> Int -> a -> b) -> b -> Sized s a -> bSource
foldrWithIndex' :: Sequence s => (Int -> a -> b -> b) -> b -> Sized s a -> bSource
foldlWithIndex' :: Sequence s => (b -> Int -> a -> b) -> b -> Sized s a -> bSource
take :: Sequence s => Int -> Sized s a -> Sized s aSource
drop :: Sequence s => Int -> Sized s a -> Sized s aSource
splitAt :: Sequence s => Int -> Sized s a -> (Sized s a, Sized s a)Source
subseq :: Sequence s => Int -> Int -> Sized s a -> Sized s aSource
filter :: Sequence s => (a -> Bool) -> Sized s a -> Sized s aSource
partition :: Sequence s => (a -> Bool) -> Sized s a -> (Sized s a, Sized s a)Source
takeWhile :: Sequence s => (a -> Bool) -> Sized s a -> Sized s aSource
dropWhile :: Sequence s => (a -> Bool) -> Sized s a -> Sized s aSource
splitWhile :: Sequence s => (a -> Bool) -> Sized s a -> (Sized s a, Sized s a)Source
zip :: Sequence s => Sized s a -> Sized s b -> Sized s (a, b)Source
zip3 :: Sequence s => Sized s a -> Sized s b -> Sized s c -> Sized s (a, b, c)Source
zipWith :: Sequence s => (a -> b -> c) -> Sized s a -> Sized s b -> Sized s cSource
zipWith3 :: Sequence s => (a -> b -> c -> d) -> Sized s a -> Sized s b -> Sized s c -> Sized s dSource
unzip :: Sequence s => Sized s (a, b) -> (Sized s a, Sized s b)Source
unzip3 :: Sequence s => Sized s (a, b, c) -> (Sized s a, Sized s b, Sized s c)Source
unzipWith :: Sequence s => (a -> b) -> (a -> c) -> Sized s a -> (Sized s b, Sized s c)Source
unzipWith3 :: Sequence s => (a -> b) -> (a -> c) -> (a -> d) -> Sized s a -> (Sized s b, Sized s c, Sized s d)Source
strict :: Sequence s => Sized s a -> Sized s aSource
strictWith :: Sequence s => (a -> b) -> Sized s a -> Sized s aSource
Unit testing
structuralInvariant :: Sequence s => Sized s a -> BoolSource
Documentation
moduleName :: StringSource
instanceName :: Sequence s => Sized s a -> StringSource
Other supported operations
fromSeq :: Sequence s => s a -> Sized s aSource
toSeq :: Sequence s => Sized s a -> s aSource
Produced by Haddock version 2.3.0