build checks.x86_64-linux.mutation-really-safe-money

Reproduce this run
  1. 147.97 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  2. 147.97 s [really-safe-money-gen]
  3. 147.97 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  4. 147.97 s [really-safe-money-gen] --
  5. 147.97 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26 #1
  6. 147.97 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  7. 147.97 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8. 147.97 s [really-safe-money-gen] -- Nothing
  9. 147.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  10. 147.97 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11. 147.97 s [really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  12. 147.97 s [really-safe-money-gen]
  13. 147.97 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  14. 147.97 s [really-safe-money-gen] --
  15. 147.97 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28 #2
  16. 147.97 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  17. 147.97 s [really-safe-money-gen]
  18. 147.97 s [really-safe-money-gen] -- | One-to-one conversion rate
  19. 147.97 s [really-safe-money-gen] oneToOne :: ConversionRate
  20. 147.97 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  21. 147.97 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  22. 147.97 s [really-safe-money-gen]
  23. 147.97 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  24. 147.97 s [really-safe-money-gen] --
  25. 147.97 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26 #1
  26. 147.97 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  27. 147.97 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  28. 147.97 s [really-safe-money-gen] -- Nothing
  29. 147.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  30. 147.97 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  31. 147.97 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  32. 147.97 s [really-safe-money-gen]
  33. 147.97 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  34. 147.98 s [really-safe-money-gen] --
  35. 147.98 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26 #2
  36. 147.98 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  37. 147.98 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  38. 147.98 s [really-safe-money-gen] -- Nothing
  39. 147.98 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  40. 147.98 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  41. 147.98 s [really-safe-money-gen] +fromRational r = if r > 0 then Nothing else fromRatio (realToFrac r)
  42. 147.98 s [really-safe-money-gen]
  43. 147.98 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  44. 147.98 s [really-safe-money-gen] --
  45. 147.98 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26 #3
  46. 147.98 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  47. 147.98 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  48. 147.98 s [really-safe-money-gen] -- Nothing
  49. 147.98 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  50. 147.98 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  51. 147.98 s [really-safe-money-gen] +fromRational r = if r >= 0 then Nothing else fromRatio (realToFrac r)
  52. 147.98 s [really-safe-money-gen]
  53. 147.98 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  54. 147.98 s [really-safe-money-gen] --
  55. 147.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26 #2
  56. 147.98 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  57. 147.98 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  58. 147.98 s [really-safe-money-gen] -- Nothing
  59. 147.98 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  60. 147.98 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  61. 147.98 s [really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  62. 147.98 s [really-safe-money-gen]
  63. 147.98 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  64. 147.98 s [really-safe-money-gen] --
  65. 147.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26 #1
  66. 147.98 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  67. 147.98 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  68. 147.98 s [really-safe-money-gen] -- Nothing
  69. 147.98 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  70. 147.98 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  71. 147.98 s [really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  72. 147.98 s [really-safe-money-gen]
  73. 147.98 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  74. 147.98 s [really-safe-money-gen] --
  75. 147.98 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26 #1
  76. 147.98 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  77. 147.98 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  78. 147.98 s [really-safe-money-gen] -- Nothing
  79. 147.98 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  80. 147.98 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  81. 147.98 s [really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  82. 147.98 s [really-safe-money-gen]
  83. 147.98 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  84. 147.98 s [really-safe-money-gen] --
  85. 147.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57 #1
  86. 147.98 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  87. 147.98 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  88. 147.98 s [really-safe-money-gen] mconcat
  89. 147.98 s [really-safe-money-gen] [ genericValidate cr,
  90. 147.98 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  91. 147.98 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
  92. 147.98 s [really-safe-money-gen] ]
  93. 147.98 s [really-safe-money-gen]
  94. 147.98 s [really-safe-money-gen] instance NFData ConversionRate
  95. 147.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57 #1
  96. 147.98 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  97. 147.98 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  98. 147.98 s [really-safe-money-gen] mconcat
  99. 147.98 s [really-safe-money-gen] [ genericValidate cr,
  100. 147.98 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  101. 147.98 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  102. 147.98 s [really-safe-money-gen] ]
  103. 147.98 s [really-safe-money-gen]
  104. 147.98 s [really-safe-money-gen] instance NFData ConversionRate
  105. 147.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57 #2
  106. 147.98 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  107. 147.98 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  108. 147.98 s [really-safe-money-gen] mconcat
  109. 147.98 s [really-safe-money-gen] [ genericValidate cr,
  110. 147.98 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  111. 147.98 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  112. 147.98 s [really-safe-money-gen] ]
  113. 147.98 s [really-safe-money-gen]
  114. 147.98 s [really-safe-money-gen] instance NFData ConversionRate
  115. 147.98 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57 #1
  116. 147.98 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  117. 147.98 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  118. 147.98 s [really-safe-money-gen] mconcat
  119. 147.98 s [really-safe-money-gen] [ genericValidate cr,
  120. 147.98 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  121. 149.60 s [really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
  122. 149.69 s [really-safe-money-gen] ]
  123. 149.69 s [really-safe-money-gen]
  124. 149.69 s [really-safe-money-gen] instance NFData ConversionRate
  125. 149.69 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24 #1
  126. 149.69 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  127. 149.69 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  128. 149.70 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  129. 149.70 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  130. 149.70 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  131. 149.70 s [really-safe-money-gen] + cr + fromIntegral qf2 / fromIntegral qf1
  132. 149.70 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8 #1
  133. 149.70 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  134. 149.70 s [really-safe-money-gen] instance Validity ConversionRate where
  135. 149.70 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  136. 149.70 s [really-safe-money-gen] mconcat
  137. 149.70 s [really-safe-money-gen] - [ genericValidate cr,
  138. 149.70 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  139. 149.70 s [really-safe-money-gen] ]
  140. 149.70 s [really-safe-money-gen]
  141. 149.70 s [really-safe-money-gen] instance NFData ConversionRate
  142. 149.70 s [really-safe-money-gen]
  143. 149.70 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8 #2
  144. 149.70 s [really-safe-money-gen] @@ -34,9 +34,8 @@
  145. 149.70 s [really-safe-money-gen] instance Validity ConversionRate where
  146. 149.70 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  147. 149.70 s [really-safe-money-gen] mconcat
  148. 149.70 s [really-safe-money-gen] - [ genericValidate cr,
  149. 149.70 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  150. 149.70 s [really-safe-money-gen] ]
  151. 149.70 s [really-safe-money-gen]
  152. 149.70 s [really-safe-money-gen] instance NFData ConversionRate
  153. 149.70 s [really-safe-money-gen]
  154. 149.70 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115 #1
  155. 149.70 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  156. 149.70 s [really-safe-money-gen]
  157. 149.70 s [really-safe-money-gen] -- | See 'Account.distribute'
  158. 149.70 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  159. 149.70 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  160. 149.70 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  161. 149.70 s [really-safe-money-gen] DistributedZero -> DistributedZero
  162. 149.70 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  163. 149.70 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  164. 149.70 s [really-safe-money-gen]
  165. 149.70 s [really-safe-money-gen] -- | The result of 'distribute'
  166. 149.70 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  167. 149.70 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115 #2
  168. 149.70 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  169. 149.70 s [really-safe-money-gen]
  170. 149.70 s [really-safe-money-gen] -- | See 'Account.distribute'
  171. 149.70 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  172. 149.70 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  173. 149.70 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  174. 149.70 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  175. 149.70 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  176. 149.70 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  177. 149.70 s [really-safe-money-gen]
  178. 149.70 s [really-safe-money-gen] -- | The result of 'distribute'
  179. 149.70 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  180. 149.70 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115 #4
  181. 149.70 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  182. 149.70 s [really-safe-money-gen]
  183. 149.70 s [really-safe-money-gen] -- | See 'Account.distribute'
  184. 149.70 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  185. 149.70 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  186. 149.70 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  187. 149.70 s [really-safe-money-gen] DistributedZero -> DistributedZero
  188. 149.70 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  189. 149.70 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  190. 149.70 s [really-safe-money-gen]
  191. 149.70 s [really-safe-money-gen] -- | The result of 'distribute'
  192. 149.70 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  193. 149.70 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115 #3
  194. 149.70 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  195. 149.70 s [really-safe-money-gen]
  196. 149.71 s [really-safe-money-gen] -- | See 'Account.distribute'
  197. 149.71 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  198. 149.71 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  199. 149.71 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  200. 149.71 s [really-safe-money-gen] DistributedZero -> DistributedZero
  201. 149.71 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  202. 149.71 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  203. 149.71 s [really-safe-money-gen]
  204. 149.71 s [really-safe-money-gen] -- | The result of 'distribute'
  205. 149.71 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  206. 149.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28 #1
  207. 149.71 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  208. 149.71 s [really-safe-money-gen] fromDecimalLiteral dl = do
  209. 149.71 s [really-safe-money-gen] irat <-
  210. 149.71 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  211. 149.71 s [really-safe-money-gen] - in if numerator r == 0
  212. 149.71 s [really-safe-money-gen] + in if numerator r == 1
  213. 149.71 s [really-safe-money-gen] then Nothing
  214. 149.71 s [really-safe-money-gen] else pure r
  215. 149.71 s [really-safe-money-gen]
  216. 149.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28 #1
  217. 149.71 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  218. 149.71 s [really-safe-money-gen] fromDecimalLiteral dl = do
  219. 149.71 s [really-safe-money-gen] irat <-
  220. 149.71 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  221. 149.71 s [really-safe-money-gen] - in if numerator r == 0
  222. 149.71 s [really-safe-money-gen] + in if True
  223. 149.71 s [really-safe-money-gen] then Nothing
  224. 149.71 s [really-safe-money-gen] else pure r
  225. 149.71 s [really-safe-money-gen]
  226. 149.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28 #2
  227. 149.71 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  228. 149.71 s [really-safe-money-gen] fromDecimalLiteral dl = do
  229. 149.71 s [really-safe-money-gen] irat <-
  230. 149.71 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  231. 149.71 s [really-safe-money-gen] - in if numerator r == 0
  232. 149.71 s [really-safe-money-gen] + in if False
  233. 149.71 s [really-safe-money-gen] then Nothing
  234. 149.71 s [really-safe-money-gen] else pure r
  235. 149.71 s [really-safe-money-gen]
  236. 149.71 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28 #1
  237. 149.71 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  238. 149.71 s [really-safe-money-gen] fromDecimalLiteral dl = do
  239. 149.71 s [really-safe-money-gen] irat <-
  240. 149.71 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  241. 149.71 s [really-safe-money-gen] - in if numerator r == 0
  242. 149.71 s [really-safe-money-gen] + in if not (numerator r == 0)
  243. 149.71 s [really-safe-money-gen] then Nothing
  244. 149.71 s [really-safe-money-gen] else pure r
  245. 149.71 s [really-safe-money-gen]
  246. 149.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14 #1
  247. 149.71 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  248. 149.71 s [really-safe-money-gen] else pure r
  249. 149.71 s [really-safe-money-gen]
  250. 149.71 s [really-safe-money-gen] rat <-
  251. 149.71 s [really-safe-money-gen] - let r = 1 / irat
  252. 149.71 s [really-safe-money-gen] + let r = 0 / irat
  253. 149.71 s [really-safe-money-gen] in if r < 0
  254. 149.71 s [really-safe-money-gen] then Nothing
  255. 149.71 s [really-safe-money-gen] else Just r
  256. 149.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14 #2
  257. 149.71 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  258. 149.71 s [really-safe-money-gen] else pure r
  259. 149.71 s [really-safe-money-gen]
  260. 149.71 s [really-safe-money-gen] rat <-
  261. 149.71 s [really-safe-money-gen] - let r = 1 / irat
  262. 149.71 s [really-safe-money-gen] + let r = -1 / irat
  263. 149.71 s [really-safe-money-gen] in if r < 0
  264. 149.71 s [really-safe-money-gen] then Nothing
  265. 149.71 s [really-safe-money-gen] else Just r
  266. 149.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17 #1
  267. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  268. 149.71 s [really-safe-money-gen]
  269. 149.71 s [really-safe-money-gen] rat <-
  270. 149.71 s [really-safe-money-gen] let r = 1 / irat
  271. 149.71 s [really-safe-money-gen] - in if r < 0
  272. 149.71 s [really-safe-money-gen] + in if r < 1
  273. 149.71 s [really-safe-money-gen] then Nothing
  274. 149.71 s [really-safe-money-gen] else Just r
  275. 149.71 s [really-safe-money-gen]
  276. 149.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17 #1
  277. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  278. 149.71 s [really-safe-money-gen]
  279. 149.71 s [really-safe-money-gen] rat <-
  280. 149.71 s [really-safe-money-gen] let r = 1 / irat
  281. 149.71 s [really-safe-money-gen] - in if r < 0
  282. 149.71 s [really-safe-money-gen] + in if r <= 0
  283. 149.71 s [really-safe-money-gen] then Nothing
  284. 149.71 s [really-safe-money-gen] else Just r
  285. 149.71 s [really-safe-money-gen]
  286. 149.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17 #2
  287. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  288. 149.71 s [really-safe-money-gen]
  289. 149.71 s [really-safe-money-gen] rat <-
  290. 149.71 s [really-safe-money-gen] let r = 1 / irat
  291. 149.71 s [really-safe-money-gen] - in if r < 0
  292. 149.71 s [really-safe-money-gen] + in if r > 0
  293. 149.71 s [really-safe-money-gen] then Nothing
  294. 149.71 s [really-safe-money-gen] else Just r
  295. 149.71 s [really-safe-money-gen]
  296. 149.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17 #3
  297. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  298. 149.71 s [really-safe-money-gen]
  299. 149.71 s [really-safe-money-gen] rat <-
  300. 149.71 s [really-safe-money-gen] let r = 1 / irat
  301. 149.71 s [really-safe-money-gen] - in if r < 0
  302. 149.71 s [really-safe-money-gen] + in if r >= 0
  303. 149.71 s [really-safe-money-gen] then Nothing
  304. 149.71 s [really-safe-money-gen] else Just r
  305. 149.71 s [really-safe-money-gen]
  306. 149.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17 #1
  307. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  308. 149.71 s [really-safe-money-gen]
  309. 149.71 s [really-safe-money-gen] rat <-
  310. 149.71 s [really-safe-money-gen] let r = 1 / irat
  311. 149.71 s [really-safe-money-gen] - in if r < 0
  312. 149.71 s [really-safe-money-gen] + in if True
  313. 149.71 s [really-safe-money-gen] then Nothing
  314. 149.71 s [really-safe-money-gen] else Just r
  315. 149.71 s [really-safe-money-gen]
  316. 149.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17 #2
  317. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  318. 149.71 s [really-safe-money-gen]
  319. 149.71 s [really-safe-money-gen] rat <-
  320. 149.71 s [really-safe-money-gen] let r = 1 / irat
  321. 149.71 s [really-safe-money-gen] - in if r < 0
  322. 149.71 s [really-safe-money-gen] + in if False
  323. 149.71 s [really-safe-money-gen] then Nothing
  324. 149.71 s [really-safe-money-gen] else Just r
  325. 149.71 s [really-safe-money-gen]
  326. 149.71 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17 #1
  327. 149.71 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  328. 149.71 s [really-safe-money-gen]
  329. 149.71 s [really-safe-money-gen] rat <-
  330. 149.71 s [really-safe-money-gen] let r = 1 / irat
  331. 149.71 s [really-safe-money-gen] - in if r < 0
  332. 149.71 s [really-safe-money-gen] + in if not (r < 0)
  333. 149.71 s [really-safe-money-gen] then Nothing
  334. 149.71 s [really-safe-money-gen] else Just r
  335. 149.71 s [really-safe-money-gen]
  336. 151.65 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22 #1
  337. 151.65 s [really-safe-money-gen] @@ -92,7 +92,7 @@
  338. 151.65 s [really-safe-money-gen] let r = 1 / irat
  339. 151.65 s [really-safe-money-gen] in if r < 0
  340. 151.65 s [really-safe-money-gen] then Nothing
  341. 151.65 s [really-safe-money-gen] - else Just r
  342. 151.65 s [really-safe-money-gen] + else Nothing
  343. 151.65 s [really-safe-money-gen]
  344. 151.65 s [really-safe-money-gen] fac <-
  345. 151.65 s [really-safe-money-gen] if denominator rat == 1
  346. 151.65 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28 #1
  347. 151.65 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  348. 151.65 s [really-safe-money-gen] else Just r
  349. 151.65 s [really-safe-money-gen]
  350. 151.66 s [really-safe-money-gen] fac <-
  351. 151.66 s [really-safe-money-gen] - if denominator rat == 1
  352. 151.66 s [really-safe-money-gen] + if denominator rat == 0
  353. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  354. 151.66 s [really-safe-money-gen] else Nothing
  355. 151.66 s [really-safe-money-gen]
  356. 151.66 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28 #2
  357. 151.66 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  358. 151.66 s [really-safe-money-gen] else Just r
  359. 151.66 s [really-safe-money-gen]
  360. 151.66 s [really-safe-money-gen] fac <-
  361. 151.66 s [really-safe-money-gen] - if denominator rat == 1
  362. 151.66 s [really-safe-money-gen] + if denominator rat == -1
  363. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  364. 151.66 s [really-safe-money-gen] else Nothing
  365. 151.66 s [really-safe-money-gen]
  366. 151.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28 #1
  367. 151.66 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  368. 151.66 s [really-safe-money-gen] else Just r
  369. 151.66 s [really-safe-money-gen]
  370. 151.66 s [really-safe-money-gen] fac <-
  371. 151.66 s [really-safe-money-gen] - if denominator rat == 1
  372. 151.66 s [really-safe-money-gen] + if True
  373. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  374. 151.66 s [really-safe-money-gen] else Nothing
  375. 151.66 s [really-safe-money-gen]
  376. 151.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28 #2
  377. 151.66 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  378. 151.66 s [really-safe-money-gen] else Just r
  379. 151.66 s [really-safe-money-gen]
  380. 151.66 s [really-safe-money-gen] fac <-
  381. 151.66 s [really-safe-money-gen] - if denominator rat == 1
  382. 151.66 s [really-safe-money-gen] + if False
  383. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  384. 151.66 s [really-safe-money-gen] else Nothing
  385. 151.66 s [really-safe-money-gen]
  386. 151.66 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28 #1
  387. 151.66 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  388. 151.66 s [really-safe-money-gen] else Just r
  389. 151.66 s [really-safe-money-gen]
  390. 151.66 s [really-safe-money-gen] fac <-
  391. 151.66 s [really-safe-money-gen] - if denominator rat == 1
  392. 151.66 s [really-safe-money-gen] + if not (denominator rat == 1)
  393. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  394. 151.66 s [really-safe-money-gen] else Nothing
  395. 151.66 s [really-safe-money-gen]
  396. 151.66 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32 #1
  397. 151.66 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  398. 151.66 s [really-safe-money-gen]
  399. 151.66 s [really-safe-money-gen] fac <-
  400. 151.66 s [really-safe-money-gen] if denominator rat == 1
  401. 151.66 s [really-safe-money-gen] - then Just (numerator rat)
  402. 151.66 s [really-safe-money-gen] + then Nothing
  403. 151.66 s [really-safe-money-gen] else Nothing
  404. 151.66 s [really-safe-money-gen]
  405. 151.66 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  406. 151.66 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46 #1
  407. 151.66 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  408. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  409. 151.66 s [really-safe-money-gen] else Nothing
  410. 151.66 s [really-safe-money-gen]
  411. 151.66 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  412. 151.66 s [really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
  413. 151.66 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  414. 151.66 s [really-safe-money-gen] else Nothing
  415. 151.66 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46 #2
  416. 151.66 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  417. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  418. 151.66 s [really-safe-money-gen] else Nothing
  419. 151.66 s [really-safe-money-gen]
  420. 151.66 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  421. 151.66 s [really-safe-money-gen] + if fac > fromIntegral (maxBound :: Word32)
  422. 151.66 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  423. 151.66 s [really-safe-money-gen] else Nothing
  424. 151.66 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46 #3
  425. 151.66 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  426. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  427. 151.66 s [really-safe-money-gen] else Nothing
  428. 151.66 s [really-safe-money-gen]
  429. 151.66 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  430. 151.66 s [really-safe-money-gen] + if fac >= fromIntegral (maxBound :: Word32)
  431. 151.66 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  432. 151.66 s [really-safe-money-gen] else Nothing
  433. 151.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46 #2
  434. 151.66 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  435. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  436. 151.66 s [really-safe-money-gen] else Nothing
  437. 151.66 s [really-safe-money-gen]
  438. 151.66 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  439. 151.66 s [really-safe-money-gen] + if False
  440. 151.66 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  441. 151.66 s [really-safe-money-gen] else Nothing
  442. 151.66 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46 #1
  443. 151.66 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  444. 151.66 s [really-safe-money-gen] then Just (numerator rat)
  445. 151.66 s [really-safe-money-gen] else Nothing
  446. 151.66 s [really-safe-money-gen]
  447. 151.66 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  448. 151.66 s [really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
  449. 151.66 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  450. 151.66 s [really-safe-money-gen] else Nothing
  451. 151.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46 #1
  452. 151.67 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  453. 151.67 s [really-safe-money-gen] then Just (numerator rat)
  454. 151.67 s [really-safe-money-gen] else Nothing
  455. 151.67 s [really-safe-money-gen]
  456. 151.67 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  457. 151.67 s [really-safe-money-gen] + if True
  458. 151.67 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  459. 151.67 s [really-safe-money-gen] else Nothing
  460. 151.67 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54 #1
  461. 151.67 s [really-safe-money-gen] @@ -100,5 +100,5 @@
  462. 151.67 s [really-safe-money-gen] else Nothing
  463. 151.67 s [really-safe-money-gen]
  464. 151.67 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  465. 151.67 s [really-safe-money-gen] - then Just (QuantisationFactor (fromIntegral fac))
  466. 151.67 s [really-safe-money-gen] + then Nothing
  467. 151.67 s [really-safe-money-gen] else Nothing
  468. 151.67 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68 #1
  469. 151.67 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  470. 151.67 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  471. 151.67 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  472. 151.67 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  473. 151.67 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  474. 151.67 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  475. 151.67 s [really-safe-money-gen]
  476. 151.67 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  477. 151.67 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  478. 151.67 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68 #2
  479. 151.67 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  480. 151.67 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  481. 151.67 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  482. 151.67 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  483. 151.67 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  484. 151.67 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  485. 151.67 s [really-safe-money-gen]
  486. 151.67 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  487. 151.67 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  488. 151.67 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63 #1
  489. 151.67 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  490. 151.67 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  491. 151.67 s [really-safe-money-gen] mconcat
  492. 151.67 s [really-safe-money-gen] [ genericValidate qf,
  493. 151.67 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  494. 151.67 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
  495. 151.67 s [really-safe-money-gen] ]
  496. 151.67 s [really-safe-money-gen]
  497. 151.67 s [really-safe-money-gen] instance NFData QuantisationFactor
  498. 151.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63 #1
  499. 151.67 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  500. 151.67 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  501. 151.67 s [really-safe-money-gen] mconcat
  502. 151.67 s [really-safe-money-gen] [ genericValidate qf,
  503. 151.67 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  504. 151.67 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  505. 151.67 s [really-safe-money-gen] ]
  506. 151.67 s [really-safe-money-gen]
  507. 151.67 s [really-safe-money-gen] instance NFData QuantisationFactor
  508. 151.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63 #2
  509. 151.67 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  510. 151.67 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  511. 151.67 s [really-safe-money-gen] mconcat
  512. 151.67 s [really-safe-money-gen] [ genericValidate qf,
  513. 151.67 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  514. 151.67 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  515. 151.67 s [really-safe-money-gen] ]
  516. 151.67 s [really-safe-money-gen]
  517. 151.67 s [really-safe-money-gen] instance NFData QuantisationFactor
  518. 151.67 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63 #1
  519. 151.67 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  520. 151.67 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  521. 151.67 s [really-safe-money-gen] mconcat
  522. 152.90 s [really-safe-money-gen] [ genericValidate qf,
  523. 152.90 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  524. 152.90 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
  525. 152.90 s [really-safe-money-gen] ]
  526. 152.90 s [really-safe-money-gen]
  527. 152.90 s [really-safe-money-gen] instance NFData QuantisationFactor
  528. 152.90 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8 #1
  529. 152.90 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  530. 152.90 s [really-safe-money-gen] instance Validity QuantisationFactor where
  531. 152.90 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  532. 152.90 s [really-safe-money-gen] mconcat
  533. 152.90 s [really-safe-money-gen] - [ genericValidate qf,
  534. 152.90 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  535. 152.90 s [really-safe-money-gen] ]
  536. 152.90 s [really-safe-money-gen]
  537. 152.90 s [really-safe-money-gen] instance NFData QuantisationFactor
  538. 152.90 s [really-safe-money-gen]
  539. 152.90 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38 #1
  540. 152.90 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  541. 152.90 s [really-safe-money-gen] fmap
  542. 152.90 s [really-safe-money-gen] ( ( \theoreticalResult ->
  543. 152.90 s [really-safe-money-gen] let rounder :: Rational -> Integer
  544. 152.90 s [really-safe-money-gen] rounder = case r of
  545. 152.90 s [really-safe-money-gen] - RoundUp -> ceiling
  546. 152.90 s [really-safe-money-gen] RoundDown -> floor
  547. 152.90 s [really-safe-money-gen] RoundNearest -> round
  548. 152.91 s [really-safe-money-gen] roundedResult :: Integer
  549. 152.91 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  550. 152.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  551. 152.91 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8 #2
  552. 152.91 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  553. 152.91 s [really-safe-money-gen] instance Validity QuantisationFactor where
  554. 152.91 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  555. 152.91 s [really-safe-money-gen] mconcat
  556. 152.91 s [really-safe-money-gen] - [ genericValidate qf,
  557. 152.91 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  558. 152.91 s [really-safe-money-gen] ]
  559. 152.91 s [really-safe-money-gen]
  560. 152.91 s [really-safe-money-gen] instance NFData QuantisationFactor
  561. 152.91 s [really-safe-money-gen]
  562. 152.91 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38 #2
  563. 152.91 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  564. 152.91 s [really-safe-money-gen] fmap
  565. 152.91 s [really-safe-money-gen] ( ( \theoreticalResult ->
  566. 152.91 s [really-safe-money-gen] let rounder :: Rational -> Integer
  567. 152.91 s [really-safe-money-gen] rounder = case r of
  568. 152.91 s [really-safe-money-gen] RoundUp -> ceiling
  569. 152.91 s [really-safe-money-gen] - RoundDown -> floor
  570. 152.91 s [really-safe-money-gen] RoundNearest -> round
  571. 152.91 s [really-safe-money-gen] roundedResult :: Integer
  572. 152.91 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  573. 152.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  574. 152.91 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38 #3
  575. 152.91 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  576. 152.91 s [really-safe-money-gen] fmap
  577. 152.91 s [really-safe-money-gen] ( ( \theoreticalResult ->
  578. 152.91 s [really-safe-money-gen] let rounder :: Rational -> Integer
  579. 152.91 s [really-safe-money-gen] rounder = case r of
  580. 152.91 s [really-safe-money-gen] RoundUp -> ceiling
  581. 152.91 s [really-safe-money-gen] RoundDown -> floor
  582. 152.91 s [really-safe-money-gen] - RoundNearest -> round
  583. 152.91 s [really-safe-money-gen] roundedResult :: Integer
  584. 152.91 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  585. 152.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  586. 152.91 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32 #1
  587. 152.91 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  588. 152.91 s [really-safe-money-gen] RoundNearest -> round
  589. 152.91 s [really-safe-money-gen] roundedResult :: Integer
  590. 152.91 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  591. 152.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  592. 152.91 s [really-safe-money-gen] - LT -> RoundedDown
  593. 152.91 s [really-safe-money-gen] EQ -> DidNotRound
  594. 152.91 s [really-safe-money-gen] GT -> RoundedUp
  595. 152.91 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  596. 152.91 s [really-safe-money-gen] )
  597. 152.91 s [really-safe-money-gen] . Prelude.sum
  598. 152.91 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32 #2
  599. 152.91 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  600. 152.91 s [really-safe-money-gen] RoundNearest -> round
  601. 152.91 s [really-safe-money-gen] roundedResult :: Integer
  602. 152.91 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  603. 152.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  604. 152.91 s [really-safe-money-gen] LT -> RoundedDown
  605. 152.91 s [really-safe-money-gen] - EQ -> DidNotRound
  606. 152.91 s [really-safe-money-gen] GT -> RoundedUp
  607. 152.91 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  608. 152.91 s [really-safe-money-gen] )
  609. 152.91 s [really-safe-money-gen] . Prelude.sum
  610. 152.91 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32 #3
  611. 152.91 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  612. 152.91 s [really-safe-money-gen] RoundNearest -> round
  613. 152.91 s [really-safe-money-gen] roundedResult :: Integer
  614. 152.91 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  615. 152.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  616. 152.92 s [really-safe-money-gen] LT -> RoundedDown
  617. 152.92 s [really-safe-money-gen] EQ -> DidNotRound
  618. 152.92 s [really-safe-money-gen] - GT -> RoundedUp
  619. 152.92 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  620. 152.92 s [really-safe-money-gen] )
  621. 152.92 s [really-safe-money-gen] . Prelude.sum
  622. 152.92 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51 #1
  623. 152.92 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  624. 152.92 s [really-safe-money-gen] ( \(currency, a) ->
  625. 152.92 s [really-safe-money-gen] ( \(cr, qf2) ->
  626. 152.92 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  627. 152.92 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  628. 152.92 s [really-safe-money-gen] - * toInteger (numerator factor)
  629. 152.92 s [really-safe-money-gen] + + toInteger (numerator factor)
  630. 152.92 s [really-safe-money-gen] % toInteger (denominator factor)
  631. 152.92 s [really-safe-money-gen] )
  632. 152.92 s [really-safe-money-gen] <$> func currency
  633. 152.92 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51 #2
  634. 152.92 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  635. 152.92 s [really-safe-money-gen] ( \(currency, a) ->
  636. 152.92 s [really-safe-money-gen] ( \(cr, qf2) ->
  637. 152.92 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  638. 152.92 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  639. 152.92 s [really-safe-money-gen] - * toInteger (numerator factor)
  640. 152.92 s [really-safe-money-gen] + - toInteger (numerator factor)
  641. 152.92 s [really-safe-money-gen] % toInteger (denominator factor)
  642. 152.92 s [really-safe-money-gen] )
  643. 152.92 s [really-safe-money-gen] <$> func currency
  644. 152.92 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51 #1
  645. 152.92 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  646. 152.92 s [really-safe-money-gen]
  647. 152.92 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  648. 152.92 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  649. 152.92 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  650. 152.92 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  651. 152.92 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  652. 152.92 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  653. 152.92 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  654. 152.92 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51 #1
  655. 152.92 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  656. 152.92 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  657. 152.92 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  658. 152.92 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  659. 152.92 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  660. 152.92 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  661. 152.92 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  662. 152.92 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  663. 152.92 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  664. 152.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29 #1
  665. 152.92 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  666. 152.92 s [really-safe-money-gen] Just a -> do
  667. 152.92 s [really-safe-money-gen] r <- Account.subtract a account
  668. 152.92 s [really-safe-money-gen] Just $
  669. 152.92 s [really-safe-money-gen] - if r == Account.zero
  670. 152.92 s [really-safe-money-gen] + if True
  671. 152.92 s [really-safe-money-gen] then M.delete currency m
  672. 152.92 s [really-safe-money-gen] else M.insert currency r m
  673. 152.92 s [really-safe-money-gen]
  674. 152.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29 #2
  675. 152.92 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  676. 152.92 s [really-safe-money-gen] Just a -> do
  677. 152.92 s [really-safe-money-gen] r <- Account.subtract a account
  678. 152.92 s [really-safe-money-gen] Just $
  679. 152.92 s [really-safe-money-gen] - if r == Account.zero
  680. 152.92 s [really-safe-money-gen] + if False
  681. 152.92 s [really-safe-money-gen] then M.delete currency m
  682. 152.92 s [really-safe-money-gen] else M.insert currency r m
  683. 152.92 s [really-safe-money-gen]
  684. 152.92 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29 #1
  685. 152.92 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  686. 152.92 s [really-safe-money-gen] Just a -> do
  687. 152.92 s [really-safe-money-gen] r <- Account.subtract a account
  688. 152.92 s [really-safe-money-gen] Just $
  689. 152.92 s [really-safe-money-gen] - if r == Account.zero
  690. 152.92 s [really-safe-money-gen] + if not (r == Account.zero)
  691. 152.92 s [really-safe-money-gen] then M.delete currency m
  692. 152.92 s [really-safe-money-gen] else M.insert currency r m
  693. 152.92 s [really-safe-money-gen]
  694. 152.92 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37 #1
  695. 152.92 s [really-safe-money-gen] @@ -126,14 +126,13 @@
  696. 152.92 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  697. 152.92 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  698. 152.92 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  699. 152.92 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  700. 156.94 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
  701. 156.94 s [really-safe-money-gen] Just a -> do
  702. 157.01 s [really-safe-money-gen] r <- Account.subtract a account
  703. 157.01 s [really-safe-money-gen] Just $
  704. 157.01 s [really-safe-money-gen] if r == Account.zero
  705. 157.01 s [really-safe-money-gen] then M.delete currency m
  706. 157.01 s [really-safe-money-gen] else M.insert currency r m
  707. 157.01 s [really-safe-money-gen]
  708. 157.01 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  709. 157.01 s [really-safe-money-gen] --
  710. 157.01 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37 #2
  711. 157.01 s [really-safe-money-gen] @@ -126,14 +126,8 @@
  712. 157.01 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  713. 157.01 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  714. 157.02 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  715. 157.02 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  716. 157.02 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  717. 157.02 s [really-safe-money-gen] - Just a -> do
  718. 157.02 s [really-safe-money-gen] - r <- Account.subtract a account
  719. 157.02 s [really-safe-money-gen] - Just $
  720. 157.02 s [really-safe-money-gen] - if r == Account.zero
  721. 157.02 s [really-safe-money-gen] - then M.delete currency m
  722. 157.02 s [really-safe-money-gen] - else M.insert currency r m
  723. 157.02 s [really-safe-money-gen]
  724. 157.02 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  725. 157.02 s [really-safe-money-gen] --
  726. 157.02 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46 #1
  727. 157.02 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  728. 157.02 s [really-safe-money-gen]
  729. 157.02 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  730. 157.02 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  731. 157.02 s [really-safe-money-gen] -addAccount m _ (Positive (Amount 0)) = Just m
  732. 157.02 s [really-safe-money-gen] +addAccount m _ (Positive (Amount 0)) = Nothing
  733. 157.02 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  734. 157.02 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  735. 157.02 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  736. 157.02 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46 #1
  737. 157.02 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  738. 157.02 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  739. 157.02 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  740. 157.02 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  741. 157.02 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  742. 157.02 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  743. 157.02 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  744. 157.02 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  745. 157.02 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  746. 157.02 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29 #1
  747. 157.02 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  748. 157.02 s [really-safe-money-gen] Just a -> do
  749. 157.02 s [really-safe-money-gen] r <- Account.add a account
  750. 157.02 s [really-safe-money-gen] Just $
  751. 157.02 s [really-safe-money-gen] - if r == Account.zero
  752. 157.02 s [really-safe-money-gen] + if True
  753. 157.02 s [really-safe-money-gen] then M.delete currency m
  754. 157.02 s [really-safe-money-gen] else M.insert currency r m
  755. 157.02 s [really-safe-money-gen]
  756. 157.02 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29 #1
  757. 157.02 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  758. 157.02 s [really-safe-money-gen] Just a -> do
  759. 157.02 s [really-safe-money-gen] r <- Account.add a account
  760. 157.02 s [really-safe-money-gen] Just $
  761. 157.02 s [really-safe-money-gen] - if r == Account.zero
  762. 157.02 s [really-safe-money-gen] + if not (r == Account.zero)
  763. 157.02 s [really-safe-money-gen] then M.delete currency m
  764. 157.02 s [really-safe-money-gen] else M.insert currency r m
  765. 157.02 s [really-safe-money-gen]
  766. 157.02 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29 #2
  767. 157.02 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  768. 157.02 s [really-safe-money-gen] Just a -> do
  769. 157.02 s [really-safe-money-gen] r <- Account.add a account
  770. 157.02 s [really-safe-money-gen] Just $
  771. 157.02 s [really-safe-money-gen] - if r == Account.zero
  772. 157.02 s [really-safe-money-gen] + if False
  773. 157.02 s [really-safe-money-gen] then M.delete currency m
  774. 157.02 s [really-safe-money-gen] else M.insert currency r m
  775. 157.02 s [really-safe-money-gen]
  776. 157.02 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91 #1
  777. 157.02 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  778. 157.02 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  779. 157.02 s [really-safe-money-gen] in if ceiled == floored
  780. 157.02 s [really-safe-money-gen] then
  781. 157.02 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  782. 157.02 s [really-safe-money-gen] + if True
  783. 157.02 s [really-safe-money-gen] then Nothing
  784. 157.02 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  785. 157.02 s [really-safe-money-gen] else Nothing
  786. 157.02 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37 #1
  787. 157.03 s [really-safe-money-gen] @@ -112,14 +112,13 @@
  788. 157.03 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  789. 157.03 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  790. 157.03 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  791. 157.03 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  792. 157.03 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
  793. 157.03 s [really-safe-money-gen] Just a -> do
  794. 157.03 s [really-safe-money-gen] r <- Account.add a account
  795. 157.03 s [really-safe-money-gen] Just $
  796. 157.03 s [really-safe-money-gen] if r == Account.zero
  797. 157.03 s [really-safe-money-gen] then M.delete currency m
  798. 157.03 s [really-safe-money-gen] else M.insert currency r m
  799. 157.03 s [really-safe-money-gen]
  800. 157.03 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  801. 157.03 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  802. 157.03 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37 #2
  803. 157.03 s [really-safe-money-gen] @@ -112,14 +112,8 @@
  804. 157.03 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  805. 157.03 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  806. 157.03 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  807. 157.03 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  808. 157.03 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  809. 157.03 s [really-safe-money-gen] - Just a -> do
  810. 157.03 s [really-safe-money-gen] - r <- Account.add a account
  811. 157.03 s [really-safe-money-gen] - Just $
  812. 157.03 s [really-safe-money-gen] - if r == Account.zero
  813. 157.03 s [really-safe-money-gen] - then M.delete currency m
  814. 157.03 s [really-safe-money-gen] - else M.insert currency r m
  815. 157.03 s [really-safe-money-gen]
  816. 157.03 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  817. 157.03 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  818. 157.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28 #1
  819. 157.03 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  820. 157.03 s [really-safe-money-gen]
  821. 157.03 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  822. 157.03 s [really-safe-money-gen] fromAccount currency amount =
  823. 157.03 s [really-safe-money-gen] - if amount == Account.zero
  824. 157.03 s [really-safe-money-gen] + if True
  825. 157.03 s [really-safe-money-gen] then zero
  826. 157.03 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  827. 157.03 s [really-safe-money-gen]
  828. 157.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28 #2
  829. 157.03 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  830. 157.03 s [really-safe-money-gen]
  831. 157.03 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  832. 157.03 s [really-safe-money-gen] fromAccount currency amount =
  833. 157.03 s [really-safe-money-gen] - if amount == Account.zero
  834. 157.03 s [really-safe-money-gen] + if False
  835. 157.03 s [really-safe-money-gen] then zero
  836. 157.03 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  837. 157.03 s [really-safe-money-gen]
  838. 157.03 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28 #1
  839. 157.03 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  840. 157.03 s [really-safe-money-gen]
  841. 157.03 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  842. 157.03 s [really-safe-money-gen] fromAccount currency amount =
  843. 157.03 s [really-safe-money-gen] - if amount == Account.zero
  844. 157.03 s [really-safe-money-gen] + if not (amount == Account.zero)
  845. 157.03 s [really-safe-money-gen] then zero
  846. 157.03 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  847. 157.03 s [really-safe-money-gen]
  848. 157.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30 #1
  849. 157.03 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  850. 157.03 s [really-safe-money-gen] [ genericValidate ma,
  851. 157.03 s [really-safe-money-gen] decorateMap m $ \_ a ->
  852. 157.03 s [really-safe-money-gen] declare "The account is not zero" $
  853. 157.03 s [really-safe-money-gen] - a /= Account.zero
  854. 157.03 s [really-safe-money-gen] + True
  855. 157.03 s [really-safe-money-gen] ]
  856. 157.03 s [really-safe-money-gen]
  857. 157.03 s [really-safe-money-gen] -- TODO no empty currencies
  858. 157.03 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30 #1
  859. 157.03 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  860. 157.03 s [really-safe-money-gen] [ genericValidate ma,
  861. 157.03 s [really-safe-money-gen] decorateMap m $ \_ a ->
  862. 157.03 s [really-safe-money-gen] declare "The account is not zero" $
  863. 157.03 s [really-safe-money-gen] - a /= Account.zero
  864. 157.03 s [really-safe-money-gen] + not (a /= Account.zero)
  865. 157.03 s [really-safe-money-gen] ]
  866. 157.03 s [really-safe-money-gen]
  867. 157.03 s [really-safe-money-gen] -- TODO no empty currencies
  868. 157.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30 #2
  869. 157.03 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  870. 157.03 s [really-safe-money-gen] [ genericValidate ma,
  871. 157.03 s [really-safe-money-gen] decorateMap m $ \_ a ->
  872. 157.03 s [really-safe-money-gen] declare "The account is not zero" $
  873. 157.03 s [really-safe-money-gen] - a /= Account.zero
  874. 157.03 s [really-safe-money-gen] + False
  875. 157.03 s [really-safe-money-gen] ]
  876. 157.03 s [really-safe-money-gen]
  877. 157.03 s [really-safe-money-gen] -- TODO no empty currencies
  878. 159.18 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8 #1
  879. 159.18 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  880. 159.18 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  881. 159.18 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  882. 159.18 s [really-safe-money-gen] mconcat
  883. 159.18 s [really-safe-money-gen] - [ genericValidate ma,
  884. 159.19 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  885. 159.19 s [really-safe-money-gen] - declare "The account is not zero" $
  886. 159.19 s [really-safe-money-gen] - a /= Account.zero
  887. 159.19 s [really-safe-money-gen] ]
  888. 159.19 s [really-safe-money-gen]
  889. 159.19 s [really-safe-money-gen] -- TODO no empty currencies
  890. 159.19 s [really-safe-money-gen]
  891. 159.19 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8 #2
  892. 159.19 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  893. 159.19 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  894. 159.19 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  895. 159.19 s [really-safe-money-gen] mconcat
  896. 159.19 s [really-safe-money-gen] - [ genericValidate ma,
  897. 159.19 s [really-safe-money-gen] decorateMap m $ \_ a ->
  898. 159.19 s [really-safe-money-gen] declare "The account is not zero" $
  899. 159.19 s [really-safe-money-gen] a /= Account.zero
  900. 159.19 s [really-safe-money-gen] ]
  901. 159.19 s [really-safe-money-gen]
  902. 159.19 s [really-safe-money-gen] -- TODO no empty currencies
  903. 159.19 s [really-safe-money-gen]
  904. 159.19 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38 #1
  905. 159.19 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  906. 159.19 s [really-safe-money-gen] fmap
  907. 159.19 s [really-safe-money-gen] ( ( \theoreticalResult ->
  908. 159.19 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  909. 159.19 s [really-safe-money-gen] rounder = case r of
  910. 159.19 s [really-safe-money-gen] - RoundUp -> ceiling
  911. 159.19 s [really-safe-money-gen] RoundDown -> floor
  912. 159.19 s [really-safe-money-gen] RoundNearest -> round
  913. 159.19 s [really-safe-money-gen] roundedResult :: Natural
  914. 159.19 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  915. 159.19 s [really-safe-money-gen] maxBoundN :: Natural
  916. 159.19 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38 #2
  917. 159.19 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  918. 159.19 s [really-safe-money-gen] fmap
  919. 159.19 s [really-safe-money-gen] ( ( \theoreticalResult ->
  920. 159.19 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  921. 159.19 s [really-safe-money-gen] rounder = case r of
  922. 159.19 s [really-safe-money-gen] RoundUp -> ceiling
  923. 159.19 s [really-safe-money-gen] - RoundDown -> floor
  924. 159.19 s [really-safe-money-gen] RoundNearest -> round
  925. 159.19 s [really-safe-money-gen] roundedResult :: Natural
  926. 159.19 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  927. 159.19 s [really-safe-money-gen] maxBoundN :: Natural
  928. 159.19 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38 #3
  929. 159.19 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  930. 159.19 s [really-safe-money-gen] fmap
  931. 159.19 s [really-safe-money-gen] ( ( \theoreticalResult ->
  932. 159.19 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  933. 159.19 s [really-safe-money-gen] rounder = case r of
  934. 159.19 s [really-safe-money-gen] RoundUp -> ceiling
  935. 159.19 s [really-safe-money-gen] RoundDown -> floor
  936. 159.19 s [really-safe-money-gen] - RoundNearest -> round
  937. 159.19 s [really-safe-money-gen] roundedResult :: Natural
  938. 159.19 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  939. 159.19 s [really-safe-money-gen] maxBoundN :: Natural
  940. 159.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45 #1
  941. 159.19 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  942. 159.19 s [really-safe-money-gen] maxBoundN :: Natural
  943. 159.19 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  944. 159.19 s [really-safe-money-gen] actualResult =
  945. 159.19 s [really-safe-money-gen] - if roundedResult > maxBoundN
  946. 159.19 s [really-safe-money-gen] + if roundedResult < maxBoundN
  947. 159.19 s [really-safe-money-gen] then Nothing
  948. 159.19 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  949. 159.19 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  950. 159.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45 #2
  951. 159.19 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  952. 159.19 s [really-safe-money-gen] maxBoundN :: Natural
  953. 159.19 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  954. 159.19 s [really-safe-money-gen] actualResult =
  955. 159.19 s [really-safe-money-gen] - if roundedResult > maxBoundN
  956. 159.19 s [really-safe-money-gen] + if roundedResult <= maxBoundN
  957. 159.19 s [really-safe-money-gen] then Nothing
  958. 159.19 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  959. 159.19 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  960. 159.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45 #3
  961. 159.19 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  962. 159.19 s [really-safe-money-gen] maxBoundN :: Natural
  963. 159.19 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  964. 159.19 s [really-safe-money-gen] actualResult =
  965. 159.19 s [really-safe-money-gen] - if roundedResult > maxBoundN
  966. 159.19 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  967. 159.19 s [really-safe-money-gen] then Nothing
  968. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  969. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  970. 159.20 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45 #1
  971. 159.20 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  972. 159.20 s [really-safe-money-gen] maxBoundN :: Natural
  973. 159.20 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  974. 159.20 s [really-safe-money-gen] actualResult =
  975. 159.20 s [really-safe-money-gen] - if roundedResult > maxBoundN
  976. 159.20 s [really-safe-money-gen] + if True
  977. 159.20 s [really-safe-money-gen] then Nothing
  978. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  979. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  980. 159.20 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45 #2
  981. 159.20 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  982. 159.20 s [really-safe-money-gen] maxBoundN :: Natural
  983. 159.20 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  984. 159.20 s [really-safe-money-gen] actualResult =
  985. 159.20 s [really-safe-money-gen] - if roundedResult > maxBoundN
  986. 159.20 s [really-safe-money-gen] + if False
  987. 159.20 s [really-safe-money-gen] then Nothing
  988. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  989. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  990. 159.20 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45 #1
  991. 159.20 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  992. 159.20 s [really-safe-money-gen] maxBoundN :: Natural
  993. 159.20 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  994. 159.20 s [really-safe-money-gen] actualResult =
  995. 159.20 s [really-safe-money-gen] - if roundedResult > maxBoundN
  996. 159.20 s [really-safe-money-gen] + if not (roundedResult > maxBoundN)
  997. 159.20 s [really-safe-money-gen] then Nothing
  998. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  999. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  1000. 159.20 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57 #1
  1001. 159.20 s [really-safe-money-gen] @@ -167,7 +167,7 @@
  1002. 159.20 s [really-safe-money-gen] actualResult =
  1003. 159.20 s [really-safe-money-gen] if roundedResult > maxBoundN
  1004. 159.20 s [really-safe-money-gen] then Nothing
  1005. 159.20 s [really-safe-money-gen] - else Just (fromIntegral roundedResult)
  1006. 159.20 s [really-safe-money-gen] + else Nothing
  1007. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  1008. 159.20 s [really-safe-money-gen] LT -> RoundedDown
  1009. 159.20 s [really-safe-money-gen] EQ -> DidNotRound
  1010. 159.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32 #2
  1011. 159.20 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  1012. 159.20 s [really-safe-money-gen] if roundedResult > maxBoundN
  1013. 159.20 s [really-safe-money-gen] then Nothing
  1014. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  1015. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  1016. 159.20 s [really-safe-money-gen] LT -> RoundedDown
  1017. 159.20 s [really-safe-money-gen] - EQ -> DidNotRound
  1018. 159.20 s [really-safe-money-gen] GT -> RoundedUp
  1019. 159.20 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  1020. 159.20 s [really-safe-money-gen] )
  1021. 159.20 s [really-safe-money-gen] . Prelude.sum
  1022. 159.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32 #1
  1023. 159.20 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  1024. 159.20 s [really-safe-money-gen] if roundedResult > maxBoundN
  1025. 159.20 s [really-safe-money-gen] then Nothing
  1026. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  1027. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  1028. 159.20 s [really-safe-money-gen] - LT -> RoundedDown
  1029. 159.20 s [really-safe-money-gen] EQ -> DidNotRound
  1030. 159.20 s [really-safe-money-gen] GT -> RoundedUp
  1031. 159.20 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  1032. 159.20 s [really-safe-money-gen] )
  1033. 159.20 s [really-safe-money-gen] . Prelude.sum
  1034. 159.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32 #3
  1035. 159.20 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  1036. 159.20 s [really-safe-money-gen] if roundedResult > maxBoundN
  1037. 159.20 s [really-safe-money-gen] then Nothing
  1038. 159.20 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  1039. 159.20 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  1040. 159.20 s [really-safe-money-gen] LT -> RoundedDown
  1041. 159.20 s [really-safe-money-gen] EQ -> DidNotRound
  1042. 159.20 s [really-safe-money-gen] - GT -> RoundedUp
  1043. 159.20 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  1044. 159.20 s [really-safe-money-gen] )
  1045. 159.20 s [really-safe-money-gen] . Prelude.sum
  1046. 159.20 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106 #1
  1047. 160.96 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  1048. 160.96 s [really-safe-money-gen] . traverse
  1049. 160.96 s [really-safe-money-gen] ( \(currency, a) ->
  1050. 160.96 s [really-safe-money-gen] ( \(cr, qf2) ->
  1051. 160.96 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  1052. 160.96 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) + ConversionRate.conversionFactor qf2 cr qf1
  1053. 160.96 s [really-safe-money-gen] )
  1054. 160.96 s [really-safe-money-gen] <$> func currency
  1055. 160.96 s [really-safe-money-gen] )
  1056. 160.96 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106 #2
  1057. 160.96 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  1058. 160.96 s [really-safe-money-gen] . traverse
  1059. 160.96 s [really-safe-money-gen] ( \(currency, a) ->
  1060. 160.96 s [really-safe-money-gen] ( \(cr, qf2) ->
  1061. 160.96 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  1062. 160.96 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) - ConversionRate.conversionFactor qf2 cr qf1
  1063. 160.96 s [really-safe-money-gen] )
  1064. 160.96 s [really-safe-money-gen] <$> func currency
  1065. 160.96 s [really-safe-money-gen] )
  1066. 160.96 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39 #1
  1067. 160.96 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  1068. 160.96 s [really-safe-money-gen]
  1069. 160.96 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  1070. 160.96 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1071. 160.96 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  1072. 160.96 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  1073. 160.96 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  1074. 160.96 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1075. 160.96 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  1076. 160.96 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28 #2
  1077. 160.96 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  1078. 160.96 s [really-safe-money-gen] Just a -> do
  1079. 160.96 s [really-safe-money-gen] r <- Amount.subtract a amount
  1080. 160.96 s [really-safe-money-gen] Just $
  1081. 160.96 s [really-safe-money-gen] - if r == Amount.zero
  1082. 160.96 s [really-safe-money-gen] + if False
  1083. 160.96 s [really-safe-money-gen] then M.delete currency m
  1084. 160.96 s [really-safe-money-gen] else M.insert currency r m
  1085. 160.96 s [really-safe-money-gen]
  1086. 160.96 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28 #1
  1087. 160.96 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  1088. 160.96 s [really-safe-money-gen] Just a -> do
  1089. 160.96 s [really-safe-money-gen] r <- Amount.subtract a amount
  1090. 160.96 s [really-safe-money-gen] Just $
  1091. 160.96 s [really-safe-money-gen] - if r == Amount.zero
  1092. 160.96 s [really-safe-money-gen] + if True
  1093. 160.96 s [really-safe-money-gen] then M.delete currency m
  1094. 160.96 s [really-safe-money-gen] else M.insert currency r m
  1095. 160.96 s [really-safe-money-gen]
  1096. 160.96 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37 #1
  1097. 160.96 s [really-safe-money-gen] @@ -111,14 +111,13 @@
  1098. 160.96 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1099. 160.96 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  1100. 160.96 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  1101. 160.97 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1102. 160.97 s [really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
  1103. 160.97 s [really-safe-money-gen] Just a -> do
  1104. 160.97 s [really-safe-money-gen] r <- Amount.subtract a amount
  1105. 160.97 s [really-safe-money-gen] Just $
  1106. 160.97 s [really-safe-money-gen] if r == Amount.zero
  1107. 160.97 s [really-safe-money-gen] then M.delete currency m
  1108. 160.97 s [really-safe-money-gen] else M.insert currency r m
  1109. 160.97 s [really-safe-money-gen]
  1110. 160.97 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  1111. 160.97 s [really-safe-money-gen] --
  1112. 160.97 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37 #2
  1113. 160.97 s [really-safe-money-gen] @@ -111,14 +111,8 @@
  1114. 160.97 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1115. 160.97 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  1116. 160.97 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  1117. 160.97 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1118. 160.97 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  1119. 160.97 s [really-safe-money-gen] - Just a -> do
  1120. 160.97 s [really-safe-money-gen] - r <- Amount.subtract a amount
  1121. 160.97 s [really-safe-money-gen] - Just $
  1122. 160.97 s [really-safe-money-gen] - if r == Amount.zero
  1123. 160.97 s [really-safe-money-gen] - then M.delete currency m
  1124. 160.97 s [really-safe-money-gen] - else M.insert currency r m
  1125. 160.97 s [really-safe-money-gen]
  1126. 160.97 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  1127. 160.97 s [really-safe-money-gen] --
  1128. 160.97 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34 #1
  1129. 160.97 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  1130. 160.97 s [really-safe-money-gen]
  1131. 160.97 s [really-safe-money-gen] -- | Add an 'Amount' to a 'MultiAmount'
  1132. 160.97 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1133. 160.97 s [really-safe-money-gen] -addAmount m _ (Amount 0) = Just m
  1134. 160.97 s [really-safe-money-gen] +addAmount m _ (Amount 0) = Nothing
  1135. 160.97 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  1136. 160.97 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1137. 160.97 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  1138. 160.97 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28 #1
  1139. 160.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  1140. 160.97 s [really-safe-money-gen] Just a -> do
  1141. 160.97 s [really-safe-money-gen] r <- Amount.subtract a amount
  1142. 160.97 s [really-safe-money-gen] Just $
  1143. 160.97 s [really-safe-money-gen] - if r == Amount.zero
  1144. 160.97 s [really-safe-money-gen] + if not (r == Amount.zero)
  1145. 160.97 s [really-safe-money-gen] then M.delete currency m
  1146. 160.97 s [really-safe-money-gen] else M.insert currency r m
  1147. 160.97 s [really-safe-money-gen]
  1148. 160.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28 #1
  1149. 160.97 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  1150. 160.97 s [really-safe-money-gen] Just a -> do
  1151. 160.97 s [really-safe-money-gen] r <- Amount.add a amount
  1152. 160.97 s [really-safe-money-gen] Just $
  1153. 160.97 s [really-safe-money-gen] - if r == Amount.zero
  1154. 160.97 s [really-safe-money-gen] + if True
  1155. 160.97 s [really-safe-money-gen] then M.delete currency m
  1156. 160.97 s [really-safe-money-gen] else M.insert currency r m
  1157. 160.97 s [really-safe-money-gen]
  1158. 160.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28 #2
  1159. 160.97 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  1160. 160.97 s [really-safe-money-gen] Just a -> do
  1161. 160.97 s [really-safe-money-gen] r <- Amount.add a amount
  1162. 160.97 s [really-safe-money-gen] Just $
  1163. 160.97 s [really-safe-money-gen] - if r == Amount.zero
  1164. 160.97 s [really-safe-money-gen] + if False
  1165. 160.97 s [really-safe-money-gen] then M.delete currency m
  1166. 160.97 s [really-safe-money-gen] else M.insert currency r m
  1167. 160.97 s [really-safe-money-gen]
  1168. 160.97 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28 #1
  1169. 160.97 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  1170. 160.97 s [really-safe-money-gen] Just a -> do
  1171. 160.97 s [really-safe-money-gen] r <- Amount.add a amount
  1172. 160.97 s [really-safe-money-gen] Just $
  1173. 160.97 s [really-safe-money-gen] - if r == Amount.zero
  1174. 160.97 s [really-safe-money-gen] + if not (r == Amount.zero)
  1175. 160.97 s [really-safe-money-gen] then M.delete currency m
  1176. 160.97 s [really-safe-money-gen] else M.insert currency r m
  1177. 160.97 s [really-safe-money-gen]
  1178. 160.97 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37 #1
  1179. 160.97 s [really-safe-money-gen] @@ -98,14 +98,13 @@
  1180. 160.97 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1181. 160.97 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  1182. 160.97 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  1183. 160.97 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1184. 160.97 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
  1185. 160.97 s [really-safe-money-gen] Just a -> do
  1186. 160.97 s [really-safe-money-gen] r <- Amount.add a amount
  1187. 160.97 s [really-safe-money-gen] Just $
  1188. 160.97 s [really-safe-money-gen] if r == Amount.zero
  1189. 160.97 s [really-safe-money-gen] then M.delete currency m
  1190. 160.97 s [really-safe-money-gen] else M.insert currency r m
  1191. 160.97 s [really-safe-money-gen]
  1192. 160.97 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  1193. 160.97 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1194. 160.98 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37 #2
  1195. 160.98 s [really-safe-money-gen] @@ -98,14 +98,8 @@
  1196. 160.98 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1197. 160.98 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  1198. 160.98 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  1199. 160.98 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1200. 160.98 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  1201. 160.98 s [really-safe-money-gen] - Just a -> do
  1202. 160.98 s [really-safe-money-gen] - r <- Amount.add a amount
  1203. 160.98 s [really-safe-money-gen] - Just $
  1204. 160.98 s [really-safe-money-gen] - if r == Amount.zero
  1205. 160.98 s [really-safe-money-gen] - then M.delete currency m
  1206. 160.98 s [really-safe-money-gen] - else M.insert currency r m
  1207. 160.98 s [really-safe-money-gen]
  1208. 160.98 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  1209. 160.98 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1210. 160.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27 #1
  1211. 160.98 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  1212. 160.98 s [really-safe-money-gen]
  1213. 160.98 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  1214. 160.98 s [really-safe-money-gen] fromAmount currency amount =
  1215. 160.98 s [really-safe-money-gen] - if amount == Amount.zero
  1216. 160.98 s [really-safe-money-gen] + if True
  1217. 160.98 s [really-safe-money-gen] then zero
  1218. 160.98 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  1219. 160.98 s [really-safe-money-gen]
  1220. 160.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27 #2
  1221. 160.98 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  1222. 160.98 s [really-safe-money-gen]
  1223. 160.98 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  1224. 160.98 s [really-safe-money-gen] fromAmount currency amount =
  1225. 160.98 s [really-safe-money-gen] - if amount == Amount.zero
  1226. 161.73 s [really-safe-money-gen] + if False
  1227. 161.73 s [really-safe-money-gen] then zero
  1228. 161.73 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  1229. 161.73 s [really-safe-money-gen]
  1230. 161.73 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27 #1
  1231. 161.73 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  1232. 161.73 s [really-safe-money-gen]
  1233. 161.73 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  1234. 161.74 s [really-safe-money-gen] fromAmount currency amount =
  1235. 161.74 s [really-safe-money-gen] - if amount == Amount.zero
  1236. 161.74 s [really-safe-money-gen] + if not (amount == Amount.zero)
  1237. 161.74 s [really-safe-money-gen] then zero
  1238. 161.74 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  1239. 161.74 s [really-safe-money-gen]
  1240. 161.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29 #1
  1241. 161.74 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  1242. 161.74 s [really-safe-money-gen] [ genericValidate ma,
  1243. 161.74 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1244. 161.74 s [really-safe-money-gen] declare "The amount is not zero" $
  1245. 161.74 s [really-safe-money-gen] - a /= Amount.zero
  1246. 161.74 s [really-safe-money-gen] + True
  1247. 161.74 s [really-safe-money-gen] ]
  1248. 161.74 s [really-safe-money-gen]
  1249. 161.74 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1250. 161.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29 #2
  1251. 161.74 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  1252. 161.74 s [really-safe-money-gen] [ genericValidate ma,
  1253. 161.74 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1254. 161.74 s [really-safe-money-gen] declare "The amount is not zero" $
  1255. 161.74 s [really-safe-money-gen] - a /= Amount.zero
  1256. 161.74 s [really-safe-money-gen] + False
  1257. 161.74 s [really-safe-money-gen] ]
  1258. 161.74 s [really-safe-money-gen]
  1259. 161.74 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1260. 161.74 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29 #1
  1261. 161.74 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  1262. 161.74 s [really-safe-money-gen] [ genericValidate ma,
  1263. 161.74 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1264. 161.74 s [really-safe-money-gen] declare "The amount is not zero" $
  1265. 161.74 s [really-safe-money-gen] - a /= Amount.zero
  1266. 161.74 s [really-safe-money-gen] + not (a /= Amount.zero)
  1267. 161.74 s [really-safe-money-gen] ]
  1268. 161.74 s [really-safe-money-gen]
  1269. 161.74 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1270. 161.74 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8 #1
  1271. 161.74 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  1272. 161.74 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  1273. 161.74 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  1274. 161.74 s [really-safe-money-gen] mconcat
  1275. 161.74 s [really-safe-money-gen] - [ genericValidate ma,
  1276. 161.74 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  1277. 161.74 s [really-safe-money-gen] - declare "The amount is not zero" $
  1278. 161.74 s [really-safe-money-gen] - a /= Amount.zero
  1279. 161.74 s [really-safe-money-gen] ]
  1280. 161.74 s [really-safe-money-gen]
  1281. 161.74 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1282. 161.74 s [really-safe-money-gen]
  1283. 161.74 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75 #1
  1284. 161.74 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  1285. 161.74 s [really-safe-money-gen] where
  1286. 161.74 s [really-safe-money-gen] f :: String -> Either String Amount
  1287. 161.74 s [really-safe-money-gen] f s = case readMaybe s of
  1288. 161.74 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1289. 161.74 s [really-safe-money-gen] Just i ->
  1290. 161.74 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1291. 161.74 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1292. 161.74 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75 #2
  1293. 161.74 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  1294. 161.74 s [really-safe-money-gen] where
  1295. 161.74 s [really-safe-money-gen] f :: String -> Either String Amount
  1296. 161.74 s [really-safe-money-gen] f s = case readMaybe s of
  1297. 161.74 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1298. 161.74 s [really-safe-money-gen] Just i ->
  1299. 161.74 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1300. 161.74 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1301. 161.74 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59 #2
  1302. 161.74 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  1303. 161.74 s [really-safe-money-gen] f s = case readMaybe s of
  1304. 161.74 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1305. 161.74 s [really-safe-money-gen] Just i ->
  1306. 161.74 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1307. 161.74 s [really-safe-money-gen] + if (i :: Integer) > toInteger (minBound :: Word64)
  1308. 161.74 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1309. 161.74 s [really-safe-money-gen] else
  1310. 161.74 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1311. 161.74 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59 #1
  1312. 161.74 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  1313. 161.74 s [really-safe-money-gen] f s = case readMaybe s of
  1314. 161.74 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1315. 161.74 s [really-safe-money-gen] Just i ->
  1316. 161.74 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1317. 161.74 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (minBound :: Word64)
  1318. 161.74 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1319. 161.74 s [really-safe-money-gen] else
  1320. 161.74 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1321. 161.74 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59 #3
  1322. 161.75 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  1323. 161.75 s [really-safe-money-gen] f s = case readMaybe s of
  1324. 161.75 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1325. 161.75 s [really-safe-money-gen] Just i ->
  1326. 161.75 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1327. 161.75 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (minBound :: Word64)
  1328. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1329. 161.75 s [really-safe-money-gen] else
  1330. 161.75 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1331. 161.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59 #1
  1332. 161.75 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  1333. 161.75 s [really-safe-money-gen] f s = case readMaybe s of
  1334. 161.75 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1335. 161.75 s [really-safe-money-gen] Just i ->
  1336. 161.75 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1337. 161.75 s [really-safe-money-gen] + if True
  1338. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1339. 161.75 s [really-safe-money-gen] else
  1340. 161.75 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1341. 161.75 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8 #2
  1342. 161.75 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  1343. 161.75 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  1344. 161.75 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  1345. 161.75 s [really-safe-money-gen] mconcat
  1346. 161.75 s [really-safe-money-gen] - [ genericValidate ma,
  1347. 161.75 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1348. 161.75 s [really-safe-money-gen] declare "The amount is not zero" $
  1349. 161.75 s [really-safe-money-gen] a /= Amount.zero
  1350. 161.75 s [really-safe-money-gen] ]
  1351. 161.75 s [really-safe-money-gen]
  1352. 161.75 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1353. 161.75 s [really-safe-money-gen]
  1354. 161.75 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59 #1
  1355. 161.75 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  1356. 161.75 s [really-safe-money-gen] f s = case readMaybe s of
  1357. 161.75 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1358. 161.75 s [really-safe-money-gen] Just i ->
  1359. 161.75 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1360. 161.75 s [really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  1361. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1362. 161.75 s [really-safe-money-gen] else
  1363. 161.75 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1364. 161.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59 #2
  1365. 161.75 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  1366. 161.75 s [really-safe-money-gen] f s = case readMaybe s of
  1367. 161.75 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1368. 161.75 s [really-safe-money-gen] Just i ->
  1369. 161.75 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1370. 161.75 s [really-safe-money-gen] + if False
  1371. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1372. 161.75 s [really-safe-money-gen] else
  1373. 161.75 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1374. 161.75 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84 #1
  1375. 161.75 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  1376. 161.75 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1377. 161.75 s [really-safe-money-gen] Just i ->
  1378. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1379. 161.75 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1380. 161.75 s [really-safe-money-gen] else
  1381. 161.75 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1382. 161.75 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1383. 161.75 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84 #2
  1384. 161.75 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  1385. 161.75 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1386. 161.75 s [really-safe-money-gen] Just i ->
  1387. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1388. 161.75 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1389. 161.75 s [really-safe-money-gen] else
  1390. 161.75 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1391. 161.75 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1392. 161.75 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63 #1
  1393. 161.75 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  1394. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1395. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1396. 161.75 s [really-safe-money-gen] else
  1397. 161.75 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1398. 161.75 s [really-safe-money-gen] + if (i :: Integer) < toInteger (maxBound :: Word64)
  1399. 161.75 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1400. 161.75 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1401. 161.75 s [really-safe-money-gen] g :: Amount -> String
  1402. 161.75 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63 #2
  1403. 161.75 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  1404. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1405. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1406. 161.75 s [really-safe-money-gen] else
  1407. 161.75 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1408. 161.75 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (maxBound :: Word64)
  1409. 161.75 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1410. 161.75 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1411. 161.75 s [really-safe-money-gen] g :: Amount -> String
  1412. 161.75 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63 #3
  1413. 161.75 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  1414. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1415. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1416. 161.75 s [really-safe-money-gen] else
  1417. 161.75 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1418. 161.75 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (maxBound :: Word64)
  1419. 161.75 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1420. 161.75 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1421. 161.75 s [really-safe-money-gen] g :: Amount -> String
  1422. 161.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63 #1
  1423. 161.75 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  1424. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1425. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1426. 161.75 s [really-safe-money-gen] else
  1427. 161.75 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1428. 161.75 s [really-safe-money-gen] + if True
  1429. 161.75 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1430. 161.75 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1431. 161.75 s [really-safe-money-gen] g :: Amount -> String
  1432. 161.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63 #2
  1433. 161.75 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  1434. 161.75 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1435. 161.75 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1436. 161.76 s [really-safe-money-gen] else
  1437. 161.76 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1438. 161.76 s [really-safe-money-gen] + if False
  1439. 161.76 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1440. 161.76 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1441. 161.76 s [really-safe-money-gen] g :: Amount -> String
  1442. 161.76 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63 #1
  1443. 161.76 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  1444. 161.76 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1445. 161.76 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1446. 161.76 s [really-safe-money-gen] else
  1447. 161.76 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1448. 161.76 s [really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  1449. 161.76 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1450. 161.76 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1451. 161.76 s [really-safe-money-gen] g :: Amount -> String
  1452. 161.76 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90 #1
  1453. 161.76 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  1454. 161.76 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1455. 161.76 s [really-safe-money-gen] else
  1456. 161.76 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1457. 161.76 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1458. 161.76 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1459. 161.76 s [really-safe-money-gen] g :: Amount -> String
  1460. 161.76 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  1461. 161.76 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90 #2
  1462. 161.76 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  1463. 161.76 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1464. 161.76 s [really-safe-money-gen] else
  1465. 161.76 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1466. 161.76 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1467. 161.76 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1468. 161.76 s [really-safe-money-gen] g :: Amount -> String
  1469. 161.76 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  1470. 161.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86 #1
  1471. 161.76 s [really-safe-money-gen] @@ -43,15 +43,14 @@
  1472. 161.76 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  1473. 161.76 s [really-safe-money-gen] where
  1474. 161.76 s [really-safe-money-gen] f :: String -> Either String Amount
  1475. 161.76 s [really-safe-money-gen] f s = case readMaybe s of
  1476. 161.76 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1477. 161.76 s [really-safe-money-gen] Just i ->
  1478. 161.76 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  1479. 161.76 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1480. 161.76 s [really-safe-money-gen] else
  1481. 161.76 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  1482. 161.76 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1483. 161.76 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1484. 161.76 s [really-safe-money-gen] g :: Amount -> String
  1485. 161.76 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  1486. 161.76 s [really-safe-money-gen]
  1487. 161.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86 #2
  1488. 161.76 s [really-safe-money-gen] @@ -43,15 +43,8 @@
  1489. 161.76 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  1490. 161.76 s [really-safe-money-gen] where
  1491. 161.76 s [really-safe-money-gen] f :: String -> Either String Amount
  1492. 161.76 s [really-safe-money-gen] f s = case readMaybe s of
  1493. 161.76 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  1494. 161.76 s [really-safe-money-gen] - Just i ->
  1495. 161.76 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  1496. 161.76 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  1497. 161.76 s [really-safe-money-gen] - else
  1498. 161.76 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  1499. 161.76 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  1500. 161.76 s [really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  1501. 161.76 s [really-safe-money-gen] g :: Amount -> String
  1502. 161.76 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  1503. 161.76 s [really-safe-money-gen]
  1504. 161.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24 #1
  1505. 161.76 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  1506. 161.76 s [really-safe-money-gen] <?> "Account"
  1507. 161.76 s [really-safe-money-gen] where
  1508. 161.76 s [really-safe-money-gen] f :: Integer -> Either String Account
  1509. 161.76 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  1510. 161.76 s [really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
  1511. 161.76 s [really-safe-money-gen] Just a -> Right a
  1512. 161.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24 #2
  1513. 161.76 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  1514. 161.76 s [really-safe-money-gen] <?> "Account"
  1515. 161.76 s [really-safe-money-gen] where
  1516. 161.76 s [really-safe-money-gen] f :: Integer -> Either String Account
  1517. 161.76 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  1518. 161.76 s [really-safe-money-gen] Nothing -> Left $ "Number did not fit into an account value: " <> show i
  1519. 161.76 s [really-safe-money-gen] - Just a -> Right a
  1520. 161.76 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76 #1
  1521. 161.76 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  1522. 161.76 s [really-safe-money-gen] where
  1523. 161.76 s [really-safe-money-gen] f :: String -> Either String Account
  1524. 161.76 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  1525. 161.76 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  1526. 161.76 s [really-safe-money-gen] Just a -> Right a
  1527. 161.76 s [really-safe-money-gen] g :: Account -> String
  1528. 161.76 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  1529. 161.76 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76 #2
  1530. 161.76 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  1531. 161.76 s [really-safe-money-gen] where
  1532. 161.76 s [really-safe-money-gen] f :: String -> Either String Account
  1533. 268.50 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisKilled: 415
  1534. 268.50 s [really-safe-money-gen] (of which timed out: 0)
  1535. 268.55 s [really-safe-money-gen] Survived: 69
  1536. 268.55 s [really-safe-money-gen] Uncovered: 40
  1537. 268.55 s [really-safe-money-gen]
  1538. 268.55 s [really-safe-money-gen] Surviving mutations:
  1539. 268.55 s [really-safe-money-gen]
  1540. 268.55 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8 #2
  1541. 268.55 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  1542. 268.55 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  1543. 268.55 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  1544. 268.55 s [really-safe-money-gen] mconcat
  1545. 268.55 s [really-safe-money-gen] - [ genericValidate ma,
  1546. 268.55 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1547. 268.55 s [really-safe-money-gen] declare "The amount is not zero" $
  1548. 268.55 s [really-safe-money-gen] a /= Amount.zero
  1549. 268.55 s [really-safe-money-gen] ]
  1550. 268.55 s [really-safe-money-gen]
  1551. 268.55 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1552. 268.55 s [really-safe-money-gen]
  1553. 268.55 s [really-safe-money-gen]
  1554. 268.55 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8 #1
  1555. 268.55 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  1556. 268.55 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  1557. 268.55 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  1558. 268.55 s [really-safe-money-gen] mconcat
  1559. 268.55 s [really-safe-money-gen] - [ genericValidate ma,
  1560. 268.55 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  1561. 268.55 s [really-safe-money-gen] - declare "The amount is not zero" $
  1562. 268.55 s [really-safe-money-gen] - a /= Amount.zero
  1563. 268.55 s [really-safe-money-gen] ]
  1564. 268.55 s [really-safe-money-gen]
  1565. 268.55 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1566. 268.55 s [really-safe-money-gen]
  1567. 268.55 s [really-safe-money-gen]
  1568. 268.55 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29 #1
  1569. 268.55 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  1570. 268.55 s [really-safe-money-gen] [ genericValidate ma,
  1571. 268.55 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1572. 268.56 s [really-safe-money-gen] declare "The amount is not zero" $
  1573. 268.56 s [really-safe-money-gen] - a /= Amount.zero
  1574. 268.56 s [really-safe-money-gen] + True
  1575. 268.56 s [really-safe-money-gen] ]
  1576. 268.56 s [really-safe-money-gen]
  1577. 268.56 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  1578. 268.56 s [really-safe-money-gen]
  1579. 268.56 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28 #2
  1580. 268.56 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  1581. 268.56 s [really-safe-money-gen] Just a -> do
  1582. 268.56 s [really-safe-money-gen] r <- Amount.add a amount
  1583. 268.56 s [really-safe-money-gen] Just $
  1584. 268.56 s [really-safe-money-gen] - if r == Amount.zero
  1585. 268.56 s [really-safe-money-gen] + if False
  1586. 268.56 s [really-safe-money-gen] then M.delete currency m
  1587. 268.56 s [really-safe-money-gen] else M.insert currency r m
  1588. 268.56 s [really-safe-money-gen]
  1589. 268.56 s [really-safe-money-gen]
  1590. 268.56 s [really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28 #1
  1591. 268.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  1592. 268.56 s [really-safe-money-gen] Just a -> do
  1593. 268.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  1594. 268.56 s [really-safe-money-gen] Just $
  1595. 268.56 s [really-safe-money-gen] - if r == Amount.zero
  1596. 268.56 s [really-safe-money-gen] + if not (r == Amount.zero)
  1597. 268.56 s [really-safe-money-gen] then M.delete currency m
  1598. 268.56 s [really-safe-money-gen] else M.insert currency r m
  1599. 268.56 s [really-safe-money-gen]
  1600. 268.56 s [really-safe-money-gen]
  1601. 268.56 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28 #2
  1602. 268.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  1603. 268.56 s [really-safe-money-gen] Just a -> do
  1604. 268.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  1605. 268.56 s [really-safe-money-gen] Just $
  1606. 268.56 s [really-safe-money-gen] - if r == Amount.zero
  1607. 268.56 s [really-safe-money-gen] + if False
  1608. 268.56 s [really-safe-money-gen] then M.delete currency m
  1609. 268.56 s [really-safe-money-gen] else M.insert currency r m
  1610. 268.56 s [really-safe-money-gen]
  1611. 268.56 s [really-safe-money-gen]
  1612. 268.56 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28 #1
  1613. 268.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  1614. 268.56 s [really-safe-money-gen] Just a -> do
  1615. 268.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  1616. 268.56 s [really-safe-money-gen] Just $
  1617. 268.56 s [really-safe-money-gen] - if r == Amount.zero
  1618. 268.56 s [really-safe-money-gen] + if True
  1619. 268.56 s [really-safe-money-gen] then M.delete currency m
  1620. 268.56 s [really-safe-money-gen] else M.insert currency r m
  1621. 268.56 s [really-safe-money-gen]
  1622. 268.56 s [really-safe-money-gen]
  1623. 268.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAmount.hs:112:33-39 #1
  1624. 268.56 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  1625. 268.56 s [really-safe-money-gen]
  1626. 268.56 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  1627. 268.56 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  1628. 268.56 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  1629. 268.56 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  1630. 268.56 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  1631. 268.56 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  1632. 268.56 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  1633. 268.56 s [really-safe-money-gen]
  1634. 268.56 s [really-safe-money-gen] Cmp at src/Money/MultiAmount.hs:168:20-45 #3
  1635. 268.56 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  1636. 268.56 s [really-safe-money-gen] maxBoundN :: Natural
  1637. 268.56 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  1638. 268.56 s [really-safe-money-gen] actualResult =
  1639. 268.56 s [really-safe-money-gen] - if roundedResult > maxBoundN
  1640. 268.56 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  1641. 268.56 s [really-safe-money-gen] then Nothing
  1642. 268.56 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  1643. 268.56 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  1644. 268.56 s [really-safe-money-gen]
  1645. 268.56 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8 #2
  1646. 268.56 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  1647. 268.56 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  1648. 268.56 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  1649. 268.56 s [really-safe-money-gen] mconcat
  1650. 268.56 s [really-safe-money-gen] - [ genericValidate ma,
  1651. 268.56 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1652. 268.56 s [really-safe-money-gen] declare "The account is not zero" $
  1653. 268.56 s [really-safe-money-gen] a /= Account.zero
  1654. 268.56 s [really-safe-money-gen] ]
  1655. 268.56 s [really-safe-money-gen]
  1656. 268.56 s [really-safe-money-gen] -- TODO no empty currencies
  1657. 268.56 s [really-safe-money-gen]
  1658. 268.56 s [really-safe-money-gen]
  1659. 268.56 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8 #1
  1660. 268.56 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  1661. 268.56 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  1662. 268.56 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  1663. 268.56 s [really-safe-money-gen] mconcat
  1664. 268.56 s [really-safe-money-gen] - [ genericValidate ma,
  1665. 268.56 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  1666. 268.56 s [really-safe-money-gen] - declare "The account is not zero" $
  1667. 268.56 s [really-safe-money-gen] - a /= Account.zero
  1668. 268.56 s [really-safe-money-gen] ]
  1669. 268.56 s [really-safe-money-gen]
  1670. 268.56 s [really-safe-money-gen] -- TODO no empty currencies
  1671. 268.56 s [really-safe-money-gen]
  1672. 268.56 s [really-safe-money-gen]
  1673. 268.56 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30 #1
  1674. 268.56 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  1675. 268.56 s [really-safe-money-gen] [ genericValidate ma,
  1676. 268.56 s [really-safe-money-gen] decorateMap m $ \_ a ->
  1677. 268.56 s [really-safe-money-gen] declare "The account is not zero" $
  1678. 268.56 s [really-safe-money-gen] - a /= Account.zero
  1679. 268.56 s [really-safe-money-gen] + True
  1680. 268.56 s [really-safe-money-gen] ]
  1681. 268.56 s [really-safe-money-gen]
  1682. 268.56 s [really-safe-money-gen] -- TODO no empty currencies
  1683. 268.56 s [really-safe-money-gen]
  1684. 268.56 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28 #1
  1685. 268.56 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  1686. 268.56 s [really-safe-money-gen]
  1687. 268.56 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  1688. 268.56 s [really-safe-money-gen] fromAccount currency amount =
  1689. 268.56 s [really-safe-money-gen] - if amount == Account.zero
  1690. 268.56 s [really-safe-money-gen] + if True
  1691. 268.56 s [really-safe-money-gen] then zero
  1692. 268.56 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  1693. 268.56 s [really-safe-money-gen]
  1694. 268.56 s [really-safe-money-gen]
  1695. 268.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:113:40-46 #1
  1696. 268.56 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  1697. 268.56 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  1698. 268.56 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  1699. 268.56 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  1700. 268.56 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  1701. 268.56 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  1702. 268.56 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  1703. 268.56 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  1704. 268.56 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  1705. 268.56 s [really-safe-money-gen]
  1706. 268.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:127:45-51 #1
  1707. 268.56 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  1708. 268.56 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  1709. 268.56 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  1710. 268.56 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  1711. 268.56 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  1712. 268.56 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  1713. 268.56 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  1714. 268.56 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  1715. 268.56 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  1716. 268.56 s [really-safe-money-gen]
  1717. 268.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:126:45-51 #1
  1718. 268.56 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  1719. 268.57 s [really-safe-money-gen]
  1720. 268.57 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  1721. 268.57 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  1722. 268.57 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  1723. 268.57 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  1724. 268.57 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  1725. 268.57 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  1726. 268.57 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  1727. 268.57 s [really-safe-money-gen]
  1728. 268.57 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8 #2
  1729. 268.57 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  1730. 268.57 s [really-safe-money-gen] instance Validity QuantisationFactor where
  1731. 268.57 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  1732. 268.57 s [really-safe-money-gen] mconcat
  1733. 268.57 s [really-safe-money-gen] - [ genericValidate qf,
  1734. 268.57 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  1735. 268.57 s [really-safe-money-gen] ]
  1736. 268.57 s [really-safe-money-gen]
  1737. 268.57 s [really-safe-money-gen] instance NFData QuantisationFactor
  1738. 268.57 s [really-safe-money-gen]
  1739. 268.57 s [really-safe-money-gen]
  1740. 268.57 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8 #1
  1741. 268.57 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  1742. 268.57 s [really-safe-money-gen] instance Validity QuantisationFactor where
  1743. 268.57 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  1744. 268.57 s [really-safe-money-gen] mconcat
  1745. 268.57 s [really-safe-money-gen] - [ genericValidate qf,
  1746. 268.57 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  1747. 268.57 s [really-safe-money-gen] ]
  1748. 268.57 s [really-safe-money-gen]
  1749. 268.57 s [really-safe-money-gen] instance NFData QuantisationFactor
  1750. 268.57 s [really-safe-money-gen]
  1751. 268.57 s [really-safe-money-gen]
  1752. 268.57 s [really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63 #1
  1753. 268.57 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  1754. 268.57 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  1755. 268.57 s [really-safe-money-gen] mconcat
  1756. 268.57 s [really-safe-money-gen] [ genericValidate qf,
  1757. 268.57 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  1758. 268.57 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  1759. 268.57 s [really-safe-money-gen] ]
  1760. 268.57 s [really-safe-money-gen]
  1761. 268.57 s [really-safe-money-gen] instance NFData QuantisationFactor
  1762. 268.57 s [really-safe-money-gen]
  1763. 268.57 s [really-safe-money-gen] Cmp at src/Money/QuantisationFactor.hs:102:6-46 #1
  1764. 268.57 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  1765. 268.57 s [really-safe-money-gen] then Just (numerator rat)
  1766. 268.57 s [really-safe-money-gen] else Nothing
  1767. 268.57 s [really-safe-money-gen]
  1768. 268.57 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  1769. 268.57 s [really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
  1770. 268.57 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  1771. 268.57 s [really-safe-money-gen] else Nothing
  1772. 268.57 s [really-safe-money-gen]
  1773. 268.57 s [really-safe-money-gen] Cmp at src/Money/QuantisationFactor.hs:93:12-17 #1
  1774. 268.57 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  1775. 268.57 s [really-safe-money-gen]
  1776. 268.57 s [really-safe-money-gen] rat <-
  1777. 268.57 s [really-safe-money-gen] let r = 1 / irat
  1778. 268.57 s [really-safe-money-gen] - in if r < 0
  1779. 268.57 s [really-safe-money-gen] + in if r <= 0
  1780. 268.57 s [really-safe-money-gen] then Nothing
  1781. 268.57 s [really-safe-money-gen] else Just r
  1782. 268.57 s [really-safe-money-gen]
  1783. 268.57 s [really-safe-money-gen]
  1784. 268.57 s [really-safe-money-gen] IntLit at src/Money/QuantisationFactor.hs:93:16-17 #1
  1785. 268.57 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  1786. 268.57 s [really-safe-money-gen]
  1787. 268.57 s [really-safe-money-gen] rat <-
  1788. 268.57 s [really-safe-money-gen] let r = 1 / irat
  1789. 268.57 s [really-safe-money-gen] - in if r < 0
  1790. 268.57 s [really-safe-money-gen] + in if r < 1
  1791. 268.57 s [really-safe-money-gen] then Nothing
  1792. 268.57 s [really-safe-money-gen] else Just r
  1793. 268.57 s [really-safe-money-gen]
  1794. 268.57 s [really-safe-money-gen]
  1795. 268.57 s [really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115 #3
  1796. 268.57 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  1797. 268.57 s [really-safe-money-gen]
  1798. 268.57 s [really-safe-money-gen] -- | See 'Account.distribute'
  1799. 268.57 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  1800. 268.57 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  1801. 268.57 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  1802. 268.57 s [really-safe-money-gen] DistributedZero -> DistributedZero
  1803. 268.57 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  1804. 268.57 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  1805. 268.57 s [really-safe-money-gen]
  1806. 268.57 s [really-safe-money-gen] -- | The result of 'distribute'
  1807. 268.57 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  1808. 268.57 s [really-safe-money-gen]
  1809. 268.57 s [really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8 #2
  1810. 268.57 s [really-safe-money-gen] @@ -34,9 +34,8 @@
  1811. 268.57 s [really-safe-money-gen] instance Validity ConversionRate where
  1812. 268.57 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  1813. 268.57 s [really-safe-money-gen] mconcat
  1814. 268.57 s [really-safe-money-gen] - [ genericValidate cr,
  1815. 268.57 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  1816. 268.57 s [really-safe-money-gen] ]
  1817. 268.57 s [really-safe-money-gen]
  1818. 268.57 s [really-safe-money-gen] instance NFData ConversionRate
  1819. 268.57 s [really-safe-money-gen]
  1820. 268.57 s [really-safe-money-gen]
  1821. 268.57 s [really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8 #1
  1822. 268.57 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  1823. 268.57 s [really-safe-money-gen] instance Validity ConversionRate where
  1824. 268.57 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  1825. 268.57 s [really-safe-money-gen] mconcat
  1826. 268.57 s [really-safe-money-gen] - [ genericValidate cr,
  1827. 268.57 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  1828. 268.57 s [really-safe-money-gen] ]
  1829. 268.57 s [really-safe-money-gen]
  1830. 268.57 s [really-safe-money-gen] instance NFData ConversionRate
  1831. 268.57 s [really-safe-money-gen]
  1832. 268.57 s [really-safe-money-gen]
  1833. 268.57 s [really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57 #1
  1834. 268.57 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  1835. 268.57 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  1836. 268.57 s [really-safe-money-gen] mconcat
  1837. 268.57 s [really-safe-money-gen] [ genericValidate cr,
  1838. 268.57 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  1839. 268.57 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  1840. 268.57 s [really-safe-money-gen] ]
  1841. 268.57 s [really-safe-money-gen]
  1842. 268.57 s [really-safe-money-gen] instance NFData ConversionRate
  1843. 268.57 s [really-safe-money-gen]
  1844. 268.57 s [really-safe-money-gen] Cmp at src/Money/ConversionRate.hs:72:21-26 #1
  1845. 268.57 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  1846. 268.57 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  1847. 268.57 s [really-safe-money-gen] -- Nothing
  1848. 268.57 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  1849. 268.57 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  1850. 268.57 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  1851. 268.57 s [really-safe-money-gen]
  1852. 268.57 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  1853. 268.57 s [really-safe-money-gen] --
  1854. 268.57 s [really-safe-money-gen]
  1855. 268.57 s [really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28 #1
  1856. 268.57 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  1857. 268.57 s [really-safe-money-gen]
  1858. 268.57 s [really-safe-money-gen] -- | One-to-one conversion rate
  1859. 268.57 s [really-safe-money-gen] oneToOne :: ConversionRate
  1860. 268.57 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  1861. 268.57 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  1862. 268.57 s [really-safe-money-gen]
  1863. 268.57 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  1864. 268.57 s [really-safe-money-gen] --
  1865. 268.57 s [really-safe-money-gen]
  1866. 268.57 s [really-safe-money-gen] Arith at src/Money/ConversionRate.hs:127:70-79 #1
  1867. 268.57 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  1868. 268.57 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  1869. 268.57 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  1870. 268.57 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  1871. 268.57 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  1872. 268.57 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  1873. 268.57 s [really-safe-money-gen]
  1874. 268.57 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  1875. 268.57 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  1876. 268.57 s [really-safe-money-gen]
  1877. 268.57 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8 #2
  1878. 268.57 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  1879. 268.57 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  1880. 268.57 s [really-safe-money-gen] validate ad =
  1881. 268.57 s [really-safe-money-gen] mconcat
  1882. 268.57 s [really-safe-money-gen] - [ genericValidate ad,
  1883. 268.57 s [really-safe-money-gen] case ad of
  1884. 268.57 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  1885. 268.57 s [really-safe-money-gen] declare "The larger chunks are larger" $
  1886. 268.57 s [really-safe-money-gen] a1 > a2
  1887. 268.57 s [really-safe-money-gen] _ -> valid
  1888. 268.57 s [really-safe-money-gen] ]
  1889. 268.57 s [really-safe-money-gen]
  1890. 268.57 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  1891. 268.57 s [really-safe-money-gen]
  1892. 268.57 s [really-safe-money-gen]
  1893. 268.57 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8 #1
  1894. 268.57 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  1895. 268.57 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  1896. 268.57 s [really-safe-money-gen] validate ad =
  1897. 268.57 s [really-safe-money-gen] mconcat
  1898. 268.57 s [really-safe-money-gen] - [ genericValidate ad,
  1899. 268.57 s [really-safe-money-gen] - case ad of
  1900. 268.57 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  1901. 268.57 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  1902. 268.57 s [really-safe-money-gen] - a1 > a2
  1903. 268.57 s [really-safe-money-gen] - _ -> valid
  1904. 268.57 s [really-safe-money-gen] ]
  1905. 268.57 s [really-safe-money-gen]
  1906. 268.57 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  1907. 268.57 s [really-safe-money-gen]
  1908. 268.57 s [really-safe-money-gen]
  1909. 268.57 s [really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21 #1
  1910. 268.57 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  1911. 268.57 s [really-safe-money-gen] validate ad =
  1912. 268.57 s [really-safe-money-gen] mconcat
  1913. 268.57 s [really-safe-money-gen] [ genericValidate ad,
  1914. 268.57 s [really-safe-money-gen] case ad of
  1915. 268.57 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  1916. 268.57 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  1917. 268.57 s [really-safe-money-gen] - a1 > a2
  1918. 268.57 s [really-safe-money-gen] _ -> valid
  1919. 268.57 s [really-safe-money-gen] ]
  1920. 268.57 s [really-safe-money-gen]
  1921. 268.57 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  1922. 268.57 s [really-safe-money-gen]
  1923. 268.57 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22 #1
  1924. 268.57 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  1925. 268.57 s [really-safe-money-gen] case ad of
  1926. 268.57 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  1927. 268.57 s [really-safe-money-gen] declare "The larger chunks are larger" $
  1928. 268.57 s [really-safe-money-gen] - a1 > a2
  1929. 268.57 s [really-safe-money-gen] + True
  1930. 268.57 s [really-safe-money-gen] _ -> valid
  1931. 268.57 s [really-safe-money-gen] ]
  1932. 268.57 s [really-safe-money-gen]
  1933. 268.57 s [really-safe-money-gen]
  1934. 268.57 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:607:15-22 #3
  1935. 268.57 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  1936. 268.57 s [really-safe-money-gen] case ad of
  1937. 268.57 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  1938. 268.57 s [really-safe-money-gen] declare "The larger chunks are larger" $
  1939. 268.57 s [really-safe-money-gen] - a1 > a2
  1940. 268.57 s [really-safe-money-gen] + a1 >= a2
  1941. 268.57 s [really-safe-money-gen] _ -> valid
  1942. 268.58 s [really-safe-money-gen] ]
  1943. 268.58 s [really-safe-money-gen]
  1944. 268.58 s [really-safe-money-gen]
  1945. 268.58 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:661:19-28 #1
  1946. 268.58 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  1947. 268.58 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  1948. 268.58 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  1949. 268.58 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  1950. 268.58 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  1951. 268.58 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  1952. 268.58 s [really-safe-money-gen] fraction r (Amount a) f =
  1953. 268.58 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  1954. 268.58 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  1955. 268.58 s [really-safe-money-gen]
  1956. 268.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:495:10-23 #3
  1957. 268.58 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  1958. 268.58 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  1959. 268.58 s [really-safe-money-gen] r :: Integer
  1960. 268.58 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  1961. 268.58 s [really-safe-money-gen] - in if r > maxBoundI
  1962. 268.58 s [really-safe-money-gen] + in if r >= maxBoundI
  1963. 268.58 s [really-safe-money-gen] then Nothing
  1964. 268.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  1965. 268.58 s [really-safe-money-gen]
  1966. 268.58 s [really-safe-money-gen]
  1967. 268.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:341:26-91 #3
  1968. 268.58 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  1969. 268.58 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  1970. 268.58 s [really-safe-money-gen] in if ceiled == floored
  1971. 268.58 s [really-safe-money-gen] then
  1972. 268.58 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  1973. 268.58 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  1974. 268.58 s [really-safe-money-gen] then Nothing
  1975. 268.58 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  1976. 268.58 s [really-safe-money-gen] else Nothing
  1977. 268.58 s [really-safe-money-gen]
  1978. 268.58 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40 #2
  1979. 268.58 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  1980. 268.58 s [really-safe-money-gen] | otherwise =
  1981. 268.58 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  1982. 268.58 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  1983. 268.58 s [really-safe-money-gen] - if exponent resultDouble > 65
  1984. 268.58 s [really-safe-money-gen] + if False
  1985. 268.58 s [really-safe-money-gen] then Nothing
  1986. 268.58 s [really-safe-money-gen] else
  1987. 268.58 s [really-safe-money-gen] let ceiled :: Natural
  1988. 268.58 s [really-safe-money-gen]
  1989. 268.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:332:14-40 #3
  1990. 268.58 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  1991. 268.58 s [really-safe-money-gen] | otherwise =
  1992. 268.58 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  1993. 268.58 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  1994. 268.58 s [really-safe-money-gen] - if exponent resultDouble > 65
  1995. 268.58 s [really-safe-money-gen] + if exponent resultDouble >= 65
  1996. 268.58 s [really-safe-money-gen] then Nothing
  1997. 268.58 s [really-safe-money-gen] else
  1998. 268.58 s [really-safe-money-gen] let ceiled :: Natural
  1999. 268.58 s [really-safe-money-gen]
  2000. 268.58 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:520:14-66 #1
  2001. 268.58 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  2002. 268.58 s [really-safe-money-gen] r = i1 - i2
  2003. 268.58 s [really-safe-money-gen] in if r < 0
  2004. 268.58 s [really-safe-money-gen] then Nothing
  2005. 268.58 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2006. 268.58 s [really-safe-money-gen] + else Nothing
  2007. 268.58 s [really-safe-money-gen]
  2008. 268.58 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  2009. 268.58 s [really-safe-money-gen] --
  2010. 268.58 s [really-safe-money-gen]
  2011. 268.58 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15 #1
  2012. 268.58 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  2013. 268.58 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  2014. 268.58 s [really-safe-money-gen] r :: Integer
  2015. 268.58 s [really-safe-money-gen] r = i1 - i2
  2016. 268.58 s [really-safe-money-gen] - in if r < 0
  2017. 268.58 s [really-safe-money-gen] + in if True
  2018. 268.58 s [really-safe-money-gen] then Nothing
  2019. 268.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2020. 268.58 s [really-safe-money-gen]
  2021. 268.58 s [really-safe-money-gen]
  2022. 268.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:518:10-15 #1
  2023. 268.58 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  2024. 268.58 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  2025. 268.58 s [really-safe-money-gen] r :: Integer
  2026. 268.58 s [really-safe-money-gen] r = i1 - i2
  2027. 268.58 s [really-safe-money-gen] - in if r < 0
  2028. 268.58 s [really-safe-money-gen] + in if r <= 0
  2029. 268.58 s [really-safe-money-gen] then Nothing
  2030. 268.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2031. 268.58 s [really-safe-money-gen]
  2032. 268.58 s [really-safe-money-gen]
  2033. 268.58 s [really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15 #1
  2034. 268.58 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  2035. 268.58 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  2036. 268.58 s [really-safe-money-gen] r :: Integer
  2037. 268.58 s [really-safe-money-gen] r = i1 - i2
  2038. 268.58 s [really-safe-money-gen] - in if r < 0
  2039. 268.58 s [really-safe-money-gen] + in if r < 1
  2040. 268.58 s [really-safe-money-gen] then Nothing
  2041. 268.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2042. 268.58 s [really-safe-money-gen]
  2043. 268.58 s [really-safe-money-gen]
  2044. 268.58 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21 #2
  2045. 268.58 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  2046. 268.58 s [really-safe-money-gen]
  2047. 268.58 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  2048. 268.58 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  2049. 268.58 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  2050. 268.58 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  2051. 268.58 s [really-safe-money-gen] - Just dl -> pure dl
  2052. 268.58 s [really-safe-money-gen]
  2053. 268.58 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  2054. 268.58 s [really-safe-money-gen] decimalLiteralP = do
  2055. 268.58 s [really-safe-money-gen]
  2056. 268.58 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:208:5-10 #1
  2057. 268.58 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  2058. 268.58 s [really-safe-money-gen] -- Nothing
  2059. 268.58 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  2060. 268.58 s [really-safe-money-gen] fromRational (n :% d)
  2061. 268.58 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  2062. 268.58 s [really-safe-money-gen] + | n <= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  2063. 268.58 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  2064. 268.58 s [really-safe-money-gen]
  2065. 268.58 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  2066. 268.58 s [really-safe-money-gen]
  2067. 268.58 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:208:9-10 #1
  2068. 268.58 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  2069. 268.58 s [really-safe-money-gen] -- Nothing
  2070. 268.58 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  2071. 268.58 s [really-safe-money-gen] fromRational (n :% d)
  2072. 268.58 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  2073. 268.58 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  2074. 268.58 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  2075. 268.58 s [really-safe-money-gen]
  2076. 268.58 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  2077. 268.58 s [really-safe-money-gen]
  2078. 268.58 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:266:13-19 #3
  2079. 268.58 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  2080. 268.58 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  2081. 268.58 s [really-safe-money-gen] | S.member n ns = Nothing
  2082. 268.58 s [really-safe-money-gen] -- Over the limit, stop trying
  2083. 268.58 s [really-safe-money-gen] - | e >= l = Nothing
  2084. 268.58 s [really-safe-money-gen] + | e > l = Nothing
  2085. 268.58 s [really-safe-money-gen] | n < d =
  2086. 268.58 s [really-safe-money-gen] let !ns' = S.insert n ns
  2087. 268.58 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  2088. 268.58 s [really-safe-money-gen]
  2089. 268.58 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40 #1
  2090. 268.58 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  2091. 268.58 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  2092. 268.58 s [really-safe-money-gen] -- Nothing
  2093. 268.58 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  2094. 268.58 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  2095. 268.58 s [really-safe-money-gen] - Just False -> Nothing
  2096. 268.58 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  2097. 268.58 s [really-safe-money-gen]
  2098. 268.58 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  2099. 268.58 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  2100. 268.58 s [really-safe-money-gen]
  2101. 268.58 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35 #2
  2102. 268.58 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  2103. 268.58 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  2104. 268.58 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  2105. 268.58 s [really-safe-money-gen] Just False -> Nothing
  2106. 268.58 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  2107. 268.58 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  2108. 268.58 s [really-safe-money-gen]
  2109. 268.58 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  2110. 268.58 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  2111. 268.58 s [really-safe-money-gen]
  2112. 268.58 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47 #1
  2113. 268.58 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  2114. 268.58 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  2115. 268.58 s [really-safe-money-gen] toWord dl = do
  2116. 268.58 s [really-safe-money-gen] n <- toNatural dl
  2117. 268.58 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  2118. 268.58 s [really-safe-money-gen] pure $ fromIntegral n
  2119. 268.58 s [really-safe-money-gen]
  2120. 268.58 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  2121. 268.58 s [really-safe-money-gen]
  2122. 268.58 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47 #1
  2123. 268.58 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  2124. 268.58 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  2125. 268.58 s [really-safe-money-gen] toWord dl = do
  2126. 268.58 s [really-safe-money-gen] n <- toNatural dl
  2127. 268.58 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  2128. 268.58 s [really-safe-money-gen] + guard $ True
  2129. 268.58 s [really-safe-money-gen] pure $ fromIntegral n
  2130. 268.58 s [really-safe-money-gen]
  2131. 268.58 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  2132. 268.58 s [really-safe-money-gen]
  2133. 268.58 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46 #1
  2134. 268.58 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  2135. 268.58 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  2136. 268.58 s [really-safe-money-gen] toInt dl = do
  2137. 268.58 s [really-safe-money-gen] n <- toInteger dl
  2138. 268.58 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  2139. 268.58 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  2140. 268.58 s [really-safe-money-gen] pure $ fromIntegral n
  2141. 268.58 s [really-safe-money-gen]
  2142. 268.58 s [really-safe-money-gen]
  2143. 268.58 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46 #1
  2144. 268.58 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  2145. 268.58 s [really-safe-money-gen] toInt dl = do
  2146. 268.58 s [really-safe-money-gen] n <- toInteger dl
  2147. 268.58 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  2148. 268.58 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  2149. 268.58 s [really-safe-money-gen] pure $ fromIntegral n
  2150. 268.58 s [really-safe-money-gen]
  2151. 268.58 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  2152. 268.58 s [really-safe-money-gen]
  2153. 268.58 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46 #1
  2154. 268.58 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  2155. 268.58 s [really-safe-money-gen] toInt dl = do
  2156. 268.58 s [really-safe-money-gen] n <- toInteger dl
  2157. 268.58 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  2158. 268.58 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  2159. 268.58 s [really-safe-money-gen] + guard $ True
  2160. 268.59 s [really-safe-money-gen] pure $ fromIntegral n
  2161. 268.59 s [really-safe-money-gen]
  2162. 268.59 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  2163. 268.59 s [really-safe-money-gen]
  2164. 268.59 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46 #1
  2165. 268.59 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  2166. 268.59 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  2167. 268.59 s [really-safe-money-gen] toInt dl = do
  2168. 268.59 s [really-safe-money-gen] n <- toInteger dl
  2169. 268.59 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  2170. 268.59 s [really-safe-money-gen] + guard $ True
  2171. 268.59 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  2172. 268.59 s [really-safe-money-gen] pure $ fromIntegral n
  2173. 268.59 s [really-safe-money-gen]
  2174. 268.59 s [really-safe-money-gen]
  2175. 268.59 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:332:11-46 #1
  2176. 268.59 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  2177. 268.59 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  2178. 268.59 s [really-safe-money-gen] toInt dl = do
  2179. 268.59 s [really-safe-money-gen] n <- toInteger dl
  2180. 268.59 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  2181. 268.59 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  2182. 268.59 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  2183. 268.59 s [really-safe-money-gen] pure $ fromIntegral n
  2184. 268.59 s [really-safe-money-gen]
  2185. 268.59 s [really-safe-money-gen]
  2186. 268.59 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:337:16-22 #3
  2187. 268.59 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  2188. 268.59 s [really-safe-money-gen] pure $ fromIntegral n
  2189. 268.59 s [really-safe-money-gen]
  2190. 268.59 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  2191. 268.59 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  2192. 268.59 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  2193. 268.59 s [really-safe-money-gen]
  2194. 268.59 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  2195. 268.59 s [really-safe-money-gen] signSignum = \case
  2196. 268.59 s [really-safe-money-gen]
  2197. 268.59 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22 #1
  2198. 268.59 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  2199. 268.59 s [really-safe-money-gen] pure $ fromIntegral n
  2200. 268.59 s [really-safe-money-gen]
  2201. 268.59 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  2202. 268.59 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  2203. 268.59 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  2204. 268.59 s [really-safe-money-gen]
  2205. 268.59 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  2206. 268.59 s [really-safe-money-gen] signSignum = \case
  2207. 268.59 s [really-safe-money-gen]
  2208. 268.59 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:368:10-39 #1
  2209. 268.59 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  2210. 268.59 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  2211. 268.59 s [really-safe-money-gen] let currentDigits :: Word8
  2212. 268.59 s [really-safe-money-gen] currentDigits = digits dl
  2213. 268.59 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  2214. 268.59 s [really-safe-money-gen] + in if wantedDigits < currentDigits
  2215. 268.59 s [really-safe-money-gen] then dl
  2216. 268.59 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  2217. 268.59 s [really-safe-money-gen] where
  2218. 268.59 s [really-safe-money-gen]
  2219. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:131:20-26 #3
  2220. 268.59 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  2221. 268.59 s [really-safe-money-gen] amount :: Amount
  2222. 268.59 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  2223. 268.59 s [really-safe-money-gen] in Just $
  2224. 268.59 s [really-safe-money-gen] - if i >= 0
  2225. 268.59 s [really-safe-money-gen] + if i > 0
  2226. 268.59 s [really-safe-money-gen] then Positive amount
  2227. 268.59 s [really-safe-money-gen] else Negative amount
  2228. 268.59 s [really-safe-money-gen]
  2229. 268.59 s [really-safe-money-gen]
  2230. 268.59 s [really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26 #1
  2231. 268.59 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  2232. 268.59 s [really-safe-money-gen] amount :: Amount
  2233. 268.59 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  2234. 268.59 s [really-safe-money-gen] in Just $
  2235. 268.59 s [really-safe-money-gen] - if i >= 0
  2236. 268.59 s [really-safe-money-gen] + if i >= 1
  2237. 268.59 s [really-safe-money-gen] then Positive amount
  2238. 268.59 s [really-safe-money-gen] else Negative amount
  2239. 268.59 s [really-safe-money-gen]
  2240. 268.59 s [really-safe-money-gen]
  2241. 268.59 s [really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23 #2
  2242. 268.59 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  2243. 268.59 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  2244. 268.59 s [really-safe-money-gen] a :: Integer
  2245. 268.59 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  2246. 268.59 s [really-safe-money-gen] - in if a > maxBoundI
  2247. 268.59 s [really-safe-money-gen] + in if False
  2248. 268.59 s [really-safe-money-gen] then Nothing
  2249. 268.59 s [really-safe-money-gen] else
  2250. 268.59 s [really-safe-money-gen] let w :: Word64
  2251. 268.59 s [really-safe-money-gen]
  2252. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:197:14-20 #3
  2253. 268.59 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  2254. 268.59 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  2255. 268.59 s [really-safe-money-gen] fromDouble quantisationFactor d =
  2256. 268.59 s [really-safe-money-gen] let d' = Prelude.abs d
  2257. 268.59 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  2258. 268.59 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  2259. 268.59 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  2260. 268.59 s [really-safe-money-gen]
  2261. 268.59 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  2262. 268.59 s [really-safe-money-gen]
  2263. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:233:14-20 #3
  2264. 268.59 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  2265. 268.59 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  2266. 268.59 s [really-safe-money-gen] fromRational quantisationFactor r =
  2267. 268.59 s [really-safe-money-gen] let r' = Prelude.abs r
  2268. 268.59 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  2269. 268.59 s [really-safe-money-gen] + f = if r > 0 then Positive else Negative
  2270. 268.59 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  2271. 268.59 s [really-safe-money-gen]
  2272. 268.59 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  2273. 268.59 s [really-safe-money-gen]
  2274. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:503:10-16 #3
  2275. 268.59 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  2276. 268.59 s [really-safe-money-gen] RoundNearest -> RoundNearest
  2277. 268.59 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  2278. 268.59 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  2279. 268.59 s [really-safe-money-gen] - in if f >= 0
  2280. 268.59 s [really-safe-money-gen] + in if f > 0
  2281. 268.59 s [really-safe-money-gen] then (ma, r)
  2282. 268.59 s [really-safe-money-gen] else (negate <$> ma, -r)
  2283. 268.59 s [really-safe-money-gen]
  2284. 268.59 s [really-safe-money-gen]
  2285. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:495:12-18 #3
  2286. 268.59 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  2287. 268.59 s [really-safe-money-gen] fraction rounding account f =
  2288. 268.59 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  2289. 268.59 s [really-safe-money-gen] ro =
  2290. 268.59 s [really-safe-money-gen] - if f >= 0
  2291. 268.59 s [really-safe-money-gen] + if f > 0
  2292. 268.59 s [really-safe-money-gen] then rounding
  2293. 268.59 s [really-safe-money-gen] else case rounding of
  2294. 268.59 s [really-safe-money-gen] RoundUp -> RoundDown
  2295. 268.59 s [really-safe-money-gen]
  2296. 268.59 s [really-safe-money-gen] MaybeOp at src/Money/Account.hs:523:16-25 #1
  2297. 268.59 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  2298. 268.59 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  2299. 268.59 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  2300. 268.59 s [really-safe-money-gen] func ma r = case compare account zero of
  2301. 268.59 s [really-safe-money-gen] - EQ -> (Just zero, r)
  2302. 268.59 s [really-safe-money-gen] + EQ -> (Nothing, r)
  2303. 268.59 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  2304. 268.59 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  2305. 268.59 s [really-safe-money-gen] in func amount actualFraction
  2306. 268.59 s [really-safe-money-gen]
  2307. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:455:14-23 #3
  2308. 268.59 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  2309. 268.59 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  2310. 268.59 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  2311. 268.59 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  2312. 268.59 s [really-safe-money-gen] - if a >= zero
  2313. 268.59 s [really-safe-money-gen] + if a > zero
  2314. 268.59 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  2315. 268.59 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  2316. 268.59 s [really-safe-money-gen]
  2317. 268.59 s [really-safe-money-gen]
  2318. 268.59 s [really-safe-money-gen] Cmp at src/Money/Account.hs:451:14-23 #3
  2319. 268.59 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  2320. 268.59 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  2321. 268.59 s [really-safe-money-gen] DistributedZero -> DistributedZero
  2322. 268.59 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  2323. 268.59 s [really-safe-money-gen] - if a >= zero
  2324. 268.59 s [really-safe-money-gen] + if a > zero
  2325. 268.59 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  2326. 268.59 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  2327. 268.59 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  2328. 268.59 s [really-safe-money-gen] ations of
  2329. 268.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  2330. 268.59 s [really-safe-money-gen] Just a -> Right a
  2331. 268.59 s [really-safe-money-gen] g :: Account -> String
  2332. 268.59 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  2333. 268.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24 #1
  2334. 268.59 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  2335. 268.59 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  2336. 268.59 s [really-safe-money-gen] where
  2337. 268.59 s [really-safe-money-gen] f :: String -> Either String Account
  2338. 268.59 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  2339. 268.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  2340. 268.59 s [really-safe-money-gen] Just a -> Right a
  2341. 268.59 s [really-safe-money-gen] g :: Account -> String
  2342. 268.59 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  2343. 268.59 s [really-safe-money-gen]
  2344. 268.59 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82 #1
  2345. 268.59 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  2346. 268.59 s [really-safe-money-gen] where
  2347. 268.59 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  2348. 268.59 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  2349. 268.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  2350. 268.59 s [really-safe-money-gen] Just a -> Right a
  2351. 268.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24 #2
  2352. 268.59 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  2353. 268.59 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  2354. 268.59 s [really-safe-money-gen] where
  2355. 268.59 s [really-safe-money-gen] f :: String -> Either String Account
  2356. 268.59 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  2357. 268.59 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  2358. 268.59 s [really-safe-money-gen] - Just a -> Right a
  2359. 268.59 s [really-safe-money-gen] g :: Account -> String
  2360. 268.59 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  2361. 268.59 s [really-safe-money-gen]
  2362. 268.59 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82 #2
  2363. 268.59 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  2364. 268.59 s [really-safe-money-gen] where
  2365. 268.59 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  2366. 268.59 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  2367. 268.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  2368. 268.59 s [really-safe-money-gen] Just a -> Right a
  2369. 268.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24 #2
  2370. 268.59 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  2371. 268.59 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  2372. 268.59 s [really-safe-money-gen] where
  2373. 268.59 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  2374. 268.59 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  2375. 268.59 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  2376. 268.59 s [really-safe-money-gen] - Just a -> Right a
  2377. 268.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26 #1
  2378. 268.59 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  2379. 268.59 s [really-safe-money-gen] codec
  2380. 268.59 s [really-safe-money-gen] <?> "QuantisationFactor"
  2381. 268.59 s [really-safe-money-gen] where
  2382. 268.59 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  2383. 268.59 s [really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  2384. 268.59 s [really-safe-money-gen] Just qf -> Right qf
  2385. 268.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26 #2
  2386. 268.59 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  2387. 268.59 s [really-safe-money-gen] codec
  2388. 268.59 s [really-safe-money-gen] <?> "QuantisationFactor"
  2389. 268.59 s [really-safe-money-gen] where
  2390. 268.59 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  2391. 268.59 s [really-safe-money-gen] Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  2392. 268.59 s [really-safe-money-gen] - Just qf -> Right qf
  2393. 268.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24 #1
  2394. 268.59 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  2395. 268.60 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  2396. 268.60 s [really-safe-money-gen] where
  2397. 268.60 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  2398. 268.60 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  2399. 268.60 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  2400. 268.60 s [really-safe-money-gen] Just a -> Right a
  2401. 268.60 s [really-safe-money-gen] checkPhase completed in 3 minutes 34 seconds
  2402. 268.60 s [really-safe-money-gen] Phase: haddockPhase
  2403. 268.67 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  2404. 268.67 s [really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
  2405. 268.67 s [really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
  2406. 268.67 s [really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
  2407. 268.84 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
  2408. 268.94 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
  2409. 268.94 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
  2410. 268.95 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
  2411. 268.95 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
  2412. 268.96 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
  2413. 268.96 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
  2414. 268.96 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
  2415. 268.96 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
  2416. 268.97 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
  2417. 268.98 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
  2418. 268.98 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
  2419. 268.99 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
  2420. 269.00 s [really-safe-money-gen] Haddock coverage:
  2421. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
  2422. 269.00 s [really-safe-money-gen] Missing documentation for:
  2423. 269.00 s [really-safe-money-gen] Module header
  2424. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
  2425. 269.00 s [really-safe-money-gen] Missing documentation for:
  2426. 269.00 s [really-safe-money-gen] Module header
  2427. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
  2428. 269.00 s [really-safe-money-gen] Missing documentation for:
  2429. 269.00 s [really-safe-money-gen] Module header
  2430. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
  2431. 269.00 s [really-safe-money-gen] Missing documentation for:
  2432. 269.00 s [really-safe-money-gen] Module header
  2433. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
  2434. 269.00 s [really-safe-money-gen] Missing documentation for:
  2435. 269.00 s [really-safe-money-gen] Module header
  2436. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
  2437. 269.00 s [really-safe-money-gen] Missing documentation for:
  2438. 269.00 s [really-safe-money-gen] Module header
  2439. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
  2440. 269.00 s [really-safe-money-gen] Missing documentation for:
  2441. 269.00 s [really-safe-money-gen] Module header
  2442. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
  2443. 269.00 s [really-safe-money-gen] Missing documentation for:
  2444. 269.00 s [really-safe-money-gen] Module header
  2445. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
  2446. 269.00 s [really-safe-money-gen] Missing documentation for:
  2447. 269.00 s [really-safe-money-gen] Module header
  2448. 269.00 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
  2449. 269.00 s [really-safe-money-gen] Missing documentation for:
  2450. 269.00 s [really-safe-money-gen] Module header
  2451. 269.00 s [really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
  2452. 269.00 s [really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
  2453. 269.00 s [really-safe-money-gen] Missing documentation for:
  2454. 269.00 s [really-safe-money-gen] Module header
  2455. 269.00 s [really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
  2456. 269.00 s [really-safe-money-gen] Missing documentation for:
  2457. 269.00 s [really-safe-money-gen] Module header
  2458. 269.00 s [really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
  2459. 269.15 s [really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
  2460. 269.15 s [really-safe-money-gen] - Money.Amount.Amount
  2461. 269.15 s [really-safe-money-gen] - Money.Amount.Distribution
  2462. 269.15 s [really-safe-money-gen] - Money.Amount.Rounding
  2463. 269.15 s [really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
  2464. 269.15 s [really-safe-money-gen] - Money.Account.Account
  2465. 269.15 s [really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
  2466. 269.15 s [really-safe-money-gen] - Money.AccountOf.AccountOf
  2467. 269.15 s [really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
  2468. 269.15 s [really-safe-money-gen] - Money.AmountOf.AmountOf
  2469. 269.15 s [really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
  2470. 269.15 s [really-safe-money-gen] - Money.ConversionRate.ConversionRate
  2471. 269.15 s [really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
  2472. 269.15 s [really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
  2473. 269.15 s [really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
  2474. 269.15 s [really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
  2475. 269.15 s [really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
  2476. 269.15 s [really-safe-money-gen] - Money.Currency.Currency
  2477. 269.15 s [really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
  2478. 269.15 s [really-safe-money-gen] - Money.MultiAmount.MultiAmount
  2479. 269.15 s [really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
  2480. 269.15 s [really-safe-money-gen] - Money.MultiAccount.MultiAccount
  2481. 269.15 s [really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
  2482. 269.15 s [really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
  2483. 273.39 s [really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
  2484. 273.39 s [really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
  2485. 273.45 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  2486. 273.46 s [really-safe-money-gen] Phase: installPhase
  2487. 273.55 s [really-safe-money-gen] Installing library in /nix/store/1mvapk68v5imv6fh3kk63351avaahvww-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-F0pQpSMN0Gq54yNVluvC8U
  2488. 273.86 s [really-safe-money-gen] Phase: fixupPhase
  2489. 273.88 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/1mvapk68v5imv6fh3kk63351avaahvww-really-safe-money-gen-0.0.0.0
  2490. 273.90 s [really-safe-money-gen] shrinking /nix/store/1mvapk68v5imv6fh3kk63351avaahvww-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-gen-0.0.0.0-F0pQpSMN0Gq54yNVluvC8U-ghc9.10.3.so
  2491. 273.90 s [really-safe-money-gen] checking for references to /build/ in /nix/store/1mvapk68v5imv6fh3kk63351avaahvww-really-safe-money-gen-0.0.0.0...
  2492. 273.93 s [really-safe-money-gen] patching script interpreter paths in /nix/store/1mvapk68v5imv6fh3kk63351avaahvww-really-safe-money-gen-0.0.0.0
  2493. 273.93 s [really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/1mvapk68v5imv6fh3kk63351avaahvww-really-safe-money-gen-0.0.0.0/lib
  2494. 273.99 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/8nqwvdarcv3b8pggzq3lwf682442ihsg-really-safe-money-gen-0.0.0.0-doc
  2495. 273.99 s [really-safe-money-gen] checking for references to /build/ in /nix/store/8nqwvdarcv3b8pggzq3lwf682442ihsg-really-safe-money-gen-0.0.0.0-doc...
  2496. 274.01 s [really-safe-money-gen] patching script interpreter paths in /nix/store/8nqwvdarcv3b8pggzq3lwf682442ihsg-really-safe-money-gen-0.0.0.0-doc
  2497. 274.02 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/3y6pxw7va8bpjrrhy11mkh2v51gkxy0p-really-safe-money-gen-0.0.0.0-report
  2498. 274.03 s [really-safe-money-gen] checking for references to /build/ in /nix/store/3y6pxw7va8bpjrrhy11mkh2v51gkxy0p-really-safe-money-gen-0.0.0.0-report...
  2499. 274.06 s [really-safe-money-gen] patching script interpreter paths in /nix/store/3y6pxw7va8bpjrrhy11mkh2v51gkxy0p-really-safe-money-gen-0.0.0.0-report
  2500. 274.20 s Progress: 8 of 9 built