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
pragma to the header of your file.