{-# language Safe #-}
module D10.Num.Arithmetic where
import D10.Num (D10, d10Int, intMod10)
import qualified Prelude as P
import Prelude (Integral)
(+) :: Integral a => D10 a -> D10 a -> D10 a
D10 a
x + :: D10 a -> D10 a -> D10 a
+ D10 a
y = Int -> D10 a
forall a. Num a => Int -> D10 a
intMod10 (D10 a -> Int
forall a. Integral a => D10 a -> Int
d10Int D10 a
x Int -> Int -> Int
forall a. Num a => a -> a -> a
P.+ D10 a -> Int
forall a. Integral a => D10 a -> Int
d10Int D10 a
y)
(-) :: Integral a => D10 a -> D10 a -> D10 a
D10 a
x - :: D10 a -> D10 a -> D10 a
- D10 a
y = Int -> D10 a
forall a. Num a => Int -> D10 a
intMod10 (D10 a -> Int
forall a. Integral a => D10 a -> Int
d10Int D10 a
x Int -> Int -> Int
forall a. Num a => a -> a -> a
P.- D10 a -> Int
forall a. Integral a => D10 a -> Int
d10Int D10 a
y)
(*) :: Integral a => D10 a -> D10 a -> D10 a
D10 a
x * :: D10 a -> D10 a -> D10 a
* D10 a
y = Int -> D10 a
forall a. Num a => Int -> D10 a
intMod10 (D10 a -> Int
forall a. Integral a => D10 a -> Int
d10Int D10 a
x Int -> Int -> Int
forall a. Num a => a -> a -> a
P.* D10 a -> Int
forall a. Integral a => D10 a -> Int
d10Int D10 a
y)