proto-voice-model-0.1.0.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Internal.MultiSet

Description

A simple implementation of multisets as hash maps to counts. Supports just what is needed for protovoice slices.

Synopsis

Documentation

newtype MultiSet a Source #

A hash multiset. A unordered collection of items that can occur several times.

Constructors

MS 

Fields

Instances

Instances details
(Eq a, Hashable a) => Semigroup (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

Methods

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

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

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

Generic (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

Associated Types

type Rep (MultiSet a) :: Type -> Type #

Methods

from :: MultiSet a -> Rep (MultiSet a) x #

to :: Rep (MultiSet a) x -> MultiSet a #

Show a => Show (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

Methods

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

show :: MultiSet a -> String #

showList :: [MultiSet a] -> ShowS #

NFData a => NFData (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

Methods

rnf :: MultiSet a -> () #

Eq a => Eq (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

Methods

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

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

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

Defined in Internal.MultiSet

Methods

compare :: MultiSet a -> MultiSet a -> Ordering #

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

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

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

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

max :: MultiSet a -> MultiSet a -> MultiSet a #

min :: MultiSet a -> MultiSet a -> MultiSet a #

Hashable a => Hashable (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

Methods

hashWithSalt :: Int -> MultiSet a -> Int #

hash :: MultiSet a -> Int #

type Rep (MultiSet a) Source # 
Instance details

Defined in Internal.MultiSet

type Rep (MultiSet a) = D1 ('MetaData "MultiSet" "Internal.MultiSet" "proto-voice-model-0.1.0.0-IpbUkUcWDicKjQK7SlZCoP" 'True) (C1 ('MetaCons "MS" 'PrefixI 'True) (S1 ('MetaSel ('Just "unMS") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashMap a Int))))

toList :: MultiSet a -> [a] Source #

all :: (a -> Bool) -> MultiSet a -> Bool Source #

union :: (Eq a, Hashable a) => MultiSet a -> MultiSet a -> MultiSet a Source #

unions :: (Foldable t, Eq a0, Hashable a0) => t (MultiSet a0) -> MultiSet a0 Source #

(\\) :: (Eq a, Hashable a) => MultiSet a -> MultiSet a -> MultiSet a Source #

map :: (Eq b, Hashable b) => (a -> b) -> MultiSet a -> MultiSet b Source #

traverse :: (Eq b, Hashable b, Applicative f) => (a -> f b) -> MultiSet a -> f (MultiSet b) Source #

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

fromList :: (Foldable t, Eq a, Hashable a) => t a -> MultiSet a Source #

fromSet :: (Foldable t, Eq a, Hashable a) => t a -> MultiSet a Source #

delete :: (Eq a, Hashable a) => a -> MultiSet a -> MultiSet a Source #

foldM :: Monad m => (b -> a -> m b) -> b -> MultiSet a -> m b Source #

insertMany :: (Eq a, Hashable a) => a -> Int -> MultiSet a -> MultiSet a Source #

insert :: (Eq a, Hashable a) => a -> MultiSet a -> MultiSet a Source #

member :: (Eq k, Hashable k) => k -> MultiSet k -> Bool Source #

lookup :: (Eq k, Hashable k) => k -> MultiSet k -> Int Source #

(!) :: (Eq k, Hashable k) => MultiSet k -> k -> Int Source #