--- /dev/null
+{-# LANGUAGE RebindableSyntax #-}
+
+module BigFloat
+ (module Data.Number.BigFloat)
+where
+
+import Data.Number.BigFloat
+
+import NumericPrelude hiding (abs)
+import qualified Algebra.Absolute as Absolute
+import qualified Algebra.Additive as Additive
+import qualified Algebra.Field as Field
+import qualified Algebra.Ring as Ring
+import qualified Algebra.ToRational as ToRational
+import qualified Algebra.ZeroTestable as ZeroTestable
+import qualified Prelude as P
+
+type R = BigFloat Prec50
+
+instance Epsilon e => Additive.C (BigFloat e) where
+ (+) = (P.+)
+ zero = (P.fromInteger 0)
+ negate = (P.negate)
+
+instance Epsilon e => Ring.C (BigFloat e) where
+ (*) = (P.*)
+ fromInteger = P.fromInteger
+
+instance Epsilon e => Absolute.C (BigFloat e) where
+ abs = P.abs
+ signum = P.signum
+
+instance Epsilon e => Field.C (BigFloat e) where
+ recip = P.recip
+
+instance Epsilon e => ZeroTestable.C (BigFloat e) where
+ isZero = ZeroTestable.defltIsZero
+
+instance Epsilon e => ToRational.C (BigFloat e) where
+ toRational = fromRational . P.toRational