ghc-typelits-extra: Additional type-level operations on GHC.TypeLits.Nat

[ bsd2, library, type-system ] [ Propose Tags ]

Additional type-level operations on GHC.TypeLits.Nat:

  • Max: type-level max

  • Min: type-level min

  • Div: type-level div

  • Mod: type-level mod

  • FLog: type-level equivalent of integerLogBase# i.e. the exact integer equivalent to floor (logBase x y)

  • CLog: type-level equivalent of the ceiling of integerLogBase# i.e. the exact integer equivalent to ceiling (logBase x y)

  • Log: type-level equivalent of integerLogBase# where the operation only reduces when floor (logBase b x) ~ ceiling (logBase b x)

  • GCD: a type-level gcd

  • LCM: a type-level 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.

[Skip to Readme]


Manual Flags


Enables `-Werror` for development mode and TravisCI


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS] 0.1, 0.1.1, 0.1.2, 0.1.3, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7
Change log
Dependencies base (>=4.8 && <5), containers (>= && <0.7), ghc (>=7.10 && <9.4), ghc-bignum (>=1.0 && <1.3), 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), integer-gmp (>=1.0 && <1.1), transformers (>= && <0.6) [details]
License BSD-2-Clause
Copyright Copyright © 2015-2016, University of Twente, 2017-2018, QBayLogic B.V.
Author Christiaan Baaij
Revised Revision 1 made by QBayLogic at 2022-01-26T12:53:03Z
Category Type System
Home page
Bug tracker
Source repo head: git clone
Uploaded by ChristiaanBaaij at 2021-06-18T13:37:44Z
Distributions Arch:0.4.4, LTSHaskell:0.4.7, NixOS:0.4.7, Stackage:0.4.7
Reverse Dependencies 9 direct, 12 indirect [details]
Downloads 18001 total (101 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for ghc-typelits-extra-0.4.3

[back to package description]


Build Status Hackage Hackage Dependencies

Extra type-level operations on GHC.TypeLits.Nat and a custom solver implemented as a GHC type-checker plugin:

  • GHC.TypeLits.Extra.Max: type-level max
  • GHC.TypeLits.Extra.Min: type-level min
  • GHC.TypeLits.Extra.Div: type-level div
  • GHC.TypeLits.Extra.Mod: type-level mod
  • GHC.TypeLits.Extra.FLog: type-level equivalent of integerLogBase# .i.e. the exact integer equivalent to "floor (logBase x y)"
  • GHC.TypeLits.Extra.CLog: type-level equivalent of the ceiling of integerLogBase# .i.e. the exact integer equivalent to "ceiling (logBase x y)"
  • 'GHC.TypeLits.Extra.Log': type-level equivalent of < integerLogBase#> where the operation only reduces when "floor (logBase b x) ~ ceiling (logBase b x)"
  • GHC.TypeLits.Extra.GCD: a type-level gcd
  • GHC.TypeLits.Extra.LCM: a type-level lcm