1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
{-# LANGUAGE NoImplicitPrelude #-}
module Compiler.Fractional where
import Compiler.Num
import Compiler.Ratio
infixl 7 /
class Num a => Fractional a where
(/) :: a -> a -> a
recip :: a -> a
fromRational :: Rational -> a
x / y = x * (recip y)
recip y = 1 / y
fromRational (Ratio top bottom) = fromInteger top / fromInteger bottom
foreign import bpcall "Prelude:" divide_double :: Double -> Double -> Double
foreign import bpcall "Prelude:" recip_double :: Double -> Double
instance Fractional Double where
(/) = divide_double
recip = recip_double
|