EdisonCore-1.3.2: A library of efficient, 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 #

lookupUsingLookupM :: Sequence s => Int -> s a -> 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 #