HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulenumeric-prelude-0.4.4Haskell98

Number.ResidueClass.Check

  • 1 type
  • 11 values
datadata T a
#

The best solution seems to let modulus be part of the type. This could happen with a phantom type for modulus and a run function like runST. Then operations with non-matching moduli could be detected at compile time and zero and one could be generated with the correct modulus. An alternative trial can be found in module ResidueClassMaybe.

Constructors

Instances7Eq, Read, Show, C, …
  • Eq a => Eq (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
  • (Read a, C a) => Read (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
  • Show a => Show (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
  • (Eq a, C a) => C (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
  • (Eq a, C a) => C (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
  • (Eq a, C a) => C (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
  • C a => C (T a)Defined in numeric-prelude-0.4.4 · Number.ResidueClass.Check
value(/:) :: C a => a -> a -> T a
#

r /: m is the residue class containing r with respect to the modulus m

valuelift1 :: Eq a => (a -> a -> a) -> T a -> T a
#
valuelift2 :: Eq a => (a -> a -> a -> a) -> T a -> T a -> T a
#
valueone :: C a => a -> T a
#