numeric-prelude-0.2.1: An experimental alternative hierarchy of numeric type classes




class (C a, C a) => C a whereSource

The two classes C and Algebra.ToRational.C exist to allow convenient conversions, primarily between the built-in types. They should satisfy

   fromInteger .  toInteger === id
    toRational .  toInteger === toRational

Conversions must be lossless, that is, they do not round in any way. For rounding see Algebra.RealRing. With the instances for Float and Double we acknowledge that these types actually represent rationals rather than (approximated) real numbers. However, this contradicts to the Algebra.Transcendental.C instance.


toInteger :: a -> IntegerSource


C Int 
C Int8 
C Int16 
C Int32 
C Int64 
C Integer 
C Word 
C Word8 
C Word16 
C Word32 
C Word64 
C T 
C a => C (T a) 
(C a, C a) => C (T a) 

fromIntegral :: (C a, C b) => a -> bSource

ringPower :: (C a, C b) => b -> a -> aSource

A prefix function of '(Algebra.Ring.^)' with a parameter order that fits the needs of partial application and function composition. It has generalised exponent.

See: Argument order of expNat on

fieldPower :: (C a, C b) => b -> a -> aSource

A prefix function of '(Algebra.Field.^-)'. It has a generalised exponent.