@@ -5,7 +5,7 @@ module Data.Finance.Money
55
66import Data.Finance.Currency (kind Currency, class Currency, CProxy(..), decimals)
77import Data.Generic (class Generic)
8−import Data.UnittedSemiring (class UnittedSemiring)
8+import Data.VectorSpace (class VectorSpace)
99import Prelude
1010
1111-- | An amount of money in the smallest discrete unit of a particular currency.
@@ -16,10 +16,11 @@ derive newtype instance eqDiscrete :: Eq (Discrete c)
1616derive newtype instance ordDiscrete :: Ord (Discrete c)
1717derive instance genericDiscrete :: Generic (Discrete c)
1818
19−instance unittedSemiringDiscrete :: UnittedSemiring (Discrete c) Int where
20− uzero = Discrete 0
21− uadd (Discrete a) (Discrete b) = Discrete (a + b)
22− umul (Discrete a) b = Discrete (a * b)
19+instance vectorSpaceDiscrete :: VectorSpace (Discrete c) Int where
20+ vzero = Discrete 0
21+ vadd (Discrete a) (Discrete b) = Discrete (a + b)
22+ vsub (Discrete a) (Discrete b) = Discrete (a - b)
23+ vmul (Discrete a) b = Discrete (a * b)
2324
2425showDiscrete :: ∀ c. (Currency c) => Discrete c -> String
2526showDiscrete (Discrete n) = showDiscrete' n (decimals (CProxy :: CProxy c))