Small suggestions for  Haskell-2 Standard Algebra.

(1) To call it `algebra', `algebraic' library, operations, classes, 
    and so on - rather than `numeric' ones.

(2) To replace `Num' with other classes, like it is proposed in
    http://www.botik.ru/pub/local/Mechveliani/basAlgPropos/

(3) To make (^) a class operation, 
    for example, of class  Multiplicative.


Motivation.

(1),(2) are discussed in .../basAlgPropos/

(3).
(^) is a good standard denotation for powering.
In Haskell-98, (^) is a polymorphic function defined via the (*) 
operation.
If it was a class operation, the user would be able to define its 
optimizations for various instances.
For example, for the arithmetics of 
                             Z/(p)  (integer modulo p),  p  a prime,

one can obtain much cheaper  x^n  for the large  n  by exploiting
the equality   x^p = x  in  Z/(p).

------------------
Sergey Mechveliani
[EMAIL PROTECTED]


Reply via email to