I have the following class:
class Region a where
numDimensions :: a -> Int
dim :: Int -> a -> (Double,Double)
merge :: a -> a -> a
and several ancillary methods defined, the most importance of which is:
bounds :: Region a => a -> [(Double,Double)]
bounds r = take (numDimensions r) . map dim . iterate (+1) $ 0
Let's say that I want all Regions to also be of class Eq, where
regiona == regionb = all $ zipWith (==) (bounds regiona) (bounds regionb)
How do I declare all Regions to be Eqs without putting it in the class
body (since I define a function over all Regions that is independent
of datatype that is an instance of Region)? Is it merely:
instance Region a => Eq a where
regiona == regionb = all $ zipWith (==) (bounds regiona) (bounds regionb)
-- Jeff
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe