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?
On Wed, Dec 15, 2004 at 10:28:18AM +0000, Ross Paterson wrote: > 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. Thanks; this appears to do the trick for me. Something of this kind would be useful to have in the std. libraries, at least for me. -- wli _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe