unimap-0.1.2: A union-find/map data structure
Safe HaskellSafe-Inferred
LanguageGHC2021

Unimap.Find

Description

(Import this module qualified)

Documentation

data Changed Source #

Constructors

ChangedYes 
ChangedNo 

Instances

Instances details
Show Changed Source # 
Instance details

Defined in Unimap

Eq Changed Source # 
Instance details

Defined in Unimap

Methods

(==) :: Changed -> Changed -> Bool #

(/=) :: Changed -> Changed -> Bool #

data Equiv k Source #

Constructors

Equiv 

Fields

Instances

Instances details
Show k => Show (Equiv k) Source # 
Instance details

Defined in Unimap

Methods

showsPrec :: Int -> Equiv k -> ShowS #

show :: Equiv k -> String #

showList :: [Equiv k] -> ShowS #

Eq k => Eq (Equiv k) Source # 
Instance details

Defined in Unimap

Methods

(==) :: Equiv k -> Equiv k -> Bool #

(/=) :: Equiv k -> Equiv k -> Bool #

data UnionFind k Source #

Instances

Instances details
Show k => Show (UnionFind k) Source # 
Instance details

Defined in Unimap.Find

Eq k => Eq (UnionFind k) Source # 
Instance details

Defined in Unimap.Find

Methods

(==) :: UnionFind k -> UnionFind k -> Bool #

(/=) :: UnionFind k -> UnionFind k -> Bool #

data InsertRes k Source #

Instances

Instances details
Show k => Show (InsertRes k) Source # 
Instance details

Defined in Unimap.Find

Eq k => Eq (InsertRes k) Source # 
Instance details

Defined in Unimap.Find

Methods

(==) :: InsertRes k -> InsertRes k -> Bool #

(/=) :: InsertRes k -> InsertRes k -> Bool #

data InsertVal Source #

Instances

Instances details
Show InsertVal Source # 
Instance details

Defined in Unimap.Find

Eq InsertVal Source # 
Instance details

Defined in Unimap.Find

insertLM :: (Coercible k Int, MonadState s m) => UnionFindLens s k -> k -> m InsertVal Source #

data LookupRes k Source #

Constructors

LookupResMissing !k 
LookupResFound !k !(IntLikeSet k) !(Maybe (UnionFind k)) 

Instances

Instances details
Show k => Show (LookupRes k) Source # 
Instance details

Defined in Unimap.Find

Eq k => Eq (LookupRes k) Source # 
Instance details

Defined in Unimap.Find

Methods

(==) :: LookupRes k -> LookupRes k -> Bool #

(/=) :: LookupRes k -> LookupRes k -> Bool #

data LookupVal k Source #

Constructors

LookupValMissing !k 
LookupValOk !k !(IntLikeSet k) !Changed 

Instances

Instances details
Show k => Show (LookupVal k) Source # 
Instance details

Defined in Unimap.Find

Eq k => Eq (LookupVal k) Source # 
Instance details

Defined in Unimap.Find

Methods

(==) :: LookupVal k -> LookupVal k -> Bool #

(/=) :: LookupVal k -> LookupVal k -> Bool #

lookupLM :: (Coercible k Int, MonadState s m) => UnionFindLens s k -> k -> m (LookupVal k) Source #

equivLM :: (Coercible k Int, MonadState s m) => UnionFindLens s k -> m (Equiv k) Source #

compactLM :: (Coercible k Int, MonadState s m) => UnionFindLens s k -> m (IntLikeMap k k) Source #

data MergeRes k Source #

Constructors

MergeResMissing !k 
MergeResMerged !k !(IntLikeSet k) !(UnionFind k) 

Instances

Instances details
Show k => Show (MergeRes k) Source # 
Instance details

Defined in Unimap.Find

Methods

showsPrec :: Int -> MergeRes k -> ShowS #

show :: MergeRes k -> String #

showList :: [MergeRes k] -> ShowS #

Eq k => Eq (MergeRes k) Source # 
Instance details

Defined in Unimap.Find

Methods

(==) :: MergeRes k -> MergeRes k -> Bool #

(/=) :: MergeRes k -> MergeRes k -> Bool #

data MergeVal k Source #

Constructors

MergeValMissing !k 
MergeValMerged !k !(IntLikeSet k) 

Instances

Instances details
Show k => Show (MergeVal k) Source # 
Instance details

Defined in Unimap.Find

Methods

showsPrec :: Int -> MergeVal k -> ShowS #

show :: MergeVal k -> String #

showList :: [MergeVal k] -> ShowS #

Eq k => Eq (MergeVal k) Source # 
Instance details

Defined in Unimap.Find

Methods

(==) :: MergeVal k -> MergeVal k -> Bool #

(/=) :: MergeVal k -> MergeVal k -> Bool #

mergeOne :: (Coercible k Int, Eq k) => k -> k -> UnionFind k -> MergeRes k Source #

mergeOneLM :: (Coercible k Int, Eq k, MonadState s m) => UnionFindLens s k -> k -> k -> m (MergeVal k) Source #

mergeOneM :: (Coercible k Int, Eq k, MonadState (UnionFind k) m) => k -> k -> m (MergeVal k) Source #

mergeMany :: (Traversable f, Coercible k Int, Eq k) => k -> f k -> UnionFind k -> MergeRes k Source #

mergeManyLM :: (Traversable f, Coercible k Int, Eq k, MonadState s m) => UnionFindLens s k -> k -> f k -> m (MergeVal k) Source #

mergeManyM :: (Traversable f, Coercible k Int, Eq k, MonadState (UnionFind k) m) => k -> f k -> m (MergeVal k) Source #