-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathghc-typelits-extra.cabal
129 lines (124 loc) · 5.42 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
126
127
128
129
name: ghc-typelits-extra
version: 0.4.8
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: christiaan.baaij@gmail.com
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.8, GHC == 9.6.6, GHC == 9.8.4, GHC == 9.10.1,
GHC == 9.12.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.13,
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.11)
hs-source-dirs: src-ghc-9.4
build-depends: template-haskell >= 2.17 && <2.23
if impl(ghc >= 9.11) && impl(ghc < 9.13)
hs-source-dirs: src-ghc-9.12
build-depends: template-haskell >= 2.17 && <2.24
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.13)
hs-source-dirs: tests-ghc-9.4
default-language: Haskell2010
other-extensions: DataKinds
TypeOperators
if flag(deverror)
ghc-options: -dcore-lint