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