git.iko.soy/rowtype-yoga/purescript-money
on master help sign in
Upgrade to purescript-modules
commitc0c4e120ab12c732e47d7c7714febb5cd5c31f54 authorrightfold <rightfold@gmail.com> dateWed 29 Mar 2017, 21:39 (10 years ago) parentfbd2265
2 files changed+13−7
bower.json+1−1 src/Data/Finance/Money.purs+12−6
bower.json+1−1
@@ -3,6 +3,6 @@
33 "dependencies": {
44 "purescript-generics": "^3.3.0",
55 "purescript-prelude": "^2.5.0",
6− "purescript-vector-spaces": "git@github.com:TinkerTravel/purescript-vector-spaces.git#^1.0.0"
6+ "purescript-modules": "git@github.com:TinkerTravel/purescript-modules.git#^2.0.0"
77 }
88}
src/Data/Finance/Money.purs+12−6
@@ -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.VectorSpace (class VectorSpace)
8+import Data.Module (class LeftModule, class RightModule)
99import Prelude
1010
1111-- | An amount of money in the smallest discrete unit of a particular currency.
@@ -16,11 +16,17 @@ derive newtype instance eqDiscrete :: Eq (Discrete c)
1616derive newtype instance ordDiscrete :: Ord (Discrete c)
1717derive instance genericDiscrete :: Generic (Discrete c)
1818
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)
19+instance leftModuleDiscrete :: LeftModule (Discrete c) Int where
20+ mzeroL = Discrete 0
21+ maddL (Discrete a) (Discrete b) = Discrete (a + b)
22+ msubL (Discrete a) (Discrete b) = Discrete (a - b)
23+ mmulL a (Discrete b) = Discrete (a * b)
24+
25+instance rightModuleDiscrete :: RightModule (Discrete c) Int where
26+ mzeroR = Discrete 0
27+ maddR (Discrete a) (Discrete b) = Discrete (a + b)
28+ msubR (Discrete a) (Discrete b) = Discrete (a - b)
29+ mmulR (Discrete a) b = Discrete (a * b)
2430
2531showDiscrete :: ∀ c. (Currency c) => Discrete c -> String
2632showDiscrete (Discrete n) = showDiscrete' n (decimals (CProxy :: CProxy c))