module Numeric.Class.Division
( Division (..),
)
where
import Data.Int (Int16, Int32, Int64, Int8)
import Data.Word (Word16, Word32, Word64, Word8)
import GHC.Natural (Natural)
import GHC.Real (Ratio)
class Division a where
divide :: a -> a -> a
instance Division Float where
divide :: Float -> Float -> Float
divide = Float -> Float -> Float
forall a. Fractional a => a -> a -> a
(/)
{-# INLINEABLE divide #-}
instance Division Double where
divide :: Double -> Double -> Double
divide = Double -> Double -> Double
forall a. Fractional a => a -> a -> a
(/)
{-# INLINEABLE divide #-}
instance Division Int where
divide :: Int -> Int -> Int
divide = Int -> Int -> Int
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Int8 where
divide :: Int8 -> Int8 -> Int8
divide = Int8 -> Int8 -> Int8
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Int16 where
divide :: Int16 -> Int16 -> Int16
divide = Int16 -> Int16 -> Int16
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Int32 where
divide :: Int32 -> Int32 -> Int32
divide = Int32 -> Int32 -> Int32
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Int64 where
divide :: Int64 -> Int64 -> Int64
divide = Int64 -> Int64 -> Int64
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Integer where
divide :: Integer -> Integer -> Integer
divide = Integer -> Integer -> Integer
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Word where
divide :: Word -> Word -> Word
divide = Word -> Word -> Word
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Word8 where
divide :: Word8 -> Word8 -> Word8
divide = Word8 -> Word8 -> Word8
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Word16 where
divide :: Word16 -> Word16 -> Word16
divide = Word16 -> Word16 -> Word16
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Word32 where
divide :: Word32 -> Word32 -> Word32
divide = Word32 -> Word32 -> Word32
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Word64 where
divide :: Word64 -> Word64 -> Word64
divide = Word64 -> Word64 -> Word64
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division Natural where
divide :: Natural -> Natural -> Natural
divide = Natural -> Natural -> Natural
forall a. Integral a => a -> a -> a
div
{-# INLINEABLE divide #-}
instance Division (Ratio Integer) where
divide :: Ratio Integer -> Ratio Integer -> Ratio Integer
divide = Ratio Integer -> Ratio Integer -> Ratio Integer
forall a. Fractional a => a -> a -> a
(/)
{-# INLINEABLE divide #-}
instance Division (Ratio Natural) where
divide :: Ratio Natural -> Ratio Natural -> Ratio Natural
divide = Ratio Natural -> Ratio Natural -> Ratio Natural
forall a. Fractional a => a -> a -> a
(/)
{-# INLINEABLE divide #-}