@hackage ghc-typelits-extra0.4.8

Additional type-level operations on GHC.TypeLits.Nat

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.