[project @ 2003-08-04 17:52:33 by panne]
[ghc-base.git] / Data / Complex.hs
index 8ad4c2e..621b48e 100644 (file)
@@ -39,7 +39,13 @@ module Data.Complex
 
 import Prelude
 
-import Data.Dynamic
+#ifndef __NHC__
+import Data.Typeable
+#endif
+
+#ifdef __HUGS__
+import Hugs.Prelude(Num(fromInt), Fractional(fromDouble))
+#endif
 
 infix  6  :+
 
@@ -88,8 +94,10 @@ phase (x:+y)  = atan2 y x
 -- -----------------------------------------------------------------------------
 -- Instances of Complex
 
-#include "Dynamic.h"
+#ifndef __NHC__
+#include "Typeable.h"
 INSTANCE_TYPEABLE1(Complex,complexTc,"Complex")
+#endif
 
 instance  (RealFloat a) => Num (Complex a)  where
     {-# SPECIALISE instance Num (Complex Float) #-}
@@ -102,6 +110,9 @@ instance  (RealFloat a) => Num (Complex a)  where
     signum 0           =  0
     signum z@(x:+y)    =  x/r :+ y/r  where r = magnitude z
     fromInteger n      =  fromInteger n :+ 0
+#ifdef __HUGS__
+    fromInt n          =  fromInt n :+ 0
+#endif
 
 instance  (RealFloat a) => Fractional (Complex a)  where
     {-# SPECIALISE instance Fractional (Complex Float) #-}
@@ -113,6 +124,9 @@ instance  (RealFloat a) => Fractional (Complex a)  where
                                 d   = x'*x'' + y'*y''
 
     fromRational a     =  fromRational a :+ 0
+#ifdef __HUGS__
+    fromDouble a       =  fromDouble a :+ 0
+#endif
 
 instance  (RealFloat a) => Floating (Complex a)        where
     {-# SPECIALISE instance Floating (Complex Float) #-}