-
Notifications
You must be signed in to change notification settings - Fork 9
/
ghc-typelits-extra.cabal
125 lines (120 loc) · 5.24 KB
/
ghc-typelits-extra.cabal
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
117
118
119
120
121
122
123
124
125
name: ghc-typelits-extra
version: 0.4.7
synopsis: Additional type-level operations on GHC.TypeLits.Nat
description:
Additional type-level operations on @GHC.TypeLits.Nat@:
.
* @Max@: type-level <http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:max max>
.
* @Min@: type-level <http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:min min>
.
* @Div@: type-level <http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:div div>
.
* @Mod@: type-level <http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:mod mod>
.
* @FLog@: type-level equivalent of <https://hackage.haskell.org/package/base-4.17.0.0/docs/GHC-Integer-Logarithms.html#v:integerLogBase-35- integerLogBase#>
i.e. the exact integer equivalent to @floor (logBase x y)@
.
* @CLog@: type-level equivalent of /the ceiling of/ <https://hackage.haskell.org/package/base-4.17.0.0/docs/GHC-Integer-Logarithms.html#v:integerLogBase-35- integerLogBase#>
i.e. the exact integer equivalent to @ceiling (logBase x y)@
.
* @Log@: type-level equivalent of <https://hackage.haskell.org/package/base-4.17.0.0/docs/GHC-Integer-Logarithms.html#v:integerLogBase-35- integerLogBase#>
where the operation only reduces when @floor (logBase b x) ~ ceiling (logBase b x)@
.
* @GCD@: a type-level <http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:gcd gcd>
.
* @LCM@: a type-level <http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:lcm lcm>
.
And a custom solver for the above operations defined in
@GHC.TypeLits.Extra.Solver@ as a GHC type-checker plugin. To use the plugin,
add the
.
@
OPTIONS_GHC -fplugin GHC.TypeLits.Extra.Solver
@
.
pragma to the header of your file.
homepage: http://www.clash-lang.org/
bug-reports: http://github.com/clash-lang/ghc-typelits-extra/issues
license: BSD2
license-file: LICENSE
author: Christiaan Baaij
maintainer: [email protected]
copyright: Copyright © 2015-2016, University of Twente,
2017-2018, QBayLogic B.V.
category: Type System
build-type: Simple
extra-source-files: README.md
CHANGELOG.md
cabal-version: >=1.10
tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5,
GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.8,
GHC == 9.4.7, GHC == 9.6.3, GHC == 9.8.2, GHC == 9.10.1
source-repository head
type: git
location: https://github.com/clash-lang/ghc-typelits-extra.git
flag deverror
description:
Enables `-Werror` for development mode and TravisCI
default: False
manual: True
library
exposed-modules: GHC.TypeLits.Extra,
GHC.TypeLits.Extra.Solver
other-modules: GHC.TypeLits.Extra.Solver.Unify
GHC.TypeLits.Extra.Solver.Operations
build-depends: base >= 4.8 && <5,
containers >= 0.5.7.1 && <0.8,
ghc >= 7.10 && <9.12,
ghc-prim >= 0.5 && <1.0,
ghc-tcplugins-extra >= 0.3.1,
ghc-typelits-knownnat >= 0.7.2 && <0.8,
ghc-typelits-natnormalise >= 0.7.1 && <0.8,
transformers >= 0.4.2.0 && <0.7
if impl(ghc >= 9.0.0)
build-depends: ghc-bignum >=1.0 && <1.4
else
build-depends: integer-gmp >=1.0 && <1.1
hs-source-dirs: src
if impl(ghc >= 8.0) && impl(ghc < 9.4)
hs-source-dirs: src-pre-ghc-9.4
if impl(ghc >= 9.4) && impl(ghc < 9.12)
hs-source-dirs: src-ghc-9.4
build-depends: template-haskell >= 2.17 && <2.23
default-language: Haskell2010
other-extensions: DataKinds
FlexibleInstances
GADTs
MagicHash
MultiParamTypeClasses
ScopedTypeVariables
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeOperators
UndecidableInstances
if flag(deverror)
ghc-options: -Wall -Werror
else
ghc-options: -Wall
test-suite test-ghc-typelits-extra
type: exitcode-stdio-1.0
main-is: Main.hs
Other-Modules: ErrorTests
build-depends: base >= 4.8 && <5,
ghc-typelits-extra,
ghc-typelits-knownnat >= 0.7.2,
ghc-typelits-natnormalise >= 0.7.1,
tasty >= 0.10,
tasty-hunit >= 0.9
hs-source-dirs: tests
if impl(ghc >= 8.0) && impl(ghc < 9.4)
hs-source-dirs: tests-pre-ghc-9.4
if impl(ghc >= 9.4) && impl(ghc < 9.12)
hs-source-dirs: tests-ghc-9.4
default-language: Haskell2010
other-extensions: DataKinds
TypeOperators
if flag(deverror)
ghc-options: -dcore-lint