packages feed

numhask-0.11.1.0: numhask.cabal

cabal-version: 3.0
name: numhask
version: 0.11.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/nh.svg)

    == Usage

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

    See "NumHask" for a detailed overview.

build-type: Simple
tested-with:
    GHC ==8.6.5 || ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.5 || ==9.6.2
extra-doc-files:
    ChangeLog.md
    other/*.svg

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

    if impl ( ghc >= 8.8 )
        ghc-options:
            -fwrite-ide-info
            -hiedir=.hie

common ghc2021-stanza
    if impl ( ghc >= 9.2 )
        default-language: GHC2021

    if impl ( ghc < 9.2 )
        default-language: Haskell2010
        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

library
    import: ghc-options-stanza
    import: ghc2021-stanza
    hs-source-dirs: src
    build-depends:
        -- keeping cabal-docspec happy
        , QuickCheck >=2.14 && <3
        , base       >=4.7 && <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.Rational
        NumHask.Exception
        NumHask.Prelude
    other-modules:
    default-extensions: RebindableSyntax

    -- keeping ormolu happy
    if impl ( ghc >= 8.10 )
        default-extensions: NoImportQualifiedPost