-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Ducktyped set interface for Haskell containers. -- -- Please see the README on Github at -- https://github.com/athanclark/sets#readme @package sets @version 0.0.6.2 module Data.Set.Ordered.Many -- | Ordered sets with duplicate elements. newtype OMSet a OMSet :: Vector a -> OMSet a [unOMSet] :: OMSet a -> Vector a (\\) :: Eq a => OMSet a -> OMSet a -> OMSet a null :: Eq a => OMSet a -> Bool size :: OMSet a -> Int member :: Eq a => a -> OMSet a -> Bool notMember :: Eq a => a -> OMSet a -> Bool lookup :: Eq a => a -> OMSet a -> Maybe a isSubsetOf :: Eq a => OMSet a -> OMSet a -> Bool isProperSubsetOf :: Eq a => OMSet a -> OMSet a -> Bool -- | O(1) empty :: OMSet a -- | O(1) singleton :: a -> OMSet a -- | O(n) insert :: Ord a => a -> OMSet a -> OMSet a -- | O(n) delete :: Eq a => a -> OMSet a -> OMSet a -- | O(min n m) union :: Ord a => OMSet a -> OMSet a -> OMSet a -- | O(n*m) difference :: Eq a => OMSet a -> OMSet a -> OMSet a -- | O(min(n,m)) - Combines all elements of both intersection :: Ord a => OMSet a -> OMSet a -> OMSet a -- | O(n) filter :: (a -> Bool) -> OMSet a -> OMSet a -- | O(n) partition :: (a -> Bool) -> OMSet a -> (OMSet a, OMSet a) -- | O(n) map :: (a -> b) -> OMSet a -> OMSet b -- | O(?) mapMaybe :: (a -> Maybe b) -> OMSet a -> OMSet b instance Data.Traversable.Traversable Data.Set.Ordered.Many.OMSet instance Data.Foldable.Foldable Data.Set.Ordered.Many.OMSet instance GHC.Base.Monad Data.Set.Ordered.Many.OMSet instance GHC.Base.Applicative Data.Set.Ordered.Many.OMSet instance GHC.Base.Functor Data.Set.Ordered.Many.OMSet instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Ordered.Many.OMSet a) instance Data.Mergeable.Mergeable Data.Set.Ordered.Many.OMSet instance (Test.QuickCheck.Arbitrary.Arbitrary a, GHC.Classes.Ord a, GHC.Show.Show a) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Set.Ordered.Many.OMSet a) instance Control.Monad.Base.MonadBase Test.QuickCheck.Gen.Gen Test.QuickCheck.Gen.Gen module Data.Set.Ordered.Unique type OUSet = Set module Data.Set.Ordered.Unique.Finite newtype FiniteSet a FiniteSet :: (Set a, Set a) -> FiniteSet a [unFiniteSet] :: FiniteSet a -> (Set a, Set a) -- | O(n+m) (\\) :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a -- | O(1) null :: FiniteSet a -> Bool -- | O(1) size :: FiniteSet a -> Int -- | O(log n) member :: Ord a => a -> FiniteSet a -> Bool -- | O(log n) notMember :: Ord a => a -> FiniteSet a -> Bool -- | O(n+m+t1+t2) isSubsetOf :: Ord a => FiniteSet a -> FiniteSet a -> Bool -- | O(n+m+t1+t2) isProperSubsetOf :: Ord a => FiniteSet a -> FiniteSet a -> Bool -- | O(1) empty :: Set a -> FiniteSet a total :: FiniteSet a -> Set a -- | O(1) singleton :: Set a -> a -> FiniteSet a -- | O(log n) insert :: Ord a => a -> FiniteSet a -> FiniteSet a -- | O(log n) delete :: Ord a => a -> FiniteSet a -> FiniteSet a -- | O(n+m) union :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a -- | O(n+m) difference :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a -- | O(n+m) intersection :: Ord a => FiniteSet a -> FiniteSet a -> FiniteSet a -- | /O(n+t) complement :: Ord a => FiniteSet a -> FiniteSet a -- | O(n) filter :: (a -> Bool) -> FiniteSet a -> FiniteSet a -- | O(n) - Guaranteed to be disjoint partition :: (a -> Bool) -> FiniteSet a -> (FiniteSet a, FiniteSet a) -- | O(n) map :: Ord b => (a -> b) -> FiniteSet a -> FiniteSet b instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Ordered.Unique.Finite.FiniteSet a) -- | Orient the ordering of your set by a different index, by first -- supplying a function (a -> k) to weigh each element. This -- module simply leverages Data.Map, and does not use a novel -- data type. -- -- Note: This data type can only have one element per distinguished -- weight. For oriented multisets, use -- Data.Set.Ordered.Many.With.SetsWith. module Data.Set.Ordered.Unique.With newtype SetWith k a SetWith :: (a -> k, Map k a) -> SetWith k a [unSetWith] :: SetWith k a -> (a -> k, Map k a) (\\) :: Ord k => SetWith k a -> SetWith k a -> SetWith k a null :: SetWith k a -> Bool size :: SetWith k a -> Int member :: Ord k => a -> SetWith k a -> Bool notMember :: Ord k => a -> SetWith k a -> Bool lookupLT :: Ord k => a -> SetWith k a -> Maybe a lookupGT :: Ord k => a -> SetWith k a -> Maybe a lookupLE :: Ord k => a -> SetWith k a -> Maybe a lookupGE :: Ord k => a -> SetWith k a -> Maybe a isSubsetOf :: (Eq a, Ord k) => SetWith k a -> SetWith k a -> Bool isProperSubsetOf :: (Eq a, Ord k) => SetWith k a -> SetWith k a -> Bool empty :: (a -> k) -> SetWith k a singleton :: Ord k => (a -> k) -> a -> SetWith k a insert :: Ord k => a -> SetWith k a -> SetWith k a delete :: Ord k => a -> SetWith k a -> SetWith k a union :: Ord k => SetWith k a -> SetWith k a -> SetWith k a unions :: Ord k => (a -> k) -> [SetWith k a] -> SetWith k a difference :: Ord k => SetWith k a -> SetWith k a -> SetWith k a intersection :: Ord k => SetWith k a -> SetWith k a -> SetWith k a filter :: (a -> Bool) -> SetWith k a -> SetWith k a partition :: (a -> Bool) -> SetWith k a -> (SetWith k a, SetWith k a) split :: Ord k => a -> SetWith k a -> (SetWith k a, SetWith k a) splitMember :: Ord k => a -> SetWith k a -> (SetWith k a, Bool, SetWith k a) splitRoot :: SetWith k a -> [SetWith k a] lookupIndex :: Ord k => a -> SetWith k a -> Maybe Int findIndex :: Ord k => a -> SetWith k a -> Int elemAt :: Int -> SetWith k a -> a deleteAt :: Int -> SetWith k a -> SetWith k a map :: (a -> b) -> (b -> a) -> SetWith k a -> SetWith k b mapMaybe :: (a -> Maybe b) -> (b -> a) -> SetWith k a -> SetWith k b foldr :: (a -> b -> b) -> b -> SetWith k a -> b foldl :: (b -> a -> b) -> b -> SetWith k a -> b foldr' :: (a -> b -> b) -> b -> SetWith k a -> b foldl' :: (b -> a -> b) -> b -> SetWith k a -> b fold :: (a -> b -> b) -> b -> SetWith k a -> b findMin :: SetWith k a -> a findMax :: SetWith k a -> a deleteMin :: SetWith k a -> SetWith k a deleteMax :: SetWith k a -> SetWith k a deleteFindMin :: SetWith k a -> (a, SetWith k a) deleteFindMax :: SetWith k a -> (a, SetWith k a) minView :: SetWith k a -> Maybe (a, SetWith k a) maxView :: SetWith k a -> Maybe (a, SetWith k a) elems :: SetWith k a -> [a] toList :: SetWith k a -> (a -> k, [a]) fromList :: (Ord k, Foldable f) => (a -> k) -> f a -> SetWith k a toAscList :: SetWith k a -> [a] toDescList :: SetWith k a -> [a] fromAscList :: Eq k => (a -> k) -> [a] -> SetWith k a fromDistinctAscList :: (a -> k) -> [a] -> SetWith k a showTree :: (Show k, Show a) => SetWith k a -> String showTreeWith :: (k -> a -> String) -> Bool -> Bool -> SetWith k a -> String instance (GHC.Base.Monoid k, GHC.Classes.Ord k) => GHC.Base.Monoid (Data.Set.Ordered.Unique.With.SetWith k a) instance (GHC.Base.Semigroup k, GHC.Classes.Ord k) => GHC.Base.Semigroup (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Foldable.Foldable (Data.Set.Ordered.Unique.With.SetWith k) module Data.Set.Unordered.Many -- | Unordered sets with duplicate elements. The semantics for "unordering" -- is based on the idea that we will not know what order the elements are -- in at any point, and we are free to re-order elements in any way. -- -- Most binary functions are algorithmically heavier on the right -- arguments. -- -- Pronounced "Unordered Many Set" newtype UMSet a UMSet :: [a] -> UMSet a [unUMSet] :: UMSet a -> [a] (\\) :: Eq a => UMSet a -> UMSet a -> UMSet a -- | O(1) null :: UMSet a -> Bool -- | O(n) size :: UMSet a -> Int -- | O(n) member :: Eq a => a -> UMSet a -> Bool -- | O(n) notMember :: Eq a => a -> UMSet a -> Bool -- | O(n) lookup :: Eq a => a -> UMSet a -> Maybe a -- | O(n*m) isSubsetOf :: Eq a => UMSet a -> UMSet a -> Bool -- | O(n*(m^3)) isProperSubsetOf :: Eq a => UMSet a -> UMSet a -> Bool -- | O(1) empty :: UMSet a -- | O(1) singleton :: a -> UMSet a -- | O(1) insert :: a -> UMSet a -> UMSet a -- | O(n) delete :: Eq a => a -> UMSet a -> UMSet a -- | O(n) union :: UMSet a -> UMSet a -> UMSet a -- | O(n*m) difference :: Eq a => UMSet a -> UMSet a -> UMSet a -- | O(n*(m^4)) - Combines all elements of both intersection :: Eq a => UMSet a -> UMSet a -> UMSet a -- | O(n) filter :: (a -> Bool) -> UMSet a -> UMSet a -- | O(n) partition :: (a -> Bool) -> UMSet a -> (UMSet a, UMSet a) -- | O(n) map :: (a -> b) -> UMSet a -> UMSet b -- | O(?) mapMaybe :: (a -> Maybe b) -> UMSet a -> UMSet b instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Unordered.Many.UMSet a) instance GHC.Base.Functor Data.Set.Unordered.Many.UMSet instance Data.Mergeable.Mergeable Data.Set.Unordered.Many.UMSet instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Unordered.Many.UMSet a) instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Set.Unordered.Many.UMSet a) -- | Unique, unordered sets. The semantics for "unordering" is based on the -- idea that we will not know what order the elements are in at any -- point, and we are free to re-order elements in any way. module Data.Set.Unordered.Unique -- | Pronounced "Unordered Unique Set" newtype UUSet a UUSet :: [a] -> UUSet a [unUUSet] :: UUSet a -> [a] (\\) :: Eq a => UUSet a -> UUSet a -> UUSet a -- | O(1) null :: UUSet a -> Bool -- | O(n) size :: UUSet a -> Int -- | O(n) member :: Eq a => a -> UUSet a -> Bool -- | O(n) notMember :: Eq a => a -> UUSet a -> Bool -- | O(n) lookup :: Eq a => a -> UUSet a -> Maybe a -- | O(n*m) isSubsetOf :: Eq a => UUSet a -> UUSet a -> Bool -- | O(n*(m^2)) isProperSubsetOf :: Eq a => UUSet a -> UUSet a -> Bool -- | O(1) empty :: UUSet a -- | O(1) singleton :: a -> UUSet a -- | O(n) insert :: Eq a => a -> UUSet a -> UUSet a -- | O(n) delete :: Eq a => a -> UUSet a -> UUSet a -- | O(n*m) union :: Eq a => UUSet a -> UUSet a -> UUSet a -- | O(n*m) difference :: Eq a => UUSet a -> UUSet a -> UUSet a -- | O(n*m) intersection :: Eq a => UUSet a -> UUSet a -> UUSet a -- | O(n) filter :: (a -> Bool) -> UUSet a -> UUSet a -- | O(n) - Guaranteed to be disjoint partition :: (a -> Bool) -> UUSet a -> (UUSet a, UUSet a) -- | O(n) map :: (a -> b) -> UUSet a -> UUSet b -- | O(?) mapMaybe :: (a -> Maybe b) -> UUSet a -> UUSet b instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Unordered.Unique.UUSet a) instance GHC.Base.Functor Data.Set.Unordered.Unique.UUSet instance Data.Mergeable.Mergeable Data.Set.Unordered.Unique.UUSet instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Unordered.Unique.UUSet a) instance (Test.QuickCheck.Arbitrary.Arbitrary a, GHC.Classes.Eq a) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Set.Unordered.Unique.UUSet a) instance Control.Monad.Base.MonadBase Test.QuickCheck.Gen.Gen Test.QuickCheck.Gen.Gen -- | Convenience operators overloaded for arbitrary use. There are no laws -- associated with these classes, just duck-typed so we don't have to use -- the qualified versions of each function. module Data.Set.Class class HasUnion s union :: HasUnion s => s -> s -> s unions :: (Foldable f, Monoid (Union s)) => f s -> s unions1 :: (Foldable1 f, Semigroup (Union s)) => f s -> s newtype Union a Union :: a -> Union a [unUnion] :: Union a -> a class HasIntersection s intersection :: HasIntersection s => s -> s -> s intersections :: (Foldable f, Monoid (Intersection s)) => f s -> s intersections1 :: (Foldable1 f, Semigroup (Intersection s)) => f s -> s newtype Intersection a Intersection :: a -> Intersection a [unIntersection] :: Intersection a -> a class HasDifference s difference :: HasDifference s => s -> s -> s (\\) :: HasDifference s => s -> s -> s class HasXUnion s xunion :: HasXUnion s => s -> s -> s xunions :: (Foldable f, Monoid (XUnion s)) => f s -> s xunions1 :: (Foldable1 f, Semigroup (XUnion s)) => f s -> s newtype XUnion a XUnion :: a -> XUnion a [unXUnion] :: XUnion a -> a class HasComplement s complement :: HasComplement s => s -> s class HasSingleton a s singleton :: HasSingleton a s => a -> s class HasSingletonWith k a s singletonWith :: HasSingletonWith k a s => k -> a -> s class HasDelete a s delete :: HasDelete a s => a -> s -> s class HasInsert a s insert :: HasInsert a s => a -> s -> s class HasInsertWith k a s insertWith :: HasInsertWith k a s => k -> a -> s -> s class HasEmpty s empty :: HasEmpty s => s class HasEmptyWith k s emptyWith :: HasEmptyWith k s => k -> s class HasTotal s total :: HasTotal s => s class HasTotalWith k s totalWith :: HasTotalWith k s => k -> s class HasSize s size :: HasSize s => s -> Int class CanBeSubset s isSubsetOf :: CanBeSubset s => s -> s -> Bool class CanBeProperSubset s isProperSubsetOf :: CanBeProperSubset s => s -> s -> Bool fromFoldable :: (Foldable f, HasInsert a s, HasEmpty s) => f a -> s fromFoldableWithKey :: (FoldableWithKey f, HasInsertWith (Key f) a s, HasEmpty s) => f a -> s fromFoldable1 :: (Foldable1 f, HasSingleton a s, Semigroup (Union s)) => f a -> s fromFoldable1WithKey :: (FoldableWithKey1 f, HasSingletonWith (Key f) a s, Semigroup (Union s)) => f a -> s instance Data.Traversable.Traversable Data.Set.Class.XUnion instance Data.Foldable.Foldable Data.Set.Class.XUnion instance GHC.Base.Functor Data.Set.Class.XUnion instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Set.Class.XUnion a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Class.XUnion a) instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Class.XUnion a) instance Data.Traversable.Traversable Data.Set.Class.Intersection instance Data.Foldable.Foldable Data.Set.Class.Intersection instance GHC.Base.Functor Data.Set.Class.Intersection instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Set.Class.Intersection a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Class.Intersection a) instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Class.Intersection a) instance Data.Traversable.Traversable Data.Set.Class.Union instance Data.Foldable.Foldable Data.Set.Class.Union instance GHC.Base.Functor Data.Set.Class.Union instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Set.Class.Union a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Set.Class.Union a) instance GHC.Show.Show a => GHC.Show.Show (Data.Set.Class.Union a) instance Data.Set.Class.HasUnion a => Data.Set.Class.HasUnion (Data.Set.Class.Union a) instance Data.Set.Class.HasDifference a => Data.Set.Class.HasDifference (Data.Set.Class.Union a) instance Data.Set.Class.HasIntersection a => Data.Set.Class.HasIntersection (Data.Set.Class.Union a) instance Data.Set.Class.HasComplement a => Data.Set.Class.HasComplement (Data.Set.Class.Union a) instance Data.Set.Class.HasSingleton x a => Data.Set.Class.HasSingleton x (Data.Set.Class.Union a) instance Data.Set.Class.HasSingletonWith k x a => Data.Set.Class.HasSingletonWith k x (Data.Set.Class.Union a) instance Data.Set.Class.HasInsert x a => Data.Set.Class.HasInsert x (Data.Set.Class.Union a) instance Data.Set.Class.HasInsertWith k x a => Data.Set.Class.HasInsertWith k x (Data.Set.Class.Union a) instance Data.Set.Class.HasDelete x a => Data.Set.Class.HasDelete x (Data.Set.Class.Union a) instance Data.Set.Class.HasEmpty a => Data.Set.Class.HasEmpty (Data.Set.Class.Union a) instance Data.Set.Class.HasEmptyWith k a => Data.Set.Class.HasEmptyWith k (Data.Set.Class.Union a) instance Data.Set.Class.HasTotal a => Data.Set.Class.HasTotal (Data.Set.Class.Union a) instance Data.Set.Class.HasTotalWith k a => Data.Set.Class.HasTotalWith k (Data.Set.Class.Union a) instance Data.Set.Class.HasSize a => Data.Set.Class.HasSize (Data.Set.Class.Union a) instance Data.Set.Class.CanBeSubset a => Data.Set.Class.CanBeSubset (Data.Set.Class.Union a) instance Data.Set.Class.CanBeProperSubset a => Data.Set.Class.CanBeProperSubset (Data.Set.Class.Union a) instance Data.Set.Class.HasUnion a => Data.Set.Class.HasUnion (Data.Set.Class.Intersection a) instance Data.Set.Class.HasDifference a => Data.Set.Class.HasDifference (Data.Set.Class.Intersection a) instance Data.Set.Class.HasIntersection a => Data.Set.Class.HasIntersection (Data.Set.Class.Intersection a) instance Data.Set.Class.HasComplement a => Data.Set.Class.HasComplement (Data.Set.Class.Intersection a) instance Data.Set.Class.HasSingleton x a => Data.Set.Class.HasSingleton x (Data.Set.Class.Intersection a) instance Data.Set.Class.HasSingletonWith k x a => Data.Set.Class.HasSingletonWith k x (Data.Set.Class.Intersection a) instance Data.Set.Class.HasInsert x a => Data.Set.Class.HasInsert x (Data.Set.Class.Intersection a) instance Data.Set.Class.HasInsertWith k x a => Data.Set.Class.HasInsertWith k x (Data.Set.Class.Intersection a) instance Data.Set.Class.HasDelete x a => Data.Set.Class.HasDelete x (Data.Set.Class.Intersection a) instance Data.Set.Class.HasEmpty a => Data.Set.Class.HasEmpty (Data.Set.Class.Intersection a) instance Data.Set.Class.HasEmptyWith k a => Data.Set.Class.HasEmptyWith k (Data.Set.Class.Intersection a) instance Data.Set.Class.HasTotal a => Data.Set.Class.HasTotal (Data.Set.Class.Intersection a) instance Data.Set.Class.HasTotalWith k a => Data.Set.Class.HasTotalWith k (Data.Set.Class.Intersection a) instance Data.Set.Class.HasSize a => Data.Set.Class.HasSize (Data.Set.Class.Intersection a) instance Data.Set.Class.CanBeSubset a => Data.Set.Class.CanBeSubset (Data.Set.Class.Intersection a) instance Data.Set.Class.CanBeProperSubset a => Data.Set.Class.CanBeProperSubset (Data.Set.Class.Intersection a) instance Data.Set.Class.HasUnion a => Data.Set.Class.HasUnion (Data.Set.Class.XUnion a) instance Data.Set.Class.HasDifference a => Data.Set.Class.HasDifference (Data.Set.Class.XUnion a) instance Data.Set.Class.HasIntersection a => Data.Set.Class.HasIntersection (Data.Set.Class.XUnion a) instance Data.Set.Class.HasComplement a => Data.Set.Class.HasComplement (Data.Set.Class.XUnion a) instance Data.Set.Class.HasSingleton x a => Data.Set.Class.HasSingleton x (Data.Set.Class.XUnion a) instance Data.Set.Class.HasSingletonWith k x a => Data.Set.Class.HasSingletonWith k x (Data.Set.Class.XUnion a) instance Data.Set.Class.HasInsert x a => Data.Set.Class.HasInsert x (Data.Set.Class.XUnion a) instance Data.Set.Class.HasInsertWith k x a => Data.Set.Class.HasInsertWith k x (Data.Set.Class.XUnion a) instance Data.Set.Class.HasDelete x a => Data.Set.Class.HasDelete x (Data.Set.Class.XUnion a) instance Data.Set.Class.HasEmpty a => Data.Set.Class.HasEmpty (Data.Set.Class.XUnion a) instance Data.Set.Class.HasEmptyWith k a => Data.Set.Class.HasEmptyWith k (Data.Set.Class.XUnion a) instance Data.Set.Class.HasTotal a => Data.Set.Class.HasTotal (Data.Set.Class.XUnion a) instance Data.Set.Class.HasTotalWith k a => Data.Set.Class.HasTotalWith k (Data.Set.Class.XUnion a) instance Data.Set.Class.HasSize a => Data.Set.Class.HasSize (Data.Set.Class.XUnion a) instance Data.Set.Class.CanBeSubset a => Data.Set.Class.CanBeSubset (Data.Set.Class.XUnion a) instance Data.Set.Class.CanBeProperSubset a => Data.Set.Class.CanBeProperSubset (Data.Set.Class.XUnion a) instance GHC.Classes.Ord a => Data.Set.Class.CanBeProperSubset (Data.Set.Internal.Set a) instance (GHC.Classes.Eq k, GHC.Classes.Ord k, GHC.Classes.Eq a) => Data.Set.Class.CanBeProperSubset (Data.Map.Internal.Map k a) instance Data.Set.Class.CanBeProperSubset Data.IntSet.Internal.IntSet instance GHC.Classes.Eq a => Data.Set.Class.CanBeProperSubset (Data.IntMap.Internal.IntMap a) instance (GHC.Classes.Ord k, GHC.Classes.Eq a) => Data.Set.Class.CanBeProperSubset (Data.Set.Ordered.Unique.With.SetWith k a) instance GHC.Classes.Eq a => Data.Set.Class.CanBeProperSubset (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => Data.Set.Class.CanBeProperSubset (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.CanBeProperSubset (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.CanBeProperSubset (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance GHC.Classes.Ord a => Data.Set.Class.CanBeSubset (Data.Set.Internal.Set a) instance (GHC.Classes.Eq k, GHC.Classes.Ord k, GHC.Classes.Eq a) => Data.Set.Class.CanBeSubset (Data.Map.Internal.Map k a) instance Data.Set.Class.CanBeSubset Data.IntSet.Internal.IntSet instance GHC.Classes.Eq a => Data.Set.Class.CanBeSubset (Data.IntMap.Internal.IntMap a) instance (GHC.Classes.Ord k, GHC.Classes.Eq a) => Data.Set.Class.CanBeSubset (Data.Set.Ordered.Unique.With.SetWith k a) instance GHC.Classes.Eq a => Data.Set.Class.CanBeSubset (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => Data.Set.Class.CanBeSubset (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.CanBeSubset (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.CanBeSubset (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance Data.Set.Class.HasSize (Data.Set.Internal.Set a) instance Data.Set.Class.HasSize (Data.Map.Internal.Map k a) instance Data.Set.Class.HasSize [a] instance Data.Set.Class.HasSize (Data.Vector.Vector a) instance Data.Set.Class.HasSize (Data.Sequence.Internal.Seq a) instance Data.Set.Class.HasSize Data.IntSet.Internal.IntSet instance Data.Set.Class.HasSize (Data.IntMap.Internal.IntMap a) instance Data.Set.Class.HasSize (Data.HashSet.Base.HashSet a) instance Data.Set.Class.HasSize (Data.HashMap.Base.HashMap k a) instance Data.Set.Class.HasSize (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Set.Class.HasSize (Data.Set.Ordered.Many.OMSet a) instance Data.Set.Class.HasSize (Data.Set.Unordered.Many.UMSet a) instance Data.Set.Class.HasSize (Data.Set.Unordered.Unique.UUSet a) instance Data.Set.Class.HasSize (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance Data.Set.Class.HasTotalWith (Data.Set.Ordered.Unique.Finite.FiniteSet a) (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance (Data.Set.Class.HasIntersection s, Data.Set.Class.HasTotal s) => GHC.Base.Monoid (Data.Set.Class.Intersection s) instance (Data.Commutative.Commutative (Data.Set.Class.Intersection s), Data.Set.Class.HasTotal s) => Data.Commutative.CommutativeId (Data.Set.Class.Intersection s) instance Data.Set.Class.HasTotal (Data.Functor.Contravariant.Predicate a) instance Data.Set.Class.HasEmptyWith (a -> k) (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Set.Class.HasEmptyWith (Data.Set.Internal.Set a) (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance (Data.Set.Class.HasUnion s, Data.Set.Class.HasEmpty s) => GHC.Base.Monoid (Data.Set.Class.Union s) instance (Data.Set.Class.HasXUnion s, Data.Set.Class.HasEmpty s, Data.Set.Class.HasUnion s, Data.Set.Class.HasIntersection s, Data.Set.Class.HasDifference s) => GHC.Base.Monoid (Data.Set.Class.XUnion s) instance (Data.Commutative.Commutative (Data.Set.Class.Union s), Data.Set.Class.HasEmpty s) => Data.Commutative.CommutativeId (Data.Set.Class.Union s) instance Data.Set.Class.HasEmpty (Data.Set.Internal.Set a) instance Data.Set.Class.HasEmpty (Data.Map.Internal.Map k a) instance Data.Set.Class.HasEmpty [a] instance Data.Set.Class.HasEmpty (Data.Vector.Vector a) instance Data.Set.Class.HasEmpty (Data.Sequence.Internal.Seq a) instance Data.Set.Class.HasEmpty Data.IntSet.Internal.IntSet instance Data.Set.Class.HasEmpty (Data.IntMap.Internal.IntMap a) instance Data.Set.Class.HasEmpty (Data.HashSet.Base.HashSet a) instance Data.Set.Class.HasEmpty (Data.HashMap.Base.HashMap k a) instance Data.Set.Class.HasEmpty (Data.Functor.Contravariant.Predicate a) instance Data.Set.Class.HasEmpty (Data.Set.Ordered.Many.OMSet a) instance Data.Set.Class.HasEmpty (Data.Set.Unordered.Many.UMSet a) instance Data.Set.Class.HasEmpty (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord k => Data.Set.Class.HasInsertWith k a (Data.Map.Internal.Map k a) instance Data.Set.Class.HasInsertWith Data.IntSet.Internal.Key a (Data.IntMap.Internal.IntMap a) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Set.Class.HasInsertWith k a (Data.HashMap.Base.HashMap k a) instance GHC.Classes.Ord a => Data.Set.Class.HasInsert a (Data.Set.Internal.Set a) instance Data.Set.Class.HasInsert a [a] instance Data.Set.Class.HasInsert a (Data.Vector.Vector a) instance Data.Set.Class.HasInsert Data.IntSet.Internal.Key Data.IntSet.Internal.IntSet instance (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a) => Data.Set.Class.HasInsert a (Data.HashSet.Base.HashSet a) instance GHC.Classes.Ord k => Data.Set.Class.HasInsert a (Data.Set.Ordered.Unique.With.SetWith k a) instance GHC.Classes.Eq a => Data.Set.Class.HasInsert a (Data.Functor.Contravariant.Predicate a) instance GHC.Classes.Ord a => Data.Set.Class.HasInsert a (Data.Set.Ordered.Many.OMSet a) instance Data.Set.Class.HasInsert a (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasInsert a (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.HasInsert a (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance GHC.Classes.Ord a => Data.Set.Class.HasDelete a (Data.Set.Internal.Set a) instance GHC.Classes.Ord k => Data.Set.Class.HasDelete k (Data.Map.Internal.Map k a) instance GHC.Classes.Eq a => Data.Set.Class.HasDelete a [a] instance GHC.Classes.Eq a => Data.Set.Class.HasDelete a (Data.Vector.Vector a) instance Data.Set.Class.HasDelete Data.IntSet.Internal.Key Data.IntSet.Internal.IntSet instance Data.Set.Class.HasDelete Data.IntSet.Internal.Key (Data.IntMap.Internal.IntMap a) instance (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a) => Data.Set.Class.HasDelete a (Data.HashSet.Base.HashSet a) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Set.Class.HasDelete k (Data.HashMap.Base.HashMap k a) instance GHC.Classes.Ord k => Data.Set.Class.HasDelete a (Data.Set.Ordered.Unique.With.SetWith k a) instance GHC.Classes.Eq a => Data.Set.Class.HasDelete a (Data.Functor.Contravariant.Predicate a) instance GHC.Classes.Eq a => Data.Set.Class.HasDelete a (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasDelete a (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasDelete a (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.HasDelete a (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance Data.Set.Class.HasSingletonWith k a (Data.Map.Internal.Map k a) instance Data.Set.Class.HasSingletonWith Data.IntSet.Internal.Key a (Data.IntMap.Internal.IntMap a) instance Data.Hashable.Class.Hashable k => Data.Set.Class.HasSingletonWith k a (Data.HashMap.Base.HashMap k a) instance GHC.Classes.Ord k => Data.Set.Class.HasSingletonWith (a -> k) a (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Set.Class.HasSingletonWith (Data.Set.Internal.Set a) a (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance Data.Set.Class.HasSingleton a (Data.Set.Internal.Set a) instance Data.Set.Class.HasSingleton a [a] instance Data.Set.Class.HasSingleton a (Data.Vector.Vector a) instance Data.Set.Class.HasSingleton a (Data.Sequence.Internal.Seq a) instance Data.Set.Class.HasSingleton Data.IntSet.Internal.Key Data.IntSet.Internal.IntSet instance Data.Hashable.Class.Hashable a => Data.Set.Class.HasSingleton a (Data.HashSet.Base.HashSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasSingleton a (Data.Functor.Contravariant.Predicate a) instance Data.Set.Class.HasSingleton a (Data.Set.Ordered.Many.OMSet a) instance Data.Set.Class.HasSingleton a (Data.Set.Unordered.Many.UMSet a) instance Data.Set.Class.HasSingleton a (Data.Set.Unordered.Unique.UUSet a) instance Data.Set.Class.HasComplement (Data.Functor.Contravariant.Predicate a) instance GHC.Classes.Ord a => Data.Set.Class.HasComplement (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance (Data.Set.Class.HasXUnion s, Data.Set.Class.HasUnion s, Data.Set.Class.HasIntersection s, Data.Set.Class.HasDifference s) => Data.Commutative.Commutative (Data.Set.Class.XUnion s) instance (Data.Set.Class.HasXUnion s, Data.Set.Class.HasUnion s, Data.Set.Class.HasIntersection s, Data.Set.Class.HasDifference s) => GHC.Base.Semigroup (Data.Set.Class.XUnion s) instance (Data.Set.Class.HasUnion s, Data.Set.Class.HasIntersection s, Data.Set.Class.HasDifference s) => Data.Set.Class.HasXUnion s instance GHC.Classes.Ord a => Data.Set.Class.HasDifference (Data.Set.Internal.Set a) instance GHC.Classes.Ord k => Data.Set.Class.HasDifference (Data.Map.Internal.Map k a) instance Data.Set.Class.HasDifference Data.IntSet.Internal.IntSet instance Data.Set.Class.HasDifference (Data.IntMap.Internal.IntMap a) instance (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a) => Data.Set.Class.HasDifference (Data.HashSet.Base.HashSet a) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Set.Class.HasDifference (Data.HashMap.Base.HashMap k a) instance GHC.Classes.Ord k => Data.Set.Class.HasDifference (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Set.Class.HasDifference (Data.Functor.Contravariant.Predicate a) instance GHC.Classes.Eq a => Data.Set.Class.HasDifference (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasDifference (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasDifference (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.HasDifference (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance Data.Set.Class.HasIntersection s => Data.Commutative.Commutative (Data.Set.Class.Intersection s) instance Data.Set.Class.HasIntersection s => GHC.Base.Semigroup (Data.Set.Class.Intersection s) instance GHC.Classes.Ord a => Data.Set.Class.HasIntersection (Data.Set.Internal.Set a) instance GHC.Classes.Ord k => Data.Set.Class.HasIntersection (Data.Map.Internal.Map k a) instance Data.Set.Class.HasIntersection Data.IntSet.Internal.IntSet instance Data.Set.Class.HasIntersection (Data.IntMap.Internal.IntMap a) instance (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a) => Data.Set.Class.HasIntersection (Data.HashSet.Base.HashSet a) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Set.Class.HasIntersection (Data.HashMap.Base.HashMap k a) instance GHC.Classes.Ord k => Data.Set.Class.HasIntersection (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Set.Class.HasIntersection (Data.Functor.Contravariant.Predicate a) instance GHC.Classes.Ord a => Data.Set.Class.HasIntersection (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasIntersection (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasIntersection (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.HasIntersection (Data.Set.Ordered.Unique.Finite.FiniteSet a) instance Data.Set.Class.HasUnion s => Data.Commutative.Commutative (Data.Set.Class.Union s) instance Data.Set.Class.HasUnion s => GHC.Base.Semigroup (Data.Set.Class.Union s) instance GHC.Classes.Ord a => Data.Set.Class.HasUnion (Data.Set.Internal.Set a) instance GHC.Classes.Ord k => Data.Set.Class.HasUnion (Data.Map.Internal.Map k a) instance Data.Set.Class.HasUnion Data.IntSet.Internal.IntSet instance Data.Set.Class.HasUnion (Data.IntMap.Internal.IntMap a) instance (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a) => Data.Set.Class.HasUnion (Data.HashSet.Base.HashSet a) instance (Data.Hashable.Class.Hashable k, GHC.Classes.Eq k) => Data.Set.Class.HasUnion (Data.HashMap.Base.HashMap k a) instance GHC.Classes.Ord k => Data.Set.Class.HasUnion (Data.Set.Ordered.Unique.With.SetWith k a) instance Data.Set.Class.HasUnion (Data.Functor.Contravariant.Predicate a) instance GHC.Classes.Ord a => Data.Set.Class.HasUnion (Data.Set.Ordered.Many.OMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasUnion (Data.Set.Unordered.Many.UMSet a) instance GHC.Classes.Eq a => Data.Set.Class.HasUnion (Data.Set.Unordered.Unique.UUSet a) instance GHC.Classes.Ord a => Data.Set.Class.HasUnion (Data.Set.Ordered.Unique.Finite.FiniteSet a) module Data.Set.Ordered.Many.With newtype SetsWith k c a SetsWith :: (a -> k, Map k (c a)) -> SetsWith k c a [unSetsWith] :: SetsWith k c a -> (a -> k, Map k (c a)) (\\) :: (Ord k, HasDifference (c a)) => SetsWith k c a -> SetsWith k c a -> SetsWith k c a null :: SetsWith k c a -> Bool size :: SetsWith k c a -> Int member :: Ord k => a -> SetsWith k c a -> Bool notMember :: Ord k => a -> SetsWith k c a -> Bool lookupLT :: Ord k => a -> SetsWith k c a -> Maybe (c a) lookupGT :: Ord k => a -> SetsWith k c a -> Maybe (c a) lookupLE :: Ord k => a -> SetsWith k c a -> Maybe (c a) lookupGE :: Ord k => a -> SetsWith k c a -> Maybe (c a) isSubsetOf :: (Ord k, Eq (c a), CanBeSubset (c a)) => SetsWith k c a -> SetsWith k c a -> Bool isProperSubsetOf :: (Ord k, Eq (c a), CanBeSubset (c a)) => SetsWith k c a -> SetsWith k c a -> Bool empty :: (a -> k) -> SetsWith k c a singleton :: (Ord k, HasUnion (c a), HasSingleton a (c a)) => (a -> k) -> a -> SetsWith k c a insert :: (Ord k, HasUnion (c a), HasSingleton a (c a)) => a -> SetsWith k c a -> SetsWith k c a delete :: (Ord k, Eq (c a), HasEmpty (c a), HasDelete a (c a)) => a -> SetsWith k c a -> SetsWith k c a union :: (Ord k, HasUnion (c a)) => SetsWith k c a -> SetsWith k c a -> SetsWith k c a difference :: (Ord k, Eq (c a), HasEmpty (c a), HasDifference (c a)) => SetsWith k c a -> SetsWith k c a -> SetsWith k c a intersection :: (Ord k, Eq (c a), HasEmpty (c a), HasIntersection (c a)) => SetsWith k c a -> SetsWith k c a -> SetsWith k c a filter :: (Eq (c a), HasEmpty (c a), Witherable c) => (a -> Bool) -> SetsWith k c a -> SetsWith k c a partition :: (c a -> Bool) -> SetsWith k c a -> (SetsWith k c a, SetsWith k c a) split :: Ord k => a -> SetsWith k c a -> (SetsWith k c a, SetsWith k c a) splitMember :: Ord k => a -> SetsWith k c a -> (SetsWith k c a, Bool, SetsWith k c a) splitRoot :: Ord k => SetsWith k c a -> [SetsWith k c a] lookupIndex :: Ord k => a -> SetsWith k c a -> Maybe Int findIndex :: Ord k => a -> SetsWith k c a -> Int setAt :: Int -> SetsWith k c a -> c a deleteAt :: Int -> SetsWith k c a -> SetsWith k c a map :: Functor c => (a -> b) -> (b -> a) -> SetsWith k c a -> SetsWith k c b mapMaybe :: (Eq (c b), HasEmpty (c b), Witherable c) => (a -> Maybe b) -> (b -> a) -> SetsWith k c a -> SetsWith k c b foldr :: Foldable c => (a -> b -> b) -> b -> SetsWith k c a -> b foldl :: Foldable c => (b -> a -> b) -> b -> SetsWith k c a -> b foldr' :: Foldable c => (a -> b -> b) -> b -> SetsWith k c a -> b foldl' :: Foldable c => (b -> a -> b) -> b -> SetsWith k c a -> b fold :: Foldable c => (a -> b -> b) -> b -> SetsWith k c a -> b findMin :: (Ord a, Foldable c) => SetsWith k c a -> a findMax :: (Ord a, Foldable c) => SetsWith k c a -> a -- | Deletes entire set with minimum key deleteMin :: SetsWith k c a -> SetsWith k c a deleteMax :: SetsWith k c a -> SetsWith k c a deleteFindMin :: SetsWith k c a -> (c a, SetsWith k c a) deleteFindMax :: SetsWith k c a -> (c a, SetsWith k c a) minView :: SetsWith k c a -> Maybe (c a, SetsWith k c a) maxView :: SetsWith k c a -> Maybe (c a, SetsWith k c a) elems :: (HasUnion (c a), HasEmpty (c a)) => SetsWith k c a -> c a toList :: SetsWith k c a -> (a -> k, [c a]) fromList :: (Ord k, HasSingleton a (c a), HasUnion (c a), Foldable f) => (a -> k) -> f a -> SetsWith k c a toAscList :: SetsWith k c a -> [c a] toDescList :: SetsWith k c a -> [c a] fromAscList :: (Eq k, HasSingleton a (c a)) => (a -> k) -> [a] -> SetsWith k c a fromDistinctAscList :: HasSingleton a (c a) => (a -> k) -> [a] -> SetsWith k c a showTree :: (Show k, Show (c a)) => SetsWith k c a -> String showTreeWith :: (k -> c a -> String) -> Bool -> Bool -> SetsWith k c a -> String instance Data.Foldable.Foldable c => Data.Foldable.Foldable (Data.Set.Ordered.Many.With.SetsWith k c) instance (GHC.Classes.Eq (c a), GHC.Classes.Eq k) => GHC.Classes.Eq (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, Data.Set.Class.HasUnion (c a)) => Data.Set.Class.HasUnion (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, GHC.Classes.Eq (c a), Data.Set.Class.HasEmpty (c a), Data.Set.Class.HasDifference (c a)) => Data.Set.Class.HasDifference (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, GHC.Classes.Eq (c a), Data.Set.Class.HasEmpty (c a), Data.Set.Class.HasIntersection (c a)) => Data.Set.Class.HasIntersection (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, Data.Set.Class.HasUnion (c a), Data.Set.Class.HasSingleton a (c a)) => Data.Set.Class.HasSingletonWith (a -> k) a (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, Data.Set.Class.HasUnion (c a), Data.Set.Class.HasSingleton a (c a)) => Data.Set.Class.HasInsert a (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, GHC.Classes.Eq (c a), Data.Set.Class.HasEmpty (c a), Data.Set.Class.HasDelete a (c a)) => Data.Set.Class.HasDelete a (Data.Set.Ordered.Many.With.SetsWith k c a) instance Data.Set.Class.HasEmptyWith (a -> k) (Data.Set.Ordered.Many.With.SetsWith k c a) instance Data.Set.Class.HasSize (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, GHC.Classes.Eq (c a), Data.Set.Class.CanBeSubset (c a)) => Data.Set.Class.CanBeSubset (Data.Set.Ordered.Many.With.SetsWith k c a) instance (GHC.Classes.Ord k, GHC.Classes.Eq (c a), Data.Set.Class.CanBeSubset (c a)) => Data.Set.Class.CanBeProperSubset (Data.Set.Ordered.Many.With.SetsWith k c a)