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]