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

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

Data.Edison.Coll.UnbalancedSet

Contents

Description

Sets implemented as unbalanced binary search trees.

Synopsis

Set type

data Set a

Instances

Ord a => Eq (Set a) 
Ord a => Ord (Set a) 
(Ord a, Read a) => Read (Set a) 
(Ord a, Show a) => Show (Set a) 
(Ord a, Arbitrary a) => Arbitrary (Set a) 
(Ord a, CoArbitrary a) => CoArbitrary (Set a) 
Ord a => Monoid (Set a) 
Ord a => CollX (Set a) a 
Ord a => OrdCollX (Set a) a 
Ord a => SetX (Set a) a 
Ord a => OrdSetX (Set a) a 
Ord a => Coll (Set a) a 
Ord a => OrdColl (Set a) a 
Ord a => Set (Set a) a 
Ord a => OrdSet (Set a) a 

CollX operations

empty :: Set a

singleton :: a -> Set a

fromSeq :: (Ord a, Sequence seq) => seq a -> Set a

insert :: Ord a => a -> Set a -> Set a

insertSeq :: (Ord a, Sequence seq) => seq a -> Set a -> Set a

union :: Ord a => Set a -> Set a -> Set a

unionSeq :: (Ord a, Sequence seq) => seq (Set a) -> Set a

delete :: Ord a => a -> Set a -> Set a

deleteAll :: Ord a => a -> Set a -> Set a

deleteSeq :: (Ord a, Sequence seq) => seq a -> Set a -> Set a

null :: Set a -> Bool

size :: Set a -> Int

member :: Ord a => a -> Set a -> Bool

count :: Ord a => a -> Set a -> Int

strict :: Set a -> Set a

Coll operations

toSeq :: (Ord a, Sequence seq) => Set a -> seq a

lookup :: Ord a => a -> Set a -> a

lookupM :: (Ord a, Monad m) => a -> Set a -> m a

lookupAll :: (Ord a, Sequence seq) => a -> Set a -> seq a

lookupWithDefault :: Ord a => a -> a -> Set a -> a

fold :: (a -> b -> b) -> b -> Set a -> b

fold' :: (a -> b -> b) -> b -> Set a -> b

fold1 :: (a -> a -> a) -> Set a -> a

fold1' :: (a -> a -> a) -> Set a -> a

filter :: Ord a => (a -> Bool) -> Set a -> Set a

partition :: Ord a => (a -> Bool) -> Set a -> (Set a, Set a)

strictWith :: (a -> b) -> Set a -> Set a

OrdCollX operations

deleteMin :: Ord a => Set a -> Set a

deleteMax :: Ord a => Set a -> Set a

unsafeInsertMin :: Ord a => a -> Set a -> Set a

unsafeInsertMax :: Ord a => a -> Set a -> Set a

unsafeFromOrdSeq :: (Ord a, Sequence seq) => seq a -> Set a

unsafeAppend :: Ord a => Set a -> Set a -> Set a

filterLT :: Ord a => a -> Set a -> Set a

filterLE :: Ord a => a -> Set a -> Set a

filterGT :: Ord a => a -> Set a -> Set a

filterGE :: Ord a => a -> Set a -> Set a

partitionLT_GE :: Ord a => a -> Set a -> (Set a, Set a)

partitionLE_GT :: Ord a => a -> Set a -> (Set a, Set a)

partitionLT_GT :: Ord a => a -> Set a -> (Set a, Set a)

OrdColl operations

minView :: Monad m => Set a -> m (a, Set a)

minElem :: Set a -> a

maxView :: Monad m => Set a -> m (a, Set a)

maxElem :: Set a -> a

foldr :: (a -> b -> b) -> b -> Set a -> b

foldr' :: (a -> b -> b) -> b -> Set a -> b

foldl :: (b -> a -> b) -> b -> Set a -> b

foldl' :: (b -> a -> b) -> b -> Set a -> b

foldr1 :: (a -> a -> a) -> Set a -> a

foldr1' :: (a -> a -> a) -> Set a -> a

foldl1 :: (a -> a -> a) -> Set a -> a

foldl1' :: (a -> a -> a) -> Set a -> a

toOrdSeq :: (Ord a, Sequence seq) => Set a -> seq a

unsafeMapMonotonic :: Ord a => (a -> a) -> Set a -> Set a

SetX operations

intersection :: Ord a => Set a -> Set a -> Set a

difference :: Ord a => Set a -> Set a -> Set a

symmetricDifference :: Ord a => Set a -> Set a -> Set a

properSubset :: Ord a => Set a -> Set a -> Bool

subset :: Ord a => Set a -> Set a -> Bool

Set operations

fromSeqWith :: (Ord a, Sequence seq) => (a -> a -> a) -> seq a -> Set a

insertWith :: Ord a => (a -> a -> a) -> a -> Set a -> Set a

insertSeqWith :: (Ord a, Sequence seq) => (a -> a -> a) -> seq a -> Set a -> Set a

unionl :: Ord a => Set a -> Set a -> Set a

unionr :: Ord a => Set a -> Set a -> Set a

unionWith :: Ord a => (a -> a -> a) -> Set a -> Set a -> Set a

unionSeqWith :: (Ord a, Sequence seq) => (a -> a -> a) -> seq (Set a) -> Set a

intersectionWith :: Ord a => (a -> a -> a) -> Set a -> Set a -> Set a

Documentation