On Wed, Dec 15, 2004 at 02:07:10AM -0800, William Lee Irwin III wrote:
> This does not work as expected on Complex numbers due to some odd
> typechecking hassles apparently associated with abs. How do I get this
> to typecheck for both real (e.g. Double) and Complex arguments?
abs :: Num a => a -> a, whereas you want something that returns a Double.
You could define
class Norm a where
norm :: a -> Double
instance Norm Float where
norm = realToFrac . abs
instance Norm Double where
norm = abs
instance RealFloat a => Norm (Complex a) where
norm = realToFrac . magnitude
and use norm instead of abs.
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe