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

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