more-containers-0.1.0.1: A few more collections

Safe HaskellSafe
LanguageHaskell2010

Data.Multimap

Contents

Description

Generic multimap module.

Synopsis

Documentation

data Multimap k c v Source #

Instances

Functor c => Functor (Multimap k c) Source # 

Methods

fmap :: (a -> b) -> Multimap k c a -> Multimap k c b #

(<$) :: a -> Multimap k c b -> Multimap k c a #

(Eq (c v), Eq k) => Eq (Multimap k c v) Source # 

Methods

(==) :: Multimap k c v -> Multimap k c v -> Bool #

(/=) :: Multimap k c v -> Multimap k c v -> Bool #

(Ord (c v), Ord k) => Ord (Multimap k c v) Source # 

Methods

compare :: Multimap k c v -> Multimap k c v -> Ordering #

(<) :: Multimap k c v -> Multimap k c v -> Bool #

(<=) :: Multimap k c v -> Multimap k c v -> Bool #

(>) :: Multimap k c v -> Multimap k c v -> Bool #

(>=) :: Multimap k c v -> Multimap k c v -> Bool #

max :: Multimap k c v -> Multimap k c v -> Multimap k c v #

min :: Multimap k c v -> Multimap k c v -> Multimap k c v #

(Read (c v), Read k, Ord k) => Read (Multimap k c v) Source # 
(Show (c v), Show k) => Show (Multimap k c v) Source # 

Methods

showsPrec :: Int -> Multimap k c v -> ShowS #

show :: Multimap k c v -> String #

showList :: [Multimap k c v] -> ShowS #

(Ord k, Semigroup (c v)) => Semigroup (Multimap k c v) Source # 

Methods

(<>) :: Multimap k c v -> Multimap k c v -> Multimap k c v #

sconcat :: NonEmpty (Multimap k c v) -> Multimap k c v #

stimes :: Integral b => b -> Multimap k c v -> Multimap k c v #

(Ord k, Semigroup (c v)) => Monoid (Multimap k c v) Source # 

Methods

mempty :: Multimap k c v #

mappend :: Multimap k c v -> Multimap k c v -> Multimap k c v #

mconcat :: [Multimap k c v] -> Multimap k c v #

class Foldable c => Collection c Source #

Minimal complete definition

empty, singleton

Instances

Collection [] Source # 

Methods

empty :: [v] Source #

singleton :: v -> [v] Source #

null :: [v] -> Bool Source #

size :: [v] -> Int Source #

Collection Seq Source # 

Methods

empty :: Seq v Source #

singleton :: v -> Seq v Source #

null :: Seq v -> Bool Source #

size :: Seq v -> Int Source #

Collection Set Source # 

Methods

empty :: Set v Source #

singleton :: v -> Set v Source #

null :: Set v -> Bool Source #

size :: Set v -> Int Source #

Tests

null :: Multimap k c v -> Bool Source #

size :: Collection c => Multimap k c v -> Int Source #

Construction

singleton :: (Collection c, Ord k) => k -> v -> Multimap k c v Source #

fromMap :: Collection c => Map k (c v) -> Multimap k c v Source #

fromList :: (Collection c, Semigroup (c v), Ord k) => [(k, v)] -> Multimap k c v Source #

Access

(!) :: (Collection c, Ord k) => Multimap k c v -> k -> c v Source #

insert :: (Ord k, Collection c, Semigroup (c v)) => k -> v -> Multimap k c v -> Multimap k c v Source #

insertAll :: (Ord k, Semigroup (c v)) => k -> c v -> Multimap k c v -> Multimap k c v Source #

deleteAll :: Ord k => k -> Multimap k c v -> Multimap k c v Source #

Modification

filter :: (Collection c, Semigroup (c v), Ord k) => (v -> Bool) -> Multimap k c v -> Multimap k c v Source #

filterWithKey :: (Collection c, Semigroup (c v), Ord k) => (k -> v -> Bool) -> Multimap k c v -> Multimap k c v Source #

union :: (Ord k, Semigroup (c v)) => Multimap k c v -> Multimap k c v -> Multimap k c v Source #

Extraction

toMap :: Multimap k c v -> Map k (c v) Source #

toMapWith :: (c v -> a) -> Multimap k c v -> Map k a Source #

toList :: Collection c => Multimap k c v -> [(k, v)] Source #

Other

keysSet :: Multimap k c v -> Set k Source #

lift1 :: (Ord k, Collection c) => (c v -> c v) -> k -> Multimap k c v -> Multimap k c v Source #