sets-0.0.5.1: Ducktyped set interface for Haskell containers.

Safe HaskellNone
LanguageHaskell2010

Data.Set.Unordered.Many

Contents

Synopsis

Documentation

newtype UMSet a Source #

Unordered sets with duplicate elements. The semantics for "unordering" is based on the idea that we will not know what order the elements are in at any point, and we are free to re-order elements in any way.

Most binary functions are algorithmically heavier on the right arguments.

Pronounced "Unordered Many Set"

Constructors

UMSet 

Fields

Instances

Functor UMSet Source # 

Methods

fmap :: (a -> b) -> UMSet a -> UMSet b #

(<$) :: a -> UMSet b -> UMSet a #

Mergeable UMSet Source # 

Methods

mergeMap :: CommutativeId m => (a -> m) -> UMSet a -> m

merge :: (a -> b -> b) -> b -> UMSet a -> b

HasInsert a (UMSet a) Source # 

Methods

insert :: a -> UMSet a -> UMSet a Source #

Eq a => HasDelete a (UMSet a) Source # 

Methods

delete :: a -> UMSet a -> UMSet a Source #

HasSingleton a (UMSet a) Source # 

Methods

singleton :: a -> UMSet a Source #

Eq a => Eq (UMSet a) Source # 

Methods

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

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

Show a => Show (UMSet a) Source # 

Methods

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

show :: UMSet a -> String #

showList :: [UMSet a] -> ShowS #

Arbitrary a => Arbitrary (UMSet a) Source # 

Methods

arbitrary :: Gen (UMSet a)

shrink :: UMSet a -> [UMSet a]

Eq a => CanBeProperSubset (UMSet a) Source # 

Methods

isProperSubsetOf :: UMSet a -> UMSet a -> Bool Source #

Eq a => CanBeSubset (UMSet a) Source # 

Methods

isSubsetOf :: UMSet a -> UMSet a -> Bool Source #

HasSize (UMSet a) Source # 

Methods

size :: UMSet a -> Int Source #

HasEmpty (UMSet a) Source # 

Methods

empty :: UMSet a Source #

Eq a => HasDifference (UMSet a) Source # 

Methods

difference :: UMSet a -> UMSet a -> UMSet a Source #

Eq a => HasIntersection (UMSet a) Source # 

Methods

intersection :: UMSet a -> UMSet a -> UMSet a Source #

Eq a => HasUnion (UMSet a) Source # 

Methods

union :: UMSet a -> UMSet a -> UMSet a Source #

Operators

(\\) :: Eq a => UMSet a -> UMSet a -> UMSet a Source #

Query

null :: UMSet a -> Bool Source #

O(1)

size :: UMSet a -> Int Source #

O(n)

member :: Eq a => a -> UMSet a -> Bool Source #

O(n)

notMember :: Eq a => a -> UMSet a -> Bool Source #

O(n)

lookup :: Eq a => a -> UMSet a -> Maybe a Source #

O(n)

isSubsetOf :: Eq a => UMSet a -> UMSet a -> Bool Source #

O(n*m)

isProperSubsetOf :: Eq a => UMSet a -> UMSet a -> Bool Source #

O(n*(m^3))

Construction

empty :: UMSet a Source #

O(1)

singleton :: a -> UMSet a Source #

O(1)

insert :: a -> UMSet a -> UMSet a Source #

O(1)

delete :: Eq a => a -> UMSet a -> UMSet a Source #

O(n)

Combine

union :: UMSet a -> UMSet a -> UMSet a Source #

O(n)

difference :: Eq a => UMSet a -> UMSet a -> UMSet a Source #

O(n*m)

intersection :: Eq a => UMSet a -> UMSet a -> UMSet a Source #

O(n*(m^4)) - Combines all elements of both

Filter

filter :: (a -> Bool) -> UMSet a -> UMSet a Source #

O(n)

partition :: (a -> Bool) -> UMSet a -> (UMSet a, UMSet a) Source #

O(n)

Map

map :: (a -> b) -> UMSet a -> UMSet b Source #

O(n)

mapMaybe :: (a -> Maybe b) -> UMSet a -> UMSet b Source #

O(?)