packages feed

clash-finite-1.0.0.0: clash-finite.cabal

cabal-version:      2.2
name:               clash-finite
version:            1.0.0.0
synopsis:           A class for types with only finitely many inhabitants
description:        Finite is a class for types with only finitely many inhabitants
                    and can be considered a more hardware-friendly alternative to
                    Bounded and Enum, utilizing Index instead of Int and vectors
                    instead of lists.
homepage:           https://github.com/kleinreact/clash-finite
license:            MIT
license-file:       LICENSE
author:             Felix Klein
maintainer:         felix@qbaylogic.com
copyright:          Copyright © 2024-2025, Felix Klein
category:           Hardware
build-type:         Simple
extra-doc-files:    CHANGELOG.md

source-repository head
  type:             git
  location:         https://github.com/kleinreact/clash-finite

flag test
  description:      You can disable tests via `-f-test`.
  default:          True
  manual:           True

flag large-tuples
  description:      Generate Finite class instances for tuples up to
                    and including 62 elements
  default:          False
  manual:           True

library
  default-language: Haskell2010
  hs-source-dirs: src
  ghc-options: -Wall -Wcompat
  if flag(large-tuples)
    CPP-Options: -DLARGE_TUPLES
  build-depends:
    , base                      >= 4.11     && < 5
    , clash-prelude             >= 1.8      && < 1.10
    , constraints               >= 0.9      && < 1.0
    , ghc-typelits-extra        >= 0.4      && < 0.5
    , ghc-typelits-knownnat     >= 0.7.2    && < 0.8
    , ghc-typelits-natnormalise >= 0.7.2    && < 0.8
    , singletons                >= 2.0      && < 3.1
    , template-haskell          >= 2.12.0.0 && < 2.23
  exposed-modules:
    Clash.Class.Finite
    Clash.Class.Finite.Internal
    Clash.Class.Finite.Internal.Evidence
    Clash.Class.Finite.Internal.TH

test-suite unittests
  default-language: Haskell2010
  hs-source-dirs: tests
  ghc-options: -Wall -Wcompat -threaded
  type: exitcode-stdio-1.0
  main-is: Main.hs
  if !flag(test)
    buildable: False
  else
    build-depends:
      , base                    >= 4.11     && < 5
      , clash-prelude           >= 1.9      && < 1.10
      , clash-finite
      , constraints             >= 0.9      && < 1.0
      , deepseq
      , tasty                   >= 1.2      && < 1.6
      , tasty-hunit
  other-modules:
    Clash.Tests.Laws.Finite