ghc-typelits-extra
ghc-typelits-extra copied to clipboard
Extra type-level operations on GHC.TypeLits.Nat and a custom solver
ghc-typelits-extra
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 <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)
" -
GHC.TypeLits.Extra.GCD
: a type-level gcd -
GHC.TypeLits.Extra.LCM
: a type-level lcm