cabal-version: 3.0 name: ghc-typelits-extra version: 0.5.0 synopsis: Additional type-level operations on GHC.TypeLits.Nat description: Additional type-level operations on @GHC.TypeLits.Nat@: * @Max@: type-level * @Min@: type-level * @Div@: type-level * @Mod@: type-level * @FLog@: type-level equivalent of i.e. the exact integer equivalent to @floor (logBase x y)@ * @CLog@: type-level equivalent of /the ceiling of/ i.e. the exact integer equivalent to @ceiling (logBase x y)@ * @Log@: type-level equivalent of where the operation only reduces when @floor (logBase b x) ~ ceiling (logBase b x)@ * @GCD@: a type-level * @LCM@: a type-level 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: BSD-2-Clause 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 tested-with: 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.3, GHC == 9.12.2 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.Compat GHC.TypeLits.Extra.Solver.Unify GHC.TypeLits.Extra.Solver.Operations build-depends: base >= 4.8 && <5, containers >= 0.5.7.1 && <0.9, ghc >= 8.8 && <9.17, ghc-prim >= 0.5 && <1.0, ghc-tcplugin-api >= 0.18.1.0 && <0.19, ghc-typelits-knownnat >= 0.7.2 && <0.9, ghc-typelits-natnormalise >= 0.9 && <0.10, transformers >= 0.4.2.0 && <0.7, template-haskell >= 2.15 && <2.25 if impl(ghc >= 9.0.0) build-depends: ghc-bignum >=1.0 && <1.5 else build-depends: integer-gmp >=1.0 && <1.1 mixins: ghc ( TcTypeNats as GHC.Builtin.Types.Literals , DataCon as GHC.Core.DataCon , TyCoRep as GHC.Core.TyCo.Rep , Type as GHC.Core.Type , Plugins as GHC.Driver.Plugins ) if impl(ghc >= 8.9) mixins: ghc ( Constraint as GHC.Tc.Types.Constraint ) else mixins: ghc ( TcRnTypes as GHC.Tc.Types.Constraint ) hs-source-dirs: src 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.8.2, ghc-typelits-natnormalise >= 0.9.0, tasty >= 0.10, tasty-hunit >= 0.9 hs-source-dirs: tests default-language: Haskell2010 other-extensions: DataKinds TypeOperators if flag(deverror) ghc-options: -dcore-lint