multisets-0.0.0.0
Copyright© 2022–2023 Jonathan Knowles
LicenseApache-2.0
Safe HaskellNone
LanguageHaskell2010

Data.MultiSet

Description

 
Synopsis

Documentation

data MultiSet (t :: MultiSetType) a Source #

Instances

Instances details
Ord a => Monoid (MultiSetN a) Source # 
Instance details

Defined in Data.MultiSet

Ord a => Monoid (MultiSetZ a) Source # 
Instance details

Defined in Data.MultiSet

Ord a => Group (MultiSetZ a) Source # 
Instance details

Defined in Data.MultiSet

Methods

invert :: MultiSetZ a -> MultiSetZ a #

(~~) :: MultiSetZ a -> MultiSetZ a -> MultiSetZ a #

pow :: Integral x => MultiSetZ a -> x -> MultiSetZ a #

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

Defined in Data.MultiSet

Methods

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

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

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

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

Defined in Data.MultiSet

Methods

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

show :: MultiSet t a -> String #

showList :: [MultiSet t a] -> ShowS #

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

Defined in Data.MultiSet

Methods

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

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

data MultiSetType Source #

Constructors

N

Indicates a multiset with Natural (ℕ) multiplicity.

Z

Indicates a multiset with Integer (ℤ) multiplicity.

type MultiSetN = MultiSet 'N Source #

Represents a multiset with Natural (ℕ) multiplicity.

type MultiSetZ = MultiSet 'Z Source #

Represents a multiset with Integer (ℤ) multiplicity.

type family Multiplicity (t :: MultiSetType) where ... Source #

Maps the type of a multiset to the type of its multiplicity.

cardinality :: forall (t :: MultiSetType) a. MultiSet t a -> Multiplicity t Source #

multiplicity :: forall a (t :: MultiSetType). Ord a => a -> MultiSet t a -> Multiplicity t Source #

maximum :: forall (t :: MultiSetType) a. MultiSet t a -> Multiplicity t Source #

minimum :: forall (t :: MultiSetType) a. MultiSet t a -> Multiplicity t Source #

invert :: forall (t :: MultiSetType) a. MultiSet t a -> MultiSetZ a Source #

intersection :: forall a (t :: MultiSetType). Ord a => MultiSet t a -> MultiSet t a -> MultiSet t a Source #

union :: forall a (t :: MultiSetType). Ord a => MultiSet t a -> MultiSet t a -> MultiSet t a Source #

fromListN :: Ord a => [(a, Natural)] -> MultiSetN a Source #

fromListZ :: Ord a => [(a, Integer)] -> MultiSetZ a Source #

toList :: forall (t :: MultiSetType) a. MultiSet t a -> [(a, Multiplicity t)] Source #