File: dimensional.cabal

package info (click to toggle)
haskell-dimensional 1.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 348 kB
  • sloc: haskell: 2,370; makefile: 2
file content (116 lines) | stat: -rw-r--r-- 4,791 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name:                dimensional
version:             1.5
license:             BSD3
license-file:        LICENSE
copyright:           Bjorn Buckwalter 2006-2022
author:              Bjorn Buckwalter
maintainer:          bjorn@buckwalter.se
stability:           experimental
homepage:            https://github.com/bjornbm/dimensional/
bug-reports:         https://github.com/bjornbm/dimensional/issues/
category:            Math, Physics
synopsis:            Statically checked physical dimensions
cabal-version:       >= 1.10
tested-with:         GHC == 8.0.1, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.1, GHC == 8.8.3, GHC == 8.10.4
build-type:          Simple

description:

    Dimensional is a library providing data types for performing arithmetic
    with physical quantities and units. Information about the physical
    dimensions of the quantities and units is embedded in their types and the
    validity of operations is verified by the type checker at compile time.
    The wrapping and unwrapping of numerical values as quantities is done by
    multiplication and division with units. The library is designed to, as
    far as is practical, enforce/encourage best practices of unit usage.

    Version 1 of the dimensional package differs from earlier version in that
    the dimension tracking is implemented using Closed Type Families and Data Kinds
    rather than functional dependencies. This enables a number of features, including
    improved support for unit names and quantities with statically-unknown dimensions.

    Requires GHC 8.0 or later.

extra-source-files:  README.md,
                     CHANGELOG.md,
                     examples/ReadmeExample.hs,
                     examples/GM.lhs,
                     examples/NewtonianMechanics.hs

source-repository head
  type:     git
  location: https://github.com/bjornbm/dimensional/

library
  build-depends:       base >= 4.9 && < 5,
                       deepseq >= 1.3,
                       exact-pi >= 0.4.1 && < 0.6,
                       ieee754 >= 0.7.6,
                       numtype-dk >= 0.5 && < 1.1,
                       vector >= 0.10
  hs-source-dirs:      src
  default-language:    Haskell2010
  default-extensions:  NoImplicitPrelude
  if impl(ghc >= 8.6)
    default-extensions: NoStarIsType
  ghc-options:         -Wall
  exposed-modules:     Numeric.Units.Dimensional
                       Numeric.Units.Dimensional.Coercion
                       Numeric.Units.Dimensional.Dimensions
                       Numeric.Units.Dimensional.Dimensions.TermLevel
                       Numeric.Units.Dimensional.Dimensions.TypeLevel
                       Numeric.Units.Dimensional.Dynamic
                       Numeric.Units.Dimensional.FixedPoint
                       Numeric.Units.Dimensional.Functor
                       Numeric.Units.Dimensional.NonSI
                       Numeric.Units.Dimensional.Prelude
                       Numeric.Units.Dimensional.Quantities
                       Numeric.Units.Dimensional.SIUnits
                       Numeric.Units.Dimensional.UnitNames
                       Numeric.Units.Dimensional.UnitNames.InterchangeNames
                       Numeric.Units.Dimensional.Variants
                       Numeric.Units.Dimensional.Float
  other-modules:       Numeric.Units.Dimensional.Internal
                       Numeric.Units.Dimensional.UnitNames.Internal

test-suite tests
  type:                exitcode-stdio-1.0
  main-is:             Spec.hs
  hs-source-dirs:      tests
  default-language:    Haskell2010
  default-extensions:  NoImplicitPrelude
  if impl(ghc >= 8.6)
    default-extensions: NoStarIsType
  other-modules:       Numeric.Units.DimensionalSpec
                       Numeric.Units.Dimensional.DynamicSpec
                       Numeric.Units.Dimensional.QuantitiesSpec
  ghc-options:         -Wall
  build-depends:       dimensional,
                       hspec,
                       QuickCheck,
                       base
  build-tool-depends: hspec-discover:hspec-discover == 2.*

test-suite doctests
  type:                exitcode-stdio-1.0
  ghc-options:         -threaded
  main-is:             DocTests.hs
  hs-source-dirs:      tests
  default-language:    Haskell2010
  build-depends:       dimensional,
                       doctest,
                       Glob,
                       QuickCheck,
                       template-haskell,
                       base

benchmark simple
  type:                exitcode-stdio-1.0
  hs-source-dirs:      benchmarks
  main-is:             Main.hs
  build-depends:       base,
                       criterion,
                       deepseq,
                       dimensional
  default-language:    Haskell2010
  ghc-options:         -O2