cabal-version: 3.0
name:          isomorphism-class
version:       0.1.1
synopsis:      Isomorphism typeclass solving the conversion problem
description:   Lawful typeclass for lossless conversion between types.
category:      Conversion
homepage:      https://github.com/nikita-volkov/isomorphism-class
bug-reports:   https://github.com/nikita-volkov/isomorphism-class/issues
author:        Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>
copyright:     (c) 2022 Nikita Volkov
license:       MIT
license-file:  LICENSE

source-repository head
  type:     git
  location: git://github.com/nikita-volkov/isomorphism-class.git

common language-settings
  default-language:   Haskell2010
  default-extensions:
    NoImplicitPrelude
    FlexibleContexts
    FlexibleInstances
    MagicHash
    MultiParamTypeClasses
    ScopedTypeVariables
    TypeApplications
    UndecidableSuperClasses

library
  import:          language-settings
  hs-source-dirs:  library
  exposed-modules: IsomorphismClass
  other-modules:
    IsomorphismClass.Prelude
    IsomorphismClass.TextCompat.Array

  build-depends:
    , base >=4.12 && <5
    , bytestring >=0.10 && <0.13
    , containers >=0.6 && <0.8
    , hashable >=1 && <2
    , primitive >=0.7.3 && <0.10
    , text >=1.2 && <2.2
    , unordered-containers >=0.2 && <0.3
    , vector >=0.12 && <0.14

test-suite test
  import:         language-settings
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  other-modules:  Test.ExtraInstances
  build-depends:
    , bytestring >=0.11.1.0 && <0.13
    , isomorphism-class
    , primitive >=0.7.3 && <0.10
    , QuickCheck >=2.13 && <3
    , quickcheck-instances >=0.3.28 && <0.4
    , rebase >=1.15 && <2
    , tasty >=1.2.3 && <2
    , tasty-quickcheck >=0.10.1 && <0.11
    , text >=1.2 && <3
    , vector >=0.12 && <0.14
