multimap-1.2.1: A multimap.

Safe HaskellSafe-Inferred

Data.SetMap

Contents

Synopsis

SetMap type

data SetMap k v Source

A SetMap with keys k and values v.

Instances

Typeable2 SetMap 
(Data k, Data v, Ord k, Ord v) => Data (SetMap k v) 

Query

null :: SetMap k a -> BoolSource

O(1). Check whether the multimap is empty or not.

size :: SetMap k a -> IntSource

O(1). The number of elements in the multimap.

numKeys :: SetMap k a -> Word32Source

O(1). The number of keys in the multimap.

As this is a multimap, the number of keys is not necessarily equal to the number of values.

numValues :: SetMap k a -> Word32Source

O(1). The number of values in the multimap.

As this is a multimap, the number of keys is not necessarily equal to the number of values.

member :: Ord k => SetMap k a -> k -> BoolSource

O(log n). Is the key a member of the multimap?

notMember :: Ord k => SetMap k a -> k -> BoolSource

O(log n). Is the key not a member of the multimap?

lookup :: Ord k => k -> SetMap k a -> Set aSource

O(log n). Lookup the value at a key in the map.

The function will return the corrsponding values as a List, or the empty list if no values are associated witht the given key.

Operators

(!) :: Ord k => SetMap k a -> k -> Set aSource

As flip lookup

Construction

empty :: SetMap k aSource

O(1). The empty multimap.

Insertion

insert :: (Ord k, Ord a) => k -> a -> SetMap k a -> SetMap k aSource

Insert a new key and value in the map.

Deletion

delete :: Ord k => k -> SetMap k a -> SetMap k aSource

Delete a key and all its values from the map.

Traversal

map :: (Ord a, Ord b) => (a -> b) -> SetMap k a -> SetMap k bSource

Map a function over all values in the map.

Conversion

elems :: SetMap k a -> [[a]]Source

Return all elements of the multimap in the ascending order of their keys.

A list of lists is returned since a key can have multiple values. Use concat to flatten.

keys :: SetMap k a -> [k]Source

O(n). Return all keys of the multimap in ascending order.

toMap :: SetMap k a -> Map k (Set a)Source

O(1). Return the map of sets.