EdisonCore-1.3: A library of efficent, purely-functional data structures (Core Implementations)

CopyrightCopyright (c) 1998, 2008 Chris Okasaki
LicenseMIT; see COPYRIGHT file for terms and conditions
Maintainerrobdockins AT fastmail DOT fm
Stabilityinternal (unstable)
PortabilityGHC, Hugs (MPTC and FD)
Safe HaskellNone
LanguageHaskell2010

Data.Edison.Seq.Defaults

Description

This module provides default implementations of many of the sequence operations. It is used to fill in implementations and is not intended for end users.

Documentation

rconsUsingAppend :: Sequence s => a -> s a -> s a Source

rconsUsingFoldr :: Sequence s => a -> s a -> s a Source

appendUsingFoldr :: Sequence s => s a -> s a -> s a Source

rviewDefault :: (Monad m, Sequence s) => s a -> m (a, s a) Source

rtailUsingLview :: Sequence s => s a -> s a Source

rtailMUsingLview :: (Monad m, Sequence s) => s a -> m (s a) Source

concatUsingFoldr :: Sequence s => s (s a) -> s a Source

reverseUsingLists :: Sequence s => s a -> s a Source

reverseOntoUsingFoldl :: Sequence s => s a -> s a -> s a Source

reverseOntoUsingReverse :: Sequence s => s a -> s a -> s a Source

fromListUsingCons :: Sequence s => [a] -> s a Source

toListUsingFoldr :: Sequence s => s a -> [a] Source

mapUsingFoldr :: Sequence s => (a -> b) -> s a -> s b Source

concatMapUsingFoldr :: Sequence s => (a -> s b) -> s a -> s b Source

foldrUsingLists :: Sequence s => (a -> b -> b) -> b -> s a -> b Source

foldr'UsingLists :: Sequence s => (a -> b -> b) -> b -> s a -> b Source

foldlUsingLists :: Sequence s => (b -> a -> b) -> b -> s a -> b Source

foldl'UsingLists :: Sequence s => (b -> a -> b) -> b -> s a -> b Source

foldr1UsingLists :: Sequence s => (a -> a -> a) -> s a -> a Source

foldr1'UsingLists :: Sequence s => (a -> a -> a) -> s a -> a Source

foldl1UsingLists :: Sequence s => (a -> a -> a) -> s a -> a Source

foldl1'UsingLists :: Sequence s => (a -> a -> a) -> s a -> a Source

fold1UsingFold :: Sequence s => (a -> a -> a) -> s a -> a Source

fold1'UsingFold' :: Sequence s => (a -> a -> a) -> s a -> a Source

foldr1UsingLview :: Sequence s => (a -> a -> a) -> s a -> a Source

foldr1'UsingLview :: Sequence s => (a -> a -> a) -> s a -> a Source

foldl1UsingFoldl :: Sequence s => (a -> a -> a) -> s a -> a Source

foldl1'UsingFoldl' :: Sequence s => (a -> a -> a) -> s a -> a Source

reducerUsingReduce1 :: Sequence s => (a -> a -> a) -> a -> s a -> a Source

reducer'UsingReduce1' :: Sequence s => (a -> a -> a) -> a -> s a -> a Source

reducelUsingReduce1 :: Sequence s => (a -> a -> a) -> a -> s a -> a Source

reducel'UsingReduce1' :: Sequence s => (a -> a -> a) -> a -> s a -> a Source

reduce1UsingLists :: Sequence s => (a -> a -> a) -> s a -> a Source

reduce1'UsingLists :: Sequence s => (a -> a -> a) -> s a -> a Source

copyUsingLists :: Sequence s => Int -> a -> s a Source

lookupUsingDrop :: Sequence s => Int -> s a -> a Source

lookupMUsingDrop :: (Monad m, Sequence s) => Int -> s a -> m a Source

filterUsingLview :: Sequence s => (a -> Bool) -> s a -> s a Source

filterUsingLists :: Sequence s => (a -> Bool) -> s a -> s a Source

