equivalence

Maintaining an equivalence relation implemented as union-find using STT.

https://github.com/pa-ba/equivalence

LTS Haskell 22.42:0.4.1
Stackage Nightly 2024-11-24:0.4.1
Latest on Hackage:0.4.1

See all snapshots equivalence appears in

BSD-3-Clause licensed by Patrick Bahr
Maintained by Andreas Abel
This version can be pinned in stack with:equivalence-0.4.1@sha256:0edb9853a870f4bf98614f555e2bdc35360c197dd6f6685774fc97fe9ecd4480,2503

Module documentation for 0.4.1

This is an implementation of Tarjan's Union-Find algorithm (Robert E. Tarjan. "Efficiency of a Good But Not Linear Set Union Algorithm", JACM 22(2), 1975) in order to maintain an equivalence relation. This implementation is a port of the union-find package using the ST monad transformer (instead of the IO monad).

Changes

0.4.1

Andreas Abel, 2022-07-26

  • New methods values and classes to get all values and classes encountered #7 #13 (contributed by Jimmy Koppel).

Tested with GHC 7.10 - 9.4.1 RC1.

0.4.0.1

Andreas Abel, 2022-05-26

  • add LANGUAGE TypeOperators for GHC 9.4

0.4

Andreas Abel, 2022-02-03

  • remove ErrorT instance for compatibility with transformers-0.6 and mtl-2.3

0.3.5

Patrick Bahr, 2019-09-09

  • compatibility with GHC 8.8

0.3.4

  • MonadFail instance for EquivT

0.3.3

  • compatibility with GHC 8.6

0.3.2

  • add Applicative constraints for backwards compatibility with GHC 7.8

0.3.1

  • use transformers-compat for backwards compatibility with older versions of transformers

0.3.0.1

  • add CHANGES.txt to .cabal file

0.3

  • add suport for Control.Monad.Except (thus the new dependency constraint mtl >= 2.2.1)