On Wed, Feb 05, 2003 at 09:16:58PM -0800, Dylan Alex Simon wrote: > Apparently I can't do this (in ghc or hugs -- haven't tried others): > > class Space a where > distance :: a -> a -> Int > subtract :: a -> a -> a > > class (Space a) => NormSpace a where > norm :: a -> Int > distance a b = norm (subtract a b) > > That is, I can't make (or redefine) a default for the superclass method > 'distance' in a subclass. I agree that the Haskell'98 definition doesn't > claim that this should be allowed, but it seems like something that would be > useful. Are there reasons not to allow this (or that I shouldn't want to do > this at all)?
No, it's not legal, but it would indeed be useful, even in the Prelude, e.g. defining (==) in Ord, or fmap in Monad. It seems a reasonable idea of subclass, but might be hard to do across module boundaries. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
