Cabal-Version:   >= 1.10
Name:            equivalence
Version:         0.4
License:         BSD3
License-File:    LICENSE
Author:          Patrick Bahr
Maintainer:      paba@itu.dk
Homepage:        https://github.com/pa-ba/equivalence
bug-reports:     https://github.com/pa-ba/equivalence/issues
Synopsis:        Maintaining an equivalence relation implemented as union-find using STT.
Description:
  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).
Category:        Algorithms, Data
Stability:       provisional
Build-Type:      Simple

tested-with:
  GHC == 7.10.3
  GHC == 8.0.2
  GHC == 8.2.2
  GHC == 8.4.4
  GHC == 8.6.5
  GHC == 8.8.4
  GHC == 8.10.7
  GHC == 9.0.2
  GHC == 9.2.1

Extra-Source-Files: CHANGES.md

source-repository head
  type:     git
  location: https://github.com/pa-ba/equivalence


Library
  Exposed-Modules:
    Data.Equivalence.STT
    Data.Equivalence.Monad
  Hs-Source-Dirs:       src
  default-language:     Haskell2010
  Build-Depends:
    base                   >= 4.8    && < 5
    , containers
    , mtl                  >= 2.2.1
    , STMonadTrans         >= 0.4.3
    , transformers         >= 0.2
    , transformers-compat  >= 0.3
  if impl(ghc < 8.0)
    Build-Depends:
      fail

  ghc-options:
      -Wall
      -fno-warn-name-shadowing
      -fno-warn-incomplete-record-updates
  if impl(ghc >= 8.0)
    ghc-options:
      -Wcompat

Test-Suite test
  Type:                 exitcode-stdio-1.0
  Main-is:              Data_Test.hs
  Other-Modules:
    Data.Equivalence.Monad_Test
    Data.Equivalence.Monad
    Data.Equivalence.STT
  hs-source-dirs:       src testsuite/tests
  default-language:     Haskell2010
  Build-Depends:
    equivalence
    -- inherited dependencies from library
    , base
    , containers
    , mtl
    , STMonadTrans
    , transformers
    , transformers-compat
    -- Additional dependencies for testsuite
    , QuickCheck           >= 2
    , template-haskell
  if impl(ghc < 8.0)
    Build-Depends:
      fail

  ghc-options:
      -Wall
      -fno-warn-name-shadowing
      -fno-warn-incomplete-record-updates
      -fno-warn-missing-signatures
      -fno-warn-unused-do-bind
  if impl(ghc >= 8.0)
    ghc-options:
      -Wcompat