The two classes C and C exist to allow convenient conversions, primarily between the built-in types. They should satisfy
fromInteger . toInteger === id
toRational . toInteger === toRationalConversions must be lossless, that is, they do not round in any way. For rounding see Algebra.RealRing.
I think that the RealIntegral superclass is too restrictive. Non-negative numbers are not a ring, but can be easily converted to Integers.
Instances16C, …
C IntegerDefined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Int16Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Int32Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Int64Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Int8Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Word16Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Word32Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Word64Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC Word8Defined in numeric-prelude-0.4.4 · Algebra.ToIntegerC IntDefined in numeric-prelude-0.4.4 · Algebra.ToIntegerC WordDefined in numeric-prelude-0.4.4 · Algebra.ToIntegerC TDefined in numeric-prelude-0.4.4 · Number.PeanoIntegral a => C (T a)Defined in numeric-prelude-0.4.4 · MathObj.Wrapper.Haskell98C a => C (T a)Defined in numeric-prelude-0.4.4 · Number.NonNegative · orphanC a => C (T a)Defined in numeric-prelude-0.4.4 · MathObj.Wrapper.NumericPrelude(C a, C a) => C (T a)Defined in numeric-prelude-0.4.4 · Number.NonNegativeChunky