Module
Data.ModularArithmetic
- Package
- purescript-modular-arithmetic
- Repository
- hdgarrood/purescript-modular-arithmetic
#Z Source
newtype Z m
Integers modulo some positive integer m.
The type argument should be a positive integer of the kind defined by purescript-typelevel.
This way, the modulus that you're working with is specified in the type. Note
that even though the modulus is captured at the type level, you can still use
modulus values which are not known at compile time, with the reifyIntP
function.
This type forms a commutative ring for any positive integer m, and
additionally a field when m is prime. Unlike Int
and Number
, though,
all of these instances are fully law-abiding.
The runtime representation is identical to that of Int
, except that
values are guaranteed to be between 0 and m-1.
Instances
- Modules
- Data.
ModularArithmetic