Field labels must be globally unique?
Marc Ziegert
coeus@gmx.de
Wed, 8 Jan 2003 14:24:06 +0100
--------------------It would be nice to be able to overload class-functions like classes:
instance (+), (-) -> Vector where
(+) v1 v2 = ...
(-) v1 v2 = ...
--------------------instead of overloading parts of a class... (because of runtime-errors!)
instance Num Vector where
(+) v1 v2 = ...
(-) v1 v2 = ...
(*) _ _ = undefined
(/) _ _ = undefined
--------------------or BETTER just to split classes:
class HalfBody a => (Num a =>(+), (-)) where
instance HalfBody Vector where
(+) v1 v2 = ...
(-) v1 v2 = ...
--------------------instead of defining new operators...
class HalfBody a where
(+§) :: a -> a -> a
(-§) :: a -> a -> a
instance (Num a) => HalfBody a where
(+§) = (+)
(-§) = (-)
instance HalfBody Vector where
(+§) v1 v2 = ...
(-§) v1 v2 = ...
--------------------------------------------------------------------------------
> > One is to allow function overloading. This is probably not desirable
> > because it turns type checking into an NP-hard problem.