packages feed

numhask-0.13.1.0: numhask.cabal

cabal-version: 3.0
name: numhask
version: 0.13.1.0
license: BSD-3-Clause
license-file: LICENSE
copyright: Tony Day (c) 2016
category: math
author: Tony Day
maintainer: tonyday567@gmail.com
homepage: https://github.com/tonyday567/numhask#readme
bug-reports: https://github.com/tonyday567/numhask/issues
synopsis: A numeric class hierarchy.
description:
  This package provides alternative numeric classes over Prelude.

  The numeric class constellation looks somewhat like:

  ![nh](docs/other/nh12.svg)

  == Usage

  >>> {-# LANGUAGE GHC2024 #-}
  >>> {-# LANGUAGE RebindableSyntax #-}
  >>> import NumHask.Prelude

  See "NumHask" for a detailed overview.

build-type: Simple
tested-with:
  ghc ==8.10.7
  ghc ==9.6.7
  ghc ==9.8.4
  ghc ==9.10.2
  ghc ==9.12.2

extra-doc-files:
  ChangeLog.md
  other/*.svg
  readme.md

source-repository head
  type: git
  location: https://github.com/tonyday567/numhask

common ghc-options-stanza
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wpartial-fields
    -Wredundant-constraints

common ghc2021-additions
  default-extensions:
    BangPatterns
    BinaryLiterals
    ConstrainedClassMethods
    ConstraintKinds
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveLift
    DeriveTraversable
    DoAndIfThenElse
    EmptyCase
    EmptyDataDecls
    EmptyDataDeriving
    ExistentialQuantification
    ExplicitForAll
    FlexibleContexts
    FlexibleInstances
    ForeignFunctionInterface
    GADTSyntax
    GeneralisedNewtypeDeriving
    HexFloatLiterals
    ImplicitPrelude
    InstanceSigs
    KindSignatures
    MonomorphismRestriction
    MultiParamTypeClasses
    NamedFieldPuns
    NamedWildCards
    NumericUnderscores
    PatternGuards
    PolyKinds
    PostfixOperators
    RankNTypes
    RelaxedPolyRec
    ScopedTypeVariables
    StandaloneDeriving
    StarIsType
    TraditionalRecordSyntax
    TupleSections
    TypeApplications
    TypeOperators
    TypeSynonymInstances

  if impl(ghc <9.2) && impl(ghc >=8.10)
    default-extensions:
      ImportQualifiedPost
      StandaloneKindSignatures

common ghc2024-additions
  default-extensions:
    DataKinds
    DerivingStrategies
    DisambiguateRecordFields
    ExplicitNamespaces
    GADTs
    LambdaCase
    MonoLocalBinds
    RoleAnnotations

common ghc2024-stanza
  if impl(ghc >=9.10)
    default-language:
      GHC2024
  elif impl(ghc >=9.2)
    import: ghc2024-additions
    default-language:
      GHC2021
  else
    import: ghc2021-additions
    import: ghc2024-additions
    default-language:
      Haskell2010

library
  import: ghc-options-stanza
  import: ghc2024-stanza
  hs-source-dirs: src
  build-depends: base >=4.14 && <5
  exposed-modules:
    NumHask
    NumHask.Algebra.Action
    NumHask.Algebra.Additive
    NumHask.Algebra.Field
    NumHask.Algebra.Group
    NumHask.Algebra.Lattice
    NumHask.Algebra.Metric
    NumHask.Algebra.Multiplicative
    NumHask.Algebra.Ring
    NumHask.Data.Complex
    NumHask.Data.Integral
    NumHask.Data.Positive
    NumHask.Data.Rational
    NumHask.Data.Wrapped
    NumHask.Exception
    NumHask.Prelude

  default-extensions: RebindableSyntax

test-suite doctests
  import: ghc2024-stanza
  main-is: doctests.hs
  hs-source-dirs: test
  build-depends:
    QuickCheck >=2.14 && <2.17,
    base >=4.14 && <5,
    doctest-parallel >=0.3 && <0.5,

  default-extensions: RebindableSyntax
  ghc-options: -threaded
  type: exitcode-stdio-1.0