sets-0.0.5.2: Ducktyped set interface for Haskell containers.

Safe HaskellSafe
LanguageHaskell2010

Data.Set.Ordered.Unique.Finite

Contents

Synopsis

Documentation

newtype FiniteSet a #

Constructors

FiniteSet 

Fields

Instances

Ord a => HasInsert a (FiniteSet a) # 

Methods

insert :: a -> FiniteSet a -> FiniteSet a #

Ord a => HasDelete a (FiniteSet a) # 

Methods

delete :: a -> FiniteSet a -> FiniteSet a #

Eq a => Eq (FiniteSet a) # 

Methods

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

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

Show a => Show (FiniteSet a) # 
Ord a => CanBeProperSubset (FiniteSet a) # 
Ord a => CanBeSubset (FiniteSet a) # 

Methods

isSubsetOf :: FiniteSet a -> FiniteSet a -> Bool #

HasSize (FiniteSet a) # 

Methods

size :: FiniteSet a -> Int #

Ord a => HasComplement (FiniteSet a) # 

Methods

complement :: FiniteSet a -> FiniteSet a #

Ord a => HasDifference (FiniteSet a) # 

Methods

difference :: FiniteSet a -> FiniteSet a -> FiniteSet a #

Ord a => HasIntersection (FiniteSet a) # 
Ord a => HasUnion (FiniteSet a) # 

Methods

union :: FiniteSet a -> FiniteSet a -> FiniteSet a #

HasSingletonWith (Set a) a (FiniteSet a) # 

Methods

singletonWith :: Set a -> a -> FiniteSet a #

HasTotalWith (FiniteSet a) (FiniteSet a) # 

Methods

totalWith :: FiniteSet a -> FiniteSet a #

HasEmptyWith (Set a) (FiniteSet a) # 

Methods

emptyWith :: Set a -> FiniteSet a #

Operators

(\\) :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a #

O(n+m)

Query

null :: FiniteSet a -> Bool #

O(1)

size :: FiniteSet a -> Int #

O(1)

member :: Ord a => a -> FiniteSet a -> Bool #

O(log n)

notMember :: Ord a => a -> FiniteSet a -> Bool #

O(log n)

isSubsetOf :: Ord a => FiniteSet a -> FiniteSet a -> Bool #

O(n+m+t1+t2)

isProperSubsetOf :: Ord a => FiniteSet a -> FiniteSet a -> Bool #

O(n+m+t1+t2)

Construction

empty :: Set a -> FiniteSet a #

O(1)

total :: FiniteSet a -> Set a #

singleton :: Set a -> a -> FiniteSet a #

O(1)

insert :: Ord a => a -> FiniteSet a -> FiniteSet a #

O(log n)

delete :: Ord a => a -> FiniteSet a -> FiniteSet a #

O(log n)

Combine

union :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a #

O(n+m)

difference :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a #

O(n+m)

intersection :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a #

O(n+m)

complement :: Ord a => FiniteSet a -> FiniteSet a #

/O(n+t)

Filter

filter :: (a -> Bool) -> FiniteSet a -> FiniteSet a #

O(n)

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

O(n) - Guaranteed to be disjoint

Map

map :: Ord b => (a -> b) -> FiniteSet a -> FiniteSet b #

O(n)