G'day all.

On Wed, Jul 09, 2003 at 05:25:20PM +0200, Jerzy Karczmarczuk wrote:

> While this is a possible solution, I would shout loudly: "Arrest this man, 
> he is disrespectful wrt math!". Actually, this shows once more that the Num 
> class and its relatives is a horror...

Yup.

I recently discovered, to my delight, that single-method typeclasses
with no superclasses are represented as a single unboxed function in
GHC (i.e. the type dictionary is "newtype" rather than "data").

This suggests that wrapping each "standard" mathemtaical
function/operator in its own typeclass would have literally
no run-time performance penalty:

        class Plus a b c | a b -> c where
            (+) :: a -> b -> c

        class Mult a b c | a b -> c where
            (*) :: a -> b -> c

        {- etc -}

        class (Eq a, Show a,
               Plus a a a, Mult a a a, {- etc -}
              ) => Num a

Apart from the possibility of naming these typeclasses better, this
reorganisation gets my vote for Haskell 2.

> Signum in this context has no sense.

An even weirder example is that of the two real number libraries
in haskell-libs.  Computable reals are definitely numbers, but they're
not even members of Eq.

Cheers,
Andrew Bromage
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to