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

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