EdisonCore-1.3.3: A library of efficient, 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 HaskellSafe-Inferred
LanguageHaskell2010

Data.Edison.Coll.UnbalancedSet

Description

Sets implemented as unbalanced binary search trees.

Synopsis

Set type

data Set a Source #

Instances

Instances details
(Ord a, Arbitrary a) => Arbitrary (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

arbitrary :: Gen (Set a) #

shrink :: Set a -> [Set a] #

(Ord a, CoArbitrary a) => CoArbitrary (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

coarbitrary :: Set a -> Gen b -> Gen b #

Ord a => Monoid (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

mempty :: Set a #

mappend :: Set a -> Set a -> Set a #

mconcat :: [Set a] -> Set a #

Ord a => Semigroup (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

(<>) :: Set a -> Set a -> Set a #

sconcat :: NonEmpty (Set a) -> Set a #

stimes :: Integral b => b -> Set a -> Set a #

(Ord a, Read a) => Read (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

(Ord a, Show a) => Show (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

showsPrec :: Int -> Set a -> ShowS #

show :: Set a -> String #

showList :: [Set a] -> ShowS #

Ord a => Eq (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

(==) :: Set a -> Set a -> Bool #

(/=) :: Set a -> Set a -> Bool #

Ord a => Ord (Set a) Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

compare :: Set a -> Set a -> Ordering #

(<) :: Set a -> Set a -> Bool #

(<=) :: Set a -> Set a -> Bool #

(>) :: Set a -> Set a -> Bool #

(>=) :: Set a -> Set a -> Bool #

max :: Set a -> Set a -> Set a #

min :: Set a -> Set a -> Set a #

Ord a => Coll (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

toSeq :: Sequence seq => Set a -> seq a #

lookup :: a -> Set a -> a #

lookupM :: MonadFail m => a -> Set a -> m a #

lookupAll :: Sequence seq => a -> Set a -> seq a #

lookupWithDefault :: 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 :: (a -> Bool) -> Set a -> Set a #

partition :: (a -> Bool) -> Set a -> (Set a, Set a) #

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

Ord a => CollX (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

singleton :: a -> Set a #

fromSeq :: Sequence seq => seq a -> Set a #

unionSeq :: Sequence seq => seq (Set a) -> Set a #

insert :: a -> Set a -> Set a #

insertSeq :: Sequence seq => seq a -> Set a -> Set a #

delete :: a -> Set a -> Set a #

deleteAll :: a -> Set a -> Set a #

deleteSeq :: Sequence seq => seq a -> Set a -> Set a #

null :: Set a -> Bool #

size :: Set a -> Int #

member :: a -> Set a -> Bool #

count :: a -> Set a -> Int #

strict :: Set a -> Set a #

structuralInvariant :: Set a -> Bool #

instanceName :: Set a -> String #

Ord a => OrdColl (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

minView :: MonadFail m => Set a -> m (a, Set a) #

minElem :: Set a -> a #

maxView :: MonadFail 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 :: Sequence seq => Set a -> seq a #

unsafeMapMonotonic :: (a -> a) -> Set a -> Set a #

Ord a => OrdCollX (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

deleteMin :: Set a -> Set a #

deleteMax :: Set a -> Set a #

unsafeInsertMin :: a -> Set a -> Set a #

unsafeInsertMax :: a -> Set a -> Set a #

unsafeFromOrdSeq :: Sequence seq => seq a -> Set a #

unsafeAppend :: Set a -> Set a -> Set a #

filterLT :: a -> Set a -> Set a #

filterLE :: a -> Set a -> Set a #

filterGT :: a -> Set a -> Set a #

filterGE :: a -> Set a -> Set a #

partitionLT_GE :: a -> Set a -> (Set a, Set a) #

partitionLE_GT :: a -> Set a -> (Set a, Set a) #

partitionLT_GT :: a -> Set a -> (Set a, Set a) #

Ord a => OrdSet (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Ord a => OrdSetX (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Ord a => Set (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

fromSeqWith :: Sequence seq => (a -> a -> a) -> seq a -> Set a #

insertWith :: (a -> a -> a) -> a -> Set a -> Set a #

insertSeqWith :: Sequence seq => (a -> a -> a) -> seq a -> Set a -> Set a #

unionl :: Set a -> Set a -> Set a #

unionr :: Set a -> Set a -> Set a #

unionWith :: (a -> a -> a) -> Set a -> Set a -> Set a #

unionSeqWith :: Sequence seq => (a -> a -> a) -> seq (Set a) -> Set a #

intersectionWith :: (a -> a -> a) -> Set a -> Set a -> Set a #

Ord a => SetX (Set a) a Source # 
Instance details

Defined in Data.Edison.Coll.UnbalancedSet

Methods

intersection :: Set a -> Set a -> Set a #

difference :: Set a -> Set a -> Set a #

symmetricDifference :: Set a -> Set a -> Set a #

properSubset :: Set a -> Set a -> Bool #

subset :: Set a -> Set a -> Bool #

CollX operations

singleton :: a -> Set a Source #

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

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

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

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

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

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

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

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

null :: Set a -> Bool Source #

size :: Set a -> Int Source #

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

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

strict :: Set a -> Set a Source #

Coll operations

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

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

lookupM :: (Ord a, MonadFail m) => a -> Set a -> m a Source #

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

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

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

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

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

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

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

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

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

OrdCollX operations

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

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

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

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

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

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

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

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

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

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

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

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

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

OrdColl operations

minView :: MonadFail m => Set a -> m (a, Set a) Source #

minElem :: Set a -> a Source #

maxView :: MonadFail m => Set a -> m (a, Set a) Source #

maxElem :: Set a -> a Source #

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

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

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

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

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

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

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

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

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

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

SetX operations

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

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

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

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

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

Set operations

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

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

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

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

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

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

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

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

Documentation