filterUsingFoldr :: Sequence s => (a -> Bool) -> s a -> s a Source

partitionUsingLists :: Sequence s => (a -> Bool) -> s a -> (s a, s a) Source

partitionUsingFoldr :: Sequence s => (a -> Bool) -> s a -> (s a, s a) Source

updateUsingAdjust :: Sequence s => Int -> a -> s a -> s a Source

updateUsingSplitAt :: Sequence s => Int -> a -> s a -> s a Source

adjustUsingLists :: Sequence s => (a -> a) -> Int -> s a -> s a Source

adjustUsingSplitAt :: Sequence s => (a -> a) -> Int -> s a -> s a Source

mapWithIndexUsingLists :: Sequence s => (Int -> a -> b) -> s a -> s b Source

foldrWithIndexUsingLists :: Sequence s => (Int -> a -> b -> b) -> b -> s a -> b Source

foldrWithIndex'UsingLists :: Sequence s => (Int -> a -> b -> b) -> b -> s a -> b Source

foldlWithIndexUsingLists :: Sequence s => (b -> Int -> a -> b) -> b -> s a -> b Source

foldlWithIndex'UsingLists :: Sequence s => (b -> Int -> a -> b) -> b -> s a -> b Source

takeUsingLists :: Sequence s => Int -> s a -> s a Source

takeUsingLview :: Sequence s => Int -> s a -> s a Source

dropUsingLists :: Sequence s => Int -> s a -> s a Source

dropUsingLtail :: Sequence s => Int -> s a -> s a Source

splitAtDefault :: Sequence s => Int -> s a -> (s a, s a) Source

splitAtUsingLview :: Sequence s => Int -> s a -> (s a, s a) Source

subseqDefault :: Sequence s => Int -> Int -> s a -> s a Source

takeWhileUsingLview :: Sequence s => (a -> Bool) -> s a -> s a Source

dropWhileUsingLview :: Sequence s => (a -> Bool) -> s a -> s a Source

splitWhileUsingLview :: Sequence s => (a -> Bool) -> s a -> (s a, s a) Source

zipUsingLview :: Sequence s => s a -> s b -> s (a, b) Source

zip3UsingLview :: Sequence s => s a -> s b -> s c -> s (a, b, c) Source

zipWithUsingLview :: Sequence s => (a -> b -> c) -> s a -> s b -> s c Source

zipWith3UsingLview :: Sequence s => (a -> b -> c -> d) -> s a -> s b -> s c -> s d Source

zipUsingLists :: Sequence s => s a -> s b -> s (a, b) Source

zip3UsingLists :: Sequence s => s a -> s b -> s c -> s (a, b, c) Source

zipWithUsingLists :: Sequence s => (a -> b -> c) -> s a -> s b -> s c Source

zipWith3UsingLists :: Sequence s => (a -> b -> c -> d) -> s a -> s b -> s c -> s d Source

unzipUsingLists :: Sequence s => s (a, b) -> (s a, s b) Source

unzipUsingFoldr :: Sequence s => s (a, b) -> (s a, s b) Source

unzip3UsingLists :: Sequence s => s (a, b, c) -> (s a, s b, s c) Source

unzip3UsingFoldr :: Sequence s => s (a, b, c) -> (s a, s b, s c) Source

unzipWithUsingLists :: Sequence s => (a -> b) -> (a -> c) -> s a -> (s b, s c) Source

unzipWithUsingFoldr :: Sequence s => (a -> b) -> (a -> c) -> s a -> (s b, s c) Source

unzipWith3UsingLists :: Sequence s => (a -> b) -> (a -> c) -> (a -> d) -> s a -> (s b, s c, s d) Source

unzipWith3UsingFoldr :: Sequence s => (a -> b) -> (a -> c) -> (a -> d) -> s a -> (s b, s c, s d) Source

defaultCompare :: (Ord a, Sequence s) => s a -> s a -> Ordering Source

dropMatch :: (Eq a, MonadPlus m) => [a] -> [a] -> m [a] Source