-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A pure disjoint set (union find) data structure -- -- A pure disjoint set (union find) data structure @package data-partition @version 0.1.0.0 -- | Disjoint set data structure -- Partition a maintains a -- collection of disjoint sets of type a, with the ability to -- find which set a particular item belongs to and the ability to merge -- any two such sets into one. module Data.Partition -- | A Partition of a: represents a collection of disjoint sets of -- a whose union includes every element of a. -- Semantics: [[Partition a]] = P(P(a)) where P is the -- power set operation. data Partition a -- | A partition in which every element of a is in its own set. -- Semantics: [[discrete]] = { { x } | x in a } discrete :: Partition a -- | Synonym for discrete. empty :: Partition a -- | join x y merges the two sets containing x and -- y into a single set. Semantics: [[join x y p]] = (p -- minus find x minus find y) union { find x -- union find y } join :: Ord a => a -> a -> Partition a -> Partition a -- | find p x finds the set that the element x is -- associated with. Semantics: [[find p x]] = the unique s in p such -- that x in s. find :: Ord a => Partition a -> a -> Set a instance Eq a => Eq (Partition a) instance Ord a => Ord (Partition a)