1. 0.02 s $ /nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout --kill-after=15s 7200s /nix/store/99b1z08awpxj8b6mzggn59gp1shljnff-nix-2.34.5/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link git+https://github.com/NorfairKing/sydtest?ref=mutation-testing&rev=ea6f1381292a87ea3f7ed6cc8a6c7421a790fa7d#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
  2. 0.08 s warning: ignoring untrusted flake configuration setting 'extra-substituters'.
  3. 0.08 s Pass '--accept-flake-config' to trust it
  4. 0.08 s warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
  5. 0.08 s Pass '--accept-flake-config' to trust it
  6. 0.57 s error (ignored): SQLite database '/var/cache/private/nix-ci-worker/eval-cache-v6/e424c01cda7040a60f0c63c62714914f1ff10c3349ffed7e5ebb481689ab37f7.sqlite' is busy
  7. 1.41 s
  8. 2.93 s Waiting for lock on sydtest-mutation-plugin-source
  9. 7.98 s Waiting for lock on sydtest-mutation-plugin
  10. 43.08 s Building really-safe-money
  11. 43.29 s [really-safe-money] Phase: setupCompilerEnvironmentPhase
  12. 43.29 s [really-safe-money] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  13. 43.54 s [really-safe-money] Phase: unpackPhase
  14. 43.54 s [really-safe-money] unpacking source archive /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/really-safe-money-0.0.0.0.tar.gz
  15. 43.55 s [really-safe-money] source root is really-safe-money-0.0.0.0
  16. 43.55 s [really-safe-money] setting SOURCE_DATE_EPOCH to timestamp 1778737784 of file "really-safe-money-0.0.0.0/src/Numeric/DecimalLiteral.hs"
  17. 43.56 s [really-safe-money] Phase: patchPhase
  18. 43.57 s [really-safe-money] Phase: compileBuildDriverPhase
  19. 43.57 s [really-safe-money] setupCompileFlags: -package-db=/build/tmp.1JDa0tM4T5/setup-package.conf.d -threaded
  20. 43.61 s [really-safe-money] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.1JDa0tM4T5/Main.o )
  21. 43.65 s [really-safe-money] [2 of 2] Linking Setup
  22. 44.80 s [really-safe-money] Phase: updateAutotoolsGnuConfigScriptsPhase
  23. 44.81 s [really-safe-money] Phase: configurePhase
  24. 44.81 s [really-safe-money] configureFlags: --verbose --prefix=/nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.1JDa0tM4T5/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --disable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --ghc-options=-fplugin-opt=Test.Syd.Mutation.Plugin:--debug --disable-optimization --ghc-option=-j1 --ghc-option=+RTS --ghc-option=-A32M --ghc-option=-M16g --ghc-option=-RTS --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
  25. 44.82 s [really-safe-money] Using Parsec parser
  26. 44.82 s [really-safe-money] Configuring really-safe-money-0.0.0.0...
  27. 45.37 s [really-safe-money] Dependency base >=4.7 && <5: using base-4.20.2.0
  28. 45.37 s [really-safe-money] Dependency containers: using containers-0.7
  29. 45.37 s [really-safe-money] Dependency deepseq: using deepseq-1.5.0.0
  30. 45.37 s [really-safe-money] Dependency validity: using validity-0.12.1.0
  31. 45.37 s [really-safe-money] Dependency validity-containers: using validity-containers-0.5.0.5
  32. 45.37 s [really-safe-money] Dependency validity-scientific: using validity-scientific-0.2.0.3
  33. 45.37 s [really-safe-money] Source component graph: component lib
  34. 45.37 s [really-safe-money] Configured component graph:
  35. 45.37 s [really-safe-money] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  36. 45.37 s [really-safe-money] include base-4.20.2.0-64da
  37. 45.37 s [really-safe-money] include containers-0.7-504a
  38. 45.37 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  39. 45.37 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  40. 45.37 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  41. 45.37 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  42. 45.37 s [really-safe-money] Linked component graph:
  43. 45.37 s [really-safe-money] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  44. 45.37 s [really-safe-money] include base-4.20.2.0-64da
  45. 45.37 s [really-safe-money] include containers-0.7-504a
  46. 45.37 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  47. 45.37 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  48. 45.37 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  49. 45.37 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  50. 45.37 s [really-safe-money] Money.Account=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Account,Money.AccountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AccountOf,Money.Amount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Amount,Money.AmountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AmountOf,Money.ConversionRate=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRate,Money.ConversionRateOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRateOf,Money.Currency=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Currency,Money.MultiAccount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAccount,Money.MultiAmount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAmount,Money.QuantisationFactor=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.QuantisationFactor,Numeric.DecimalLiteral=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Numeric.DecimalLiteral
  51. 45.37 s [really-safe-money] Ready component graph:
  52. 45.37 s [really-safe-money] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  53. 45.37 s [really-safe-money] depends base-4.20.2.0-64da
  54. 45.37 s [really-safe-money] depends containers-0.7-504a
  55. 45.37 s [really-safe-money] depends deepseq-1.5.0.0-9a2c
  56. 45.37 s [really-safe-money] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  57. 45.37 s [really-safe-money] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  58. 45.37 s [really-safe-money] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  59. 45.37 s [really-safe-money] Using Cabal-3.12.1.0 compiled by ghc-9.10
  60. 45.37 s [really-safe-money] Using compiler: ghc-9.10.3
  61. 45.37 s [really-safe-money] Using install prefix:
  62. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0
  63. 45.37 s [really-safe-money] Executables installed in:
  64. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/bin
  65. 45.37 s [really-safe-money] Libraries installed in:
  66. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  67. 45.37 s [really-safe-money] Dynamic Libraries installed in:
  68. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  69. 45.37 s [really-safe-money] Private executables installed in:
  70. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  71. 45.37 s [really-safe-money] Data files installed in:
  72. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  73. 45.37 s [really-safe-money] Documentation installed in:
  74. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  75. 45.37 s [really-safe-money] Configuration files installed in:
  76. 45.37 s [really-safe-money] /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/etc
  77. 45.37 s [really-safe-money] No alex found
  78. 45.37 s [really-safe-money] Using ar found on system at:
  79. 45.37 s [really-safe-money] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  80. 45.37 s [really-safe-money] No c2hs found
  81. 45.37 s [really-safe-money] No cpphs found
  82. 45.37 s [really-safe-money] No doctest found
  83. 45.37 s [really-safe-money] Using gcc version 14.3.0 given by user at:
  84. 45.37 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  85. 45.37 s [really-safe-money] Using ghc version 9.10.3 found on system at:
  86. 45.37 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  87. 45.37 s [really-safe-money] Using ghc-pkg version 9.10.3 found on system at:
  88. 45.37 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  89. 45.37 s [really-safe-money] No ghcjs found
  90. 45.37 s [really-safe-money] No ghcjs-pkg found
  91. 45.37 s [really-safe-money] No greencard found
  92. 45.37 s [really-safe-money] Using haddock version 2.31.1 found on system at:
  93. 45.37 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  94. 45.38 s [really-safe-money] No happy found
  95. 45.38 s [really-safe-money] Using haskell-suite found on system at: haskell-suite-dummy-location
  96. 45.38 s [really-safe-money] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  97. 45.38 s [really-safe-money] No hmake found
  98. 45.38 s [really-safe-money] Using hpc version 0.69 found on system at:
  99. 45.38 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  100. 45.38 s [really-safe-money] Using hsc2hs version 0.68.10 found on system at:
  101. 45.38 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  102. 45.38 s [really-safe-money] Using hscolour version 1.25 found on system at:
  103. 45.38 s [really-safe-money] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  104. 45.38 s [really-safe-money] No jhc found
  105. 45.38 s [really-safe-money] Using ld found on system at:
  106. 45.38 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  107. 45.38 s [really-safe-money] No pkg-config found
  108. 45.38 s [really-safe-money] Using runghc version 9.10.3 found on system at:
  109. 45.38 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  110. 45.38 s [really-safe-money] Using strip version 2.44 found on system at:
  111. 45.38 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  112. 45.38 s [really-safe-money] Using tar found on system at:
  113. 45.38 s [really-safe-money] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  114. 45.38 s [really-safe-money] No uhc found
  115. 45.53 s [really-safe-money] Phase: buildPhase
  116. 45.53 s [really-safe-money] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest
  117. 45.57 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  118. 45.57 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  119. 45.74 s [really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.o, dist/build/Numeric/DecimalLiteral.dyn_o )
  120. 46.02 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  121. 46.02 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  122. 46.02 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  123. 46.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  124. 46.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  125. 46.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  126. 46.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  127. 46.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  128. 46.02 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  129. 46.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  130. 46.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  131. 46.02 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  132. 46.02 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  133. 46.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  134. 46.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  135. 46.02 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  136. 46.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  137. 46.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  138. 46.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  139. 46.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  140. 46.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  141. 46.02 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  142. 46.02 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  143. 46.02 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  144. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  145. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  146. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  147. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  148. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  149. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  150. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  151. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  152. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  153. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  154. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  155. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  156. 46.05 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  157. 46.05 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  158. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  159. 46.05 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  160. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  161. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  162. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  163. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  164. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  165. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  166. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  167. 46.05 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  168. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  169. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  170. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  171. 46.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  172. 46.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  173. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  174. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  175. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  176. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  177. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  178. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  179. 46.05 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  180. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  181. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  182. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  183. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  184. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  185. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  186. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  187. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  188. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  189. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  190. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  191. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  192. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  193. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  194. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  195. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  196. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  197. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  198. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  199. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  200. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  201. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  202. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  203. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  204. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  205. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  206. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  207. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  208. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  209. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  210. 46.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  211. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  212. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  213. 46.05 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  214. 46.05 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  215. 46.05 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  216. 46.05 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  217. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  218. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  219. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  220. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  221. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  222. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  223. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  224. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  225. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  226. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  227. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  228. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  229. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  230. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  231. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  232. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  233. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  234. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  235. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  236. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  237. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  238. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  239. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  240. 46.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  241. 46.05 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  242. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  243. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  244. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  245. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  246. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  247. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  248. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  249. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  250. 46.05 s [really-safe-money] added mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  251. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  252. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  253. 46.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  254. 46.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  255. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  256. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  257. 46.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  258. 46.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  259. 46.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  260. 46.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  261. 46.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  262. 46.05 s [really-safe-money] added 141 mutations
  263. 47.63 s [really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.o, dist/build/Money/QuantisationFactor.dyn_o )
  264. 47.65 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  265. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  266. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  267. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  268. 47.65 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  269. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  270. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  271. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  272. 47.65 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  273. 47.65 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  274. 47.65 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  275. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  276. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  277. 47.65 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  278. 47.65 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  279. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  280. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  281. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  282. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  283. 47.65 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  284. 47.65 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  285. 47.65 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  286. 47.65 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  287. 47.65 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  288. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  289. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  290. 47.65 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  291. 47.65 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  292. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  293. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  294. 47.65 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  295. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  296. 47.65 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  297. 47.65 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  298. 47.65 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  299. 47.65 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  300. 47.65 s [really-safe-money] added 35 mutations
  301. 47.99 s [really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.o, dist/build/Money/Currency.dyn_o )
  302. 48.00 s [really-safe-money] mutation: instrumenting Money.Currency
  303. 48.00 s [really-safe-money] added 0 mutations
  304. 48.33 s [really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.o, dist/build/Money/ConversionRate.dyn_o )
  305. 48.39 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  306. 48.39 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  307. 48.39 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  308. 48.39 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  309. 48.39 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  310. 48.39 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  311. 48.39 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  312. 48.39 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  313. 48.39 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  314. 48.39 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  315. 48.39 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  316. 48.39 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  317. 48.39 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  318. 48.39 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  319. 48.39 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  320. 48.39 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  321. 48.39 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  322. 48.39 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  323. 48.40 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  324. 48.40 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  325. 48.40 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  326. 48.40 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  327. 48.40 s [really-safe-money] added 21 mutations
  328. 48.56 s [really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.o, dist/build/Money/ConversionRateOf.dyn_o )
  329. 48.56 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  330. 48.56 s [really-safe-money] added 0 mutations
  331. 48.63 s [really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.o, dist/build/Money/Amount.dyn_o )
  332. 48.70 s [really-safe-money] mutation: instrumenting Money.Amount
  333. 48.70 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  334. 48.70 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  335. 48.70 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  336. 48.70 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  337. 48.70 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  338. 48.70 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  339. 48.70 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  340. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  341. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  342. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  343. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  344. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  345. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  346. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  347. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  348. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  349. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  350. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  351. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  352. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  353. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  354. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:546:14-66
  355. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  356. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  357. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  358. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  359. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  360. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  361. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  362. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  363. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  364. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:520:14-66
  365. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  366. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  367. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  368. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  369. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  370. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  371. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  372. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  373. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:478:14-66
  374. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  375. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  376. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  377. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  378. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  379. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  380. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  381. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  382. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  383. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  384. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  385. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  386. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  387. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  388. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  389. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  390. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  391. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  392. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  393. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  394. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  395. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  396. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  397. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  398. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  399. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  400. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  401. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  402. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  403. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  404. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  405. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  406. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  407. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  408. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  409. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  410. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  411. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  412. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  413. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  414. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  415. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  416. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  417. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  418. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  419. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  420. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  421. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  422. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  423. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  424. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  425. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  426. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  427. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  428. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  429. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  430. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  431. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  432. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  433. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:497:14-66
  434. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  435. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:660:28-37
  436. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:661:19-28
  437. 48.71 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  438. 48.71 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  439. 48.71 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  440. 48.71 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  441. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  442. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  443. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  444. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  445. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  446. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  447. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  448. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  449. 48.71 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:683:16-27
  450. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  451. 48.71 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  452. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  453. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  454. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  455. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  456. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  457. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  458. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  459. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  460. 48.71 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  461. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  462. 48.71 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  463. 48.71 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  464. 48.71 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  465. 48.71 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  466. 48.71 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  467. 48.71 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  468. 48.71 s [really-safe-money] added 135 mutations
  469. 50.70 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.o, dist/build/Money/MultiAmount.dyn_o )
  470. 50.73 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  471. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  472. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  473. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  474. 50.73 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  475. 50.73 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  476. 50.73 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  477. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  478. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  479. 50.73 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  480. 50.73 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  481. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  482. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  483. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  484. 50.73 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  485. 50.73 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  486. 50.73 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  487. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  488. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  489. 50.73 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  490. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  491. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  492. 50.73 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  493. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  494. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  495. 50.73 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  496. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  497. 50.73 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  498. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  499. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  500. 50.73 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  501. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  502. 50.73 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  503. 50.73 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  504. 50.73 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  505. 50.73 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  506. 50.73 s [really-safe-money] added 35 mutations
  507. 51.37 s [really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.o, dist/build/Money/AmountOf.dyn_o )
  508. 51.39 s [really-safe-money] mutation: instrumenting Money.AmountOf
  509. 51.39 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  510. 51.39 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  511. 51.39 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  512. 51.39 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  513. 51.39 s [really-safe-money] added 4 mutations
  514. 51.62 s [really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.o, dist/build/Money/Account.dyn_o )
  515. 51.63 s [really-safe-money] mutation: instrumenting Money.Account
  516. 51.63 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  517. 51.63 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  518. 51.63 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  519. 51.63 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  520. 51.63 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  521. 51.63 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  522. 51.64 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  523. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  524. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  525. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  526. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  527. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  528. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  529. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  530. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  531. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  532. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  533. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  534. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  535. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  536. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  537. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  538. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  539. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  540. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  541. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  542. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  543. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  544. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  545. 51.64 s [really-safe-money] added mutation MaybeOp at src/Money/Account.hs:523:16-25
  546. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  547. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  548. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  549. 51.64 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  550. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  551. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  552. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  553. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  554. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  555. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  556. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  557. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  558. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  559. 51.64 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  560. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  561. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  562. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  563. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  564. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  565. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  566. 51.64 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  567. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  568. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  569. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  570. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  571. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  572. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  573. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  574. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  575. 51.64 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  576. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  577. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  578. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  579. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  580. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  581. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  582. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  583. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  584. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  585. 51.64 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  586. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  587. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  588. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  589. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  590. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  591. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  592. 51.64 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  593. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  594. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  595. 51.64 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  596. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  597. 51.64 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  598. 51.64 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  599. 51.64 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  600. 51.64 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  601. 51.64 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  602. 51.64 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  603. 51.64 s [really-safe-money] added 87 mutations
  604. 52.59 s [really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.o, dist/build/Money/MultiAccount.dyn_o )
  605. 52.60 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  606. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  607. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  608. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  609. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  610. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  611. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  612. 52.60 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  613. 52.60 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  614. 52.60 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  615. 52.60 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  616. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  617. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  618. 52.60 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  619. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  620. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  621. 52.60 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  622. 52.60 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  623. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  624. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  625. 52.60 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  626. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  627. 52.60 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  628. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  629. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  630. 52.60 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  631. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  632. 52.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  633. 52.60 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  634. 52.60 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  635. 52.60 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  636. 52.60 s [really-safe-money] added 30 mutations
  637. 53.11 s [really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.o, dist/build/Money/AccountOf.dyn_o )
  638. 53.12 s [really-safe-money] mutation: instrumenting Money.AccountOf
  639. 53.12 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  640. 53.12 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  641. 53.12 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  642. 53.12 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  643. 53.12 s [really-safe-money] added 4 mutations
  644. 53.30 s [really-safe-money] [12 of 12] Compiling Paths_really_safe_money ( dist/build/autogen/Paths_really_safe_money.hs, dist/build/Paths_really_safe_money.o, dist/build/Paths_really_safe_money.dyn_o )
  645. 53.59 s [really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.p_o )
  646. 53.88 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  647. 53.94 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  648. 53.94 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  649. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  650. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  651. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  652. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  653. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  654. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  655. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  656. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  657. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  658. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  659. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  660. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  661. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  662. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  663. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  664. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  665. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  666. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  667. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  668. 53.95 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  669. 53.95 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  670. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  671. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  672. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  673. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  674. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  675. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  676. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  677. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  678. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  679. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  680. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  681. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  682. 53.95 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  683. 53.95 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  684. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  685. 53.95 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  686. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  687. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  688. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  689. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  690. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  691. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  692. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  693. 53.95 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  694. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  695. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  696. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  697. 53.95 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  698. 53.95 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  699. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  700. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  701. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  702. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  703. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  704. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  705. 53.95 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  706. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  707. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  708. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  709. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  710. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  711. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  712. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  713. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  714. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  715. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  716. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  717. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  718. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  719. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  720. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  721. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  722. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  723. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  724. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  725. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  726. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  727. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  728. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  729. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  730. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  731. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  732. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  733. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  734. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  735. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  736. 53.95 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  737. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  738. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  739. 53.95 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  740. 53.95 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  741. 53.95 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  742. 53.95 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  743. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  744. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  745. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  746. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  747. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  748. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  749. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  750. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  751. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  752. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  753. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  754. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  755. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  756. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  757. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  758. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  759. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  760. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  761. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  762. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  763. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  764. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  765. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  766. 53.95 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  767. 53.95 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  768. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  769. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  770. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  771. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  772. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  773. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  774. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  775. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  776. 53.95 s [really-safe-money] added mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  777. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  778. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  779. 53.95 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  780. 53.95 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  781. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  782. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  783. 53.95 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  784. 53.95 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  785. 53.95 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  786. 53.95 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  787. 53.95 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  788. 53.95 s [really-safe-money] added 141 mutations
  789. 55.58 s [really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.p_o )
  790. 55.59 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  791. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  792. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  793. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  794. 55.59 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  795. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  796. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  797. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  798. 55.59 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  799. 55.59 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  800. 55.59 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  801. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  802. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  803. 55.59 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  804. 55.59 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  805. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  806. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  807. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  808. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  809. 55.59 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  810. 55.59 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  811. 55.59 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  812. 55.59 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  813. 55.59 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  814. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  815. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  816. 55.59 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  817. 55.59 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  818. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  819. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  820. 55.59 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  821. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  822. 55.59 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  823. 55.59 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  824. 55.59 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  825. 55.59 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  826. 55.59 s [really-safe-money] added 35 mutations
  827. 56.01 s [really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.p_o )
  828. 56.02 s [really-safe-money] mutation: instrumenting Money.Currency
  829. 56.02 s [really-safe-money] added 0 mutations
  830. 56.43 s [really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.p_o )
  831. 56.43 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  832. 56.43 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  833. 56.43 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  834. 56.43 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  835. 56.43 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  836. 56.43 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  837. 56.44 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  838. 56.44 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  839. 56.44 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  840. 56.44 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  841. 56.44 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  842. 56.44 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  843. 56.44 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  844. 56.44 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  845. 56.44 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  846. 56.44 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  847. 56.44 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  848. 56.44 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  849. 56.44 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  850. 56.44 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  851. 56.44 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  852. 56.44 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  853. 56.44 s [really-safe-money] added 21 mutations
  854. 56.74 s [really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.p_o )
  855. 56.74 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  856. 56.74 s [really-safe-money] added 0 mutations
  857. 56.91 s [really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.p_o )
  858. 56.95 s [really-safe-money] mutation: instrumenting Money.Amount
  859. 56.95 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  860. 56.95 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  861. 56.95 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  862. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  863. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  864. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  865. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  866. 56.95 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  867. 56.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  868. 56.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  869. 56.95 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  870. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  871. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  872. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  873. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  874. 56.95 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  875. 56.95 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  876. 56.95 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  877. 56.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  878. 56.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  879. 56.95 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  880. 56.95 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:546:14-66
  881. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  882. 56.95 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  883. 56.95 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  884. 56.95 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  885. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  886. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  887. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  888. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  889. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  890. 56.96 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:520:14-66
  891. 56.96 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  892. 56.96 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  893. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  894. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  895. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  896. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  897. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  898. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  899. 56.96 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:478:14-66
  900. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  901. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  902. 56.96 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  903. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  904. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  905. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  906. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  907. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  908. 56.96 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  909. 56.96 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  910. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  911. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  912. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  913. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  914. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  915. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  916. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  917. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  918. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  919. 56.96 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  920. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  921. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  922. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  923. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  924. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  925. 56.96 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  926. 56.96 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  927. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  928. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  929. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  930. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  931. 56.96 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  932. 56.96 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  933. 56.96 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  934. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  935. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  936. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  937. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  938. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  939. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  940. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  941. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  942. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  943. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  944. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  945. 56.96 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  946. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  947. 56.96 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  948. 56.96 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  949. 56.96 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  950. 56.98 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  951. 56.98 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  952. 56.98 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  953. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  954. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  955. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  956. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  957. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  958. 56.98 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  959. 56.98 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:497:14-66
  960. 56.98 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  961. 56.98 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:660:28-37
  962. 56.98 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:661:19-28
  963. 56.98 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  964. 56.98 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  965. 56.98 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  966. 56.98 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  967. 56.98 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  968. 56.98 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  969. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  970. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  971. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  972. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  973. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  974. 56.98 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  975. 56.98 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:683:16-27
  976. 56.98 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  977. 56.98 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  978. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  979. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  980. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  981. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  982. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  983. 56.98 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  984. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  985. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  986. 56.98 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  987. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  988. 56.98 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  989. 56.98 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  990. 56.98 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  991. 56.98 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  992. 56.98 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  993. 56.98 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  994. 56.98 s [really-safe-money] added 135 mutations
  995. 58.98 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.p_o )
  996. 59.05 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  997. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  998. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  999. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  1000. 59.05 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1001. 59.05 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1002. 59.05 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1003. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  1004. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  1005. 59.05 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  1006. 59.05 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  1007. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1008. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1009. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1010. 59.05 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  1011. 59.05 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  1012. 59.05 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  1013. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  1014. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  1015. 59.05 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  1016. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  1017. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  1018. 59.05 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  1019. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  1020. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  1021. 59.05 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  1022. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  1023. 59.05 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  1024. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  1025. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  1026. 59.05 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  1027. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  1028. 59.05 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  1029. 59.05 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  1030. 59.05 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  1031. 59.05 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  1032. 59.05 s [really-safe-money] added 35 mutations
  1033. 59.68 s [really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.p_o )
  1034. 59.70 s [really-safe-money] mutation: instrumenting Money.AmountOf
  1035. 59.70 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1036. 59.70 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1037. 59.70 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1038. 59.70 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1039. 59.70 s [really-safe-money] added 4 mutations
  1040. 60.02 s [really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.p_o )
  1041. 60.03 s [really-safe-money] mutation: instrumenting Money.Account
  1042. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1043. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1044. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1045. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1046. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  1047. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  1048. 60.03 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  1049. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1050. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1051. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1052. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1053. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1054. 60.03 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1055. 60.03 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1056. 60.03 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1057. 60.03 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1058. 60.03 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  1059. 60.03 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  1060. 60.03 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  1061. 60.03 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1062. 60.03 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1063. 60.03 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1064. 60.03 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  1065. 60.03 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  1066. 60.03 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  1067. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1068. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1069. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1070. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1071. 60.04 s [really-safe-money] added mutation MaybeOp at src/Money/Account.hs:523:16-25
  1072. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1073. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1074. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1075. 60.04 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  1076. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1077. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1078. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1079. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  1080. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  1081. 60.04 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  1082. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1083. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1084. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1085. 60.04 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  1086. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1087. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1088. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1089. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  1090. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  1091. 60.04 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  1092. 60.04 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  1093. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1094. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1095. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1096. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  1097. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  1098. 60.04 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  1099. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  1100. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  1101. 60.04 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  1102. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1103. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1104. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1105. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  1106. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  1107. 60.04 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  1108. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  1109. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  1110. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  1111. 60.04 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  1112. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1113. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1114. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1115. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  1116. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  1117. 60.04 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  1118. 60.04 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  1119. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1120. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1121. 60.04 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1122. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  1123. 60.04 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  1124. 60.04 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  1125. 60.04 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  1126. 60.04 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  1127. 60.04 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  1128. 60.04 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  1129. 60.04 s [really-safe-money] added 87 mutations
  1130. 60.89 s [really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.p_o )
  1131. 60.90 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  1132. 60.90 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1133. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1134. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1135. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1136. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1137. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1138. 60.91 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  1139. 60.91 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  1140. 60.91 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  1141. 60.91 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  1142. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  1143. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  1144. 60.91 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  1145. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  1146. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  1147. 60.91 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  1148. 60.91 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  1149. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  1150. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  1151. 60.91 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  1152. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  1153. 60.91 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  1154. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  1155. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  1156. 60.91 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  1157. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  1158. 60.91 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  1159. 60.91 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  1160. 60.91 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  1161. 60.91 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  1162. 60.91 s [really-safe-money] added 30 mutations
  1163. 61.44 s [really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.p_o )
  1164. 61.45 s [really-safe-money] mutation: instrumenting Money.AccountOf
  1165. 61.45 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1166. 61.45 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1167. 61.45 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1168. 61.45 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1169. 61.45 s [really-safe-money] added 4 mutations
  1170. 61.74 s [really-safe-money] [12 of 12] Compiling Paths_really_safe_money ( dist/build/autogen/Paths_really_safe_money.hs, dist/build/Paths_really_safe_money.p_o )
  1171. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  1172. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  1173. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  1174. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  1175. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  1176. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  1177. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  1178. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  1179. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  1180. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  1181. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  1182. 62.13 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  1183. 62.90 s [really-safe-money] mutation-nix: manifest output at /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest:
  1184. 62.90 s [really-safe-money] total 384
  1185. 62.90 s [really-safe-money] drwxr-xr-x 2 nixbld nixbld 4096 May 15 06:09 .
  1186. 62.90 s [really-safe-money] drwxrwxr-t 238 nobody nixbld 28672 May 15 06:09 ..
  1187. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 66992 May 15 06:09 Money.Account.json
  1188. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 5043 May 15 06:09 Money.AccountOf.json
  1189. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 84451 May 15 06:09 Money.Amount.json
  1190. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 4850 May 15 06:09 Money.AmountOf.json
  1191. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 12979 May 15 06:09 Money.ConversionRate.json
  1192. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 15 06:09 Money.ConversionRateOf.json
  1193. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 15 06:09 Money.Currency.json
  1194. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 22648 May 15 06:09 Money.MultiAccount.json
  1195. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 25712 May 15 06:09 Money.MultiAmount.json
  1196. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 18786 May 15 06:09 Money.QuantisationFactor.json
  1197. 62.90 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 88354 May 15 06:09 Numeric.DecimalLiteral.json
  1198. 62.90 s [really-safe-money] mutation-nix: building remaining components with plugin silenced
  1199. 62.94 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  1200. 62.94 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  1201. 64.31 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  1202. 64.31 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  1203. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  1204. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  1205. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  1206. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  1207. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  1208. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  1209. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  1210. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  1211. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  1212. 64.35 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  1213. 65.04 s [really-safe-money] Phase: haddockPhase
  1214. 65.04 s [really-safe-money] Phase: installPhase
  1215. 65.08 s [really-safe-money] Installing library in /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1216. 65.40 s [really-safe-money] Phase: fixupPhase
  1217. 65.42 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0
  1218. 65.43 s [really-safe-money] shrinking /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9-ghc9.10.3.so
  1219. 65.44 s [really-safe-money] checking for references to /build/ in /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0...
  1220. 65.47 s [really-safe-money] patching script interpreter paths in /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0
  1221. 65.47 s [really-safe-money] stripping (with command strip and flags -S -p) in /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/lib /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0/bin
  1222. 65.65 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest
  1223. 65.65 s [really-safe-money] checking for references to /build/ in /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest...
  1224. 65.66 s [really-safe-money] patching script interpreter paths in /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest
  1225. 65.75 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0
  1226. 66.17 s [post-build-hook] Pushing 2 paths (195 are already present) using zstd to cache sydtest ⏳
  1227. 66.17 s [post-build-hook]
  1228. 66.53 s [post-build-hook] Pushing /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest (324.41 KiB)
  1229. 66.56 s [post-build-hook] Pushing /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0 (14.97 MiB)
  1230. 68.41 s [post-build-hook]
  1231. 68.41 s [post-build-hook] All done.
  1232. 68.43 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest /nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0
  1233. 68.47 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1234. 68.49 s [post-build-hook] copying 2 paths...
  1235. 68.49 s [post-build-hook] copying path '/nix/store/sn29y0wbissvhb26wk2yg4x2mx8z2r07-really-safe-money-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1236. 68.49 s [post-build-hook] copying path '/nix/store/dav2jlmrqs0701cmj0vd4m6574x81wm1-really-safe-money-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
  1237. 71.75 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1238. 71.97 s [post-build-hook] copying 1 paths...
  1239. 71.99 s [post-build-hook] copying path '/nix/store/jansac7q2gwf5kkgf6d6aykfbyq5266n-really-safe-money-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1240. 72.18 s Progress: 1 of 7 built
  1241. 72.23 s Building really-safe-money-autodocodec-source
  1242. 72.26 s Building really-safe-money-gen-source
  1243. 72.44 s [really-safe-money-autodocodec-source] Phase: setupCompilerEnvironmentPhase
  1244. 72.44 s [really-safe-money-autodocodec-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1245. 72.54 s [really-safe-money-gen-source] Phase: setupCompilerEnvironmentPhase
  1246. 72.54 s [really-safe-money-gen-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1247. 72.70 s [really-safe-money-autodocodec-source] Phase: unpackPhase
  1248. 72.71 s [really-safe-money-autodocodec-source] unpacking source archive /nix/store/8krpxqimxqvympfqdqxg1jzjg2jrcglb-really-safe-money-autodocodec
  1249. 72.71 s [really-safe-money-autodocodec-source] source root is really-safe-money-autodocodec
  1250. 72.72 s [really-safe-money-autodocodec-source] Phase: patchPhase
  1251. 72.73 s [really-safe-money-autodocodec-source] Phase: compileBuildDriverPhase
  1252. 72.74 s [really-safe-money-autodocodec-source] setupCompileFlags: -package-db=/build/tmp.UrFaxrKGOJ/setup-package.conf.d -threaded
  1253. 72.78 s [really-safe-money-autodocodec-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.UrFaxrKGOJ/Main.o )
  1254. 72.83 s [really-safe-money-autodocodec-source] [2 of 2] Linking Setup
  1255. 72.87 s [really-safe-money-gen-source] Phase: unpackPhase
  1256. 72.88 s [really-safe-money-gen-source] unpacking source archive /nix/store/igm3hbdpcwgfbdx9yjyf6d68w1ifih08-really-safe-money-gen
  1257. 72.88 s [really-safe-money-gen-source] source root is really-safe-money-gen
  1258. 72.89 s [really-safe-money-gen-source] Phase: patchPhase
  1259. 72.90 s [really-safe-money-gen-source] Phase: compileBuildDriverPhase
  1260. 72.91 s [really-safe-money-gen-source] setupCompileFlags: -package-db=/build/tmp.xrAqKSkSgE/setup-package.conf.d -threaded
  1261. 72.95 s [really-safe-money-gen-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.xrAqKSkSgE/Main.o )
  1262. 73.00 s [really-safe-money-gen-source] [2 of 2] Linking Setup
  1263. 74.07 s [really-safe-money-autodocodec-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  1264. 74.08 s [really-safe-money-autodocodec-source] Phase: configurePhase
  1265. 74.09 s [really-safe-money-autodocodec-source] configureFlags: --verbose --prefix=/nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/really-safe-money-autodocodec-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.UrFaxrKGOJ/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
  1266. 74.10 s [really-safe-money-autodocodec-source] Using Parsec parser
  1267. 74.10 s [really-safe-money-autodocodec-source] Configuring really-safe-money-autodocodec-0.0.0.0...
  1268. 74.26 s [really-safe-money-gen-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  1269. 74.27 s [really-safe-money-gen-source] Phase: configurePhase
  1270. 74.27 s [really-safe-money-gen-source] configureFlags: --verbose --prefix=/nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/really-safe-money-gen-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.xrAqKSkSgE/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
  1271. 74.28 s [really-safe-money-gen-source] Using Parsec parser
  1272. 74.28 s [really-safe-money-gen-source] Configuring really-safe-money-gen-0.0.0.0...
  1273. 74.69 s [really-safe-money-autodocodec-source] Dependency autodocodec: using autodocodec-0.5.0.0
  1274. 74.69 s [really-safe-money-autodocodec-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1275. 74.69 s [really-safe-money-autodocodec-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1276. 74.69 s [really-safe-money-autodocodec-source] Source component graph: component lib
  1277. 74.69 s [really-safe-money-autodocodec-source] Configured component graph:
  1278. 74.69 s [really-safe-money-autodocodec-source] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1279. 74.69 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1280. 74.69 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  1281. 74.69 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1282. 74.69 s [really-safe-money-autodocodec-source] Linked component graph:
  1283. 74.69 s [really-safe-money-autodocodec-source] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1284. 74.69 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1285. 74.69 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  1286. 74.69 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1287. 74.69 s [really-safe-money-autodocodec-source] Money.Account.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Account.Codec,Money.AccountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AccountOf.Codec,Money.Amount.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Amount.Codec,Money.AmountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AmountOf.Codec,Money.QuantisationFactor.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.QuantisationFactor.Codec,Numeric.DecimalLiteral.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Numeric.DecimalLiteral.Codec
  1288. 74.69 s [really-safe-money-autodocodec-source] Ready component graph:
  1289. 74.69 s [really-safe-money-autodocodec-source] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1290. 74.69 s [really-safe-money-autodocodec-source] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1291. 74.69 s [really-safe-money-autodocodec-source] depends base-4.20.2.0-64da
  1292. 74.69 s [really-safe-money-autodocodec-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1293. 74.69 s [really-safe-money-autodocodec-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1294. 74.69 s [really-safe-money-autodocodec-source] Using compiler: ghc-9.10.3
  1295. 74.69 s [really-safe-money-autodocodec-source] Using install prefix:
  1296. 74.69 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0
  1297. 74.70 s [really-safe-money-autodocodec-source] Executables installed in:
  1298. 74.70 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/bin
  1299. 74.70 s [really-safe-money-autodocodec-source] Libraries installed in:
  1300. 74.70 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1301. 74.70 s [really-safe-money-autodocodec-source] Dynamic Libraries installed in:
  1302. 74.70 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1303. 74.70 s [really-safe-money-autodocodec-source] Private executables installed in:
  1304. 74.70 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
  1305. 74.70 s [really-safe-money-autodocodec-source] Data files installed in:
  1306. 74.70 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
  1307. 74.70 s [really-safe-money-autodocodec-source] Documentation installed in: /share/doc/really-safe-money-autodocodec-0.0.0.0
  1308. 74.70 s [really-safe-money-autodocodec-source] Configuration files installed in:
  1309. 74.70 s [really-safe-money-autodocodec-source] /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/etc
  1310. 74.70 s [really-safe-money-autodocodec-source] No alex found
  1311. 74.70 s [really-safe-money-autodocodec-source] Using ar found on system at:
  1312. 74.70 s [really-safe-money-autodocodec-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1313. 74.70 s [really-safe-money-autodocodec-source] No c2hs found
  1314. 74.70 s [really-safe-money-autodocodec-source] No cpphs found
  1315. 74.70 s [really-safe-money-autodocodec-source] No doctest found
  1316. 74.70 s [really-safe-money-autodocodec-source] Using gcc version 14.3.0 given by user at:
  1317. 74.70 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1318. 74.70 s [really-safe-money-autodocodec-source] Using ghc version 9.10.3 found on system at:
  1319. 74.70 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1320. 74.70 s [really-safe-money-autodocodec-source] Using ghc-pkg version 9.10.3 found on system at:
  1321. 74.70 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1322. 74.70 s [really-safe-money-autodocodec-source] No ghcjs found
  1323. 74.70 s [really-safe-money-autodocodec-source] No ghcjs-pkg found
  1324. 74.70 s [really-safe-money-autodocodec-source] No greencard found
  1325. 74.70 s [really-safe-money-autodocodec-source] Using haddock version 2.31.1 found on system at:
  1326. 74.70 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1327. 74.70 s [really-safe-money-autodocodec-source] No happy found
  1328. 74.70 s [really-safe-money-autodocodec-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  1329. 74.70 s [really-safe-money-autodocodec-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1330. 74.70 s [really-safe-money-autodocodec-source] No hmake found
  1331. 74.70 s [really-safe-money-autodocodec-source] Using hpc version 0.69 found on system at:
  1332. 74.70 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1333. 74.70 s [really-safe-money-autodocodec-source] Using hsc2hs version 0.68.10 found on system at:
  1334. 74.70 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1335. 74.70 s [really-safe-money-autodocodec-source] Using hscolour version 1.25 found on system at:
  1336. 74.70 s [really-safe-money-autodocodec-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1337. 74.70 s [really-safe-money-autodocodec-source] No jhc found
  1338. 74.70 s [really-safe-money-autodocodec-source] Using ld found on system at:
  1339. 74.70 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1340. 74.70 s [really-safe-money-autodocodec-source] No pkg-config found
  1341. 74.70 s [really-safe-money-autodocodec-source] Using runghc version 9.10.3 found on system at:
  1342. 74.70 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1343. 74.70 s [really-safe-money-autodocodec-source] Using strip version 2.44 found on system at:
  1344. 74.70 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1345. 74.70 s [really-safe-money-autodocodec-source] Using tar found on system at:
  1346. 74.70 s [really-safe-money-autodocodec-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1347. 74.70 s [really-safe-money-autodocodec-source] No uhc found
  1348. 74.93 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1349. 74.93 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1350. 74.93 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  1351. 74.93 s [really-safe-money-gen-source] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  1352. 74.93 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1353. 74.93 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1354. 74.93 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1355. 74.93 s [really-safe-money-gen-source] Dependency criterion: using criterion-1.6.4.0
  1356. 74.93 s [really-safe-money-gen-source] Dependency deepseq: using deepseq-1.5.0.0
  1357. 74.93 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  1358. 74.93 s [really-safe-money-gen-source] Dependency genvalidity-criterion: using genvalidity-criterion-1.1.0.0
  1359. 74.93 s [really-safe-money-gen-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  1360. 74.93 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1361. 74.93 s [really-safe-money-gen-source] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  1362. 74.93 s [really-safe-money-gen-source] Dependency vector: using vector-0.13.2.0
  1363. 74.93 s [really-safe-money-gen-source] Source component graph:
  1364. 74.93 s [really-safe-money-gen-source] component lib
  1365. 74.93 s [really-safe-money-gen-source] component bench:really-safe-money-bench dependency lib
  1366. 74.93 s [really-safe-money-gen-source] Configured component graph:
  1367. 74.93 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1368. 74.93 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1369. 74.93 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1370. 74.93 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1371. 74.93 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1372. 74.93 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1373. 74.93 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1374. 74.93 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1375. 74.93 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1376. 74.93 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1377. 74.93 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  1378. 74.93 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1379. 74.93 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1380. 74.93 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1381. 74.93 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1382. 74.93 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1383. 74.93 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1384. 74.93 s [really-safe-money-gen-source] Linked component graph:
  1385. 74.93 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1386. 74.93 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1387. 74.93 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1388. 74.93 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1389. 74.93 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1390. 74.93 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1391. 74.93 s [really-safe-money-gen-source] Money.Account.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Account.Gen,Money.AccountOf.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.AccountOf.Gen,Money.Amount.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Amount.Gen,Money.AmountOf.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.AmountOf.Gen,Money.ConversionRate.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.ConversionRate.Gen,Money.ConversionRateOf.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.ConversionRateOf.Gen,Money.Currency.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Currency.Gen,Money.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Gen,Money.MultiAccount.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.MultiAccount.Gen,Money.MultiAmount.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.MultiAmount.Gen,Money.QuantisationFactor.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.QuantisationFactor.Gen,Numeric.DecimalLiteral.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Numeric.DecimalLiteral.Gen
  1392. 74.93 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1393. 74.93 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1394. 74.93 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1395. 74.93 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1396. 74.93 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  1397. 74.93 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1398. 74.93 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1399. 74.93 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1400. 74.93 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1401. 74.93 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1402. 74.93 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1403. 74.93 s [really-safe-money-gen-source] Ready component graph:
  1404. 74.93 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1405. 74.93 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1406. 74.93 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  1407. 74.93 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1408. 74.93 s [really-safe-money-gen-source] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1409. 74.93 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1410. 74.93 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1411. 74.93 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1412. 74.93 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  1413. 74.93 s [really-safe-money-gen-source] depends criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1414. 74.93 s [really-safe-money-gen-source] depends deepseq-1.5.0.0-9a2c
  1415. 74.93 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1416. 74.93 s [really-safe-money-gen-source] depends genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1417. 74.93 s [really-safe-money-gen-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1418. 74.93 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1419. 74.93 s [really-safe-money-gen-source] depends really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1420. 74.93 s [really-safe-money-gen-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1421. 74.93 s [really-safe-money-gen-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1422. 74.93 s [really-safe-money-gen-source] Using compiler: ghc-9.10.3
  1423. 74.93 s [really-safe-money-gen-source] Using install prefix:
  1424. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0
  1425. 74.93 s [really-safe-money-gen-source] Executables installed in:
  1426. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0/bin
  1427. 74.93 s [really-safe-money-gen-source] Libraries installed in:
  1428. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-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-6HAQXS408A94VVAcwfSL53
  1429. 74.93 s [really-safe-money-gen-source] Dynamic Libraries installed in:
  1430. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1431. 74.93 s [really-safe-money-gen-source] Private executables installed in:
  1432. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
  1433. 74.93 s [really-safe-money-gen-source] Data files installed in:
  1434. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
  1435. 74.93 s [really-safe-money-gen-source] Documentation installed in: /share/doc/really-safe-money-gen-0.0.0.0
  1436. 74.93 s [really-safe-money-gen-source] Configuration files installed in:
  1437. 74.93 s [really-safe-money-gen-source] /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0/etc
  1438. 74.93 s [really-safe-money-gen-source] No alex found
  1439. 74.93 s [really-safe-money-gen-source] Using ar found on system at:
  1440. 74.93 s [really-safe-money-gen-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1441. 74.93 s [really-safe-money-gen-source] No c2hs found
  1442. 74.93 s [really-safe-money-gen-source] No cpphs found
  1443. 74.93 s [really-safe-money-gen-source] No doctest found
  1444. 74.93 s [really-safe-money-gen-source] Using gcc version 14.3.0 given by user at:
  1445. 74.93 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1446. 74.93 s [really-safe-money-gen-source] Using ghc version 9.10.3 found on system at:
  1447. 74.93 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1448. 74.93 s [really-safe-money-gen-source] Using ghc-pkg version 9.10.3 found on system at:
  1449. 74.93 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1450. 74.93 s [really-safe-money-gen-source] No ghcjs found
  1451. 74.93 s [really-safe-money-gen-source] No ghcjs-pkg found
  1452. 74.93 s [really-safe-money-gen-source] No greencard found
  1453. 74.93 s [really-safe-money-gen-source] Using haddock version 2.31.1 found on system at:
  1454. 74.93 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1455. 74.93 s [really-safe-money-gen-source] No happy found
  1456. 74.93 s [really-safe-money-gen-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  1457. 74.93 s [really-safe-money-gen-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1458. 74.93 s [really-safe-money-gen-source] No hmake found
  1459. 74.93 s [really-safe-money-gen-source] Using hpc version 0.69 found on system at:
  1460. 74.93 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1461. 74.93 s [really-safe-money-gen-source] Using hsc2hs version 0.68.10 found on system at:
  1462. 74.93 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1463. 74.93 s [really-safe-money-gen-source] Using hscolour version 1.25 found on system at:
  1464. 74.93 s [really-safe-money-gen-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1465. 74.93 s [really-safe-money-gen-source] No jhc found
  1466. 74.93 s [really-safe-money-gen-source] Using ld found on system at:
  1467. 74.93 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1468. 74.93 s [really-safe-money-gen-source] No pkg-config found
  1469. 74.93 s [really-safe-money-gen-source] Using runghc version 9.10.3 found on system at:
  1470. 74.93 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1471. 74.93 s [really-safe-money-gen-source] Using strip version 2.44 found on system at:
  1472. 74.93 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1473. 74.93 s [really-safe-money-gen-source] Using tar found on system at:
  1474. 74.93 s [really-safe-money-gen-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1475. 74.93 s [really-safe-money-gen-source] No uhc found
  1476. 74.95 s [really-safe-money-autodocodec-source] Phase: buildPhase
  1477. 74.96 s [really-safe-money-autodocodec-source] Distribution quality errors:
  1478. 74.96 s [really-safe-money-autodocodec-source] [no-syn-desc] No 'synopsis' or 'description' field.
  1479. 74.96 s [really-safe-money-autodocodec-source] Distribution quality warnings:
  1480. 74.96 s [really-safe-money-autodocodec-source] [no-category] No 'category' field.
  1481. 74.96 s [really-safe-money-autodocodec-source] [no-maintainer] No 'maintainer' field.
  1482. 74.96 s [really-safe-money-autodocodec-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  1483. 74.96 s [really-safe-money-autodocodec-source] you want?
  1484. 74.96 s [really-safe-money-autodocodec-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  1485. 74.96 s [really-safe-money-autodocodec-source] - autodocodec
  1486. 74.96 s [really-safe-money-autodocodec-source] - really-safe-money
  1487. 74.96 s [really-safe-money-autodocodec-source] Please add them. There is more information at https://pvp.haskell.org/
  1488. 74.96 s [really-safe-money-autodocodec-source] Note: the public hackage server would reject this package.
  1489. 74.96 s [really-safe-money-autodocodec-source] Building source dist for really-safe-money-autodocodec-0.0.0.0...
  1490. 74.98 s [really-safe-money-autodocodec-source] Source tarball created: dist/really-safe-money-autodocodec-0.0.0.0.tar.gz
  1491. 74.98 s [really-safe-money-autodocodec-source] Phase: haddockPhase
  1492. 74.99 s [really-safe-money-autodocodec-source] Phase: installPhase
  1493. 75.00 s [really-safe-money-autodocodec-source] Phase: fixupPhase
  1494. 75.03 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0
  1495. 75.41 s [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
  1496. 75.41 s [post-build-hook]
  1497. 75.75 s [post-build-hook] Pushing /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0 (5.45 KiB)
  1498. 76.79 s [post-build-hook]
  1499. 76.79 s [post-build-hook] All done.
  1500. 76.81 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0
  1501. 76.85 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1502. 76.86 s [post-build-hook] copying 1 paths...
  1503. 76.86 s [post-build-hook] copying path '/nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1504. 77.14 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1505. 77.36 s [post-build-hook] copying 1 paths...
  1506. 77.41 s [post-build-hook] copying path '/nix/store/ci0f81v6m53hf03x1pk4ad1c2r8d4aa7-really-safe-money-autodocodec-source-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1507. 77.54 s Progress: 2 of 6 built (1 building)
  1508. 77.58 s Building really-safe-money-autodocodec
  1509. 77.58 s [really-safe-money-gen-source] Phase: buildPhase
  1510. 77.58 s [really-safe-money-gen-source] Distribution quality errors:
  1511. 77.58 s [really-safe-money-gen-source] [no-syn-desc] No 'synopsis' or 'description' field.
  1512. 77.58 s [really-safe-money-gen-source] Distribution quality warnings:
  1513. 77.58 s [really-safe-money-gen-source] [no-category] No 'category' field.
  1514. 77.58 s [really-safe-money-gen-source] [no-maintainer] No 'maintainer' field.
  1515. 77.58 s [really-safe-money-gen-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  1516. 77.58 s [really-safe-money-gen-source] you want?
  1517. 77.58 s [really-safe-money-gen-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  1518. 77.58 s [really-safe-money-gen-source] - QuickCheck
  1519. 77.58 s [really-safe-money-gen-source] - genvalidity
  1520. 77.58 s [really-safe-money-gen-source] - genvalidity-containers
  1521. 77.58 s [really-safe-money-gen-source] - really-safe-money
  1522. 77.58 s [really-safe-money-gen-source] Please add them. There is more information at https://pvp.haskell.org/
  1523. 77.58 s [really-safe-money-gen-source] Note: the public hackage server would reject this package.
  1524. 77.58 s [really-safe-money-gen-source] Building source dist for really-safe-money-gen-0.0.0.0...
  1525. 77.58 s [really-safe-money-gen-source] Source tarball created: dist/really-safe-money-gen-0.0.0.0.tar.gz
  1526. 77.58 s [really-safe-money-gen-source] Phase: haddockPhase
  1527. 77.58 s [really-safe-money-gen-source] Phase: installPhase
  1528. 77.58 s [really-safe-money-gen-source] Phase: fixupPhase
  1529. 77.61 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0
  1530. 77.98 s [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
  1531. 77.98 s [post-build-hook]
  1532. 78.33 s [post-build-hook] Pushing /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0 (16.64 KiB)
  1533. 79.35 s [post-build-hook]
  1534. 79.35 s [post-build-hook] All done.
  1535. 79.42 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0
  1536. 79.58 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1537. 79.62 s [post-build-hook] copying 1 paths...
  1538. 79.62 s [post-build-hook] copying path '/nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1539. 80.07 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1540. 80.38 s [post-build-hook] copying 1 paths...
  1541. 80.39 s [post-build-hook] copying path '/nix/store/96mvn8aq20fqwa8xj8zbd2qla0a8f07z-really-safe-money-gen-source-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1542. 80.66 s Progress: 3 of 6 built (1 building)
  1543. 80.66 s [really-safe-money-autodocodec] Phase: setupCompilerEnvironmentPhase
  1544. 80.66 s [really-safe-money-autodocodec] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1545. 80.67 s [really-safe-money-autodocodec] Phase: unpackPhase
  1546. 80.67 s [really-safe-money-autodocodec] unpacking source archive /nix/store/z042hi7nifdgxm1vkd3qb5fg9cwvcwqp-really-safe-money-autodocodec-source-0.0.0.0/really-safe-money-autodocodec-0.0.0.0.tar.gz
  1547. 80.67 s [really-safe-money-autodocodec] source root is really-safe-money-autodocodec-0.0.0.0
  1548. 80.67 s [really-safe-money-autodocodec] setting SOURCE_DATE_EPOCH to timestamp 1778825373 of file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs"
  1549. 80.67 s [really-safe-money-autodocodec] warning: file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
  1550. 80.67 s [really-safe-money-autodocodec] Phase: patchPhase
  1551. 80.67 s [really-safe-money-autodocodec] Phase: compileBuildDriverPhase
  1552. 80.67 s [really-safe-money-autodocodec] setupCompileFlags: -package-db=/build/tmp.1LDVciBuwE/setup-package.conf.d -threaded
  1553. 80.67 s [really-safe-money-autodocodec] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.1LDVciBuwE/Main.o )
  1554. 80.67 s [really-safe-money-autodocodec] [2 of 2] Linking Setup
  1555. 80.67 s [really-safe-money-autodocodec] Phase: updateAutotoolsGnuConfigScriptsPhase
  1556. 80.67 s [really-safe-money-autodocodec] Phase: configurePhase
  1557. 80.67 s [really-safe-money-autodocodec] configureFlags: --verbose --prefix=/nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.1LDVciBuwE/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --disable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --ghc-options=-fplugin-opt=Test.Syd.Mutation.Plugin:--debug --disable-optimization --ghc-option=-j1 --ghc-option=+RTS --ghc-option=-A32M --ghc-option=-M16g --ghc-option=-RTS --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
  1558. 80.67 s [really-safe-money-autodocodec] Using Parsec parser
  1559. 80.67 s [really-safe-money-autodocodec] Configuring really-safe-money-autodocodec-0.0.0.0...
  1560. 81.91 s [really-safe-money-autodocodec] Dependency autodocodec: using autodocodec-0.5.0.0
  1561. 81.91 s [really-safe-money-autodocodec] Dependency base >=4.7 && <5: using base-4.20.2.0
  1562. 81.91 s [really-safe-money-autodocodec] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1563. 81.91 s [really-safe-money-autodocodec] Source component graph: component lib
  1564. 81.91 s [really-safe-money-autodocodec] Configured component graph:
  1565. 81.91 s [really-safe-money-autodocodec] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1566. 81.91 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1567. 81.91 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  1568. 81.91 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1569. 81.91 s [really-safe-money-autodocodec] Linked component graph:
  1570. 81.91 s [really-safe-money-autodocodec] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1571. 81.91 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1572. 81.92 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  1573. 81.92 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1574. 81.92 s [really-safe-money-autodocodec] Money.Account.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Account.Codec,Money.AccountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AccountOf.Codec,Money.Amount.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Amount.Codec,Money.AmountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AmountOf.Codec,Money.QuantisationFactor.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.QuantisationFactor.Codec,Numeric.DecimalLiteral.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Numeric.DecimalLiteral.Codec
  1575. 81.92 s [really-safe-money-autodocodec] Ready component graph:
  1576. 81.92 s [really-safe-money-autodocodec] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1577. 81.92 s [really-safe-money-autodocodec] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1578. 81.92 s [really-safe-money-autodocodec] depends base-4.20.2.0-64da
  1579. 81.92 s [really-safe-money-autodocodec] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1580. 81.92 s [really-safe-money-autodocodec] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1581. 81.92 s [really-safe-money-autodocodec] Using compiler: ghc-9.10.3
  1582. 81.92 s [really-safe-money-autodocodec] Using install prefix:
  1583. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0
  1584. 81.92 s [really-safe-money-autodocodec] Executables installed in:
  1585. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/bin
  1586. 81.92 s [really-safe-money-autodocodec] Libraries installed in:
  1587. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1588. 81.92 s [really-safe-money-autodocodec] Dynamic Libraries installed in:
  1589. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1590. 81.92 s [really-safe-money-autodocodec] Private executables installed in:
  1591. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
  1592. 81.92 s [really-safe-money-autodocodec] Data files installed in:
  1593. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
  1594. 81.92 s [really-safe-money-autodocodec] Documentation installed in:
  1595. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
  1596. 81.92 s [really-safe-money-autodocodec] Configuration files installed in:
  1597. 81.92 s [really-safe-money-autodocodec] /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/etc
  1598. 81.92 s [really-safe-money-autodocodec] No alex found
  1599. 81.92 s [really-safe-money-autodocodec] Using ar found on system at:
  1600. 81.92 s [really-safe-money-autodocodec] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1601. 81.92 s [really-safe-money-autodocodec] No c2hs found
  1602. 81.92 s [really-safe-money-autodocodec] No cpphs found
  1603. 81.92 s [really-safe-money-autodocodec] No doctest found
  1604. 81.92 s [really-safe-money-autodocodec] Using gcc version 14.3.0 given by user at:
  1605. 81.92 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1606. 81.92 s [really-safe-money-autodocodec] Using ghc version 9.10.3 found on system at:
  1607. 81.92 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1608. 81.92 s [really-safe-money-autodocodec] Using ghc-pkg version 9.10.3 found on system at:
  1609. 81.92 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1610. 81.92 s [really-safe-money-autodocodec] No ghcjs found
  1611. 81.92 s [really-safe-money-autodocodec] No ghcjs-pkg found
  1612. 81.92 s [really-safe-money-autodocodec] No greencard found
  1613. 81.92 s [really-safe-money-autodocodec] Using haddock version 2.31.1 found on system at:
  1614. 81.92 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1615. 81.92 s [really-safe-money-autodocodec] No happy found
  1616. 81.92 s [really-safe-money-autodocodec] Using haskell-suite found on system at: haskell-suite-dummy-location
  1617. 81.92 s [really-safe-money-autodocodec] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1618. 81.92 s [really-safe-money-autodocodec] No hmake found
  1619. 81.92 s [really-safe-money-autodocodec] Using hpc version 0.69 found on system at:
  1620. 81.92 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1621. 81.92 s [really-safe-money-autodocodec] Using hsc2hs version 0.68.10 found on system at:
  1622. 81.92 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1623. 81.92 s [really-safe-money-autodocodec] Using hscolour version 1.25 found on system at:
  1624. 81.92 s [really-safe-money-autodocodec] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1625. 81.92 s [really-safe-money-autodocodec] No jhc found
  1626. 81.92 s [really-safe-money-autodocodec] Using ld found on system at:
  1627. 81.92 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1628. 81.92 s [really-safe-money-autodocodec] No pkg-config found
  1629. 81.92 s [really-safe-money-autodocodec] Using runghc version 9.10.3 found on system at:
  1630. 81.92 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1631. 81.92 s [really-safe-money-autodocodec] Using strip version 2.44 found on system at:
  1632. 81.93 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1633. 81.93 s [really-safe-money-autodocodec] Using tar found on system at:
  1634. 81.93 s [really-safe-money-autodocodec] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1635. 81.93 s [really-safe-money-autodocodec] No uhc found
  1636. 82.47 s [really-safe-money-autodocodec] Phase: buildPhase
  1637. 82.48 s [really-safe-money-autodocodec] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest
  1638. 82.63 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  1639. 82.64 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  1640. 82.91 s [really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.o, dist/build/Money/Account/Codec.dyn_o )
  1641. 83.04 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  1642. 83.08 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1643. 83.08 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1644. 83.08 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1645. 83.08 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1646. 83.08 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1647. 83.09 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1648. 83.09 s [really-safe-money-autodocodec] added 6 mutations
  1649. 83.60 s [really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.o, dist/build/Money/AccountOf/Codec.dyn_o )
  1650. 83.60 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  1651. 83.60 s [really-safe-money-autodocodec] added 0 mutations
  1652. 83.63 s [really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.o, dist/build/Money/Amount/Codec.dyn_o )
  1653. 83.63 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  1654. 83.63 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1655. 83.63 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1656. 83.63 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1657. 83.63 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1658. 83.63 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1659. 83.63 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1660. 83.63 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1661. 83.63 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  1662. 83.63 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1663. 83.64 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1664. 83.64 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1665. 83.64 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1666. 83.64 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1667. 83.64 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1668. 83.64 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1669. 83.64 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  1670. 83.64 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1671. 83.64 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1672. 83.64 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1673. 83.64 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1674. 83.64 s [really-safe-money-autodocodec] added 20 mutations
  1675. 83.79 s [really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.o, dist/build/Money/AmountOf/Codec.dyn_o )
  1676. 83.79 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  1677. 83.79 s [really-safe-money-autodocodec] added 0 mutations
  1678. 83.82 s [really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.o, dist/build/Money/QuantisationFactor/Codec.dyn_o )
  1679. 83.83 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  1680. 83.83 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1681. 83.83 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1682. 83.83 s [really-safe-money-autodocodec] added 2 mutations
  1683. 83.88 s [really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.o, dist/build/Numeric/DecimalLiteral/Codec.dyn_o )
  1684. 83.89 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  1685. 83.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1686. 83.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1687. 83.89 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1688. 83.89 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1689. 83.89 s [really-safe-money-autodocodec] added 4 mutations
  1690. 84.09 s [really-safe-money-autodocodec] [7 of 7] Compiling Paths_really_safe_money_autodocodec ( dist/build/autogen/Paths_really_safe_money_autodocodec.hs, dist/build/Paths_really_safe_money_autodocodec.o, dist/build/Paths_really_safe_money_autodocodec.dyn_o )
  1691. 85.05 s [really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.p_o )
  1692. 85.14 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  1693. 85.32 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1694. 85.32 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1695. 85.32 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1696. 85.32 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1697. 85.32 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1698. 85.32 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1699. 85.32 s [really-safe-money-autodocodec] added 6 mutations
  1700. 86.17 s [really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.p_o )
  1701. 86.18 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  1702. 86.18 s [really-safe-money-autodocodec] added 0 mutations
  1703. 86.31 s [really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.p_o )
  1704. 86.31 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  1705. 86.31 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1706. 86.31 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1707. 86.31 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1708. 86.31 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1709. 86.31 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1710. 86.31 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1711. 86.32 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1712. 86.32 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  1713. 86.32 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1714. 86.32 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1715. 86.32 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1716. 86.32 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1717. 86.32 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1718. 86.32 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1719. 86.32 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1720. 86.32 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  1721. 86.32 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1722. 86.32 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1723. 86.32 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1724. 86.32 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1725. 86.32 s [really-safe-money-autodocodec] added 20 mutations
  1726. 86.57 s [really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.p_o )
  1727. 86.57 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  1728. 86.57 s [really-safe-money-autodocodec] added 0 mutations
  1729. 86.71 s [really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.p_o )
  1730. 86.71 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  1731. 86.71 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1732. 86.71 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1733. 86.71 s [really-safe-money-autodocodec] added 2 mutations
  1734. 86.86 s [really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.p_o )
  1735. 86.86 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  1736. 86.86 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1737. 86.86 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1738. 86.86 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1739. 86.86 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1740. 86.86 s [really-safe-money-autodocodec] added 4 mutations
  1741. 87.03 s [really-safe-money-autodocodec] [7 of 7] Compiling Paths_really_safe_money_autodocodec ( dist/build/autogen/Paths_really_safe_money_autodocodec.hs, dist/build/Paths_really_safe_money_autodocodec.p_o )
  1742. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  1743. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  1744. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  1745. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  1746. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  1747. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  1748. 87.42 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  1749. 88.24 s [really-safe-money-autodocodec] mutation-nix: manifest output at /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest:
  1750. 88.29 s [really-safe-money-autodocodec] total 76
  1751. 88.29 s [really-safe-money-autodocodec] drwxr-xr-x 2 nixbld nixbld 4096 May 15 06:09 .
  1752. 88.29 s [really-safe-money-autodocodec] drwxrwxr-t 239 nobody nixbld 28672 May 15 06:09 ..
  1753. 88.29 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 4508 May 15 06:09 Money.Account.Codec.json
  1754. 88.29 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 15 06:09 Money.AccountOf.Codec.json
  1755. 88.29 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 16321 May 15 06:09 Money.Amount.Codec.json
  1756. 88.29 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 15 06:09 Money.AmountOf.Codec.json
  1757. 88.29 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1486 May 15 06:09 Money.QuantisationFactor.Codec.json
  1758. 88.29 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2827 May 15 06:09 Numeric.DecimalLiteral.Codec.json
  1759. 88.29 s [really-safe-money-autodocodec] mutation-nix: building remaining components with plugin silenced
  1760. 88.31 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  1761. 88.31 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  1762. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  1763. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  1764. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  1765. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  1766. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  1767. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  1768. 89.72 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  1769. 90.59 s [really-safe-money-autodocodec] Phase: haddockPhase
  1770. 90.60 s [really-safe-money-autodocodec] Phase: installPhase
  1771. 90.67 s [really-safe-money-autodocodec] Installing library in /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1772. 90.87 s [really-safe-money-autodocodec] Phase: fixupPhase
  1773. 90.89 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0
  1774. 90.89 s [really-safe-money-autodocodec] shrinking /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk-ghc9.10.3.so
  1775. 90.91 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0...
  1776. 90.93 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0
  1777. 90.94 s [really-safe-money-autodocodec] stripping (with command strip and flags -S -p) in /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/lib /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0/bin
  1778. 90.98 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest
  1779. 90.98 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest...
  1780. 90.99 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest
  1781. 91.06 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0
  1782. 91.61 s [post-build-hook] Pushing 2 paths (196 are already present) using zstd to cache sydtest ⏳
  1783. 91.61 s [post-build-hook]
  1784. 91.99 s [post-build-hook] Pushing /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0 (1.60 MiB)
  1785. 92.03 s [post-build-hook] Pushing /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest (25.90 KiB)
  1786. 93.41 s [post-build-hook]
  1787. 93.44 s [post-build-hook] All done.
  1788. 93.44 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0
  1789. 93.47 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1790. 93.66 s [post-build-hook] copying 2 paths...
  1791. 93.66 s [post-build-hook] copying path '/nix/store/qzy5bm1pllfg2pqnwd4njl9rcifmjgb5-really-safe-money-autodocodec-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
  1792. 93.66 s [post-build-hook] copying path '/nix/store/r8xkjf7b5xd6xpcnxaw5ybca91qkld6i-really-safe-money-autodocodec-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1793. 94.18 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1794. 94.44 s [post-build-hook] copying 1 paths...
  1795. 94.45 s [post-build-hook] copying path '/nix/store/qwlhs7fhsafkj7674xfhydxq4qxhhv9p-really-safe-money-autodocodec-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1796. 94.63 s Progress: 4 of 6 built
  1797. 94.68 s Building really-safe-money-gen
  1798. 95.03 s [really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
  1799. 95.04 s [really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1800. 95.50 s [really-safe-money-gen] Phase: unpackPhase
  1801. 95.50 s [really-safe-money-gen] unpacking source archive /nix/store/hga9wggcwybag4w71b5ka31g2vxinw7l-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
  1802. 95.51 s [really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
  1803. 95.52 s [really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778825374 of file "really-safe-money-gen-0.0.0.0/test/Spec.hs"
  1804. 95.52 s [really-safe-money-gen] warning: file "really-safe-money-gen-0.0.0.0/test/Spec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
  1805. 95.52 s [really-safe-money-gen] Phase: patchPhase
  1806. 95.53 s [really-safe-money-gen] Phase: compileBuildDriverPhase
  1807. 95.53 s [really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.ytD9aMYKlT/setup-package.conf.d -threaded
  1808. 95.58 s [really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.ytD9aMYKlT/Main.o )
  1809. 95.63 s [really-safe-money-gen] [2 of 2] Linking Setup
  1810. 96.78 s [really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
  1811. 96.79 s [really-safe-money-gen] Phase: configurePhase
  1812. 96.80 s [really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.ytD9aMYKlT/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
  1813. 96.80 s [really-safe-money-gen] Using Parsec parser
  1814. 96.80 s [really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
  1815. 97.45 s [really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1816. 97.45 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  1817. 97.45 s [really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
  1818. 97.45 s [really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  1819. 97.45 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1820. 97.45 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  1821. 97.45 s [really-safe-money-gen] Dependency containers: using containers-0.7
  1822. 97.45 s [really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  1823. 97.45 s [really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  1824. 97.45 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1825. 97.45 s [really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  1826. 97.45 s [really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
  1827. 97.45 s [really-safe-money-gen] Dependency vector: using vector-0.13.2.0
  1828. 97.45 s [really-safe-money-gen] Source component graph:
  1829. 97.45 s [really-safe-money-gen] component lib
  1830. 97.45 s [really-safe-money-gen] component test:really-safe-money-test dependency lib
  1831. 97.45 s [really-safe-money-gen] Configured component graph:
  1832. 97.45 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1833. 97.45 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1834. 97.45 s [really-safe-money-gen] include base-4.20.2.0-64da
  1835. 97.45 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1836. 97.45 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1837. 97.45 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1838. 97.45 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1839. 97.45 s [really-safe-money-gen] include base-4.20.2.0-64da
  1840. 97.45 s [really-safe-money-gen] include containers-0.7-504a
  1841. 97.45 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1842. 97.45 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1843. 97.45 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1844. 97.45 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1845. 97.45 s [really-safe-money-gen] include sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1846. 97.45 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1847. 97.45 s [really-safe-money-gen] Linked component graph:
  1848. 97.45 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1849. 97.45 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1850. 97.45 s [really-safe-money-gen] include base-4.20.2.0-64da
  1851. 97.45 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1852. 97.45 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1853. 97.45 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1854. 97.45 s [really-safe-money-gen] Money.Account.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.Account.Gen,Money.AccountOf.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.AccountOf.Gen,Money.Amount.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.Amount.Gen,Money.AmountOf.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.AmountOf.Gen,Money.ConversionRate.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.ConversionRate.Gen,Money.ConversionRateOf.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.ConversionRateOf.Gen,Money.Currency.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.Currency.Gen,Money.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.Gen,Money.MultiAccount.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.MultiAccount.Gen,Money.MultiAmount.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.MultiAmount.Gen,Money.QuantisationFactor.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Money.QuantisationFactor.Gen,Numeric.DecimalLiteral.Gen=really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A:Numeric.DecimalLiteral.Gen
  1855. 97.45 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1856. 97.45 s [really-safe-money-gen] include base-4.20.2.0-64da
  1857. 97.45 s [really-safe-money-gen] include containers-0.7-504a
  1858. 97.45 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1859. 97.45 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1860. 97.45 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1861. 97.45 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1862. 97.45 s [really-safe-money-gen] include sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1863. 97.45 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1864. 97.45 s [really-safe-money-gen] Ready component graph:
  1865. 97.45 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1866. 97.45 s [really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1867. 97.45 s [really-safe-money-gen] depends base-4.20.2.0-64da
  1868. 97.45 s [really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1869. 97.45 s [really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1870. 97.45 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1871. 97.45 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1872. 97.45 s [really-safe-money-gen] depends base-4.20.2.0-64da
  1873. 97.45 s [really-safe-money-gen] depends containers-0.7-504a
  1874. 97.45 s [really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1875. 97.45 s [really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1876. 97.45 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1877. 97.46 s [really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1878. 97.46 s [really-safe-money-gen] depends sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1879. 97.46 s [really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1880. 97.46 s [really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1881. 97.46 s [really-safe-money-gen] Using compiler: ghc-9.10.3
  1882. 97.46 s [really-safe-money-gen] Using install prefix:
  1883. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0
  1884. 97.46 s [really-safe-money-gen] Executables installed in:
  1885. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0/bin
  1886. 97.46 s [really-safe-money-gen] Libraries installed in:
  1887. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-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-DUlrgfbYR751gcgZIqRr4A
  1888. 97.46 s [really-safe-money-gen] Dynamic Libraries installed in:
  1889. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1890. 97.46 s [really-safe-money-gen] Private executables installed in:
  1891. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
  1892. 97.46 s [really-safe-money-gen] Data files installed in:
  1893. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
  1894. 97.46 s [really-safe-money-gen] Documentation installed in:
  1895. 97.46 s [really-safe-money-gen] /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
  1896. 97.46 s [really-safe-money-gen] Configuration files installed in:
  1897. 97.46 s [really-safe-money-gen] /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0/etc
  1898. 97.46 s [really-safe-money-gen] No alex found
  1899. 97.46 s [really-safe-money-gen] Using ar found on system at:
  1900. 97.46 s [really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1901. 97.46 s [really-safe-money-gen] No c2hs found
  1902. 97.46 s [really-safe-money-gen] No cpphs found
  1903. 97.46 s [really-safe-money-gen] No doctest found
  1904. 97.46 s [really-safe-money-gen] Using gcc version 14.3.0 given by user at:
  1905. 97.46 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1906. 97.46 s [really-safe-money-gen] Using ghc version 9.10.3 found on system at:
  1907. 97.46 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1908. 97.46 s [really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
  1909. 97.46 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1910. 97.46 s [really-safe-money-gen] No ghcjs found
  1911. 97.46 s [really-safe-money-gen] No ghcjs-pkg found
  1912. 97.46 s [really-safe-money-gen] No greencard found
  1913. 97.46 s [really-safe-money-gen] Using haddock version 2.31.1 found on system at:
  1914. 97.46 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1915. 97.46 s [really-safe-money-gen] No happy found
  1916. 97.46 s [really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
  1917. 97.46 s [really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1918. 97.46 s [really-safe-money-gen] No hmake found
  1919. 97.46 s [really-safe-money-gen] Using hpc version 0.69 found on system at:
  1920. 97.46 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1921. 97.46 s [really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
  1922. 97.46 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1923. 97.46 s [really-safe-money-gen] Using hscolour version 1.25 found on system at:
  1924. 97.46 s [really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1925. 97.46 s [really-safe-money-gen] No jhc found
  1926. 97.46 s [really-safe-money-gen] Using ld found on system at:
  1927. 97.46 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1928. 97.46 s [really-safe-money-gen] No pkg-config found
  1929. 97.46 s [really-safe-money-gen] Using runghc version 9.10.3 found on system at:
  1930. 97.46 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1931. 97.46 s [really-safe-money-gen] Using strip version 2.44 found on system at:
  1932. 97.46 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1933. 97.46 s [really-safe-money-gen] Using tar found on system at:
  1934. 97.46 s [really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1935. 97.46 s [really-safe-money-gen] No uhc found
  1936. 97.85 s [really-safe-money-gen] Phase: buildPhase
  1937. 97.91 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  1938. 97.91 s [really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
  1939. 98.00 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.o, dist/build/Money/Amount/Gen.dyn_o )
  1940. 98.32 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.o, dist/build/Money/Account/Gen.dyn_o )
  1941. 98.41 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.o, dist/build/Money/AccountOf/Gen.dyn_o )
  1942. 98.46 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.o, dist/build/Money/AmountOf/Gen.dyn_o )
  1943. 98.46 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.o, dist/build/Money/ConversionRate/Gen.dyn_o )
  1944. 98.46 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.o, dist/build/Money/ConversionRateOf/Gen.dyn_o )
  1945. 98.46 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.o, dist/build/Money/QuantisationFactor/Gen.dyn_o )
  1946. 98.46 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.o, dist/build/Money/Currency/Gen.dyn_o )
  1947. 98.46 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.o, dist/build/Money/MultiAmount/Gen.dyn_o )
  1948. 98.46 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.o, dist/build/Money/MultiAccount/Gen.dyn_o )
  1949. 98.51 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.o, dist/build/Money/Gen.dyn_o )
  1950. 98.53 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.o, dist/build/Numeric/DecimalLiteral/Gen.dyn_o )
  1951. 98.53 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, dist/build/Paths_really_safe_money_gen.o, dist/build/Paths_really_safe_money_gen.dyn_o )
  1952. 98.74 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
  1953. 99.12 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
  1954. 99.30 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
  1955. 99.43 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
  1956. 99.43 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
  1957. 99.43 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
  1958. 99.43 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
  1959. 99.43 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
  1960. 99.43 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
  1961. 99.43 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
  1962. 99.46 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
  1963. 99.58 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
  1964. 99.58 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, dist/build/Paths_really_safe_money_gen.p_o )
  1965. 101.62 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  1966. 101.65 s [really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  1967. 102.55 s [really-safe-money-gen] [ 1 of 14] Compiling Money.AccountSpec ( test/Money/AccountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AccountSpec.o )
  1968. 107.86 s [really-safe-money-gen] [ 2 of 14] Compiling Money.AmountSpec ( test/Money/AmountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AmountSpec.o )
  1969. 108.14 s [really-safe-money-gen] [ 3 of 14] Compiling Money.ConversionRateSpec ( test/Money/ConversionRateSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/ConversionRateSpec.o )
  1970. 108.14 s [really-safe-money-gen] [ 4 of 14] Compiling Money.Currency.TestUtils ( test/Money/Currency/TestUtils.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/Currency/TestUtils.o )
  1971. 108.14 s [really-safe-money-gen] [ 5 of 14] Compiling Money.ConversionRateOfSpec ( test/Money/ConversionRateOfSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/ConversionRateOfSpec.o )
  1972. 108.14 s [really-safe-money-gen] [ 6 of 14] Compiling Money.AmountOfSpec ( test/Money/AmountOfSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AmountOfSpec.o )
  1973. 108.14 s [really-safe-money-gen] [ 7 of 14] Compiling Money.AccountOfSpec ( test/Money/AccountOfSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AccountOfSpec.o )
  1974. 108.14 s [really-safe-money-gen] [ 8 of 14] Compiling Money.CurrencySpec ( test/Money/CurrencySpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/CurrencySpec.o )
  1975. 108.14 s [really-safe-money-gen] [ 9 of 14] Compiling Money.MultiAccountSpec ( test/Money/MultiAccountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/MultiAccountSpec.o )
  1976. 108.14 s [really-safe-money-gen] [10 of 14] Compiling Money.MultiAmountSpec ( test/Money/MultiAmountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/MultiAmountSpec.o )
  1977. 108.14 s [really-safe-money-gen] [11 of 14] Compiling Money.QuantisationFactorSpec ( test/Money/QuantisationFactorSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/QuantisationFactorSpec.o )
  1978. 108.14 s [really-safe-money-gen] [12 of 14] Compiling Numeric.DecimalLiteralSpec ( test/Numeric/DecimalLiteralSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Numeric/DecimalLiteralSpec.o )
  1979. 108.14 s [really-safe-money-gen] [13 of 14] Compiling Main ( test/Spec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Main.o )
  1980. 108.20 s [really-safe-money-gen] [14 of 14] Compiling Paths_really_safe_money_gen ( dist/build/really-safe-money-test/autogen/Paths_really_safe_money_gen.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Paths_really_safe_money_gen.o )
  1981. 108.54 s [really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
  1982. 109.93 s [really-safe-money-gen] Phase: checkPhase
  1983. 109.93 s [really-safe-money-gen] mutation-nix: collecting coverage for suite really-safe-money-gen
  1984. 118.36 s [really-safe-money-gen] coverage (3/1610): Numeric\.DecimalLiteralSpec.Natural.toNatural.renders to valid naturals (0 mutations)
  1985. 118.52 s [really-safe-money-gen] coverage (22/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 9 % 100 into DecimalLiteral Nothing 9 2 (36 mutations)
  1986. 118.76 s [really-safe-money-gen] coverage (7/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-6) % 1 into DecimalLiteral (Just False) 6 0 (32 mutations)
  1987. 119.00 s [really-safe-money-gen] coverage (15/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 600 2 into rational (-6) % 1 (4 mutations)
  1988. 119.02 s [really-safe-money-gen] coverage (1/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.renders to valid decimal literals (1 mutations)
  1989. 119.15 s [really-safe-money-gen] coverage (17/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 20 4 into rational 1 % 500 (4 mutations)
  1990. 119.32 s [really-safe-money-gen] coverage (5/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 (30 mutations)
  1991. 119.34 s [really-safe-money-gen] coverage (27/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 240009 % 20000 into DecimalLiteral Nothing 1200045 5 (38 mutations)
  1992. 119.36 s [really-safe-money-gen] coverage (13/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.can parse any rendered rational (43 mutations)
  1993. 119.44 s [really-safe-money-gen] coverage (8/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 10 0 into rational 10 % 1 (4 mutations)
  1994. 119.46 s [really-safe-money-gen] coverage (25/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 7 % 1 into DecimalLiteral Nothing 7 0 (30 mutations)
  1995. 119.48 s [really-safe-money-gen] coverage (23/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 3 0 into rational (-3) % 1 (4 mutations)
  1996. 119.48 s [really-safe-money-gen] coverage (10/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-1) % 1000 into DecimalLiteral (Just False) 1 3 (38 mutations)
  1997. 119.53 s [really-safe-money-gen] coverage (6/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 500 into DecimalLiteral Nothing 2 3 (36 mutations)
  1998. 119.53 s [really-safe-money-gen] coverage (12/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 5 % 1 into DecimalLiteral Nothing 5 0 (30 mutations)
  1999. 119.58 s [really-safe-money-gen] coverage (24/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 1 into DecimalLiteral Nothing 1 0 (30 mutations)
  2000. 119.59 s [really-safe-money-gen] coverage (18/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 10 % 1 into DecimalLiteral Nothing 10 0 (30 mutations)
  2001. 119.60 s [really-safe-money-gen] coverage (26/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1 0 into rational 1 % 1 (4 mutations)
  2002. 119.73 s [really-safe-money-gen] coverage (2/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.can parse any rendered literal (9 mutations)
  2003. 119.74 s [really-safe-money-gen] coverage (4/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 9 2 into rational 9 % 100 (4 mutations)
  2004. 119.78 s [really-safe-money-gen] coverage (20/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 7000 3 into rational 7 % 1 (4 mutations)
  2005. 119.80 s [really-safe-money-gen] coverage (14/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.renders to valid decimal literals (40 mutations)
  2006. 119.83 s [really-safe-money-gen] coverage (9/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 50 1 into rational 5 % 1 (4 mutations)
  2007. 119.87 s [really-safe-money-gen] coverage (21/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 2 0 into rational 2 % 1 (4 mutations)
  2008. 119.91 s [really-safe-money-gen] coverage (19/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1 into DecimalLiteral (Just False) 3 0 (32 mutations)
  2009. 119.92 s [really-safe-money-gen] coverage (28/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 1 3 into rational (-1) % 1000 (4 mutations)
  2010. 119.93 s [really-safe-money-gen] coverage (11/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-4) % 5 into DecimalLiteral (Just False) 8 1 (38 mutations)
  2011. 120.21 s [really-safe-money-gen] coverage (16/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 400 0 into rational 400 % 1 (4 mutations)
  2012. 128.26 s [really-safe-money-gen] coverage (29/1610): Numeric\.DecimalLiteralSpec.Rational.toRational.renders to valid rationals (4 mutations)
  2013. 128.42 s [really-safe-money-gen] coverage (38/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.does not change the value of the literal (15 mutations)
  2014. 128.52 s [really-safe-money-gen] coverage (31/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 2 % 1 into DecimalLiteral Nothing 2 0 (30 mutations)
  2015. 128.81 s [really-safe-money-gen] coverage (30/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1000 into DecimalLiteral (Just False) 3 3 (38 mutations)
  2016. 128.91 s [really-safe-money-gen] coverage (37/1610): Numeric\.DecimalLiteralSpec.Ratio.toRatio.renders to valid rationals (5 mutations)
  2017. 128.98 s [really-safe-money-gen] coverage (33/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 8 1 into rational (-4) % 5 (4 mutations)
  2018. 129.06 s [really-safe-money-gen] coverage (32/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1200045 5 into rational 240009 % 20000 (4 mutations)
  2019. 129.10 s [really-safe-money-gen] coverage (46/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.can parse any rendered literal (24 mutations)
  2020. 129.38 s [really-safe-money-gen] coverage (34/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 300 5 into rational (-3) % 1000 (4 mutations)
  2021. 129.40 s [really-safe-money-gen] coverage (47/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.renders to valid decimal literals (10 mutations)
  2022. 129.40 s [really-safe-money-gen] coverage (41/1610): Numeric\.DecimalLiteralSpec.GenValid DecimalLiteral.genValid \:\: Gen DecimalLiteral.only generates valid 'DecimalLiteral's (0 mutations)
  2023. 129.45 s [really-safe-money-gen] coverage (43/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.can parse any rendered decimal literal (44 mutations)
  2024. 129.55 s [really-safe-money-gen] coverage (42/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.fails to parse scientific notation (22 mutations)
  2025. 129.61 s [really-safe-money-gen] coverage (48/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromStringM.does the same as DecimalLiteral\.fromString (12 mutations)
  2026. 129.62 s [really-safe-money-gen] coverage (35/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.can parse any rendered rational (36 mutations)
  2027. 129.62 s [really-safe-money-gen] coverage (45/1610): Numeric\.DecimalLiteralSpec.Int.toInt.renders to valid words (14 mutations)
  2028. 129.64 s [really-safe-money-gen] coverage (39/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces valid literals (12 mutations)
  2029. 129.74 s [really-safe-money-gen] coverage (40/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces values with more than the given number of digits (12 mutations)
  2030. 129.74 s [really-safe-money-gen] coverage (44/1610): Numeric\.DecimalLiteralSpec.setSignOptional.produces valid values (0 mutations)
  2031. 129.82 s [really-safe-money-gen] coverage (49/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.renders to valid decimal literals (1 mutations)
  2032. 130.00 s [really-safe-money-gen] coverage (51/1610): Numeric\.DecimalLiteralSpec.Word.toWord.renders to valid words (0 mutations)
  2033. 130.01 s [really-safe-money-gen] coverage (50/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.can parse any rendered literal (9 mutations)
  2034. 130.04 s [really-safe-money-gen] coverage (55/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 300 5 (3 mutations)
  2035. 130.08 s [really-safe-money-gen] coverage (36/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.renders to valid decimal literals (31 mutations)
  2036. 130.10 s [really-safe-money-gen] coverage (52/1610): Numeric\.DecimalLiteralSpec.toString.can render any decimal literal (2 mutations)
  2037. 130.17 s [really-safe-money-gen] coverage (54/1610): Numeric\.DecimalLiteralSpec.examples.can parse "1" (22 mutations)
  2038. 130.37 s [really-safe-money-gen] coverage (53/1610): Numeric\.DecimalLiteralSpec.examples.can parse "+2" (25 mutations)
  2039. 130.58 s [really-safe-money-gen] coverage (56/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 50 1 (1 mutations)
  2040. 138.10 s [really-safe-money-gen] coverage (58/1610): Numeric\.DecimalLiteralSpec.examples.can parse "5\.0" (31 mutations)
  2041. 138.12 s [really-safe-money-gen] coverage (57/1610): Numeric\.DecimalLiteralSpec.examples.can parse "400" (31 mutations)
  2042. 138.42 s [really-safe-money-gen] coverage (59/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 8 1 (3 mutations)
  2043. 138.61 s [really-safe-money-gen] coverage (60/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 3 (3 mutations)
  2044. 138.70 s [really-safe-money-gen] coverage (62/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 7000 3 (1 mutations)
  2045. 138.78 s [really-safe-money-gen] coverage (64/1610): Numeric\.DecimalLiteralSpec.examples.can parse "12\.00045" (38 mutations)
  2046. 138.81 s [really-safe-money-gen] coverage (61/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.00300" (36 mutations)
  2047. 138.98 s [really-safe-money-gen] coverage (68/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.001" (34 mutations)
  2048. 139.09 s [really-safe-money-gen] coverage (63/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 20 4 (3 mutations)
  2049. 139.12 s [really-safe-money-gen] coverage (65/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 0 (1 mutations)
  2050. 139.23 s [really-safe-money-gen] coverage (67/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1200045 5 (1 mutations)
  2051. 139.24 s [really-safe-money-gen] coverage (66/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just True) 2 0 (1 mutations)
  2052. 139.36 s [really-safe-money-gen] coverage (72/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.8" (29 mutations)
  2053. 139.42 s [really-safe-money-gen] coverage (70/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 600 2 (1 mutations)
  2054. 139.45 s [really-safe-money-gen] coverage (69/1610): Numeric\.DecimalLiteralSpec.examples.can parse "6\.00" (36 mutations)
  2055. 139.52 s [really-safe-money-gen] coverage (74/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.09" (34 mutations)
  2056. 139.54 s [really-safe-money-gen] coverage (71/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 9 2 (3 mutations)
  2057. 139.65 s [really-safe-money-gen] coverage (73/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 400 0 (1 mutations)
  2058. 139.71 s [really-safe-money-gen] coverage (76/1610): Numeric\.DecimalLiteralSpec.examples.can parse "-3" (22 mutations)
  2059. 139.73 s [really-safe-money-gen] coverage (75/1610): Numeric\.DecimalLiteralSpec.examples.can parse "7\.000" (36 mutations)
  2060. 139.84 s [really-safe-money-gen] coverage (78/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.0020" (36 mutations)
  2061. 139.92 s [really-safe-money-gen] coverage (82/1610): Numeric\.DecimalLiteralSpec.digits.produces valid numbers of digits (0 mutations)
  2062. 139.93 s [really-safe-money-gen] coverage (79/1610): Numeric\.DecimalLiteralSpec.Integer.toInteger.renders to valid words (0 mutations)
  2063. 140.00 s [really-safe-money-gen] coverage (77/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just False) 3 0 (1 mutations)
  2064. 140.02 s [really-safe-money-gen] coverage (81/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.can parse any rendered literal (10 mutations)
  2065. 140.04 s [really-safe-money-gen] coverage (80/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.renders to valid decimal literals (10 mutations)
  2066. 140.15 s [really-safe-money-gen] coverage (83/1610): Numeric\.DecimalLiteralSpec.setSignRequired.produces valid values (2 mutations)
  2067. 140.59 s [really-safe-money-gen] coverage (84/1610): Money\.ConversionRateSpec.Rational.toRational.produces valid rationals (0 mutations)
  2068. 148.57 s [really-safe-money-gen] coverage (86/1610): Money\.ConversionRateSpec.Rational.fromRational.produces valid conversion rates (13 mutations)
  2069. 148.76 s [really-safe-money-gen] coverage (85/1610): Money\.ConversionRateSpec.Rational.fromRational.roundtrips with toRational (13 mutations)
  2070. 149.09 s [really-safe-money-gen] coverage (89/1610): Money\.ConversionRateSpec.Ratio.toRatio.produces valid ratios (0 mutations)
  2071. 149.16 s [really-safe-money-gen] coverage (87/1610): Money\.ConversionRateSpec.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2072. 149.16 s [really-safe-money-gen] coverage (88/1610): Money\.ConversionRateSpec.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2073. 149.43 s [really-safe-money-gen] coverage (95/1610): Money\.ConversionRateSpec.GenValid ConversionRate.genValid \:\: Gen ConversionRate.only generates valid 'ConversionRate's (6 mutations)
  2074. 149.46 s [really-safe-money-gen] coverage (90/1610): Money\.ConversionRateSpec.invert.produces valid rates (8 mutations)
  2075. 149.82 s [really-safe-money-gen] coverage (103/1610): Money\.AccountSpec.Eq.says negative 0 equals positive 0 (3 mutations)
  2076. 149.86 s [really-safe-money-gen] coverage (98/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"s (3 mutations)
  2077. 149.95 s [really-safe-money-gen] coverage (97/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Account"s (3 mutations)
  2078. 149.97 s [really-safe-money-gen] coverage (109/1610): Money\.AccountSpec.distribute.correctly distributes 5 into 3 (20 mutations)
  2079. 150.02 s [really-safe-money-gen] coverage (102/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is reflexive for "valid Account"s (3 mutations)
  2080. 150.08 s [really-safe-money-gen] coverage (101/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is symmetric for "valid Account"s (3 mutations)
  2081. 150.20 s [really-safe-money-gen] coverage (92/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2082. 150.21 s [really-safe-money-gen] coverage (96/1610): Money\.AccountSpec.Show Account and Read Account.are implemented such that read \. show == id for valid values (3 mutations)
  2083. 150.24 s [really-safe-money-gen] coverage (104/1610): Money\.AccountSpec.negate.produces valid amounts (1 mutations)
  2084. 150.29 s [really-safe-money-gen] coverage (108/1610): Money\.AccountSpec.convert.converts this USD to CHF correctly (26 mutations)
  2085. 150.32 s [really-safe-money-gen] coverage (94/1610): Money\.ConversionRateSpec.compose.produces valid rates (8 mutations)
  2086. 150.38 s [really-safe-money-gen] coverage (110/1610): Money\.AccountSpec.distribute.correctly distributes 3 into 3 (18 mutations)
  2087. 150.39 s [really-safe-money-gen] coverage (99/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Account"s (3 mutations)
  2088. 150.56 s [really-safe-money-gen] coverage (111/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is symmetric for "valid (Distribution Account)"s (3 mutations)
  2089. 150.67 s [really-safe-money-gen] coverage (106/1610): Money\.AccountSpec.convert.succeeds in converting 1\:1 without rounding if the quantisation factor is the same (29 mutations)
  2090. 150.69 s [really-safe-money-gen] coverage (100/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is transitive for "valid Account"s (3 mutations)
  2091. 151.14 s [really-safe-money-gen] coverage (112/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is transitive for "valid (Distribution Account)"s (3 mutations)
  2092. 151.14 s [really-safe-money-gen] coverage (105/1610): Money\.AccountSpec.format.produces valid strings (6 mutations)
  2093. 151.68 s [really-safe-money-gen] coverage (107/1610): Money\.AccountSpec.convert.produces valid amounts (27 mutations)
  2094. 158.28 s [really-safe-money-gen] coverage (113/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution Account)"s (3 mutations)
  2095. 158.32 s [really-safe-money-gen] coverage (114/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is reflexive for "valid (Distribution Account)"s (3 mutations)
  2096. 158.35 s [really-safe-money-gen] coverage (115/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is antireflexive for "valid (Distribution Account)"s (3 mutations)
  2097. 158.44 s [really-safe-money-gen] coverage (116/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution Account)"s (3 mutations)
  2098. 158.59 s [really-safe-money-gen] coverage (118/1610): Money\.AccountSpec.distribute.correctly distributes 10 into 4 (20 mutations)
  2099. 159.01 s [really-safe-money-gen] coverage (120/1610): Money\.AccountSpec.distribute.produces valid amounts (36 mutations)
  2100. 159.23 s [really-safe-money-gen] coverage (122/1610): Money\.AccountSpec.fromAmount.produces valid accounts (1 mutations)
  2101. 159.24 s [really-safe-money-gen] coverage (121/1610): Money\.AccountSpec.abs.produces valid amounts (1 mutations)
  2102. 159.43 s [really-safe-money-gen] coverage (128/1610): Money\.AccountSpec.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2103. 159.48 s [really-safe-money-gen] coverage (131/1610): Money\.AccountSpec.rate.computes this USD to CHF rate correctly (14 mutations)
  2104. 159.49 s [really-safe-money-gen] coverage (135/1610): Money\.AccountSpec.Ord.says 4 is smaller than 5 (2 mutations)
  2105. 159.51 s [really-safe-money-gen] coverage (117/1610): Money\.AccountSpec.distribute.produces results that sum up to the greater whole (66 mutations)
  2106. 159.61 s [really-safe-money-gen] coverage (127/1610): Money\.AccountSpec.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2107. 159.61 s [really-safe-money-gen] coverage (126/1610): Money\.AccountSpec.fromRatio.roundtrips with toRatio (22 mutations)
  2108. 159.69 s [really-safe-money-gen] coverage (124/1610): Money\.AccountSpec.fromRational.produces valid rational (27 mutations)
  2109. 159.70 s [really-safe-money-gen] coverage (134/1610): Money\.AccountSpec.Ord.says -6 is greater than -7 (2 mutations)
  2110. 159.79 s [really-safe-money-gen] coverage (125/1610): Money\.AccountSpec.fromRatio.produces valid rational (20 mutations)
  2111. 159.86 s [really-safe-money-gen] coverage (132/1610): Money\.AccountSpec.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2112. 159.87 s [really-safe-money-gen] coverage (133/1610): Money\.AccountSpec.toDouble.produces an infinite or NaN Double with quantisation factor 0 (3 mutations)
  2113. 160.04 s [really-safe-money-gen] coverage (130/1610): Money\.AccountSpec.rate.produces valid conversion rates (15 mutations)
  2114. 160.05 s [really-safe-money-gen] coverage (123/1610): Money\.AccountSpec.fromRational.roundtrips with toRational (31 mutations)
  2115. 160.36 s [really-safe-money-gen] coverage (119/1610): Money\.AccountSpec.distribute.Show (Distribution Account) and Read (Distribution Account).are implemented such that read \. show == id for valid values (3 mutations)
  2116. 160.44 s [really-safe-money-gen] coverage (136/1610): Money\.AccountSpec.Ord.says -3 is smaller than 2 (2 mutations)
  2117. 160.69 s [really-safe-money-gen] coverage (129/1610): Money\.AccountSpec.rate.computes a rate that can be used to do a conversion without rounding (35 mutations)
  2118. 160.78 s [really-safe-money-gen] coverage (137/1610): Money\.AccountSpec.Ord.Ord Account."max \:\: (Account -> Account -> Account)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Account"'s (3 mutations)
  2119. 161.05 s [really-safe-money-gen] coverage (138/1610): Money\.AccountSpec.Ord.Ord Account."min \:\: (Account -> Account -> Account)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Account"'s (3 mutations)
  2120. 167.58 s [really-safe-money-gen] coverage (141/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
  2121. 167.64 s [really-safe-money-gen] coverage (139/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2122. 167.67 s [really-safe-money-gen] coverage (142/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
  2123. 167.72 s [really-safe-money-gen] coverage (140/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Account"'s (3 mutations)
  2124. 167.97 s [really-safe-money-gen] coverage (143/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2125. 168.43 s [really-safe-money-gen] coverage (144/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Account"'s (3 mutations)
  2126. 168.56 s [really-safe-money-gen] coverage (145/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
  2127. 168.66 s [really-safe-money-gen] coverage (146/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2128. 168.74 s [really-safe-money-gen] coverage (149/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
  2129. 168.77 s [really-safe-money-gen] coverage (148/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
  2130. 168.80 s [really-safe-money-gen] coverage (156/1610): Money\.AccountSpec.sum.fails to sum above maxBound even if the result is back below maxBound (10 mutations)
  2131. 168.84 s [really-safe-money-gen] coverage (150/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
  2132. 168.91 s [really-safe-money-gen] coverage (153/1610): Money\.AccountSpec.toRatio.produces valid Ratios when the quantisation factor is nonzero (1 mutations)
  2133. 168.92 s [really-safe-money-gen] coverage (157/1610): Money\.AccountSpec.sum.fails to sum above maxBound (10 mutations)
  2134. 168.93 s [really-safe-money-gen] coverage (147/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Account"'s (3 mutations)
  2135. 169.06 s [really-safe-money-gen] coverage (152/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2136. 169.26 s [really-safe-money-gen] coverage (158/1610): Money\.AccountSpec.sum.correctly sums [1,2,3] to 6 (12 mutations)
  2137. 169.42 s [really-safe-money-gen] coverage (160/1610): Money\.AccountSpec.toMinimalQuantisations.produces valid accounts (3 mutations)
  2138. 169.50 s [really-safe-money-gen] coverage (154/1610): Money\.AccountSpec.fractionRatio.produces valid amounts (22 mutations)
  2139. 169.52 s [really-safe-money-gen] coverage (163/1610): Money\.AccountSpec.add.fails for minBound + minBound (8 mutations)
  2140. 169.85 s [really-safe-money-gen] coverage (164/1610): Money\.AccountSpec.add.produces valid amounts (27 mutations)
  2141. 169.88 s [really-safe-money-gen] coverage (161/1610): Money\.AccountSpec.add.is commutative (27 mutations)
  2142. 170.07 s [really-safe-money-gen] coverage (166/1610): Money\.AccountSpec.add.fails for maxBound + 1 (8 mutations)
  2143. 170.10 s [really-safe-money-gen] coverage (165/1610): Money\.AccountSpec.add.has a right-identity\: zero (28 mutations)
  2144. 170.39 s [really-safe-money-gen] coverage (155/1610): Money\.AccountSpec.sum.produces valid amounts (28 mutations)
  2145. 170.72 s [really-safe-money-gen] coverage (159/1610): Money\.AccountSpec.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2146. 176.55 s [really-safe-money-gen] coverage (162/1610): Money\.AccountSpec.add.fails for minBound + (-1) (8 mutations)
  2147. 176.74 s [really-safe-money-gen] coverage (167/1610): Money\.AccountSpec.add.fails for maxBound + maxBound (8 mutations)
  2148. 176.98 s [really-safe-money-gen] coverage (169/1610): Money\.AccountSpec.add.has a left-identity\: zero (28 mutations)
  2149. 177.21 s [really-safe-money-gen] coverage (170/1610): Money\.AccountSpec.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2150. 177.23 s [really-safe-money-gen] coverage (168/1610): Money\.AccountSpec.add.is associative when both succeed (27 mutations)
  2151. 177.51 s [really-safe-money-gen] coverage (172/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (32 mutations)
  2152. 177.52 s [really-safe-money-gen] coverage (173/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (32 mutations)
  2153. 177.58 s [really-safe-money-gen] coverage (171/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (32 mutations)
  2154. 177.75 s [really-safe-money-gen] coverage (176/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (32 mutations)
  2155. 177.83 s [really-safe-money-gen] coverage (175/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 200 2 (46 mutations)
  2156. 177.85 s [really-safe-money-gen] coverage (174/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 4 2 (46 mutations)
  2157. 177.88 s [really-safe-money-gen] coverage (178/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 600 2 (46 mutations)
  2158. 177.91 s [really-safe-money-gen] coverage (180/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (46 mutations)
  2159. 177.96 s [really-safe-money-gen] coverage (177/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (46 mutations)
  2160. 178.05 s [really-safe-money-gen] coverage (181/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (52 mutations)
  2161. 178.06 s [really-safe-money-gen] coverage (179/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (32 mutations)
  2162. 178.34 s [really-safe-money-gen] coverage (182/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (46 mutations)
  2163. 178.41 s [really-safe-money-gen] coverage (186/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (32 mutations)
  2164. 178.52 s [really-safe-money-gen] coverage (185/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (40 mutations)
  2165. 178.99 s [really-safe-money-gen] coverage (188/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 20 2 (52 mutations)
  2166. 179.02 s [really-safe-money-gen] coverage (189/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just False) 2 0 (40 mutations)
  2167. 179.14 s [really-safe-money-gen] coverage (190/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (32 mutations)
  2168. 179.42 s [really-safe-money-gen] coverage (191/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise (17 mutations)
  2169. 179.51 s [really-safe-money-gen] coverage (192/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.produces valid factors (30 mutations)
  2170. 180.18 s [really-safe-money-gen] coverage (151/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid Account"'s (3 mutations)
  2171. 185.47 s [really-safe-money-gen] coverage (187/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (32 mutations)
  2172. 185.78 s [really-safe-money-gen] coverage (195/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (32 mutations)
  2173. 185.96 s [really-safe-money-gen] coverage (197/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (32 mutations)
  2174. 186.18 s [really-safe-money-gen] coverage (204/1610): Money\.AccountSpec.multiply.fails for 3 * minBound (8 mutations)
  2175. 186.25 s [really-safe-money-gen] coverage (193/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise:1 (17 mutations)
  2176. 186.25 s [really-safe-money-gen] coverage (203/1610): Money\.AccountSpec.subtract.fails for maxBound - minBound (8 mutations)
  2177. 186.27 s [really-safe-money-gen] coverage (198/1610): Money\.AccountSpec.fromDouble.produces valid rational (38 mutations)
  2178. 186.34 s [really-safe-money-gen] coverage (201/1610): Money\.AccountSpec.subtract.fails for minBound - 1 (8 mutations)
  2179. 186.50 s [really-safe-money-gen] coverage (202/1610): Money\.AccountSpec.subtract.fails for minBound - maxBound (8 mutations)
  2180. 186.60 s [really-safe-money-gen] coverage (206/1610): Money\.AccountSpec.multiply.produces valid amounts (20 mutations)
  2181. 186.62 s [really-safe-money-gen] coverage (205/1610): Money\.AccountSpec.multiply.is absorbed by 0 (20 mutations)
  2182. 186.65 s [really-safe-money-gen] coverage (200/1610): Money\.AccountSpec.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2183. 186.89 s [really-safe-money-gen] coverage (210/1610): Money\.AccountSpec.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2184. 186.90 s [really-safe-money-gen] coverage (208/1610): Money\.AccountSpec.multiply.has an identity\: 1 (20 mutations)
  2185. 187.03 s [really-safe-money-gen] coverage (199/1610): Money\.AccountSpec.fromDouble.roundtrips with toDouble back to double (40 mutations)
  2186. 187.07 s [really-safe-money-gen] coverage (211/1610): Money\.AccountSpec.multiply.fails for 2 * maxbound (8 mutations)
  2187. 187.14 s [really-safe-money-gen] coverage (194/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (52 mutations)
  2188. 187.31 s [really-safe-money-gen] coverage (196/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (32 mutations)
  2189. 187.43 s [really-safe-money-gen] coverage (209/1610): Money\.AccountSpec.multiply.is distributive with add when both succeed (44 mutations)
  2190. 187.63 s [really-safe-money-gen] coverage (207/1610): Money\.AccountSpec.multiply.succeeds for 3 * 6 (19 mutations)
  2191. 187.84 s [really-safe-money-gen] coverage (213/1610): Money\.AccountSpec.fraction.Correctly fractions 101 with 1 % 100 (32 mutations)
  2192. 188.21 s [really-safe-money-gen] coverage (212/1610): Money\.AccountSpec.GenValid Account.genValid \:\: Gen Account.only generates valid 'Account's (1 mutations)
  2193. 188.78 s [really-safe-money-gen] coverage (216/1610): Money\.AccountSpec.fraction.Correctly fractions 100 with 1 % 100 (32 mutations)
  2194. 189.05 s [really-safe-money-gen] coverage (215/1610): Money\.AccountSpec.fraction.Produces a result that can be multiplied back (39 mutations)
  2195. 194.23 s [really-safe-money-gen] coverage (223/1610): Money\.MultiAmountSpec.zero.is valid (2 mutations)
  2196. 194.39 s [really-safe-money-gen] coverage (218/1610): Money\.AccountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundUp (30 mutations)
  2197. 194.44 s [really-safe-money-gen] coverage (220/1610): Money\.AccountSpec.toRational.produces an invalid Rational with quantisation factor 0 (4 mutations)
  2198. 194.45 s [really-safe-money-gen] coverage (219/1610): Money\.AccountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2199. 194.68 s [really-safe-money-gen] coverage (217/1610): Money\.AccountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundDown (30 mutations)
  2200. 194.72 s [really-safe-money-gen] coverage (226/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"s (1 mutations)
  2201. 194.82 s [really-safe-money-gen] coverage (225/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(/=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (MultiAmount Currency)"s (1 mutations)
  2202. 194.84 s [really-safe-money-gen] coverage (228/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (MultiAmount Currency)"s (1 mutations)
  2203. 194.89 s [really-safe-money-gen] coverage (229/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is reflexive for "valid (MultiAmount Currency)"s (2 mutations)
  2204. 194.89 s [really-safe-money-gen] coverage (224/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(/=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antireflexive for "valid (MultiAmount Currency)"s (2 mutations)
  2205. 194.90 s [really-safe-money-gen] coverage (222/1610): Money\.MultiAmountSpec.Show (MultiAmount Currency) and Read (MultiAmount Currency).are implemented such that read \. show == id for valid values (2 mutations)
  2206. 195.03 s [really-safe-money-gen] coverage (221/1610): Money\.MultiAmountSpec.fromAmount.produces valid amounts (15 mutations)
  2207. 195.18 s [really-safe-money-gen] coverage (231/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antireflexive for "valid (MultiAmount Currency)"'s (2 mutations)
  2208. 195.21 s [really-safe-money-gen] coverage (214/1610): Money\.AccountSpec.fraction.produces valid amounts (39 mutations)
  2209. 195.22 s [really-safe-money-gen] coverage (227/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is symmetric for "valid (MultiAmount Currency)"s (1 mutations)
  2210. 195.66 s [really-safe-money-gen] coverage (234/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is reflexive for "valid (MultiAmount Currency)"'s (2 mutations)
  2211. 195.68 s [really-safe-money-gen] coverage (232/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
  2212. 195.83 s [really-safe-money-gen] coverage (230/1610): Money\.MultiAmountSpec.sum.produces valid amounts (27 mutations)
  2213. 195.91 s [really-safe-money-gen] coverage (233/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (MultiAmount Currency)"'s (2 mutations)
  2214. 195.91 s [really-safe-money-gen] coverage (235/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (MultiAmount Currency)"'s (2 mutations)
  2215. 196.29 s [really-safe-money-gen] coverage (237/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antisymmetric for "valid (MultiAmount Currency)"'s (2 mutations)
  2216. 196.63 s [really-safe-money-gen] coverage (238/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency)."min \:\: (MultiAmount Currency -> MultiAmount Currency -> MultiAmount Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (MultiAmount Currency)"'s (2 mutations)
  2217. 197.11 s [really-safe-money-gen] coverage (239/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antisymmetric for "valid (MultiAmount Currency)"'s (2 mutations)
  2218. 197.24 s [really-safe-money-gen] coverage (240/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is reflexive for "valid (MultiAmount Currency)"'s (2 mutations)
  2219. 202.64 s [really-safe-money-gen] coverage (241/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
  2220. 202.70 s [really-safe-money-gen] coverage (244/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antireflexive for "valid (MultiAmount Currency)"'s (2 mutations)
  2221. 202.90 s [really-safe-money-gen] coverage (243/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency)."max \:\: (MultiAmount Currency -> MultiAmount Currency -> MultiAmount Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (MultiAmount Currency)"'s (2 mutations)
  2222. 202.94 s [really-safe-money-gen] coverage (247/1610): Money\.MultiAmountSpec.convertAll.produces the right result in this example (15 mutations)
  2223. 202.94 s [really-safe-money-gen] coverage (242/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (MultiAmount Currency)"'s (2 mutations)
  2224. 203.04 s [really-safe-money-gen] coverage (245/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
  2225. 203.05 s [really-safe-money-gen] coverage (248/1610): Money\.MultiAmountSpec.convertAll.produces valid results when converting two currencies to one (20 mutations)
  2226. 203.14 s [really-safe-money-gen] coverage (249/1610): Money\.MultiAmountSpec.convertAll.does the same as 'convert' when there is only one amount (32 mutations)
  2227. 203.20 s [really-safe-money-gen] coverage (246/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (MultiAmount Currency)"'s (2 mutations)
  2228. 203.22 s [really-safe-money-gen] coverage (251/1610): Money\.MultiAmountSpec.add.has a right-identity\: zero (2 mutations)
  2229. 203.45 s [really-safe-money-gen] coverage (255/1610): Money\.MultiAmountSpec.addAmount.produces valid amounts (24 mutations)
  2230. 203.49 s [really-safe-money-gen] coverage (256/1610): Money\.MultiAmountSpec.subtractAmount.produces valid amounts (29 mutations)
  2231. 203.67 s [really-safe-money-gen] coverage (91/1610): Money\.ConversionRateSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2232. 203.92 s [really-safe-money-gen] coverage (250/1610): Money\.MultiAmountSpec.add.produces valid amounts (27 mutations)
  2233. 204.01 s [really-safe-money-gen] coverage (263/1610): Money\.AccountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2234. 204.04 s [really-safe-money-gen] coverage (259/1610): Money\.MultiAmountSpec.subtract.has a right-identity\: zero (2 mutations)
  2235. 204.08 s [really-safe-money-gen] coverage (260/1610): Money\.MultiAmountSpec.lookupAmount.produces valid amounts (2 mutations)
  2236. 204.15 s [really-safe-money-gen] coverage (257/1610): Money\.MultiAmountSpec.GenValid (MultiAmount Currency).genValid \:\: Gen (MultiAmount Currency).only generates valid '(MultiAmount Currency)'s (13 mutations)
  2237. 204.15 s [really-safe-money-gen] coverage (254/1610): Money\.MultiAmountSpec.add.is commutative (16 mutations)
  2238. 204.19 s [really-safe-money-gen] coverage (262/1610): Money\.AccountOfSpec.USD.sum.produces valid amounts (28 mutations)
  2239. 204.47 s [really-safe-money-gen] coverage (264/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * USD)"s (3 mutations)
  2240. 204.66 s [really-safe-money-gen] coverage (93/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2241. 204.76 s [really-safe-money-gen] coverage (253/1610): Money\.MultiAmountSpec.add.is associative when both succeed (16 mutations)
  2242. 204.95 s [really-safe-money-gen] coverage (261/1610): Money\.MultiAmountSpec.lookupAmount.can find an added amount (5 mutations)
  2243. 205.44 s [really-safe-money-gen] coverage (265/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"s (3 mutations)
  2244. 206.12 s [really-safe-money-gen] coverage (252/1610): Money\.MultiAmountSpec.add.has a left-identity\: zero (4 mutations)
  2245. 211.41 s [really-safe-money-gen] coverage (269/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * USD)"s (3 mutations)
  2246. 211.43 s [really-safe-money-gen] coverage (267/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is symmetric for "valid (AccountOf * USD)"s (3 mutations)
  2247. 211.63 s [really-safe-money-gen] coverage (268/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"s (3 mutations)
  2248. 211.67 s [really-safe-money-gen] coverage (272/1610): Money\.AccountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2249. 211.71 s [really-safe-money-gen] coverage (273/1610): Money\.AccountOfSpec.USD.add.produces valid amounts (27 mutations)
  2250. 211.80 s [really-safe-money-gen] coverage (271/1610): Money\.AccountOfSpec.USD.add.is associative when both succeed (27 mutations)
  2251. 211.80 s [really-safe-money-gen] coverage (258/1610): Money\.MultiAmountSpec.subtract.produces valid amounts (28 mutations)
  2252. 211.84 s [really-safe-money-gen] coverage (266/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"s (3 mutations)
  2253. 212.01 s [really-safe-money-gen] coverage (270/1610): Money\.AccountOfSpec.USD.add.has a right-identity\: zero (28 mutations)
  2254. 212.04 s [really-safe-money-gen] coverage (274/1610): Money\.AccountOfSpec.USD.add.is commutative (27 mutations)
  2255. 212.06 s [really-safe-money-gen] coverage (276/1610): Money\.AccountOfSpec.USD.fromAmountOf.produces valid AccountOfs (1 mutations)
  2256. 212.19 s [really-safe-money-gen] coverage (275/1610): Money\.AccountOfSpec.USD.add.has a left-identity\: zero (28 mutations)
  2257. 212.53 s [really-safe-money-gen] coverage (279/1610): Money\.AccountOfSpec.USD.fromAmount.produces valid AccountOfs (1 mutations)
  2258. 212.69 s [really-safe-money-gen] coverage (280/1610): Money\.AccountOfSpec.USD.negate.produces valid amounts (1 mutations)
  2259. 212.75 s [really-safe-money-gen] coverage (281/1610): Money\.AccountOfSpec.USD.USD.convert.produces valid amounts (27 mutations)
  2260. 212.76 s [really-safe-money-gen] coverage (277/1610): Money\.AccountOfSpec.USD.toMinimalQuantisations.produces valid accounts (3 mutations)
  2261. 212.85 s [really-safe-money-gen] coverage (283/1610): Money\.AccountOfSpec.USD.Show (AccountOf * USD) and Read (AccountOf * USD).are implemented such that read \. show == id for valid values (3 mutations)
  2262. 212.88 s [really-safe-money-gen] coverage (284/1610): Money\.AccountOfSpec.USD.BTC.rate.produces valid amounts (15 mutations)
  2263. 212.92 s [really-safe-money-gen] coverage (278/1610): Money\.AccountOfSpec.USD.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2264. 212.96 s [really-safe-money-gen] coverage (282/1610): Money\.AccountOfSpec.USD.USD.rate.produces valid amounts (15 mutations)
  2265. 213.14 s [really-safe-money-gen] coverage (288/1610): Money\.AccountOfSpec.USD.ADA.rate.produces valid amounts (15 mutations)
  2266. 213.36 s [really-safe-money-gen] coverage (286/1610): Money\.AccountOfSpec.USD.INR.rate.produces valid amounts (15 mutations)
  2267. 213.81 s [really-safe-money-gen] coverage (290/1610): Money\.AccountOfSpec.USD.CHF.convert.produces valid amounts (27 mutations)
  2268. 213.94 s [really-safe-money-gen] coverage (236/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
  2269. 214.32 s [really-safe-money-gen] coverage (285/1610): Money\.AccountOfSpec.USD.BTC.convert.produces valid amounts (27 mutations)
  2270. 214.87 s [really-safe-money-gen] coverage (292/1610): Money\.AccountOfSpec.USD.abs.produces valid amounts (1 mutations)
  2271. 220.66 s [really-safe-money-gen] coverage (295/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2272. 220.79 s [really-safe-money-gen] coverage (296/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2273. 220.91 s [really-safe-money-gen] coverage (297/1610): Money\.AccountOfSpec.USD.GenValid (AccountOf * USD).genValid \:\: Gen (AccountOf * USD).only generates valid '(AccountOf * USD)'s (1 mutations)
  2274. 221.00 s [really-safe-money-gen] coverage (300/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * USD)"'s (3 mutations)
  2275. 221.02 s [really-safe-money-gen] coverage (298/1610): Money\.AccountOfSpec.USD.fromDouble.produces valid rational (38 mutations)
  2276. 221.07 s [really-safe-money-gen] coverage (294/1610): Money\.AccountOfSpec.USD.fraction.Produces a result that can be multiplied back (38 mutations)
  2277. 221.16 s [really-safe-money-gen] coverage (301/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"'s (3 mutations)
  2278. 221.19 s [really-safe-money-gen] coverage (287/1610): Money\.AccountOfSpec.USD.INR.convert.produces valid amounts (27 mutations)
  2279. 221.22 s [really-safe-money-gen] coverage (299/1610): Money\.AccountOfSpec.USD.fromDouble.roundtrips with toDouble (40 mutations)
  2280. 221.37 s [really-safe-money-gen] coverage (303/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
  2281. 221.43 s [really-safe-money-gen] coverage (302/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
  2282. 221.52 s [really-safe-money-gen] coverage (304/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"'s (3 mutations)
  2283. 221.89 s [really-safe-money-gen] coverage (305/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * USD)"'s (3 mutations)
  2284. 222.08 s [really-safe-money-gen] coverage (291/1610): Money\.AccountOfSpec.USD.CHF.rate.produces valid amounts (15 mutations)
  2285. 222.11 s [really-safe-money-gen] coverage (293/1610): Money\.AccountOfSpec.USD.fraction.produces valid amounts (39 mutations)
  2286. 222.14 s [really-safe-money-gen] coverage (289/1610): Money\.AccountOfSpec.USD.ADA.convert.produces valid amounts (27 mutations)
  2287. 222.28 s [really-safe-money-gen] coverage (308/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"'s (3 mutations)
  2288. 222.32 s [really-safe-money-gen] coverage (309/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
  2289. 222.37 s [really-safe-money-gen] coverage (306/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * USD)"'s (3 mutations)
  2290. 222.43 s [really-safe-money-gen] coverage (307/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antisymmetric for "valid (AccountOf * USD)"'s (3 mutations)
  2291. 222.74 s [really-safe-money-gen] coverage (310/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD)."max \:\: (AccountOf * USD -> AccountOf * USD -> AccountOf * USD)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * USD)"'s (3 mutations)
  2292. 222.75 s [really-safe-money-gen] coverage (311/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * USD)"'s (3 mutations)
  2293. 223.30 s [really-safe-money-gen] coverage (313/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antisymmetric for "valid (AccountOf * USD)"'s (3 mutations)
  2294. 223.36 s [really-safe-money-gen] coverage (312/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"'s (3 mutations)
  2295. 223.73 s [really-safe-money-gen] coverage (314/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
  2296. 224.46 s [really-safe-money-gen] coverage (315/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD)."min \:\: (AccountOf * USD -> AccountOf * USD -> AccountOf * USD)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * USD)"'s (3 mutations)
  2297. 230.42 s [really-safe-money-gen] coverage (316/1610): Money\.AccountOfSpec.USD.distribute.produces results that sum up to the greater whole (64 mutations)
  2298. 230.59 s [really-safe-money-gen] coverage (318/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(/=) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * USD))"s (3 mutations)
  2299. 230.72 s [really-safe-money-gen] coverage (317/1610): Money\.AccountOfSpec.USD.distribute.Show (Distribution (AccountOf * USD)) and Read (Distribution (AccountOf * USD)).are implemented such that read \. show == id for valid values (3 mutations)
  2300. 230.74 s [really-safe-money-gen] coverage (320/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is reflexive for "valid (Distribution (AccountOf * USD))"s (3 mutations)
  2301. 230.83 s [really-safe-money-gen] coverage (321/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is transitive for "valid (Distribution (AccountOf * USD))"s (3 mutations)
  2302. 230.83 s [really-safe-money-gen] coverage (322/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is symmetric for "valid (Distribution (AccountOf * USD))"s (3 mutations)
  2303. 230.94 s [really-safe-money-gen] coverage (324/1610): Money\.AccountOfSpec.USD.distribute.produces valid amounts (34 mutations)
  2304. 230.94 s [really-safe-money-gen] coverage (319/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(/=) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * USD))"s (3 mutations)
  2305. 230.96 s [really-safe-money-gen] coverage (323/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * USD))"s (3 mutations)
  2306. 231.31 s [really-safe-money-gen] coverage (325/1610): Money\.AccountOfSpec.USD.format.produces valid strings (6 mutations)
  2307. 231.49 s [really-safe-money-gen] coverage (327/1610): Money\.AccountOfSpec.USD.fromRational.produces valid rational (27 mutations)
  2308. 231.62 s [really-safe-money-gen] coverage (328/1610): Money\.AccountOfSpec.USD.fromRational.roundtrips with toRational (31 mutations)
  2309. 231.63 s [really-safe-money-gen] coverage (326/1610): Money\.AccountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2310. 231.99 s [really-safe-money-gen] coverage (329/1610): Money\.AccountOfSpec.USD.multiply.is absorbed by 0 (20 mutations)
  2311. 232.10 s [really-safe-money-gen] coverage (331/1610): Money\.AccountOfSpec.USD.multiply.produces valid amounts (20 mutations)
  2312. 232.20 s [really-safe-money-gen] coverage (330/1610): Money\.AccountOfSpec.USD.multiply.has an identity\: 1 (20 mutations)
  2313. 232.22 s [really-safe-money-gen] coverage (333/1610): Money\.AccountOfSpec.USD.multiply.is distributive with add when both succeed (44 mutations)
  2314. 232.26 s [really-safe-money-gen] coverage (332/1610): Money\.AccountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2315. 232.34 s [really-safe-money-gen] coverage (335/1610): Money\.AccountOfSpec.INR.fromAmount.produces valid AccountOfs (1 mutations)
  2316. 232.34 s [really-safe-money-gen] coverage (334/1610): Money\.AccountOfSpec.USD.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2317. 232.75 s [really-safe-money-gen] coverage (337/1610): Money\.AccountOfSpec.INR.USD.rate.produces valid amounts (15 mutations)
  2318. 232.91 s [really-safe-money-gen] coverage (336/1610): Money\.AccountOfSpec.INR.USD.convert.produces valid amounts (27 mutations)
  2319. 233.64 s [really-safe-money-gen] coverage (341/1610): Money\.AccountOfSpec.INR.add.is associative when both succeed (27 mutations)
  2320. 233.64 s [really-safe-money-gen] coverage (338/1610): Money\.AccountOfSpec.INR.GenValid (AccountOf * INR).genValid \:\: Gen (AccountOf * INR).only generates valid '(AccountOf * INR)'s (1 mutations)
  2321. 234.15 s [really-safe-money-gen] coverage (342/1610): Money\.AccountOfSpec.INR.add.has a left-identity\: zero (28 mutations)
  2322. 234.87 s [really-safe-money-gen] coverage (343/1610): Money\.AccountOfSpec.INR.add.is commutative (27 mutations)
  2323. 238.88 s [really-safe-money-gen] coverage (183/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.roundtrips with Account\.fromDecimalLiteral (87 mutations)
  2324. 240.92 s [really-safe-money-gen] coverage (344/1610): Money\.AccountOfSpec.INR.add.has a right-identity\: zero (28 mutations)
  2325. 241.08 s [really-safe-money-gen] coverage (339/1610): Money\.AccountOfSpec.INR.abs.produces valid amounts (1 mutations)
  2326. 241.09 s [really-safe-money-gen] coverage (345/1610): Money\.AccountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2327. 241.19 s [really-safe-money-gen] coverage (348/1610): Money\.AccountOfSpec.INR.fraction.Produces a result that can be multiplied back (38 mutations)
  2328. 241.21 s [really-safe-money-gen] coverage (346/1610): Money\.AccountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2329. 241.26 s [really-safe-money-gen] coverage (350/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(/=) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * INR))"s (3 mutations)
  2330. 241.35 s [really-safe-money-gen] coverage (349/1610): Money\.AccountOfSpec.INR.distribute.produces results that sum up to the greater whole (64 mutations)
  2331. 241.36 s [really-safe-money-gen] coverage (340/1610): Money\.AccountOfSpec.INR.add.produces valid amounts (27 mutations)
  2332. 241.51 s [really-safe-money-gen] coverage (347/1610): Money\.AccountOfSpec.INR.fraction.produces valid amounts (39 mutations)
  2333. 241.68 s [really-safe-money-gen] coverage (351/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(/=) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * INR))"s (3 mutations)
  2334. 241.72 s [really-safe-money-gen] coverage (352/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is transitive for "valid (Distribution (AccountOf * INR))"s (3 mutations)
  2335. 241.91 s [really-safe-money-gen] coverage (357/1610): Money\.AccountOfSpec.INR.distribute.produces valid amounts (34 mutations)
  2336. 242.09 s [really-safe-money-gen] coverage (354/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is reflexive for "valid (Distribution (AccountOf * INR))"s (3 mutations)
  2337. 242.36 s [really-safe-money-gen] coverage (358/1610): Money\.AccountOfSpec.INR.fromAmountOf.produces valid AccountOfs (1 mutations)
  2338. 242.41 s [really-safe-money-gen] coverage (360/1610): Money\.AccountOfSpec.INR.sum.produces valid amounts (28 mutations)
  2339. 242.48 s [really-safe-money-gen] coverage (359/1610): Money\.AccountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2340. 242.53 s [really-safe-money-gen] coverage (355/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is symmetric for "valid (Distribution (AccountOf * INR))"s (3 mutations)
  2341. 242.54 s [really-safe-money-gen] coverage (356/1610): Money\.AccountOfSpec.INR.distribute.Show (Distribution (AccountOf * INR)) and Read (Distribution (AccountOf * INR)).are implemented such that read \. show == id for valid values (3 mutations)
  2342. 242.89 s [really-safe-money-gen] coverage (353/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * INR))"s (3 mutations)
  2343. 242.96 s [really-safe-money-gen] coverage (365/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
  2344. 243.03 s [really-safe-money-gen] coverage (362/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antisymmetric for "valid (AccountOf * INR)"'s (3 mutations)
  2345. 243.06 s [really-safe-money-gen] coverage (363/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * INR)"'s (3 mutations)
  2346. 243.70 s [really-safe-money-gen] coverage (366/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
  2347. 243.85 s [really-safe-money-gen] coverage (361/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."min \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * INR)"'s (3 mutations)
  2348. 244.20 s [really-safe-money-gen] coverage (367/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"'s (3 mutations)
  2349. 245.04 s [really-safe-money-gen] coverage (368/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * INR)"'s (3 mutations)
  2350. 245.29 s [really-safe-money-gen] coverage (184/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.produces valid decimal literals (56 mutations)
  2351. 248.82 s [really-safe-money-gen] coverage (364/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"'s (3 mutations)
  2352. 250.95 s [really-safe-money-gen] coverage (369/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."max \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * INR)"'s (3 mutations)
  2353. 251.15 s [really-safe-money-gen] coverage (371/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * INR)"'s (3 mutations)
  2354. 251.18 s [really-safe-money-gen] coverage (370/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
  2355. 251.22 s [really-safe-money-gen] coverage (374/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
  2356. 251.27 s [really-safe-money-gen] coverage (373/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"'s (3 mutations)
  2357. 251.50 s [really-safe-money-gen] coverage (372/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"'s (3 mutations)
  2358. 251.51 s [really-safe-money-gen] coverage (375/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antisymmetric for "valid (AccountOf * INR)"'s (3 mutations)
  2359. 251.52 s [really-safe-money-gen] coverage (377/1610): Money\.AccountOfSpec.INR.CHF.rate.produces valid amounts (15 mutations)
  2360. 251.79 s [really-safe-money-gen] coverage (378/1610): Money\.AccountOfSpec.INR.CHF.convert.produces valid amounts (27 mutations)
  2361. 251.86 s [really-safe-money-gen] coverage (376/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * INR)"'s (3 mutations)
  2362. 252.01 s [really-safe-money-gen] coverage (379/1610): Money\.AccountOfSpec.INR.multiply.is distributive with add when both succeed (44 mutations)
  2363. 252.32 s [really-safe-money-gen] coverage (380/1610): Money\.AccountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2364. 252.55 s [really-safe-money-gen] coverage (381/1610): Money\.AccountOfSpec.INR.multiply.is absorbed by 0 (20 mutations)
  2365. 252.64 s [really-safe-money-gen] coverage (382/1610): Money\.AccountOfSpec.INR.multiply.produces valid amounts (20 mutations)
  2366. 252.87 s [really-safe-money-gen] coverage (383/1610): Money\.AccountOfSpec.INR.multiply.has an identity\: 1 (20 mutations)
  2367. 252.91 s [really-safe-money-gen] coverage (384/1610): Money\.AccountOfSpec.INR.negate.produces valid amounts (1 mutations)
  2368. 253.06 s [really-safe-money-gen] coverage (386/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2369. 253.24 s [really-safe-money-gen] coverage (385/1610): Money\.AccountOfSpec.INR.Show (AccountOf * INR) and Read (AccountOf * INR).are implemented such that read \. show == id for valid values (3 mutations)
  2370. 253.47 s [really-safe-money-gen] coverage (387/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2371. 253.55 s [really-safe-money-gen] coverage (388/1610): Money\.AccountOfSpec.INR.fromRational.produces valid rational (27 mutations)
  2372. 253.58 s [really-safe-money-gen] coverage (390/1610): Money\.AccountOfSpec.INR.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2373. 253.76 s [really-safe-money-gen] coverage (389/1610): Money\.AccountOfSpec.INR.fromRational.roundtrips with toRational (31 mutations)
  2374. 254.65 s [really-safe-money-gen] coverage (391/1610): Money\.AccountOfSpec.INR.BTC.rate.produces valid amounts (15 mutations)
  2375. 254.70 s [really-safe-money-gen] coverage (393/1610): Money\.AccountOfSpec.INR.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2376. 255.13 s [really-safe-money-gen] coverage (394/1610): Money\.AccountOfSpec.INR.fromDouble.roundtrips with toDouble (40 mutations)
  2377. 256.08 s [really-safe-money-gen] coverage (395/1610): Money\.AccountOfSpec.INR.fromDouble.produces valid rational (38 mutations)
  2378. 256.55 s [really-safe-money-gen] coverage (397/1610): Money\.AccountOfSpec.INR.ADA.rate.produces valid amounts (15 mutations)
  2379. 259.88 s [really-safe-money-gen] coverage (398/1610): Money\.AccountOfSpec.INR.format.produces valid strings (6 mutations)
  2380. 262.13 s [really-safe-money-gen] coverage (396/1610): Money\.AccountOfSpec.INR.ADA.convert.produces valid amounts (27 mutations)
  2381. 262.29 s [really-safe-money-gen] coverage (402/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"s (3 mutations)
  2382. 262.31 s [really-safe-money-gen] coverage (404/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"s (3 mutations)
  2383. 262.31 s [really-safe-money-gen] coverage (392/1610): Money\.AccountOfSpec.INR.BTC.convert.produces valid amounts (27 mutations)
  2384. 262.36 s [really-safe-money-gen] coverage (400/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(/=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * INR)"s (3 mutations)
  2385. 262.41 s [really-safe-money-gen] coverage (399/1610): Money\.AccountOfSpec.INR.toMinimalQuantisations.produces valid accounts (3 mutations)
  2386. 262.51 s [really-safe-money-gen] coverage (405/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * INR)"s (3 mutations)
  2387. 262.60 s [really-safe-money-gen] coverage (403/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is symmetric for "valid (AccountOf * INR)"s (3 mutations)
  2388. 262.72 s [really-safe-money-gen] coverage (406/1610): Money\.AccountOfSpec.INR.INR.convert.produces valid amounts (27 mutations)
  2389. 262.74 s [really-safe-money-gen] coverage (401/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(/=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"s (3 mutations)
  2390. 262.82 s [really-safe-money-gen] coverage (407/1610): Money\.AccountOfSpec.INR.INR.rate.produces valid amounts (15 mutations)
  2391. 262.94 s [really-safe-money-gen] coverage (408/1610): Money\.AccountOfSpec.CHF.fromAmount.produces valid AccountOfs (1 mutations)
  2392. 263.41 s [really-safe-money-gen] coverage (409/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2393. 263.43 s [really-safe-money-gen] coverage (413/1610): Money\.AccountOfSpec.CHF.multiply.is distributive with add when both succeed (44 mutations)
  2394. 263.77 s [really-safe-money-gen] coverage (423/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
  2395. 263.77 s [really-safe-money-gen] coverage (422/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is symmetric for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
  2396. 263.77 s [really-safe-money-gen] coverage (418/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(/=) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
  2397. 263.86 s [really-safe-money-gen] coverage (416/1610): Money\.AccountOfSpec.CHF.distribute.produces valid amounts (34 mutations)
  2398. 264.01 s [really-safe-money-gen] coverage (425/1610): Money\.AccountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2399. 264.05 s [really-safe-money-gen] coverage (424/1610): Money\.AccountOfSpec.CHF.distribute.Show (Distribution (AccountOf * CHF)) and Read (Distribution (AccountOf * CHF)).are implemented such that read \. show == id for valid values (3 mutations)
  2400. 264.14 s [really-safe-money-gen] coverage (417/1610): Money\.AccountOfSpec.CHF.distribute.produces results that sum up to the greater whole (64 mutations)
  2401. 264.35 s [really-safe-money-gen] coverage (426/1610): Money\.AccountOfSpec.CHF.sum.produces valid amounts (28 mutations)
  2402. 264.68 s [really-safe-money-gen] coverage (427/1610): Money\.AccountOfSpec.CHF.Show (AccountOf * CHF) and Read (AccountOf * CHF).are implemented such that read \. show == id for valid values (3 mutations)
  2403. 265.02 s [really-safe-money-gen] coverage (428/1610): Money\.AccountOfSpec.CHF.abs.produces valid amounts (1 mutations)
  2404. 265.36 s [really-safe-money-gen] coverage (429/1610): Money\.AccountOfSpec.CHF.USD.rate.produces valid amounts (15 mutations)
  2405. 266.21 s [really-safe-money-gen] coverage (430/1610): Money\.AccountOfSpec.CHF.USD.convert.produces valid amounts (27 mutations)
  2406. 266.40 s [really-safe-money-gen] coverage (410/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2407. 269.67 s [really-safe-money-gen] coverage (435/1610): Money\.AccountOfSpec.CHF.fraction.produces valid amounts (39 mutations)
  2408. 271.98 s [really-safe-money-gen] coverage (436/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * CHF)"s (3 mutations)
  2409. 272.01 s [really-safe-money-gen] coverage (437/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"s (3 mutations)
  2410. 272.01 s [really-safe-money-gen] coverage (440/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(/=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * CHF)"s (3 mutations)
  2411. 272.14 s [really-safe-money-gen] coverage (439/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is symmetric for "valid (AccountOf * CHF)"s (3 mutations)
  2412. 272.17 s [really-safe-money-gen] coverage (442/1610): Money\.AccountOfSpec.CHF.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2413. 272.19 s [really-safe-money-gen] coverage (441/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(/=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"s (3 mutations)
  2414. 272.22 s [really-safe-money-gen] coverage (444/1610): Money\.AccountOfSpec.CHF.negate.produces valid amounts (1 mutations)
  2415. 272.42 s [really-safe-money-gen] coverage (443/1610): Money\.AccountOfSpec.CHF.fromAmountOf.produces valid AccountOfs (1 mutations)
  2416. 272.49 s [really-safe-money-gen] coverage (446/1610): Money\.AccountOfSpec.CHF.format.produces valid strings (6 mutations)
  2417. 272.54 s [really-safe-money-gen] coverage (445/1610): Money\.AccountOfSpec.CHF.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2418. 272.57 s [really-safe-money-gen] coverage (447/1610): Money\.AccountOfSpec.CHF.fromRational.produces valid rational (27 mutations)
  2419. 272.68 s [really-safe-money-gen] coverage (448/1610): Money\.AccountOfSpec.CHF.fromRational.roundtrips with toRational (31 mutations)
  2420. 272.94 s [really-safe-money-gen] coverage (452/1610): Money\.AccountOfSpec.CHF.ADA.rate.produces valid amounts (15 mutations)
  2421. 273.12 s [really-safe-money-gen] coverage (449/1610): Money\.AccountOfSpec.CHF.fromDouble.produces valid rational (38 mutations)
  2422. 273.15 s [really-safe-money-gen] coverage (454/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * CHF)"'s (3 mutations)
  2423. 273.50 s [really-safe-money-gen] coverage (455/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
  2424. 273.55 s [really-safe-money-gen] coverage (453/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF)."min \:\: (AccountOf * CHF -> AccountOf * CHF -> AccountOf * CHF)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * CHF)"'s (3 mutations)
  2425. 273.57 s [really-safe-money-gen] coverage (456/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"'s (3 mutations)
  2426. 273.67 s [really-safe-money-gen] coverage (459/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
  2427. 273.72 s [really-safe-money-gen] coverage (457/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * CHF)"'s (3 mutations)
  2428. 273.89 s [really-safe-money-gen] coverage (460/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"'s (3 mutations)
  2429. 274.07 s [really-safe-money-gen] coverage (451/1610): Money\.AccountOfSpec.CHF.ADA.convert.produces valid amounts (27 mutations)
  2430. 274.12 s [really-safe-money-gen] coverage (461/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF)."max \:\: (AccountOf * CHF -> AccountOf * CHF -> AccountOf * CHF)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * CHF)"'s (3 mutations)
  2431. 274.55 s [really-safe-money-gen] coverage (462/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * CHF)"'s (3 mutations)
  2432. 274.95 s [really-safe-money-gen] coverage (464/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
  2433. 275.86 s [really-safe-money-gen] coverage (463/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"'s (3 mutations)
  2434. 276.10 s [really-safe-money-gen] coverage (465/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * CHF)"'s (3 mutations)
  2435. 279.25 s [really-safe-money-gen] coverage (466/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"'s (3 mutations)
  2436. 281.56 s [really-safe-money-gen] coverage (467/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antisymmetric for "valid (AccountOf * CHF)"'s (3 mutations)
  2437. 281.58 s [really-safe-money-gen] coverage (468/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
  2438. 281.63 s [really-safe-money-gen] coverage (438/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"s (3 mutations)
  2439. 281.70 s [really-safe-money-gen] coverage (414/1610): Money\.AccountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2440. 281.76 s [really-safe-money-gen] coverage (469/1610): Money\.AccountOfSpec.CHF.GenValid (AccountOf * CHF).genValid \:\: Gen (AccountOf * CHF).only generates valid '(AccountOf * CHF)'s (1 mutations)
  2441. 281.85 s [really-safe-money-gen] coverage (480/1610): Money\.AccountOfSpec.CHF.INR.rate.produces valid amounts (15 mutations)
  2442. 282.05 s [really-safe-money-gen] coverage (415/1610): Money\.AccountOfSpec.CHF.multiply.has an identity\: 1 (20 mutations)
  2443. 282.07 s [really-safe-money-gen] coverage (478/1610): Money\.AccountOfSpec.CHF.add.produces valid amounts (27 mutations)
  2444. 282.21 s [really-safe-money-gen] coverage (479/1610): Money\.AccountOfSpec.CHF.INR.convert.produces valid amounts (27 mutations)
  2445. 282.23 s [really-safe-money-gen] coverage (419/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(/=) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
  2446. 282.36 s [really-safe-money-gen] coverage (412/1610): Money\.AccountOfSpec.CHF.multiply.is absorbed by 0 (20 mutations)
  2447. 282.38 s [really-safe-money-gen] coverage (481/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2448. 282.73 s [really-safe-money-gen] coverage (420/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is reflexive for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
  2449. 282.84 s [really-safe-money-gen] coverage (421/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is transitive for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
  2450. 282.86 s [really-safe-money-gen] coverage (482/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2451. 283.00 s [really-safe-money-gen] coverage (450/1610): Money\.AccountOfSpec.CHF.fromDouble.roundtrips with toDouble (40 mutations)
  2452. 283.34 s [really-safe-money-gen] coverage (483/1610): Money\.AccountOfSpec.ADA.fromDouble.produces valid rational (38 mutations)
  2453. 283.38 s [really-safe-money-gen] coverage (434/1610): Money\.AccountOfSpec.CHF.fraction.Produces a result that can be multiplied back (38 mutations)
  2454. 283.42 s [really-safe-money-gen] coverage (411/1610): Money\.AccountOfSpec.CHF.multiply.produces valid amounts (20 mutations)
  2455. 283.42 s [really-safe-money-gen] coverage (431/1610): Money\.AccountOfSpec.CHF.BTC.convert.produces valid amounts (27 mutations)
  2456. 283.60 s [really-safe-money-gen] coverage (485/1610): Money\.AccountOfSpec.ADA.fromRational.produces valid rational (27 mutations)
  2457. 283.70 s [really-safe-money-gen] coverage (484/1610): Money\.AccountOfSpec.ADA.fromDouble.roundtrips with toDouble (40 mutations)
  2458. 283.83 s [really-safe-money-gen] coverage (486/1610): Money\.AccountOfSpec.ADA.fromRational.roundtrips with toRational (31 mutations)
  2459. 284.25 s [really-safe-money-gen] coverage (432/1610): Money\.AccountOfSpec.CHF.BTC.rate.produces valid amounts (15 mutations)
  2460. 284.69 s [really-safe-money-gen] coverage (433/1610): Money\.AccountOfSpec.CHF.toMinimalQuantisations.produces valid accounts (3 mutations)
  2461. 285.25 s [really-safe-money-gen] coverage (487/1610): Money\.AccountOfSpec.ADA.Show (AccountOf * ADA) and Read (AccountOf * ADA).are implemented such that read \. show == id for valid values (3 mutations)
  2462. 285.46 s [really-safe-money-gen] coverage (489/1610): Money\.AccountOfSpec.ADA.fraction.produces valid amounts (39 mutations)
  2463. 288.71 s [really-safe-money-gen] coverage (490/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antisymmetric for "valid (AccountOf * ADA)"'s (3 mutations)
  2464. 290.96 s [really-safe-money-gen] coverage (491/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"'s (3 mutations)
  2465. 290.99 s [really-safe-money-gen] coverage (493/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * ADA)"'s (3 mutations)
  2466. 291.06 s [really-safe-money-gen] coverage (492/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
  2467. 291.26 s [really-safe-money-gen] coverage (488/1610): Money\.AccountOfSpec.ADA.fraction.Produces a result that can be multiplied back (38 mutations)
  2468. 291.27 s [really-safe-money-gen] coverage (495/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * ADA)"'s (3 mutations)
  2469. 291.44 s [really-safe-money-gen] coverage (494/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antisymmetric for "valid (AccountOf * ADA)"'s (3 mutations)
  2470. 291.61 s [really-safe-money-gen] coverage (497/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"'s (3 mutations)
  2471. 291.65 s [really-safe-money-gen] coverage (496/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
  2472. 291.90 s [really-safe-money-gen] coverage (476/1610): Money\.AccountOfSpec.CHF.add.has a right-identity\: zero (28 mutations)
  2473. 291.91 s [really-safe-money-gen] coverage (475/1610): Money\.AccountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2474. 292.02 s [really-safe-money-gen] coverage (477/1610): Money\.AccountOfSpec.CHF.add.is commutative (27 mutations)
  2475. 292.13 s [really-safe-money-gen] coverage (471/1610): Money\.AccountOfSpec.CHF.CHF.rate.produces valid amounts (15 mutations)
  2476. 292.37 s [really-safe-money-gen] coverage (473/1610): Money\.AccountOfSpec.CHF.add.is associative when both succeed (27 mutations)
  2477. 292.45 s [really-safe-money-gen] coverage (472/1610): Money\.AccountOfSpec.CHF.CHF.convert.produces valid amounts (27 mutations)
  2478. 292.54 s [really-safe-money-gen] coverage (474/1610): Money\.AccountOfSpec.CHF.add.has a left-identity\: zero (28 mutations)
  2479. 292.76 s [really-safe-money-gen] coverage (470/1610): Money\.AccountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2480. 293.00 s [really-safe-money-gen] coverage (504/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
  2481. 293.10 s [really-safe-money-gen] coverage (506/1610): Money\.AccountOfSpec.ADA.fromAmountOf.produces valid AccountOfs (1 mutations)
  2482. 293.11 s [really-safe-money-gen] coverage (507/1610): Money\.AccountOfSpec.ADA.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2483. 293.13 s [really-safe-money-gen] coverage (505/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"'s (3 mutations)
  2484. 293.35 s [really-safe-money-gen] coverage (501/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * ADA)"'s (3 mutations)
  2485. 293.56 s [really-safe-money-gen] coverage (511/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
  2486. 293.58 s [really-safe-money-gen] coverage (508/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is reflexive for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
  2487. 293.90 s [really-safe-money-gen] coverage (502/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA)."max \:\: (AccountOf * ADA -> AccountOf * ADA -> AccountOf * ADA)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * ADA)"'s (3 mutations)
  2488. 294.44 s [really-safe-money-gen] coverage (509/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is transitive for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
  2489. 294.98 s [really-safe-money-gen] coverage (499/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"'s (3 mutations)
  2490. 295.23 s [really-safe-money-gen] coverage (503/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * ADA)"'s (3 mutations)
  2491. 298.35 s [really-safe-money-gen] coverage (512/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(/=) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
  2492. 300.71 s [really-safe-money-gen] coverage (498/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA)."min \:\: (AccountOf * ADA -> AccountOf * ADA -> AccountOf * ADA)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * ADA)"'s (3 mutations)
  2493. 300.76 s [really-safe-money-gen] coverage (500/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
  2494. 300.83 s [really-safe-money-gen] coverage (513/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(/=) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
  2495. 301.14 s [really-safe-money-gen] coverage (514/1610): Money\.AccountOfSpec.ADA.distribute.Show (Distribution (AccountOf * ADA)) and Read (Distribution (AccountOf * ADA)).are implemented such that read \. show == id for valid values (3 mutations)
  2496. 301.18 s [really-safe-money-gen] coverage (515/1610): Money\.AccountOfSpec.ADA.distribute.produces valid amounts (34 mutations)
  2497. 301.20 s [really-safe-money-gen] coverage (516/1610): Money\.AccountOfSpec.ADA.distribute.produces results that sum up to the greater whole (64 mutations)
  2498. 301.35 s [really-safe-money-gen] coverage (521/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"s (3 mutations)
  2499. 301.47 s [really-safe-money-gen] coverage (520/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"s (3 mutations)
  2500. 301.75 s [really-safe-money-gen] coverage (522/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is symmetric for "valid (AccountOf * ADA)"s (3 mutations)
  2501. 301.84 s [really-safe-money-gen] coverage (517/1610): Money\.AccountOfSpec.ADA.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2502. 301.92 s [really-safe-money-gen] coverage (524/1610): Money\.AccountOfSpec.ADA.abs.produces valid amounts (1 mutations)
  2503. 301.92 s [really-safe-money-gen] coverage (523/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * ADA)"s (3 mutations)
  2504. 302.28 s [really-safe-money-gen] coverage (525/1610): Money\.AccountOfSpec.ADA.format.produces valid strings (6 mutations)
  2505. 302.28 s [really-safe-money-gen] coverage (526/1610): Money\.AccountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2506. 302.39 s [really-safe-money-gen] coverage (528/1610): Money\.AccountOfSpec.ADA.CHF.rate.produces valid amounts (15 mutations)
  2507. 302.73 s [really-safe-money-gen] coverage (529/1610): Money\.AccountOfSpec.ADA.CHF.convert.produces valid amounts (27 mutations)
  2508. 302.82 s [really-safe-money-gen] coverage (530/1610): Money\.AccountOfSpec.ADA.INR.rate.produces valid amounts (15 mutations)
  2509. 302.95 s [really-safe-money-gen] coverage (532/1610): Money\.AccountOfSpec.ADA.fromAmount.produces valid AccountOfs (1 mutations)
  2510. 303.00 s [really-safe-money-gen] coverage (536/1610): Money\.AccountOfSpec.ADA.ADA.convert.produces valid amounts (27 mutations)
  2511. 303.02 s [really-safe-money-gen] coverage (531/1610): Money\.AccountOfSpec.ADA.INR.convert.produces valid amounts (27 mutations)
  2512. 303.28 s [really-safe-money-gen] coverage (537/1610): Money\.AccountOfSpec.ADA.ADA.rate.produces valid amounts (15 mutations)
  2513. 303.40 s [really-safe-money-gen] coverage (535/1610): Money\.AccountOfSpec.ADA.toMinimalQuantisations.produces valid accounts (3 mutations)
  2514. 303.43 s [really-safe-money-gen] coverage (533/1610): Money\.AccountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2515. 303.66 s [really-safe-money-gen] coverage (538/1610): Money\.AccountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2516. 304.19 s [really-safe-money-gen] coverage (539/1610): Money\.AccountOfSpec.ADA.add.produces valid amounts (27 mutations)
  2517. 304.88 s [really-safe-money-gen] coverage (541/1610): Money\.AccountOfSpec.ADA.add.is associative when both succeed (27 mutations)
  2518. 305.19 s [really-safe-money-gen] coverage (534/1610): Money\.AccountOfSpec.ADA.sum.produces valid amounts (28 mutations)
  2519. 307.84 s [really-safe-money-gen] coverage (519/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(/=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * ADA)"s (3 mutations)
  2520. 309.99 s [really-safe-money-gen] coverage (540/1610): Money\.AccountOfSpec.ADA.add.is commutative (27 mutations)
  2521. 310.09 s [really-safe-money-gen] coverage (546/1610): Money\.AccountOfSpec.ADA.BTC.rate.produces valid amounts (15 mutations)
  2522. 310.20 s [really-safe-money-gen] coverage (527/1610): Money\.AccountOfSpec.ADA.negate.produces valid amounts (1 mutations)
  2523. 310.35 s [really-safe-money-gen] coverage (547/1610): Money\.AccountOfSpec.ADA.multiply.produces valid amounts (20 mutations)
  2524. 310.50 s [really-safe-money-gen] coverage (548/1610): Money\.AccountOfSpec.ADA.multiply.is distributive with add when both succeed (44 mutations)
  2525. 310.61 s [really-safe-money-gen] coverage (549/1610): Money\.AccountOfSpec.ADA.multiply.has an identity\: 1 (20 mutations)
  2526. 310.66 s [really-safe-money-gen] coverage (550/1610): Money\.AccountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2527. 310.76 s [really-safe-money-gen] coverage (551/1610): Money\.AccountOfSpec.ADA.multiply.is absorbed by 0 (20 mutations)
  2528. 310.95 s [really-safe-money-gen] coverage (553/1610): Money\.AccountOfSpec.ADA.USD.rate.produces valid amounts (15 mutations)
  2529. 310.97 s [really-safe-money-gen] coverage (552/1610): Money\.AccountOfSpec.ADA.USD.convert.produces valid amounts (27 mutations)
  2530. 311.11 s [really-safe-money-gen] coverage (554/1610): Money\.AccountOfSpec.BTC.add.is commutative (27 mutations)
  2531. 311.13 s [really-safe-money-gen] coverage (518/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(/=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"s (3 mutations)
  2532. 311.50 s [really-safe-money-gen] coverage (555/1610): Money\.AccountOfSpec.BTC.add.produces valid amounts (27 mutations)
  2533. 311.56 s [really-safe-money-gen] coverage (556/1610): Money\.AccountOfSpec.BTC.add.has a left-identity\: zero (28 mutations)
  2534. 311.60 s [really-safe-money-gen] coverage (510/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is symmetric for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
  2535. 312.00 s [really-safe-money-gen] coverage (558/1610): Money\.AccountOfSpec.BTC.add.is associative when both succeed (27 mutations)
  2536. 312.11 s [really-safe-money-gen] coverage (559/1610): Money\.AccountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2537. 312.17 s [really-safe-money-gen] coverage (564/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antisymmetric for "valid (AccountOf * BTC)"'s (3 mutations)
  2538. 312.24 s [really-safe-money-gen] coverage (560/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * BTC)"'s (3 mutations)
  2539. 312.25 s [really-safe-money-gen] coverage (561/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
  2540. 312.50 s [really-safe-money-gen] coverage (562/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"'s (3 mutations)
  2541. 312.57 s [really-safe-money-gen] coverage (563/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * BTC)"'s (3 mutations)
  2542. 312.58 s [really-safe-money-gen] coverage (565/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"'s (3 mutations)
  2543. 312.83 s [really-safe-money-gen] coverage (557/1610): Money\.AccountOfSpec.BTC.add.has a right-identity\: zero (28 mutations)
  2544. 313.35 s [really-safe-money-gen] coverage (566/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
  2545. 313.72 s [really-safe-money-gen] coverage (545/1610): Money\.AccountOfSpec.ADA.BTC.convert.produces valid amounts (27 mutations)
  2546. 314.21 s [really-safe-money-gen] coverage (568/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * BTC)"'s (3 mutations)
  2547. 316.86 s [really-safe-money-gen] coverage (458/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antisymmetric for "valid (AccountOf * CHF)"'s (3 mutations)
  2548. 319.02 s [really-safe-money-gen] coverage (542/1610): Money\.AccountOfSpec.ADA.add.has a left-identity\: zero (28 mutations)
  2549. 319.05 s [really-safe-money-gen] coverage (569/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"'s (3 mutations)
  2550. 319.26 s [really-safe-money-gen] coverage (570/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC)."min \:\: (AccountOf * BTC -> AccountOf * BTC -> AccountOf * BTC)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * BTC)"'s (3 mutations)
  2551. 319.40 s [really-safe-money-gen] coverage (571/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC)."max \:\: (AccountOf * BTC -> AccountOf * BTC -> AccountOf * BTC)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * BTC)"'s (3 mutations)
  2552. 319.43 s [really-safe-money-gen] coverage (544/1610): Money\.AccountOfSpec.ADA.GenValid (AccountOf * ADA).genValid \:\: Gen (AccountOf * ADA).only generates valid '(AccountOf * ADA)'s (1 mutations)
  2553. 319.66 s [really-safe-money-gen] coverage (572/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antisymmetric for "valid (AccountOf * BTC)"'s (3 mutations)
  2554. 319.72 s [really-safe-money-gen] coverage (573/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * BTC)"'s (3 mutations)
  2555. 319.78 s [really-safe-money-gen] coverage (574/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
  2556. 319.80 s [really-safe-money-gen] coverage (567/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
  2557. 320.10 s [really-safe-money-gen] coverage (575/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"'s (3 mutations)
  2558. 320.22 s [really-safe-money-gen] coverage (576/1610): Money\.AccountOfSpec.BTC.BTC.convert.produces valid amounts (27 mutations)
  2559. 320.25 s [really-safe-money-gen] coverage (543/1610): Money\.AccountOfSpec.ADA.add.has a right-identity\: zero (28 mutations)
  2560. 320.44 s [really-safe-money-gen] coverage (577/1610): Money\.AccountOfSpec.BTC.BTC.rate.produces valid amounts (15 mutations)
  2561. 320.63 s [really-safe-money-gen] coverage (579/1610): Money\.AccountOfSpec.BTC.distribute.produces results that sum up to the greater whole (64 mutations)
  2562. 320.76 s [really-safe-money-gen] coverage (580/1610): Money\.AccountOfSpec.BTC.distribute.Show (Distribution (AccountOf * BTC)) and Read (Distribution (AccountOf * BTC)).are implemented such that read \. show == id for valid values (3 mutations)
  2563. 320.94 s [really-safe-money-gen] coverage (583/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is symmetric for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
  2564. 321.08 s [really-safe-money-gen] coverage (578/1610): Money\.AccountOfSpec.BTC.distribute.produces valid amounts (34 mutations)
  2565. 321.12 s [really-safe-money-gen] coverage (588/1610): Money\.AccountOfSpec.BTC.negate.produces valid amounts (1 mutations)
  2566. 321.24 s [really-safe-money-gen] coverage (584/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is transitive for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
  2567. 321.31 s [really-safe-money-gen] coverage (591/1610): Money\.AccountOfSpec.BTC.multiply.is distributive with add when both succeed (44 mutations)
  2568. 321.44 s [really-safe-money-gen] coverage (592/1610): Money\.AccountOfSpec.BTC.multiply.is absorbed by 0 (20 mutations)
  2569. 321.75 s [really-safe-money-gen] coverage (582/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is reflexive for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
  2570. 321.84 s [really-safe-money-gen] coverage (596/1610): Money\.AccountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2571. 321.85 s [really-safe-money-gen] coverage (595/1610): Money\.AccountOfSpec.BTC.sum.produces valid amounts (28 mutations)
  2572. 322.50 s [really-safe-money-gen] coverage (597/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"s (3 mutations)
  2573. 322.91 s [really-safe-money-gen] coverage (598/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"s (3 mutations)
  2574. 323.48 s [really-safe-money-gen] coverage (599/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * BTC)"s (3 mutations)
  2575. 326.74 s [really-safe-money-gen] coverage (600/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is symmetric for "valid (AccountOf * BTC)"s (3 mutations)
  2576. 328.96 s [really-safe-money-gen] coverage (601/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(/=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"s (3 mutations)
  2577. 329.04 s [really-safe-money-gen] coverage (606/1610): Money\.AccountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2578. 329.05 s [really-safe-money-gen] coverage (603/1610): Money\.AccountOfSpec.BTC.format.produces valid strings (6 mutations)
  2579. 329.20 s [really-safe-money-gen] coverage (602/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(/=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * BTC)"s (3 mutations)
  2580. 329.26 s [really-safe-money-gen] coverage (610/1610): Money\.AccountOfSpec.BTC.fromRational.roundtrips with toRational (31 mutations)
  2581. 329.51 s [really-safe-money-gen] coverage (609/1610): Money\.AccountOfSpec.BTC.fromRational.produces valid rational (27 mutations)
  2582. 329.55 s [really-safe-money-gen] coverage (608/1610): Money\.AccountOfSpec.BTC.ADA.rate.produces valid amounts (15 mutations)
  2583. 329.62 s [really-safe-money-gen] coverage (612/1610): Money\.AccountOfSpec.BTC.toMinimalQuantisations.produces valid accounts (3 mutations)
  2584. 329.68 s [really-safe-money-gen] coverage (607/1610): Money\.AccountOfSpec.BTC.ADA.convert.produces valid amounts (27 mutations)
  2585. 329.98 s [really-safe-money-gen] coverage (616/1610): Money\.AccountOfSpec.BTC.INR.convert.produces valid amounts (27 mutations)
  2586. 330.01 s [really-safe-money-gen] coverage (613/1610): Money\.AccountOfSpec.BTC.GenValid (AccountOf * BTC).genValid \:\: Gen (AccountOf * BTC).only generates valid '(AccountOf * BTC)'s (1 mutations)
  2587. 330.03 s [really-safe-money-gen] coverage (619/1610): Money\.AccountOfSpec.BTC.fraction.produces valid amounts (39 mutations)
  2588. 330.24 s [really-safe-money-gen] coverage (618/1610): Money\.AccountOfSpec.BTC.fromDouble.produces valid rational (38 mutations)
  2589. 330.35 s [really-safe-money-gen] coverage (615/1610): Money\.AccountOfSpec.BTC.INR.rate.produces valid amounts (15 mutations)
  2590. 330.69 s [really-safe-money-gen] coverage (622/1610): Money\.AccountOfSpec.BTC.CHF.convert.produces valid amounts (27 mutations)
  2591. 330.69 s [really-safe-money-gen] coverage (620/1610): Money\.AccountOfSpec.BTC.fraction.Produces a result that can be multiplied back (38 mutations)
  2592. 330.81 s [really-safe-money-gen] coverage (626/1610): Money\.AccountOfSpec.BTC.abs.produces valid amounts (1 mutations)
  2593. 330.87 s [really-safe-money-gen] coverage (625/1610): Money\.AccountOfSpec.BTC.fromAmount.produces valid AccountOfs (1 mutations)
  2594. 331.02 s [really-safe-money-gen] coverage (624/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2595. 331.18 s [really-safe-money-gen] coverage (627/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2596. 331.34 s [really-safe-money-gen] coverage (623/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2597. 331.59 s [really-safe-money-gen] coverage (628/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2598. 331.62 s [really-safe-money-gen] coverage (629/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2599. 331.66 s [really-safe-money-gen] coverage (614/1610): Money\.AccountOfSpec.BTC.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2600. 332.23 s [really-safe-money-gen] coverage (630/1610): Money\.ConversionRateOfSpec.INR.ADA.GenValid (ConversionRateOf INR ADA).genValid \:\: Gen (ConversionRateOf INR ADA).only generates valid '(ConversionRateOf INR ADA)'s (6 mutations)
  2601. 332.57 s [really-safe-money-gen] coverage (631/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2602. 333.06 s [really-safe-money-gen] coverage (632/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2603. 336.39 s [really-safe-money-gen] coverage (633/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2604. 338.49 s [really-safe-money-gen] coverage (634/1610): Money\.ConversionRateOfSpec.INR.ADA.compose.produces valid rates (8 mutations)
  2605. 338.64 s [really-safe-money-gen] coverage (594/1610): Money\.AccountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2606. 338.82 s [really-safe-money-gen] coverage (605/1610): Money\.AccountOfSpec.BTC.USD.rate.produces valid amounts (15 mutations)
  2607. 338.97 s [really-safe-money-gen] coverage (635/1610): Money\.ConversionRateOfSpec.INR.ADA.invert.produces valid rates (8 mutations)
  2608. 339.14 s [really-safe-money-gen] coverage (636/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2609. 339.21 s [really-safe-money-gen] coverage (611/1610): Money\.AccountOfSpec.BTC.Show (AccountOf * BTC) and Read (AccountOf * BTC).are implemented such that read \. show == id for valid values (3 mutations)
  2610. 339.46 s [really-safe-money-gen] coverage (587/1610): Money\.AccountOfSpec.BTC.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2611. 339.71 s [really-safe-money-gen] coverage (617/1610): Money\.AccountOfSpec.BTC.fromDouble.roundtrips with toDouble (40 mutations)
  2612. 339.84 s [really-safe-money-gen] coverage (586/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(/=) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
  2613. 340.30 s [really-safe-money-gen] coverage (590/1610): Money\.AccountOfSpec.BTC.multiply.produces valid amounts (20 mutations)
  2614. 340.32 s [really-safe-money-gen] coverage (581/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
  2615. 340.32 s [really-safe-money-gen] coverage (621/1610): Money\.AccountOfSpec.BTC.CHF.rate.produces valid amounts (15 mutations)
  2616. 340.32 s [really-safe-money-gen] coverage (593/1610): Money\.AccountOfSpec.BTC.multiply.has an identity\: 1 (20 mutations)
  2617. 340.39 s [really-safe-money-gen] coverage (604/1610): Money\.AccountOfSpec.BTC.USD.convert.produces valid amounts (27 mutations)
  2618. 340.87 s [really-safe-money-gen] coverage (585/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(/=) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
  2619. 340.90 s [really-safe-money-gen] coverage (643/1610): Money\.ConversionRateOfSpec.INR.BTC.compose.produces valid rates (8 mutations)
  2620. 341.33 s [really-safe-money-gen] coverage (645/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2621. 341.37 s [really-safe-money-gen] coverage (644/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2622. 341.97 s [really-safe-money-gen] coverage (589/1610): Money\.AccountOfSpec.BTC.fromAmountOf.produces valid AccountOfs (1 mutations)
  2623. 341.99 s [really-safe-money-gen] coverage (646/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2624. 342.31 s [really-safe-money-gen] coverage (650/1610): Money\.ConversionRateOfSpec.INR.BTC.GenValid (ConversionRateOf INR BTC).genValid \:\: Gen (ConversionRateOf INR BTC).only generates valid '(ConversionRateOf INR BTC)'s (6 mutations)
  2625. 342.59 s [really-safe-money-gen] coverage (657/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2626. 342.75 s [really-safe-money-gen] coverage (648/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2627. 343.37 s [really-safe-money-gen] coverage (640/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2628. 343.60 s [really-safe-money-gen] coverage (653/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2629. 343.63 s [really-safe-money-gen] coverage (654/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2630. 344.37 s [really-safe-money-gen] coverage (651/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2631. 348.79 s [really-safe-money-gen] coverage (649/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2632. 350.16 s [really-safe-money-gen] coverage (655/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2633. 350.51 s [really-safe-money-gen] coverage (642/1610): Money\.ConversionRateOfSpec.INR.BTC.invert.produces valid rates (8 mutations)
  2634. 350.71 s [really-safe-money-gen] coverage (639/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2635. 350.79 s [really-safe-money-gen] coverage (647/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2636. 350.86 s [really-safe-money-gen] coverage (658/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2637. 350.94 s [really-safe-money-gen] coverage (652/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2638. 351.26 s [really-safe-money-gen] coverage (641/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2639. 351.27 s [really-safe-money-gen] coverage (662/1610): Money\.ConversionRateOfSpec.INR.CHF.GenValid (ConversionRateOf INR CHF).genValid \:\: Gen (ConversionRateOf INR CHF).only generates valid '(ConversionRateOf INR CHF)'s (6 mutations)
  2640. 351.34 s [really-safe-money-gen] coverage (656/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2641. 351.58 s [really-safe-money-gen] coverage (670/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2642. 351.61 s [really-safe-money-gen] coverage (671/1610): Money\.ConversionRateOfSpec.INR.USD.compose.produces valid rates (8 mutations)
  2643. 351.63 s [really-safe-money-gen] coverage (637/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2644. 351.81 s [really-safe-money-gen] coverage (669/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2645. 352.25 s [really-safe-money-gen] coverage (638/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2646. 352.60 s [really-safe-money-gen] coverage (673/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2647. 352.88 s [really-safe-money-gen] coverage (675/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.toRational.produces valid rationals (0 mutations)
  2648. 352.88 s [really-safe-money-gen] coverage (674/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2649. 353.09 s [really-safe-money-gen] coverage (677/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2650. 353.23 s [really-safe-money-gen] coverage (672/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2651. 353.42 s [really-safe-money-gen] coverage (676/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2652. 353.64 s [really-safe-money-gen] coverage (678/1610): Money\.ConversionRateOfSpec.INR.INR.GenValid (ConversionRateOf INR INR).genValid \:\: Gen (ConversionRateOf INR INR).only generates valid '(ConversionRateOf INR INR)'s (6 mutations)
  2653. 353.78 s [really-safe-money-gen] coverage (680/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2654. 354.50 s [really-safe-money-gen] coverage (683/1610): Money\.ConversionRateOfSpec.INR.INR.invert.produces valid rates (8 mutations)
  2655. 354.54 s [really-safe-money-gen] coverage (679/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2656. 354.62 s [really-safe-money-gen] coverage (682/1610): Money\.ConversionRateOfSpec.INR.INR.compose.produces valid rates (8 mutations)
  2657. 354.89 s [really-safe-money-gen] coverage (684/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2658. 355.00 s [really-safe-money-gen] coverage (681/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2659. 359.16 s [really-safe-money-gen] coverage (685/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2660. 360.37 s [really-safe-money-gen] coverage (686/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2661. 360.79 s [really-safe-money-gen] coverage (687/1610): Money\.ConversionRateOfSpec.ADA.USD.compose.produces valid rates (8 mutations)
  2662. 361.02 s [really-safe-money-gen] coverage (667/1610): Money\.ConversionRateOfSpec.INR.USD.invert.produces valid rates (8 mutations)
  2663. 361.37 s [really-safe-money-gen] coverage (688/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2664. 361.42 s [really-safe-money-gen] coverage (665/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2665. 361.51 s [really-safe-money-gen] coverage (661/1610): Money\.ConversionRateOfSpec.INR.CHF.compose.produces valid rates (8 mutations)
  2666. 361.70 s [really-safe-money-gen] coverage (666/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2667. 361.78 s [really-safe-money-gen] coverage (660/1610): Money\.ConversionRateOfSpec.INR.CHF.invert.produces valid rates (8 mutations)
  2668. 361.80 s [really-safe-money-gen] coverage (663/1610): Money\.ConversionRateOfSpec.INR.USD.GenValid (ConversionRateOf INR USD).genValid \:\: Gen (ConversionRateOf INR USD).only generates valid '(ConversionRateOf INR USD)'s (6 mutations)
  2669. 361.82 s [really-safe-money-gen] coverage (668/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2670. 362.08 s [really-safe-money-gen] coverage (659/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2671. 362.15 s [really-safe-money-gen] coverage (693/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2672. 362.23 s [really-safe-money-gen] coverage (664/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.toRational.produces valid rationals (0 mutations)
  2673. 362.60 s [really-safe-money-gen] coverage (694/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.toRational.produces valid rationals (0 mutations)
  2674. 362.84 s [really-safe-money-gen] coverage (695/1610): Money\.ConversionRateOfSpec.ADA.USD.GenValid (ConversionRateOf ADA USD).genValid \:\: Gen (ConversionRateOf ADA USD).only generates valid '(ConversionRateOf ADA USD)'s (6 mutations)
  2675. 362.96 s [really-safe-money-gen] coverage (691/1610): Money\.ConversionRateOfSpec.ADA.USD.invert.produces valid rates (8 mutations)
  2676. 363.06 s [really-safe-money-gen] coverage (692/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2677. 363.31 s [really-safe-money-gen] coverage (690/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2678. 363.52 s [really-safe-money-gen] coverage (689/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2679. 364.01 s [really-safe-money-gen] coverage (700/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2680. 364.27 s [really-safe-money-gen] coverage (697/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2681. 364.54 s [really-safe-money-gen] coverage (699/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2682. 364.58 s [really-safe-money-gen] coverage (702/1610): Money\.ConversionRateOfSpec.ADA.CHF.compose.produces valid rates (8 mutations)
  2683. 364.75 s [really-safe-money-gen] coverage (706/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2684. 364.96 s [really-safe-money-gen] coverage (707/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2685. 365.08 s [really-safe-money-gen] coverage (705/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2686. 365.18 s [really-safe-money-gen] coverage (701/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2687. 369.08 s [really-safe-money-gen] coverage (698/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2688. 369.94 s [really-safe-money-gen] coverage (704/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2689. 370.51 s [really-safe-money-gen] coverage (703/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2690. 370.88 s [really-safe-money-gen] coverage (719/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2691. 370.93 s [really-safe-money-gen] coverage (696/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2692. 371.02 s [really-safe-money-gen] coverage (718/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2693. 371.07 s [really-safe-money-gen] coverage (715/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2694. 371.28 s [really-safe-money-gen] coverage (721/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2695. 371.36 s [really-safe-money-gen] coverage (716/1610): Money\.ConversionRateOfSpec.ADA.ADA.compose.produces valid rates (8 mutations)
  2696. 371.64 s [really-safe-money-gen] coverage (714/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2697. 371.68 s [really-safe-money-gen] coverage (720/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2698. 371.78 s [really-safe-money-gen] coverage (713/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2699. 371.84 s [really-safe-money-gen] coverage (710/1610): Money\.ConversionRateOfSpec.ADA.CHF.invert.produces valid rates (8 mutations)
  2700. 371.94 s [really-safe-money-gen] coverage (722/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2701. 372.14 s [really-safe-money-gen] coverage (711/1610): Money\.ConversionRateOfSpec.ADA.ADA.GenValid (ConversionRateOf ADA ADA).genValid \:\: Gen (ConversionRateOf ADA ADA).only generates valid '(ConversionRateOf ADA ADA)'s (6 mutations)
  2702. 372.30 s [really-safe-money-gen] coverage (717/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2703. 372.45 s [really-safe-money-gen] coverage (712/1610): Money\.ConversionRateOfSpec.ADA.ADA.invert.produces valid rates (8 mutations)
  2704. 372.63 s [really-safe-money-gen] coverage (708/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2705. 372.79 s [really-safe-money-gen] coverage (709/1610): Money\.ConversionRateOfSpec.ADA.CHF.GenValid (ConversionRateOf ADA CHF).genValid \:\: Gen (ConversionRateOf ADA CHF).only generates valid '(ConversionRateOf ADA CHF)'s (6 mutations)
  2706. 373.16 s [really-safe-money-gen] coverage (726/1610): Money\.ConversionRateOfSpec.ADA.BTC.GenValid (ConversionRateOf ADA BTC).genValid \:\: Gen (ConversionRateOf ADA BTC).only generates valid '(ConversionRateOf ADA BTC)'s (6 mutations)
  2707. 373.50 s [really-safe-money-gen] coverage (728/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2708. 373.99 s [really-safe-money-gen] coverage (729/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2709. 374.18 s [really-safe-money-gen] coverage (730/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2710. 374.21 s [really-safe-money-gen] coverage (731/1610): Money\.ConversionRateOfSpec.ADA.BTC.compose.produces valid rates (8 mutations)
  2711. 374.44 s [really-safe-money-gen] coverage (727/1610): Money\.ConversionRateOfSpec.ADA.BTC.invert.produces valid rates (8 mutations)
  2712. 374.69 s [really-safe-money-gen] coverage (732/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2713. 374.70 s [really-safe-money-gen] coverage (725/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2714. 374.92 s [really-safe-money-gen] coverage (735/1610): Money\.ConversionRateOfSpec.ADA.INR.GenValid (ConversionRateOf ADA INR).genValid \:\: Gen (ConversionRateOf ADA INR).only generates valid '(ConversionRateOf ADA INR)'s (6 mutations)
  2715. 378.77 s [really-safe-money-gen] coverage (736/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2716. 379.66 s [really-safe-money-gen] coverage (737/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2717. 380.28 s [really-safe-money-gen] coverage (734/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2718. 380.66 s [really-safe-money-gen] coverage (740/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2719. 380.73 s [really-safe-money-gen] coverage (739/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2720. 380.80 s [really-safe-money-gen] coverage (738/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.toRational.produces valid rationals (0 mutations)
  2721. 381.04 s [really-safe-money-gen] coverage (741/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2722. 381.22 s [really-safe-money-gen] coverage (724/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2723. 381.51 s [really-safe-money-gen] coverage (745/1610): Money\.ConversionRateOfSpec.ADA.INR.compose.produces valid rates (8 mutations)
  2724. 381.54 s [really-safe-money-gen] coverage (733/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2725. 381.61 s [really-safe-money-gen] coverage (748/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2726. 381.84 s [really-safe-money-gen] coverage (749/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2727. 381.85 s [really-safe-money-gen] coverage (742/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2728. 382.13 s [really-safe-money-gen] coverage (723/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2729. 382.13 s [really-safe-money-gen] coverage (751/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2730. 382.48 s [really-safe-money-gen] coverage (747/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2731. 382.56 s [really-safe-money-gen] coverage (750/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2732. 382.83 s [really-safe-money-gen] coverage (752/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2733. 382.86 s [really-safe-money-gen] coverage (743/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2734. 383.21 s [really-safe-money-gen] coverage (744/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2735. 383.23 s [really-safe-money-gen] coverage (756/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2736. 383.72 s [really-safe-money-gen] coverage (758/1610): Money\.ConversionRateOfSpec.CHF.BTC.GenValid (ConversionRateOf CHF BTC).genValid \:\: Gen (ConversionRateOf CHF BTC).only generates valid '(ConversionRateOf CHF BTC)'s (6 mutations)
  2737. 383.90 s [really-safe-money-gen] coverage (759/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2738. 384.20 s [really-safe-money-gen] coverage (762/1610): Money\.ConversionRateOfSpec.CHF.ADA.invert.produces valid rates (8 mutations)
  2739. 384.42 s [really-safe-money-gen] coverage (763/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2740. 384.61 s [really-safe-money-gen] coverage (760/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2741. 384.67 s [really-safe-money-gen] coverage (765/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2742. 384.80 s [really-safe-money-gen] coverage (761/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2743. 387.81 s [really-safe-money-gen] coverage (746/1610): Money\.ConversionRateOfSpec.ADA.INR.invert.produces valid rates (8 mutations)
  2744. 388.80 s [really-safe-money-gen] coverage (766/1610): Money\.ConversionRateOfSpec.CHF.ADA.compose.produces valid rates (8 mutations)
  2745. 389.35 s [really-safe-money-gen] coverage (770/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2746. 389.40 s [really-safe-money-gen] coverage (769/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2747. 389.66 s [really-safe-money-gen] coverage (767/1610): Money\.ConversionRateOfSpec.CHF.ADA.GenValid (ConversionRateOf CHF ADA).genValid \:\: Gen (ConversionRateOf CHF ADA).only generates valid '(ConversionRateOf CHF ADA)'s (6 mutations)
  2748. 389.68 s [really-safe-money-gen] coverage (757/1610): Money\.ConversionRateOfSpec.CHF.BTC.invert.produces valid rates (8 mutations)
  2749. 390.05 s [really-safe-money-gen] coverage (768/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2750. 390.07 s [really-safe-money-gen] coverage (755/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2751. 390.28 s [really-safe-money-gen] coverage (754/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2752. 390.60 s [really-safe-money-gen] coverage (753/1610): Money\.ConversionRateOfSpec.CHF.BTC.compose.produces valid rates (8 mutations)
  2753. 390.67 s [really-safe-money-gen] coverage (764/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2754. 391.11 s [really-safe-money-gen] coverage (777/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2755. 391.15 s [really-safe-money-gen] coverage (776/1610): Money\.ConversionRateOfSpec.CHF.USD.compose.produces valid rates (8 mutations)
  2756. 391.31 s [really-safe-money-gen] coverage (774/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2757. 391.38 s [really-safe-money-gen] coverage (773/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2758. 391.39 s [really-safe-money-gen] coverage (778/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2759. 391.50 s [really-safe-money-gen] coverage (779/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.toRational.produces valid rationals (0 mutations)
  2760. 391.74 s [really-safe-money-gen] coverage (781/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2761. 391.76 s [really-safe-money-gen] coverage (782/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2762. 392.02 s [really-safe-money-gen] coverage (772/1610): Money\.ConversionRateOfSpec.CHF.USD.GenValid (ConversionRateOf CHF USD).genValid \:\: Gen (ConversionRateOf CHF USD).only generates valid '(ConversionRateOf CHF USD)'s (6 mutations)
  2763. 392.23 s [really-safe-money-gen] coverage (783/1610): Money\.ConversionRateOfSpec.CHF.CHF.GenValid (ConversionRateOf CHF CHF).genValid \:\: Gen (ConversionRateOf CHF CHF).only generates valid '(ConversionRateOf CHF CHF)'s (6 mutations)
  2764. 392.58 s [really-safe-money-gen] coverage (775/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2765. 392.79 s [really-safe-money-gen] coverage (780/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2766. 393.26 s [really-safe-money-gen] coverage (784/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2767. 393.42 s [really-safe-money-gen] coverage (786/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2768. 393.67 s [really-safe-money-gen] coverage (787/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2769. 393.71 s [really-safe-money-gen] coverage (771/1610): Money\.ConversionRateOfSpec.CHF.USD.invert.produces valid rates (8 mutations)
  2770. 393.75 s [really-safe-money-gen] coverage (788/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2771. 396.67 s [really-safe-money-gen] coverage (793/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2772. 397.74 s [really-safe-money-gen] coverage (792/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2773. 398.14 s [really-safe-money-gen] coverage (791/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2774. 398.31 s [really-safe-money-gen] coverage (795/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2775. 398.74 s [really-safe-money-gen] coverage (797/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2776. 398.74 s [really-safe-money-gen] coverage (798/1610): Money\.ConversionRateOfSpec.CHF.INR.compose.produces valid rates (8 mutations)
  2777. 399.09 s [really-safe-money-gen] coverage (804/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2778. 399.25 s [really-safe-money-gen] coverage (808/1610): Money\.ConversionRateOfSpec.USD.CHF.invert.produces valid rates (8 mutations)
  2779. 399.62 s [really-safe-money-gen] coverage (807/1610): Money\.ConversionRateOfSpec.USD.CHF.GenValid (ConversionRateOf USD CHF).genValid \:\: Gen (ConversionRateOf USD CHF).only generates valid '(ConversionRateOf USD CHF)'s (6 mutations)
  2780. 400.05 s [really-safe-money-gen] coverage (796/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2781. 400.30 s [really-safe-money-gen] coverage (810/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2782. 400.46 s [really-safe-money-gen] coverage (809/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2783. 400.61 s [really-safe-money-gen] coverage (803/1610): Money\.ConversionRateOfSpec.CHF.INR.GenValid (ConversionRateOf CHF INR).genValid \:\: Gen (ConversionRateOf CHF INR).only generates valid '(ConversionRateOf CHF INR)'s (6 mutations)
  2784. 400.66 s [really-safe-money-gen] coverage (812/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2785. 400.67 s [really-safe-money-gen] coverage (814/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2786. 400.88 s [really-safe-money-gen] coverage (813/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2787. 400.91 s [really-safe-money-gen] coverage (818/1610): Money\.ConversionRateOfSpec.USD.CHF.compose.produces valid rates (8 mutations)
  2788. 401.11 s [really-safe-money-gen] coverage (811/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2789. 401.13 s [really-safe-money-gen] coverage (815/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2790. 401.35 s [really-safe-money-gen] coverage (817/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2791. 401.64 s [really-safe-money-gen] coverage (799/1610): Money\.ConversionRateOfSpec.CHF.INR.invert.produces valid rates (8 mutations)
  2792. 401.91 s [really-safe-money-gen] coverage (816/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2793. 401.97 s [really-safe-money-gen] coverage (819/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2794. 402.44 s [really-safe-money-gen] coverage (821/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2795. 402.91 s [really-safe-money-gen] coverage (820/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2796. 403.06 s [really-safe-money-gen] coverage (790/1610): Money\.ConversionRateOfSpec.CHF.CHF.invert.produces valid rates (8 mutations)
  2797. 403.49 s [really-safe-money-gen] coverage (822/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2798. 403.84 s [really-safe-money-gen] coverage (824/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2799. 406.49 s [really-safe-money-gen] coverage (802/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2800. 406.96 s [really-safe-money-gen] coverage (805/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2801. 407.45 s [really-safe-money-gen] coverage (801/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2802. 407.54 s [really-safe-money-gen] coverage (800/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2803. 407.96 s [really-safe-money-gen] coverage (806/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.toRational.produces valid rationals (0 mutations)
  2804. 408.21 s [really-safe-money-gen] coverage (794/1610): Money\.ConversionRateOfSpec.CHF.CHF.compose.produces valid rates (8 mutations)
  2805. 408.31 s [really-safe-money-gen] coverage (785/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2806. 408.37 s [really-safe-money-gen] coverage (826/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.toRational.produces valid rationals (0 mutations)
  2807. 408.86 s [really-safe-money-gen] coverage (827/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2808. 409.15 s [really-safe-money-gen] coverage (829/1610): Money\.ConversionRateOfSpec.USD.USD.compose.produces valid rates (8 mutations)
  2809. 409.33 s [really-safe-money-gen] coverage (830/1610): Money\.ConversionRateOfSpec.USD.USD.GenValid (ConversionRateOf USD USD).genValid \:\: Gen (ConversionRateOf USD USD).only generates valid '(ConversionRateOf USD USD)'s (6 mutations)
  2810. 409.79 s [really-safe-money-gen] coverage (832/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2811. 409.80 s [really-safe-money-gen] coverage (836/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2812. 409.91 s [really-safe-money-gen] coverage (838/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2813. 410.08 s [really-safe-money-gen] coverage (840/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2814. 410.13 s [really-safe-money-gen] coverage (841/1610): Money\.ConversionRateOfSpec.USD.INR.invert.produces valid rates (8 mutations)
  2815. 410.25 s [really-safe-money-gen] coverage (831/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2816. 410.34 s [really-safe-money-gen] coverage (842/1610): Money\.ConversionRateOfSpec.USD.INR.GenValid (ConversionRateOf USD INR).genValid \:\: Gen (ConversionRateOf USD INR).only generates valid '(ConversionRateOf USD INR)'s (6 mutations)
  2817. 410.34 s [really-safe-money-gen] coverage (843/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2818. 410.69 s [really-safe-money-gen] coverage (844/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2819. 410.72 s [really-safe-money-gen] coverage (845/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2820. 411.22 s [really-safe-money-gen] coverage (846/1610): Money\.ConversionRateOfSpec.USD.BTC.compose.produces valid rates (8 mutations)
  2821. 411.24 s [really-safe-money-gen] coverage (835/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2822. 412.02 s [really-safe-money-gen] coverage (825/1610): Money\.ConversionRateOfSpec.USD.USD.invert.produces valid rates (8 mutations)
  2823. 412.05 s [really-safe-money-gen] coverage (833/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2824. 412.31 s [really-safe-money-gen] coverage (828/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2825. 412.53 s [really-safe-money-gen] coverage (847/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2826. 413.05 s [really-safe-money-gen] coverage (837/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.toRational.produces valid rationals (0 mutations)
  2827. 415.82 s [really-safe-money-gen] coverage (855/1610): Money\.ConversionRateOfSpec.USD.ADA.GenValid (ConversionRateOf USD ADA).genValid \:\: Gen (ConversionRateOf USD ADA).only generates valid '(ConversionRateOf USD ADA)'s (6 mutations)
  2828. 416.80 s [really-safe-money-gen] coverage (850/1610): Money\.ConversionRateOfSpec.USD.BTC.GenValid (ConversionRateOf USD BTC).genValid \:\: Gen (ConversionRateOf USD BTC).only generates valid '(ConversionRateOf USD BTC)'s (6 mutations)
  2829. 416.84 s [really-safe-money-gen] coverage (852/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2830. 417.29 s [really-safe-money-gen] coverage (849/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2831. 417.40 s [really-safe-money-gen] coverage (853/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2832. 417.51 s [really-safe-money-gen] coverage (839/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2833. 417.75 s [really-safe-money-gen] coverage (834/1610): Money\.ConversionRateOfSpec.USD.INR.compose.produces valid rates (8 mutations)
  2834. 417.81 s [really-safe-money-gen] coverage (848/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2835. 418.39 s [really-safe-money-gen] coverage (823/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2836. 418.58 s [really-safe-money-gen] coverage (864/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2837. 418.80 s [really-safe-money-gen] coverage (867/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2838. 419.25 s [really-safe-money-gen] coverage (866/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2839. 419.48 s [really-safe-money-gen] coverage (869/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2840. 419.50 s [really-safe-money-gen] coverage (871/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2841. 419.61 s [really-safe-money-gen] coverage (875/1610): Money\.ConversionRateOfSpec.BTC.ADA.GenValid (ConversionRateOf BTC ADA).genValid \:\: Gen (ConversionRateOf BTC ADA).only generates valid '(ConversionRateOf BTC ADA)'s (6 mutations)
  2842. 419.82 s [really-safe-money-gen] coverage (870/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2843. 419.92 s [really-safe-money-gen] coverage (868/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2844. 420.05 s [really-safe-money-gen] coverage (873/1610): Money\.ConversionRateOfSpec.BTC.ADA.compose.produces valid rates (8 mutations)
  2845. 420.20 s [really-safe-money-gen] coverage (876/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2846. 420.28 s [really-safe-money-gen] coverage (874/1610): Money\.ConversionRateOfSpec.BTC.ADA.invert.produces valid rates (8 mutations)
  2847. 420.37 s [really-safe-money-gen] coverage (872/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2848. 420.72 s [really-safe-money-gen] coverage (863/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2849. 420.82 s [really-safe-money-gen] coverage (877/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2850. 421.47 s [really-safe-money-gen] coverage (878/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2851. 421.55 s [really-safe-money-gen] coverage (883/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2852. 422.34 s [really-safe-money-gen] coverage (882/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2853. 422.63 s [really-safe-money-gen] coverage (881/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2854. 422.88 s [really-safe-money-gen] coverage (884/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2855. 425.35 s [really-safe-money-gen] coverage (880/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2856. 426.06 s [really-safe-money-gen] coverage (885/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2857. 426.45 s [really-safe-money-gen] coverage (886/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2858. 426.75 s [really-safe-money-gen] coverage (887/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2859. 426.87 s [really-safe-money-gen] coverage (888/1610): Money\.ConversionRateOfSpec.BTC.USD.compose.produces valid rates (8 mutations)
  2860. 427.23 s [really-safe-money-gen] coverage (889/1610): Money\.ConversionRateOfSpec.BTC.USD.invert.produces valid rates (8 mutations)
  2861. 427.45 s [really-safe-money-gen] coverage (879/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.toRational.produces valid rationals (0 mutations)
  2862. 427.46 s [really-safe-money-gen] coverage (890/1610): Money\.ConversionRateOfSpec.BTC.USD.GenValid (ConversionRateOf BTC USD).genValid \:\: Gen (ConversionRateOf BTC USD).only generates valid '(ConversionRateOf BTC USD)'s (6 mutations)
  2863. 428.06 s [really-safe-money-gen] coverage (891/1610): Money\.ConversionRateOfSpec.BTC.INR.compose.produces valid rates (8 mutations)
  2864. 428.40 s [really-safe-money-gen] coverage (856/1610): Money\.ConversionRateOfSpec.USD.ADA.compose.produces valid rates (8 mutations)
  2865. 428.62 s [really-safe-money-gen] coverage (892/1610): Money\.ConversionRateOfSpec.BTC.INR.GenValid (ConversionRateOf BTC INR).genValid \:\: Gen (ConversionRateOf BTC INR).only generates valid '(ConversionRateOf BTC INR)'s (6 mutations)
  2866. 429.20 s [really-safe-money-gen] coverage (789/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2867. 429.29 s [really-safe-money-gen] coverage (894/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2868. 429.41 s [really-safe-money-gen] coverage (854/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2869. 429.61 s [really-safe-money-gen] coverage (896/1610): Money\.ConversionRateOfSpec.BTC.INR.invert.produces valid rates (8 mutations)
  2870. 429.66 s [really-safe-money-gen] coverage (893/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2871. 430.07 s [really-safe-money-gen] coverage (897/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2872. 430.13 s [really-safe-money-gen] coverage (898/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2873. 430.39 s [really-safe-money-gen] coverage (851/1610): Money\.ConversionRateOfSpec.USD.BTC.invert.produces valid rates (8 mutations)
  2874. 430.46 s [really-safe-money-gen] coverage (857/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2875. 430.56 s [really-safe-money-gen] coverage (895/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2876. 430.65 s [really-safe-money-gen] coverage (862/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2877. 430.76 s [really-safe-money-gen] coverage (899/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.toRational.produces valid rationals (0 mutations)
  2878. 431.15 s [really-safe-money-gen] coverage (860/1610): Money\.ConversionRateOfSpec.USD.ADA.invert.produces valid rates (8 mutations)
  2879. 431.28 s [really-safe-money-gen] coverage (858/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2880. 432.05 s [really-safe-money-gen] coverage (865/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2881. 432.36 s [really-safe-money-gen] coverage (902/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2882. 432.68 s [really-safe-money-gen] coverage (861/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2883. 435.65 s [really-safe-money-gen] coverage (859/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2884. 435.69 s [really-safe-money-gen] coverage (904/1610): Money\.ConversionRateOfSpec.BTC.CHF.GenValid (ConversionRateOf BTC CHF).genValid \:\: Gen (ConversionRateOf BTC CHF).only generates valid '(ConversionRateOf BTC CHF)'s (6 mutations)
  2885. 436.00 s [really-safe-money-gen] coverage (901/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2886. 436.36 s [really-safe-money-gen] coverage (906/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2887. 436.75 s [really-safe-money-gen] coverage (908/1610): Money\.ConversionRateOfSpec.BTC.CHF.invert.produces valid rates (8 mutations)
  2888. 436.80 s [really-safe-money-gen] coverage (903/1610): Money\.ConversionRateOfSpec.BTC.CHF.compose.produces valid rates (8 mutations)
  2889. 436.92 s [really-safe-money-gen] coverage (905/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2890. 437.71 s [really-safe-money-gen] coverage (907/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2891. 437.73 s [really-safe-money-gen] coverage (900/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2892. 437.85 s [really-safe-money-gen] coverage (909/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2893. 438.02 s [really-safe-money-gen] coverage (910/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2894. 438.46 s [really-safe-money-gen] coverage (913/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2895. 438.82 s [really-safe-money-gen] coverage (911/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2896. 439.00 s [really-safe-money-gen] coverage (916/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2897. 439.04 s [really-safe-money-gen] coverage (914/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2898. 439.18 s [really-safe-money-gen] coverage (919/1610): Money\.ConversionRateOfSpec.BTC.BTC.compose.produces valid rates (8 mutations)
  2899. 439.49 s [really-safe-money-gen] coverage (917/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2900. 439.79 s [really-safe-money-gen] coverage (920/1610): Money\.ConversionRateOfSpec.BTC.BTC.GenValid (ConversionRateOf BTC BTC).genValid \:\: Gen (ConversionRateOf BTC BTC).only generates valid '(ConversionRateOf BTC BTC)'s (6 mutations)
  2901. 440.15 s [really-safe-money-gen] coverage (925/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2902. 440.22 s [really-safe-money-gen] coverage (922/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2903. 440.33 s [really-safe-money-gen] coverage (926/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2904. 440.36 s [really-safe-money-gen] coverage (921/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2905. 440.61 s [really-safe-money-gen] coverage (923/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2906. 440.65 s [really-safe-money-gen] coverage (927/1610): Money\.QuantisationFactorSpec.fromWord32.produces valid quantisation factors (6 mutations)
  2907. 440.72 s [really-safe-money-gen] coverage (924/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2908. 441.54 s [really-safe-money-gen] coverage (928/1610): Money\.QuantisationFactorSpec.digits.works on 10 (0 mutations)
  2909. 441.84 s [really-safe-money-gen] coverage (929/1610): Money\.QuantisationFactorSpec.digits.works on 20 (0 mutations)
  2910. 442.27 s [really-safe-money-gen] coverage (930/1610): Money\.QuantisationFactorSpec.digits.works on 100 (0 mutations)
  2911. 445.30 s [really-safe-money-gen] coverage (932/1610): Money\.QuantisationFactorSpec.digits.works on 1 (0 mutations)
  2912. 445.40 s [really-safe-money-gen] coverage (931/1610): Money\.QuantisationFactorSpec.digits.produces valid numbers of digits (0 mutations)
  2913. 445.47 s [really-safe-money-gen] coverage (915/1610): Money\.ConversionRateOfSpec.BTC.BTC.invert.produces valid rates (8 mutations)
  2914. 445.69 s [really-safe-money-gen] coverage (918/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2915. 446.16 s [really-safe-money-gen] coverage (912/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2916. 446.25 s [really-safe-money-gen] coverage (940/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 100 into DecimalLiteral Nothing 1 2 (38 mutations)
  2917. 446.51 s [really-safe-money-gen] coverage (933/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a non-1 integer (23 mutations)
  2918. 447.10 s [really-safe-money-gen] coverage (942/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 3 into quantisation factor 1000 (31 mutations)
  2919. 447.20 s [really-safe-money-gen] coverage (943/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 10 into DecimalLiteral Nothing 1 1 (38 mutations)
  2920. 447.40 s [really-safe-money-gen] coverage (944/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 2 2 into quantisation factor 50 (31 mutations)
  2921. 447.65 s [really-safe-money-gen] coverage (945/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 0 into quantisation factor 1 (31 mutations)
  2922. 448.06 s [really-safe-money-gen] coverage (946/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 20 into DecimalLiteral Nothing 5 2 (38 mutations)
  2923. 448.33 s [really-safe-money-gen] coverage (947/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 5 2 into quantisation factor 20 (31 mutations)
  2924. 448.62 s [really-safe-money-gen] coverage (948/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1 into DecimalLiteral Nothing 1 0 (32 mutations)
  2925. 448.64 s [really-safe-money-gen] coverage (949/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 2 into quantisation factor 100 (31 mutations)
  2926. 448.73 s [really-safe-money-gen] coverage (950/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1000 into DecimalLiteral Nothing 1 3 (38 mutations)
  2927. 449.19 s [really-safe-money-gen] coverage (951/1610): Money\.QuantisationFactorSpec.GenValid QuantisationFactor.genValid \:\: Gen QuantisationFactor.only generates valid 'QuantisationFactor's (6 mutations)
  2928. 449.62 s [really-safe-money-gen] coverage (953/1610): Money\.MultiAccountSpec.subtractAmount.computes this example correctly (24 mutations)
  2929. 449.78 s [really-safe-money-gen] coverage (954/1610): Money\.MultiAccountSpec.subtractAmount.adds a non zero amount (5 mutations)
  2930. 449.82 s [really-safe-money-gen] coverage (952/1610): Money\.MultiAccountSpec.subtractAmount.produces valid amounts (44 mutations)
  2931. 449.89 s [really-safe-money-gen] coverage (955/1610): Money\.MultiAccountSpec.subtractAmount.removes a zero amount (24 mutations)
  2932. 449.94 s [really-safe-money-gen] coverage (941/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 50 into DecimalLiteral Nothing 2 2 (38 mutations)
  2933. 449.98 s [really-safe-money-gen] coverage (939/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 1 into quantisation factor 10 (31 mutations)
  2934. 450.73 s [really-safe-money-gen] coverage (936/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a 0 (8 mutations)
  2935. 451.47 s [really-safe-money-gen] coverage (935/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.produces valid factors (37 mutations)
  2936. 452.19 s [really-safe-money-gen] coverage (956/1610): Money\.MultiAccountSpec.add.has a right-identity\: zero (4 mutations)
  2937. 455.31 s [really-safe-money-gen] coverage (958/1610): Money\.MultiAccountSpec.add.produces valid amounts (44 mutations)
  2938. 455.45 s [really-safe-money-gen] coverage (960/1610): Money\.MultiAccountSpec.add.has a left-identity\: zero (6 mutations)
  2939. 455.74 s [really-safe-money-gen] coverage (963/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is symmetric for "valid (MultiAccount Currency)"s (1 mutations)
  2940. 455.81 s [really-safe-money-gen] coverage (962/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"s (4 mutations)
  2941. 455.89 s [really-safe-money-gen] coverage (957/1610): Money\.MultiAccountSpec.add.is commutative (33 mutations)
  2942. 455.96 s [really-safe-money-gen] coverage (961/1610): Money\.MultiAccountSpec.GenValid (MultiAccount Currency).genValid \:\: Gen (MultiAccount Currency).only generates valid '(MultiAccount Currency)'s (15 mutations)
  2943. 456.31 s [really-safe-money-gen] coverage (964/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"s (1 mutations)
  2944. 456.38 s [really-safe-money-gen] coverage (965/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (MultiAccount Currency)"s (1 mutations)
  2945. 456.57 s [really-safe-money-gen] coverage (966/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(/=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (MultiAccount Currency)"s (1 mutations)
  2946. 456.81 s [really-safe-money-gen] coverage (967/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(/=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"s (4 mutations)
  2947. 456.94 s [really-safe-money-gen] coverage (959/1610): Money\.MultiAccountSpec.add.is associative when both succeed (33 mutations)
  2948. 457.09 s [really-safe-money-gen] coverage (970/1610): Money\.MultiAccountSpec.zero.is valid (2 mutations)
  2949. 457.44 s [really-safe-money-gen] coverage (971/1610): Money\.MultiAccountSpec.fromAccount.produces valid amounts (18 mutations)
  2950. 457.81 s [really-safe-money-gen] coverage (972/1610): Money\.MultiAccountSpec.addAccount.produces valid amounts (46 mutations)
  2951. 457.85 s [really-safe-money-gen] coverage (968/1610): Money\.MultiAccountSpec.sum.produces valid amounts (44 mutations)
  2952. 458.22 s [really-safe-money-gen] coverage (969/1610): Money\.MultiAccountSpec.Show (MultiAccount Currency) and Read (MultiAccount Currency).are implemented such that read \. show == id for valid values (4 mutations)
  2953. 458.33 s [really-safe-money-gen] coverage (973/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"'s (4 mutations)
  2954. 458.38 s [really-safe-money-gen] coverage (974/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
  2955. 458.59 s [really-safe-money-gen] coverage (975/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antisymmetric for "valid (MultiAccount Currency)"'s (4 mutations)
  2956. 458.75 s [really-safe-money-gen] coverage (976/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (MultiAccount Currency)"'s (4 mutations)
  2957. 458.81 s [really-safe-money-gen] coverage (979/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"'s (4 mutations)
  2958. 458.91 s [really-safe-money-gen] coverage (978/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (MultiAccount Currency)"'s (4 mutations)
  2959. 459.19 s [really-safe-money-gen] coverage (977/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency)."min \:\: (MultiAccount Currency -> MultiAccount Currency -> MultiAccount Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (MultiAccount Currency)"'s (4 mutations)
  2960. 459.73 s [really-safe-money-gen] coverage (980/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
  2961. 460.40 s [really-safe-money-gen] coverage (982/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"'s (4 mutations)
  2962. 460.91 s [really-safe-money-gen] coverage (983/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antisymmetric for "valid (MultiAccount Currency)"'s (4 mutations)
  2963. 464.10 s [really-safe-money-gen] coverage (984/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
  2964. 464.16 s [really-safe-money-gen] coverage (985/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
  2965. 464.43 s [really-safe-money-gen] coverage (986/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"'s (4 mutations)
  2966. 464.60 s [really-safe-money-gen] coverage (987/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (MultiAccount Currency)"'s (4 mutations)
  2967. 464.83 s [really-safe-money-gen] coverage (988/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency)."max \:\: (MultiAccount Currency -> MultiAccount Currency -> MultiAccount Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (MultiAccount Currency)"'s (4 mutations)
  2968. 464.92 s [really-safe-money-gen] coverage (992/1610): Money\.MultiAccountSpec.addAmount.computes this example correctly (18 mutations)
  2969. 464.98 s [really-safe-money-gen] coverage (993/1610): Money\.MultiAccountSpec.addAmount.adds a non zero amount (5 mutations)
  2970. 465.25 s [really-safe-money-gen] coverage (991/1610): Money\.MultiAccountSpec.addAmount.produces valid amounts (45 mutations)
  2971. 465.26 s [really-safe-money-gen] coverage (989/1610): Money\.MultiAccountSpec.subtract.produces valid amounts (44 mutations)
  2972. 465.40 s [really-safe-money-gen] coverage (999/1610): Money\.MultiAccountSpec.convertAll.produces the right result in this example (23 mutations)
  2973. 465.56 s [really-safe-money-gen] coverage (981/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (MultiAccount Currency)"'s (4 mutations)
  2974. 465.63 s [really-safe-money-gen] coverage (990/1610): Money\.MultiAccountSpec.subtract.has a right-identity\: zero (4 mutations)
  2975. 465.81 s [really-safe-money-gen] coverage (1000/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.produces valid Int64s (0 mutations)
  2976. 466.37 s [really-safe-money-gen] coverage (1002/1610): Money\.AmountOfSpec.USD.CHF.rate.produces valid amounts (10 mutations)
  2977. 466.42 s [really-safe-money-gen] coverage (1001/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  2978. 466.72 s [really-safe-money-gen] coverage (1003/1610): Money\.AmountOfSpec.USD.CHF.convert.produces valid amounts (25 mutations)
  2979. 466.97 s [really-safe-money-gen] coverage (997/1610): Money\.MultiAccountSpec.lookupAccount.produces valid amounts (4 mutations)
  2980. 467.03 s [really-safe-money-gen] coverage (998/1610): Money\.MultiAccountSpec.convertAll.produces valid results when converting two currencies to one (28 mutations)
  2981. 467.11 s [really-safe-money-gen] coverage (996/1610): Money\.MultiAccountSpec.lookupAccount.can find an added amount (7 mutations)
  2982. 467.47 s [really-safe-money-gen] coverage (994/1610): Money\.MultiAccountSpec.addAmount.removes a zero amount (24 mutations)
  2983. 467.59 s [really-safe-money-gen] coverage (1011/1610): Money\.AmountOfSpec.USD.fromRatio.fails on +Infinity (2 mutations)
  2984. 467.59 s [really-safe-money-gen] coverage (995/1610): Money\.MultiAccountSpec.subtractAccount.produces valid amounts (46 mutations)
  2985. 467.74 s [really-safe-money-gen] coverage (1013/1610): Money\.AmountOfSpec.USD.add.has a right-identity\: zero (10 mutations)
  2986. 468.49 s [really-safe-money-gen] coverage (1015/1610): Money\.AmountOfSpec.USD.add.has a left-identity\: zero (10 mutations)
  2987. 469.10 s [really-safe-money-gen] coverage (1016/1610): Money\.AmountOfSpec.USD.add.is commutative (9 mutations)
  2988. 470.38 s [really-safe-money-gen] coverage (1017/1610): Money\.AmountOfSpec.USD.add.is associative when both succeed (9 mutations)
  2989. 476.36 s [really-safe-money-gen] coverage (1019/1610): Money\.AmountOfSpec.USD.fromRational.roundtrips with toRational (19 mutations)
  2990. 476.84 s [really-safe-money-gen] coverage (1018/1610): Money\.AmountOfSpec.USD.fromMinimalQuantisations.produces valid amounts (0 mutations)
  2991. 476.92 s [really-safe-money-gen] coverage (1023/1610): Money\.AmountOfSpec.USD.fromRational.fails on NaN (2 mutations)
  2992. 477.31 s [really-safe-money-gen] coverage (1021/1610): Money\.AmountOfSpec.USD.fromRational.fails on +Infinity (2 mutations)
  2993. 477.32 s [really-safe-money-gen] coverage (1022/1610): Money\.AmountOfSpec.USD.fromRational.produces valid Amounts (19 mutations)
  2994. 477.48 s [really-safe-money-gen] coverage (1010/1610): Money\.AmountOfSpec.USD.fromRatio.fails on 7\.123 (13 mutations)
  2995. 477.58 s [really-safe-money-gen] coverage (1008/1610): Money\.AmountOfSpec.USD.fromRatio.fails on NaN (2 mutations)
  2996. 477.97 s [really-safe-money-gen] coverage (1007/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 77 (19 mutations)
  2997. 478.04 s [really-safe-money-gen] coverage (1006/1610): Money\.AmountOfSpec.USD.fromRatio.produces valid AmountOfs (19 mutations)
  2998. 478.36 s [really-safe-money-gen] coverage (1024/1610): Money\.AmountOfSpec.USD.fromRational.fails on -Infinity (2 mutations)
  2999. 478.51 s [really-safe-money-gen] coverage (1005/1610): Money\.AmountOfSpec.USD.fromRatio.roundtrips with toRatio (19 mutations)
  3000. 478.66 s [really-safe-money-gen] coverage (1025/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 1 (19 mutations)
  3001. 479.73 s [really-safe-money-gen] coverage (1012/1610): Money\.AmountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3002. 479.99 s [really-safe-money-gen] coverage (934/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render negative fractionals (17 mutations)
  3003. 480.15 s [really-safe-money-gen] coverage (1004/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 1 (19 mutations)
  3004. 480.48 s [really-safe-money-gen] coverage (1014/1610): Money\.AmountOfSpec.USD.add.produces valid amounts (9 mutations)
  3005. 480.48 s [really-safe-money-gen] coverage (1026/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 0 (19 mutations)
  3006. 480.86 s [really-safe-money-gen] coverage (1009/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 0 (20 mutations)
  3007. 480.99 s [really-safe-money-gen] coverage (1020/1610): Money\.AmountOfSpec.USD.fromRational.fails on -1 (8 mutations)
  3008. 481.58 s [really-safe-money-gen] coverage (1032/1610): Money\.AmountOfSpec.USD.BTC.rate.produces valid amounts (10 mutations)
  3009. 481.71 s [really-safe-money-gen] coverage (1036/1610): Money\.AmountOfSpec.USD.fromDouble.fails on +Infinity (10 mutations)
  3010. 482.10 s [really-safe-money-gen] coverage (1031/1610): Money\.AmountOfSpec.USD.BTC.convert.produces valid amounts (25 mutations)
  3011. 482.65 s [really-safe-money-gen] coverage (1030/1610): Money\.AmountOfSpec.USD.Show (AmountOf * USD) and Read (AmountOf * USD).are implemented such that read \. show == id for valid values (1 mutations)
  3012. 482.89 s [really-safe-money-gen] coverage (1028/1610): Money\.AmountOfSpec.USD.GenValid (AmountOf * USD).genValid \:\: Gen (AmountOf * USD).only generates valid '(AmountOf * USD)'s (0 mutations)
  3013. 483.88 s [really-safe-money-gen] coverage (1039/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -1 (6 mutations)
  3014. 485.74 s [really-safe-money-gen] coverage (1037/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -Infinity (6 mutations)
  3015. 491.52 s [really-safe-money-gen] coverage (1040/1610): Money\.AmountOfSpec.USD.fraction.produces valid amounts (17 mutations)
  3016. 491.96 s [really-safe-money-gen] coverage (1042/1610): Money\.AmountOfSpec.USD.INR.rate.produces valid amounts (10 mutations)
  3017. 492.48 s [really-safe-money-gen] coverage (1041/1610): Money\.AmountOfSpec.USD.INR.convert.produces valid amounts (25 mutations)
  3018. 493.32 s [really-safe-money-gen] coverage (1045/1610): Money\.AmountOfSpec.USD.sum.produces valid amounts (10 mutations)
  3019. 493.52 s [really-safe-money-gen] coverage (1043/1610): Money\.AmountOfSpec.USD.USD.rate.produces valid amounts (10 mutations)
  3020. 493.95 s [really-safe-money-gen] coverage (1046/1610): Money\.AmountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3021. 494.12 s [really-safe-money-gen] coverage (1029/1610): Money\.AmountOfSpec.USD.zero.is valid (1 mutations)
  3022. 494.14 s [really-safe-money-gen] coverage (1047/1610): Money\.AmountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3023. 494.57 s [really-safe-money-gen] coverage (1048/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"'s (0 mutations)
  3024. 494.86 s [really-safe-money-gen] coverage (1051/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"'s (0 mutations)
  3025. 494.96 s [really-safe-money-gen] coverage (1049/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
  3026. 495.64 s [really-safe-money-gen] coverage (1052/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
  3027. 495.70 s [really-safe-money-gen] coverage (1035/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 1 (30 mutations)
  3028. 496.17 s [really-safe-money-gen] coverage (1034/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 0 (30 mutations)
  3029. 496.41 s [really-safe-money-gen] coverage (1055/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is reflexive for "valid (AmountOf * USD)"'s (0 mutations)
  3030. 496.73 s [really-safe-money-gen] coverage (1038/1610): Money\.AmountOfSpec.USD.fromDouble.fails on NaN (8 mutations)
  3031. 496.84 s [really-safe-money-gen] coverage (1057/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * USD)"'s (0 mutations)
  3032. 496.90 s [really-safe-money-gen] coverage (1027/1610): Money\.AmountOfSpec.USD.toRational.produces valid Rationals (0 mutations)
  3033. 497.10 s [really-safe-money-gen] coverage (1054/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
  3034. 497.62 s [really-safe-money-gen] coverage (1060/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * USD)"'s (0 mutations)
  3035. 498.24 s [really-safe-money-gen] coverage (1059/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD)."max \:\: (AmountOf * USD -> AmountOf * USD -> AmountOf * USD)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * USD)"'s (0 mutations)
  3036. 499.09 s [really-safe-money-gen] coverage (1033/1610): Money\.AmountOfSpec.USD.fromDouble.produces valid amounts (30 mutations)
  3037. 499.15 s [really-safe-money-gen] coverage (1061/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antisymmetric for "valid (AmountOf * USD)"'s (0 mutations)
  3038. 499.83 s [really-safe-money-gen] coverage (1062/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is reflexive for "valid (AmountOf * USD)"'s (0 mutations)
  3039. 500.30 s [really-safe-money-gen] coverage (1063/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
  3040. 502.20 s [really-safe-money-gen] coverage (1044/1610): Money\.AmountOfSpec.USD.USD.convert.produces valid amounts (25 mutations)
  3041. 507.43 s [really-safe-money-gen] coverage (1065/1610): Money\.AmountOfSpec.USD.format.produces valid strings (3 mutations)
  3042. 508.29 s [really-safe-money-gen] coverage (1064/1610): Money\.AmountOfSpec.USD.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3043. 509.45 s [really-safe-money-gen] coverage (1058/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD)."min \:\: (AmountOf * USD -> AmountOf * USD -> AmountOf * USD)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * USD)"'s (0 mutations)
  3044. 509.71 s [really-safe-money-gen] coverage (1066/1610): Money\.AmountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3045. 509.99 s [really-safe-money-gen] coverage (1067/1610): Money\.AmountOfSpec.USD.multiply.is absorbed by 0 (10 mutations)
  3046. 510.39 s [really-safe-money-gen] coverage (938/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (40 mutations)
  3047. 510.57 s [really-safe-money-gen] coverage (1056/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antisymmetric for "valid (AmountOf * USD)"'s (0 mutations)
  3048. 510.98 s [really-safe-money-gen] coverage (1053/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * USD)"'s (0 mutations)
  3049. 511.13 s [really-safe-money-gen] coverage (1050/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * USD)"'s (0 mutations)
  3050. 511.18 s [really-safe-money-gen] coverage (1075/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(/=) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * USD))"s (1 mutations)
  3051. 511.29 s [really-safe-money-gen] coverage (1079/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is symmetric for "valid (Distribution (AmountOf * USD))"s (1 mutations)
  3052. 511.37 s [really-safe-money-gen] coverage (937/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.roundtrips with fromDecimalLiteral (70 mutations)
  3053. 511.39 s [really-safe-money-gen] coverage (1078/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is reflexive for "valid (Distribution (AmountOf * USD))"s (1 mutations)
  3054. 511.48 s [really-safe-money-gen] coverage (1077/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is transitive for "valid (Distribution (AmountOf * USD))"s (1 mutations)
  3055. 512.60 s [really-safe-money-gen] coverage (1080/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * USD))"s (1 mutations)
  3056. 513.20 s [really-safe-money-gen] coverage (1071/1610): Money\.AmountOfSpec.USD.toDouble.produces valid Doubles (0 mutations)
  3057. 513.20 s [really-safe-money-gen] coverage (1068/1610): Money\.AmountOfSpec.USD.multiply.is distributive with add when both succeed (17 mutations)
  3058. 513.22 s [really-safe-money-gen] coverage (1069/1610): Money\.AmountOfSpec.USD.multiply.has an identity\: 1 (9 mutations)
  3059. 513.77 s [really-safe-money-gen] coverage (1076/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(/=) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * USD))"s (1 mutations)
  3060. 514.32 s [really-safe-money-gen] coverage (1074/1610): Money\.AmountOfSpec.USD.distribute.produces results that sum up to the greater whole (29 mutations)
  3061. 514.81 s [really-safe-money-gen] coverage (1083/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * USD)"s (0 mutations)
  3062. 514.81 s [really-safe-money-gen] coverage (1086/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"s (0 mutations)
  3063. 515.51 s [really-safe-money-gen] coverage (1082/1610): Money\.AmountOfSpec.USD.ADA.rate.produces valid amounts (10 mutations)
  3064. 515.57 s [really-safe-money-gen] coverage (1081/1610): Money\.AmountOfSpec.USD.ADA.convert.produces valid amounts (25 mutations)
  3065. 516.89 s [really-safe-money-gen] coverage (1084/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is symmetric for "valid (AmountOf * USD)"s (0 mutations)
  3066. 517.33 s [really-safe-money-gen] coverage (1085/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is reflexive for "valid (AmountOf * USD)"s (0 mutations)
  3067. 517.83 s [really-safe-money-gen] coverage (1073/1610): Money\.AmountOfSpec.USD.distribute.produces valid amounts (21 mutations)
  3068. 520.47 s [really-safe-money-gen] coverage (1070/1610): Money\.AmountOfSpec.USD.multiply.produces valid amounts (9 mutations)
  3069. 524.44 s [really-safe-money-gen] coverage (1094/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is reflexive for "valid (AmountOf * ADA)"s (0 mutations)
  3070. 526.21 s [really-safe-money-gen] coverage (1089/1610): Money\.AmountOfSpec.ADA.BTC.convert.produces valid amounts (25 mutations)
  3071. 527.33 s [really-safe-money-gen] coverage (1095/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(/=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antireflexive for "valid (AmountOf * ADA)"s (0 mutations)
  3072. 527.85 s [really-safe-money-gen] coverage (1092/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is symmetric for "valid (AmountOf * ADA)"s (0 mutations)
  3073. 527.90 s [really-safe-money-gen] coverage (1090/1610): Money\.AmountOfSpec.ADA.BTC.rate.produces valid amounts (10 mutations)
  3074. 528.07 s [really-safe-money-gen] coverage (1096/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(/=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * ADA)"s (0 mutations)
  3075. 528.17 s [really-safe-money-gen] coverage (1098/1610): Money\.AmountOfSpec.ADA.Show (AmountOf * ADA) and Read (AmountOf * ADA).are implemented such that read \. show == id for valid values (1 mutations)
  3076. 529.07 s [really-safe-money-gen] coverage (1093/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * ADA)"s (0 mutations)
  3077. 529.21 s [really-safe-money-gen] coverage (1097/1610): Money\.AmountOfSpec.ADA.zero.is valid (1 mutations)
  3078. 529.22 s [really-safe-money-gen] coverage (1091/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"s (0 mutations)
  3079. 529.73 s [really-safe-money-gen] coverage (1087/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(/=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * USD)"s (0 mutations)
  3080. 529.73 s [really-safe-money-gen] coverage (1088/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(/=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"s (0 mutations)
  3081. 529.85 s [really-safe-money-gen] coverage (1072/1610): Money\.AmountOfSpec.USD.distribute.Show (Distribution (AmountOf * USD)) and Read (Distribution (AmountOf * USD)).are implemented such that read \. show == id for valid values (1 mutations)
  3082. 530.26 s [really-safe-money-gen] coverage (1102/1610): Money\.AmountOfSpec.ADA.fromRatio.roundtrips with toRatio (19 mutations)
  3083. 530.46 s [really-safe-money-gen] coverage (1105/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 1 (19 mutations)
  3084. 531.04 s [really-safe-money-gen] coverage (1109/1610): Money\.AmountOfSpec.ADA.fromRational.fails on NaN (2 mutations)
  3085. 531.07 s [really-safe-money-gen] coverage (1108/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on 7\.123 (13 mutations)
  3086. 531.12 s [really-safe-money-gen] coverage (1107/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 77 (19 mutations)
  3087. 531.13 s [really-safe-money-gen] coverage (1110/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 1 (19 mutations)
  3088. 531.45 s [really-safe-money-gen] coverage (1112/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -1 (8 mutations)
  3089. 531.93 s [really-safe-money-gen] coverage (1101/1610): Money\.AmountOfSpec.ADA.fromRatio.produces valid AmountOfs (19 mutations)
  3090. 532.37 s [really-safe-money-gen] coverage (1113/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -Infinity (2 mutations)
  3091. 533.28 s [really-safe-money-gen] coverage (1115/1610): Money\.AmountOfSpec.ADA.fromRational.produces valid Amounts (19 mutations)
  3092. 533.71 s [really-safe-money-gen] coverage (1114/1610): Money\.AmountOfSpec.ADA.fromRational.fails on +Infinity (2 mutations)
  3093. 533.86 s [really-safe-money-gen] coverage (1116/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 0 (19 mutations)
  3094. 534.70 s [really-safe-money-gen] coverage (1118/1610): Money\.AmountOfSpec.ADA.sum.produces valid amounts (10 mutations)
  3095. 535.33 s [really-safe-money-gen] coverage (1117/1610): Money\.AmountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3096. 537.13 s [really-safe-money-gen] coverage (1100/1610): Money\.AmountOfSpec.ADA.toRational.produces valid Rationals (0 mutations)
  3097. 541.51 s [really-safe-money-gen] coverage (1103/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 0 (20 mutations)
  3098. 542.74 s [really-safe-money-gen] coverage (1106/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on NaN (2 mutations)
  3099. 543.25 s [really-safe-money-gen] coverage (1104/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on +Infinity (2 mutations)
  3100. 543.71 s [really-safe-money-gen] coverage (1099/1610): Money\.AmountOfSpec.ADA.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3101. 544.12 s [really-safe-money-gen] coverage (1111/1610): Money\.AmountOfSpec.ADA.fromRational.roundtrips with toRational (19 mutations)
  3102. 544.20 s [really-safe-money-gen] coverage (1122/1610): Money\.AmountOfSpec.ADA.add.has a right-identity\: zero (10 mutations)
  3103. 544.93 s [really-safe-money-gen] coverage (1119/1610): Money\.AmountOfSpec.ADA.toDouble.produces valid Doubles (0 mutations)
  3104. 544.97 s [really-safe-money-gen] coverage (1123/1610): Money\.AmountOfSpec.ADA.add.is associative when both succeed (9 mutations)
  3105. 545.41 s [really-safe-money-gen] coverage (1126/1610): Money\.AmountOfSpec.ADA.USD.rate.produces valid amounts (10 mutations)
  3106. 545.63 s [really-safe-money-gen] coverage (1124/1610): Money\.AmountOfSpec.ADA.add.produces valid amounts (9 mutations)
  3107. 546.05 s [really-safe-money-gen] coverage (1129/1610): Money\.AmountOfSpec.ADA.distribute.Show (Distribution (AmountOf * ADA)) and Read (Distribution (AmountOf * ADA)).are implemented such that read \. show == id for valid values (1 mutations)
  3108. 546.23 s [really-safe-money-gen] coverage (1125/1610): Money\.AmountOfSpec.ADA.add.is commutative (9 mutations)
  3109. 546.64 s [really-safe-money-gen] coverage (1128/1610): Money\.AmountOfSpec.ADA.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3110. 546.86 s [really-safe-money-gen] coverage (1131/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(/=) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
  3111. 546.96 s [really-safe-money-gen] coverage (1136/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is symmetric for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
  3112. 547.14 s [really-safe-money-gen] coverage (1130/1610): Money\.AmountOfSpec.ADA.distribute.produces results that sum up to the greater whole (29 mutations)
  3113. 547.20 s [really-safe-money-gen] coverage (1138/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3114. 547.84 s [really-safe-money-gen] coverage (1137/1610): Money\.AmountOfSpec.ADA.distribute.produces valid amounts (21 mutations)
  3115. 547.95 s [really-safe-money-gen] coverage (1135/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is transitive for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
  3116. 548.02 s [really-safe-money-gen] coverage (1142/1610): Money\.AmountOfSpec.ADA.format.produces valid strings (3 mutations)
  3117. 548.33 s [really-safe-money-gen] coverage (1139/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3118. 548.96 s [really-safe-money-gen] coverage (1140/1610): Money\.AmountOfSpec.ADA.CHF.convert.produces valid amounts (25 mutations)
  3119. 550.09 s [really-safe-money-gen] coverage (1143/1610): Money\.AmountOfSpec.ADA.GenValid (AmountOf * ADA).genValid \:\: Gen (AmountOf * ADA).only generates valid '(AmountOf * ADA)'s (0 mutations)
  3120. 551.17 s [really-safe-money-gen] coverage (1144/1610): Money\.AmountOfSpec.ADA.ADA.rate.produces valid amounts (10 mutations)
  3121. 551.20 s [really-safe-money-gen] coverage (1145/1610): Money\.AmountOfSpec.ADA.ADA.convert.produces valid amounts (25 mutations)
  3122. 551.63 s [really-safe-money-gen] coverage (1146/1610): Money\.AmountOfSpec.ADA.fraction.produces valid amounts (17 mutations)
  3123. 553.01 s [really-safe-money-gen] coverage (1147/1610): Money\.AmountOfSpec.ADA.INR.rate.produces valid amounts (10 mutations)
  3124. 554.27 s [really-safe-money-gen] coverage (1148/1610): Money\.AmountOfSpec.ADA.INR.convert.produces valid amounts (25 mutations)
  3125. 558.96 s [really-safe-money-gen] coverage (1149/1610): Money\.AmountOfSpec.ADA.multiply.produces valid amounts (9 mutations)
  3126. 559.79 s [really-safe-money-gen] coverage (1150/1610): Money\.AmountOfSpec.ADA.multiply.is absorbed by 0 (10 mutations)
  3127. 560.36 s [really-safe-money-gen] coverage (1151/1610): Money\.AmountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3128. 560.81 s [really-safe-money-gen] coverage (1153/1610): Money\.AmountOfSpec.ADA.multiply.has an identity\: 1 (9 mutations)
  3129. 560.81 s [really-safe-money-gen] coverage (1152/1610): Money\.AmountOfSpec.ADA.multiply.is distributive with add when both succeed (17 mutations)
  3130. 561.43 s [really-safe-money-gen] coverage (1154/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 0 (30 mutations)
  3131. 562.27 s [really-safe-money-gen] coverage (1157/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on NaN (8 mutations)
  3132. 562.27 s [really-safe-money-gen] coverage (1155/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on +Infinity (10 mutations)
  3133. 562.71 s [really-safe-money-gen] coverage (1156/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 1 (30 mutations)
  3134. 562.98 s [really-safe-money-gen] coverage (1158/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -Infinity (6 mutations)
  3135. 563.41 s [really-safe-money-gen] coverage (1160/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -1 (6 mutations)
  3136. 563.67 s [really-safe-money-gen] coverage (1161/1610): Money\.AmountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3137. 563.85 s [really-safe-money-gen] coverage (1127/1610): Money\.AmountOfSpec.ADA.USD.convert.produces valid amounts (25 mutations)
  3138. 563.93 s [really-safe-money-gen] coverage (1159/1610): Money\.AmountOfSpec.ADA.fromDouble.produces valid amounts (30 mutations)
  3139. 564.39 s [really-safe-money-gen] coverage (1121/1610): Money\.AmountOfSpec.ADA.add.has a left-identity\: zero (10 mutations)
  3140. 564.39 s [really-safe-money-gen] coverage (1162/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antireflexive for "valid (AmountOf * ADA)"'s (0 mutations)
  3141. 564.83 s [really-safe-money-gen] coverage (1133/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
  3142. 565.27 s [really-safe-money-gen] coverage (1132/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(/=) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
  3143. 565.51 s [really-safe-money-gen] coverage (1168/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
  3144. 565.82 s [really-safe-money-gen] coverage (1134/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is reflexive for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
  3145. 565.89 s [really-safe-money-gen] coverage (1163/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
  3146. 566.19 s [really-safe-money-gen] coverage (1141/1610): Money\.AmountOfSpec.ADA.CHF.rate.produces valid amounts (10 mutations)
  3147. 567.02 s [really-safe-money-gen] coverage (1166/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA)."min \:\: (AmountOf * ADA -> AmountOf * ADA -> AmountOf * ADA)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * ADA)"'s (0 mutations)
  3148. 567.51 s [really-safe-money-gen] coverage (1167/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * ADA)"'s (0 mutations)
  3149. 568.31 s [really-safe-money-gen] coverage (1120/1610): Money\.AmountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3150. 568.76 s [really-safe-money-gen] coverage (1177/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antireflexive for "valid (AmountOf * ADA)"'s (0 mutations)
  3151. 570.36 s [really-safe-money-gen] coverage (1174/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antisymmetric for "valid (AmountOf * ADA)"'s (0 mutations)
  3152. 571.55 s [really-safe-money-gen] coverage (1176/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
  3153. 576.52 s [really-safe-money-gen] coverage (1173/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
  3154. 577.00 s [really-safe-money-gen] coverage (1171/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * ADA)"'s (0 mutations)
  3155. 577.65 s [really-safe-money-gen] coverage (1172/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is reflexive for "valid (AmountOf * ADA)"'s (0 mutations)
  3156. 578.23 s [really-safe-money-gen] coverage (1180/1610): Money\.AmountOfSpec.INR.distribute.produces results that sum up to the greater whole (29 mutations)
  3157. 578.41 s [really-safe-money-gen] coverage (1182/1610): Money\.AmountOfSpec.INR.distribute.Show (Distribution (AmountOf * INR)) and Read (Distribution (AmountOf * INR)).are implemented such that read \. show == id for valid values (1 mutations)
  3158. 578.73 s [really-safe-money-gen] coverage (1181/1610): Money\.AmountOfSpec.INR.distribute.produces valid amounts (21 mutations)
  3159. 579.34 s [really-safe-money-gen] coverage (1179/1610): Money\.AmountOfSpec.INR.toDouble.produces valid Doubles (0 mutations)
  3160. 579.77 s [really-safe-money-gen] coverage (1183/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is reflexive for "valid (Distribution (AmountOf * INR))"s (1 mutations)
  3161. 579.91 s [really-safe-money-gen] coverage (1185/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * INR))"s (1 mutations)
  3162. 580.82 s [really-safe-money-gen] coverage (1186/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is transitive for "valid (Distribution (AmountOf * INR))"s (1 mutations)
  3163. 581.00 s [really-safe-money-gen] coverage (1169/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is reflexive for "valid (AmountOf * ADA)"'s (0 mutations)
  3164. 581.08 s [really-safe-money-gen] coverage (1187/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(/=) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * INR))"s (1 mutations)
  3165. 581.22 s [really-safe-money-gen] coverage (1178/1610): Money\.AmountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3166. 581.67 s [really-safe-money-gen] coverage (1170/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antisymmetric for "valid (AmountOf * ADA)"'s (0 mutations)
  3167. 581.95 s [really-safe-money-gen] coverage (1175/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * ADA)"'s (0 mutations)
  3168. 582.05 s [really-safe-money-gen] coverage (1164/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * ADA)"'s (0 mutations)
  3169. 582.79 s [really-safe-money-gen] coverage (1191/1610): Money\.AmountOfSpec.INR.fraction.produces valid amounts (17 mutations)
  3170. 582.83 s [really-safe-money-gen] coverage (1165/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA)."max \:\: (AmountOf * ADA -> AmountOf * ADA -> AmountOf * ADA)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * ADA)"'s (0 mutations)
  3171. 583.10 s [really-safe-money-gen] coverage (1189/1610): Money\.AmountOfSpec.INR.zero.is valid (1 mutations)
  3172. 583.53 s [really-safe-money-gen] coverage (1190/1610): Money\.AmountOfSpec.INR.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3173. 583.64 s [really-safe-money-gen] coverage (1188/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(/=) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * INR))"s (1 mutations)
  3174. 584.34 s [really-safe-money-gen] coverage (1203/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * INR)"'s (0 mutations)
  3175. 584.58 s [really-safe-money-gen] coverage (1184/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is symmetric for "valid (Distribution (AmountOf * INR))"s (1 mutations)
  3176. 585.67 s [really-safe-money-gen] coverage (1205/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
  3177. 585.88 s [really-safe-money-gen] coverage (1204/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antireflexive for "valid (AmountOf * INR)"'s (0 mutations)
  3178. 586.01 s [really-safe-money-gen] coverage (1206/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * INR)"'s (0 mutations)
  3179. 588.02 s [really-safe-money-gen] coverage (1207/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is reflexive for "valid (AmountOf * INR)"'s (0 mutations)
  3180. 588.96 s [really-safe-money-gen] coverage (1208/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antisymmetric for "valid (AmountOf * INR)"'s (0 mutations)
  3181. 593.22 s [really-safe-money-gen] coverage (1225/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3182. 594.24 s [really-safe-money-gen] coverage (1226/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 0 (19 mutations)
  3183. 594.95 s [really-safe-money-gen] coverage (1228/1610): Money\.AmountOfSpec.INR.fromRational.roundtrips with toRational (19 mutations)
  3184. 595.24 s [really-safe-money-gen] coverage (1215/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antireflexive for "valid (AmountOf * INR)"'s (0 mutations)
  3185. 595.40 s [really-safe-money-gen] coverage (1227/1610): Money\.AmountOfSpec.INR.fromRational.fails on -Infinity (2 mutations)
  3186. 595.59 s [really-safe-money-gen] coverage (1211/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
  3187. 596.10 s [really-safe-money-gen] coverage (1230/1610): Money\.AmountOfSpec.INR.fromRational.fails on NaN (2 mutations)
  3188. 596.18 s [really-safe-money-gen] coverage (1229/1610): Money\.AmountOfSpec.INR.fromRational.fails on +Infinity (2 mutations)
  3189. 596.61 s [really-safe-money-gen] coverage (1223/1610): Money\.AmountOfSpec.INR.multiply.is distributive with add when both succeed (17 mutations)
  3190. 597.21 s [really-safe-money-gen] coverage (1233/1610): Money\.AmountOfSpec.INR.fromRational.fails on -1 (8 mutations)
  3191. 597.99 s [really-safe-money-gen] coverage (1224/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3192. 598.28 s [really-safe-money-gen] coverage (1196/1610): Money\.AmountOfSpec.INR.fromDouble.fails on NaN (8 mutations)
  3193. 598.33 s [really-safe-money-gen] coverage (1198/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -1 (6 mutations)
  3194. 598.46 s [really-safe-money-gen] coverage (1234/1610): Money\.AmountOfSpec.INR.add.is commutative (9 mutations)
  3195. 598.70 s [really-safe-money-gen] coverage (1209/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * INR)"'s (0 mutations)
  3196. 599.36 s [really-safe-money-gen] coverage (1238/1610): Money\.AmountOfSpec.INR.add.has a right-identity\: zero (10 mutations)
  3197. 599.45 s [really-safe-money-gen] coverage (1235/1610): Money\.AmountOfSpec.INR.add.is associative when both succeed (9 mutations)
  3198. 599.89 s [really-safe-money-gen] coverage (1237/1610): Money\.AmountOfSpec.INR.add.has a left-identity\: zero (10 mutations)
  3199. 600.20 s [really-safe-money-gen] coverage (1236/1610): Money\.AmountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3200. 600.38 s [really-safe-money-gen] coverage (1199/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 0 (30 mutations)
  3201. 600.92 s [really-safe-money-gen] coverage (1245/1610): Money\.AmountOfSpec.INR.format.produces valid strings (3 mutations)
  3202. 601.32 s [really-safe-money-gen] coverage (1246/1610): Money\.AmountOfSpec.INR.INR.rate.produces valid amounts (10 mutations)
  3203. 601.36 s [really-safe-money-gen] coverage (1240/1610): Money\.AmountOfSpec.INR.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3204. 601.44 s [really-safe-money-gen] coverage (1239/1610): Money\.AmountOfSpec.INR.add.produces valid amounts (9 mutations)
  3205. 602.47 s [really-safe-money-gen] coverage (1250/1610): Money\.AmountOfSpec.INR.fromRatio.fails on NaN (2 mutations)
  3206. 603.55 s [really-safe-money-gen] coverage (1249/1610): Money\.AmountOfSpec.INR.BTC.convert.produces valid amounts (25 mutations)
  3207. 608.15 s [really-safe-money-gen] coverage (1251/1610): Money\.AmountOfSpec.INR.fromRatio.fails on +Infinity (2 mutations)
  3208. 608.69 s [really-safe-money-gen] coverage (1252/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 1 (19 mutations)
  3209. 615.92 s [really-safe-money-gen] coverage (1253/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 0 (20 mutations)
  3210. 616.18 s [really-safe-money-gen] coverage (1254/1610): Money\.AmountOfSpec.INR.fromRatio.roundtrips with toRatio (19 mutations)
  3211. 618.50 s [really-safe-money-gen] coverage (1255/1610): Money\.AmountOfSpec.INR.fromRatio.produces valid AmountOfs (19 mutations)
  3212. 618.97 s [really-safe-money-gen] coverage (1257/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 77 (19 mutations)
  3213. 619.47 s [really-safe-money-gen] coverage (1261/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is reflexive for "valid (AmountOf * INR)"s (0 mutations)
  3214. 619.70 s [really-safe-money-gen] coverage (1256/1610): Money\.AmountOfSpec.INR.fromRatio.fails on 7\.123 (13 mutations)
  3215. 620.20 s [really-safe-money-gen] coverage (1258/1610): Money\.AmountOfSpec.INR.GenValid (AmountOf * INR).genValid \:\: Gen (AmountOf * INR).only generates valid '(AmountOf * INR)'s (0 mutations)
  3216. 620.20 s [really-safe-money-gen] coverage (1276/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC)."min \:\: (AmountOf * BTC -> AmountOf * BTC -> AmountOf * BTC)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * BTC)"'s (0 mutations)
  3217. 620.94 s [really-safe-money-gen] coverage (1262/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * INR)"s (0 mutations)
  3218. 620.97 s [really-safe-money-gen] coverage (1264/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(/=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antireflexive for "valid (AmountOf * INR)"s (0 mutations)
  3219. 621.11 s [really-safe-money-gen] coverage (1259/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is symmetric for "valid (AmountOf * INR)"s (0 mutations)
  3220. 621.19 s [really-safe-money-gen] coverage (1265/1610): Money\.AmountOfSpec.INR.USD.convert.produces valid amounts (25 mutations)
  3221. 621.90 s [really-safe-money-gen] coverage (1263/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(/=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * INR)"s (0 mutations)
  3222. 622.69 s [really-safe-money-gen] coverage (1260/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"s (0 mutations)
  3223. 623.21 s [really-safe-money-gen] coverage (1268/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3224. 623.22 s [really-safe-money-gen] coverage (1267/1610): Money\.AmountOfSpec.BTC.format.produces valid strings (3 mutations)
  3225. 624.41 s [really-safe-money-gen] coverage (1266/1610): Money\.AmountOfSpec.INR.USD.rate.produces valid amounts (10 mutations)
  3226. 625.77 s [really-safe-money-gen] coverage (1270/1610): Money\.AmountOfSpec.BTC.INR.rate.produces valid amounts (10 mutations)
  3227. 625.97 s [really-safe-money-gen] coverage (1269/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3228. 627.05 s [really-safe-money-gen] coverage (1271/1610): Money\.AmountOfSpec.BTC.INR.convert.produces valid amounts (25 mutations)
  3229. 627.76 s [really-safe-money-gen] coverage (1273/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
  3230. 627.82 s [really-safe-money-gen] coverage (1210/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is reflexive for "valid (AmountOf * INR)"'s (0 mutations)
  3231. 628.33 s [really-safe-money-gen] coverage (1272/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * BTC)"'s (0 mutations)
  3232. 629.69 s [really-safe-money-gen] coverage (1192/1610): Money\.AmountOfSpec.INR.ADA.rate.produces valid amounts (10 mutations)
  3233. 630.22 s [really-safe-money-gen] coverage (1274/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is reflexive for "valid (AmountOf * BTC)"'s (0 mutations)
  3234. 630.28 s [really-safe-money-gen] coverage (1275/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antisymmetric for "valid (AmountOf * BTC)"'s (0 mutations)
  3235. 632.08 s [really-safe-money-gen] coverage (1195/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 1 (30 mutations)
  3236. 633.19 s [really-safe-money-gen] coverage (1277/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antisymmetric for "valid (AmountOf * BTC)"'s (0 mutations)
  3237. 641.93 s [really-safe-money-gen] coverage (1286/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
  3238. 642.43 s [really-safe-money-gen] coverage (1281/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC)."max \:\: (AmountOf * BTC -> AmountOf * BTC -> AmountOf * BTC)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * BTC)"'s (0 mutations)
  3239. 643.40 s [really-safe-money-gen] coverage (1202/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
  3240. 643.49 s [really-safe-money-gen] coverage (1279/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * BTC)"'s (0 mutations)
  3241. 643.50 s [really-safe-money-gen] coverage (1280/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
  3242. 643.53 s [really-safe-money-gen] coverage (1283/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antireflexive for "valid (AmountOf * BTC)"'s (0 mutations)
  3243. 643.61 s [really-safe-money-gen] coverage (1197/1610): Money\.AmountOfSpec.INR.fromDouble.fails on +Infinity (10 mutations)
  3244. 644.94 s [really-safe-money-gen] coverage (1282/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * BTC)"'s (0 mutations)
  3245. 647.72 s [really-safe-money-gen] coverage (1285/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antireflexive for "valid (AmountOf * BTC)"'s (0 mutations)
  3246. 647.80 s [really-safe-money-gen] coverage (1241/1610): Money\.AmountOfSpec.INR.Show (AmountOf * INR) and Read (AmountOf * INR).are implemented such that read \. show == id for valid values (1 mutations)
  3247. 648.04 s [really-safe-money-gen] coverage (1221/1610): Money\.AmountOfSpec.INR.multiply.is absorbed by 0 (10 mutations)
  3248. 648.28 s [really-safe-money-gen] coverage (1247/1610): Money\.AmountOfSpec.INR.INR.convert.produces valid amounts (25 mutations)
  3249. 648.72 s [really-safe-money-gen] coverage (1287/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * BTC)"'s (0 mutations)
  3250. 649.22 s [really-safe-money-gen] coverage (1242/1610): Money\.AmountOfSpec.INR.toRational.produces valid Rationals (0 mutations)
  3251. 649.97 s [really-safe-money-gen] coverage (1284/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
  3252. 650.46 s [really-safe-money-gen] coverage (1219/1610): Money\.AmountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3253. 650.69 s [really-safe-money-gen] coverage (1243/1610): Money\.AmountOfSpec.INR.sum.produces valid amounts (10 mutations)
  3254. 651.18 s [really-safe-money-gen] coverage (1193/1610): Money\.AmountOfSpec.INR.ADA.convert.produces valid amounts (25 mutations)
  3255. 651.28 s [really-safe-money-gen] coverage (1278/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is reflexive for "valid (AmountOf * BTC)"'s (0 mutations)
  3256. 653.31 s [really-safe-money-gen] coverage (1292/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 1 (19 mutations)
  3257. 653.95 s [really-safe-money-gen] coverage (1244/1610): Money\.AmountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3258. 654.17 s [really-safe-money-gen] coverage (1217/1610): Money\.AmountOfSpec.INR.CHF.convert.produces valid amounts (25 mutations)
  3259. 654.63 s [really-safe-money-gen] coverage (1218/1610): Money\.AmountOfSpec.INR.CHF.rate.produces valid amounts (10 mutations)
  3260. 655.11 s [really-safe-money-gen] coverage (1288/1610): Money\.AmountOfSpec.BTC.fromRatio.roundtrips with toRatio (19 mutations)
  3261. 655.12 s [really-safe-money-gen] coverage (1293/1610): Money\.AmountOfSpec.BTC.fromRatio.produces valid AmountOfs (19 mutations)
  3262. 655.90 s [really-safe-money-gen] coverage (1289/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on NaN (2 mutations)
  3263. 656.66 s [really-safe-money-gen] coverage (1291/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 0 (20 mutations)
  3264. 659.77 s [really-safe-money-gen] coverage (1290/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 77 (19 mutations)
  3265. 663.94 s [really-safe-money-gen] coverage (1315/1610): Money\.AmountOfSpec.BTC.USD.convert.produces valid amounts (25 mutations)
  3266. 666.59 s [really-safe-money-gen] coverage (1220/1610): Money\.AmountOfSpec.INR.multiply.produces valid amounts (9 mutations)
  3267. 666.70 s [really-safe-money-gen] coverage (1310/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 0 (30 mutations)
  3268. 667.76 s [really-safe-money-gen] coverage (1311/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -Infinity (6 mutations)
  3269. 667.78 s [really-safe-money-gen] coverage (1314/1610): Money\.AmountOfSpec.BTC.USD.rate.produces valid amounts (10 mutations)
  3270. 668.49 s [really-safe-money-gen] coverage (1313/1610): Money\.AmountOfSpec.BTC.GenValid (AmountOf * BTC).genValid \:\: Gen (AmountOf * BTC).only generates valid '(AmountOf * BTC)'s (0 mutations)
  3271. 669.64 s [really-safe-money-gen] coverage (1312/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on NaN (8 mutations)
  3272. 669.92 s [really-safe-money-gen] coverage (1318/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * BTC)"s (0 mutations)
  3273. 670.46 s [really-safe-money-gen] coverage (1316/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is reflexive for "valid (AmountOf * BTC)"s (0 mutations)
  3274. 670.72 s [really-safe-money-gen] coverage (1321/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(/=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antireflexive for "valid (AmountOf * BTC)"s (0 mutations)
  3275. 673.12 s [really-safe-money-gen] coverage (1325/1610): Money\.AmountOfSpec.BTC.add.is commutative (9 mutations)
  3276. 673.64 s [really-safe-money-gen] coverage (1323/1610): Money\.AmountOfSpec.BTC.add.has a left-identity\: zero (10 mutations)
  3277. 674.79 s [really-safe-money-gen] coverage (1322/1610): Money\.AmountOfSpec.BTC.add.has a right-identity\: zero (10 mutations)
  3278. 675.36 s [really-safe-money-gen] coverage (1317/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"s (0 mutations)
  3279. 675.92 s [really-safe-money-gen] coverage (1329/1610): Money\.AmountOfSpec.BTC.ADA.rate.produces valid amounts (10 mutations)
  3280. 676.18 s [really-safe-money-gen] coverage (1319/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is symmetric for "valid (AmountOf * BTC)"s (0 mutations)
  3281. 676.36 s [really-safe-money-gen] coverage (1320/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(/=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * BTC)"s (0 mutations)
  3282. 676.66 s [really-safe-money-gen] coverage (1327/1610): Money\.AmountOfSpec.BTC.add.is associative when both succeed (9 mutations)
  3283. 676.91 s [really-safe-money-gen] coverage (1324/1610): Money\.AmountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3284. 677.77 s [really-safe-money-gen] coverage (1332/1610): Money\.AmountOfSpec.BTC.BTC.rate.produces valid amounts (10 mutations)
  3285. 678.90 s [really-safe-money-gen] coverage (1326/1610): Money\.AmountOfSpec.BTC.add.produces valid amounts (9 mutations)
  3286. 679.52 s [really-safe-money-gen] coverage (1343/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is symmetric for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3287. 679.55 s [really-safe-money-gen] coverage (1331/1610): Money\.AmountOfSpec.BTC.BTC.convert.produces valid amounts (25 mutations)
  3288. 680.04 s [really-safe-money-gen] coverage (1328/1610): Money\.AmountOfSpec.BTC.ADA.convert.produces valid amounts (25 mutations)
  3289. 680.66 s [really-safe-money-gen] coverage (1333/1610): Money\.AmountOfSpec.BTC.toDouble.produces valid Doubles (0 mutations)
  3290. 681.63 s [really-safe-money-gen] coverage (1336/1610): Money\.AmountOfSpec.BTC.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3291. 681.65 s [really-safe-money-gen] coverage (1346/1610): Money\.AmountOfSpec.BTC.distribute.produces valid amounts (21 mutations)
  3292. 682.30 s [really-safe-money-gen] coverage (1334/1610): Money\.AmountOfSpec.BTC.Show (AmountOf * BTC) and Read (AmountOf * BTC).are implemented such that read \. show == id for valid values (1 mutations)
  3293. 682.30 s [really-safe-money-gen] coverage (1330/1610): Money\.AmountOfSpec.BTC.zero.is valid (1 mutations)
  3294. 686.03 s [really-safe-money-gen] coverage (1335/1610): Money\.AmountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3295. 688.92 s [really-safe-money-gen] coverage (1353/1610): Money\.AmountOfSpec.BTC.multiply.produces valid amounts (9 mutations)
  3296. 691.58 s [really-safe-money-gen] coverage (1337/1610): Money\.AmountOfSpec.BTC.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3297. 694.86 s [really-safe-money-gen] coverage (1340/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(/=) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3298. 695.07 s [really-safe-money-gen] coverage (1352/1610): Money\.AmountOfSpec.BTC.multiply.has an identity\: 1 (9 mutations)
  3299. 695.18 s [really-safe-money-gen] coverage (1342/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is reflexive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3300. 695.72 s [really-safe-money-gen] coverage (1339/1610): Money\.AmountOfSpec.BTC.sum.produces valid amounts (10 mutations)
  3301. 695.73 s [really-safe-money-gen] coverage (1338/1610): Money\.AmountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3302. 695.76 s [really-safe-money-gen] coverage (1344/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3303. 697.56 s [really-safe-money-gen] coverage (1365/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 1 (19 mutations)
  3304. 697.70 s [really-safe-money-gen] coverage (1349/1610): Money\.AmountOfSpec.BTC.toRational.produces valid Rationals (0 mutations)
  3305. 697.77 s [really-safe-money-gen] coverage (1356/1610): Money\.AmountOfSpec.CHF.INR.convert.produces valid amounts (25 mutations)
  3306. 699.04 s [really-safe-money-gen] coverage (1367/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 77 (19 mutations)
  3307. 699.05 s [really-safe-money-gen] coverage (1348/1610): Money\.AmountOfSpec.BTC.distribute.Show (Distribution (AmountOf * BTC)) and Read (Distribution (AmountOf * BTC)).are implemented such that read \. show == id for valid values (1 mutations)
  3308. 699.11 s [really-safe-money-gen] coverage (1347/1610): Money\.AmountOfSpec.BTC.distribute.produces results that sum up to the greater whole (29 mutations)
  3309. 699.42 s [really-safe-money-gen] coverage (1341/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(/=) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3310. 699.59 s [really-safe-money-gen] coverage (1354/1610): Money\.AmountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3311. 700.05 s [really-safe-money-gen] coverage (1364/1610): Money\.AmountOfSpec.CHF.fromRatio.roundtrips with toRatio (19 mutations)
  3312. 701.34 s [really-safe-money-gen] coverage (1345/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is transitive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3313. 701.64 s [really-safe-money-gen] coverage (1360/1610): Money\.AmountOfSpec.CHF.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3314. 701.64 s [really-safe-money-gen] coverage (1350/1610): Money\.AmountOfSpec.BTC.fraction.produces valid amounts (17 mutations)
  3315. 702.40 s [really-safe-money-gen] coverage (1359/1610): Money\.AmountOfSpec.CHF.USD.rate.produces valid amounts (10 mutations)
  3316. 703.17 s [really-safe-money-gen] coverage (1374/1610): Money\.AmountOfSpec.CHF.multiply.produces valid amounts (9 mutations)
  3317. 703.31 s [really-safe-money-gen] coverage (1361/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 0 (20 mutations)
  3318. 704.42 s [really-safe-money-gen] coverage (1351/1610): Money\.AmountOfSpec.BTC.multiply.is absorbed by 0 (10 mutations)
  3319. 704.42 s [really-safe-money-gen] coverage (1362/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on +Infinity (2 mutations)
  3320. 704.70 s [really-safe-money-gen] coverage (1357/1610): Money\.AmountOfSpec.CHF.INR.rate.produces valid amounts (10 mutations)
  3321. 707.71 s [really-safe-money-gen] coverage (1358/1610): Money\.AmountOfSpec.CHF.USD.convert.produces valid amounts (25 mutations)
  3322. 707.91 s [really-safe-money-gen] coverage (1369/1610): Money\.AmountOfSpec.CHF.fraction.produces valid amounts (17 mutations)
  3323. 709.47 s [really-safe-money-gen] coverage (1355/1610): Money\.AmountOfSpec.BTC.multiply.is distributive with add when both succeed (17 mutations)
  3324. 710.02 s [really-safe-money-gen] coverage (1363/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on NaN (2 mutations)
  3325. 712.44 s [really-safe-money-gen] coverage (1382/1610): Money\.AmountOfSpec.CHF.fromRational.roundtrips with toRational (19 mutations)
  3326. 712.69 s [really-safe-money-gen] coverage (1366/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on 7\.123 (13 mutations)
  3327. 712.71 s [really-safe-money-gen] coverage (1368/1610): Money\.AmountOfSpec.CHF.fromRatio.produces valid AmountOfs (19 mutations)
  3328. 715.32 s [really-safe-money-gen] coverage (1377/1610): Money\.AmountOfSpec.CHF.fromRational.produces valid Amounts (19 mutations)
  3329. 716.44 s [really-safe-money-gen] coverage (1370/1610): Money\.AmountOfSpec.CHF.multiply.has an identity\: 1 (9 mutations)
  3330. 717.70 s [really-safe-money-gen] coverage (1376/1610): Money\.AmountOfSpec.CHF.fromRational.fails on +Infinity (2 mutations)
  3331. 717.80 s [really-safe-money-gen] coverage (1372/1610): Money\.AmountOfSpec.CHF.multiply.is distributive with add when both succeed (17 mutations)
  3332. 718.50 s [really-safe-money-gen] coverage (1388/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(/=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antireflexive for "valid (AmountOf * CHF)"s (0 mutations)
  3333. 719.71 s [really-safe-money-gen] coverage (1383/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 1 (19 mutations)
  3334. 721.88 s [really-safe-money-gen] coverage (1384/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * CHF)"s (0 mutations)
  3335. 722.56 s [really-safe-money-gen] coverage (1375/1610): Money\.AmountOfSpec.CHF.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3336. 723.15 s [really-safe-money-gen] coverage (1378/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 0 (19 mutations)
  3337. 723.76 s [really-safe-money-gen] coverage (1371/1610): Money\.AmountOfSpec.CHF.multiply.is absorbed by 0 (10 mutations)
  3338. 725.56 s [really-safe-money-gen] coverage (1380/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -1 (8 mutations)
  3339. 725.78 s [really-safe-money-gen] coverage (1373/1610): Money\.AmountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3340. 726.74 s [really-safe-money-gen] coverage (1387/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"s (0 mutations)
  3341. 726.79 s [really-safe-money-gen] coverage (1379/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -Infinity (2 mutations)
  3342. 729.44 s [really-safe-money-gen] coverage (1403/1610): Money\.AmountOfSpec.CHF.fromDouble.produces valid amounts (30 mutations)
  3343. 729.72 s [really-safe-money-gen] coverage (1392/1610): Money\.AmountOfSpec.CHF.BTC.convert.produces valid amounts (25 mutations)
  3344. 730.35 s [really-safe-money-gen] coverage (1390/1610): Money\.AmountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3345. 730.53 s [really-safe-money-gen] coverage (1385/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is symmetric for "valid (AmountOf * CHF)"s (0 mutations)
  3346. 730.67 s [really-safe-money-gen] coverage (1397/1610): Money\.AmountOfSpec.CHF.toRational.produces valid Rationals (0 mutations)
  3347. 731.24 s [really-safe-money-gen] coverage (1381/1610): Money\.AmountOfSpec.CHF.fromRational.fails on NaN (2 mutations)
  3348. 731.43 s [really-safe-money-gen] coverage (1391/1610): Money\.AmountOfSpec.CHF.sum.produces valid amounts (10 mutations)
  3349. 731.52 s [really-safe-money-gen] coverage (1386/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"s (0 mutations)
  3350. 732.07 s [really-safe-money-gen] coverage (1402/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 1 (30 mutations)
  3351. 732.11 s [really-safe-money-gen] coverage (1406/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -1 (6 mutations)
  3352. 732.31 s [really-safe-money-gen] coverage (1413/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF)."max \:\: (AmountOf * CHF -> AmountOf * CHF -> AmountOf * CHF)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * CHF)"'s (0 mutations)
  3353. 732.87 s [really-safe-money-gen] coverage (1395/1610): Money\.AmountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3354. 733.64 s [really-safe-money-gen] coverage (1409/1610): Money\.AmountOfSpec.CHF.ADA.rate.produces valid amounts (10 mutations)
  3355. 734.85 s [really-safe-money-gen] coverage (1398/1610): Money\.AmountOfSpec.CHF.CHF.convert.produces valid amounts (25 mutations)
  3356. 736.72 s [really-safe-money-gen] coverage (1393/1610): Money\.AmountOfSpec.CHF.BTC.rate.produces valid amounts (10 mutations)
  3357. 736.92 s [really-safe-money-gen] coverage (1389/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(/=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * CHF)"s (0 mutations)
  3358. 737.66 s [really-safe-money-gen] coverage (1427/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"'s (0 mutations)
  3359. 738.41 s [really-safe-money-gen] coverage (1396/1610): Money\.AmountOfSpec.CHF.toDouble.produces valid Doubles (0 mutations)
  3360. 738.61 s [really-safe-money-gen] coverage (1399/1610): Money\.AmountOfSpec.CHF.CHF.rate.produces valid amounts (10 mutations)
  3361. 739.12 s [really-safe-money-gen] coverage (1394/1610): Money\.AmountOfSpec.CHF.zero.is valid (1 mutations)
  3362. 739.19 s [really-safe-money-gen] coverage (1401/1610): Money\.AmountOfSpec.CHF.format.produces valid strings (3 mutations)
  3363. 739.36 s [really-safe-money-gen] coverage (1410/1610): Money\.AmountOfSpec.CHF.ADA.convert.produces valid amounts (25 mutations)
  3364. 740.72 s [really-safe-money-gen] coverage (1411/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3365. 740.76 s [really-safe-money-gen] coverage (1408/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -Infinity (6 mutations)
  3366. 741.24 s [really-safe-money-gen] coverage (1400/1610): Money\.AmountOfSpec.CHF.Show (AmountOf * CHF) and Read (AmountOf * CHF).are implemented such that read \. show == id for valid values (1 mutations)
  3367. 741.27 s [really-safe-money-gen] coverage (1422/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antireflexive for "valid (AmountOf * CHF)"'s (0 mutations)
  3368. 744.10 s [really-safe-money-gen] coverage (1404/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on +Infinity (10 mutations)
  3369. 744.66 s [really-safe-money-gen] coverage (1435/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is symmetric for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
  3370. 746.10 s [really-safe-money-gen] coverage (1407/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on NaN (8 mutations)
  3371. 747.54 s [really-safe-money-gen] coverage (1418/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
  3372. 747.73 s [really-safe-money-gen] coverage (1412/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3373. 747.91 s [really-safe-money-gen] coverage (1405/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 0 (30 mutations)
  3374. 750.18 s [really-safe-money-gen] coverage (1416/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antireflexive for "valid (AmountOf * CHF)"'s (0 mutations)
  3375. 750.85 s [really-safe-money-gen] coverage (1431/1610): Money\.AmountOfSpec.CHF.distribute.produces valid amounts (21 mutations)
  3376. 751.57 s [really-safe-money-gen] coverage (1421/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"'s (0 mutations)
  3377. 753.13 s [really-safe-money-gen] coverage (1444/1610): Money\.AmountOfSpec.CHF.add.has a right-identity\: zero (10 mutations)
  3378. 753.40 s [really-safe-money-gen] coverage (1424/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
  3379. 755.42 s [really-safe-money-gen] coverage (1443/1610): Money\.AmountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3380. 755.51 s [really-safe-money-gen] coverage (1415/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * CHF)"'s (0 mutations)
  3381. 757.23 s [really-safe-money-gen] coverage (1423/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * CHF)"'s (0 mutations)
  3382. 757.45 s [really-safe-money-gen] coverage (1414/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF)."min \:\: (AmountOf * CHF -> AmountOf * CHF -> AmountOf * CHF)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * CHF)"'s (0 mutations)
  3383. 757.52 s [really-safe-money-gen] coverage (1417/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
  3384. 758.12 s [really-safe-money-gen] coverage (1429/1610): Money\.AmountOfSpec.CHF.GenValid (AmountOf * CHF).genValid \:\: Gen (AmountOf * CHF).only generates valid '(AmountOf * CHF)'s (0 mutations)
  3385. 758.18 s [really-safe-money-gen] coverage (1450/1610): Money\.AmountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundUp (6 mutations)
  3386. 758.39 s [really-safe-money-gen] coverage (1430/1610): Money\.AmountOfSpec.CHF.distribute.Show (Distribution (AmountOf * CHF)) and Read (Distribution (AmountOf * CHF)).are implemented such that read \. show == id for valid values (1 mutations)
  3387. 758.69 s [really-safe-money-gen] coverage (1436/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
  3388. 758.76 s [really-safe-money-gen] coverage (1426/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * CHF)"'s (0 mutations)
  3389. 758.90 s [really-safe-money-gen] coverage (1419/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * CHF)"'s (0 mutations)
  3390. 760.04 s [really-safe-money-gen] coverage (1425/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
  3391. 761.11 s [really-safe-money-gen] coverage (1446/1610): Money\.AmountSpec.fraction.Correctly fractions 101 with 1 % 100 (12 mutations)
  3392. 761.34 s [really-safe-money-gen] coverage (1439/1610): Money\.AmountOfSpec.CHF.add.is commutative (9 mutations)
  3393. 761.78 s [really-safe-money-gen] coverage (1428/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antisymmetric for "valid (AmountOf * CHF)"'s (0 mutations)
  3394. 761.90 s [really-safe-money-gen] coverage (1433/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(/=) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
  3395. 761.98 s [really-safe-money-gen] coverage (1434/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(/=) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
  3396. 762.51 s [really-safe-money-gen] coverage (1420/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antisymmetric for "valid (AmountOf * CHF)"'s (0 mutations)
  3397. 763.54 s [really-safe-money-gen] coverage (1222/1610): Money\.AmountOfSpec.INR.multiply.has an identity\: 1 (9 mutations)
  3398. 763.84 s [really-safe-money-gen] coverage (1432/1610): Money\.AmountOfSpec.CHF.distribute.produces results that sum up to the greater whole (29 mutations)
  3399. 764.47 s [really-safe-money-gen] coverage (1201/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR)."max \:\: (AmountOf * INR -> AmountOf * INR -> AmountOf * INR)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * INR)"'s (0 mutations)
  3400. 765.06 s [really-safe-money-gen] coverage (1447/1610): Money\.AmountSpec.fraction.Produces a result that can be multiplied back (17 mutations)
  3401. 766.07 s [really-safe-money-gen] coverage (1440/1610): Money\.AmountOfSpec.CHF.add.has a left-identity\: zero (10 mutations)
  3402. 766.12 s [really-safe-money-gen] coverage (1442/1610): Money\.AmountOfSpec.CHF.add.produces valid amounts (9 mutations)
  3403. 768.66 s [really-safe-money-gen] coverage (1451/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 1 (3 mutations)
  3404. 768.94 s [really-safe-money-gen] coverage (1454/1610): Money\.AmountSpec.fromRatio.produces valid Amounts (19 mutations)
  3405. 769.42 s [really-safe-money-gen] coverage (1437/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is reflexive for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
  3406. 771.77 s [really-safe-money-gen] coverage (1438/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is transitive for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
  3407. 772.57 s [really-safe-money-gen] coverage (1200/1610): Money\.AmountOfSpec.INR.fromDouble.produces valid amounts (30 mutations)
  3408. 773.55 s [really-safe-money-gen] coverage (1445/1610): Money\.AmountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundDown (6 mutations)
  3409. 775.47 s [really-safe-money-gen] coverage (1448/1610): Money\.AmountSpec.fraction.produces valid amounts (17 mutations)
  3410. 776.11 s [really-safe-money-gen] coverage (1441/1610): Money\.AmountOfSpec.CHF.add.is associative when both succeed (9 mutations)
  3411. 776.76 s [really-safe-money-gen] coverage (1213/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
  3412. 777.52 s [really-safe-money-gen] coverage (1460/1610): Money\.AmountSpec.fromRatio.succeeds on 0 (19 mutations)
  3413. 778.08 s [really-safe-money-gen] coverage (1449/1610): Money\.AmountSpec.fraction.Correctly fractions 100 with 1 % 100 (12 mutations)
  3414. 778.08 s [really-safe-money-gen] coverage (1459/1610): Money\.AmountSpec.fromRatio.succeeds on 77\.02 with quantisation factor 100 (19 mutations)
  3415. 779.03 s [really-safe-money-gen] coverage (1231/1610): Money\.AmountOfSpec.INR.fromRational.produces valid Amounts (19 mutations)
  3416. 780.64 s [really-safe-money-gen] coverage (1305/1610): Money\.AmountOfSpec.BTC.fromRational.roundtrips with toRational (19 mutations)
  3417. 781.26 s [really-safe-money-gen] coverage (1462/1610): Money\.AmountSpec.distribute.correctly distributes 3 into 3 (5 mutations)
  3418. 781.55 s [really-safe-money-gen] coverage (1297/1610): Money\.AmountOfSpec.BTC.CHF.rate.produces valid amounts (10 mutations)
  3419. 782.37 s [really-safe-money-gen] coverage (1461/1610): Money\.AmountSpec.fromRatio.fails on 7\.123 with quantisation factor 10 (13 mutations)
  3420. 782.99 s [really-safe-money-gen] coverage (1214/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * INR)"'s (0 mutations)
  3421. 783.01 s [really-safe-money-gen] coverage (1452/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 10 (3 mutations)
  3422. 784.13 s [really-safe-money-gen] coverage (1300/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -1 (8 mutations)
  3423. 784.14 s [really-safe-money-gen] coverage (1216/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR)."min \:\: (AmountOf * INR -> AmountOf * INR -> AmountOf * INR)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * INR)"'s (0 mutations)
  3424. 786.12 s [really-safe-money-gen] coverage (1464/1610): Money\.AmountSpec.distribute.Show (Distribution Amount) and Read (Distribution Amount).are implemented such that read \. show == id for valid values (1 mutations)
  3425. 786.69 s [really-safe-money-gen] coverage (1307/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 1 (30 mutations)
  3426. 786.87 s [really-safe-money-gen] coverage (1456/1610): Money\.AmountSpec.fromRatio.succeeds on 1 (19 mutations)
  3427. 787.02 s [really-safe-money-gen] coverage (1453/1610): Money\.AmountSpec.format.produces valid strings (3 mutations)
  3428. 787.53 s [really-safe-money-gen] coverage (1212/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antisymmetric for "valid (AmountOf * INR)"'s (0 mutations)
  3429. 788.03 s [really-safe-money-gen] coverage (1303/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -Infinity (2 mutations)
  3430. 788.86 s [really-safe-money-gen] coverage (1463/1610): Money\.AmountSpec.distribute.produces results that sum up to the greater whole (25 mutations)
  3431. 789.07 s [really-safe-money-gen] coverage (1194/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -Infinity (6 mutations)
  3432. 790.22 s [really-safe-money-gen] coverage (1457/1610): Money\.AmountSpec.fromRatio.fails on NaN (2 mutations)
  3433. 791.85 s [really-safe-money-gen] coverage (1472/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(/=) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is antireflexive for "valid (Distribution Amount)"s (1 mutations)
  3434. 791.89 s [really-safe-money-gen] coverage (1455/1610): Money\.AmountSpec.fromRatio.roundtrips with toRatio (19 mutations)
  3435. 792.04 s [really-safe-money-gen] coverage (1458/1610): Money\.AmountSpec.fromRatio.fails on +Infinity (2 mutations)
  3436. 792.12 s [really-safe-money-gen] coverage (1299/1610): Money\.AmountOfSpec.BTC.fromRational.produces valid Amounts (19 mutations)
  3437. 793.34 s [really-safe-money-gen] coverage (1302/1610): Money\.AmountOfSpec.BTC.fromRational.fails on +Infinity (2 mutations)
  3438. 793.44 s [really-safe-money-gen] coverage (1301/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 1 (19 mutations)
  3439. 794.89 s [really-safe-money-gen] coverage (1470/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is reflexive for "valid (Distribution Amount)"s (1 mutations)
  3440. 796.76 s [really-safe-money-gen] coverage (1467/1610): Money\.AmountSpec.distribute.correctly distributes 5 into 3 (7 mutations)
  3441. 799.12 s [really-safe-money-gen] coverage (1296/1610): Money\.AmountOfSpec.BTC.CHF.convert.produces valid amounts (25 mutations)
  3442. 800.04 s [really-safe-money-gen] coverage (1476/1610): Money\.AmountSpec.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3443. 800.68 s [really-safe-money-gen] coverage (1309/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -1 (6 mutations)
  3444. 800.82 s [really-safe-money-gen] coverage (1473/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(/=) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution Amount)"s (1 mutations)
  3445. 800.94 s [really-safe-money-gen] coverage (1480/1610): Money\.AmountSpec.multiply.fails for 2 * maxbound (8 mutations)
  3446. 801.18 s [really-safe-money-gen] coverage (1248/1610): Money\.AmountOfSpec.INR.BTC.rate.produces valid amounts (10 mutations)
  3447. 801.42 s [really-safe-money-gen] coverage (1482/1610): Money\.AmountSpec.multiply.is absorbed by 0 (10 mutations)
  3448. 801.93 s [really-safe-money-gen] coverage (1304/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 0 (19 mutations)
  3449. 802.11 s [really-safe-money-gen] coverage (1295/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on 7\.123 (13 mutations)
  3450. 803.03 s [really-safe-money-gen] coverage (1485/1610): Money\.AmountSpec.multiply.succeeds for 3 * 6 (9 mutations)
  3451. 803.33 s [really-safe-money-gen] coverage (1294/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on +Infinity (2 mutations)
  3452. 804.56 s [really-safe-money-gen] coverage (1488/1610): Money\.AmountSpec.fromDouble.roundtrips with toDouble, back to double (30 mutations)
  3453. 805.23 s [really-safe-money-gen] coverage (1232/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 1 (19 mutations)
  3454. 805.54 s [really-safe-money-gen] coverage (1479/1610): Money\.AmountSpec.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3455. 806.19 s [really-safe-money-gen] coverage (1478/1610): Money\.AmountSpec.sum.correctly sums [1,2,3] to 6 (10 mutations)
  3456. 806.45 s [really-safe-money-gen] coverage (1484/1610): Money\.AmountSpec.multiply.has an identity\: 1 (9 mutations)
  3457. 806.56 s [really-safe-money-gen] coverage (1506/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  3458. 806.84 s [really-safe-money-gen] coverage (1308/1610): Money\.AmountOfSpec.BTC.fromDouble.produces valid amounts (30 mutations)
  3459. 807.18 s [really-safe-money-gen] coverage (1483/1610): Money\.AmountSpec.multiply.is distributive with add when both succeed (18 mutations)
  3460. 807.39 s [really-safe-money-gen] coverage (1465/1610): Money\.AmountSpec.distribute.correctly distributes 10 into 4 (7 mutations)
  3461. 807.95 s [really-safe-money-gen] coverage (1502/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3462. 808.84 s [really-safe-money-gen] coverage (1298/1610): Money\.AmountOfSpec.BTC.fromRational.fails on NaN (2 mutations)
  3463. 809.91 s [really-safe-money-gen] coverage (1530/1610): Money\.AmountSpec.add.fails for maxBound + 1 (8 mutations)
  3464. 810.31 s [really-safe-money-gen] coverage (1306/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on +Infinity (10 mutations)
  3465. 811.30 s [really-safe-money-gen] coverage (1477/1610): Money\.AmountSpec.sum.fails to sum above maxBound (9 mutations)
  3466. 811.46 s [really-safe-money-gen] coverage (1524/1610): Money\.AmountSpec.fromRational.fails on +Infinity (2 mutations)
  3467. 812.26 s [really-safe-money-gen] coverage (1469/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution Amount)"s (1 mutations)
  3468. 812.71 s [really-safe-money-gen] coverage (1533/1610): Money\.AmountSpec.add.produces valid amounts (9 mutations)
  3469. 813.60 s [really-safe-money-gen] coverage (1486/1610): Money\.AmountSpec.Show Amount and Read Amount.are implemented such that read \. show == id for valid values (1 mutations)
  3470. 813.62 s [really-safe-money-gen] coverage (1500/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Amount"'s (0 mutations)
  3471. 813.62 s [really-safe-money-gen] coverage (1474/1610): Money\.AmountSpec.distribute.produces valid amounts (17 mutations)
  3472. 814.77 s [really-safe-money-gen] coverage (1468/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is symmetric for "valid (Distribution Amount)"s (1 mutations)
  3473. 816.05 s [really-safe-money-gen] coverage (1499/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  3474. 817.43 s [really-safe-money-gen] coverage (1471/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is transitive for "valid (Distribution Amount)"s (1 mutations)
  3475. 817.55 s [really-safe-money-gen] coverage (1516/1610): Money\.AmountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
  3476. 818.07 s [really-safe-money-gen] coverage (1542/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"s (0 mutations)
  3477. 818.69 s [really-safe-money-gen] coverage (1481/1610): Money\.AmountSpec.multiply.produces valid amounts (9 mutations)
  3478. 819.40 s [really-safe-money-gen] coverage (1536/1610): Money\.AmountSpec.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3479. 820.18 s [really-safe-money-gen] coverage (1501/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  3480. 820.37 s [really-safe-money-gen] coverage (1475/1610): Money\.AmountSpec.sum.produces valid amounts (10 mutations)
  3481. 822.09 s [really-safe-money-gen] coverage (1515/1610): Money\.AmountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3482. 822.34 s [really-safe-money-gen] coverage (1490/1610): Money\.AmountSpec.fromDouble.produces valid amounts (30 mutations)
  3483. 823.03 s [really-safe-money-gen] coverage (1548/1610): Money\.AmountSpec.rate.produces valid conversion rates (10 mutations)
  3484. 823.11 s [really-safe-money-gen] coverage (1531/1610): Money\.AmountSpec.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3485. 825.97 s [really-safe-money-gen] coverage (1538/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"s (0 mutations)
  3486. 826.14 s [really-safe-money-gen] coverage (1509/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3487. 826.32 s [really-safe-money-gen] coverage (1487/1610): Money\.AmountSpec.fromDouble.fails on really large numbers (21 mutations)
  3488. 827.94 s [really-safe-money-gen] coverage (1529/1610): Money\.AmountSpec.add.is commutative (9 mutations)
  3489. 828.58 s [really-safe-money-gen] coverage (1511/1610): Money\.AmountSpec.Ord Amount."min \:\: (Amount -> Amount -> Amount)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Amount"'s (0 mutations)
  3490. 828.87 s [really-safe-money-gen] coverage (1554/1610): Money\.AmountSpec.convert.produces valid amounts (25 mutations)
  3491. 829.09 s [really-safe-money-gen] coverage (1541/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"s (0 mutations)
  3492. 829.14 s [really-safe-money-gen] coverage (1532/1610): Money\.AmountSpec.add.has a right-identity\: zero (10 mutations)
  3493. 829.24 s [really-safe-money-gen] coverage (1547/1610): Money\.AmountSpec.toDouble.produces an infinite Double with quantisation factor 0 (0 mutations)
  3494. 832.11 s [really-safe-money-gen] coverage (1555/1610): Money\.AmountSpec.toRatio.produces an invalid Rational with quantisation factor 0 (1 mutations)
  3495. 832.90 s [really-safe-money-gen] coverage (1551/1610): Money\.AmountSpec.zero.is valid (1 mutations)
  3496. 833.38 s [really-safe-money-gen] coverage (1545/1610): Money\.AmountSpec.toDouble.produces valid Doubles (0 mutations)
  3497. 833.40 s [really-safe-money-gen] coverage (1539/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Amount"s (0 mutations)
  3498. 834.47 s [really-safe-money-gen] coverage (1527/1610): Money\.AmountSpec.fromRational.produces valid Amounts (19 mutations)
  3499. 834.48 s [really-safe-money-gen] coverage (1564/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (23 mutations)
  3500. 834.66 s [really-safe-money-gen] coverage (1528/1610): Money\.AmountSpec.add.is associative when both succeed (9 mutations)
  3501. 834.78 s [really-safe-money-gen] coverage (1534/1610): Money\.AmountSpec.add.fails for maxBound + maxBound (8 mutations)
  3502. 835.81 s [really-safe-money-gen] coverage (1550/1610): Money\.AmountSpec.rate.computes this USD to CHF rate correctly (10 mutations)
  3503. 835.87 s [really-safe-money-gen] coverage (1540/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Amount"s (0 mutations)
  3504. 836.47 s [really-safe-money-gen] coverage (1535/1610): Money\.AmountSpec.add.has a left-identity\: zero (10 mutations)
  3505. 837.71 s [really-safe-money-gen] coverage (1553/1610): Money\.AmountSpec.convert.converts this USD to CHF correctly (22 mutations)
  3506. 837.83 s [really-safe-money-gen] coverage (1546/1610): Money\.AmountSpec.toDouble.succeeds on 7702 with quantisation factor 100 (0 mutations)
  3507. 838.87 s [really-safe-money-gen] coverage (1543/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is symmetric for "valid Amount"s (0 mutations)
  3508. 839.32 s [really-safe-money-gen] coverage (1503/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3509. 840.12 s [really-safe-money-gen] coverage (1537/1610): Money\.AmountSpec.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3510. 840.69 s [really-safe-money-gen] coverage (1556/1610): Money\.AmountSpec.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3511. 841.55 s [really-safe-money-gen] coverage (1549/1610): Money\.AmountSpec.rate.computes a rate that can be used to do a conversion without rounding (27 mutations)
  3512. 842.81 s [really-safe-money-gen] coverage (1544/1610): Money\.AmountSpec.GenValid Amount.genValid \:\: Gen Amount.only generates valid 'Amount's (0 mutations)
  3513. 843.09 s [really-safe-money-gen] coverage (1561/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (50 mutations)
  3514. 845.40 s [really-safe-money-gen] coverage (1559/1610): Money\.AmountSpec.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3515. 845.95 s [really-safe-money-gen] coverage (1576/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (44 mutations)
  3516. 846.72 s [really-safe-money-gen] coverage (1552/1610): Money\.AmountSpec.convert.succeeds in converting 1\:1 without rounding if the quantisation factor is the same (25 mutations)
  3517. 847.51 s [really-safe-money-gen] coverage (1560/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (23 mutations)
  3518. 850.35 s [really-safe-money-gen] coverage (1557/1610): Money\.AmountSpec.subtract.fails for 0 - maxBound (9 mutations)
  3519. 850.88 s [really-safe-money-gen] coverage (1558/1610): Money\.AmountSpec.subtract.fails for 0 - 1 (9 mutations)
  3520. 852.15 s [really-safe-money-gen] coverage (1578/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 200 2 (44 mutations)
  3521. 852.81 s [really-safe-money-gen] coverage (1570/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise (17 mutations)
  3522. 853.00 s [really-safe-money-gen] coverage (1589/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Currency"s (1 mutations)
  3523. 853.00 s [really-safe-money-gen] coverage (1562/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (23 mutations)
  3524. 854.22 s [really-safe-money-gen] coverage (1565/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (23 mutations)
  3525. 854.37 s [really-safe-money-gen] coverage (1581/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 4 2 (44 mutations)
  3526. 854.92 s [really-safe-money-gen] coverage (1572/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 2 0 (38 mutations)
  3527. 857.38 s [really-safe-money-gen] coverage (1580/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (44 mutations)
  3528. 857.89 s [really-safe-money-gen] coverage (1567/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (50 mutations)
  3529. 857.90 s [really-safe-money-gen] coverage (1573/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (38 mutations)
  3530. 858.18 s [really-safe-money-gen] coverage (1584/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 20 2 (50 mutations)
  3531. 858.72 s [really-safe-money-gen] coverage (1563/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 600 2 (44 mutations)
  3532. 859.75 s [really-safe-money-gen] coverage (1566/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (23 mutations)
  3533. 861.18 s [really-safe-money-gen] coverage (1571/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise:1 (17 mutations)
  3534. 861.22 s [really-safe-money-gen] coverage (1568/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (23 mutations)
  3535. 862.28 s [really-safe-money-gen] coverage (1577/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (23 mutations)
  3536. 863.33 s [really-safe-money-gen] coverage (1575/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (23 mutations)
  3537. 863.98 s [really-safe-money-gen] coverage (1574/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (44 mutations)
  3538. 864.67 s [really-safe-money-gen] coverage (1569/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.produces valid factors (23 mutations)
  3539. 866.06 s [really-safe-money-gen] coverage (1579/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (23 mutations)
  3540. 867.50 s [really-safe-money-gen] coverage (1590/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Currency"s (1 mutations)
  3541. 868.98 s [really-safe-money-gen] coverage (1587/1610): Money\.AmountSpec.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3542. 870.01 s [really-safe-money-gen] coverage (1586/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (23 mutations)
  3543. 871.36 s [really-safe-money-gen] coverage (1585/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (23 mutations)
  3544. 872.64 s [really-safe-money-gen] coverage (1588/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"s (1 mutations)
  3545. 874.04 s [really-safe-money-gen] coverage (1608/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Currency"'s (1 mutations)
  3546. 874.92 s [really-safe-money-gen] coverage (1521/1610): Money\.AmountSpec.fromRational.succeeds on 1 (19 mutations)
  3547. 875.04 s [really-safe-money-gen] coverage (1605/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  3548. 875.56 s [really-safe-money-gen] coverage (1591/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is symmetric for "valid Currency"s (1 mutations)
  3549. 877.12 s [really-safe-money-gen] coverage (1596/1610): Money\.CurrencySpec.Ord Currency."min \:\: (Currency -> Currency -> Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Currency"'s (1 mutations)
  3550. 878.02 s [really-safe-money-gen] coverage (1604/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3551. 878.29 s [really-safe-money-gen] coverage (1593/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"s (1 mutations)
  3552. 880.20 s [really-safe-money-gen] coverage (1598/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  3553. 880.22 s [really-safe-money-gen] coverage (1594/1610): Money\.CurrencySpec.Show Currency and Read Currency.are implemented such that read \. show == id for valid values (1 mutations)
  3554. 880.90 s [really-safe-money-gen] coverage (1595/1610): Money\.CurrencySpec.Ord Currency."max \:\: (Currency -> Currency -> Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Currency"'s (1 mutations)
  3555. 881.41 s [really-safe-money-gen] coverage (1592/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"s (1 mutations)
  3556. 881.90 s [really-safe-money-gen] coverage (1601/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3557. 882.69 s [really-safe-money-gen] coverage (1602/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Currency"'s (1 mutations)
  3558. 882.84 s [really-safe-money-gen] coverage (1526/1610): Money\.AmountSpec.fromRational.fails on NaN (2 mutations)
  3559. 883.04 s [really-safe-money-gen] coverage (1522/1610): Money\.AmountSpec.fromRational.succeeds on 77\.02 with quantisation factor 100 (19 mutations)
  3560. 884.26 s [really-safe-money-gen] coverage (1597/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3561. 884.52 s [really-safe-money-gen] coverage (1603/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  3562. 884.97 s [really-safe-money-gen] coverage (1599/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Currency"'s (1 mutations)
  3563. 885.03 s [really-safe-money-gen] coverage (1609/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3564. 885.55 s [really-safe-money-gen] coverage (1607/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid Currency"'s (1 mutations)
  3565. 886.31 s [really-safe-money-gen] coverage (1600/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  3566. 887.87 s [really-safe-money-gen] coverage (1606/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  3567. 888.32 s [really-safe-money-gen] coverage (1610/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  3568. 889.03 s [really-safe-money-gen] coverage (1510/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Amount"'s (0 mutations)
  3569. 889.64 s [really-safe-money-gen] coverage (1517/1610): Money\.AmountSpec.fromRational.roundtrips with toRational (19 mutations)
  3570. 890.22 s [really-safe-money-gen] coverage (1523/1610): Money\.AmountSpec.fromRational.fails on 7\.123 with quantisation factor 10 (13 mutations)
  3571. 891.63 s [really-safe-money-gen] coverage (1525/1610): Money\.AmountSpec.fromRational.fails on -1 (8 mutations)
  3572. 894.08 s [really-safe-money-gen] coverage (1495/1610): Money\.AmountSpec.fromDouble.fails on -Infinity (6 mutations)
  3573. 895.00 s [really-safe-money-gen] coverage (1513/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  3574. 895.14 s [really-safe-money-gen] coverage (1512/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Amount"'s (0 mutations)
  3575. 895.63 s [really-safe-money-gen] coverage (1504/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid Amount"'s (0 mutations)
  3576. 895.96 s [really-safe-money-gen] coverage (1520/1610): Money\.AmountSpec.fromRational.fails on -Infinity (2 mutations)
  3577. 896.87 s [really-safe-money-gen] coverage (1494/1610): Money\.AmountSpec.fromDouble.fails on 7\.123 with quantisation factor 10 (24 mutations)
  3578. 897.13 s [really-safe-money-gen] coverage (1518/1610): Money\.AmountSpec.fromRational.succeeds on 0 (19 mutations)
  3579. 897.57 s [really-safe-money-gen] coverage (1496/1610): Money\.AmountSpec.fromDouble.fails on +Infinity (10 mutations)
  3580. 897.74 s [really-safe-money-gen] coverage (1491/1610): Money\.AmountSpec.fromDouble.fails on really large numbers:1 (10 mutations)
  3581. 898.73 s [really-safe-money-gen] coverage (1505/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  3582. 898.87 s [really-safe-money-gen] coverage (1508/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  3583. 899.27 s [really-safe-money-gen] coverage (1498/1610): Money\.AmountSpec.fromDouble.succeeds on 0 (30 mutations)
  3584. 901.43 s [really-safe-money-gen] coverage (1507/1610): Money\.AmountSpec.Ord Amount."max \:\: (Amount -> Amount -> Amount)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Amount"'s (0 mutations)
  3585. 902.26 s [really-safe-money-gen] coverage (1519/1610): Money\.AmountSpec.fromRational.fails on really large numbers (19 mutations)
  3586. 902.55 s [really-safe-money-gen] coverage (1492/1610): Money\.AmountSpec.fromDouble.fails on NaN (8 mutations)
  3587. 902.76 s [really-safe-money-gen] coverage (1497/1610): Money\.AmountSpec.fromDouble.succeeds on 1 (30 mutations)
  3588. 902.81 s [really-safe-money-gen] coverage (1514/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3589. 903.13 s [really-safe-money-gen] coverage (1489/1610): Money\.AmountSpec.fromDouble.succeeds on 77\.02 with quantisation factor 100 (30 mutations)
  3590. 903.39 s [really-safe-money-gen] coverage (1493/1610): Money\.AmountSpec.fromDouble.fails on -1 (6 mutations)
  3591. 903.84 s [really-safe-money-gen] coverage (1466/1610): Money\.AmountSpec.distribute.GenValid (Distribution Amount).genValid \:\: Gen (Distribution Amount).only generates valid '(Distribution Amount)'s (11 mutations)
  3592. 911.69 s [really-safe-money-gen] coverage (1583/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.roundtrips with Amount\.fromDecimalLiteral (74 mutations)
  3593. 925.19 s [really-safe-money-gen] coverage (1582/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.produces valid decimal literals (52 mutations)
  3594. 926.32 s [really-safe-money-gen] mutation-nix: running mutations
  3595. 936.18 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3596. 936.21 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3597. 936.21 s [really-safe-money-gen] let aa1 = abs a1
  3598. 936.21 s [really-safe-money-gen] aa2 = abs a2
  3599. 936.21 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3600. 936.21 s [really-safe-money-gen] in case (a1, a2) of
  3601. 936.21 s [really-safe-money-gen] - (Positive _, Positive _) -> mr
  3602. 936.21 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3603. 936.21 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3604. 936.21 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3605. 936.21 s [really-safe-money-gen]
  3606. 936.21 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3607. 936.21 s [really-safe-money-gen] -- another currency using a conversion rate.
  3608. 936.21 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3609. 936.21 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3610. 936.21 s [really-safe-money-gen] let aa1 = abs a1
  3611. 936.21 s [really-safe-money-gen] aa2 = abs a2
  3612. 936.21 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3613. 936.21 s [really-safe-money-gen] in case (a1, a2) of
  3614. 936.21 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3615. 936.21 s [really-safe-money-gen] - (Positive _, Negative _) -> Nothing
  3616. 936.21 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3617. 936.21 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3618. 936.21 s [really-safe-money-gen]
  3619. 936.21 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3620. 936.21 s [really-safe-money-gen] -- another currency using a conversion rate.
  3621. 936.21 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3622. 936.22 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3623. 936.22 s [really-safe-money-gen] let aa1 = abs a1
  3624. 936.22 s [really-safe-money-gen] aa2 = abs a2
  3625. 936.22 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3626. 936.22 s [really-safe-money-gen] in case (a1, a2) of
  3627. 936.22 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3628. 936.22 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3629. 936.22 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3630. 936.22 s [really-safe-money-gen] - (Negative _, Negative _) -> mr
  3631. 936.22 s [really-safe-money-gen]
  3632. 936.22 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3633. 936.22 s [really-safe-money-gen] -- another currency using a conversion rate.
  3634. 936.22 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
  3635. 936.22 s [really-safe-money-gen] @@ -588,9 +588,8 @@
  3636. 936.22 s [really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
  3637. 936.22 s [really-safe-money-gen] convert r qf1 a cr qf2 =
  3638. 936.22 s [really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
  3639. 936.22 s [really-safe-money-gen] in case a of
  3640. 936.22 s [really-safe-money-gen] - Positive _ -> (Positive <$> ma, mr)
  3641. 936.22 s [really-safe-money-gen] Negative _ -> (Negative <$> ma, mr)
  3642. 936.22 s [really-safe-money-gen]
  3643. 936.22 s [really-safe-money-gen] -- | Format an account of money without a symbol.
  3644. 936.22 s [really-safe-money-gen] --
  3645. 936.22 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
  3646. 936.22 s [really-safe-money-gen] @@ -588,9 +588,8 @@
  3647. 936.22 s [really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
  3648. 936.22 s [really-safe-money-gen] convert r qf1 a cr qf2 =
  3649. 936.22 s [really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
  3650. 936.22 s [really-safe-money-gen] in case a of
  3651. 936.22 s [really-safe-money-gen] Positive _ -> (Positive <$> ma, mr)
  3652. 936.22 s [really-safe-money-gen] - Negative _ -> (Negative <$> ma, mr)
  3653. 936.22 s [really-safe-money-gen]
  3654. 936.22 s [really-safe-money-gen] -- | Format an account of money without a symbol.
  3655. 936.22 s [really-safe-money-gen] --
  3656. 936.22 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3657. 936.22 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3658. 936.22 s [really-safe-money-gen] let aa1 = abs a1
  3659. 936.22 s [really-safe-money-gen] aa2 = abs a2
  3660. 936.22 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3661. 936.22 s [really-safe-money-gen] in case (a1, a2) of
  3662. 936.22 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3663. 936.22 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3664. 936.22 s [really-safe-money-gen] - (Negative _, Positive _) -> Nothing
  3665. 936.22 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3666. 936.22 s [really-safe-money-gen]
  3667. 936.22 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3668. 936.22 s [really-safe-money-gen] -- another currency using a conversion rate.
  3669. 936.22 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3670. 936.22 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3671. 936.22 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3672. 936.23 s [really-safe-money-gen] multiply factor account =
  3673. 936.23 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3674. 936.23 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3675. 936.23 s [really-safe-money-gen] (EQ, _) -> const zero
  3676. 936.23 s [really-safe-money-gen] (_, EQ) -> const zero
  3677. 936.23 s [really-safe-money-gen] - (GT, GT) -> Positive
  3678. 936.23 s [really-safe-money-gen] (GT, LT) -> Negative
  3679. 936.23 s [really-safe-money-gen] (LT, GT) -> Negative
  3680. 936.23 s [really-safe-money-gen] (LT, LT) -> Positive
  3681. 936.23 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3682. 936.23 s [really-safe-money-gen]
  3683. 936.23 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3684. 936.23 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  3685. 936.23 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3686. 936.23 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3687. 936.23 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3688. 936.23 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3689. 936.23 s [really-safe-money-gen] - if a >= zero
  3690. 936.23 s [really-safe-money-gen] + if a < zero
  3691. 936.23 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3692. 936.23 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3693. 936.23 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3694. 936.23 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  3695. 936.23 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3696. 936.23 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3697. 936.23 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3698. 936.23 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3699. 936.23 s [really-safe-money-gen] - if a >= zero
  3700. 936.23 s [really-safe-money-gen] + if True
  3701. 936.23 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3702. 936.23 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3703. 936.23 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3704. 936.23 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  3705. 936.23 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3706. 936.23 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3707. 936.23 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3708. 936.23 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3709. 936.23 s [really-safe-money-gen] - if a >= zero
  3710. 936.23 s [really-safe-money-gen] + if a <= zero
  3711. 936.23 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3712. 936.23 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3713. 936.23 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3714. 936.24 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3715. 936.24 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3716. 936.24 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3717. 936.24 s [really-safe-money-gen] multiply factor account =
  3718. 936.24 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3719. 936.24 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3720. 936.24 s [really-safe-money-gen] (EQ, _) -> const zero
  3721. 936.24 s [really-safe-money-gen] (_, EQ) -> const zero
  3722. 936.24 s [really-safe-money-gen] (GT, GT) -> Positive
  3723. 936.24 s [really-safe-money-gen] (GT, LT) -> Negative
  3724. 936.24 s [really-safe-money-gen] (LT, GT) -> Negative
  3725. 936.24 s [really-safe-money-gen] - (LT, LT) -> Positive
  3726. 936.24 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3727. 936.24 s [really-safe-money-gen]
  3728. 936.24 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3729. 936.24 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3730. 936.24 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3731. 936.24 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3732. 936.24 s [really-safe-money-gen] multiply factor account =
  3733. 936.24 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3734. 936.24 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3735. 936.24 s [really-safe-money-gen] (EQ, _) -> const zero
  3736. 936.24 s [really-safe-money-gen] (_, EQ) -> const zero
  3737. 936.24 s [really-safe-money-gen] (GT, GT) -> Positive
  3738. 936.24 s [really-safe-money-gen] (GT, LT) -> Negative
  3739. 936.24 s [really-safe-money-gen] - (LT, GT) -> Negative
  3740. 936.24 s [really-safe-money-gen] (LT, LT) -> Positive
  3741. 936.24 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3742. 936.24 s [really-safe-money-gen]
  3743. 936.24 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3744. 936.24 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  3745. 936.24 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3746. 936.24 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3747. 936.24 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3748. 936.24 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3749. 936.24 s [really-safe-money-gen] - if a >= zero
  3750. 936.24 s [really-safe-money-gen] + if False
  3751. 936.24 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3752. 936.24 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3753. 936.24 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3754. 936.24 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23
  3755. 936.24 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3756. 936.24 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3757. 936.24 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3758. 936.24 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3759. 936.24 s [really-safe-money-gen] - if a >= zero
  3760. 936.24 s [really-safe-money-gen] + if not (a >= zero)
  3761. 936.24 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3762. 936.24 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3763. 936.24 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3764. 936.25 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  3765. 936.25 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3766. 936.25 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3767. 936.25 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3768. 936.25 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3769. 936.25 s [really-safe-money-gen] - if a >= zero
  3770. 936.25 s [really-safe-money-gen] + if a < zero
  3771. 936.25 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3772. 936.25 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3773. 936.25 s [really-safe-money-gen]
  3774. 936.25 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23
  3775. 936.25 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3776. 936.25 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3777. 936.25 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3778. 936.25 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3779. 936.25 s [really-safe-money-gen] - if a >= zero
  3780. 936.25 s [really-safe-money-gen] + if not (a >= zero)
  3781. 936.25 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3782. 936.25 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3783. 936.25 s [really-safe-money-gen]
  3784. 936.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  3785. 936.25 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3786. 936.25 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3787. 936.25 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3788. 936.25 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3789. 936.25 s [really-safe-money-gen] - if a >= zero
  3790. 936.25 s [really-safe-money-gen] + if False
  3791. 936.25 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3792. 936.25 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3793. 936.25 s [really-safe-money-gen]
  3794. 936.25 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3795. 936.25 s [really-safe-money-gen] @@ -444,17 +444,16 @@
  3796. 936.25 s [really-safe-money-gen] distribute a f =
  3797. 936.25 s [really-safe-money-gen] let aa = abs a
  3798. 936.25 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3799. 936.25 s [really-safe-money-gen] in case Amount.distribute aa af of
  3800. 936.25 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3801. 936.25 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3802. 936.25 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3803. 936.25 s [really-safe-money-gen] if a >= zero
  3804. 936.25 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3805. 936.25 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3806. 936.25 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3807. 936.25 s [really-safe-money-gen] if a >= zero
  3808. 936.25 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3809. 936.25 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3810. 936.25 s [really-safe-money-gen]
  3811. 936.25 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3812. 936.25 s [really-safe-money-gen]
  3813. 936.25 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3814. 936.25 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3815. 936.25 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3816. 936.25 s [really-safe-money-gen] multiply factor account =
  3817. 936.25 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3818. 936.25 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3819. 936.25 s [really-safe-money-gen] - (EQ, _) -> const zero
  3820. 936.25 s [really-safe-money-gen] (_, EQ) -> const zero
  3821. 936.25 s [really-safe-money-gen] (GT, GT) -> Positive
  3822. 936.25 s [really-safe-money-gen] (GT, LT) -> Negative
  3823. 936.25 s [really-safe-money-gen] (LT, GT) -> Negative
  3824. 936.25 s [really-safe-money-gen] (LT, LT) -> Positive
  3825. 936.25 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3826. 936.25 s [really-safe-money-gen]
  3827. 936.26 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3828. 936.26 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  3829. 936.26 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3830. 936.26 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3831. 936.26 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3832. 936.26 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3833. 936.26 s [really-safe-money-gen] - if a >= zero
  3834. 936.26 s [really-safe-money-gen] + if a > zero
  3835. 936.26 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3836. 936.26 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3837. 936.26 s [really-safe-money-gen]
  3838. 936.26 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3839. 936.26 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3840. 936.26 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3841. 936.26 s [really-safe-money-gen] multiply factor account =
  3842. 936.26 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3843. 936.26 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3844. 936.26 s [really-safe-money-gen] (EQ, _) -> const zero
  3845. 936.26 s [really-safe-money-gen] - (_, EQ) -> const zero
  3846. 936.26 s [really-safe-money-gen] (GT, GT) -> Positive
  3847. 936.26 s [really-safe-money-gen] (GT, LT) -> Negative
  3848. 936.26 s [really-safe-money-gen] (LT, GT) -> Negative
  3849. 936.26 s [really-safe-money-gen] (LT, LT) -> Positive
  3850. 936.26 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3851. 936.26 s [really-safe-money-gen]
  3852. 936.26 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3853. 936.26 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3854. 936.26 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3855. 936.26 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3856. 936.26 s [really-safe-money-gen] multiply factor account =
  3857. 936.26 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3858. 936.26 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3859. 936.26 s [really-safe-money-gen] (EQ, _) -> const zero
  3860. 936.26 s [really-safe-money-gen] (_, EQ) -> const zero
  3861. 936.26 s [really-safe-money-gen] (GT, GT) -> Positive
  3862. 936.26 s [really-safe-money-gen] - (GT, LT) -> Negative
  3863. 936.26 s [really-safe-money-gen] (LT, GT) -> Negative
  3864. 936.26 s [really-safe-money-gen] (LT, LT) -> Positive
  3865. 936.26 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3866. 936.26 s [really-safe-money-gen]
  3867. 936.26 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3868. 936.26 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:421:32-33
  3869. 936.26 s [really-safe-money-gen] @@ -418,7 +418,7 @@
  3870. 936.26 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3871. 936.26 s [really-safe-money-gen] multiply factor account =
  3872. 936.26 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3873. 936.26 s [really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
  3874. 936.26 s [really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
  3875. 936.26 s [really-safe-money-gen] (EQ, _) -> const zero
  3876. 936.26 s [really-safe-money-gen] (_, EQ) -> const zero
  3877. 936.26 s [really-safe-money-gen] (GT, GT) -> Positive
  3878. 936.26 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  3879. 936.26 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3880. 936.26 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3881. 936.26 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3882. 936.26 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3883. 936.26 s [really-safe-money-gen] - if a >= zero
  3884. 936.26 s [really-safe-money-gen] + if True
  3885. 936.26 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3886. 936.26 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3887. 936.26 s [really-safe-money-gen]
  3888. 936.26 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  3889. 936.26 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  3890. 936.26 s [really-safe-money-gen] let aa = abs account
  3891. 936.26 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  3892. 936.26 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  3893. 936.26 s [really-safe-money-gen] func ma r = case compare account zero of
  3894. 936.26 s [really-safe-money-gen] - EQ -> (Just zero, r)
  3895. 936.26 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  3896. 936.26 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  3897. 936.27 s [really-safe-money-gen] in func amount actualFraction
  3898. 936.27 s [really-safe-money-gen]
  3899. 936.27 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  3900. 936.27 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3901. 936.27 s [really-safe-money-gen] @@ -444,17 +444,13 @@
  3902. 936.27 s [really-safe-money-gen] distribute a f =
  3903. 936.27 s [really-safe-money-gen] let aa = abs a
  3904. 936.27 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3905. 936.27 s [really-safe-money-gen] in case Amount.distribute aa af of
  3906. 936.27 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3907. 936.27 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3908. 936.27 s [really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
  3909. 936.27 s [really-safe-money-gen] - if a >= zero
  3910. 936.27 s [really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3911. 943.54 s [really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3912. 943.54 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3913. 943.56 s [really-safe-money-gen] if a >= zero
  3914. 943.56 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3915. 943.56 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3916. 943.56 s [really-safe-money-gen]
  3917. 943.56 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3918. 943.56 s [really-safe-money-gen]
  3919. 943.56 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Account.hs:523:16-25
  3920. 943.56 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  3921. 943.57 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  3922. 943.57 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  3923. 943.57 s [really-safe-money-gen] func ma r = case compare account zero of
  3924. 943.57 s [really-safe-money-gen] - EQ -> (Just zero, r)
  3925. 943.57 s [really-safe-money-gen] + EQ -> (Nothing, r)
  3926. 943.57 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  3927. 943.57 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  3928. 943.57 s [really-safe-money-gen] in func amount actualFraction
  3929. 943.57 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3930. 943.57 s [really-safe-money-gen] @@ -444,17 +444,13 @@
  3931. 943.57 s [really-safe-money-gen] distribute a f =
  3932. 943.57 s [really-safe-money-gen] let aa = abs a
  3933. 943.57 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3934. 943.57 s [really-safe-money-gen] in case Amount.distribute aa af of
  3935. 943.57 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3936. 943.57 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3937. 943.57 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3938. 943.57 s [really-safe-money-gen] if a >= zero
  3939. 943.57 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3940. 943.57 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3941. 943.57 s [really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3942. 943.57 s [really-safe-money-gen] - if a >= zero
  3943. 943.57 s [really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3944. 943.58 s [really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3945. 943.58 s [really-safe-money-gen]
  3946. 943.58 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3947. 943.58 s [really-safe-money-gen]
  3948. 943.58 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18
  3949. 943.58 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  3950. 943.58 s [really-safe-money-gen] fraction rounding account f =
  3951. 943.58 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3952. 943.58 s [really-safe-money-gen] ro =
  3953. 943.58 s [really-safe-money-gen] - if f >= 0
  3954. 943.58 s [really-safe-money-gen] + if f >= 1
  3955. 943.58 s [really-safe-money-gen] then rounding
  3956. 943.58 s [really-safe-money-gen] else case rounding of
  3957. 943.58 s [really-safe-money-gen] RoundUp -> RoundDown
  3958. 943.58 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  3959. 943.58 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  3960. 943.58 s [really-safe-money-gen] fraction rounding account f =
  3961. 943.58 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3962. 943.58 s [really-safe-money-gen] ro =
  3963. 943.58 s [really-safe-money-gen] - if f >= 0
  3964. 943.58 s [really-safe-money-gen] + if f <= 0
  3965. 943.58 s [really-safe-money-gen] then rounding
  3966. 943.58 s [really-safe-money-gen] else case rounding of
  3967. 943.58 s [really-safe-money-gen] RoundUp -> RoundDown
  3968. 943.58 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  3969. 943.58 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  3970. 943.58 s [really-safe-money-gen] fraction rounding account f =
  3971. 943.58 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3972. 943.58 s [really-safe-money-gen] ro =
  3973. 943.58 s [really-safe-money-gen] - if f >= 0
  3974. 943.58 s [really-safe-money-gen] + if f > 0
  3975. 943.58 s [really-safe-money-gen] then rounding
  3976. 943.58 s [really-safe-money-gen] else case rounding of
  3977. 943.58 s [really-safe-money-gen] RoundUp -> RoundDown
  3978. 943.58 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  3979. 943.59 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  3980. 943.59 s [really-safe-money-gen] fraction rounding account f =
  3981. 943.59 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3982. 943.59 s [really-safe-money-gen] ro =
  3983. 943.59 s [really-safe-money-gen] - if f >= 0
  3984. 943.59 s [really-safe-money-gen] + if False
  3985. 943.59 s [really-safe-money-gen] then rounding
  3986. 943.59 s [really-safe-money-gen] else case rounding of
  3987. 943.59 s [really-safe-money-gen] RoundUp -> RoundDown
  3988. 943.59 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  3989. 943.59 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  3990. 943.59 s [really-safe-money-gen] fraction rounding account f =
  3991. 943.59 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3992. 943.59 s [really-safe-money-gen] ro =
  3993. 943.59 s [really-safe-money-gen] - if f >= 0
  3994. 943.59 s [really-safe-money-gen] + if True
  3995. 943.59 s [really-safe-money-gen] then rounding
  3996. 943.59 s [really-safe-money-gen] else case rounding of
  3997. 943.59 s [really-safe-money-gen] RoundUp -> RoundDown
  3998. 943.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  3999. 943.59 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  4000. 943.59 s [really-safe-money-gen] let aa = abs account
  4001. 943.59 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  4002. 943.59 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  4003. 943.59 s [really-safe-money-gen] func ma r = case compare account zero of
  4004. 943.59 s [really-safe-money-gen] EQ -> (Just zero, r)
  4005. 943.59 s [really-safe-money-gen] - GT -> (Positive <$> ma, r)
  4006. 943.59 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  4007. 943.59 s [really-safe-money-gen] in func amount actualFraction
  4008. 943.59 s [really-safe-money-gen]
  4009. 943.59 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  4010. 943.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4011. 943.59 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4012. 943.59 s [really-safe-money-gen] ro =
  4013. 943.59 s [really-safe-money-gen] if f >= 0
  4014. 943.59 s [really-safe-money-gen] then rounding
  4015. 943.59 s [really-safe-money-gen] else case rounding of
  4016. 943.59 s [really-safe-money-gen] - RoundUp -> RoundDown
  4017. 943.60 s [really-safe-money-gen] RoundDown -> RoundUp
  4018. 943.60 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4019. 943.60 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4020. 943.60 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4021. 943.60 s [really-safe-money-gen] in if f >= 0
  4022. 943.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4023. 943.60 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4024. 943.60 s [really-safe-money-gen] ro =
  4025. 943.60 s [really-safe-money-gen] if f >= 0
  4026. 943.60 s [really-safe-money-gen] then rounding
  4027. 943.60 s [really-safe-money-gen] else case rounding of
  4028. 943.60 s [really-safe-money-gen] RoundUp -> RoundDown
  4029. 943.60 s [really-safe-money-gen] RoundDown -> RoundUp
  4030. 943.60 s [really-safe-money-gen] - RoundNearest -> RoundNearest
  4031. 943.60 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4032. 943.60 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4033. 943.60 s [really-safe-money-gen] in if f >= 0
  4034. 943.60 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  4035. 943.60 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4036. 943.60 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4037. 943.60 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4038. 943.60 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4039. 943.60 s [really-safe-money-gen] - if a >= zero
  4040. 943.60 s [really-safe-money-gen] + if a > zero
  4041. 943.60 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4042. 943.60 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4043. 943.60 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4044. 943.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4045. 943.60 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4046. 943.60 s [really-safe-money-gen] ro =
  4047. 943.60 s [really-safe-money-gen] if f >= 0
  4048. 943.60 s [really-safe-money-gen] then rounding
  4049. 943.60 s [really-safe-money-gen] else case rounding of
  4050. 943.60 s [really-safe-money-gen] RoundUp -> RoundDown
  4051. 943.60 s [really-safe-money-gen] - RoundDown -> RoundUp
  4052. 943.60 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4053. 943.60 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4054. 943.60 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4055. 943.60 s [really-safe-money-gen] in if f >= 0
  4056. 943.60 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16
  4057. 943.60 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4058. 943.60 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4059. 943.60 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4060. 943.60 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4061. 943.61 s [really-safe-money-gen] - in if f >= 0
  4062. 943.61 s [really-safe-money-gen] + in if f >= 1
  4063. 943.61 s [really-safe-money-gen] then (ma, r)
  4064. 943.61 s [really-safe-money-gen] else (negate <$> ma, -r)
  4065. 943.61 s [really-safe-money-gen]
  4066. 943.61 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  4067. 943.61 s [really-safe-money-gen] @@ -444,17 +444,16 @@
  4068. 943.61 s [really-safe-money-gen] distribute a f =
  4069. 943.61 s [really-safe-money-gen] let aa = abs a
  4070. 943.61 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  4071. 943.61 s [really-safe-money-gen] in case Amount.distribute aa af of
  4072. 943.61 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4073. 943.61 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  4074. 943.61 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4075. 943.61 s [really-safe-money-gen] if a >= zero
  4076. 943.61 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4077. 943.61 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4078. 943.61 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4079. 943.61 s [really-safe-money-gen] if a >= zero
  4080. 943.61 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4081. 943.61 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4082. 943.61 s [really-safe-money-gen]
  4083. 943.61 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  4084. 943.61 s [really-safe-money-gen]
  4085. 943.61 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4086. 949.14 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4087. 949.16 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4088. 949.16 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4089. 949.17 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4090. 949.17 s [really-safe-money-gen] - in if f >= 0
  4091. 949.17 s [really-safe-money-gen] + in if f < 0
  4092. 949.17 s [really-safe-money-gen] then (ma, r)
  4093. 949.17 s [really-safe-money-gen] else (negate <$> ma, -r)
  4094. 949.17 s [really-safe-money-gen]
  4095. 949.17 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  4096. 949.17 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4097. 949.17 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4098. 949.17 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4099. 949.17 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4100. 949.17 s [really-safe-money-gen] - in if f >= 0
  4101. 949.17 s [really-safe-money-gen] + in if True
  4102. 949.17 s [really-safe-money-gen] then (ma, r)
  4103. 949.17 s [really-safe-money-gen] else (negate <$> ma, -r)
  4104. 949.17 s [really-safe-money-gen]
  4105. 949.17 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4106. 949.17 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4107. 949.17 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4108. 949.17 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4109. 949.17 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4110. 949.17 s [really-safe-money-gen] - in if f >= 0
  4111. 949.18 s [really-safe-money-gen] + in if f <= 0
  4112. 949.18 s [really-safe-money-gen] then (ma, r)
  4113. 949.18 s [really-safe-money-gen] else (negate <$> ma, -r)
  4114. 949.18 s [really-safe-money-gen]
  4115. 949.18 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4116. 949.18 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4117. 949.18 s [really-safe-money-gen] fraction rounding account f =
  4118. 949.18 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4119. 949.18 s [really-safe-money-gen] ro =
  4120. 949.18 s [really-safe-money-gen] - if f >= 0
  4121. 949.18 s [really-safe-money-gen] + if f < 0
  4122. 949.18 s [really-safe-money-gen] then rounding
  4123. 949.18 s [really-safe-money-gen] else case rounding of
  4124. 949.18 s [really-safe-money-gen] RoundUp -> RoundDown
  4125. 949.18 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4126. 949.18 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4127. 949.18 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4128. 949.18 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4129. 949.18 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4130. 949.18 s [really-safe-money-gen] - in if f >= 0
  4131. 949.18 s [really-safe-money-gen] + in if f > 0
  4132. 949.18 s [really-safe-money-gen] then (ma, r)
  4133. 949.18 s [really-safe-money-gen] else (negate <$> ma, -r)
  4134. 949.18 s [really-safe-money-gen]
  4135. 949.18 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  4136. 949.18 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4137. 949.18 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4138. 949.19 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4139. 949.19 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4140. 949.19 s [really-safe-money-gen] - if a >= zero
  4141. 949.19 s [really-safe-money-gen] + if a <= zero
  4142. 949.19 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4143. 949.19 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4144. 949.19 s [really-safe-money-gen]
  4145. 949.19 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16
  4146. 949.19 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4147. 949.19 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4148. 949.19 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4149. 949.19 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4150. 949.19 s [really-safe-money-gen] - in if f >= 0
  4151. 949.19 s [really-safe-money-gen] + in if not (f >= 0)
  4152. 949.19 s [really-safe-money-gen] then (ma, r)
  4153. 949.19 s [really-safe-money-gen] else (negate <$> ma, -r)
  4154. 949.19 s [really-safe-money-gen]
  4155. 949.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  4156. 949.19 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4157. 949.19 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4158. 949.19 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4159. 949.19 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4160. 949.19 s [really-safe-money-gen] - in if f >= 0
  4161. 949.19 s [really-safe-money-gen] + in if False
  4162. 949.19 s [really-safe-money-gen] then (ma, r)
  4163. 949.19 s [really-safe-money-gen] else (negate <$> ma, -r)
  4164. 949.19 s [really-safe-money-gen]
  4165. 949.19 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
  4166. 949.19 s [really-safe-money-gen] @@ -208,9 +208,8 @@
  4167. 949.19 s [really-safe-money-gen] -- (-3) % 20
  4168. 949.19 s [really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
  4169. 949.19 s [really-safe-money-gen] toRational quantisationFactor account =
  4170. 949.19 s [really-safe-money-gen] let f = case account of
  4171. 949.19 s [really-safe-money-gen] Positive _ -> id
  4172. 949.19 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4173. 949.19 s [really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
  4174. 949.19 s [really-safe-money-gen]
  4175. 949.19 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4176. 949.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4177. 949.20 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4178. 949.20 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4179. 949.20 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4180. 949.20 s [really-safe-money-gen] let d' = Prelude.abs d
  4181. 949.20 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4182. 949.20 s [really-safe-money-gen] + f = if d < 0 then Positive else Negative
  4183. 949.20 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4184. 949.20 s [really-safe-money-gen]
  4185. 949.20 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4186. 949.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
  4187. 949.20 s [really-safe-money-gen] @@ -168,9 +168,8 @@
  4188. 949.20 s [really-safe-money-gen] -- -0.25
  4189. 949.20 s [really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
  4190. 949.20 s [really-safe-money-gen] toDouble quantisationFactor account =
  4191. 949.20 s [really-safe-money-gen] let f = case account of
  4192. 949.20 s [really-safe-money-gen] Positive _ -> id
  4193. 949.20 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4194. 949.20 s [really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
  4195. 949.20 s [really-safe-money-gen]
  4196. 949.20 s [really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
  4197. 949.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  4198. 949.20 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  4199. 949.20 s [really-safe-money-gen] let aa = abs account
  4200. 949.20 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  4201. 949.20 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  4202. 949.20 s [really-safe-money-gen] func ma r = case compare account zero of
  4203. 949.20 s [really-safe-money-gen] EQ -> (Just zero, r)
  4204. 949.20 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  4205. 949.20 s [really-safe-money-gen] - LT -> (Negative <$> ma, r)
  4206. 949.20 s [really-safe-money-gen] in func amount actualFraction
  4207. 949.20 s [really-safe-money-gen]
  4208. 949.20 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  4209. 949.21 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
  4210. 949.21 s [really-safe-money-gen] @@ -152,9 +152,8 @@
  4211. 949.21 s [really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
  4212. 949.21 s [really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
  4213. 949.21 s [really-safe-money-gen] toMinimalQuantisations account =
  4214. 949.21 s [really-safe-money-gen] let f = case account of
  4215. 949.21 s [really-safe-money-gen] - Positive _ -> id
  4216. 949.21 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4217. 949.21 s [really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
  4218. 949.21 s [really-safe-money-gen]
  4219. 949.21 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  4220. 949.21 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4221. 949.21 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4222. 949.21 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4223. 949.21 s [really-safe-money-gen] fromRational quantisationFactor r =
  4224. 949.21 s [really-safe-money-gen] let r' = Prelude.abs r
  4225. 949.21 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4226. 949.21 s [really-safe-money-gen] + f = if r < 0 then Positive else Negative
  4227. 949.21 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4228. 949.21 s [really-safe-money-gen]
  4229. 949.21 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4230. 949.21 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20
  4231. 949.21 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4232. 949.21 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4233. 949.21 s [really-safe-money-gen] fromRational quantisationFactor r =
  4234. 949.21 s [really-safe-money-gen] let r' = Prelude.abs r
  4235. 949.21 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4236. 949.21 s [really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
  4237. 949.21 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4238. 949.21 s [really-safe-money-gen]
  4239. 949.21 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4240. 949.21 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  4241. 949.22 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4242. 949.22 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4243. 949.22 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4244. 949.22 s [really-safe-money-gen] let d' = Prelude.abs d
  4245. 949.22 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4246. 949.22 s [really-safe-money-gen] + f = if False then Positive else Negative
  4247. 949.22 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4248. 949.22 s [really-safe-money-gen]
  4249. 949.22 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4250. 949.22 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
  4251. 949.22 s [really-safe-money-gen] @@ -168,9 +168,8 @@
  4252. 949.22 s [really-safe-money-gen] -- -0.25
  4253. 949.22 s [really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
  4254. 949.22 s [really-safe-money-gen] toDouble quantisationFactor account =
  4255. 949.22 s [really-safe-money-gen] let f = case account of
  4256. 949.22 s [really-safe-money-gen] - Positive _ -> id
  4257. 949.22 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4258. 949.22 s [really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
  4259. 949.22 s [really-safe-money-gen]
  4260. 949.22 s [really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
  4261. 949.22 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20
  4262. 949.22 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4263. 949.22 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4264. 949.22 s [really-safe-money-gen] fromRational quantisationFactor r =
  4265. 949.22 s [really-safe-money-gen] let r' = Prelude.abs r
  4266. 949.22 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4267. 949.22 s [really-safe-money-gen] + f = if r >= 1 then Positive else Negative
  4268. 953.40 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4269. 953.40 s [really-safe-money-gen]
  4270. 953.40 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4271. 953.40 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4272. 953.40 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4273. 953.40 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4274. 953.40 s [really-safe-money-gen] a :: Integer
  4275. 953.40 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4276. 953.40 s [really-safe-money-gen] - in if a > maxBoundI
  4277. 953.40 s [really-safe-money-gen] + in if a <= maxBoundI
  4278. 953.40 s [really-safe-money-gen] then Nothing
  4279. 953.40 s [really-safe-money-gen] else
  4280. 953.40 s [really-safe-money-gen] let w :: Word64
  4281. 953.40 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  4282. 953.40 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4283. 953.40 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4284. 953.40 s [really-safe-money-gen] fromRational quantisationFactor r =
  4285. 953.40 s [really-safe-money-gen] let r' = Prelude.abs r
  4286. 953.40 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4287. 953.40 s [really-safe-money-gen] + f = if True then Positive else Negative
  4288. 953.40 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4289. 953.40 s [really-safe-money-gen]
  4290. 953.40 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4291. 953.40 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18
  4292. 953.40 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4293. 953.40 s [really-safe-money-gen] fraction rounding account f =
  4294. 953.41 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4295. 953.41 s [really-safe-money-gen] ro =
  4296. 953.41 s [really-safe-money-gen] - if f >= 0
  4297. 953.41 s [really-safe-money-gen] + if not (f >= 0)
  4298. 953.41 s [really-safe-money-gen] then rounding
  4299. 953.41 s [really-safe-money-gen] else case rounding of
  4300. 953.41 s [really-safe-money-gen] RoundUp -> RoundDown
  4301. 953.41 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26
  4302. 953.41 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4303. 953.41 s [really-safe-money-gen] amount :: Amount
  4304. 953.41 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4305. 953.41 s [really-safe-money-gen] in Just $
  4306. 953.41 s [really-safe-money-gen] - if i >= 0
  4307. 953.41 s [really-safe-money-gen] + if not (i >= 0)
  4308. 953.41 s [really-safe-money-gen] then Positive amount
  4309. 953.41 s [really-safe-money-gen] else Negative amount
  4310. 953.41 s [really-safe-money-gen]
  4311. 953.41 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:341:11-18
  4312. 953.41 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  4313. 953.41 s [really-safe-money-gen] i2 :: Integer
  4314. 953.41 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4315. 953.41 s [really-safe-money-gen] r :: Integer
  4316. 953.41 s [really-safe-money-gen] - r = i1 + i2
  4317. 953.41 s [really-safe-money-gen] + r = i1 - i2
  4318. 953.41 s [really-safe-money-gen] in fromMinimalQuantisations r
  4319. 953.41 s [really-safe-money-gen]
  4320. 953.41 s [really-safe-money-gen] -- | Add a number of accounts of money together.
  4321. 953.41 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:341:11-18
  4322. 953.41 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  4323. 953.41 s [really-safe-money-gen] i2 :: Integer
  4324. 953.41 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4325. 953.41 s [really-safe-money-gen] r :: Integer
  4326. 953.41 s [really-safe-money-gen] - r = i1 + i2
  4327. 953.41 s [really-safe-money-gen] + r = i1 * i2
  4328. 953.41 s [really-safe-money-gen] in fromMinimalQuantisations r
  4329. 953.41 s [really-safe-money-gen]
  4330. 953.41 s [really-safe-money-gen] -- | Add a number of accounts of money together.
  4331. 953.42 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:378:11-18
  4332. 953.42 s [really-safe-money-gen] @@ -375,7 +375,7 @@
  4333. 953.42 s [really-safe-money-gen] i2 :: Integer
  4334. 953.42 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4335. 953.42 s [really-safe-money-gen] r :: Integer
  4336. 953.42 s [really-safe-money-gen] - r = i1 - i2
  4337. 953.42 s [really-safe-money-gen] + r = i1 + i2
  4338. 953.42 s [really-safe-money-gen] in fromMinimalQuantisations r
  4339. 953.42 s [really-safe-money-gen]
  4340. 953.42 s [really-safe-money-gen] -- | The absolute value of the account
  4341. 953.42 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:378:11-18
  4342. 953.42 s [really-safe-money-gen] @@ -375,7 +375,7 @@
  4343. 953.42 s [really-safe-money-gen] i2 :: Integer
  4344. 953.42 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4345. 953.42 s [really-safe-money-gen] r :: Integer
  4346. 953.42 s [really-safe-money-gen] - r = i1 - i2
  4347. 953.42 s [really-safe-money-gen] + r = i1 * i2
  4348. 953.42 s [really-safe-money-gen] in fromMinimalQuantisations r
  4349. 953.42 s [really-safe-money-gen]
  4350. 953.42 s [really-safe-money-gen] -- | The absolute value of the account
  4351. 953.42 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4352. 953.42 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4353. 953.42 s [really-safe-money-gen] amount :: Amount
  4354. 953.42 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4355. 953.42 s [really-safe-money-gen] in Just $
  4356. 953.42 s [really-safe-money-gen] - if i >= 0
  4357. 953.42 s [really-safe-money-gen] + if i < 0
  4358. 953.42 s [really-safe-money-gen] then Positive amount
  4359. 953.42 s [really-safe-money-gen] else Negative amount
  4360. 953.42 s [really-safe-money-gen]
  4361. 953.42 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  4362. 953.42 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  4363. 953.42 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  4364. 953.42 s [really-safe-money-gen] where
  4365. 953.42 s [really-safe-money-gen] go = \case
  4366. 953.42 s [really-safe-money-gen] - Nothing -> Just True
  4367. 953.42 s [really-safe-money-gen] + Nothing -> Just False
  4368. 953.42 s [really-safe-money-gen] s -> s
  4369. 953.42 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  4370. 953.42 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4371. 953.42 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4372. 953.43 s [really-safe-money-gen] let currentDigits :: Word8
  4373. 953.43 s [really-safe-money-gen] currentDigits = digits dl
  4374. 953.43 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4375. 953.43 s [really-safe-money-gen] + in if wantedDigits < currentDigits
  4376. 953.43 s [really-safe-money-gen] then dl
  4377. 953.43 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4378. 953.43 s [really-safe-money-gen] where
  4379. 953.43 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  4380. 953.43 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4381. 953.43 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4382. 953.43 s [really-safe-money-gen] let currentDigits :: Word8
  4383. 953.43 s [really-safe-money-gen] currentDigits = digits dl
  4384. 953.43 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4385. 953.43 s [really-safe-money-gen] + in if wantedDigits > currentDigits
  4386. 953.43 s [really-safe-money-gen] then dl
  4387. 953.43 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4388. 953.43 s [really-safe-money-gen] where
  4389. 953.43 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  4390. 953.43 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4391. 953.43 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4392. 953.43 s [really-safe-money-gen] let currentDigits :: Word8
  4393. 953.43 s [really-safe-money-gen] currentDigits = digits dl
  4394. 953.43 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4395. 953.43 s [really-safe-money-gen] + in if wantedDigits >= currentDigits
  4396. 953.43 s [really-safe-money-gen] then dl
  4397. 953.43 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4398. 953.43 s [really-safe-money-gen] where
  4399. 953.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  4400. 953.43 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4401. 953.43 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4402. 953.43 s [really-safe-money-gen] let currentDigits :: Word8
  4403. 953.43 s [really-safe-money-gen] currentDigits = digits dl
  4404. 953.43 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4405. 953.43 s [really-safe-money-gen] + in if True
  4406. 953.43 s [really-safe-money-gen] then dl
  4407. 953.43 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4408. 953.43 s [really-safe-money-gen] where
  4409. 953.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  4410. 953.43 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4411. 953.43 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4412. 953.43 s [really-safe-money-gen] let currentDigits :: Word8
  4413. 953.43 s [really-safe-money-gen] currentDigits = digits dl
  4414. 953.43 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4415. 953.43 s [really-safe-money-gen] + in if False
  4416. 953.43 s [really-safe-money-gen] then dl
  4417. 953.43 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4418. 953.43 s [really-safe-money-gen] where
  4419. 953.43 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  4420. 953.44 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4421. 953.44 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4422. 953.44 s [really-safe-money-gen] let currentDigits :: Word8
  4423. 953.44 s [really-safe-money-gen] currentDigits = digits dl
  4424. 953.44 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4425. 953.44 s [really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
  4426. 953.44 s [really-safe-money-gen] then dl
  4427. 953.44 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4428. 953.44 s [really-safe-money-gen] where
  4429. 953.44 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  4430. 953.44 s [really-safe-money-gen] @@ -367,7 +367,7 @@
  4431. 953.44 s [really-safe-money-gen] currentDigits = digits dl
  4432. 953.44 s [really-safe-money-gen] in if wantedDigits <= currentDigits
  4433. 953.44 s [really-safe-money-gen] then dl
  4434. 953.44 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  4435. 953.44 s [really-safe-money-gen] + else increaseDigits (wantedDigits + currentDigits) dl
  4436. 953.44 s [really-safe-money-gen] where
  4437. 953.44 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4438. 953.44 s [really-safe-money-gen] increaseDigits 0 = id
  4439. 953.44 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  4440. 953.44 s [really-safe-money-gen] @@ -367,7 +367,7 @@
  4441. 953.44 s [really-safe-money-gen] currentDigits = digits dl
  4442. 953.44 s [really-safe-money-gen] in if wantedDigits <= currentDigits
  4443. 953.44 s [really-safe-money-gen] then dl
  4444. 953.44 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  4445. 953.44 s [really-safe-money-gen] + else increaseDigits (wantedDigits * currentDigits) dl
  4446. 953.44 s [really-safe-money-gen] where
  4447. 953.44 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4448. 953.44 s [really-safe-money-gen] increaseDigits 0 = id
  4449. 953.44 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  4450. 953.44 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4451. 953.44 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4452. 953.44 s [really-safe-money-gen] increaseDigits 0 = id
  4453. 953.44 s [really-safe-money-gen] increaseDigits w = \case
  4454. 953.44 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4455. 958.40 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  4456. 958.48 s [really-safe-money-gen]
  4457. 958.48 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4458. 958.48 s [really-safe-money-gen] --
  4459. 958.48 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  4460. 958.48 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4461. 958.48 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4462. 958.48 s [really-safe-money-gen] increaseDigits 0 = id
  4463. 958.49 s [really-safe-money-gen] increaseDigits w = \case
  4464. 958.49 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4465. 958.49 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  4466. 958.49 s [really-safe-money-gen]
  4467. 958.49 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4468. 958.49 s [really-safe-money-gen] --
  4469. 958.49 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  4470. 958.49 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4471. 958.49 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4472. 958.49 s [really-safe-money-gen] increaseDigits 0 = id
  4473. 958.49 s [really-safe-money-gen] increaseDigits w = \case
  4474. 958.49 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4475. 958.49 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m + 10) (succ e))
  4476. 958.49 s [really-safe-money-gen]
  4477. 958.49 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4478. 958.49 s [really-safe-money-gen] --
  4479. 958.49 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  4480. 958.49 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4481. 958.49 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4482. 958.49 s [really-safe-money-gen] increaseDigits 0 = id
  4483. 958.49 s [really-safe-money-gen] increaseDigits w = \case
  4484. 958.49 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4485. 958.49 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m - 10) (succ e))
  4486. 958.49 s [really-safe-money-gen]
  4487. 958.49 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4488. 958.49 s [really-safe-money-gen] --
  4489. 958.49 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  4490. 958.49 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4491. 958.49 s [really-safe-money-gen] pure $ fromIntegral n
  4492. 958.50 s [really-safe-money-gen]
  4493. 958.50 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4494. 958.50 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4495. 958.50 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  4496. 958.50 s [really-safe-money-gen]
  4497. 958.50 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4498. 958.50 s [really-safe-money-gen] signSignum = \case
  4499. 958.50 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  4500. 958.50 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4501. 958.50 s [really-safe-money-gen] pure $ fromIntegral n
  4502. 958.50 s [really-safe-money-gen]
  4503. 958.50 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4504. 958.50 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4505. 958.50 s [really-safe-money-gen] +numSign a = if a < 0 then Nothing else Just False
  4506. 958.50 s [really-safe-money-gen]
  4507. 958.50 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4508. 958.50 s [really-safe-money-gen] signSignum = \case
  4509. 958.50 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  4510. 958.50 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4511. 958.50 s [really-safe-money-gen] pure $ fromIntegral n
  4512. 958.50 s [really-safe-money-gen]
  4513. 958.50 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4514. 958.50 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4515. 958.50 s [really-safe-money-gen] +numSign a = if a <= 0 then Nothing else Just False
  4516. 958.50 s [really-safe-money-gen]
  4517. 958.50 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4518. 958.50 s [really-safe-money-gen] signSignum = \case
  4519. 958.50 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  4520. 958.50 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4521. 958.50 s [really-safe-money-gen] pure $ fromIntegral n
  4522. 958.50 s [really-safe-money-gen]
  4523. 958.50 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4524. 958.50 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4525. 958.50 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  4526. 958.50 s [really-safe-money-gen]
  4527. 958.50 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4528. 958.50 s [really-safe-money-gen] signSignum = \case
  4529. 958.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  4530. 958.50 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4531. 958.51 s [really-safe-money-gen] pure $ fromIntegral n
  4532. 958.51 s [really-safe-money-gen]
  4533. 958.51 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4534. 958.51 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4535. 958.51 s [really-safe-money-gen] +numSign a = if True then Nothing else Just False
  4536. 958.51 s [really-safe-money-gen]
  4537. 958.51 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4538. 958.51 s [really-safe-money-gen] signSignum = \case
  4539. 958.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  4540. 958.51 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4541. 958.51 s [really-safe-money-gen] pure $ fromIntegral n
  4542. 958.51 s [really-safe-money-gen]
  4543. 958.51 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4544. 958.51 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4545. 958.51 s [really-safe-money-gen] +numSign a = if False then Nothing else Just False
  4546. 958.51 s [really-safe-money-gen]
  4547. 958.51 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4548. 958.51 s [really-safe-money-gen] signSignum = \case
  4549. 958.51 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  4550. 958.51 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4551. 958.51 s [really-safe-money-gen] pure $ fromIntegral n
  4552. 958.51 s [really-safe-money-gen]
  4553. 958.51 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4554. 958.51 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4555. 958.51 s [really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
  4556. 958.51 s [really-safe-money-gen]
  4557. 958.51 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4558. 958.51 s [really-safe-money-gen] signSignum = \case
  4559. 958.51 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  4560. 958.51 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4561. 958.51 s [really-safe-money-gen] pure $ fromIntegral n
  4562. 958.51 s [really-safe-money-gen]
  4563. 958.51 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4564. 958.51 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4565. 958.51 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
  4566. 958.51 s [really-safe-money-gen]
  4567. 958.51 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4568. 958.51 s [really-safe-money-gen] signSignum = \case
  4569. 958.51 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  4570. 958.51 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4571. 958.52 s [really-safe-money-gen] pure $ fromIntegral n
  4572. 958.52 s [really-safe-money-gen]
  4573. 958.52 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4574. 958.52 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4575. 958.52 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Nothing
  4576. 958.52 s [really-safe-money-gen]
  4577. 958.52 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4578. 958.52 s [really-safe-money-gen] signSignum = \case
  4579. 958.52 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  4580. 958.52 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4581. 958.52 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4582. 958.52 s [really-safe-money-gen] toInt dl = do
  4583. 958.52 s [really-safe-money-gen] n <- toInteger dl
  4584. 958.52 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4585. 958.52 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  4586. 958.52 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4587. 958.52 s [really-safe-money-gen] pure $ fromIntegral n
  4588. 958.52 s [really-safe-money-gen]
  4589. 958.52 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  4590. 958.52 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4591. 958.52 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4592. 958.52 s [really-safe-money-gen] toInt dl = do
  4593. 958.52 s [really-safe-money-gen] n <- toInteger dl
  4594. 958.52 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4595. 958.52 s [really-safe-money-gen] + guard $ n >= fromIntegral (maxBound :: Int)
  4596. 958.52 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4597. 958.52 s [really-safe-money-gen] pure $ fromIntegral n
  4598. 958.52 s [really-safe-money-gen]
  4599. 958.52 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  4600. 958.52 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4601. 958.52 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4602. 958.52 s [really-safe-money-gen] toInt dl = do
  4603. 958.52 s [really-safe-money-gen] n <- toInteger dl
  4604. 958.52 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4605. 958.52 s [really-safe-money-gen] + guard $ n > fromIntegral (maxBound :: Int)
  4606. 958.52 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4607. 958.52 s [really-safe-money-gen] pure $ fromIntegral n
  4608. 958.53 s [really-safe-money-gen]
  4609. 958.53 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  4610. 958.53 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4611. 958.53 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4612. 958.53 s [really-safe-money-gen] toInt dl = do
  4613. 958.53 s [really-safe-money-gen] n <- toInteger dl
  4614. 958.53 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4615. 958.53 s [really-safe-money-gen] + guard $ False
  4616. 958.53 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4617. 958.53 s [really-safe-money-gen] pure $ fromIntegral n
  4618. 958.53 s [really-safe-money-gen]
  4619. 958.53 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4620. 958.53 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4621. 958.53 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4622. 958.53 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4623. 958.53 s [really-safe-money-gen] let d' = Prelude.abs d
  4624. 958.53 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4625. 958.53 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  4626. 958.53 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4627. 958.53 s [really-safe-money-gen]
  4628. 958.53 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4629. 958.53 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23
  4630. 958.53 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4631. 958.53 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4632. 958.53 s [really-safe-money-gen] a :: Integer
  4633. 958.53 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4634. 958.53 s [really-safe-money-gen] - in if a > maxBoundI
  4635. 958.53 s [really-safe-money-gen] + in if not (a > maxBoundI)
  4636. 962.88 s [really-safe-money-gen] then Nothing
  4637. 962.88 s [really-safe-money-gen] else
  4638. 962.88 s [really-safe-money-gen] let w :: Word64
  4639. 962.88 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4640. 962.88 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4641. 962.88 s [really-safe-money-gen] amount :: Amount
  4642. 962.88 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4643. 962.88 s [really-safe-money-gen] in Just $
  4644. 962.88 s [really-safe-money-gen] - if i >= 0
  4645. 962.88 s [really-safe-money-gen] + if i <= 0
  4646. 962.88 s [really-safe-money-gen] then Positive amount
  4647. 962.88 s [really-safe-money-gen] else Negative amount
  4648. 962.88 s [really-safe-money-gen]
  4649. 962.89 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  4650. 962.89 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4651. 962.89 s [really-safe-money-gen] toInt dl = do
  4652. 962.89 s [really-safe-money-gen] n <- toInteger dl
  4653. 962.89 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4654. 962.89 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4655. 962.89 s [really-safe-money-gen] + guard $ n < fromIntegral (minBound :: Int)
  4656. 962.89 s [really-safe-money-gen] pure $ fromIntegral n
  4657. 962.89 s [really-safe-money-gen]
  4658. 962.89 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4659. 962.89 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  4660. 962.89 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4661. 962.89 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4662. 962.89 s [really-safe-money-gen] toInt dl = do
  4663. 962.89 s [really-safe-money-gen] n <- toInteger dl
  4664. 962.89 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4665. 962.89 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
  4666. 962.89 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4667. 962.89 s [really-safe-money-gen] pure $ fromIntegral n
  4668. 962.89 s [really-safe-money-gen]
  4669. 962.89 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  4670. 962.89 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4671. 962.89 s [really-safe-money-gen] toInt dl = do
  4672. 962.89 s [really-safe-money-gen] n <- toInteger dl
  4673. 962.89 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4674. 962.89 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4675. 962.89 s [really-safe-money-gen] + guard $ n <= fromIntegral (minBound :: Int)
  4676. 962.89 s [really-safe-money-gen] pure $ fromIntegral n
  4677. 962.89 s [really-safe-money-gen]
  4678. 962.89 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4679. 962.89 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  4680. 962.89 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4681. 962.89 s [really-safe-money-gen] toInt dl = do
  4682. 962.89 s [really-safe-money-gen] n <- toInteger dl
  4683. 962.89 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4684. 962.89 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4685. 962.89 s [really-safe-money-gen] + guard $ n > fromIntegral (minBound :: Int)
  4686. 962.89 s [really-safe-money-gen] pure $ fromIntegral n
  4687. 962.89 s [really-safe-money-gen]
  4688. 962.89 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4689. 962.89 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  4690. 962.89 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4691. 962.90 s [really-safe-money-gen] toInt dl = do
  4692. 962.90 s [really-safe-money-gen] n <- toInteger dl
  4693. 962.90 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4694. 962.90 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4695. 962.90 s [really-safe-money-gen] + guard $ True
  4696. 962.90 s [really-safe-money-gen] pure $ fromIntegral n
  4697. 962.90 s [really-safe-money-gen]
  4698. 962.90 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4699. 962.90 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4700. 962.90 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4701. 962.90 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4702. 962.90 s [really-safe-money-gen] a :: Integer
  4703. 962.90 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4704. 962.90 s [really-safe-money-gen] - in if a > maxBoundI
  4705. 962.90 s [really-safe-money-gen] + in if a < maxBoundI
  4706. 962.90 s [really-safe-money-gen] then Nothing
  4707. 962.90 s [really-safe-money-gen] else
  4708. 962.90 s [really-safe-money-gen] let w :: Word64
  4709. 962.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  4710. 962.90 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4711. 962.90 s [really-safe-money-gen] toInt dl = do
  4712. 962.90 s [really-safe-money-gen] n <- toInteger dl
  4713. 962.90 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4714. 962.90 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4715. 962.90 s [really-safe-money-gen] + guard $ False
  4716. 962.90 s [really-safe-money-gen] pure $ fromIntegral n
  4717. 962.90 s [really-safe-money-gen]
  4718. 962.90 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4719. 962.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  4720. 962.90 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4721. 962.90 s [really-safe-money-gen] amount :: Amount
  4722. 962.90 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4723. 962.90 s [really-safe-money-gen] in Just $
  4724. 962.90 s [really-safe-money-gen] - if i >= 0
  4725. 962.90 s [really-safe-money-gen] + if False
  4726. 962.90 s [really-safe-money-gen] then Positive amount
  4727. 962.90 s [really-safe-money-gen] else Negative amount
  4728. 962.90 s [really-safe-money-gen]
  4729. 962.90 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  4730. 962.90 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  4731. 962.90 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4732. 962.90 s [really-safe-money-gen] toInt dl = do
  4733. 962.90 s [really-safe-money-gen] n <- toInteger dl
  4734. 962.90 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4735. 962.90 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4736. 962.90 s [really-safe-money-gen] pure $ fromIntegral n
  4737. 962.90 s [really-safe-money-gen]
  4738. 962.90 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  4739. 962.90 s [really-safe-money-gen] @@ -312,7 +312,7 @@
  4740. 962.90 s [really-safe-money-gen]
  4741. 962.90 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  4742. 962.90 s [really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
  4743. 962.90 s [really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  4744. 962.90 s [really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  4745. 962.90 s [really-safe-money-gen]
  4746. 962.90 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
  4747. 962.90 s [really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
  4748. 962.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  4749. 962.90 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4750. 962.91 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4751. 962.91 s [really-safe-money-gen] a :: Integer
  4752. 962.91 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4753. 962.91 s [really-safe-money-gen] - in if a > maxBoundI
  4754. 962.91 s [really-safe-money-gen] + in if False
  4755. 962.91 s [really-safe-money-gen] then Nothing
  4756. 962.91 s [really-safe-money-gen] else
  4757. 962.91 s [really-safe-money-gen] let w :: Word64
  4758. 962.91 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  4759. 962.91 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4760. 962.91 s [really-safe-money-gen] toInt dl = do
  4761. 962.91 s [really-safe-money-gen] n <- toInteger dl
  4762. 962.91 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4763. 962.91 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4764. 962.91 s [really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
  4765. 962.91 s [really-safe-money-gen] pure $ fromIntegral n
  4766. 962.91 s [really-safe-money-gen]
  4767. 962.91 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4768. 962.91 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  4769. 962.91 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  4770. 962.91 s [really-safe-money-gen] toInt dl = do
  4771. 962.91 s [really-safe-money-gen] n <- toInteger dl
  4772. 962.91 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4773. 962.91 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4774. 962.91 s [really-safe-money-gen] pure $ fromIntegral n
  4775. 962.91 s [really-safe-money-gen]
  4776. 962.91 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4777. 962.91 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  4778. 962.91 s [really-safe-money-gen] @@ -307,7 +307,7 @@
  4779. 962.91 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  4780. 962.91 s [really-safe-money-gen] toNatural = \case
  4781. 962.91 s [really-safe-money-gen] DecimalLiteral (Just False) _ _ -> Nothing
  4782. 962.91 s [really-safe-money-gen] - DecimalLiteral _ n 0 -> Just n
  4783. 962.91 s [really-safe-money-gen] + DecimalLiteral _ n 0 -> Nothing
  4784. 962.91 s [really-safe-money-gen] _ -> Nothing
  4785. 962.91 s [really-safe-money-gen]
  4786. 962.91 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  4787. 962.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  4788. 962.91 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4789. 962.91 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4790. 962.91 s [really-safe-money-gen] toInt dl = do
  4791. 962.91 s [really-safe-money-gen] n <- toInteger dl
  4792. 962.91 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4793. 962.91 s [really-safe-money-gen] + guard $ True
  4794. 962.91 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4795. 962.91 s [really-safe-money-gen] pure $ fromIntegral n
  4796. 962.91 s [really-safe-money-gen]
  4797. 962.91 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  4798. 962.91 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  4799. 962.91 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  4800. 962.91 s [really-safe-money-gen] where
  4801. 962.91 s [really-safe-money-gen] go = \case
  4802. 962.91 s [really-safe-money-gen] - Nothing -> Just True
  4803. 962.92 s [really-safe-money-gen] + Nothing -> Nothing
  4804. 962.92 s [really-safe-money-gen] s -> s
  4805. 962.92 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20
  4806. 962.92 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4807. 962.92 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4808. 962.92 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4809. 962.92 s [really-safe-money-gen] let d' = Prelude.abs d
  4810. 962.92 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4811. 962.92 s [really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
  4812. 962.92 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4813. 962.92 s [really-safe-money-gen]
  4814. 962.92 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4815. 962.92 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
  4816. 962.92 s [really-safe-money-gen] @@ -152,9 +152,8 @@
  4817. 962.92 s [really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
  4818. 962.92 s [really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
  4819. 962.92 s [really-safe-money-gen] toMinimalQuantisations account =
  4820. 962.92 s [really-safe-money-gen] let f = case account of
  4821. 962.92 s [really-safe-money-gen] Positive _ -> id
  4822. 962.92 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4823. 968.02 s [really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
  4824. 968.04 s [really-safe-money-gen]
  4825. 968.04 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  4826. 968.04 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  4827. 968.04 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4828. 968.04 s [really-safe-money-gen] amount :: Amount
  4829. 968.04 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4830. 968.05 s [really-safe-money-gen] in Just $
  4831. 968.05 s [really-safe-money-gen] - if i >= 0
  4832. 968.05 s [really-safe-money-gen] + if True
  4833. 968.05 s [really-safe-money-gen] then Positive amount
  4834. 968.05 s [really-safe-money-gen] else Negative amount
  4835. 968.05 s [really-safe-money-gen]
  4836. 968.05 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4837. 968.05 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4838. 968.05 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4839. 968.05 s [really-safe-money-gen] a :: Integer
  4840. 968.05 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4841. 968.05 s [really-safe-money-gen] - in if a > maxBoundI
  4842. 968.05 s [really-safe-money-gen] + in if a >= maxBoundI
  4843. 968.05 s [really-safe-money-gen] then Nothing
  4844. 968.05 s [really-safe-money-gen] else
  4845. 968.05 s [really-safe-money-gen] let w :: Word64
  4846. 968.05 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  4847. 968.05 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4848. 968.05 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4849. 968.05 s [really-safe-money-gen] toWord dl = do
  4850. 968.05 s [really-safe-money-gen] n <- toNatural dl
  4851. 968.05 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4852. 968.05 s [really-safe-money-gen] + guard $ n > fromIntegral (maxBound :: Word)
  4853. 968.05 s [really-safe-money-gen] pure $ fromIntegral n
  4854. 968.05 s [really-safe-money-gen]
  4855. 968.05 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4856. 968.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  4857. 968.05 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4858. 968.05 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4859. 968.05 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4860. 968.05 s [really-safe-money-gen] let d' = Prelude.abs d
  4861. 968.05 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4862. 968.05 s [really-safe-money-gen] + f = if True then Positive else Negative
  4863. 968.05 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4864. 968.06 s [really-safe-money-gen]
  4865. 968.06 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4866. 968.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  4867. 968.06 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4868. 968.06 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4869. 968.06 s [really-safe-money-gen] toWord dl = do
  4870. 968.06 s [really-safe-money-gen] n <- toNatural dl
  4871. 968.06 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4872. 968.06 s [really-safe-money-gen] + guard $ True
  4873. 968.06 s [really-safe-money-gen] pure $ fromIntegral n
  4874. 968.06 s [really-safe-money-gen]
  4875. 968.06 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4876. 968.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  4877. 968.06 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4878. 968.06 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4879. 968.06 s [really-safe-money-gen] a :: Integer
  4880. 968.06 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4881. 968.06 s [really-safe-money-gen] - in if a > maxBoundI
  4882. 968.06 s [really-safe-money-gen] + in if True
  4883. 968.06 s [really-safe-money-gen] then Nothing
  4884. 968.06 s [really-safe-money-gen] else
  4885. 968.06 s [really-safe-money-gen] let w :: Word64
  4886. 968.06 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  4887. 968.06 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4888. 968.06 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4889. 968.06 s [really-safe-money-gen] toWord dl = do
  4890. 968.06 s [really-safe-money-gen] n <- toNatural dl
  4891. 968.06 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4892. 968.06 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
  4893. 968.06 s [really-safe-money-gen] pure $ fromIntegral n
  4894. 968.06 s [really-safe-money-gen]
  4895. 968.06 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4896. 968.06 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  4897. 968.06 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  4898. 968.06 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4899. 968.06 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  4900. 968.06 s [really-safe-money-gen] Just False -> Nothing
  4901. 968.06 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  4902. 968.06 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
  4903. 968.06 s [really-safe-money-gen]
  4904. 968.06 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  4905. 968.06 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  4906. 968.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  4907. 968.06 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4908. 968.06 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4909. 968.06 s [really-safe-money-gen] toWord dl = do
  4910. 968.06 s [really-safe-money-gen] n <- toNatural dl
  4911. 968.06 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4912. 968.06 s [really-safe-money-gen] + guard $ False
  4913. 968.06 s [really-safe-money-gen] pure $ fromIntegral n
  4914. 968.06 s [really-safe-money-gen]
  4915. 968.06 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4916. 968.06 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26
  4917. 968.06 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4918. 968.06 s [really-safe-money-gen] amount :: Amount
  4919. 968.07 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4920. 968.07 s [really-safe-money-gen] in Just $
  4921. 968.07 s [really-safe-money-gen] - if i >= 0
  4922. 968.07 s [really-safe-money-gen] + if i >= 1
  4923. 968.07 s [really-safe-money-gen] then Positive amount
  4924. 968.07 s [really-safe-money-gen] else Negative amount
  4925. 968.07 s [really-safe-money-gen]
  4926. 968.07 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  4927. 968.07 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  4928. 968.07 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  4929. 968.07 s [really-safe-money-gen] -- Nothing
  4930. 968.07 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  4931. 968.07 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  4932. 968.07 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
  4933. 968.07 s [really-safe-money-gen] where
  4934. 968.07 s [really-safe-money-gen] fromRationalRepetendLimited ::
  4935. 968.07 s [really-safe-money-gen] -- limit
  4936. 968.07 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  4937. 968.07 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  4938. 968.07 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  4939. 968.07 s [really-safe-money-gen] -- Nothing
  4940. 968.07 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  4941. 968.07 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  4942. 968.07 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
  4943. 968.07 s [really-safe-money-gen] where
  4944. 968.07 s [really-safe-money-gen] fromRationalRepetendLimited ::
  4945. 968.07 s [really-safe-money-gen] -- limit
  4946. 968.07 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4947. 968.07 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4948. 968.07 s [really-safe-money-gen] amount :: Amount
  4949. 968.07 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4950. 968.07 s [really-safe-money-gen] in Just $
  4951. 968.07 s [really-safe-money-gen] - if i >= 0
  4952. 968.07 s [really-safe-money-gen] + if i > 0
  4953. 968.07 s [really-safe-money-gen] then Positive amount
  4954. 968.07 s [really-safe-money-gen] else Negative amount
  4955. 968.07 s [really-safe-money-gen]
  4956. 968.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  4957. 968.07 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  4958. 968.07 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  4959. 968.07 s [really-safe-money-gen] -- Nothing
  4960. 968.07 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4961. 968.07 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  4962. 968.07 s [really-safe-money-gen] - Just False -> Nothing
  4963. 968.07 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  4964. 968.07 s [really-safe-money-gen]
  4965. 968.07 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  4966. 968.07 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  4967. 968.07 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  4968. 968.07 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  4969. 968.07 s [really-safe-money-gen] Ratio Natural ->
  4970. 968.07 s [really-safe-money-gen] Maybe DecimalLiteral
  4971. 968.07 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  4972. 968.07 s [really-safe-money-gen] - | d == 0 = Nothing
  4973. 968.07 s [really-safe-money-gen] + | d == 1 = Nothing
  4974. 968.07 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  4975. 968.07 s [really-safe-money-gen] where
  4976. 968.07 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  4977. 968.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  4978. 968.07 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  4979. 968.07 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  4980. 968.07 s [really-safe-money-gen] -- Nothing
  4981. 968.07 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4982. 968.08 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  4983. 968.08 s [really-safe-money-gen] Just False -> Nothing
  4984. 968.08 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  4985. 968.08 s [really-safe-money-gen]
  4986. 968.08 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  4987. 968.08 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  4988. 968.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  4989. 968.08 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4990. 968.08 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4991. 968.08 s [really-safe-money-gen] fromRational quantisationFactor r =
  4992. 968.08 s [really-safe-money-gen] let r' = Prelude.abs r
  4993. 968.08 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4994. 968.08 s [really-safe-money-gen] + f = if False then Positive else Negative
  4995. 968.08 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4996. 968.08 s [really-safe-money-gen]
  4997. 968.08 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4998. 968.08 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  4999. 968.08 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5000. 968.08 s [really-safe-money-gen] Ratio Natural ->
  5001. 968.08 s [really-safe-money-gen] Maybe DecimalLiteral
  5002. 968.08 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5003. 968.08 s [really-safe-money-gen] - | d == 0 = Nothing
  5004. 968.08 s [really-safe-money-gen] + | not (d == 0) = Nothing
  5005. 968.08 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5006. 968.08 s [really-safe-money-gen] where
  5007. 973.40 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5008. 973.43 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  5009. 973.43 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  5010. 973.43 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5011. 973.43 s [really-safe-money-gen] toWord dl = do
  5012. 973.43 s [really-safe-money-gen] n <- toNatural dl
  5013. 973.43 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5014. 973.43 s [really-safe-money-gen] pure $ fromIntegral n
  5015. 973.43 s [really-safe-money-gen]
  5016. 973.43 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5017. 973.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  5018. 973.44 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5019. 973.44 s [really-safe-money-gen] Ratio Natural ->
  5020. 973.44 s [really-safe-money-gen] Maybe DecimalLiteral
  5021. 973.44 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5022. 973.44 s [really-safe-money-gen] - | d == 0 = Nothing
  5023. 973.44 s [really-safe-money-gen] + | True = Nothing
  5024. 973.44 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5025. 973.44 s [really-safe-money-gen] where
  5026. 973.44 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5027. 973.44 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  5028. 973.44 s [really-safe-money-gen] @@ -258,7 +258,7 @@
  5029. 973.44 s [really-safe-money-gen] Natural ->
  5030. 973.44 s [really-safe-money-gen] Maybe (Natural, Int)
  5031. 973.44 s [really-safe-money-gen] longDivWithLimit !c !e _ns 0 =
  5032. 973.44 s [really-safe-money-gen] - Just (c, e)
  5033. 973.44 s [really-safe-money-gen] + Nothing
  5034. 973.44 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5035. 973.44 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5036. 973.44 s [really-safe-money-gen] | S.member n ns = Nothing
  5037. 973.44 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  5038. 973.44 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5039. 973.44 s [really-safe-money-gen] Just (c, e)
  5040. 973.44 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5041. 973.44 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5042. 973.44 s [really-safe-money-gen] - | S.member n ns = Nothing
  5043. 973.44 s [really-safe-money-gen] + | True = Nothing
  5044. 973.44 s [really-safe-money-gen] -- Over the limit, stop trying
  5045. 973.44 s [really-safe-money-gen] | e >= l = Nothing
  5046. 973.44 s [really-safe-money-gen] | n < d =
  5047. 973.44 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  5048. 973.44 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5049. 973.44 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5050. 973.44 s [really-safe-money-gen] | S.member n ns = Nothing
  5051. 973.44 s [really-safe-money-gen] -- Over the limit, stop trying
  5052. 973.44 s [really-safe-money-gen] - | e >= l = Nothing
  5053. 973.44 s [really-safe-money-gen] + | e < l = Nothing
  5054. 973.44 s [really-safe-money-gen] | n < d =
  5055. 973.44 s [really-safe-money-gen] let !ns' = S.insert n ns
  5056. 973.44 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5057. 973.44 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  5058. 973.44 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5059. 973.44 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5060. 973.44 s [really-safe-money-gen] | S.member n ns = Nothing
  5061. 973.44 s [really-safe-money-gen] -- Over the limit, stop trying
  5062. 973.44 s [really-safe-money-gen] - | e >= l = Nothing
  5063. 973.44 s [really-safe-money-gen] + | e <= l = Nothing
  5064. 973.44 s [really-safe-money-gen] | n < d =
  5065. 973.45 s [really-safe-money-gen] let !ns' = S.insert n ns
  5066. 973.45 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5067. 973.45 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  5068. 973.45 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5069. 973.45 s [really-safe-money-gen] Just (c, e)
  5070. 973.45 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5071. 973.45 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5072. 973.45 s [really-safe-money-gen] - | S.member n ns = Nothing
  5073. 973.45 s [really-safe-money-gen] + | not (S.member n ns) = Nothing
  5074. 973.45 s [really-safe-money-gen] -- Over the limit, stop trying
  5075. 973.45 s [really-safe-money-gen] | e >= l = Nothing
  5076. 973.45 s [really-safe-money-gen] | n < d =
  5077. 973.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  5078. 973.45 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5079. 973.45 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5080. 973.45 s [really-safe-money-gen] | S.member n ns = Nothing
  5081. 973.45 s [really-safe-money-gen] -- Over the limit, stop trying
  5082. 973.45 s [really-safe-money-gen] - | e >= l = Nothing
  5083. 973.45 s [really-safe-money-gen] + | True = Nothing
  5084. 973.45 s [really-safe-money-gen] | n < d =
  5085. 973.45 s [really-safe-money-gen] let !ns' = S.insert n ns
  5086. 973.45 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5087. 973.45 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  5088. 973.45 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5089. 973.45 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5090. 973.45 s [really-safe-money-gen] toWord dl = do
  5091. 973.45 s [really-safe-money-gen] n <- toNatural dl
  5092. 973.45 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5093. 973.45 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Word)
  5094. 973.45 s [really-safe-money-gen] pure $ fromIntegral n
  5095. 973.45 s [really-safe-money-gen]
  5096. 973.45 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5097. 973.45 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  5098. 973.45 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5099. 973.45 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5100. 973.45 s [really-safe-money-gen] | S.member n ns = Nothing
  5101. 973.45 s [really-safe-money-gen] -- Over the limit, stop trying
  5102. 973.45 s [really-safe-money-gen] - | e >= l = Nothing
  5103. 973.45 s [really-safe-money-gen] + | e > l = Nothing
  5104. 973.45 s [really-safe-money-gen] | n < d =
  5105. 973.45 s [really-safe-money-gen] let !ns' = S.insert n ns
  5106. 973.45 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5107. 973.45 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  5108. 973.45 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5109. 973.45 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5110. 973.45 s [really-safe-money-gen] toWord dl = do
  5111. 973.45 s [really-safe-money-gen] n <- toNatural dl
  5112. 973.45 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5113. 973.45 s [really-safe-money-gen] + guard $ n >= fromIntegral (maxBound :: Word)
  5114. 973.45 s [really-safe-money-gen] pure $ fromIntegral n
  5115. 973.45 s [really-safe-money-gen]
  5116. 973.45 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5117. 973.45 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  5118. 973.45 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5119. 973.45 s [really-safe-money-gen] | S.member n ns = Nothing
  5120. 973.45 s [really-safe-money-gen] -- Over the limit, stop trying
  5121. 973.45 s [really-safe-money-gen] | e >= l = Nothing
  5122. 973.45 s [really-safe-money-gen] - | n < d =
  5123. 973.45 s [really-safe-money-gen] + | n > d =
  5124. 973.45 s [really-safe-money-gen] let !ns' = S.insert n ns
  5125. 973.45 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5126. 973.45 s [really-safe-money-gen] | otherwise =
  5127. 973.46 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  5128. 973.46 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5129. 973.46 s [really-safe-money-gen] | S.member n ns = Nothing
  5130. 973.46 s [really-safe-money-gen] -- Over the limit, stop trying
  5131. 973.46 s [really-safe-money-gen] | e >= l = Nothing
  5132. 973.46 s [really-safe-money-gen] - | n < d =
  5133. 973.46 s [really-safe-money-gen] + | not (n < d) =
  5134. 973.46 s [really-safe-money-gen] let !ns' = S.insert n ns
  5135. 973.46 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5136. 973.46 s [really-safe-money-gen] | otherwise =
  5137. 973.46 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  5138. 973.46 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5139. 973.46 s [really-safe-money-gen] | e >= l = Nothing
  5140. 973.46 s [really-safe-money-gen] | n < d =
  5141. 973.46 s [really-safe-money-gen] let !ns' = S.insert n ns
  5142. 973.46 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5143. 973.46 s [really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  5144. 973.46 s [really-safe-money-gen] | otherwise =
  5145. 973.46 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5146. 973.46 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5147. 973.46 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  5148. 973.46 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5149. 973.46 s [really-safe-money-gen] | e >= l = Nothing
  5150. 973.46 s [really-safe-money-gen] | n < d =
  5151. 973.46 s [really-safe-money-gen] let !ns' = S.insert n ns
  5152. 973.46 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5153. 973.46 s [really-safe-money-gen] + in longDivWithLimit (c + 10) (succ e) ns' (n * 10)
  5154. 973.46 s [really-safe-money-gen] | otherwise =
  5155. 973.46 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5156. 973.46 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5157. 973.46 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  5158. 973.46 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5159. 973.46 s [really-safe-money-gen] | e >= l = Nothing
  5160. 973.46 s [really-safe-money-gen] | n < d =
  5161. 973.46 s [really-safe-money-gen] let !ns' = S.insert n ns
  5162. 973.46 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5163. 973.46 s [really-safe-money-gen] + in longDivWithLimit (c - 10) (succ e) ns' (n * 10)
  5164. 973.46 s [really-safe-money-gen] | otherwise =
  5165. 973.46 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5166. 973.46 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5167. 973.46 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  5168. 973.46 s [really-safe-money-gen] @@ -301,7 +301,7 @@
  5169. 973.46 s [really-safe-money-gen]
  5170. 973.46 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5171. 973.46 s [really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
  5172. 973.46 s [really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
  5173. 973.46 s [really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
  5174. 973.46 s [really-safe-money-gen]
  5175. 973.46 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
  5176. 973.46 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  5177. 977.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  5178. 977.80 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5179. 977.80 s [really-safe-money-gen] | S.member n ns = Nothing
  5180. 977.80 s [really-safe-money-gen] -- Over the limit, stop trying
  5181. 977.80 s [really-safe-money-gen] | e >= l = Nothing
  5182. 977.80 s [really-safe-money-gen] - | n < d =
  5183. 977.80 s [really-safe-money-gen] + | True =
  5184. 977.80 s [really-safe-money-gen] let !ns' = S.insert n ns
  5185. 977.80 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5186. 977.80 s [really-safe-money-gen] | otherwise =
  5187. 977.80 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  5188. 977.80 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5189. 977.80 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5190. 977.80 s [really-safe-money-gen] | S.member n ns = Nothing
  5191. 977.80 s [really-safe-money-gen] -- Over the limit, stop trying
  5192. 977.80 s [really-safe-money-gen] - | e >= l = Nothing
  5193. 977.81 s [really-safe-money-gen] + | not (e >= l) = Nothing
  5194. 977.81 s [really-safe-money-gen] | n < d =
  5195. 977.81 s [really-safe-money-gen] let !ns' = S.insert n ns
  5196. 977.81 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5197. 977.81 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  5198. 977.81 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  5199. 977.81 s [really-safe-money-gen] num = numerator rational
  5200. 977.81 s [really-safe-money-gen]
  5201. 977.81 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  5202. 977.81 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  5203. 977.81 s [really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
  5204. 977.81 s [really-safe-money-gen]
  5205. 977.81 s [really-safe-money-gen] longDivWithLimit ::
  5206. 977.81 s [really-safe-money-gen] Natural ->
  5207. 977.81 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  5208. 977.81 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5209. 977.81 s [really-safe-money-gen] | e >= l = Nothing
  5210. 977.81 s [really-safe-money-gen] | n < d =
  5211. 977.81 s [really-safe-money-gen] let !ns' = S.insert n ns
  5212. 977.81 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5213. 977.81 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n - 10)
  5214. 977.81 s [really-safe-money-gen] | otherwise =
  5215. 977.81 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5216. 977.81 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5217. 977.81 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  5218. 977.81 s [really-safe-money-gen] @@ -269,7 +269,7 @@
  5219. 977.81 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5220. 977.81 s [really-safe-money-gen] | otherwise =
  5221. 977.81 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5222. 977.81 s [really-safe-money-gen] - in longDivWithLimit (c + q) e ns r'
  5223. 977.81 s [really-safe-money-gen] + in longDivWithLimit (c - q) e ns r'
  5224. 977.81 s [really-safe-money-gen]
  5225. 977.81 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Ratio Natural'
  5226. 977.81 s [really-safe-money-gen] --
  5227. 977.81 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  5228. 977.81 s [really-safe-money-gen] @@ -269,7 +269,7 @@
  5229. 977.81 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5230. 977.81 s [really-safe-money-gen] | otherwise =
  5231. 977.81 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5232. 977.81 s [really-safe-money-gen] - in longDivWithLimit (c + q) e ns r'
  5233. 977.81 s [really-safe-money-gen] + in longDivWithLimit (c * q) e ns r'
  5234. 977.81 s [really-safe-money-gen]
  5235. 977.81 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Ratio Natural'
  5236. 977.81 s [really-safe-money-gen] --
  5237. 977.81 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  5238. 977.81 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  5239. 977.81 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  5240. 977.81 s [really-safe-money-gen] fromDouble quantisationFactor d =
  5241. 977.81 s [really-safe-money-gen] let d' = Prelude.abs d
  5242. 977.81 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  5243. 977.81 s [really-safe-money-gen] + f = if d <= 0 then Positive else Negative
  5244. 977.81 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  5245. 977.82 s [really-safe-money-gen]
  5246. 977.82 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  5247. 977.82 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  5248. 977.82 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  5249. 977.82 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  5250. 977.82 s [really-safe-money-gen] fromRational quantisationFactor r =
  5251. 977.82 s [really-safe-money-gen] let r' = Prelude.abs r
  5252. 977.82 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  5253. 977.82 s [really-safe-money-gen] + f = if r > 0 then Positive else Negative
  5254. 977.82 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  5255. 977.82 s [really-safe-money-gen]
  5256. 977.82 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  5257. 977.82 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  5258. 977.82 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5259. 977.82 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5260. 977.82 s [really-safe-money-gen] -- Nothing
  5261. 977.82 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5262. 977.82 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5263. 977.82 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
  5264. 977.82 s [really-safe-money-gen] where
  5265. 977.82 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5266. 977.82 s [really-safe-money-gen] -- limit
  5267. 977.82 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  5268. 977.82 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5269. 977.82 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5270. 977.82 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5271. 977.82 s [really-safe-money-gen] Just False -> Nothing
  5272. 977.82 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5273. 977.82 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  5274. 977.82 s [really-safe-money-gen]
  5275. 977.82 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5276. 977.82 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5277. 977.82 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20
  5278. 977.82 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  5279. 977.82 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  5280. 977.82 s [really-safe-money-gen] fromDouble quantisationFactor d =
  5281. 977.82 s [really-safe-money-gen] let d' = Prelude.abs d
  5282. 977.82 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  5283. 977.82 s [really-safe-money-gen] + f = if d >= 1 then Positive else Negative
  5284. 977.82 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  5285. 977.82 s [really-safe-money-gen]
  5286. 977.82 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  5287. 977.82 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  5288. 977.82 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5289. 977.82 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5290. 977.82 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5291. 977.82 s [really-safe-money-gen] Just False -> Nothing
  5292. 977.82 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5293. 977.82 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
  5294. 977.82 s [really-safe-money-gen]
  5295. 977.82 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5296. 977.82 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5297. 977.82 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  5298. 977.82 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  5299. 977.83 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  5300. 977.83 s [really-safe-money-gen] fromRational quantisationFactor r =
  5301. 977.83 s [really-safe-money-gen] let r' = Prelude.abs r
  5302. 977.83 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  5303. 977.83 s [really-safe-money-gen] + f = if r <= 0 then Positive else Negative
  5304. 977.83 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  5305. 977.83 s [really-safe-money-gen]
  5306. 977.83 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  5307. 977.83 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
  5308. 977.83 s [really-safe-money-gen] @@ -208,9 +208,8 @@
  5309. 977.83 s [really-safe-money-gen] -- (-3) % 20
  5310. 977.83 s [really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
  5311. 977.83 s [really-safe-money-gen] toRational quantisationFactor account =
  5312. 977.83 s [really-safe-money-gen] let f = case account of
  5313. 977.83 s [really-safe-money-gen] - Positive _ -> id
  5314. 977.83 s [really-safe-money-gen] Negative _ -> Prelude.negate
  5315. 977.83 s [really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
  5316. 977.83 s [really-safe-money-gen]
  5317. 977.83 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  5318. 977.83 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  5319. 977.83 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5320. 977.83 s [really-safe-money-gen] | e >= l = Nothing
  5321. 977.83 s [really-safe-money-gen] | n < d =
  5322. 977.83 s [really-safe-money-gen] let !ns' = S.insert n ns
  5323. 977.83 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5324. 977.83 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n + 10)
  5325. 977.83 s [really-safe-money-gen] | otherwise =
  5326. 977.83 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5327. 977.83 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5328. 977.83 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  5329. 977.83 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5330. 977.83 s [really-safe-money-gen] | e >= l = Nothing
  5331. 977.83 s [really-safe-money-gen] | n < d =
  5332. 977.83 s [really-safe-money-gen] let !ns' = S.insert n ns
  5333. 977.83 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5334. 977.83 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  5335. 977.83 s [really-safe-money-gen] | otherwise =
  5336. 977.83 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5337. 977.83 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5338. 977.83 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  5339. 977.83 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5340. 977.83 s [really-safe-money-gen] | e >= l = Nothing
  5341. 977.83 s [really-safe-money-gen] | n < d =
  5342. 977.83 s [really-safe-money-gen] let !ns' = S.insert n ns
  5343. 977.83 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5344. 977.83 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  5345. 977.83 s [really-safe-money-gen] | otherwise =
  5346. 977.83 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5347. 977.83 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5348. 977.83 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  5349. 977.83 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5350. 977.83 s [really-safe-money-gen] | e >= l = Nothing
  5351. 977.83 s [really-safe-money-gen] | n < d =
  5352. 977.83 s [really-safe-money-gen] let !ns' = S.insert n ns
  5353. 982.62 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5354. 982.62 s [really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  5355. 982.70 s [really-safe-money-gen] | otherwise =
  5356. 982.70 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5357. 982.70 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5358. 982.70 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  5359. 982.70 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5360. 982.70 s [really-safe-money-gen] | S.member n ns = Nothing
  5361. 982.70 s [really-safe-money-gen] -- Over the limit, stop trying
  5362. 982.71 s [really-safe-money-gen] | e >= l = Nothing
  5363. 982.71 s [really-safe-money-gen] - | n < d =
  5364. 982.71 s [really-safe-money-gen] + | n >= d =
  5365. 982.71 s [really-safe-money-gen] let !ns' = S.insert n ns
  5366. 982.71 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5367. 982.71 s [really-safe-money-gen] | otherwise =
  5368. 982.71 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  5369. 982.71 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  5370. 982.71 s [really-safe-money-gen] num = numerator rational
  5371. 982.71 s [really-safe-money-gen]
  5372. 982.71 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  5373. 982.71 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  5374. 982.71 s [really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
  5375. 982.71 s [really-safe-money-gen]
  5376. 982.71 s [really-safe-money-gen] longDivWithLimit ::
  5377. 982.71 s [really-safe-money-gen] Natural ->
  5378. 982.71 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  5379. 982.71 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5380. 982.71 s [really-safe-money-gen] | S.member n ns = Nothing
  5381. 982.71 s [really-safe-money-gen] -- Over the limit, stop trying
  5382. 982.71 s [really-safe-money-gen] | e >= l = Nothing
  5383. 982.71 s [really-safe-money-gen] - | n < d =
  5384. 982.71 s [really-safe-money-gen] + | n <= d =
  5385. 982.71 s [really-safe-money-gen] let !ns' = S.insert n ns
  5386. 982.71 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5387. 982.71 s [really-safe-money-gen] | otherwise =
  5388. 982.71 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  5389. 982.71 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  5390. 982.72 s [really-safe-money-gen] -- (-3) % 10
  5391. 982.72 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  5392. 982.72 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  5393. 982.72 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  5394. 982.72 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
  5395. 982.72 s [really-safe-money-gen]
  5396. 982.72 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  5397. 982.72 s [really-safe-money-gen] --
  5398. 982.72 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  5399. 982.72 s [really-safe-money-gen] @@ -183,7 +183,6 @@
  5400. 982.72 s [really-safe-money-gen]
  5401. 982.72 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  5402. 982.72 s [really-safe-money-gen] go :: Word8 -> String -> String
  5403. 982.72 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  5404. 982.72 s [really-safe-money-gen] go 0 s = '.' : s
  5405. 982.72 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  5406. 982.72 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  5407. 982.72 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  5408. 982.72 s [really-safe-money-gen] @@ -183,7 +183,6 @@
  5409. 982.72 s [really-safe-money-gen]
  5410. 982.72 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  5411. 982.72 s [really-safe-money-gen] go :: Word8 -> String -> String
  5412. 982.72 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  5413. 982.72 s [really-safe-money-gen] go 0 s = '.' : s
  5414. 982.72 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  5415. 982.72 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  5416. 982.72 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  5417. 982.72 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5418. 982.72 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5419. 982.72 s [really-safe-money-gen] parseDigits f z = do
  5420. 982.72 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5421. 982.72 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5422. 982.72 s [really-safe-money-gen] + let digit = Char.ord c - 0
  5423. 982.72 s [really-safe-money-gen] case f z digit of
  5424. 982.72 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5425. 982.72 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5426. 982.72 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  5427. 982.72 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5428. 982.72 s [really-safe-money-gen] -- Nothing
  5429. 982.72 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5430. 982.72 s [really-safe-money-gen] fromRational (n :% d)
  5431. 982.72 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5432. 982.72 s [really-safe-money-gen] + | n >= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5433. 982.72 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5434. 982.72 s [really-safe-money-gen]
  5435. 982.72 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5436. 982.72 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  5437. 982.72 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5438. 982.72 s [really-safe-money-gen] -- Nothing
  5439. 982.72 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5440. 982.72 s [really-safe-money-gen] fromRational (n :% d)
  5441. 982.72 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5442. 982.72 s [really-safe-money-gen] + | n > 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5443. 982.72 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5444. 982.72 s [really-safe-money-gen]
  5445. 982.72 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5446. 982.72 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  5447. 982.72 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5448. 982.72 s [really-safe-money-gen] -- Nothing
  5449. 982.72 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5450. 982.72 s [really-safe-money-gen] fromRational (n :% d)
  5451. 982.73 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5452. 982.73 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5453. 982.73 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5454. 982.73 s [really-safe-money-gen]
  5455. 982.73 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5456. 982.73 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  5457. 982.73 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5458. 982.73 s [really-safe-money-gen] -- Nothing
  5459. 982.73 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5460. 982.73 s [really-safe-money-gen] fromRational (n :% d)
  5461. 982.73 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5462. 982.73 s [really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5463. 982.73 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5464. 982.73 s [really-safe-money-gen]
  5465. 982.73 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5466. 982.73 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  5467. 982.73 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  5468. 982.73 s [really-safe-money-gen] -- (-3) % 10
  5469. 982.73 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  5470. 982.73 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  5471. 982.73 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  5472. 982.73 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
  5473. 982.73 s [really-safe-money-gen]
  5474. 982.73 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  5475. 982.73 s [really-safe-money-gen] --
  5476. 982.73 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  5477. 982.73 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  5478. 982.73 s [really-safe-money-gen] -- (-3) % 10
  5479. 982.73 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  5480. 982.73 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  5481. 982.73 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  5482. 982.73 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
  5483. 982.73 s [really-safe-money-gen]
  5484. 982.73 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  5485. 982.73 s [really-safe-money-gen] --
  5486. 982.73 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  5487. 982.73 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5488. 982.73 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5489. 982.73 s [really-safe-money-gen] parseDigits f z = do
  5490. 982.73 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5491. 982.73 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5492. 982.73 s [really-safe-money-gen] + let digit = Char.ord c - -48
  5493. 982.73 s [really-safe-money-gen] case f z digit of
  5494. 982.73 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5495. 982.73 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5496. 982.73 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  5497. 982.73 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5498. 982.74 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5499. 982.74 s [really-safe-money-gen] parseDigits f z = do
  5500. 982.74 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5501. 982.74 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5502. 982.74 s [really-safe-money-gen] + let digit = Char.ord c + 48
  5503. 982.74 s [really-safe-money-gen] case f z digit of
  5504. 982.74 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5505. 982.74 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5506. 982.74 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  5507. 982.74 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5508. 982.74 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5509. 982.74 s [really-safe-money-gen] parseDigits f z = do
  5510. 982.74 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5511. 982.74 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5512. 982.74 s [really-safe-money-gen] + let digit = Char.ord c - 1
  5513. 982.74 s [really-safe-money-gen] case f z digit of
  5514. 982.74 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5515. 982.74 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5516. 982.74 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  5517. 982.74 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  5518. 982.74 s [really-safe-money-gen] where
  5519. 982.74 s [really-safe-money-gen] go !a [] = return a
  5520. 982.74 s [really-safe-money-gen] go !a (c : cs)
  5521. 982.74 s [really-safe-money-gen] - | Char.isDigit c = do
  5522. 982.74 s [really-safe-money-gen] + | not (Char.isDigit c) = do
  5523. 982.74 s [really-safe-money-gen] _ <- ReadP.get
  5524. 982.74 s [really-safe-money-gen] let digit = Char.ord c - 48
  5525. 982.74 s [really-safe-money-gen] case f a digit of
  5526. 982.74 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  5527. 982.74 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5528. 986.93 s [really-safe-money-gen] -- Nothing
  5529. 986.93 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5530. 986.93 s [really-safe-money-gen] fromRational (n :% d)
  5531. 986.93 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5532. 986.93 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5533. 986.93 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5534. 986.93 s [really-safe-money-gen]
  5535. 986.93 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5536. 986.93 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  5537. 986.93 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5538. 986.93 s [really-safe-money-gen] -- Nothing
  5539. 986.93 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5540. 986.93 s [really-safe-money-gen] fromRational (n :% d)
  5541. 986.93 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5542. 986.93 s [really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5543. 986.93 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5544. 986.93 s [really-safe-money-gen]
  5545. 986.93 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5546. 986.93 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  5547. 986.93 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5548. 986.93 s [really-safe-money-gen] go !a (c : cs)
  5549. 986.94 s [really-safe-money-gen] | Char.isDigit c = do
  5550. 986.94 s [really-safe-money-gen] _ <- ReadP.get
  5551. 986.94 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5552. 986.94 s [really-safe-money-gen] + let digit = Char.ord c - 1
  5553. 986.94 s [really-safe-money-gen] case f a digit of
  5554. 986.94 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5555. 986.94 s [really-safe-money-gen] Just a' -> go a' cs
  5556. 986.94 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  5557. 986.94 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5558. 986.94 s [really-safe-money-gen] go !a (c : cs)
  5559. 986.94 s [really-safe-money-gen] | Char.isDigit c = do
  5560. 986.94 s [really-safe-money-gen] _ <- ReadP.get
  5561. 986.94 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5562. 986.94 s [really-safe-money-gen] + let digit = Char.ord c * 48
  5563. 986.94 s [really-safe-money-gen] case f a digit of
  5564. 986.94 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5565. 986.94 s [really-safe-money-gen] Just a' -> go a' cs
  5566. 986.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  5567. 986.94 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  5568. 986.94 s [really-safe-money-gen] where
  5569. 986.94 s [really-safe-money-gen] go !a [] = return a
  5570. 986.94 s [really-safe-money-gen] go !a (c : cs)
  5571. 986.94 s [really-safe-money-gen] - | Char.isDigit c = do
  5572. 986.94 s [really-safe-money-gen] + | True = do
  5573. 986.94 s [really-safe-money-gen] _ <- ReadP.get
  5574. 986.94 s [really-safe-money-gen] let digit = Char.ord c - 48
  5575. 986.94 s [really-safe-money-gen] case f a digit of
  5576. 986.95 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  5577. 986.95 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5578. 986.95 s [really-safe-money-gen] -- Nothing
  5579. 986.95 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5580. 986.95 s [really-safe-money-gen] fromRational (n :% d)
  5581. 986.95 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5582. 986.95 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Nothing) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5583. 986.95 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5584. 986.95 s [really-safe-money-gen]
  5585. 986.95 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5586. 986.95 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  5587. 986.95 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5588. 986.95 s [really-safe-money-gen] go !a (c : cs)
  5589. 986.95 s [really-safe-money-gen] | Char.isDigit c = do
  5590. 986.95 s [really-safe-money-gen] _ <- ReadP.get
  5591. 986.95 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5592. 986.95 s [really-safe-money-gen] + let digit = Char.ord c + 48
  5593. 986.95 s [really-safe-money-gen] case f a digit of
  5594. 986.95 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5595. 986.95 s [really-safe-money-gen] Just a' -> go a' cs
  5596. 986.95 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  5597. 986.95 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5598. 986.95 s [really-safe-money-gen] go !a (c : cs)
  5599. 986.95 s [really-safe-money-gen] | Char.isDigit c = do
  5600. 986.95 s [really-safe-money-gen] _ <- ReadP.get
  5601. 986.95 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5602. 986.95 s [really-safe-money-gen] + let digit = Char.ord c - 0
  5603. 986.95 s [really-safe-money-gen] case f a digit of
  5604. 986.95 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5605. 986.95 s [really-safe-money-gen] Just a' -> go a' cs
  5606. 986.95 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  5607. 986.95 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5608. 986.95 s [really-safe-money-gen] -- Nothing
  5609. 986.95 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5610. 986.95 s [really-safe-money-gen] fromRational (n :% d)
  5611. 986.95 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5612. 986.95 s [really-safe-money-gen] + | n <= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5613. 986.95 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5614. 986.95 s [really-safe-money-gen]
  5615. 986.95 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5616. 986.95 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  5617. 986.95 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5618. 986.95 s [really-safe-money-gen] go !a (c : cs)
  5619. 986.95 s [really-safe-money-gen] | Char.isDigit c = do
  5620. 986.95 s [really-safe-money-gen] _ <- ReadP.get
  5621. 986.95 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5622. 986.95 s [really-safe-money-gen] + let digit = Char.ord c - -48
  5623. 986.96 s [really-safe-money-gen] case f a digit of
  5624. 986.96 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5625. 986.96 s [really-safe-money-gen] Just a' -> go a' cs
  5626. 986.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  5627. 986.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5628. 986.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5629. 986.96 s [really-safe-money-gen]
  5630. 986.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5631. 986.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5632. 986.96 s [really-safe-money-gen] +step a digit = Just $ a + 10 + fromIntegral digit
  5633. 986.96 s [really-safe-money-gen] {-# INLINE step #-}
  5634. 986.96 s [really-safe-money-gen]
  5635. 986.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5636. 986.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  5637. 986.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5638. 986.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5639. 986.96 s [really-safe-money-gen]
  5640. 986.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5641. 986.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5642. 986.96 s [really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
  5643. 986.96 s [really-safe-money-gen] {-# INLINE step #-}
  5644. 986.96 s [really-safe-money-gen]
  5645. 986.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5646. 986.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  5647. 986.96 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5648. 986.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5649. 986.96 s [really-safe-money-gen] parseDigits f z = do
  5650. 986.96 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5651. 986.96 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5652. 986.96 s [really-safe-money-gen] + let digit = Char.ord c * 48
  5653. 986.96 s [really-safe-money-gen] case f z digit of
  5654. 986.96 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5655. 986.96 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5656. 986.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  5657. 986.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5658. 986.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5659. 986.96 s [really-safe-money-gen]
  5660. 986.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5661. 986.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5662. 986.96 s [really-safe-money-gen] +step a digit = Just $ a - 10 + fromIntegral digit
  5663. 986.96 s [really-safe-money-gen] {-# INLINE step #-}
  5664. 986.96 s [really-safe-money-gen]
  5665. 986.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5666. 986.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  5667. 986.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5668. 986.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5669. 986.96 s [really-safe-money-gen]
  5670. 986.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5671. 986.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5672. 986.96 s [really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
  5673. 986.96 s [really-safe-money-gen] {-# INLINE step #-}
  5674. 986.96 s [really-safe-money-gen]
  5675. 986.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5676. 986.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  5677. 986.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5678. 986.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5679. 986.96 s [really-safe-money-gen]
  5680. 986.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5681. 986.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5682. 986.96 s [really-safe-money-gen] +step a digit = Just $ a * 10 * fromIntegral digit
  5683. 986.96 s [really-safe-money-gen] {-# INLINE step #-}
  5684. 986.97 s [really-safe-money-gen]
  5685. 986.97 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5686. 986.97 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  5687. 986.97 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5688. 986.97 s [really-safe-money-gen]
  5689. 986.97 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5690. 986.97 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5691. 986.97 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5692. 986.97 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  5693. 986.97 s [really-safe-money-gen]
  5694. 992.72 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5695. 992.72 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5696. 992.74 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  5697. 992.74 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5698. 992.75 s [really-safe-money-gen]
  5699. 992.75 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5700. 992.75 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5701. 992.75 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5702. 992.75 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m + 10 + fromIntegral digit, succ e)
  5703. 992.75 s [really-safe-money-gen]
  5704. 992.75 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5705. 992.75 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5706. 992.75 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  5707. 992.75 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5708. 992.75 s [really-safe-money-gen]
  5709. 992.75 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5710. 992.75 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5711. 992.75 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5712. 992.75 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 10 - fromIntegral digit, succ e)
  5713. 992.75 s [really-safe-money-gen]
  5714. 992.75 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5715. 992.75 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5716. 992.75 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  5717. 992.75 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5718. 992.75 s [really-safe-money-gen]
  5719. 992.75 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5720. 992.75 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5721. 992.75 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5722. 992.75 s [really-safe-money-gen] +stepFraction (m, e) digit = Nothing
  5723. 992.75 s [really-safe-money-gen]
  5724. 992.75 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5725. 992.75 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5726. 992.75 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  5727. 992.75 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5728. 992.75 s [really-safe-money-gen]
  5729. 992.75 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5730. 992.76 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5731. 992.76 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5732. 992.76 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 10 * fromIntegral digit, succ e)
  5733. 992.76 s [really-safe-money-gen]
  5734. 992.76 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5735. 992.76 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5736. 992.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  5737. 992.76 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5738. 992.76 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5739. 992.76 s [really-safe-money-gen] decimalLiteralP = do
  5740. 992.76 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5741. 992.76 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5742. 992.76 s [really-safe-money-gen] + isSignChar c = False || c == '+'
  5743. 992.76 s [really-safe-money-gen]
  5744. 992.76 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5745. 992.76 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5746. 992.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  5747. 992.76 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5748. 992.76 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5749. 992.76 s [really-safe-money-gen] decimalLiteralP = do
  5750. 992.76 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5751. 992.76 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5752. 992.76 s [really-safe-money-gen] + isSignChar c = c == '-' || False
  5753. 992.76 s [really-safe-money-gen]
  5754. 992.76 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5755. 992.76 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5756. 992.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  5757. 992.76 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5758. 992.76 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5759. 992.76 s [really-safe-money-gen] decimalLiteralP = do
  5760. 992.76 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5761. 992.76 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5762. 992.76 s [really-safe-money-gen] + isSignChar c = True || c == '+'
  5763. 992.76 s [really-safe-money-gen]
  5764. 992.76 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5765. 992.76 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5766. 992.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  5767. 992.76 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5768. 992.76 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5769. 992.76 s [really-safe-money-gen] decimalLiteralP = do
  5770. 992.76 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5771. 992.76 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5772. 992.76 s [really-safe-money-gen] + isSignChar c = True
  5773. 992.76 s [really-safe-money-gen]
  5774. 992.77 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5775. 992.77 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5776. 992.77 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  5777. 992.77 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5778. 992.77 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5779. 992.77 s [really-safe-money-gen] decimalLiteralP = do
  5780. 992.77 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5781. 992.77 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5782. 992.77 s [really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
  5783. 992.77 s [really-safe-money-gen]
  5784. 992.77 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5785. 992.77 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5786. 992.77 s [really-safe-money-gen] Testing mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  5787. 992.77 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5788. 992.77 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5789. 992.77 s [really-safe-money-gen] decimalLiteralP = do
  5790. 992.77 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5791. 992.77 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5792. 992.77 s [really-safe-money-gen] + isSignChar c = c == '-' && c == '+'
  5793. 992.77 s [really-safe-money-gen]
  5794. 992.77 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5795. 992.77 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5796. 992.77 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  5797. 992.77 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5798. 992.77 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5799. 992.77 s [really-safe-money-gen] decimalLiteralP = do
  5800. 992.77 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5801. 992.77 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5802. 992.77 s [really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
  5803. 992.77 s [really-safe-money-gen]
  5804. 992.77 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5805. 992.77 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5806. 992.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  5807. 992.77 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  5808. 992.77 s [really-safe-money-gen]
  5809. 992.77 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5810. 992.77 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5811. 992.77 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  5812. 992.77 s [really-safe-money-gen] + pure $ Just $ True
  5813. 992.77 s [really-safe-money-gen]
  5814. 992.77 s [really-safe-money-gen] units <- parseDigits step 0
  5815. 992.77 s [really-safe-money-gen]
  5816. 992.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  5817. 992.78 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  5818. 992.78 s [really-safe-money-gen]
  5819. 992.78 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5820. 992.78 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5821. 992.78 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  5822. 992.78 s [really-safe-money-gen] + pure $ Just $ False
  5823. 992.78 s [really-safe-money-gen]
  5824. 992.78 s [really-safe-money-gen] units <- parseDigits step 0
  5825. 992.78 s [really-safe-money-gen]
  5826. 992.78 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  5827. 992.78 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5828. 992.78 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5829. 992.78 s [really-safe-money-gen]
  5830. 992.78 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5831. 992.78 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5832. 992.78 s [really-safe-money-gen] +step a digit = Just $ a * 10 - fromIntegral digit
  5833. 992.78 s [really-safe-money-gen] {-# INLINE step #-}
  5834. 992.78 s [really-safe-money-gen]
  5835. 992.78 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5836. 992.78 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  5837. 992.78 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5838. 992.78 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5839. 992.78 s [really-safe-money-gen] decimalLiteralP = do
  5840. 992.78 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5841. 992.78 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5842. 992.78 s [really-safe-money-gen] + isSignChar c = c == '-' || True
  5843. 992.78 s [really-safe-money-gen]
  5844. 992.78 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5845. 992.78 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5846. 992.78 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  5847. 992.78 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5848. 992.78 s [really-safe-money-gen]
  5849. 992.78 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5850. 992.78 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5851. 992.78 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5852. 992.78 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  5853. 992.78 s [really-safe-money-gen]
  5854. 992.78 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5855. 992.78 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5856. 992.78 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  5857. 992.78 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5858. 992.78 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5859. 992.78 s [really-safe-money-gen] decimalLiteralP = do
  5860. 992.78 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5861. 992.78 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5862. 992.78 s [really-safe-money-gen] + isSignChar c = False
  5863. 992.78 s [really-safe-money-gen]
  5864. 997.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5865. 997.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5866. 997.57 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  5867. 997.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5868. 997.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5869. 997.57 s [really-safe-money-gen] decimalLiteralP = do
  5870. 997.57 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5871. 997.57 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5872. 997.57 s [really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
  5873. 997.57 s [really-safe-money-gen]
  5874. 997.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5875. 997.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5876. 997.57 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  5877. 997.57 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5878. 997.57 s [really-safe-money-gen]
  5879. 997.57 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5880. 997.57 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5881. 997.57 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5882. 997.58 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m - 10 + fromIntegral digit, succ e)
  5883. 997.58 s [really-safe-money-gen]
  5884. 997.58 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5885. 997.58 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5886. 997.58 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  5887. 997.58 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  5888. 997.58 s [really-safe-money-gen]
  5889. 997.58 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5890. 997.58 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5891. 997.58 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  5892. 997.58 s [really-safe-money-gen] + pure $ Just $ not (signChar == '+')
  5893. 997.58 s [really-safe-money-gen]
  5894. 997.58 s [really-safe-money-gen] units <- parseDigits step 0
  5895. 997.58 s [really-safe-money-gen]
  5896. 997.58 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  5897. 997.58 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  5898. 997.58 s [really-safe-money-gen]
  5899. 997.58 s [really-safe-money-gen] units <- parseDigits step 0
  5900. 997.58 s [really-safe-money-gen]
  5901. 997.58 s [really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
  5902. 997.58 s [really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
  5903. 997.58 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  5904. 997.58 s [really-safe-money-gen]
  5905. 997.58 s [really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
  5906. 997.58 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  5907. 997.58 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  5908. 997.58 s [really-safe-money-gen]
  5909. 997.58 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  5910. 997.58 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  5911. 997.58 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  5912. 997.58 s [really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  5913. 997.58 s [really-safe-money-gen] Just dl -> pure dl
  5914. 997.58 s [really-safe-money-gen]
  5915. 997.58 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5916. 997.58 s [really-safe-money-gen] decimalLiteralP = do
  5917. 997.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  5918. 997.59 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  5919. 997.59 s [really-safe-money-gen]
  5920. 997.59 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  5921. 997.59 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  5922. 997.59 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  5923. 997.59 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  5924. 997.59 s [really-safe-money-gen] - Just dl -> pure dl
  5925. 997.59 s [really-safe-money-gen]
  5926. 997.59 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5927. 997.59 s [really-safe-money-gen] decimalLiteralP = do
  5928. 997.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  5929. 997.59 s [really-safe-money-gen] @@ -83,9 +83,8 @@
  5930. 997.59 s [really-safe-money-gen] instance NFData DecimalLiteral
  5931. 997.59 s [really-safe-money-gen]
  5932. 997.59 s [really-safe-money-gen] instance IsString DecimalLiteral where
  5933. 997.59 s [really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
  5934. 997.59 s [really-safe-money-gen] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
  5935. 997.59 s [really-safe-money-gen] Just dl -> dl
  5936. 997.59 s [really-safe-money-gen]
  5937. 997.59 s [really-safe-money-gen] -- | Parse a decimal literal from a string
  5938. 997.59 s [really-safe-money-gen] --
  5939. 997.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  5940. 997.59 s [really-safe-money-gen] @@ -83,9 +83,8 @@
  5941. 997.59 s [really-safe-money-gen] instance NFData DecimalLiteral
  5942. 997.59 s [really-safe-money-gen]
  5943. 997.59 s [really-safe-money-gen] instance IsString DecimalLiteral where
  5944. 997.59 s [really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
  5945. 997.59 s [really-safe-money-gen] Nothing -> error $ "Invalid DecimalLiteral: " <> show s
  5946. 997.59 s [really-safe-money-gen] - Just dl -> dl
  5947. 997.59 s [really-safe-money-gen]
  5948. 997.59 s [really-safe-money-gen] -- | Parse a decimal literal from a string
  5949. 997.59 s [really-safe-money-gen] --
  5950. 997.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5951. 997.59 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5952. 997.59 s [really-safe-money-gen]
  5953. 997.59 s [really-safe-money-gen] -- | See 'Account.distribute'
  5954. 997.59 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5955. 997.59 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5956. 997.60 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5957. 997.60 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  5958. 997.60 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5959. 997.60 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5960. 997.60 s [really-safe-money-gen]
  5961. 997.60 s [really-safe-money-gen] -- | The result of 'distribute'
  5962. 997.60 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5963. 997.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5964. 997.60 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5965. 997.60 s [really-safe-money-gen]
  5966. 997.60 s [really-safe-money-gen] -- | See 'Account.distribute'
  5967. 997.60 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5968. 997.60 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5969. 997.60 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5970. 997.60 s [really-safe-money-gen] DistributedZero -> DistributedZero
  5971. 997.60 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5972. 997.60 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5973. 997.60 s [really-safe-money-gen]
  5974. 997.60 s [really-safe-money-gen] -- | The result of 'distribute'
  5975. 997.60 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5976. 997.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5977. 997.60 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5978. 997.60 s [really-safe-money-gen]
  5979. 997.60 s [really-safe-money-gen] -- | See 'Account.distribute'
  5980. 997.60 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5981. 997.60 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5982. 997.60 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5983. 997.60 s [really-safe-money-gen] DistributedZero -> DistributedZero
  5984. 997.60 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5985. 997.60 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5986. 997.60 s [really-safe-money-gen]
  5987. 997.60 s [really-safe-money-gen] -- | The result of 'distribute'
  5988. 997.60 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5989. 997.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5990. 997.60 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5991. 997.60 s [really-safe-money-gen]
  5992. 997.60 s [really-safe-money-gen] -- | See 'Account.distribute'
  5993. 997.60 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5994. 997.61 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5995. 997.61 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5996. 997.61 s [really-safe-money-gen] DistributedZero -> DistributedZero
  5997. 997.61 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5998. 997.61 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5999. 997.61 s [really-safe-money-gen]
  6000. 997.61 s [really-safe-money-gen] -- | The result of 'distribute'
  6001. 997.61 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  6002. 997.61 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
  6003. 997.61 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  6004. 997.61 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6005. 997.61 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6006. 997.61 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  6007. 997.61 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  6008. 997.61 s [really-safe-money-gen] + cr - fromIntegral qf2 / fromIntegral qf1
  6009. 997.61 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
  6010. 997.61 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  6011. 997.61 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6012. 997.61 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6013. 997.61 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  6014. 997.61 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  6015. 997.61 s [really-safe-money-gen] + cr + fromIntegral qf2 / fromIntegral qf1
  6016. 997.61 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  6017. 997.61 s [really-safe-money-gen] @@ -127,7 +127,7 @@
  6018. 997.61 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  6019. 997.61 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  6020. 997.61 s [really-safe-money-gen]
  6021. 997.61 s [really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
  6022. 997.61 s [really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
  6023. 997.61 s [really-safe-money-gen]
  6024. 997.61 s [really-safe-money-gen] pure $ DecimalLiteral mSign m e
  6025. 997.61 s [really-safe-money-gen]
  6026. 997.61 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
  6027. 997.61 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  6028. 997.61 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  6029. 997.61 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  6030. 997.61 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  6031. 997.61 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  6032. 997.61 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 - cr2
  6033. 997.61 s [really-safe-money-gen]
  6034. 997.61 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6035. 1002.86 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6036. 1002.88 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
  6037. 1002.88 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  6038. 1002.89 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  6039. 1002.89 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  6040. 1002.89 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  6041. 1002.89 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  6042. 1002.89 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  6043. 1002.89 s [really-safe-money-gen]
  6044. 1002.89 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6045. 1002.89 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6046. 1002.89 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  6047. 1002.89 s [really-safe-money-gen] @@ -122,7 +122,7 @@
  6048. 1002.89 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6049. 1002.89 s [really-safe-money-gen] pure $ Just $ signChar == '+'
  6050. 1002.89 s [really-safe-money-gen]
  6051. 1002.89 s [really-safe-money-gen] - units <- parseDigits step 0
  6052. 1002.89 s [really-safe-money-gen] + units <- parseDigits step 1
  6053. 1002.89 s [really-safe-money-gen]
  6054. 1002.89 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  6055. 1002.89 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  6056. 1002.89 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  6057. 1002.89 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6058. 1002.89 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6059. 1002.89 s [really-safe-money-gen] -- Nothing
  6060. 1002.90 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6061. 1002.90 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6062. 1002.90 s [really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  6063. 1002.90 s [really-safe-money-gen]
  6064. 1002.90 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6065. 1002.90 s [really-safe-money-gen] --
  6066. 1002.90 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  6067. 1002.90 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6068. 1002.90 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6069. 1002.90 s [really-safe-money-gen] -- Nothing
  6070. 1002.90 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6071. 1002.90 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6072. 1002.90 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  6073. 1002.90 s [really-safe-money-gen]
  6074. 1002.90 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6075. 1002.90 s [really-safe-money-gen] --
  6076. 1002.90 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  6077. 1002.90 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  6078. 1002.90 s [really-safe-money-gen]
  6079. 1002.90 s [really-safe-money-gen] -- | One-to-one conversion rate
  6080. 1002.90 s [really-safe-money-gen] oneToOne :: ConversionRate
  6081. 1002.90 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  6082. 1002.90 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  6083. 1002.90 s [really-safe-money-gen]
  6084. 1002.90 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  6085. 1002.90 s [really-safe-money-gen] --
  6086. 1002.90 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  6087. 1002.90 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6088. 1002.90 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6089. 1002.91 s [really-safe-money-gen] -- Nothing
  6090. 1002.91 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6091. 1002.91 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6092. 1002.91 s [really-safe-money-gen] +fromRational r = if r > 0 then Nothing else fromRatio (realToFrac r)
  6093. 1002.91 s [really-safe-money-gen]
  6094. 1002.91 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6095. 1002.91 s [really-safe-money-gen] --
  6096. 1002.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  6097. 1002.91 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6098. 1002.91 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6099. 1002.91 s [really-safe-money-gen] -- Nothing
  6100. 1002.91 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6101. 1002.91 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6102. 1002.91 s [really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  6103. 1002.91 s [really-safe-money-gen]
  6104. 1002.91 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6105. 1002.91 s [really-safe-money-gen] --
  6106. 1002.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  6107. 1002.91 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6108. 1002.91 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6109. 1002.91 s [really-safe-money-gen] irat <-
  6110. 1002.91 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6111. 1002.91 s [really-safe-money-gen] - in if numerator r == 0
  6112. 1002.91 s [really-safe-money-gen] + in if True
  6113. 1002.91 s [really-safe-money-gen] then Nothing
  6114. 1002.91 s [really-safe-money-gen] else pure r
  6115. 1002.91 s [really-safe-money-gen]
  6116. 1002.91 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
  6117. 1002.91 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6118. 1002.91 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6119. 1002.91 s [really-safe-money-gen] mconcat
  6120. 1002.91 s [really-safe-money-gen] [ genericValidate cr,
  6121. 1002.91 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6122. 1002.91 s [really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
  6123. 1002.91 s [really-safe-money-gen] ]
  6124. 1002.91 s [really-safe-money-gen]
  6125. 1002.91 s [really-safe-money-gen] instance NFData ConversionRate
  6126. 1002.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  6127. 1002.91 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6128. 1002.91 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6129. 1002.92 s [really-safe-money-gen] mconcat
  6130. 1002.92 s [really-safe-money-gen] [ genericValidate cr,
  6131. 1002.92 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6132. 1002.92 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  6133. 1002.92 s [really-safe-money-gen] ]
  6134. 1002.92 s [really-safe-money-gen]
  6135. 1002.92 s [really-safe-money-gen] instance NFData ConversionRate
  6136. 1002.92 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  6137. 1002.92 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  6138. 1002.92 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  6139. 1002.92 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  6140. 1002.92 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  6141. 1002.92 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  6142. 1002.92 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
  6143. 1002.92 s [really-safe-money-gen]
  6144. 1002.92 s [really-safe-money-gen] -- | Compose two conversion rates
  6145. 1002.92 s [really-safe-money-gen] --
  6146. 1002.92 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  6147. 1002.92 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  6148. 1002.92 s [really-safe-money-gen]
  6149. 1002.92 s [really-safe-money-gen] -- | One-to-one conversion rate
  6150. 1002.92 s [really-safe-money-gen] oneToOne :: ConversionRate
  6151. 1002.92 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  6152. 1002.92 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  6153. 1002.92 s [really-safe-money-gen]
  6154. 1002.92 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  6155. 1002.92 s [really-safe-money-gen] --
  6156. 1002.92 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  6157. 1002.92 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  6158. 1002.92 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  6159. 1002.92 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  6160. 1002.92 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  6161. 1002.92 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  6162. 1002.92 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
  6163. 1002.92 s [really-safe-money-gen]
  6164. 1002.92 s [really-safe-money-gen] -- | Compose two conversion rates
  6165. 1002.92 s [really-safe-money-gen] --
  6166. 1002.92 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  6167. 1002.92 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  6168. 1002.92 s [really-safe-money-gen] instance Validity ConversionRate where
  6169. 1002.92 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6170. 1002.92 s [really-safe-money-gen] mconcat
  6171. 1002.92 s [really-safe-money-gen] - [ genericValidate cr,
  6172. 1002.92 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6173. 1002.93 s [really-safe-money-gen] ]
  6174. 1002.93 s [really-safe-money-gen]
  6175. 1002.93 s [really-safe-money-gen] instance NFData ConversionRate
  6176. 1002.93 s [really-safe-money-gen]
  6177. 1002.93 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  6178. 1002.93 s [really-safe-money-gen] @@ -34,9 +34,8 @@
  6179. 1002.93 s [really-safe-money-gen] instance Validity ConversionRate where
  6180. 1002.93 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6181. 1002.93 s [really-safe-money-gen] mconcat
  6182. 1002.93 s [really-safe-money-gen] - [ genericValidate cr,
  6183. 1002.93 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  6184. 1002.93 s [really-safe-money-gen] ]
  6185. 1002.93 s [really-safe-money-gen]
  6186. 1002.93 s [really-safe-money-gen] instance NFData ConversionRate
  6187. 1002.93 s [really-safe-money-gen]
  6188. 1002.93 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  6189. 1002.93 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6190. 1002.93 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6191. 1002.93 s [really-safe-money-gen] mconcat
  6192. 1002.93 s [really-safe-money-gen] [ genericValidate cr,
  6193. 1002.93 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6194. 1002.93 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  6195. 1002.93 s [really-safe-money-gen] ]
  6196. 1002.93 s [really-safe-money-gen]
  6197. 1002.93 s [really-safe-money-gen] instance NFData ConversionRate
  6198. 1002.93 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  6199. 1002.93 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6200. 1002.93 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6201. 1002.93 s [really-safe-money-gen] irat <-
  6202. 1002.93 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6203. 1002.93 s [really-safe-money-gen] - in if numerator r == 0
  6204. 1002.93 s [really-safe-money-gen] + in if numerator r == 1
  6205. 1002.93 s [really-safe-money-gen] then Nothing
  6206. 1002.93 s [really-safe-money-gen] else pure r
  6207. 1002.93 s [really-safe-money-gen]
  6208. 1002.93 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  6209. 1002.93 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6210. 1002.93 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6211. 1002.93 s [really-safe-money-gen] -- Nothing
  6212. 1002.93 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6213. 1002.93 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6214. 1002.93 s [really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  6215. 1002.93 s [really-safe-money-gen]
  6216. 1002.93 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6217. 1002.93 s [really-safe-money-gen] --
  6218. 1002.94 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  6219. 1002.94 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6220. 1002.94 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6221. 1002.94 s [really-safe-money-gen] -- Nothing
  6222. 1002.94 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6223. 1002.94 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6224. 1002.94 s [really-safe-money-gen] +fromRational r = if r >= 0 then Nothing else fromRatio (realToFrac r)
  6225. 1002.94 s [really-safe-money-gen]
  6226. 1002.94 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6227. 1002.94 s [really-safe-money-gen] --
  6228. 1002.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  6229. 1002.94 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6230. 1002.94 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6231. 1010.42 s [really-safe-money-gen] irat <-
  6232. 1010.42 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6233. 1010.44 s [really-safe-money-gen] - in if numerator r == 0
  6234. 1010.44 s [really-safe-money-gen] + in if False
  6235. 1010.44 s [really-safe-money-gen] then Nothing
  6236. 1010.44 s [really-safe-money-gen] else pure r
  6237. 1010.44 s [really-safe-money-gen]
  6238. 1010.44 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  6239. 1010.44 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6240. 1010.44 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6241. 1010.44 s [really-safe-money-gen] mconcat
  6242. 1010.44 s [really-safe-money-gen] [ genericValidate cr,
  6243. 1010.44 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6244. 1010.44 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
  6245. 1010.44 s [really-safe-money-gen] ]
  6246. 1010.44 s [really-safe-money-gen]
  6247. 1010.45 s [really-safe-money-gen] instance NFData ConversionRate
  6248. 1010.45 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
  6249. 1010.45 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6250. 1010.45 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6251. 1010.45 s [really-safe-money-gen] -- Nothing
  6252. 1010.45 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6253. 1010.45 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6254. 1010.45 s [really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  6255. 1010.45 s [really-safe-money-gen]
  6256. 1010.45 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6257. 1010.45 s [really-safe-money-gen] --
  6258. 1010.45 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  6259. 1010.45 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6260. 1010.45 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6261. 1010.45 s [really-safe-money-gen] irat <-
  6262. 1010.45 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6263. 1010.45 s [really-safe-money-gen] - in if numerator r == 0
  6264. 1010.45 s [really-safe-money-gen] + in if not (numerator r == 0)
  6265. 1010.45 s [really-safe-money-gen] then Nothing
  6266. 1010.45 s [really-safe-money-gen] else pure r
  6267. 1010.45 s [really-safe-money-gen]
  6268. 1010.45 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  6269. 1010.45 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6270. 1010.45 s [really-safe-money-gen]
  6271. 1010.45 s [really-safe-money-gen] rat <-
  6272. 1010.45 s [really-safe-money-gen] let r = 1 / irat
  6273. 1010.45 s [really-safe-money-gen] - in if r < 0
  6274. 1010.45 s [really-safe-money-gen] + in if r <= 0
  6275. 1010.45 s [really-safe-money-gen] then Nothing
  6276. 1010.45 s [really-safe-money-gen] else Just r
  6277. 1010.45 s [really-safe-money-gen]
  6278. 1010.45 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  6279. 1010.45 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6280. 1010.45 s [really-safe-money-gen]
  6281. 1010.45 s [really-safe-money-gen] rat <-
  6282. 1010.45 s [really-safe-money-gen] let r = 1 / irat
  6283. 1010.45 s [really-safe-money-gen] - in if r < 0
  6284. 1010.45 s [really-safe-money-gen] + in if r < 1
  6285. 1010.45 s [really-safe-money-gen] then Nothing
  6286. 1010.45 s [really-safe-money-gen] else Just r
  6287. 1010.45 s [really-safe-money-gen]
  6288. 1010.45 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  6289. 1010.45 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6290. 1010.45 s [really-safe-money-gen]
  6291. 1010.45 s [really-safe-money-gen] rat <-
  6292. 1010.45 s [really-safe-money-gen] let r = 1 / irat
  6293. 1010.45 s [really-safe-money-gen] - in if r < 0
  6294. 1010.45 s [really-safe-money-gen] + in if r >= 0
  6295. 1010.45 s [really-safe-money-gen] then Nothing
  6296. 1010.45 s [really-safe-money-gen] else Just r
  6297. 1010.45 s [really-safe-money-gen]
  6298. 1010.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  6299. 1010.46 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6300. 1010.46 s [really-safe-money-gen]
  6301. 1010.46 s [really-safe-money-gen] rat <-
  6302. 1010.46 s [really-safe-money-gen] let r = 1 / irat
  6303. 1010.46 s [really-safe-money-gen] - in if r < 0
  6304. 1010.46 s [really-safe-money-gen] + in if True
  6305. 1010.46 s [really-safe-money-gen] then Nothing
  6306. 1010.46 s [really-safe-money-gen] else Just r
  6307. 1010.46 s [really-safe-money-gen]
  6308. 1010.46 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  6309. 1010.46 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6310. 1010.46 s [really-safe-money-gen]
  6311. 1010.46 s [really-safe-money-gen] rat <-
  6312. 1010.46 s [really-safe-money-gen] let r = 1 / irat
  6313. 1010.46 s [really-safe-money-gen] - in if r < 0
  6314. 1010.46 s [really-safe-money-gen] + in if not (r < 0)
  6315. 1010.46 s [really-safe-money-gen] then Nothing
  6316. 1010.46 s [really-safe-money-gen] else Just r
  6317. 1010.46 s [really-safe-money-gen]
  6318. 1010.46 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  6319. 1010.46 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  6320. 1010.46 s [really-safe-money-gen] else pure r
  6321. 1010.46 s [really-safe-money-gen]
  6322. 1010.46 s [really-safe-money-gen] rat <-
  6323. 1010.46 s [really-safe-money-gen] - let r = 1 / irat
  6324. 1010.46 s [really-safe-money-gen] + let r = -1 / irat
  6325. 1010.46 s [really-safe-money-gen] in if r < 0
  6326. 1010.46 s [really-safe-money-gen] then Nothing
  6327. 1010.46 s [really-safe-money-gen] else Just r
  6328. 1010.46 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  6329. 1010.46 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  6330. 1010.46 s [really-safe-money-gen] else pure r
  6331. 1010.46 s [really-safe-money-gen]
  6332. 1010.46 s [really-safe-money-gen] rat <-
  6333. 1010.46 s [really-safe-money-gen] - let r = 1 / irat
  6334. 1010.46 s [really-safe-money-gen] + let r = 0 / irat
  6335. 1010.46 s [really-safe-money-gen] in if r < 0
  6336. 1010.46 s [really-safe-money-gen] then Nothing
  6337. 1010.46 s [really-safe-money-gen] else Just r
  6338. 1010.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  6339. 1010.46 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6340. 1010.46 s [really-safe-money-gen]
  6341. 1010.46 s [really-safe-money-gen] rat <-
  6342. 1010.46 s [really-safe-money-gen] let r = 1 / irat
  6343. 1010.46 s [really-safe-money-gen] - in if r < 0
  6344. 1010.46 s [really-safe-money-gen] + in if False
  6345. 1010.46 s [really-safe-money-gen] then Nothing
  6346. 1010.46 s [really-safe-money-gen] else Just r
  6347. 1010.46 s [really-safe-money-gen]
  6348. 1010.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  6349. 1010.46 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6350. 1010.46 s [really-safe-money-gen] else Just r
  6351. 1010.46 s [really-safe-money-gen]
  6352. 1010.46 s [really-safe-money-gen] fac <-
  6353. 1010.47 s [really-safe-money-gen] - if denominator rat == 1
  6354. 1010.47 s [really-safe-money-gen] + if True
  6355. 1010.47 s [really-safe-money-gen] then Just (numerator rat)
  6356. 1010.47 s [really-safe-money-gen] else Nothing
  6357. 1010.47 s [really-safe-money-gen]
  6358. 1010.47 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  6359. 1010.47 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6360. 1010.47 s [really-safe-money-gen] else Just r
  6361. 1010.47 s [really-safe-money-gen]
  6362. 1010.47 s [really-safe-money-gen] fac <-
  6363. 1010.47 s [really-safe-money-gen] - if denominator rat == 1
  6364. 1010.47 s [really-safe-money-gen] + if denominator rat == -1
  6365. 1010.47 s [really-safe-money-gen] then Just (numerator rat)
  6366. 1010.47 s [really-safe-money-gen] else Nothing
  6367. 1010.47 s [really-safe-money-gen]
  6368. 1010.47 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  6369. 1010.47 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6370. 1010.47 s [really-safe-money-gen] else Just r
  6371. 1010.47 s [really-safe-money-gen]
  6372. 1010.47 s [really-safe-money-gen] fac <-
  6373. 1010.47 s [really-safe-money-gen] - if denominator rat == 1
  6374. 1010.47 s [really-safe-money-gen] + if denominator rat == 0
  6375. 1010.47 s [really-safe-money-gen] then Just (numerator rat)
  6376. 1010.47 s [really-safe-money-gen] else Nothing
  6377. 1010.47 s [really-safe-money-gen]
  6378. 1010.47 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  6379. 1010.47 s [really-safe-money-gen] @@ -92,7 +92,7 @@
  6380. 1010.47 s [really-safe-money-gen] let r = 1 / irat
  6381. 1010.47 s [really-safe-money-gen] in if r < 0
  6382. 1010.47 s [really-safe-money-gen] then Nothing
  6383. 1010.47 s [really-safe-money-gen] - else Just r
  6384. 1010.47 s [really-safe-money-gen] + else Nothing
  6385. 1010.47 s [really-safe-money-gen]
  6386. 1010.47 s [really-safe-money-gen] fac <-
  6387. 1010.48 s [really-safe-money-gen] if denominator rat == 1
  6388. 1010.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  6389. 1010.48 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6390. 1010.48 s [really-safe-money-gen] else Just r
  6391. 1010.48 s [really-safe-money-gen]
  6392. 1010.48 s [really-safe-money-gen] fac <-
  6393. 1010.48 s [really-safe-money-gen] - if denominator rat == 1
  6394. 1010.48 s [really-safe-money-gen] + if False
  6395. 1010.48 s [really-safe-money-gen] then Just (numerator rat)
  6396. 1010.48 s [really-safe-money-gen] else Nothing
  6397. 1010.48 s [really-safe-money-gen]
  6398. 1010.48 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  6399. 1010.48 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  6400. 1010.48 s [really-safe-money-gen]
  6401. 1010.48 s [really-safe-money-gen] fac <-
  6402. 1010.48 s [really-safe-money-gen] if denominator rat == 1
  6403. 1010.48 s [really-safe-money-gen] - then Just (numerator rat)
  6404. 1010.48 s [really-safe-money-gen] + then Nothing
  6405. 1010.48 s [really-safe-money-gen] else Nothing
  6406. 1010.48 s [really-safe-money-gen]
  6407. 1010.48 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  6408. 1010.48 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  6409. 1010.48 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6410. 1010.48 s [really-safe-money-gen] then Just (numerator rat)
  6411. 1010.48 s [really-safe-money-gen] else Nothing
  6412. 1010.48 s [really-safe-money-gen]
  6413. 1010.48 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6414. 1010.48 s [really-safe-money-gen] + if fac > fromIntegral (maxBound :: Word32)
  6415. 1010.48 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6416. 1010.48 s [really-safe-money-gen] else Nothing
  6417. 1010.48 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  6418. 1010.48 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6419. 1010.48 s [really-safe-money-gen] then Just (numerator rat)
  6420. 1010.48 s [really-safe-money-gen] else Nothing
  6421. 1010.48 s [really-safe-money-gen]
  6422. 1010.48 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6423. 1010.48 s [really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
  6424. 1010.48 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6425. 1010.48 s [really-safe-money-gen] else Nothing
  6426. 1010.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  6427. 1010.48 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6428. 1010.48 s [really-safe-money-gen] then Just (numerator rat)
  6429. 1010.48 s [really-safe-money-gen] else Nothing
  6430. 1010.49 s [really-safe-money-gen]
  6431. 1010.49 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6432. 1010.49 s [really-safe-money-gen] + if True
  6433. 1010.49 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6434. 1010.49 s [really-safe-money-gen] else Nothing
  6435. 1010.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  6436. 1010.49 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6437. 1010.49 s [really-safe-money-gen]
  6438. 1010.49 s [really-safe-money-gen] rat <-
  6439. 1010.49 s [really-safe-money-gen] let r = 1 / irat
  6440. 1010.49 s [really-safe-money-gen] - in if r < 0
  6441. 1010.49 s [really-safe-money-gen] + in if r > 0
  6442. 1010.49 s [really-safe-money-gen] then Nothing
  6443. 1010.49 s [really-safe-money-gen] else Just r
  6444. 1010.49 s [really-safe-money-gen]
  6445. 1010.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  6446. 1010.49 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6447. 1010.49 s [really-safe-money-gen] else Just r
  6448. 1010.49 s [really-safe-money-gen]
  6449. 1010.49 s [really-safe-money-gen] fac <-
  6450. 1010.49 s [really-safe-money-gen] - if denominator rat == 1
  6451. 1010.49 s [really-safe-money-gen] + if not (denominator rat == 1)
  6452. 1010.49 s [really-safe-money-gen] then Just (numerator rat)
  6453. 1010.49 s [really-safe-money-gen] else Nothing
  6454. 1010.49 s [really-safe-money-gen]
  6455. 1010.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  6456. 1010.49 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6457. 1010.49 s [really-safe-money-gen] then Just (numerator rat)
  6458. 1010.49 s [really-safe-money-gen] else Nothing
  6459. 1010.49 s [really-safe-money-gen]
  6460. 1010.49 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6461. 1016.24 s [really-safe-money-gen] + if fac >= fromIntegral (maxBound :: Word32)
  6462. 1016.27 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6463. 1016.27 s [really-safe-money-gen] else Nothing
  6464. 1016.27 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  6465. 1016.27 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  6466. 1016.27 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  6467. 1016.27 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  6468. 1016.27 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  6469. 1016.27 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  6470. 1016.27 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  6471. 1016.27 s [really-safe-money-gen]
  6472. 1016.27 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  6473. 1016.27 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  6474. 1016.27 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  6475. 1016.27 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6476. 1016.27 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6477. 1016.27 s [really-safe-money-gen] mconcat
  6478. 1016.27 s [really-safe-money-gen] [ genericValidate qf,
  6479. 1016.27 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6480. 1016.27 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
  6481. 1016.27 s [really-safe-money-gen] ]
  6482. 1016.27 s [really-safe-money-gen]
  6483. 1016.27 s [really-safe-money-gen] instance NFData QuantisationFactor
  6484. 1016.27 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  6485. 1016.27 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6486. 1016.27 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6487. 1016.27 s [really-safe-money-gen] mconcat
  6488. 1016.28 s [really-safe-money-gen] [ genericValidate qf,
  6489. 1016.28 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6490. 1016.28 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  6491. 1016.28 s [really-safe-money-gen] ]
  6492. 1016.28 s [really-safe-money-gen]
  6493. 1016.28 s [really-safe-money-gen] instance NFData QuantisationFactor
  6494. 1016.28 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  6495. 1016.28 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  6496. 1016.28 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  6497. 1016.28 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  6498. 1016.28 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  6499. 1016.28 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  6500. 1016.28 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  6501. 1016.28 s [really-safe-money-gen]
  6502. 1016.28 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  6503. 1016.28 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  6504. 1016.28 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  6505. 1016.28 s [really-safe-money-gen] @@ -100,5 +100,5 @@
  6506. 1016.28 s [really-safe-money-gen] else Nothing
  6507. 1016.28 s [really-safe-money-gen]
  6508. 1016.28 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  6509. 1016.28 s [really-safe-money-gen] - then Just (QuantisationFactor (fromIntegral fac))
  6510. 1016.28 s [really-safe-money-gen] + then Nothing
  6511. 1016.28 s [really-safe-money-gen] else Nothing
  6512. 1016.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  6513. 1016.28 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6514. 1016.28 s [really-safe-money-gen] then Just (numerator rat)
  6515. 1016.28 s [really-safe-money-gen] else Nothing
  6516. 1016.28 s [really-safe-money-gen]
  6517. 1016.28 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6518. 1016.28 s [really-safe-money-gen] + if False
  6519. 1016.28 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6520. 1016.28 s [really-safe-money-gen] else Nothing
  6521. 1016.28 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  6522. 1016.28 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6523. 1016.28 s [really-safe-money-gen] then Just (numerator rat)
  6524. 1016.28 s [really-safe-money-gen] else Nothing
  6525. 1016.28 s [really-safe-money-gen]
  6526. 1016.28 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6527. 1016.28 s [really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
  6528. 1016.28 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6529. 1016.28 s [really-safe-money-gen] else Nothing
  6530. 1016.28 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  6531. 1016.28 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  6532. 1016.28 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  6533. 1016.28 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  6534. 1016.28 s [really-safe-money-gen] let decimals :: Int
  6535. 1016.28 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  6536. 1016.29 s [really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  6537. 1016.29 s [really-safe-money-gen] in printf "%%0.%df" decimals
  6538. 1016.29 s [really-safe-money-gen]
  6539. 1016.29 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6540. 1016.29 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:720:6-40
  6541. 1016.29 s [really-safe-money-gen] @@ -717,7 +717,7 @@
  6542. 1016.29 s [really-safe-money-gen] rate _ _ _ (Amount 0) = Nothing
  6543. 1016.29 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6544. 1016.29 s [really-safe-money-gen] ConversionRate.fromRatio $
  6545. 1016.29 s [really-safe-money-gen] - (fromIntegral a2 * fromIntegral qf1)
  6546. 1016.29 s [really-safe-money-gen] + (fromIntegral a2 - fromIntegral qf1)
  6547. 1016.29 s [really-safe-money-gen] % (fromIntegral a1 * fromIntegral qf2)
  6548. 1016.29 s [really-safe-money-gen]
  6549. 1016.29 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6550. 1016.29 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:721:10-44
  6551. 1016.29 s [really-safe-money-gen] @@ -718,7 +718,7 @@
  6552. 1016.29 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6553. 1016.29 s [really-safe-money-gen] ConversionRate.fromRatio $
  6554. 1016.29 s [really-safe-money-gen] (fromIntegral a2 * fromIntegral qf1)
  6555. 1016.29 s [really-safe-money-gen] - % (fromIntegral a1 * fromIntegral qf2)
  6556. 1016.29 s [really-safe-money-gen] + % (fromIntegral a1 + fromIntegral qf2)
  6557. 1016.29 s [really-safe-money-gen]
  6558. 1016.29 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6559. 1016.29 s [really-safe-money-gen] -- another currency using a conversion rate.
  6560. 1016.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  6561. 1016.29 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6562. 1016.29 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6563. 1016.29 s [really-safe-money-gen] smallerChunk :: Amount
  6564. 1016.29 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6565. 1016.29 s [really-safe-money-gen] - in if rest == 0
  6566. 1016.29 s [really-safe-money-gen] + in if False
  6567. 1016.29 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6568. 1016.29 s [really-safe-money-gen] else
  6569. 1016.29 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6570. 1016.29 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:720:6-40
  6571. 1016.29 s [really-safe-money-gen] @@ -717,7 +717,7 @@
  6572. 1016.29 s [really-safe-money-gen] rate _ _ _ (Amount 0) = Nothing
  6573. 1016.29 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6574. 1016.29 s [really-safe-money-gen] ConversionRate.fromRatio $
  6575. 1016.29 s [really-safe-money-gen] - (fromIntegral a2 * fromIntegral qf1)
  6576. 1016.30 s [really-safe-money-gen] + (fromIntegral a2 + fromIntegral qf1)
  6577. 1016.30 s [really-safe-money-gen] % (fromIntegral a1 * fromIntegral qf2)
  6578. 1016.30 s [really-safe-money-gen]
  6579. 1016.30 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6580. 1016.30 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19
  6581. 1016.30 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6582. 1016.30 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6583. 1016.30 s [really-safe-money-gen] smallerChunk :: Amount
  6584. 1016.30 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6585. 1016.30 s [really-safe-money-gen] - in if rest == 0
  6586. 1016.30 s [really-safe-money-gen] + in if not (rest == 0)
  6587. 1016.30 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6588. 1016.30 s [really-safe-money-gen] else
  6589. 1016.30 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6590. 1016.30 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:721:10-44
  6591. 1016.30 s [really-safe-money-gen] @@ -718,7 +718,7 @@
  6592. 1016.30 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6593. 1016.30 s [really-safe-money-gen] ConversionRate.fromRatio $
  6594. 1016.30 s [really-safe-money-gen] (fromIntegral a2 * fromIntegral qf1)
  6595. 1016.30 s [really-safe-money-gen] - % (fromIntegral a1 * fromIntegral qf2)
  6596. 1016.30 s [really-safe-money-gen] + % (fromIntegral a1 - fromIntegral qf2)
  6597. 1016.30 s [really-safe-money-gen]
  6598. 1016.30 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6599. 1016.30 s [really-safe-money-gen] -- another currency using a conversion rate.
  6600. 1016.30 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  6601. 1016.30 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  6602. 1016.30 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  6603. 1016.30 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  6604. 1016.30 s [really-safe-money-gen] let decimals :: Int
  6605. 1016.30 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  6606. 1016.30 s [really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  6607. 1016.30 s [really-safe-money-gen] in printf "%%0.%df" decimals
  6608. 1016.30 s [really-safe-money-gen]
  6609. 1016.30 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6610. 1016.30 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
  6611. 1016.30 s [really-safe-money-gen] @@ -574,7 +574,7 @@
  6612. 1016.30 s [really-safe-money-gen] numberOfLargerChunks :: Word32
  6613. 1016.30 s [really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  6614. 1016.30 s [really-safe-money-gen] numberOfSmallerChunks :: Word32
  6615. 1016.30 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  6616. 1022.40 s [really-safe-money-gen] + numberOfSmallerChunks = f + numberOfLargerChunks
  6617. 1022.40 s [really-safe-money-gen] largerChunk :: Amount
  6618. 1022.42 s [really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
  6619. 1022.42 s [really-safe-money-gen] in DistributedIntoUnequalChunks
  6620. 1022.42 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
  6621. 1022.42 s [really-safe-money-gen] @@ -574,7 +574,7 @@
  6622. 1022.42 s [really-safe-money-gen] numberOfLargerChunks :: Word32
  6623. 1022.42 s [really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  6624. 1022.42 s [really-safe-money-gen] numberOfSmallerChunks :: Word32
  6625. 1022.42 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  6626. 1022.42 s [really-safe-money-gen] + numberOfSmallerChunks = f * numberOfLargerChunks
  6627. 1022.42 s [really-safe-money-gen] largerChunk :: Amount
  6628. 1022.42 s [really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
  6629. 1022.43 s [really-safe-money-gen] in DistributedIntoUnequalChunks
  6630. 1022.43 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  6631. 1022.43 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6632. 1022.43 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6633. 1022.43 s [really-safe-money-gen] r :: Integer
  6634. 1022.43 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6635. 1022.43 s [really-safe-money-gen] - in if r > maxBoundI
  6636. 1022.43 s [really-safe-money-gen] + in if r < maxBoundI
  6637. 1022.43 s [really-safe-money-gen] then Nothing
  6638. 1022.43 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6639. 1022.43 s [really-safe-money-gen]
  6640. 1022.43 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23
  6641. 1022.43 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6642. 1022.43 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6643. 1022.43 s [really-safe-money-gen] r :: Integer
  6644. 1022.43 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6645. 1022.43 s [really-safe-money-gen] - in if r > maxBoundI
  6646. 1022.43 s [really-safe-money-gen] + in if not (r > maxBoundI)
  6647. 1022.43 s [really-safe-money-gen] then Nothing
  6648. 1022.43 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6649. 1022.43 s [really-safe-money-gen]
  6650. 1022.43 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:546:14-66
  6651. 1022.43 s [really-safe-money-gen] @@ -543,7 +543,7 @@
  6652. 1022.43 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6653. 1022.43 s [really-safe-money-gen] in if r > maxBoundI
  6654. 1022.43 s [really-safe-money-gen] then Nothing
  6655. 1022.43 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6656. 1022.43 s [really-safe-money-gen] + else Nothing
  6657. 1022.43 s [really-safe-money-gen]
  6658. 1022.43 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  6659. 1022.43 s [really-safe-money-gen] --
  6660. 1022.43 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:517:11-18
  6661. 1022.43 s [really-safe-money-gen] @@ -514,7 +514,7 @@
  6662. 1022.43 s [really-safe-money-gen] i2 :: Integer
  6663. 1022.43 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6664. 1022.43 s [really-safe-money-gen] r :: Integer
  6665. 1022.43 s [really-safe-money-gen] - r = i1 - i2
  6666. 1022.43 s [really-safe-money-gen] + r = i1 * i2
  6667. 1022.43 s [really-safe-money-gen] in if r < 0
  6668. 1022.43 s [really-safe-money-gen] then Nothing
  6669. 1022.43 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6670. 1022.43 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15
  6671. 1022.43 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6672. 1022.43 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6673. 1022.43 s [really-safe-money-gen] r :: Integer
  6674. 1022.44 s [really-safe-money-gen] r = i1 - i2
  6675. 1022.44 s [really-safe-money-gen] - in if r < 0
  6676. 1022.44 s [really-safe-money-gen] + in if r < 1
  6677. 1022.44 s [really-safe-money-gen] then Nothing
  6678. 1022.44 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6679. 1022.44 s [really-safe-money-gen]
  6680. 1022.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  6681. 1022.44 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6682. 1022.44 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6683. 1022.44 s [really-safe-money-gen] r :: Integer
  6684. 1022.44 s [really-safe-money-gen] r = i1 - i2
  6685. 1022.44 s [really-safe-money-gen] - in if r < 0
  6686. 1022.44 s [really-safe-money-gen] + in if r <= 0
  6687. 1022.44 s [really-safe-money-gen] then Nothing
  6688. 1022.44 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6689. 1022.44 s [really-safe-money-gen]
  6690. 1022.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  6691. 1022.44 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6692. 1022.44 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6693. 1022.44 s [really-safe-money-gen] r :: Integer
  6694. 1022.44 s [really-safe-money-gen] r = i1 - i2
  6695. 1022.44 s [really-safe-money-gen] - in if r < 0
  6696. 1022.44 s [really-safe-money-gen] + in if r > 0
  6697. 1022.44 s [really-safe-money-gen] then Nothing
  6698. 1022.44 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6699. 1022.44 s [really-safe-money-gen]
  6700. 1022.44 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  6701. 1022.44 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6702. 1022.44 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6703. 1022.44 s [really-safe-money-gen] smallerChunk :: Amount
  6704. 1022.44 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6705. 1022.44 s [really-safe-money-gen] - in if rest == 0
  6706. 1022.44 s [really-safe-money-gen] + in if True
  6707. 1022.44 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6708. 1022.44 s [really-safe-money-gen] else
  6709. 1022.44 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6710. 1022.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  6711. 1022.44 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6712. 1022.44 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6713. 1022.44 s [really-safe-money-gen] r :: Integer
  6714. 1022.44 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6715. 1022.44 s [really-safe-money-gen] - in if r > maxBoundI
  6716. 1022.44 s [really-safe-money-gen] + in if r <= maxBoundI
  6717. 1022.44 s [really-safe-money-gen] then Nothing
  6718. 1022.44 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6719. 1022.44 s [really-safe-money-gen]
  6720. 1022.44 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  6721. 1022.44 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6722. 1022.44 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6723. 1022.44 s [really-safe-money-gen] mconcat
  6724. 1022.44 s [really-safe-money-gen] [ genericValidate qf,
  6725. 1022.44 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6726. 1022.44 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
  6727. 1022.44 s [really-safe-money-gen] ]
  6728. 1022.44 s [really-safe-money-gen]
  6729. 1022.44 s [really-safe-money-gen] instance NFData QuantisationFactor
  6730. 1022.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  6731. 1022.44 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6732. 1022.44 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6733. 1022.45 s [really-safe-money-gen] r :: Integer
  6734. 1022.45 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6735. 1022.45 s [really-safe-money-gen] - in if r > maxBoundI
  6736. 1022.45 s [really-safe-money-gen] + in if r >= maxBoundI
  6737. 1022.45 s [really-safe-money-gen] then Nothing
  6738. 1022.45 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6739. 1022.45 s [really-safe-money-gen]
  6740. 1022.45 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  6741. 1022.45 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6742. 1022.45 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6743. 1022.45 s [really-safe-money-gen] r :: Integer
  6744. 1022.45 s [really-safe-money-gen] r = i1 - i2
  6745. 1022.45 s [really-safe-money-gen] - in if r < 0
  6746. 1022.45 s [really-safe-money-gen] + in if r >= 0
  6747. 1022.45 s [really-safe-money-gen] then Nothing
  6748. 1022.45 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6749. 1022.45 s [really-safe-money-gen]
  6750. 1022.45 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
  6751. 1022.45 s [really-safe-money-gen] @@ -540,7 +540,7 @@
  6752. 1022.45 s [really-safe-money-gen] let maxBoundI :: Integer
  6753. 1022.45 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6754. 1022.45 s [really-safe-money-gen] r :: Integer
  6755. 1022.45 s [really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6756. 1022.45 s [really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f + (fromIntegral :: Word64 -> Integer) a
  6757. 1022.45 s [really-safe-money-gen] in if r > maxBoundI
  6758. 1022.45 s [really-safe-money-gen] then Nothing
  6759. 1022.45 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6760. 1022.45 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
  6761. 1022.45 s [really-safe-money-gen] @@ -540,7 +540,7 @@
  6762. 1022.45 s [really-safe-money-gen] let maxBoundI :: Integer
  6763. 1022.45 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6764. 1022.45 s [really-safe-money-gen] r :: Integer
  6765. 1022.45 s [really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6766. 1022.45 s [really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f - (fromIntegral :: Word64 -> Integer) a
  6767. 1022.45 s [really-safe-money-gen] in if r > maxBoundI
  6768. 1022.45 s [really-safe-money-gen] then Nothing
  6769. 1022.45 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6770. 1022.45 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19
  6771. 1022.45 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6772. 1022.45 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6773. 1022.45 s [really-safe-money-gen] smallerChunk :: Amount
  6774. 1022.45 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6775. 1022.45 s [really-safe-money-gen] - in if rest == 0
  6776. 1022.45 s [really-safe-money-gen] + in if rest == 1
  6777. 1022.45 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6778. 1022.45 s [really-safe-money-gen] else
  6779. 1022.46 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6780. 1022.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  6781. 1022.46 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6782. 1022.46 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6783. 1022.46 s [really-safe-money-gen] r :: Integer
  6784. 1022.46 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6785. 1022.46 s [really-safe-money-gen] - in if r > maxBoundI
  6786. 1022.46 s [really-safe-money-gen] + in if True
  6787. 1022.46 s [really-safe-money-gen] then Nothing
  6788. 1028.45 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6789. 1028.45 s [really-safe-money-gen]
  6790. 1028.45 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  6791. 1028.48 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  6792. 1028.48 s [really-safe-money-gen] instance Validity QuantisationFactor where
  6793. 1028.48 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6794. 1028.48 s [really-safe-money-gen] mconcat
  6795. 1028.48 s [really-safe-money-gen] - [ genericValidate qf,
  6796. 1028.48 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  6797. 1028.48 s [really-safe-money-gen] ]
  6798. 1028.48 s [really-safe-money-gen]
  6799. 1028.48 s [really-safe-money-gen] instance NFData QuantisationFactor
  6800. 1028.48 s [really-safe-money-gen]
  6801. 1028.48 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  6802. 1028.48 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  6803. 1028.48 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  6804. 1028.48 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  6805. 1028.48 s [really-safe-money-gen] let decimals :: Int
  6806. 1028.48 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  6807. 1028.48 s [really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  6808. 1028.48 s [really-safe-money-gen] in printf "%%0.%df" decimals
  6809. 1028.48 s [really-safe-money-gen]
  6810. 1028.48 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6811. 1028.48 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  6812. 1028.48 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  6813. 1028.48 s [really-safe-money-gen] instance Validity QuantisationFactor where
  6814. 1028.48 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6815. 1028.48 s [really-safe-money-gen] mconcat
  6816. 1028.48 s [really-safe-money-gen] - [ genericValidate qf,
  6817. 1028.48 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6818. 1028.48 s [really-safe-money-gen] ]
  6819. 1028.48 s [really-safe-money-gen]
  6820. 1028.48 s [really-safe-money-gen] instance NFData QuantisationFactor
  6821. 1028.48 s [really-safe-money-gen]
  6822. 1028.48 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:475:11-18
  6823. 1028.48 s [really-safe-money-gen] @@ -472,7 +472,7 @@
  6824. 1028.48 s [really-safe-money-gen] maxBoundI :: Integer
  6825. 1028.48 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6826. 1028.48 s [really-safe-money-gen] r :: Integer
  6827. 1028.48 s [really-safe-money-gen] - r = i1 + i2
  6828. 1028.48 s [really-safe-money-gen] + r = i1 * i2
  6829. 1028.48 s [really-safe-money-gen] in if r > maxBoundI
  6830. 1028.48 s [really-safe-money-gen] then Nothing
  6831. 1028.48 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6832. 1028.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  6833. 1028.49 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6834. 1028.49 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6835. 1028.49 s [really-safe-money-gen] r :: Integer
  6836. 1028.49 s [really-safe-money-gen] r = i1 + i2
  6837. 1028.49 s [really-safe-money-gen] - in if r > maxBoundI
  6838. 1028.49 s [really-safe-money-gen] + in if r >= maxBoundI
  6839. 1028.49 s [really-safe-money-gen] then Nothing
  6840. 1028.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6841. 1028.49 s [really-safe-money-gen]
  6842. 1028.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  6843. 1028.49 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6844. 1028.49 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6845. 1028.49 s [really-safe-money-gen] r :: Integer
  6846. 1028.49 s [really-safe-money-gen] r = i1 + i2
  6847. 1028.49 s [really-safe-money-gen] - in if r > maxBoundI
  6848. 1028.49 s [really-safe-money-gen] + in if r < maxBoundI
  6849. 1028.49 s [really-safe-money-gen] then Nothing
  6850. 1028.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6851. 1028.49 s [really-safe-money-gen]
  6852. 1028.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  6853. 1028.49 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6854. 1028.49 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6855. 1028.49 s [really-safe-money-gen] r :: Integer
  6856. 1028.49 s [really-safe-money-gen] r = i1 + i2
  6857. 1028.49 s [really-safe-money-gen] - in if r > maxBoundI
  6858. 1028.49 s [really-safe-money-gen] + in if True
  6859. 1028.49 s [really-safe-money-gen] then Nothing
  6860. 1028.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6861. 1028.49 s [really-safe-money-gen]
  6862. 1028.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  6863. 1028.49 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6864. 1028.49 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6865. 1028.49 s [really-safe-money-gen] r :: Integer
  6866. 1028.49 s [really-safe-money-gen] r = i1 + i2
  6867. 1028.49 s [really-safe-money-gen] - in if r > maxBoundI
  6868. 1028.49 s [really-safe-money-gen] + in if r <= maxBoundI
  6869. 1028.49 s [really-safe-money-gen] then Nothing
  6870. 1028.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6871. 1028.49 s [really-safe-money-gen]
  6872. 1028.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  6873. 1028.49 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6874. 1028.49 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6875. 1028.49 s [really-safe-money-gen] r :: Integer
  6876. 1028.49 s [really-safe-money-gen] r = i1 - i2
  6877. 1028.49 s [really-safe-money-gen] - in if r < 0
  6878. 1028.49 s [really-safe-money-gen] + in if False
  6879. 1028.49 s [really-safe-money-gen] then Nothing
  6880. 1028.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6881. 1028.49 s [really-safe-money-gen]
  6882. 1028.49 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:520:14-66
  6883. 1028.49 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  6884. 1028.49 s [really-safe-money-gen] r = i1 - i2
  6885. 1028.49 s [really-safe-money-gen] in if r < 0
  6886. 1028.49 s [really-safe-money-gen] then Nothing
  6887. 1028.49 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6888. 1028.49 s [really-safe-money-gen] + else Nothing
  6889. 1028.49 s [really-safe-money-gen]
  6890. 1028.49 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  6891. 1028.49 s [really-safe-money-gen] --
  6892. 1028.49 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:478:14-66
  6893. 1028.49 s [really-safe-money-gen] @@ -475,7 +475,7 @@
  6894. 1028.49 s [really-safe-money-gen] r = i1 + i2
  6895. 1028.49 s [really-safe-money-gen] in if r > maxBoundI
  6896. 1028.49 s [really-safe-money-gen] then Nothing
  6897. 1028.49 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6898. 1028.49 s [really-safe-money-gen] + else Nothing
  6899. 1028.49 s [really-safe-money-gen]
  6900. 1028.49 s [really-safe-money-gen] -- | Add a number of amounts of money together.
  6901. 1028.49 s [really-safe-money-gen] --
  6902. 1028.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16
  6903. 1028.49 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  6904. 1028.49 s [really-safe-money-gen] -- Nothing
  6905. 1028.49 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  6906. 1028.49 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  6907. 1028.49 s [really-safe-money-gen] - | isInvalid r = Nothing
  6908. 1028.49 s [really-safe-money-gen] + | True = Nothing
  6909. 1028.49 s [really-safe-money-gen] | r < 0 = Nothing
  6910. 1028.49 s [really-safe-money-gen] | otherwise =
  6911. 1028.49 s [really-safe-money-gen] let resultRational :: Rational
  6912. 1028.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16
  6913. 1028.49 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  6914. 1028.49 s [really-safe-money-gen] -- Nothing
  6915. 1028.49 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  6916. 1028.49 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  6917. 1028.49 s [really-safe-money-gen] - | isInvalid r = Nothing
  6918. 1028.49 s [really-safe-money-gen] + | not (isInvalid r) = Nothing
  6919. 1028.49 s [really-safe-money-gen] | r < 0 = Nothing
  6920. 1028.49 s [really-safe-money-gen] | otherwise =
  6921. 1028.49 s [really-safe-money-gen] let resultRational :: Rational
  6922. 1028.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  6923. 1028.49 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6924. 1028.49 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6925. 1028.49 s [really-safe-money-gen] r :: Integer
  6926. 1028.49 s [really-safe-money-gen] r = i1 + i2
  6927. 1028.49 s [really-safe-money-gen] - in if r > maxBoundI
  6928. 1028.49 s [really-safe-money-gen] + in if False
  6929. 1028.49 s [really-safe-money-gen] then Nothing
  6930. 1028.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6931. 1028.49 s [really-safe-money-gen]
  6932. 1028.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23
  6933. 1028.49 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6934. 1028.49 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6935. 1028.49 s [really-safe-money-gen] r :: Integer
  6936. 1028.50 s [really-safe-money-gen] r = i1 + i2
  6937. 1028.50 s [really-safe-money-gen] - in if r > maxBoundI
  6938. 1028.50 s [really-safe-money-gen] + in if not (r > maxBoundI)
  6939. 1028.50 s [really-safe-money-gen] then Nothing
  6940. 1028.50 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6941. 1028.50 s [really-safe-money-gen]
  6942. 1028.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15
  6943. 1028.50 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6944. 1028.50 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6945. 1028.50 s [really-safe-money-gen] r :: Integer
  6946. 1028.50 s [really-safe-money-gen] r = i1 - i2
  6947. 1028.50 s [really-safe-money-gen] - in if r < 0
  6948. 1028.50 s [really-safe-money-gen] + in if not (r < 0)
  6949. 1028.50 s [really-safe-money-gen] then Nothing
  6950. 1028.50 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6951. 1028.50 s [really-safe-money-gen]
  6952. 1028.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  6953. 1028.50 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6954. 1028.50 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6955. 1028.50 s [really-safe-money-gen] r :: Integer
  6956. 1028.50 s [really-safe-money-gen] r = i1 - i2
  6957. 1028.50 s [really-safe-money-gen] - in if r < 0
  6958. 1028.50 s [really-safe-money-gen] + in if True
  6959. 1028.50 s [really-safe-money-gen] then Nothing
  6960. 1028.50 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6961. 1028.50 s [really-safe-money-gen]
  6962. 1028.50 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  6963. 1028.50 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  6964. 1028.50 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  6965. 1028.50 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  6966. 1028.50 s [really-safe-money-gen] | isInvalid r = Nothing
  6967. 1028.50 s [really-safe-money-gen] - | r < 0 = Nothing
  6968. 1028.50 s [really-safe-money-gen] + | r > 0 = Nothing
  6969. 1028.50 s [really-safe-money-gen] | otherwise =
  6970. 1028.50 s [really-safe-money-gen] let resultRational :: Rational
  6971. 1028.50 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  6972. 1028.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  6973. 1028.50 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6974. 1028.50 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6975. 1028.50 s [really-safe-money-gen] r :: Integer
  6976. 1028.50 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6977. 1028.50 s [really-safe-money-gen] - in if r > maxBoundI
  6978. 1028.50 s [really-safe-money-gen] + in if False
  6979. 1035.66 s [really-safe-money-gen] then Nothing
  6980. 1035.68 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6981. 1035.68 s [really-safe-money-gen]
  6982. 1035.68 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  6983. 1035.68 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  6984. 1035.68 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  6985. 1035.69 s [really-safe-money-gen] in if ceiled == floored
  6986. 1035.69 s [really-safe-money-gen] then
  6987. 1035.69 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6988. 1035.69 s [really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6989. 1035.69 s [really-safe-money-gen] then Nothing
  6990. 1035.69 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  6991. 1035.69 s [really-safe-money-gen] else Nothing
  6992. 1035.69 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  6993. 1035.69 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  6994. 1035.69 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  6995. 1035.69 s [really-safe-money-gen] in if ceiled == floored
  6996. 1035.69 s [really-safe-money-gen] then
  6997. 1035.69 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6998. 1035.69 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6999. 1035.69 s [really-safe-money-gen] then Nothing
  7000. 1035.69 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7001. 1035.69 s [really-safe-money-gen] else Nothing
  7002. 1035.69 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  7003. 1035.69 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7004. 1035.69 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7005. 1035.69 s [really-safe-money-gen] in if ceiled == floored
  7006. 1035.69 s [really-safe-money-gen] then
  7007. 1035.69 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7008. 1035.69 s [really-safe-money-gen] + if True
  7009. 1035.69 s [really-safe-money-gen] then Nothing
  7010. 1035.69 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7011. 1035.69 s [really-safe-money-gen] else Nothing
  7012. 1035.69 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83
  7013. 1035.69 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7014. 1035.69 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7015. 1035.69 s [really-safe-money-gen] in if ceiled == floored
  7016. 1035.69 s [really-safe-money-gen] then
  7017. 1035.69 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7018. 1035.69 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  7019. 1035.69 s [really-safe-money-gen] then Nothing
  7020. 1035.69 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7021. 1035.69 s [really-safe-money-gen] else Nothing
  7022. 1035.69 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
  7023. 1035.69 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7024. 1035.69 s [really-safe-money-gen] Double ->
  7025. 1035.69 s [really-safe-money-gen] Maybe Amount
  7026. 1035.69 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7027. 1035.69 s [really-safe-money-gen] - | d < 0 = Nothing
  7028. 1035.70 s [really-safe-money-gen] + | d < 1 = Nothing
  7029. 1035.70 s [really-safe-money-gen] | otherwise =
  7030. 1035.70 s [really-safe-money-gen] let resultDouble :: Double
  7031. 1035.70 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7032. 1035.70 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  7033. 1035.70 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7034. 1035.70 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7035. 1035.70 s [really-safe-money-gen] in if ceiled == floored
  7036. 1035.70 s [really-safe-money-gen] then
  7037. 1035.70 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7038. 1035.70 s [really-safe-money-gen] + if ceiled <= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7039. 1035.70 s [really-safe-money-gen] then Nothing
  7040. 1035.70 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7041. 1035.70 s [really-safe-money-gen] else Nothing
  7042. 1035.70 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  7043. 1035.70 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7044. 1035.70 s [really-safe-money-gen] Double ->
  7045. 1035.70 s [really-safe-money-gen] Maybe Amount
  7046. 1035.70 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7047. 1035.70 s [really-safe-money-gen] - | d < 0 = Nothing
  7048. 1035.70 s [really-safe-money-gen] + | d <= 0 = Nothing
  7049. 1035.70 s [really-safe-money-gen] | otherwise =
  7050. 1035.70 s [really-safe-money-gen] let resultDouble :: Double
  7051. 1035.70 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7052. 1035.70 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:517:11-18
  7053. 1035.70 s [really-safe-money-gen] @@ -514,7 +514,7 @@
  7054. 1035.70 s [really-safe-money-gen] i2 :: Integer
  7055. 1035.70 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  7056. 1035.70 s [really-safe-money-gen] r :: Integer
  7057. 1035.70 s [really-safe-money-gen] - r = i1 - i2
  7058. 1035.70 s [really-safe-money-gen] + r = i1 + i2
  7059. 1035.70 s [really-safe-money-gen] in if r < 0
  7060. 1035.70 s [really-safe-money-gen] then Nothing
  7061. 1035.70 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7062. 1035.70 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  7063. 1035.70 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7064. 1035.70 s [really-safe-money-gen] Double ->
  7065. 1035.70 s [really-safe-money-gen] Maybe Amount
  7066. 1035.70 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7067. 1035.70 s [really-safe-money-gen] - | d < 0 = Nothing
  7068. 1035.70 s [really-safe-money-gen] + | d >= 0 = Nothing
  7069. 1035.70 s [really-safe-money-gen] | otherwise =
  7070. 1035.70 s [really-safe-money-gen] let resultDouble :: Double
  7071. 1035.70 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7072. 1035.70 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:475:11-18
  7073. 1035.70 s [really-safe-money-gen] @@ -472,7 +472,7 @@
  7074. 1035.70 s [really-safe-money-gen] maxBoundI :: Integer
  7075. 1035.70 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7076. 1035.71 s [really-safe-money-gen] r :: Integer
  7077. 1035.71 s [really-safe-money-gen] - r = i1 + i2
  7078. 1035.71 s [really-safe-money-gen] + r = i1 - i2
  7079. 1035.71 s [really-safe-money-gen] in if r > maxBoundI
  7080. 1035.71 s [really-safe-money-gen] then Nothing
  7081. 1035.71 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7082. 1035.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10
  7083. 1035.71 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7084. 1035.71 s [really-safe-money-gen] Double ->
  7085. 1035.71 s [really-safe-money-gen] Maybe Amount
  7086. 1035.71 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7087. 1035.71 s [really-safe-money-gen] - | d < 0 = Nothing
  7088. 1035.71 s [really-safe-money-gen] + | True = Nothing
  7089. 1035.71 s [really-safe-money-gen] | otherwise =
  7090. 1035.71 s [really-safe-money-gen] let resultDouble :: Double
  7091. 1035.71 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7092. 1035.71 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
  7093. 1035.71 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7094. 1035.71 s [really-safe-money-gen] Double ->
  7095. 1035.71 s [really-safe-money-gen] Maybe Amount
  7096. 1035.71 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7097. 1035.71 s [really-safe-money-gen] - | d < 0 = Nothing
  7098. 1035.71 s [really-safe-money-gen] + | not (d < 0) = Nothing
  7099. 1035.71 s [really-safe-money-gen] | otherwise =
  7100. 1035.71 s [really-safe-money-gen] let resultDouble :: Double
  7101. 1035.71 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7102. 1035.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  7103. 1035.71 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  7104. 1035.71 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7105. 1035.71 s [really-safe-money-gen] floored :: Natural
  7106. 1035.71 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7107. 1035.71 s [really-safe-money-gen] - in if ceiled == floored
  7108. 1035.71 s [really-safe-money-gen] + in if True
  7109. 1035.71 s [really-safe-money-gen] then
  7110. 1035.71 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7111. 1035.71 s [really-safe-money-gen] then Nothing
  7112. 1035.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  7113. 1035.71 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  7114. 1035.71 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7115. 1035.71 s [really-safe-money-gen] floored :: Natural
  7116. 1035.71 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7117. 1035.71 s [really-safe-money-gen] - in if ceiled == floored
  7118. 1035.71 s [really-safe-money-gen] + in if False
  7119. 1035.71 s [really-safe-money-gen] then
  7120. 1035.71 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7121. 1035.71 s [really-safe-money-gen] then Nothing
  7122. 1035.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  7123. 1035.71 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7124. 1035.71 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7125. 1035.71 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7126. 1035.71 s [really-safe-money-gen] | isInvalid r = Nothing
  7127. 1035.71 s [really-safe-money-gen] - | r < 0 = Nothing
  7128. 1035.71 s [really-safe-money-gen] + | r >= 0 = Nothing
  7129. 1035.71 s [really-safe-money-gen] | otherwise =
  7130. 1035.72 s [really-safe-money-gen] let resultRational :: Rational
  7131. 1035.72 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7132. 1035.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10
  7133. 1035.72 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7134. 1035.72 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7135. 1035.72 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7136. 1035.72 s [really-safe-money-gen] | isInvalid r = Nothing
  7137. 1035.72 s [really-safe-money-gen] - | r < 0 = Nothing
  7138. 1035.72 s [really-safe-money-gen] + | not (r < 0) = Nothing
  7139. 1035.72 s [really-safe-money-gen] | otherwise =
  7140. 1035.72 s [really-safe-money-gen] let resultRational :: Rational
  7141. 1035.72 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7142. 1035.72 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:392:28-71
  7143. 1035.72 s [really-safe-money-gen] @@ -389,7 +389,7 @@
  7144. 1035.72 s [really-safe-money-gen] | r < 0 = Nothing
  7145. 1035.72 s [really-safe-money-gen] | otherwise =
  7146. 1035.72 s [really-safe-money-gen] let resultRational :: Rational
  7147. 1035.72 s [really-safe-money-gen] - resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7148. 1043.20 s [really-safe-money-gen] + resultRational = r + (fromIntegral :: Word32 -> Rational) qf
  7149. 1043.24 s [really-safe-money-gen] ceiled :: Natural
  7150. 1043.24 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7151. 1043.24 s [really-safe-money-gen] floored :: Natural
  7152. 1043.24 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:392:28-71
  7153. 1043.24 s [really-safe-money-gen] @@ -389,7 +389,7 @@
  7154. 1043.24 s [really-safe-money-gen] | r < 0 = Nothing
  7155. 1043.24 s [really-safe-money-gen] | otherwise =
  7156. 1043.24 s [really-safe-money-gen] let resultRational :: Rational
  7157. 1043.24 s [really-safe-money-gen] - resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7158. 1043.25 s [really-safe-money-gen] + resultRational = r - (fromIntegral :: Word32 -> Rational) qf
  7159. 1043.25 s [really-safe-money-gen] ceiled :: Natural
  7160. 1043.25 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7161. 1043.25 s [really-safe-money-gen] floored :: Natural
  7162. 1043.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21
  7163. 1043.25 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  7164. 1043.25 s [really-safe-money-gen] where
  7165. 1043.25 s [really-safe-money-gen] go resultDouble
  7166. 1043.25 s [really-safe-money-gen] | isNaN d = Nothing
  7167. 1043.25 s [really-safe-money-gen] - | isInfinite d = Nothing
  7168. 1043.25 s [really-safe-money-gen] + | True = Nothing
  7169. 1043.25 s [really-safe-money-gen] | otherwise =
  7170. 1043.25 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7171. 1043.25 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7172. 1043.25 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
  7173. 1043.25 s [really-safe-money-gen] @@ -320,7 +320,7 @@
  7174. 1043.25 s [really-safe-money-gen] | d < 0 = Nothing
  7175. 1043.25 s [really-safe-money-gen] | otherwise =
  7176. 1043.25 s [really-safe-money-gen] let resultDouble :: Double
  7177. 1043.25 s [really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7178. 1043.25 s [really-safe-money-gen] + resultDouble = d + (fromIntegral :: Word32 -> Double) qf
  7179. 1043.25 s [really-safe-money-gen] in go resultDouble
  7180. 1043.25 s [really-safe-money-gen] where
  7181. 1043.25 s [really-safe-money-gen] go resultDouble
  7182. 1043.25 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  7183. 1043.25 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7184. 1043.25 s [really-safe-money-gen] | otherwise =
  7185. 1043.25 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7186. 1043.25 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7187. 1043.25 s [really-safe-money-gen] - if exponent resultDouble > 65
  7188. 1043.25 s [really-safe-money-gen] + if exponent resultDouble < 65
  7189. 1043.25 s [really-safe-money-gen] then Nothing
  7190. 1043.25 s [really-safe-money-gen] else
  7191. 1043.25 s [really-safe-money-gen] let ceiled :: Natural
  7192. 1043.25 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  7193. 1043.25 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7194. 1043.25 s [really-safe-money-gen] | otherwise =
  7195. 1043.25 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7196. 1043.25 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7197. 1043.25 s [really-safe-money-gen] - if exponent resultDouble > 65
  7198. 1043.25 s [really-safe-money-gen] + if exponent resultDouble > 0
  7199. 1043.25 s [really-safe-money-gen] then Nothing
  7200. 1043.25 s [really-safe-money-gen] else
  7201. 1043.26 s [really-safe-money-gen] let ceiled :: Natural
  7202. 1043.26 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  7203. 1043.26 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7204. 1043.26 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7205. 1043.26 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7206. 1043.26 s [really-safe-money-gen] | isInvalid r = Nothing
  7207. 1043.26 s [really-safe-money-gen] - | r < 0 = Nothing
  7208. 1043.26 s [really-safe-money-gen] + | r <= 0 = Nothing
  7209. 1043.26 s [really-safe-money-gen] | otherwise =
  7210. 1043.26 s [really-safe-money-gen] let resultRational :: Rational
  7211. 1043.26 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7212. 1043.26 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16
  7213. 1043.26 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  7214. 1043.26 s [really-safe-money-gen] in go resultDouble
  7215. 1043.26 s [really-safe-money-gen] where
  7216. 1043.26 s [really-safe-money-gen] go resultDouble
  7217. 1043.26 s [really-safe-money-gen] - | isNaN d = Nothing
  7218. 1043.26 s [really-safe-money-gen] + | not (isNaN d) = Nothing
  7219. 1043.26 s [really-safe-money-gen] | isInfinite d = Nothing
  7220. 1043.26 s [really-safe-money-gen] | otherwise =
  7221. 1043.26 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7222. 1043.26 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
  7223. 1043.26 s [really-safe-money-gen] @@ -320,7 +320,7 @@
  7224. 1043.26 s [really-safe-money-gen] | d < 0 = Nothing
  7225. 1043.26 s [really-safe-money-gen] | otherwise =
  7226. 1043.26 s [really-safe-money-gen] let resultDouble :: Double
  7227. 1043.26 s [really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7228. 1043.26 s [really-safe-money-gen] + resultDouble = d - (fromIntegral :: Word32 -> Double) qf
  7229. 1043.26 s [really-safe-money-gen] in go resultDouble
  7230. 1043.26 s [really-safe-money-gen] where
  7231. 1043.26 s [really-safe-money-gen] go resultDouble
  7232. 1043.26 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16
  7233. 1043.26 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  7234. 1043.26 s [really-safe-money-gen] in go resultDouble
  7235. 1043.26 s [really-safe-money-gen] where
  7236. 1043.26 s [really-safe-money-gen] go resultDouble
  7237. 1043.26 s [really-safe-money-gen] - | isNaN d = Nothing
  7238. 1043.26 s [really-safe-money-gen] + | True = Nothing
  7239. 1043.26 s [really-safe-money-gen] | isInfinite d = Nothing
  7240. 1043.26 s [really-safe-money-gen] | otherwise =
  7241. 1043.26 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7242. 1043.26 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  7243. 1043.26 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7244. 1043.26 s [really-safe-money-gen] Double ->
  7245. 1043.26 s [really-safe-money-gen] Maybe Amount
  7246. 1043.26 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7247. 1043.26 s [really-safe-money-gen] - | d < 0 = Nothing
  7248. 1043.26 s [really-safe-money-gen] + | d > 0 = Nothing
  7249. 1043.26 s [really-safe-money-gen] | otherwise =
  7250. 1043.26 s [really-safe-money-gen] let resultDouble :: Double
  7251. 1043.26 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7252. 1043.26 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  7253. 1043.26 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7254. 1043.26 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7255. 1043.26 s [really-safe-money-gen] in if ceiled == floored
  7256. 1043.26 s [really-safe-money-gen] then
  7257. 1043.26 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7258. 1043.26 s [really-safe-money-gen] + if False
  7259. 1043.26 s [really-safe-money-gen] then Nothing
  7260. 1043.26 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7261. 1043.26 s [really-safe-money-gen] else Nothing
  7262. 1043.26 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31
  7263. 1043.26 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  7264. 1043.26 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7265. 1043.26 s [really-safe-money-gen] floored :: Natural
  7266. 1043.26 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7267. 1043.26 s [really-safe-money-gen] - in if ceiled == floored
  7268. 1043.26 s [really-safe-money-gen] + in if not (ceiled == floored)
  7269. 1043.26 s [really-safe-money-gen] then
  7270. 1043.26 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7271. 1043.26 s [really-safe-money-gen] then Nothing
  7272. 1043.26 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  7273. 1043.26 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7274. 1043.26 s [really-safe-money-gen] | otherwise =
  7275. 1043.26 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7276. 1043.26 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7277. 1043.26 s [really-safe-money-gen] - if exponent resultDouble > 65
  7278. 1043.26 s [really-safe-money-gen] + if True
  7279. 1043.26 s [really-safe-money-gen] then Nothing
  7280. 1043.27 s [really-safe-money-gen] else
  7281. 1043.27 s [really-safe-money-gen] let ceiled :: Natural
  7282. 1043.27 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  7283. 1043.27 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  7284. 1043.27 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  7285. 1043.27 s [really-safe-money-gen] floored :: Natural
  7286. 1043.27 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7287. 1043.27 s [really-safe-money-gen] - in if ceiled == floored
  7288. 1043.27 s [really-safe-money-gen] + in if True
  7289. 1043.27 s [really-safe-money-gen] then
  7290. 1043.27 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7291. 1043.27 s [really-safe-money-gen] then Nothing
  7292. 1043.27 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  7293. 1043.27 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7294. 1043.27 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7295. 1043.27 s [really-safe-money-gen] in if ceiled == floored
  7296. 1043.27 s [really-safe-money-gen] then
  7297. 1043.27 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7298. 1043.27 s [really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7299. 1043.27 s [really-safe-money-gen] then Nothing
  7300. 1043.27 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7301. 1043.27 s [really-safe-money-gen] else Nothing
  7302. 1043.27 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  7303. 1043.27 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7304. 1043.27 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7305. 1043.27 s [really-safe-money-gen] in if ceiled == floored
  7306. 1043.27 s [really-safe-money-gen] then
  7307. 1043.27 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7308. 1043.27 s [really-safe-money-gen] + if ceiled <= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7309. 1047.33 s [really-safe-money-gen] then Nothing
  7310. 1047.33 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7311. 1047.34 s [really-safe-money-gen] else Nothing
  7312. 1047.34 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  7313. 1047.34 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7314. 1047.34 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7315. 1047.34 s [really-safe-money-gen] in if ceiled == floored
  7316. 1047.34 s [really-safe-money-gen] then
  7317. 1047.34 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7318. 1047.34 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7319. 1047.34 s [really-safe-money-gen] then Nothing
  7320. 1047.34 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7321. 1047.34 s [really-safe-money-gen] else Nothing
  7322. 1047.34 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  7323. 1047.34 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7324. 1047.34 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7325. 1047.34 s [really-safe-money-gen] in if ceiled == floored
  7326. 1047.34 s [really-safe-money-gen] then
  7327. 1047.34 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7328. 1047.34 s [really-safe-money-gen] + if True
  7329. 1047.34 s [really-safe-money-gen] then Nothing
  7330. 1047.34 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7331. 1047.34 s [really-safe-money-gen] else Nothing
  7332. 1047.34 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  7333. 1047.34 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7334. 1047.34 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7335. 1047.34 s [really-safe-money-gen] in if ceiled == floored
  7336. 1047.34 s [really-safe-money-gen] then
  7337. 1047.34 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7338. 1047.34 s [really-safe-money-gen] + if False
  7339. 1047.34 s [really-safe-money-gen] then Nothing
  7340. 1047.34 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7341. 1047.34 s [really-safe-money-gen] else Nothing
  7342. 1047.34 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  7343. 1047.34 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7344. 1047.34 s [really-safe-money-gen] | otherwise =
  7345. 1047.35 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7346. 1047.35 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7347. 1047.35 s [really-safe-money-gen] - if exponent resultDouble > 65
  7348. 1047.35 s [really-safe-money-gen] + if False
  7349. 1047.35 s [really-safe-money-gen] then Nothing
  7350. 1047.35 s [really-safe-money-gen] else
  7351. 1047.35 s [really-safe-money-gen] let ceiled :: Natural
  7352. 1047.35 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
  7353. 1047.35 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  7354. 1047.35 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  7355. 1047.35 s [really-safe-money-gen] floored :: Natural
  7356. 1047.35 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7357. 1047.35 s [really-safe-money-gen] - in if ceiled == floored
  7358. 1047.35 s [really-safe-money-gen] + in if not (ceiled == floored)
  7359. 1047.35 s [really-safe-money-gen] then
  7360. 1047.35 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7361. 1047.35 s [really-safe-money-gen] then Nothing
  7362. 1047.35 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40
  7363. 1047.35 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7364. 1047.35 s [really-safe-money-gen] | otherwise =
  7365. 1047.35 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7366. 1047.35 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7367. 1047.35 s [really-safe-money-gen] - if exponent resultDouble > 65
  7368. 1047.35 s [really-safe-money-gen] + if not (exponent resultDouble > 65)
  7369. 1047.35 s [really-safe-money-gen] then Nothing
  7370. 1047.35 s [really-safe-money-gen] else
  7371. 1047.35 s [really-safe-money-gen] let ceiled :: Natural
  7372. 1047.35 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  7373. 1047.35 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  7374. 1047.35 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  7375. 1047.35 s [really-safe-money-gen] floored :: Natural
  7376. 1047.35 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7377. 1047.35 s [really-safe-money-gen] - in if ceiled == floored
  7378. 1047.35 s [really-safe-money-gen] + in if False
  7379. 1047.35 s [really-safe-money-gen] then
  7380. 1047.35 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7381. 1047.35 s [really-safe-money-gen] then Nothing
  7382. 1047.35 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  7383. 1047.35 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7384. 1047.35 s [really-safe-money-gen] | otherwise =
  7385. 1047.36 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7386. 1047.36 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7387. 1047.36 s [really-safe-money-gen] - if exponent resultDouble > 65
  7388. 1047.36 s [really-safe-money-gen] + if exponent resultDouble >= 65
  7389. 1047.36 s [really-safe-money-gen] then Nothing
  7390. 1047.36 s [really-safe-money-gen] else
  7391. 1047.36 s [really-safe-money-gen] let ceiled :: Natural
  7392. 1047.36 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10
  7393. 1047.36 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7394. 1047.36 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7395. 1047.36 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7396. 1047.36 s [really-safe-money-gen] | isInvalid r = Nothing
  7397. 1047.36 s [really-safe-money-gen] - | r < 0 = Nothing
  7398. 1047.36 s [really-safe-money-gen] + | True = Nothing
  7399. 1047.36 s [really-safe-money-gen] | otherwise =
  7400. 1047.36 s [really-safe-money-gen] let resultRational :: Rational
  7401. 1047.36 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7402. 1047.36 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10
  7403. 1047.36 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7404. 1047.36 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7405. 1047.36 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7406. 1047.36 s [really-safe-money-gen] | isInvalid r = Nothing
  7407. 1047.36 s [really-safe-money-gen] - | r < 0 = Nothing
  7408. 1047.36 s [really-safe-money-gen] + | r < 1 = Nothing
  7409. 1047.36 s [really-safe-money-gen] | otherwise =
  7410. 1047.36 s [really-safe-money-gen] let resultRational :: Rational
  7411. 1047.36 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7412. 1047.36 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
  7413. 1047.36 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7414. 1047.36 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7415. 1047.36 s [really-safe-money-gen] in if ceiled == floored
  7416. 1047.36 s [really-safe-money-gen] then
  7417. 1047.36 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7418. 1047.36 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  7419. 1047.36 s [really-safe-money-gen] then Nothing
  7420. 1047.36 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7421. 1047.36 s [really-safe-money-gen] else Nothing
  7422. 1047.36 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  7423. 1047.36 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7424. 1047.36 s [really-safe-money-gen] | otherwise =
  7425. 1047.36 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7426. 1047.36 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7427. 1047.36 s [really-safe-money-gen] - if exponent resultDouble > 65
  7428. 1047.36 s [really-safe-money-gen] + if exponent resultDouble <= 65
  7429. 1047.36 s [really-safe-money-gen] then Nothing
  7430. 1047.36 s [really-safe-money-gen] else
  7431. 1047.36 s [really-safe-money-gen] let ceiled :: Natural
  7432. 1047.36 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
  7433. 1047.36 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  7434. 1047.36 s [really-safe-money-gen] let maxBoundI :: Integer
  7435. 1047.36 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7436. 1047.36 s [really-safe-money-gen] r :: Integer
  7437. 1047.36 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7438. 1047.36 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  7439. 1047.36 s [really-safe-money-gen] in if r > maxBoundI
  7440. 1047.36 s [really-safe-money-gen] then Nothing
  7441. 1047.36 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7442. 1047.36 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
  7443. 1047.36 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  7444. 1047.36 s [really-safe-money-gen] let maxBoundI :: Integer
  7445. 1047.36 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7446. 1047.36 s [really-safe-money-gen] r :: Integer
  7447. 1047.36 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7448. 1047.37 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) * acc) 0 l
  7449. 1047.37 s [really-safe-money-gen] in if r > maxBoundI
  7450. 1047.37 s [really-safe-money-gen] then Nothing
  7451. 1053.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7452. 1053.98 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
  7453. 1053.98 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  7454. 1053.98 s [really-safe-money-gen] let maxBoundI :: Integer
  7455. 1053.98 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7456. 1053.98 s [really-safe-money-gen] r :: Integer
  7457. 1053.98 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7458. 1053.98 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) - acc) 0 l
  7459. 1053.98 s [really-safe-money-gen] in if r > maxBoundI
  7460. 1053.98 s [really-safe-money-gen] then Nothing
  7461. 1053.98 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7462. 1053.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  7463. 1053.98 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  7464. 1053.98 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  7465. 1053.98 s [really-safe-money-gen] mconcat
  7466. 1053.98 s [really-safe-money-gen] [ genericValidate qf,
  7467. 1053.98 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  7468. 1053.98 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  7469. 1053.98 s [really-safe-money-gen] ]
  7470. 1053.98 s [really-safe-money-gen]
  7471. 1053.98 s [really-safe-money-gen] instance NFData QuantisationFactor
  7472. 1053.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  7473. 1053.99 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7474. 1053.99 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7475. 1053.99 s [really-safe-money-gen] r :: Integer
  7476. 1053.99 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7477. 1053.99 s [really-safe-money-gen] - in if r > maxBoundI
  7478. 1053.99 s [really-safe-money-gen] + in if True
  7479. 1053.99 s [really-safe-money-gen] then Nothing
  7480. 1053.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7481. 1053.99 s [really-safe-money-gen]
  7482. 1053.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  7483. 1053.99 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7484. 1053.99 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7485. 1053.99 s [really-safe-money-gen] r :: Integer
  7486. 1053.99 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7487. 1053.99 s [really-safe-money-gen] - in if r > maxBoundI
  7488. 1053.99 s [really-safe-money-gen] + in if False
  7489. 1053.99 s [really-safe-money-gen] then Nothing
  7490. 1053.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7491. 1053.99 s [really-safe-money-gen]
  7492. 1053.99 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  7493. 1053.99 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7494. 1053.99 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7495. 1053.99 s [really-safe-money-gen] r :: Integer
  7496. 1053.99 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7497. 1053.99 s [really-safe-money-gen] - in if r > maxBoundI
  7498. 1053.99 s [really-safe-money-gen] + in if r < maxBoundI
  7499. 1053.99 s [really-safe-money-gen] then Nothing
  7500. 1053.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7501. 1053.99 s [really-safe-money-gen]
  7502. 1053.99 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  7503. 1053.99 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7504. 1053.99 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7505. 1054.00 s [really-safe-money-gen] r :: Integer
  7506. 1054.00 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7507. 1054.00 s [really-safe-money-gen] - in if r > maxBoundI
  7508. 1054.00 s [really-safe-money-gen] + in if r <= maxBoundI
  7509. 1054.00 s [really-safe-money-gen] then Nothing
  7510. 1054.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7511. 1054.00 s [really-safe-money-gen]
  7512. 1054.00 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  7513. 1054.00 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7514. 1054.00 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7515. 1054.00 s [really-safe-money-gen] r :: Integer
  7516. 1054.00 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7517. 1054.00 s [really-safe-money-gen] - in if r > maxBoundI
  7518. 1054.00 s [really-safe-money-gen] + in if r >= maxBoundI
  7519. 1054.00 s [really-safe-money-gen] then Nothing
  7520. 1054.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7521. 1054.00 s [really-safe-money-gen]
  7522. 1054.00 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  7523. 1054.00 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7524. 1054.00 s [really-safe-money-gen] | otherwise =
  7525. 1054.00 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7526. 1054.00 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7527. 1054.00 s [really-safe-money-gen] - if exponent resultDouble > 65
  7528. 1054.00 s [really-safe-money-gen] + if exponent resultDouble > -65
  7529. 1054.00 s [really-safe-money-gen] then Nothing
  7530. 1054.00 s [really-safe-money-gen] else
  7531. 1054.00 s [really-safe-money-gen] let ceiled :: Natural
  7532. 1054.00 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21
  7533. 1054.00 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  7534. 1054.00 s [really-safe-money-gen] where
  7535. 1054.00 s [really-safe-money-gen] go resultDouble
  7536. 1054.00 s [really-safe-money-gen] | isNaN d = Nothing
  7537. 1054.00 s [really-safe-money-gen] - | isInfinite d = Nothing
  7538. 1054.00 s [really-safe-money-gen] + | not (isInfinite d) = Nothing
  7539. 1054.00 s [really-safe-money-gen] | otherwise =
  7540. 1054.00 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7541. 1054.00 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7542. 1054.00 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
  7543. 1054.00 s [really-safe-money-gen] @@ -287,7 +287,7 @@
  7544. 1054.00 s [really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  7545. 1054.00 s [really-safe-money-gen] -- 1 % 100
  7546. 1054.00 s [really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  7547. 1054.00 s [really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  7548. 1054.00 s [really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  7549. 1054.00 s [really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
  7550. 1054.00 s [really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  7551. 1054.00 s [really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  7552. 1054.00 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  7553. 1054.01 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  7554. 1054.01 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7555. 1054.01 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  7556. 1054.01 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7557. 1054.01 s [really-safe-money-gen] rounder = case r of
  7558. 1054.01 s [really-safe-money-gen] RoundUp -> ceiling
  7559. 1054.01 s [really-safe-money-gen] - RoundDown -> floor
  7560. 1054.01 s [really-safe-money-gen] RoundNearest -> round
  7561. 1054.01 s [really-safe-money-gen] roundedResult :: Natural
  7562. 1054.01 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7563. 1054.01 s [really-safe-money-gen] actualRate :: Ratio Natural
  7564. 1054.01 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  7565. 1054.01 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  7566. 1054.01 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7567. 1054.01 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  7568. 1054.01 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7569. 1054.01 s [really-safe-money-gen] rounder = case r of
  7570. 1054.01 s [really-safe-money-gen] RoundUp -> ceiling
  7571. 1054.01 s [really-safe-money-gen] RoundDown -> floor
  7572. 1054.01 s [really-safe-money-gen] - RoundNearest -> round
  7573. 1054.01 s [really-safe-money-gen] roundedResult :: Natural
  7574. 1054.01 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7575. 1054.01 s [really-safe-money-gen] actualRate :: Ratio Natural
  7576. 1054.01 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  7577. 1054.01 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7578. 1054.01 s [really-safe-money-gen] maxBoundN :: Natural
  7579. 1054.01 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7580. 1054.01 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7581. 1054.01 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7582. 1054.01 s [really-safe-money-gen] + in ( if roundedResult < maxBoundN
  7583. 1054.01 s [really-safe-money-gen] then Nothing
  7584. 1054.01 s [really-safe-money-gen] else Just result,
  7585. 1054.01 s [really-safe-money-gen] actualRate
  7586. 1054.01 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
  7587. 1054.01 s [really-safe-money-gen] @@ -247,7 +247,7 @@
  7588. 1054.01 s [really-safe-money-gen] -- >>> zero
  7589. 1054.01 s [really-safe-money-gen] -- Amount 0
  7590. 1054.01 s [really-safe-money-gen] zero :: Amount
  7591. 1054.01 s [really-safe-money-gen] -zero = Amount 0
  7592. 1054.01 s [really-safe-money-gen] +zero = Amount 1
  7593. 1054.01 s [really-safe-money-gen]
  7594. 1054.01 s [really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
  7595. 1054.01 s [really-safe-money-gen] --
  7596. 1054.01 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  7597. 1054.01 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7598. 1054.01 s [really-safe-money-gen] maxBoundN :: Natural
  7599. 1054.01 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7600. 1054.01 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7601. 1054.01 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7602. 1054.01 s [really-safe-money-gen] + in ( if roundedResult <= maxBoundN
  7603. 1054.01 s [really-safe-money-gen] then Nothing
  7604. 1054.01 s [really-safe-money-gen] else Just result,
  7605. 1054.01 s [really-safe-money-gen] actualRate
  7606. 1054.01 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  7607. 1054.01 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7608. 1054.01 s [really-safe-money-gen] maxBoundN :: Natural
  7609. 1054.01 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7610. 1054.01 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7611. 1054.01 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7612. 1054.01 s [really-safe-money-gen] + in ( if roundedResult >= maxBoundN
  7613. 1054.02 s [really-safe-money-gen] then Nothing
  7614. 1054.02 s [really-safe-money-gen] else Just result,
  7615. 1054.02 s [really-safe-money-gen] actualRate
  7616. 1054.02 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:497:14-66
  7617. 1054.02 s [really-safe-money-gen] @@ -494,7 +494,7 @@
  7618. 1054.02 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7619. 1054.02 s [really-safe-money-gen] in if r > maxBoundI
  7620. 1054.02 s [really-safe-money-gen] then Nothing
  7621. 1054.02 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7622. 1054.02 s [really-safe-money-gen] + else Nothing
  7623. 1054.02 s [really-safe-money-gen]
  7624. 1054.02 s [really-safe-money-gen] -- | Add two amounts of money.
  7625. 1054.02 s [really-safe-money-gen] --
  7626. 1058.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  7627. 1058.08 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7628. 1058.08 s [really-safe-money-gen] maxBoundN :: Natural
  7629. 1058.08 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7630. 1058.08 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7631. 1058.08 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7632. 1058.08 s [really-safe-money-gen] + in ( if True
  7633. 1058.08 s [really-safe-money-gen] then Nothing
  7634. 1058.08 s [really-safe-money-gen] else Just result,
  7635. 1058.08 s [really-safe-money-gen] actualRate
  7636. 1058.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  7637. 1058.08 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7638. 1058.08 s [really-safe-money-gen] maxBoundN :: Natural
  7639. 1058.08 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7640. 1058.08 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7641. 1058.08 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7642. 1058.08 s [really-safe-money-gen] + in ( if False
  7643. 1058.08 s [really-safe-money-gen] then Nothing
  7644. 1058.08 s [really-safe-money-gen] else Just result,
  7645. 1058.08 s [really-safe-money-gen] actualRate
  7646. 1058.08 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
  7647. 1058.08 s [really-safe-money-gen] @@ -663,7 +663,7 @@
  7648. 1058.08 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7649. 1058.08 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7650. 1058.08 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7651. 1058.08 s [really-safe-money-gen] - theoreticalResult = amountAsRatio * f
  7652. 1058.08 s [really-safe-money-gen] + theoreticalResult = amountAsRatio - f
  7653. 1058.08 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7654. 1058.08 s [really-safe-money-gen] rounder = case r of
  7655. 1058.08 s [really-safe-money-gen] RoundUp -> ceiling
  7656. 1058.08 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
  7657. 1058.08 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  7658. 1058.08 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  7659. 1058.08 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  7660. 1058.09 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  7661. 1058.09 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  7662. 1058.09 s [really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
  7663. 1058.09 s [really-safe-money-gen] fraction r (Amount a) f =
  7664. 1058.09 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7665. 1058.09 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7666. 1058.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  7667. 1058.09 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7668. 1058.09 s [really-safe-money-gen]
  7669. 1058.09 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7670. 1058.09 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7671. 1058.09 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7672. 1058.09 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  7673. 1058.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  7674. 1058.09 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7675. 1058.09 s [really-safe-money-gen]
  7676. 1058.09 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7677. 1058.09 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7678. 1058.09 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7679. 1058.09 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  7680. 1058.09 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:661:19-28
  7681. 1058.09 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  7682. 1058.09 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  7683. 1058.09 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  7684. 1058.09 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  7685. 1058.09 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  7686. 1058.09 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  7687. 1058.09 s [really-safe-money-gen] fraction r (Amount a) f =
  7688. 1058.09 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7689. 1058.09 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7690. 1058.09 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:660:28-37
  7691. 1058.09 s [really-safe-money-gen] @@ -657,7 +657,7 @@
  7692. 1058.10 s [really-safe-money-gen] Ratio Natural ->
  7693. 1058.10 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  7694. 1058.10 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  7695. 1058.10 s [really-safe-money-gen] -fraction _ (Amount 0) f = (Just zero, f)
  7696. 1058.10 s [really-safe-money-gen] +fraction _ (Amount 0) f = (Nothing, f)
  7697. 1058.10 s [really-safe-money-gen] fraction _ _ 0 = (Just zero, 0)
  7698. 1058.10 s [really-safe-money-gen] fraction r (Amount a) f =
  7699. 1058.10 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7700. 1058.10 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
  7701. 1058.10 s [really-safe-money-gen] @@ -759,7 +759,7 @@
  7702. 1058.10 s [really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
  7703. 1058.10 s [really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
  7704. 1058.10 s [really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
  7705. 1058.10 s [really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
  7706. 1058.10 s [really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar + qf1r / qf2r))
  7707. 1058.10 s [really-safe-money-gen]
  7708. 1058.10 s [really-safe-money-gen] -- | Format an amount of money without a symbol.
  7709. 1058.10 s [really-safe-money-gen] --
  7710. 1058.10 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  7711. 1058.10 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7712. 1058.10 s [really-safe-money-gen]
  7713. 1058.10 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7714. 1058.10 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7715. 1058.10 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7716. 1058.10 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount >= zero
  7717. 1058.10 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
  7718. 1058.10 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7719. 1058.10 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7720. 1058.10 s [really-safe-money-gen] r :: Integer
  7721. 1058.10 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7722. 1058.10 s [really-safe-money-gen] - in if r > maxBoundI
  7723. 1058.10 s [really-safe-money-gen] + in if not (r > maxBoundI)
  7724. 1058.10 s [really-safe-money-gen] then Nothing
  7725. 1058.10 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7726. 1058.10 s [really-safe-money-gen]
  7727. 1058.10 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  7728. 1058.10 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7729. 1058.10 s [really-safe-money-gen] | otherwise =
  7730. 1058.10 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7731. 1058.10 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7732. 1058.10 s [really-safe-money-gen] - if exponent resultDouble > 65
  7733. 1058.10 s [really-safe-money-gen] + if exponent resultDouble > 1
  7734. 1058.10 s [really-safe-money-gen] then Nothing
  7735. 1058.10 s [really-safe-money-gen] else
  7736. 1058.10 s [really-safe-money-gen] let ceiled :: Natural
  7737. 1058.10 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
  7738. 1058.10 s [really-safe-money-gen] @@ -759,7 +759,7 @@
  7739. 1058.10 s [really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
  7740. 1058.10 s [really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
  7741. 1058.10 s [really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
  7742. 1058.10 s [really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
  7743. 1058.10 s [really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar - qf1r / qf2r))
  7744. 1058.10 s [really-safe-money-gen]
  7745. 1058.10 s [really-safe-money-gen] -- | Format an amount of money without a symbol.
  7746. 1058.10 s [really-safe-money-gen] --
  7747. 1058.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  7748. 1058.10 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  7749. 1058.10 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7750. 1058.10 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  7751. 1058.10 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7752. 1058.10 s [really-safe-money-gen] rounder = case r of
  7753. 1058.10 s [really-safe-money-gen] - RoundUp -> ceiling
  7754. 1058.10 s [really-safe-money-gen] RoundDown -> floor
  7755. 1058.10 s [really-safe-money-gen] RoundNearest -> round
  7756. 1058.10 s [really-safe-money-gen] roundedResult :: Natural
  7757. 1058.10 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7758. 1058.10 s [really-safe-money-gen] actualRate :: Ratio Natural
  7759. 1058.10 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
  7760. 1058.10 s [really-safe-money-gen] @@ -663,7 +663,7 @@
  7761. 1058.10 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7762. 1058.10 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7763. 1058.10 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7764. 1058.10 s [really-safe-money-gen] - theoreticalResult = amountAsRatio * f
  7765. 1058.10 s [really-safe-money-gen] + theoreticalResult = amountAsRatio + f
  7766. 1058.11 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7767. 1058.11 s [really-safe-money-gen] rounder = case r of
  7768. 1058.11 s [really-safe-money-gen] RoundUp -> ceiling
  7769. 1058.11 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  7770. 1058.11 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7771. 1058.11 s [really-safe-money-gen]
  7772. 1058.11 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7773. 1058.11 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7774. 1058.11 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7775. 1058.11 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount <= zero
  7776. 1064.24 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  7777. 1064.24 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7778. 1064.24 s [really-safe-money-gen]
  7779. 1064.27 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7780. 1064.27 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7781. 1064.27 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7782. 1064.27 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount < zero
  7783. 1064.27 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
  7784. 1064.27 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7785. 1064.27 s [really-safe-money-gen]
  7786. 1064.27 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7787. 1064.27 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7788. 1064.27 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7789. 1064.27 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  7790. 1064.27 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  7791. 1064.27 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7792. 1064.27 s [really-safe-money-gen] case ad of
  7793. 1064.27 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7794. 1064.27 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7795. 1064.27 s [really-safe-money-gen] - a1 > a2
  7796. 1064.27 s [really-safe-money-gen] + False
  7797. 1064.27 s [really-safe-money-gen] _ -> valid
  7798. 1064.27 s [really-safe-money-gen] ]
  7799. 1064.27 s [really-safe-money-gen]
  7800. 1064.27 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
  7801. 1064.27 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7802. 1064.27 s [really-safe-money-gen] case ad of
  7803. 1064.27 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7804. 1064.27 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7805. 1064.27 s [really-safe-money-gen] - a1 > a2
  7806. 1064.27 s [really-safe-money-gen] + not (a1 > a2)
  7807. 1064.27 s [really-safe-money-gen] _ -> valid
  7808. 1064.27 s [really-safe-money-gen] ]
  7809. 1064.27 s [really-safe-money-gen]
  7810. 1064.27 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  7811. 1064.27 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7812. 1064.27 s [really-safe-money-gen] case ad of
  7813. 1064.27 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7814. 1064.27 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7815. 1064.27 s [really-safe-money-gen] - a1 > a2
  7816. 1064.27 s [really-safe-money-gen] + a1 <= a2
  7817. 1064.27 s [really-safe-money-gen] _ -> valid
  7818. 1064.27 s [really-safe-money-gen] ]
  7819. 1064.27 s [really-safe-money-gen]
  7820. 1064.27 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  7821. 1064.27 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7822. 1064.27 s [really-safe-money-gen] case ad of
  7823. 1064.27 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7824. 1064.28 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7825. 1064.28 s [really-safe-money-gen] - a1 > a2
  7826. 1064.28 s [really-safe-money-gen] + a1 >= a2
  7827. 1064.28 s [really-safe-money-gen] _ -> valid
  7828. 1064.28 s [really-safe-money-gen] ]
  7829. 1064.28 s [really-safe-money-gen]
  7830. 1064.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  7831. 1064.28 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7832. 1064.28 s [really-safe-money-gen] case ad of
  7833. 1064.28 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7834. 1064.28 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7835. 1064.28 s [really-safe-money-gen] - a1 > a2
  7836. 1064.28 s [really-safe-money-gen] + True
  7837. 1064.28 s [really-safe-money-gen] _ -> valid
  7838. 1064.28 s [really-safe-money-gen] ]
  7839. 1064.28 s [really-safe-money-gen]
  7840. 1064.28 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  7841. 1064.28 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7842. 1064.28 s [really-safe-money-gen] case ad of
  7843. 1064.28 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7844. 1064.28 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7845. 1064.28 s [really-safe-money-gen] - a1 > a2
  7846. 1064.28 s [really-safe-money-gen] + a1 < a2
  7847. 1064.28 s [really-safe-money-gen] _ -> valid
  7848. 1064.28 s [really-safe-money-gen] ]
  7849. 1064.28 s [really-safe-money-gen]
  7850. 1064.28 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
  7851. 1064.28 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7852. 1064.28 s [really-safe-money-gen] maxBoundN :: Natural
  7853. 1064.28 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7854. 1064.28 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7855. 1064.28 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7856. 1064.28 s [really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
  7857. 1064.28 s [really-safe-money-gen] then Nothing
  7858. 1064.28 s [really-safe-money-gen] else Just result,
  7859. 1064.28 s [really-safe-money-gen] actualRate
  7860. 1064.28 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:683:16-27
  7861. 1064.28 s [really-safe-money-gen] @@ -680,7 +680,7 @@
  7862. 1064.28 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7863. 1064.28 s [really-safe-money-gen] in ( if roundedResult > maxBoundN
  7864. 1064.28 s [really-safe-money-gen] then Nothing
  7865. 1064.28 s [really-safe-money-gen] - else Just result,
  7866. 1064.28 s [really-safe-money-gen] + else Nothing,
  7867. 1064.28 s [really-safe-money-gen] actualRate
  7868. 1064.28 s [really-safe-money-gen] )
  7869. 1064.28 s [really-safe-money-gen]
  7870. 1064.28 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  7871. 1064.28 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  7872. 1064.28 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  7873. 1064.28 s [really-safe-money-gen] validate ad =
  7874. 1064.28 s [really-safe-money-gen] mconcat
  7875. 1064.28 s [really-safe-money-gen] - [ genericValidate ad,
  7876. 1064.28 s [really-safe-money-gen] case ad of
  7877. 1064.28 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7878. 1064.28 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7879. 1064.28 s [really-safe-money-gen] a1 > a2
  7880. 1064.28 s [really-safe-money-gen] _ -> valid
  7881. 1064.28 s [really-safe-money-gen] ]
  7882. 1064.28 s [really-safe-money-gen]
  7883. 1064.28 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7884. 1064.28 s [really-safe-money-gen]
  7885. 1064.28 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  7886. 1064.28 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  7887. 1064.28 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  7888. 1064.28 s [really-safe-money-gen] validate ad =
  7889. 1064.28 s [really-safe-money-gen] mconcat
  7890. 1064.28 s [really-safe-money-gen] - [ genericValidate ad,
  7891. 1064.28 s [really-safe-money-gen] - case ad of
  7892. 1064.28 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  7893. 1064.28 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  7894. 1064.29 s [really-safe-money-gen] - a1 > a2
  7895. 1064.29 s [really-safe-money-gen] - _ -> valid
  7896. 1064.29 s [really-safe-money-gen] ]
  7897. 1064.29 s [really-safe-money-gen]
  7898. 1064.29 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7899. 1064.29 s [really-safe-money-gen]
  7900. 1064.29 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
  7901. 1064.29 s [really-safe-money-gen] @@ -601,11 +601,10 @@
  7902. 1064.29 s [really-safe-money-gen] validate ad =
  7903. 1064.29 s [really-safe-money-gen] mconcat
  7904. 1064.29 s [really-safe-money-gen] [ genericValidate ad,
  7905. 1064.29 s [really-safe-money-gen] case ad of
  7906. 1064.29 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7907. 1064.29 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7908. 1064.29 s [really-safe-money-gen] a1 > a2
  7909. 1064.29 s [really-safe-money-gen] - _ -> valid
  7910. 1064.29 s [really-safe-money-gen] ]
  7911. 1064.29 s [really-safe-money-gen]
  7912. 1064.29 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7913. 1064.29 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7914. 1064.29 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7915. 1064.29 s [really-safe-money-gen] fmap
  7916. 1064.29 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7917. 1064.29 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7918. 1064.29 s [really-safe-money-gen] rounder = case r of
  7919. 1064.29 s [really-safe-money-gen] - RoundUp -> ceiling
  7920. 1064.29 s [really-safe-money-gen] RoundDown -> floor
  7921. 1064.29 s [really-safe-money-gen] RoundNearest -> round
  7922. 1064.29 s [really-safe-money-gen] roundedResult :: Natural
  7923. 1064.29 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7924. 1064.29 s [really-safe-money-gen] maxBoundN :: Natural
  7925. 1064.29 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7926. 1064.29 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7927. 1064.29 s [really-safe-money-gen] fmap
  7928. 1064.29 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7929. 1064.29 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7930. 1064.29 s [really-safe-money-gen] rounder = case r of
  7931. 1064.29 s [really-safe-money-gen] RoundUp -> ceiling
  7932. 1064.29 s [really-safe-money-gen] - RoundDown -> floor
  7933. 1064.29 s [really-safe-money-gen] RoundNearest -> round
  7934. 1064.29 s [really-safe-money-gen] roundedResult :: Natural
  7935. 1064.29 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7936. 1064.29 s [really-safe-money-gen] maxBoundN :: Natural
  7937. 1064.29 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
  7938. 1064.29 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  7939. 1064.29 s [really-safe-money-gen] validate ad =
  7940. 1064.29 s [really-safe-money-gen] mconcat
  7941. 1064.29 s [really-safe-money-gen] [ genericValidate ad,
  7942. 1064.29 s [really-safe-money-gen] case ad of
  7943. 1064.29 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  7944. 1064.29 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  7945. 1064.29 s [really-safe-money-gen] - a1 > a2
  7946. 1064.29 s [really-safe-money-gen] _ -> valid
  7947. 1064.29 s [really-safe-money-gen] ]
  7948. 1064.29 s [really-safe-money-gen]
  7949. 1064.29 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7950. 1064.29 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  7951. 1064.29 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  7952. 1064.29 s [really-safe-money-gen]
  7953. 1064.29 s [really-safe-money-gen] -- | Add an 'Amount' to a 'MultiAmount'
  7954. 1064.29 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7955. 1064.29 s [really-safe-money-gen] -addAmount m _ (Amount 0) = Just m
  7956. 1064.29 s [really-safe-money-gen] +addAmount m _ (Amount 0) = Nothing
  7957. 1064.29 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  7958. 1064.29 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  7959. 1064.29 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  7960. 1064.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  7961. 1064.29 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  7962. 1064.29 s [really-safe-money-gen] Just a -> do
  7963. 1064.29 s [really-safe-money-gen] r <- Amount.add a amount
  7964. 1064.29 s [really-safe-money-gen] Just $
  7965. 1064.29 s [really-safe-money-gen] - if r == Amount.zero
  7966. 1064.29 s [really-safe-money-gen] + if False
  7967. 1064.29 s [really-safe-money-gen] then M.delete currency m
  7968. 1064.30 s [really-safe-money-gen] else M.insert currency r m
  7969. 1064.30 s [really-safe-money-gen]
  7970. 1064.30 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
  7971. 1064.30 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  7972. 1064.30 s [really-safe-money-gen] Just a -> do
  7973. 1064.30 s [really-safe-money-gen] r <- Amount.add a amount
  7974. 1064.30 s [really-safe-money-gen] Just $
  7975. 1064.30 s [really-safe-money-gen] - if r == Amount.zero
  7976. 1069.85 s [really-safe-money-gen] + if not (r == Amount.zero)
  7977. 1069.88 s [really-safe-money-gen] then M.delete currency m
  7978. 1069.88 s [really-safe-money-gen] else M.insert currency r m
  7979. 1069.88 s [really-safe-money-gen]
  7980. 1069.88 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  7981. 1069.88 s [really-safe-money-gen] @@ -111,14 +111,8 @@
  7982. 1069.88 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7983. 1069.88 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  7984. 1069.88 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  7985. 1069.88 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  7986. 1069.88 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  7987. 1069.88 s [really-safe-money-gen] - Just a -> do
  7988. 1069.88 s [really-safe-money-gen] - r <- Amount.subtract a amount
  7989. 1069.88 s [really-safe-money-gen] - Just $
  7990. 1069.88 s [really-safe-money-gen] - if r == Amount.zero
  7991. 1069.88 s [really-safe-money-gen] - then M.delete currency m
  7992. 1069.88 s [really-safe-money-gen] - else M.insert currency r m
  7993. 1069.88 s [really-safe-money-gen]
  7994. 1069.88 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  7995. 1069.88 s [really-safe-money-gen] --
  7996. 1069.88 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  7997. 1069.88 s [really-safe-money-gen] @@ -98,14 +98,13 @@
  7998. 1069.88 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7999. 1069.88 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  8000. 1069.88 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  8001. 1069.89 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8002. 1069.89 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
  8003. 1069.89 s [really-safe-money-gen] Just a -> do
  8004. 1069.89 s [really-safe-money-gen] r <- Amount.add a amount
  8005. 1069.89 s [really-safe-money-gen] Just $
  8006. 1069.89 s [really-safe-money-gen] if r == Amount.zero
  8007. 1069.89 s [really-safe-money-gen] then M.delete currency m
  8008. 1069.89 s [really-safe-money-gen] else M.insert currency r m
  8009. 1069.89 s [really-safe-money-gen]
  8010. 1069.89 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8011. 1069.89 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8012. 1069.89 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  8013. 1069.89 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  8014. 1069.89 s [really-safe-money-gen] Just a -> do
  8015. 1069.89 s [really-safe-money-gen] r <- Amount.add a amount
  8016. 1069.89 s [really-safe-money-gen] Just $
  8017. 1069.89 s [really-safe-money-gen] - if r == Amount.zero
  8018. 1069.89 s [really-safe-money-gen] + if True
  8019. 1069.89 s [really-safe-money-gen] then M.delete currency m
  8020. 1069.89 s [really-safe-money-gen] else M.insert currency r m
  8021. 1069.89 s [really-safe-money-gen]
  8022. 1069.89 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  8023. 1069.89 s [really-safe-money-gen] @@ -98,14 +98,8 @@
  8024. 1069.89 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8025. 1069.89 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  8026. 1069.89 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  8027. 1069.89 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8028. 1069.89 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  8029. 1069.89 s [really-safe-money-gen] - Just a -> do
  8030. 1069.89 s [really-safe-money-gen] - r <- Amount.add a amount
  8031. 1069.89 s [really-safe-money-gen] - Just $
  8032. 1069.89 s [really-safe-money-gen] - if r == Amount.zero
  8033. 1069.89 s [really-safe-money-gen] - then M.delete currency m
  8034. 1069.89 s [really-safe-money-gen] - else M.insert currency r m
  8035. 1069.89 s [really-safe-money-gen]
  8036. 1069.89 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8037. 1069.89 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8038. 1069.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  8039. 1069.90 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8040. 1069.90 s [really-safe-money-gen]
  8041. 1069.90 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8042. 1069.90 s [really-safe-money-gen] fromAmount currency amount =
  8043. 1069.90 s [really-safe-money-gen] - if amount == Amount.zero
  8044. 1069.90 s [really-safe-money-gen] + if True
  8045. 1069.90 s [really-safe-money-gen] then zero
  8046. 1069.90 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8047. 1069.90 s [really-safe-money-gen]
  8048. 1069.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  8049. 1069.90 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8050. 1069.90 s [really-safe-money-gen]
  8051. 1069.90 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8052. 1069.90 s [really-safe-money-gen] fromAmount currency amount =
  8053. 1069.90 s [really-safe-money-gen] - if amount == Amount.zero
  8054. 1069.90 s [really-safe-money-gen] + if False
  8055. 1069.90 s [really-safe-money-gen] then zero
  8056. 1069.90 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8057. 1069.90 s [really-safe-money-gen]
  8058. 1069.90 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
  8059. 1069.90 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8060. 1069.90 s [really-safe-money-gen]
  8061. 1069.90 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8062. 1069.90 s [really-safe-money-gen] fromAmount currency amount =
  8063. 1069.90 s [really-safe-money-gen] - if amount == Amount.zero
  8064. 1069.90 s [really-safe-money-gen] + if not (amount == Amount.zero)
  8065. 1069.90 s [really-safe-money-gen] then zero
  8066. 1069.90 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8067. 1069.90 s [really-safe-money-gen]
  8068. 1069.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  8069. 1069.90 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8070. 1069.90 s [really-safe-money-gen] [ genericValidate ma,
  8071. 1069.90 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8072. 1069.90 s [really-safe-money-gen] declare "The amount is not zero" $
  8073. 1069.90 s [really-safe-money-gen] - a /= Amount.zero
  8074. 1069.90 s [really-safe-money-gen] + True
  8075. 1069.90 s [really-safe-money-gen] ]
  8076. 1069.90 s [really-safe-money-gen]
  8077. 1069.90 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8078. 1069.90 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
  8079. 1069.90 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  8080. 1069.90 s [really-safe-money-gen] . traverse
  8081. 1069.90 s [really-safe-money-gen] ( \(currency, a) ->
  8082. 1069.90 s [really-safe-money-gen] ( \(cr, qf2) ->
  8083. 1069.90 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  8084. 1069.90 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) + ConversionRate.conversionFactor qf2 cr qf1
  8085. 1069.90 s [really-safe-money-gen] )
  8086. 1069.90 s [really-safe-money-gen] <$> func currency
  8087. 1069.90 s [really-safe-money-gen] )
  8088. 1069.90 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
  8089. 1069.90 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  8090. 1069.90 s [really-safe-money-gen] . traverse
  8091. 1069.91 s [really-safe-money-gen] ( \(currency, a) ->
  8092. 1069.91 s [really-safe-money-gen] ( \(cr, qf2) ->
  8093. 1069.91 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  8094. 1069.91 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) - ConversionRate.conversionFactor qf2 cr qf1
  8095. 1069.91 s [really-safe-money-gen] )
  8096. 1069.91 s [really-safe-money-gen] <$> func currency
  8097. 1069.91 s [really-safe-money-gen] )
  8098. 1069.91 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  8099. 1069.91 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  8100. 1069.91 s [really-safe-money-gen] maxBoundN :: Natural
  8101. 1069.91 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8102. 1069.91 s [really-safe-money-gen] actualResult =
  8103. 1069.91 s [really-safe-money-gen] - if roundedResult > maxBoundN
  8104. 1069.91 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  8105. 1069.91 s [really-safe-money-gen] then Nothing
  8106. 1069.91 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8107. 1069.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8108. 1069.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  8109. 1069.91 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8110. 1069.91 s [really-safe-money-gen] Just a -> do
  8111. 1069.91 s [really-safe-money-gen] r <- Amount.subtract a amount
  8112. 1069.91 s [really-safe-money-gen] Just $
  8113. 1069.91 s [really-safe-money-gen] - if r == Amount.zero
  8114. 1069.91 s [really-safe-money-gen] + if False
  8115. 1069.91 s [really-safe-money-gen] then M.delete currency m
  8116. 1069.91 s [really-safe-money-gen] else M.insert currency r m
  8117. 1069.91 s [really-safe-money-gen]
  8118. 1069.91 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
  8119. 1069.91 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8120. 1069.91 s [really-safe-money-gen] Just a -> do
  8121. 1069.91 s [really-safe-money-gen] r <- Amount.subtract a amount
  8122. 1069.91 s [really-safe-money-gen] Just $
  8123. 1069.91 s [really-safe-money-gen] - if r == Amount.zero
  8124. 1069.91 s [really-safe-money-gen] + if not (r == Amount.zero)
  8125. 1069.91 s [really-safe-money-gen] then M.delete currency m
  8126. 1069.91 s [really-safe-money-gen] else M.insert currency r m
  8127. 1069.91 s [really-safe-money-gen]
  8128. 1069.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  8129. 1069.91 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  8130. 1069.91 s [really-safe-money-gen] maxBoundN :: Natural
  8131. 1069.91 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8132. 1069.91 s [really-safe-money-gen] actualResult =
  8133. 1069.91 s [really-safe-money-gen] - if roundedResult > maxBoundN
  8134. 1069.91 s [really-safe-money-gen] + if True
  8135. 1069.91 s [really-safe-money-gen] then Nothing
  8136. 1069.91 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8137. 1069.91 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8138. 1069.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  8139. 1069.92 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8140. 1069.92 s [really-safe-money-gen] [ genericValidate ma,
  8141. 1069.92 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8142. 1069.92 s [really-safe-money-gen] declare "The amount is not zero" $
  8143. 1069.92 s [really-safe-money-gen] - a /= Amount.zero
  8144. 1069.92 s [really-safe-money-gen] + False
  8145. 1069.92 s [really-safe-money-gen] ]
  8146. 1069.92 s [really-safe-money-gen]
  8147. 1069.92 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8148. 1069.92 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  8149. 1069.92 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  8150. 1069.92 s [really-safe-money-gen] if roundedResult > maxBoundN
  8151. 1069.92 s [really-safe-money-gen] then Nothing
  8152. 1069.92 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8153. 1074.26 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8154. 1074.26 s [really-safe-money-gen] - LT -> RoundedDown
  8155. 1074.27 s [really-safe-money-gen] EQ -> DidNotRound
  8156. 1074.27 s [really-safe-money-gen] GT -> RoundedUp
  8157. 1074.27 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  8158. 1074.27 s [really-safe-money-gen] )
  8159. 1074.27 s [really-safe-money-gen] . Prelude.sum
  8160. 1074.27 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  8161. 1074.27 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  8162. 1074.27 s [really-safe-money-gen] if roundedResult > maxBoundN
  8163. 1074.27 s [really-safe-money-gen] then Nothing
  8164. 1074.27 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8165. 1074.27 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8166. 1074.27 s [really-safe-money-gen] LT -> RoundedDown
  8167. 1074.27 s [really-safe-money-gen] EQ -> DidNotRound
  8168. 1074.27 s [really-safe-money-gen] - GT -> RoundedUp
  8169. 1074.27 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  8170. 1074.27 s [really-safe-money-gen] )
  8171. 1074.27 s [really-safe-money-gen] . Prelude.sum
  8172. 1074.27 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  8173. 1074.27 s [really-safe-money-gen] @@ -167,7 +167,7 @@
  8174. 1074.27 s [really-safe-money-gen] actualResult =
  8175. 1074.27 s [really-safe-money-gen] if roundedResult > maxBoundN
  8176. 1074.27 s [really-safe-money-gen] then Nothing
  8177. 1074.27 s [really-safe-money-gen] - else Just (fromIntegral roundedResult)
  8178. 1074.27 s [really-safe-money-gen] + else Nothing
  8179. 1074.27 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8180. 1074.27 s [really-safe-money-gen] LT -> RoundedDown
  8181. 1074.27 s [really-safe-money-gen] EQ -> DidNotRound
  8182. 1074.27 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  8183. 1074.27 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  8184. 1074.27 s [really-safe-money-gen] if roundedResult > maxBoundN
  8185. 1074.27 s [really-safe-money-gen] then Nothing
  8186. 1074.27 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8187. 1074.27 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8188. 1074.27 s [really-safe-money-gen] LT -> RoundedDown
  8189. 1074.27 s [really-safe-money-gen] - EQ -> DidNotRound
  8190. 1074.27 s [really-safe-money-gen] GT -> RoundedUp
  8191. 1074.27 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  8192. 1074.27 s [really-safe-money-gen] )
  8193. 1074.27 s [really-safe-money-gen] . Prelude.sum
  8194. 1074.27 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  8195. 1074.28 s [really-safe-money-gen] @@ -111,14 +111,13 @@
  8196. 1074.28 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8197. 1074.28 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  8198. 1074.28 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  8199. 1074.28 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8200. 1074.28 s [really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
  8201. 1074.28 s [really-safe-money-gen] Just a -> do
  8202. 1074.28 s [really-safe-money-gen] r <- Amount.subtract a amount
  8203. 1074.28 s [really-safe-money-gen] Just $
  8204. 1074.28 s [really-safe-money-gen] if r == Amount.zero
  8205. 1074.28 s [really-safe-money-gen] then M.delete currency m
  8206. 1074.28 s [really-safe-money-gen] else M.insert currency r m
  8207. 1074.28 s [really-safe-money-gen]
  8208. 1074.28 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  8209. 1074.28 s [really-safe-money-gen] --
  8210. 1074.28 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
  8211. 1074.28 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  8212. 1074.28 s [really-safe-money-gen] maxBoundN :: Natural
  8213. 1074.28 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8214. 1074.28 s [really-safe-money-gen] actualResult =
  8215. 1074.28 s [really-safe-money-gen] - if roundedResult > maxBoundN
  8216. 1074.28 s [really-safe-money-gen] + if not (roundedResult > maxBoundN)
  8217. 1074.28 s [really-safe-money-gen] then Nothing
  8218. 1074.28 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8219. 1074.28 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8220. 1074.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  8221. 1074.28 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8222. 1074.28 s [really-safe-money-gen] Just a -> do
  8223. 1074.28 s [really-safe-money-gen] r <- Amount.subtract a amount
  8224. 1074.28 s [really-safe-money-gen] Just $
  8225. 1074.28 s [really-safe-money-gen] - if r == Amount.zero
  8226. 1074.28 s [really-safe-money-gen] + if True
  8227. 1074.28 s [really-safe-money-gen] then M.delete currency m
  8228. 1074.28 s [really-safe-money-gen] else M.insert currency r m
  8229. 1074.28 s [really-safe-money-gen]
  8230. 1074.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  8231. 1074.28 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  8232. 1074.28 s [really-safe-money-gen] maxBoundN :: Natural
  8233. 1074.28 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8234. 1074.28 s [really-safe-money-gen] actualResult =
  8235. 1074.28 s [really-safe-money-gen] - if roundedResult > maxBoundN
  8236. 1074.28 s [really-safe-money-gen] + if False
  8237. 1074.28 s [really-safe-money-gen] then Nothing
  8238. 1074.28 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8239. 1074.28 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8240. 1074.28 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
  8241. 1074.28 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8242. 1074.28 s [really-safe-money-gen] [ genericValidate ma,
  8243. 1074.28 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8244. 1074.28 s [really-safe-money-gen] declare "The amount is not zero" $
  8245. 1074.28 s [really-safe-money-gen] - a /= Amount.zero
  8246. 1074.28 s [really-safe-money-gen] + not (a /= Amount.zero)
  8247. 1074.28 s [really-safe-money-gen] ]
  8248. 1074.28 s [really-safe-money-gen]
  8249. 1074.28 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8250. 1074.28 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  8251. 1074.28 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  8252. 1074.28 s [really-safe-money-gen]
  8253. 1074.28 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8254. 1074.28 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8255. 1074.28 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  8256. 1074.28 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  8257. 1074.28 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  8258. 1074.28 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8259. 1074.28 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  8260. 1074.28 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  8261. 1074.28 s [really-safe-money-gen] @@ -126,14 +126,13 @@
  8262. 1074.28 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  8263. 1074.28 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  8264. 1074.28 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8265. 1074.28 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8266. 1074.28 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
  8267. 1074.28 s [really-safe-money-gen] Just a -> do
  8268. 1074.28 s [really-safe-money-gen] r <- Account.subtract a account
  8269. 1074.28 s [really-safe-money-gen] Just $
  8270. 1074.28 s [really-safe-money-gen] if r == Account.zero
  8271. 1074.28 s [really-safe-money-gen] then M.delete currency m
  8272. 1074.28 s [really-safe-money-gen] else M.insert currency r m
  8273. 1074.28 s [really-safe-money-gen]
  8274. 1074.28 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  8275. 1074.28 s [really-safe-money-gen] --
  8276. 1074.28 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  8277. 1074.29 s [really-safe-money-gen] @@ -126,14 +126,8 @@
  8278. 1074.29 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  8279. 1074.29 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  8280. 1074.29 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8281. 1074.29 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8282. 1074.29 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  8283. 1074.29 s [really-safe-money-gen] - Just a -> do
  8284. 1074.29 s [really-safe-money-gen] - r <- Account.subtract a account
  8285. 1074.29 s [really-safe-money-gen] - Just $
  8286. 1074.29 s [really-safe-money-gen] - if r == Account.zero
  8287. 1074.29 s [really-safe-money-gen] - then M.delete currency m
  8288. 1074.29 s [really-safe-money-gen] - else M.insert currency r m
  8289. 1074.29 s [really-safe-money-gen]
  8290. 1074.29 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  8291. 1074.29 s [really-safe-money-gen] --
  8292. 1074.29 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  8293. 1074.29 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  8294. 1074.29 s [really-safe-money-gen]
  8295. 1074.29 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8296. 1074.29 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8297. 1074.29 s [really-safe-money-gen] -addAccount m _ (Positive (Amount 0)) = Just m
  8298. 1074.29 s [really-safe-money-gen] +addAccount m _ (Positive (Amount 0)) = Nothing
  8299. 1074.29 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  8300. 1074.29 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8301. 1074.29 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8302. 1074.29 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8303. 1074.29 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8304. 1074.29 s [really-safe-money-gen]
  8305. 1074.29 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8306. 1074.29 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8307. 1074.29 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8308. 1074.29 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8309. 1074.29 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8310. 1074.29 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8311. 1074.29 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8312. 1074.29 s [really-safe-money-gen]
  8313. 1074.29 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8314. 1074.29 s [really-safe-money-gen]
  8315. 1074.29 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  8316. 1074.29 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  8317. 1074.29 s [really-safe-money-gen] fmap
  8318. 1074.29 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8319. 1074.29 s [really-safe-money-gen] let rounder :: Rational -> Integer
  8320. 1074.29 s [really-safe-money-gen] rounder = case r of
  8321. 1074.29 s [really-safe-money-gen] - RoundUp -> ceiling
  8322. 1074.29 s [really-safe-money-gen] RoundDown -> floor
  8323. 1078.39 s [really-safe-money-gen] RoundNearest -> round
  8324. 1078.39 s [really-safe-money-gen] roundedResult :: Integer
  8325. 1078.39 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8326. 1078.46 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8327. 1078.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  8328. 1078.46 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  8329. 1078.46 s [really-safe-money-gen] Just a -> do
  8330. 1078.46 s [really-safe-money-gen] r <- Account.subtract a account
  8331. 1078.46 s [really-safe-money-gen] Just $
  8332. 1078.47 s [really-safe-money-gen] - if r == Account.zero
  8333. 1078.47 s [really-safe-money-gen] + if True
  8334. 1078.47 s [really-safe-money-gen] then M.delete currency m
  8335. 1078.47 s [really-safe-money-gen] else M.insert currency r m
  8336. 1078.47 s [really-safe-money-gen]
  8337. 1078.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  8338. 1078.47 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  8339. 1078.47 s [really-safe-money-gen] Just a -> do
  8340. 1078.47 s [really-safe-money-gen] r <- Account.subtract a account
  8341. 1078.47 s [really-safe-money-gen] Just $
  8342. 1078.47 s [really-safe-money-gen] - if r == Account.zero
  8343. 1078.47 s [really-safe-money-gen] + if False
  8344. 1078.47 s [really-safe-money-gen] then M.delete currency m
  8345. 1078.47 s [really-safe-money-gen] else M.insert currency r m
  8346. 1078.47 s [really-safe-money-gen]
  8347. 1078.47 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  8348. 1078.47 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  8349. 1078.47 s [really-safe-money-gen] RoundNearest -> round
  8350. 1078.47 s [really-safe-money-gen] roundedResult :: Integer
  8351. 1078.47 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8352. 1078.47 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8353. 1078.47 s [really-safe-money-gen] - LT -> RoundedDown
  8354. 1078.47 s [really-safe-money-gen] EQ -> DidNotRound
  8355. 1078.47 s [really-safe-money-gen] GT -> RoundedUp
  8356. 1078.47 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  8357. 1078.47 s [really-safe-money-gen] )
  8358. 1078.47 s [really-safe-money-gen] . Prelude.sum
  8359. 1078.47 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  8360. 1078.47 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  8361. 1078.47 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8362. 1078.47 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8363. 1078.47 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  8364. 1078.47 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  8365. 1078.47 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  8366. 1078.47 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8367. 1078.47 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8368. 1078.47 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  8369. 1078.47 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  8370. 1078.48 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  8371. 1078.48 s [really-safe-money-gen] fmap
  8372. 1078.48 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8373. 1078.48 s [really-safe-money-gen] let rounder :: Rational -> Integer
  8374. 1078.48 s [really-safe-money-gen] rounder = case r of
  8375. 1078.48 s [really-safe-money-gen] RoundUp -> ceiling
  8376. 1078.48 s [really-safe-money-gen] RoundDown -> floor
  8377. 1078.48 s [really-safe-money-gen] - RoundNearest -> round
  8378. 1078.48 s [really-safe-money-gen] roundedResult :: Integer
  8379. 1078.48 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8380. 1078.48 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8381. 1078.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8382. 1078.48 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8383. 1078.48 s [really-safe-money-gen]
  8384. 1078.48 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8385. 1078.48 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8386. 1078.48 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8387. 1078.48 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8388. 1078.48 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8389. 1078.48 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8390. 1078.48 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8391. 1078.48 s [really-safe-money-gen]
  8392. 1078.48 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8393. 1078.48 s [really-safe-money-gen]
  8394. 1078.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8395. 1078.48 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8396. 1078.48 s [really-safe-money-gen]
  8397. 1078.48 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8398. 1078.48 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8399. 1078.48 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8400. 1078.48 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8401. 1078.48 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8402. 1078.48 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8403. 1078.48 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8404. 1078.48 s [really-safe-money-gen]
  8405. 1078.48 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8406. 1078.48 s [really-safe-money-gen]
  8407. 1078.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8408. 1078.48 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8409. 1078.48 s [really-safe-money-gen]
  8410. 1078.48 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8411. 1078.48 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8412. 1078.48 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8413. 1078.48 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8414. 1078.48 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  8415. 1078.48 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8416. 1078.48 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8417. 1078.48 s [really-safe-money-gen]
  8418. 1078.48 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8419. 1078.48 s [really-safe-money-gen]
  8420. 1078.48 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  8421. 1078.48 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  8422. 1078.48 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  8423. 1078.48 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  8424. 1078.48 s [really-safe-money-gen] mconcat
  8425. 1078.48 s [really-safe-money-gen] - [ genericValidate ma,
  8426. 1078.48 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8427. 1078.48 s [really-safe-money-gen] declare "The amount is not zero" $
  8428. 1078.48 s [really-safe-money-gen] a /= Amount.zero
  8429. 1078.48 s [really-safe-money-gen] ]
  8430. 1078.48 s [really-safe-money-gen]
  8431. 1078.48 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8432. 1078.48 s [really-safe-money-gen]
  8433. 1078.48 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  8434. 1078.48 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  8435. 1078.48 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  8436. 1078.48 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  8437. 1078.48 s [really-safe-money-gen] mconcat
  8438. 1078.48 s [really-safe-money-gen] - [ genericValidate ma,
  8439. 1078.48 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  8440. 1078.48 s [really-safe-money-gen] - declare "The amount is not zero" $
  8441. 1078.48 s [really-safe-money-gen] - a /= Amount.zero
  8442. 1078.48 s [really-safe-money-gen] ]
  8443. 1078.48 s [really-safe-money-gen]
  8444. 1078.48 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8445. 1078.48 s [really-safe-money-gen]
  8446. 1078.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
  8447. 1078.49 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  8448. 1078.49 s [really-safe-money-gen] Just a -> do
  8449. 1078.49 s [really-safe-money-gen] r <- Account.subtract a account
  8450. 1078.49 s [really-safe-money-gen] Just $
  8451. 1078.49 s [really-safe-money-gen] - if r == Account.zero
  8452. 1078.49 s [really-safe-money-gen] + if not (r == Account.zero)
  8453. 1078.49 s [really-safe-money-gen] then M.delete currency m
  8454. 1078.49 s [really-safe-money-gen] else M.insert currency r m
  8455. 1078.49 s [really-safe-money-gen]
  8456. 1078.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  8457. 1078.49 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  8458. 1078.49 s [really-safe-money-gen] maxBoundN :: Natural
  8459. 1078.49 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8460. 1078.49 s [really-safe-money-gen] actualResult =
  8461. 1078.49 s [really-safe-money-gen] - if roundedResult > maxBoundN
  8462. 1078.49 s [really-safe-money-gen] + if roundedResult <= maxBoundN
  8463. 1078.49 s [really-safe-money-gen] then Nothing
  8464. 1078.49 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8465. 1078.49 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8466. 1078.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  8467. 1078.49 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  8468. 1078.49 s [really-safe-money-gen] maxBoundN :: Natural
  8469. 1078.49 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8470. 1078.49 s [really-safe-money-gen] actualResult =
  8471. 1078.49 s [really-safe-money-gen] - if roundedResult > maxBoundN
  8472. 1078.49 s [really-safe-money-gen] + if roundedResult < maxBoundN
  8473. 1078.49 s [really-safe-money-gen] then Nothing
  8474. 1078.49 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  8475. 1078.49 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8476. 1078.49 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  8477. 1078.49 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  8478. 1078.49 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8479. 1078.49 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8480. 1078.49 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  8481. 1078.49 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  8482. 1078.49 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  8483. 1078.49 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8484. 1078.49 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8485. 1078.49 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  8486. 1078.49 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  8487. 1078.49 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  8488. 1078.49 s [really-safe-money-gen]
  8489. 1078.49 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8490. 1078.49 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8491. 1081.45 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  8492. 1081.45 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  8493. 1081.45 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  8494. 1081.45 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8495. 1081.45 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8496. 1081.45 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
  8497. 1081.45 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  8498. 1081.45 s [really-safe-money-gen] ( \(currency, a) ->
  8499. 1081.45 s [really-safe-money-gen] ( \(cr, qf2) ->
  8500. 1081.45 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  8501. 1081.45 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  8502. 1081.45 s [really-safe-money-gen] - * toInteger (numerator factor)
  8503. 1081.45 s [really-safe-money-gen] + - toInteger (numerator factor)
  8504. 1081.45 s [really-safe-money-gen] % toInteger (denominator factor)
  8505. 1081.45 s [really-safe-money-gen] )
  8506. 1081.45 s [really-safe-money-gen] <$> func currency
  8507. 1081.45 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
  8508. 1081.45 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  8509. 1081.45 s [really-safe-money-gen] ( \(currency, a) ->
  8510. 1081.45 s [really-safe-money-gen] ( \(cr, qf2) ->
  8511. 1081.45 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  8512. 1081.45 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  8513. 1081.45 s [really-safe-money-gen] - * toInteger (numerator factor)
  8514. 1081.45 s [really-safe-money-gen] + + toInteger (numerator factor)
  8515. 1081.45 s [really-safe-money-gen] % toInteger (denominator factor)
  8516. 1081.45 s [really-safe-money-gen] )
  8517. 1081.45 s [really-safe-money-gen] <$> func currency
  8518. 1081.45 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  8519. 1081.45 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  8520. 1081.45 s [really-safe-money-gen] RoundNearest -> round
  8521. 1081.45 s [really-safe-money-gen] roundedResult :: Integer
  8522. 1081.46 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8523. 1081.46 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8524. 1081.46 s [really-safe-money-gen] LT -> RoundedDown
  8525. 1081.46 s [really-safe-money-gen] EQ -> DidNotRound
  8526. 1081.46 s [really-safe-money-gen] - GT -> RoundedUp
  8527. 1081.46 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  8528. 1081.46 s [really-safe-money-gen] )
  8529. 1081.46 s [really-safe-money-gen] . Prelude.sum
  8530. 1081.46 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  8531. 1081.46 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  8532. 1081.46 s [really-safe-money-gen] RoundNearest -> round
  8533. 1081.46 s [really-safe-money-gen] roundedResult :: Integer
  8534. 1081.46 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8535. 1081.46 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8536. 1081.46 s [really-safe-money-gen] LT -> RoundedDown
  8537. 1081.46 s [really-safe-money-gen] - EQ -> DidNotRound
  8538. 1081.46 s [really-safe-money-gen] GT -> RoundedUp
  8539. 1081.46 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  8540. 1081.46 s [really-safe-money-gen] )
  8541. 1081.46 s [really-safe-money-gen] . Prelude.sum
  8542. 1081.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  8543. 1081.46 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  8544. 1081.46 s [really-safe-money-gen] [ genericValidate ma,
  8545. 1081.46 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8546. 1081.46 s [really-safe-money-gen] declare "The account is not zero" $
  8547. 1081.46 s [really-safe-money-gen] - a /= Account.zero
  8548. 1081.46 s [really-safe-money-gen] + False
  8549. 1081.46 s [really-safe-money-gen] ]
  8550. 1081.46 s [really-safe-money-gen]
  8551. 1081.46 s [really-safe-money-gen] -- TODO no empty currencies
  8552. 1081.46 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  8553. 1081.47 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  8554. 1081.47 s [really-safe-money-gen] fmap
  8555. 1081.47 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8556. 1081.47 s [really-safe-money-gen] let rounder :: Rational -> Integer
  8557. 1081.47 s [really-safe-money-gen] rounder = case r of
  8558. 1081.47 s [really-safe-money-gen] RoundUp -> ceiling
  8559. 1081.47 s [really-safe-money-gen] - RoundDown -> floor
  8560. 1081.47 s [really-safe-money-gen] RoundNearest -> round
  8561. 1081.47 s [really-safe-money-gen] roundedResult :: Integer
  8562. 1081.47 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8563. 1081.47 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8564. 1081.47 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  8565. 1081.47 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  8566. 1081.47 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  8567. 1081.47 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  8568. 1081.47 s [really-safe-money-gen] mconcat
  8569. 1081.47 s [really-safe-money-gen] - [ genericValidate ma,
  8570. 1081.47 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  8571. 1081.47 s [really-safe-money-gen] - declare "The account is not zero" $
  8572. 1081.47 s [really-safe-money-gen] - a /= Account.zero
  8573. 1081.47 s [really-safe-money-gen] ]
  8574. 1081.47 s [really-safe-money-gen]
  8575. 1081.47 s [really-safe-money-gen] -- TODO no empty currencies
  8576. 1081.47 s [really-safe-money-gen]
  8577. 1081.47 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  8578. 1081.47 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  8579. 1081.47 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  8580. 1081.47 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  8581. 1081.47 s [really-safe-money-gen] mconcat
  8582. 1081.47 s [really-safe-money-gen] - [ genericValidate ma,
  8583. 1081.47 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8584. 1081.48 s [really-safe-money-gen] declare "The account is not zero" $
  8585. 1081.48 s [really-safe-money-gen] a /= Account.zero
  8586. 1081.48 s [really-safe-money-gen] ]
  8587. 1081.48 s [really-safe-money-gen]
  8588. 1081.48 s [really-safe-money-gen] -- TODO no empty currencies
  8589. 1081.48 s [really-safe-money-gen]
  8590. 1081.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  8591. 1081.48 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  8592. 1081.48 s [really-safe-money-gen] codec
  8593. 1081.48 s [really-safe-money-gen] <?> "QuantisationFactor"
  8594. 1081.48 s [really-safe-money-gen] where
  8595. 1081.48 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  8596. 1081.48 s [really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  8597. 1081.48 s [really-safe-money-gen] Just qf -> Right qf
  8598. 1081.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  8599. 1081.48 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  8600. 1081.48 s [really-safe-money-gen] codec
  8601. 1081.48 s [really-safe-money-gen] <?> "QuantisationFactor"
  8602. 1081.48 s [really-safe-money-gen] where
  8603. 1081.48 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  8604. 1081.48 s [really-safe-money-gen] Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  8605. 1081.48 s [really-safe-money-gen] - Just qf -> Right qf
  8606. 1081.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  8607. 1081.48 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  8608. 1081.48 s [really-safe-money-gen] fmap
  8609. 1081.48 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8610. 1081.48 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  8611. 1081.48 s [really-safe-money-gen] rounder = case r of
  8612. 1081.48 s [really-safe-money-gen] RoundUp -> ceiling
  8613. 1081.48 s [really-safe-money-gen] RoundDown -> floor
  8614. 1081.48 s [really-safe-money-gen] - RoundNearest -> round
  8615. 1081.48 s [really-safe-money-gen] roundedResult :: Natural
  8616. 1081.48 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8617. 1081.48 s [really-safe-money-gen] maxBoundN :: Natural
  8618. 1081.48 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8619. 1081.48 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8620. 1081.48 s [really-safe-money-gen] f s = case readMaybe s of
  8621. 1081.48 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8622. 1081.48 s [really-safe-money-gen] Just i ->
  8623. 1081.48 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8624. 1081.48 s [really-safe-money-gen] + if (i :: Integer) > toInteger (minBound :: Word64)
  8625. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8626. 1081.49 s [really-safe-money-gen] else
  8627. 1081.49 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8628. 1081.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8629. 1081.49 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8630. 1081.49 s [really-safe-money-gen] f s = case readMaybe s of
  8631. 1081.49 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8632. 1081.49 s [really-safe-money-gen] Just i ->
  8633. 1081.49 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8634. 1081.49 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (minBound :: Word64)
  8635. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8636. 1081.49 s [really-safe-money-gen] else
  8637. 1081.49 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8638. 1081.49 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8639. 1081.49 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  8640. 1081.49 s [really-safe-money-gen] where
  8641. 1081.49 s [really-safe-money-gen] f :: String -> Either String Amount
  8642. 1081.49 s [really-safe-money-gen] f s = case readMaybe s of
  8643. 1081.49 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8644. 1081.49 s [really-safe-money-gen] Just i ->
  8645. 1081.49 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8646. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8647. 1081.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
  8648. 1081.49 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  8649. 1081.49 s [really-safe-money-gen] [ genericValidate ma,
  8650. 1081.49 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8651. 1081.49 s [really-safe-money-gen] declare "The account is not zero" $
  8652. 1081.49 s [really-safe-money-gen] - a /= Account.zero
  8653. 1081.49 s [really-safe-money-gen] + not (a /= Account.zero)
  8654. 1081.49 s [really-safe-money-gen] ]
  8655. 1081.49 s [really-safe-money-gen]
  8656. 1081.49 s [really-safe-money-gen] -- TODO no empty currencies
  8657. 1081.49 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8658. 1081.49 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  8659. 1081.49 s [really-safe-money-gen] where
  8660. 1081.49 s [really-safe-money-gen] f :: String -> Either String Amount
  8661. 1081.49 s [really-safe-money-gen] f s = case readMaybe s of
  8662. 1081.49 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8663. 1081.49 s [really-safe-money-gen] Just i ->
  8664. 1081.49 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8665. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8666. 1081.50 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8667. 1081.50 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8668. 1081.50 s [really-safe-money-gen] f s = case readMaybe s of
  8669. 1081.50 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8670. 1081.50 s [really-safe-money-gen] Just i ->
  8671. 1081.50 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8672. 1081.50 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (minBound :: Word64)
  8673. 1085.96 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8674. 1086.05 s [really-safe-money-gen] else
  8675. 1086.05 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8676. 1086.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  8677. 1086.05 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  8678. 1086.05 s [really-safe-money-gen] [ genericValidate ma,
  8679. 1086.05 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8680. 1086.05 s [really-safe-money-gen] declare "The account is not zero" $
  8681. 1086.05 s [really-safe-money-gen] - a /= Account.zero
  8682. 1086.05 s [really-safe-money-gen] + True
  8683. 1086.05 s [really-safe-money-gen] ]
  8684. 1086.05 s [really-safe-money-gen]
  8685. 1086.05 s [really-safe-money-gen] -- TODO no empty currencies
  8686. 1086.06 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
  8687. 1086.06 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  8688. 1086.06 s [really-safe-money-gen]
  8689. 1086.06 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  8690. 1086.06 s [really-safe-money-gen] fromAccount currency amount =
  8691. 1086.06 s [really-safe-money-gen] - if amount == Account.zero
  8692. 1086.06 s [really-safe-money-gen] + if not (amount == Account.zero)
  8693. 1086.06 s [really-safe-money-gen] then zero
  8694. 1086.06 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  8695. 1086.06 s [really-safe-money-gen]
  8696. 1086.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  8697. 1086.06 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  8698. 1086.06 s [really-safe-money-gen] Just a -> do
  8699. 1086.06 s [really-safe-money-gen] r <- Account.add a account
  8700. 1086.06 s [really-safe-money-gen] Just $
  8701. 1086.06 s [really-safe-money-gen] - if r == Account.zero
  8702. 1086.06 s [really-safe-money-gen] + if False
  8703. 1086.06 s [really-safe-money-gen] then M.delete currency m
  8704. 1086.06 s [really-safe-money-gen] else M.insert currency r m
  8705. 1086.06 s [really-safe-money-gen]
  8706. 1086.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  8707. 1086.06 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  8708. 1086.06 s [really-safe-money-gen]
  8709. 1086.06 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  8710. 1086.06 s [really-safe-money-gen] fromAccount currency amount =
  8711. 1086.06 s [really-safe-money-gen] - if amount == Account.zero
  8712. 1086.06 s [really-safe-money-gen] + if False
  8713. 1086.06 s [really-safe-money-gen] then zero
  8714. 1086.06 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  8715. 1086.06 s [really-safe-money-gen]
  8716. 1086.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  8717. 1086.06 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  8718. 1086.06 s [really-safe-money-gen]
  8719. 1086.06 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  8720. 1086.06 s [really-safe-money-gen] fromAccount currency amount =
  8721. 1086.07 s [really-safe-money-gen] - if amount == Account.zero
  8722. 1086.07 s [really-safe-money-gen] + if True
  8723. 1086.07 s [really-safe-money-gen] then zero
  8724. 1086.07 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  8725. 1086.07 s [really-safe-money-gen]
  8726. 1086.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  8727. 1086.07 s [really-safe-money-gen] @@ -112,14 +112,8 @@
  8728. 1086.07 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  8729. 1086.07 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  8730. 1086.07 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8731. 1086.07 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8732. 1086.07 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  8733. 1086.07 s [really-safe-money-gen] - Just a -> do
  8734. 1086.07 s [really-safe-money-gen] - r <- Account.add a account
  8735. 1086.07 s [really-safe-money-gen] - Just $
  8736. 1086.07 s [really-safe-money-gen] - if r == Account.zero
  8737. 1086.07 s [really-safe-money-gen] - then M.delete currency m
  8738. 1086.07 s [really-safe-money-gen] - else M.insert currency r m
  8739. 1086.07 s [really-safe-money-gen]
  8740. 1086.07 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8741. 1086.07 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8742. 1086.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  8743. 1086.07 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  8744. 1086.07 s [really-safe-money-gen] Just a -> do
  8745. 1086.07 s [really-safe-money-gen] r <- Account.add a account
  8746. 1086.07 s [really-safe-money-gen] Just $
  8747. 1086.07 s [really-safe-money-gen] - if r == Account.zero
  8748. 1086.07 s [really-safe-money-gen] + if True
  8749. 1086.07 s [really-safe-money-gen] then M.delete currency m
  8750. 1086.07 s [really-safe-money-gen] else M.insert currency r m
  8751. 1086.07 s [really-safe-money-gen]
  8752. 1086.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  8753. 1086.07 s [really-safe-money-gen] @@ -112,14 +112,13 @@
  8754. 1086.07 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  8755. 1086.07 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  8756. 1086.07 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8757. 1086.07 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8758. 1086.08 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
  8759. 1086.08 s [really-safe-money-gen] Just a -> do
  8760. 1086.08 s [really-safe-money-gen] r <- Account.add a account
  8761. 1086.08 s [really-safe-money-gen] Just $
  8762. 1086.08 s [really-safe-money-gen] if r == Account.zero
  8763. 1086.08 s [really-safe-money-gen] then M.delete currency m
  8764. 1086.08 s [really-safe-money-gen] else M.insert currency r m
  8765. 1086.08 s [really-safe-money-gen]
  8766. 1086.08 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8767. 1086.08 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8768. 1086.08 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
  8769. 1086.08 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  8770. 1086.08 s [really-safe-money-gen] Just a -> do
  8771. 1086.08 s [really-safe-money-gen] r <- Account.add a account
  8772. 1086.08 s [really-safe-money-gen] Just $
  8773. 1086.08 s [really-safe-money-gen] - if r == Account.zero
  8774. 1086.08 s [really-safe-money-gen] + if not (r == Account.zero)
  8775. 1086.08 s [really-safe-money-gen] then M.delete currency m
  8776. 1086.08 s [really-safe-money-gen] else M.insert currency r m
  8777. 1086.08 s [really-safe-money-gen]
  8778. 1086.08 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8779. 1086.08 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8780. 1086.08 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8781. 1086.08 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8782. 1086.08 s [really-safe-money-gen] else
  8783. 1086.08 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8784. 1086.08 s [really-safe-money-gen] + if (i :: Integer) < toInteger (maxBound :: Word64)
  8785. 1086.08 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8786. 1086.08 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8787. 1086.08 s [really-safe-money-gen] g :: Amount -> String
  8788. 1086.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  8789. 1086.08 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8790. 1086.08 s [really-safe-money-gen] f s = case readMaybe s of
  8791. 1086.08 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8792. 1086.09 s [really-safe-money-gen] Just i ->
  8793. 1086.09 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8794. 1086.09 s [really-safe-money-gen] + if True
  8795. 1086.09 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8796. 1086.09 s [really-safe-money-gen] else
  8797. 1086.09 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8798. 1086.09 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8799. 1086.09 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  8800. 1086.09 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8801. 1086.09 s [really-safe-money-gen] Just i ->
  8802. 1086.09 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8803. 1086.09 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8804. 1086.09 s [really-safe-money-gen] else
  8805. 1086.09 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8806. 1086.09 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8807. 1086.09 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8808. 1086.09 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  8809. 1086.09 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8810. 1086.09 s [really-safe-money-gen] Just i ->
  8811. 1086.09 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8812. 1086.09 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8813. 1086.09 s [really-safe-money-gen] else
  8814. 1086.09 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8815. 1086.09 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8816. 1086.09 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  8817. 1086.09 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  8818. 1086.09 s [really-safe-money-gen] where
  8819. 1086.09 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8820. 1086.09 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8821. 1086.09 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8822. 1086.09 s [really-safe-money-gen] Just a -> Right a
  8823. 1086.09 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  8824. 1086.09 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  8825. 1086.09 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  8826. 1086.09 s [really-safe-money-gen] where
  8827. 1086.09 s [really-safe-money-gen] f :: String -> Either String Account
  8828. 1086.09 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8829. 1086.09 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8830. 1086.09 s [really-safe-money-gen] - Just a -> Right a
  8831. 1086.09 s [really-safe-money-gen] g :: Account -> String
  8832. 1086.09 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8833. 1086.10 s [really-safe-money-gen]
  8834. 1086.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  8835. 1086.10 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  8836. 1086.10 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  8837. 1086.10 s [really-safe-money-gen] where
  8838. 1086.10 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8839. 1086.10 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8840. 1086.10 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8841. 1086.10 s [really-safe-money-gen] - Just a -> Right a
  8842. 1086.10 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8843. 1086.10 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  8844. 1086.10 s [really-safe-money-gen] where
  8845. 1086.10 s [really-safe-money-gen] f :: String -> Either String Account
  8846. 1086.10 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8847. 1086.10 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8848. 1086.10 s [really-safe-money-gen] Just a -> Right a
  8849. 1086.10 s [really-safe-money-gen] g :: Account -> String
  8850. 1086.10 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8851. 1086.10 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8852. 1086.10 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  8853. 1086.10 s [really-safe-money-gen] where
  8854. 1086.10 s [really-safe-money-gen] f :: String -> Either String Account
  8855. 1086.10 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8856. 1086.10 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8857. 1086.10 s [really-safe-money-gen] Just a -> Right a
  8858. 1086.10 s [really-safe-money-gen] g :: Account -> String
  8859. 1086.10 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8860. 1086.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  8861. 1086.10 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  8862. 1086.10 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  8863. 1086.10 s [really-safe-money-gen] where
  8864. 1086.10 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8865. 1086.10 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8866. 1086.10 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8867. 1086.10 s [really-safe-money-gen] Just a -> Right a
  8868. 1086.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  8869. 1086.10 s [really-safe-money-gen] @@ -43,15 +43,8 @@
  8870. 1086.10 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  8871. 1086.10 s [really-safe-money-gen] where
  8872. 1086.10 s [really-safe-money-gen] f :: String -> Either String Amount
  8873. 1086.10 s [really-safe-money-gen] f s = case readMaybe s of
  8874. 1086.10 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8875. 1086.10 s [really-safe-money-gen] - Just i ->
  8876. 1086.10 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8877. 1086.11 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8878. 1086.11 s [really-safe-money-gen] - else
  8879. 1086.11 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8880. 1086.11 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8881. 1086.11 s [really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8882. 1086.11 s [really-safe-money-gen] g :: Amount -> String
  8883. 1086.11 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8884. 1086.11 s [really-safe-money-gen]
  8885. 1086.11 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  8886. 1086.11 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8887. 1086.11 s [really-safe-money-gen] f s = case readMaybe s of
  8888. 1086.11 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8889. 1086.11 s [really-safe-money-gen] Just i ->
  8890. 1086.11 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8891. 1086.11 s [really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  8892. 1086.11 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8893. 1086.11 s [really-safe-money-gen] else
  8894. 1086.11 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8895. 1086.11 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  8896. 1086.11 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  8897. 1086.11 s [really-safe-money-gen] where
  8898. 1086.11 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8899. 1086.11 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8900. 1086.11 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8901. 1086.11 s [really-safe-money-gen] Just a -> Right a
  8902. 1086.11 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8903. 1086.11 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8904. 1086.11 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8905. 1086.11 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8906. 1086.11 s [really-safe-money-gen] else
  8907. 1086.11 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8908. 1086.11 s [really-safe-money-gen] + if True
  8909. 1086.11 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8910. 1086.11 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8911. 1086.11 s [really-safe-money-gen] g :: Amount -> String
  8912. 1086.11 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  8913. 1086.11 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  8914. 1086.11 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8915. 1086.11 s [really-safe-money-gen] else
  8916. 1086.11 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8917. 1086.11 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8918. 1086.11 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8919. 1086.11 s [really-safe-money-gen] g :: Amount -> String
  8920. 1086.12 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8921. 1086.12 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  8922. 1086.12 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8923. 1086.12 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8924. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8925. 1086.12 s [really-safe-money-gen] else
  8926. 1086.12 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8927. 1086.12 s [really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  8928. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8929. 1086.12 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8930. 1086.12 s [really-safe-money-gen] g :: Amount -> String
  8931. 1086.12 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8932. 1086.12 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8933. 1086.12 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8934. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8935. 1086.12 s [really-safe-money-gen] else
  8936. 1086.12 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8937. 1086.12 s [really-safe-money-gen] + if False
  8938. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8939. 1086.12 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8940. 1086.12 s [really-safe-money-gen] g :: Amount -> String
  8941. 1086.12 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8942. 1086.12 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8943. 1086.12 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8944. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8945. 1086.12 s [really-safe-money-gen] else
  8946. 1086.12 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8947. 1086.12 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (maxBound :: Word64)
  8948. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8949. 1086.12 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8950. 1086.12 s [really-safe-money-gen] g :: Amount -> String
  8951. 1086.12 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8952. 1086.12 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8953. 1086.12 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8954. 1086.12 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8955. 1086.12 s [really-safe-money-gen] else
  8956. 1086.12 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8957. 1086.12 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (maxBound :: Word64)
  8958. 1086.13 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8959. 1086.13 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8960. 1086.13 s [really-safe-money-gen] g :: Amount -> String
  8961. 1086.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  8962. 1086.13 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  8963. 1086.13 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  8964. 1086.13 s [really-safe-money-gen] where
  8965. 1086.13 s [really-safe-money-gen] f :: String -> Either String Account
  8966. 1086.13 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8967. 1086.13 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8968. 1086.13 s [really-safe-money-gen] Just a -> Right a
  8969. 1086.13 s [really-safe-money-gen] g :: Account -> String
  8970. 1086.13 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8971. 1086.13 s [really-safe-money-gen]
  8972. 1086.13 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  8973. 1086.13 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  8974. 1086.13 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8975. 1086.13 s [really-safe-money-gen] else
  8976. 1086.13 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8977. 1086.13 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8978. 1086.13 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8979. 1086.13 s [really-safe-money-gen] g :: Amount -> String
  8980. 1086.13 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8981. 1086.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  8982. 1086.13 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  8983. 1086.13 s [really-safe-money-gen] <?> "Account"
  8984. 1086.13 s [really-safe-money-gen] where
  8985. 1086.13 s [really-safe-money-gen] f :: Integer -> Either String Account
  8986. 1086.13 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  8987. 1086.13 s [really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
  8988. 1086.13 s [really-safe-money-gen] Just a -> Right a
  8989. 1086.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  8990. 1086.13 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  8991. 1105.52 s [really-safe-money-gen] <?> "AKilled: 426
  8992. 1105.52 s [really-safe-money-gen] (of which timed out: 0)
  8993. 1105.52 s [really-safe-money-gen] Survived: 58
  8994. 1105.55 s [really-safe-money-gen] Uncovered: 40
  8995. 1105.55 s [really-safe-money-gen]
  8996. 1105.55 s [really-safe-money-gen] Surviving mutations:
  8997. 1105.55 s [really-safe-money-gen]
  8998. 1105.55 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  8999. 1105.55 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  9000. 1105.55 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  9001. 1105.55 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  9002. 1105.55 s [really-safe-money-gen] mconcat
  9003. 1105.55 s [really-safe-money-gen] - [ genericValidate ma,
  9004. 1105.55 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9005. 1105.55 s [really-safe-money-gen] declare "The account is not zero" $
  9006. 1105.55 s [really-safe-money-gen] a /= Account.zero
  9007. 1105.55 s [really-safe-money-gen] ]
  9008. 1105.55 s [really-safe-money-gen]
  9009. 1105.55 s [really-safe-money-gen] -- TODO no empty currencies
  9010. 1105.55 s [really-safe-money-gen]
  9011. 1105.55 s [really-safe-money-gen]
  9012. 1105.55 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  9013. 1105.55 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  9014. 1105.55 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  9015. 1105.55 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  9016. 1105.55 s [really-safe-money-gen] mconcat
  9017. 1105.55 s [really-safe-money-gen] - [ genericValidate ma,
  9018. 1105.55 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  9019. 1105.55 s [really-safe-money-gen] - declare "The account is not zero" $
  9020. 1105.55 s [really-safe-money-gen] - a /= Account.zero
  9021. 1105.55 s [really-safe-money-gen] ]
  9022. 1105.55 s [really-safe-money-gen]
  9023. 1105.55 s [really-safe-money-gen] -- TODO no empty currencies
  9024. 1105.55 s [really-safe-money-gen]
  9025. 1105.55 s [really-safe-money-gen]
  9026. 1105.55 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
  9027. 1105.56 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  9028. 1105.56 s [really-safe-money-gen] [ genericValidate ma,
  9029. 1105.56 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9030. 1105.56 s [really-safe-money-gen] declare "The account is not zero" $
  9031. 1105.56 s [really-safe-money-gen] - a /= Account.zero
  9032. 1105.56 s [really-safe-money-gen] + True
  9033. 1105.56 s [really-safe-money-gen] ]
  9034. 1105.56 s [really-safe-money-gen]
  9035. 1105.56 s [really-safe-money-gen] -- TODO no empty currencies
  9036. 1105.56 s [really-safe-money-gen]
  9037. 1105.56 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
  9038. 1105.56 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  9039. 1105.56 s [really-safe-money-gen]
  9040. 1105.56 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  9041. 1105.56 s [really-safe-money-gen] fromAccount currency amount =
  9042. 1105.56 s [really-safe-money-gen] - if amount == Account.zero
  9043. 1105.56 s [really-safe-money-gen] + if True
  9044. 1105.56 s [really-safe-money-gen] then zero
  9045. 1105.56 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  9046. 1105.56 s [really-safe-money-gen]
  9047. 1105.56 s [really-safe-money-gen]
  9048. 1105.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:113:40-46
  9049. 1105.56 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  9050. 1105.56 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9051. 1105.56 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9052. 1105.56 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  9053. 1105.56 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  9054. 1105.56 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  9055. 1105.56 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  9056. 1105.56 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9057. 1105.56 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  9058. 1105.56 s [really-safe-money-gen]
  9059. 1105.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:127:45-51
  9060. 1105.56 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  9061. 1105.56 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9062. 1105.56 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9063. 1105.56 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  9064. 1105.56 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  9065. 1105.56 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  9066. 1105.56 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  9067. 1105.56 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9068. 1105.56 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  9069. 1105.56 s [really-safe-money-gen]
  9070. 1105.56 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:126:45-51
  9071. 1105.56 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  9072. 1105.56 s [really-safe-money-gen]
  9073. 1105.56 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9074. 1105.56 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9075. 1105.56 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  9076. 1105.56 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  9077. 1105.56 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  9078. 1105.56 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  9079. 1105.56 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9080. 1105.56 s [really-safe-money-gen]
  9081. 1105.56 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  9082. 1105.56 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  9083. 1105.56 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  9084. 1105.56 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  9085. 1105.56 s [really-safe-money-gen] mconcat
  9086. 1105.56 s [really-safe-money-gen] - [ genericValidate ma,
  9087. 1105.56 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9088. 1105.56 s [really-safe-money-gen] declare "The amount is not zero" $
  9089. 1105.56 s [really-safe-money-gen] a /= Amount.zero
  9090. 1105.57 s [really-safe-money-gen] ]
  9091. 1105.57 s [really-safe-money-gen]
  9092. 1105.57 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9093. 1105.57 s [really-safe-money-gen]
  9094. 1105.57 s [really-safe-money-gen]
  9095. 1105.57 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  9096. 1105.57 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  9097. 1105.57 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  9098. 1105.57 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  9099. 1105.57 s [really-safe-money-gen] mconcat
  9100. 1105.57 s [really-safe-money-gen] - [ genericValidate ma,
  9101. 1105.57 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  9102. 1105.57 s [really-safe-money-gen] - declare "The amount is not zero" $
  9103. 1105.57 s [really-safe-money-gen] - a /= Amount.zero
  9104. 1105.57 s [really-safe-money-gen] ]
  9105. 1105.57 s [really-safe-money-gen]
  9106. 1105.57 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9107. 1105.57 s [really-safe-money-gen]
  9108. 1105.57 s [really-safe-money-gen]
  9109. 1105.57 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
  9110. 1105.57 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  9111. 1105.57 s [really-safe-money-gen] [ genericValidate ma,
  9112. 1105.57 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9113. 1105.57 s [really-safe-money-gen] declare "The amount is not zero" $
  9114. 1105.57 s [really-safe-money-gen] - a /= Amount.zero
  9115. 1105.57 s [really-safe-money-gen] + True
  9116. 1105.57 s [really-safe-money-gen] ]
  9117. 1105.57 s [really-safe-money-gen]
  9118. 1105.57 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9119. 1105.57 s [really-safe-money-gen]
  9120. 1105.57 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
  9121. 1105.57 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  9122. 1105.57 s [really-safe-money-gen] Just a -> do
  9123. 1105.57 s [really-safe-money-gen] r <- Amount.add a amount
  9124. 1105.57 s [really-safe-money-gen] Just $
  9125. 1105.57 s [really-safe-money-gen] - if r == Amount.zero
  9126. 1105.57 s [really-safe-money-gen] + if False
  9127. 1105.57 s [really-safe-money-gen] then M.delete currency m
  9128. 1105.57 s [really-safe-money-gen] else M.insert currency r m
  9129. 1105.57 s [really-safe-money-gen]
  9130. 1105.57 s [really-safe-money-gen]
  9131. 1105.57 s [really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
  9132. 1105.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9133. 1105.57 s [really-safe-money-gen] Just a -> do
  9134. 1105.57 s [really-safe-money-gen] r <- Amount.subtract a amount
  9135. 1105.57 s [really-safe-money-gen] Just $
  9136. 1105.57 s [really-safe-money-gen] - if r == Amount.zero
  9137. 1105.57 s [really-safe-money-gen] + if not (r == Amount.zero)
  9138. 1105.57 s [really-safe-money-gen] then M.delete currency m
  9139. 1105.57 s [really-safe-money-gen] else M.insert currency r m
  9140. 1105.57 s [really-safe-money-gen]
  9141. 1105.57 s [really-safe-money-gen]
  9142. 1105.57 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  9143. 1105.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9144. 1105.57 s [really-safe-money-gen] Just a -> do
  9145. 1105.57 s [really-safe-money-gen] r <- Amount.subtract a amount
  9146. 1105.57 s [really-safe-money-gen] Just $
  9147. 1105.57 s [really-safe-money-gen] - if r == Amount.zero
  9148. 1105.57 s [really-safe-money-gen] + if False
  9149. 1105.57 s [really-safe-money-gen] then M.delete currency m
  9150. 1105.57 s [really-safe-money-gen] else M.insert currency r m
  9151. 1105.57 s [really-safe-money-gen]
  9152. 1105.57 s [really-safe-money-gen]
  9153. 1105.57 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  9154. 1105.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9155. 1105.57 s [really-safe-money-gen] Just a -> do
  9156. 1105.57 s [really-safe-money-gen] r <- Amount.subtract a amount
  9157. 1105.57 s [really-safe-money-gen] Just $
  9158. 1105.57 s [really-safe-money-gen] - if r == Amount.zero
  9159. 1105.57 s [really-safe-money-gen] + if True
  9160. 1105.57 s [really-safe-money-gen] then M.delete currency m
  9161. 1105.57 s [really-safe-money-gen] else M.insert currency r m
  9162. 1105.57 s [really-safe-money-gen]
  9163. 1105.57 s [really-safe-money-gen]
  9164. 1105.57 s [really-safe-money-gen] MaybeOp at src/Money/MultiAmount.hs:112:33-39
  9165. 1105.57 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  9166. 1105.57 s [really-safe-money-gen]
  9167. 1105.57 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  9168. 1105.57 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  9169. 1105.57 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  9170. 1105.57 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  9171. 1105.57 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  9172. 1105.57 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  9173. 1105.57 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  9174. 1105.57 s [really-safe-money-gen]
  9175. 1105.58 s [really-safe-money-gen] Cmp at src/Money/MultiAmount.hs:168:20-45
  9176. 1105.58 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  9177. 1105.58 s [really-safe-money-gen] maxBoundN :: Natural
  9178. 1105.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  9179. 1105.58 s [really-safe-money-gen] actualResult =
  9180. 1105.58 s [really-safe-money-gen] - if roundedResult > maxBoundN
  9181. 1105.58 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  9182. 1105.58 s [really-safe-money-gen] then Nothing
  9183. 1105.58 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  9184. 1105.58 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  9185. 1105.58 s [really-safe-money-gen]
  9186. 1105.58 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  9187. 1105.58 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  9188. 1105.58 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9189. 1105.58 s [really-safe-money-gen] validate ad =
  9190. 1105.58 s [really-safe-money-gen] mconcat
  9191. 1105.58 s [really-safe-money-gen] - [ genericValidate ad,
  9192. 1105.58 s [really-safe-money-gen] case ad of
  9193. 1105.58 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9194. 1105.58 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9195. 1105.58 s [really-safe-money-gen] a1 > a2
  9196. 1105.58 s [really-safe-money-gen] _ -> valid
  9197. 1105.58 s [really-safe-money-gen] ]
  9198. 1105.58 s [really-safe-money-gen]
  9199. 1105.58 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9200. 1105.58 s [really-safe-money-gen]
  9201. 1105.58 s [really-safe-money-gen]
  9202. 1105.58 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  9203. 1105.58 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  9204. 1105.58 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9205. 1105.58 s [really-safe-money-gen] validate ad =
  9206. 1105.58 s [really-safe-money-gen] mconcat
  9207. 1105.58 s [really-safe-money-gen] - [ genericValidate ad,
  9208. 1105.58 s [really-safe-money-gen] - case ad of
  9209. 1105.58 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  9210. 1105.58 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  9211. 1105.58 s [really-safe-money-gen] - a1 > a2
  9212. 1105.58 s [really-safe-money-gen] - _ -> valid
  9213. 1105.58 s [really-safe-money-gen] ]
  9214. 1105.58 s [really-safe-money-gen]
  9215. 1105.58 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9216. 1105.58 s [really-safe-money-gen]
  9217. 1105.58 s [really-safe-money-gen]
  9218. 1105.58 s [really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21
  9219. 1105.58 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  9220. 1105.58 s [really-safe-money-gen] validate ad =
  9221. 1105.58 s [really-safe-money-gen] mconcat
  9222. 1105.58 s [really-safe-money-gen] [ genericValidate ad,
  9223. 1105.58 s [really-safe-money-gen] case ad of
  9224. 1105.58 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  9225. 1105.58 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  9226. 1105.58 s [really-safe-money-gen] - a1 > a2
  9227. 1105.58 s [really-safe-money-gen] _ -> valid
  9228. 1105.58 s [really-safe-money-gen] ]
  9229. 1105.58 s [really-safe-money-gen]
  9230. 1105.58 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9231. 1105.58 s [really-safe-money-gen]
  9232. 1105.58 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
  9233. 1105.58 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9234. 1105.58 s [really-safe-money-gen] case ad of
  9235. 1105.58 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9236. 1105.58 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9237. 1105.58 s [really-safe-money-gen] - a1 > a2
  9238. 1105.58 s [really-safe-money-gen] + True
  9239. 1105.58 s [really-safe-money-gen] _ -> valid
  9240. 1105.58 s [really-safe-money-gen] ]
  9241. 1105.58 s [really-safe-money-gen]
  9242. 1105.58 s [really-safe-money-gen]
  9243. 1105.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:607:15-22
  9244. 1105.58 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9245. 1105.58 s [really-safe-money-gen] case ad of
  9246. 1105.58 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9247. 1105.58 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9248. 1105.58 s [really-safe-money-gen] - a1 > a2
  9249. 1105.58 s [really-safe-money-gen] + a1 >= a2
  9250. 1105.58 s [really-safe-money-gen] _ -> valid
  9251. 1105.58 s [really-safe-money-gen] ]
  9252. 1105.58 s [really-safe-money-gen]
  9253. 1105.58 s [really-safe-money-gen]
  9254. 1105.58 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:661:19-28
  9255. 1105.58 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  9256. 1105.58 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  9257. 1105.58 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  9258. 1105.58 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  9259. 1105.58 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  9260. 1105.58 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  9261. 1105.58 s [really-safe-money-gen] fraction r (Amount a) f =
  9262. 1105.58 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  9263. 1105.58 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  9264. 1105.58 s [really-safe-money-gen]
  9265. 1105.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:495:10-23
  9266. 1105.58 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  9267. 1105.58 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  9268. 1105.58 s [really-safe-money-gen] r :: Integer
  9269. 1105.58 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  9270. 1105.58 s [really-safe-money-gen] - in if r > maxBoundI
  9271. 1105.58 s [really-safe-money-gen] + in if r >= maxBoundI
  9272. 1105.58 s [really-safe-money-gen] then Nothing
  9273. 1105.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9274. 1105.58 s [really-safe-money-gen]
  9275. 1105.58 s [really-safe-money-gen]
  9276. 1105.58 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:341:26-91
  9277. 1105.58 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  9278. 1105.59 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  9279. 1105.59 s [really-safe-money-gen] in if ceiled == floored
  9280. 1105.59 s [really-safe-money-gen] then
  9281. 1105.59 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  9282. 1105.59 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  9283. 1105.59 s [really-safe-money-gen] then Nothing
  9284. 1105.59 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  9285. 1105.59 s [really-safe-money-gen] else Nothing
  9286. 1105.59 s [really-safe-money-gen]
  9287. 1105.59 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
  9288. 1105.59 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9289. 1105.59 s [really-safe-money-gen] | otherwise =
  9290. 1105.59 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9291. 1105.59 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9292. 1105.59 s [really-safe-money-gen] - if exponent resultDouble > 65
  9293. 1105.59 s [really-safe-money-gen] + if False
  9294. 1105.59 s [really-safe-money-gen] then Nothing
  9295. 1105.59 s [really-safe-money-gen] else
  9296. 1105.59 s [really-safe-money-gen] let ceiled :: Natural
  9297. 1105.59 s [really-safe-money-gen]
  9298. 1105.59 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:332:14-40
  9299. 1105.59 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9300. 1105.59 s [really-safe-money-gen] | otherwise =
  9301. 1105.59 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9302. 1105.59 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9303. 1105.59 s [really-safe-money-gen] - if exponent resultDouble > 65
  9304. 1105.59 s [really-safe-money-gen] + if exponent resultDouble >= 65
  9305. 1105.59 s [really-safe-money-gen] then Nothing
  9306. 1105.59 s [really-safe-money-gen] else
  9307. 1105.59 s [really-safe-money-gen] let ceiled :: Natural
  9308. 1105.59 s [really-safe-money-gen]
  9309. 1105.59 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:520:14-66
  9310. 1105.59 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  9311. 1105.59 s [really-safe-money-gen] r = i1 - i2
  9312. 1105.59 s [really-safe-money-gen] in if r < 0
  9313. 1105.59 s [really-safe-money-gen] then Nothing
  9314. 1105.59 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9315. 1105.59 s [really-safe-money-gen] + else Nothing
  9316. 1105.59 s [really-safe-money-gen]
  9317. 1105.59 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  9318. 1105.59 s [really-safe-money-gen] --
  9319. 1105.59 s [really-safe-money-gen]
  9320. 1105.59 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
  9321. 1105.59 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9322. 1105.59 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9323. 1105.59 s [really-safe-money-gen] r :: Integer
  9324. 1105.59 s [really-safe-money-gen] r = i1 - i2
  9325. 1105.59 s [really-safe-money-gen] - in if r < 0
  9326. 1105.59 s [really-safe-money-gen] + in if True
  9327. 1105.59 s [really-safe-money-gen] then Nothing
  9328. 1105.59 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9329. 1105.59 s [really-safe-money-gen]
  9330. 1105.59 s [really-safe-money-gen]
  9331. 1105.59 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:518:10-15
  9332. 1105.59 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9333. 1105.59 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9334. 1105.59 s [really-safe-money-gen] r :: Integer
  9335. 1105.59 s [really-safe-money-gen] r = i1 - i2
  9336. 1105.59 s [really-safe-money-gen] - in if r < 0
  9337. 1105.59 s [really-safe-money-gen] + in if r <= 0
  9338. 1105.59 s [really-safe-money-gen] then Nothing
  9339. 1105.59 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9340. 1105.59 s [really-safe-money-gen]
  9341. 1105.59 s [really-safe-money-gen]
  9342. 1105.59 s [really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
  9343. 1105.59 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9344. 1105.60 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9345. 1105.60 s [really-safe-money-gen] r :: Integer
  9346. 1105.60 s [really-safe-money-gen] r = i1 - i2
  9347. 1105.60 s [really-safe-money-gen] - in if r < 0
  9348. 1105.60 s [really-safe-money-gen] + in if r < 1
  9349. 1105.60 s [really-safe-money-gen] then Nothing
  9350. 1105.60 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9351. 1105.60 s [really-safe-money-gen]
  9352. 1105.60 s [really-safe-money-gen]
  9353. 1105.60 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  9354. 1105.60 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  9355. 1105.60 s [really-safe-money-gen] instance Validity QuantisationFactor where
  9356. 1105.60 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9357. 1105.60 s [really-safe-money-gen] mconcat
  9358. 1105.60 s [really-safe-money-gen] - [ genericValidate qf,
  9359. 1105.60 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  9360. 1105.60 s [really-safe-money-gen] ]
  9361. 1105.60 s [really-safe-money-gen]
  9362. 1105.60 s [really-safe-money-gen] instance NFData QuantisationFactor
  9363. 1105.60 s [really-safe-money-gen]
  9364. 1105.60 s [really-safe-money-gen]
  9365. 1105.60 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  9366. 1105.60 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  9367. 1105.60 s [really-safe-money-gen] instance Validity QuantisationFactor where
  9368. 1105.60 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9369. 1105.60 s [really-safe-money-gen] mconcat
  9370. 1105.60 s [really-safe-money-gen] - [ genericValidate qf,
  9371. 1105.60 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9372. 1105.60 s [really-safe-money-gen] ]
  9373. 1105.60 s [really-safe-money-gen]
  9374. 1105.60 s [really-safe-money-gen] instance NFData QuantisationFactor
  9375. 1105.60 s [really-safe-money-gen]
  9376. 1105.60 s [really-safe-money-gen]
  9377. 1105.60 s [really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  9378. 1105.60 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  9379. 1105.60 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9380. 1105.60 s [really-safe-money-gen] mconcat
  9381. 1105.60 s [really-safe-money-gen] [ genericValidate qf,
  9382. 1105.60 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9383. 1105.60 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  9384. 1105.60 s [really-safe-money-gen] ]
  9385. 1105.60 s [really-safe-money-gen]
  9386. 1105.60 s [really-safe-money-gen] instance NFData QuantisationFactor
  9387. 1105.60 s [really-safe-money-gen]
  9388. 1105.60 s [really-safe-money-gen] Cmp at src/Money/ConversionRate.hs:72:21-26
  9389. 1105.60 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  9390. 1105.60 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  9391. 1105.60 s [really-safe-money-gen] -- Nothing
  9392. 1105.60 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  9393. 1105.60 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  9394. 1105.60 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  9395. 1105.60 s [really-safe-money-gen]
  9396. 1105.60 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  9397. 1105.60 s [really-safe-money-gen] --
  9398. 1105.60 s [really-safe-money-gen]
  9399. 1105.60 s [really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
  9400. 1105.60 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  9401. 1105.60 s [really-safe-money-gen]
  9402. 1105.60 s [really-safe-money-gen] -- | One-to-one conversion rate
  9403. 1105.60 s [really-safe-money-gen] oneToOne :: ConversionRate
  9404. 1105.61 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  9405. 1105.61 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  9406. 1105.61 s [really-safe-money-gen]
  9407. 1105.61 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  9408. 1105.61 s [really-safe-money-gen] --
  9409. 1105.61 s [really-safe-money-gen]
  9410. 1105.61 s [really-safe-money-gen] Arith at src/Money/ConversionRate.hs:127:70-79
  9411. 1105.61 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  9412. 1105.61 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  9413. 1105.61 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  9414. 1105.61 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  9415. 1105.61 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  9416. 1105.61 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  9417. 1105.61 s [really-safe-money-gen]
  9418. 1105.61 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  9419. 1105.61 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  9420. 1105.61 s [really-safe-money-gen]
  9421. 1105.61 s [really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115
  9422. 1105.61 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  9423. 1105.61 s [really-safe-money-gen]
  9424. 1105.61 s [really-safe-money-gen] -- | See 'Account.distribute'
  9425. 1105.61 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  9426. 1105.61 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  9427. 1105.61 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  9428. 1105.61 s [really-safe-money-gen] DistributedZero -> DistributedZero
  9429. 1105.61 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  9430. 1105.61 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  9431. 1105.61 s [really-safe-money-gen]
  9432. 1105.61 s [really-safe-money-gen] -- | The result of 'distribute'
  9433. 1105.61 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  9434. 1105.61 s [really-safe-money-gen]
  9435. 1105.61 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  9436. 1105.61 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  9437. 1105.61 s [really-safe-money-gen]
  9438. 1105.61 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  9439. 1105.61 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  9440. 1105.61 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  9441. 1105.61 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  9442. 1105.61 s [really-safe-money-gen] - Just dl -> pure dl
  9443. 1105.61 s [really-safe-money-gen]
  9444. 1105.61 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  9445. 1105.61 s [really-safe-money-gen] decimalLiteralP = do
  9446. 1105.61 s [really-safe-money-gen]
  9447. 1105.61 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  9448. 1105.61 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  9449. 1105.61 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  9450. 1105.61 s [really-safe-money-gen] -- Nothing
  9451. 1105.61 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  9452. 1105.61 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  9453. 1105.61 s [really-safe-money-gen] - Just False -> Nothing
  9454. 1105.61 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  9455. 1105.61 s [really-safe-money-gen]
  9456. 1105.61 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  9457. 1105.61 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  9458. 1105.61 s [really-safe-money-gen]
  9459. 1105.61 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  9460. 1105.61 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  9461. 1105.62 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  9462. 1105.62 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  9463. 1105.62 s [really-safe-money-gen] Just False -> Nothing
  9464. 1105.62 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  9465. 1105.62 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  9466. 1105.62 s [really-safe-money-gen]
  9467. 1105.62 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  9468. 1105.62 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  9469. 1105.62 s [really-safe-money-gen]
  9470. 1105.62 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  9471. 1105.62 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  9472. 1105.62 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  9473. 1105.62 s [really-safe-money-gen] toWord dl = do
  9474. 1105.62 s [really-safe-money-gen] n <- toNatural dl
  9475. 1105.62 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  9476. 1105.62 s [really-safe-money-gen] pure $ fromIntegral n
  9477. 1105.62 s [really-safe-money-gen]
  9478. 1105.62 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  9479. 1105.62 s [really-safe-money-gen]
  9480. 1105.62 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  9481. 1105.62 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  9482. 1105.62 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  9483. 1105.62 s [really-safe-money-gen] toWord dl = do
  9484. 1105.62 s [really-safe-money-gen] n <- toNatural dl
  9485. 1105.62 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  9486. 1105.62 s [really-safe-money-gen] + guard $ True
  9487. 1105.62 s [really-safe-money-gen] pure $ fromIntegral n
  9488. 1105.62 s [really-safe-money-gen]
  9489. 1105.62 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  9490. 1105.62 s [really-safe-money-gen]
  9491. 1105.62 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  9492. 1105.62 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  9493. 1105.62 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9494. 1105.62 s [really-safe-money-gen] toInt dl = do
  9495. 1105.62 s [really-safe-money-gen] n <- toInteger dl
  9496. 1105.62 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9497. 1105.62 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9498. 1105.62 s [really-safe-money-gen] pure $ fromIntegral n
  9499. 1105.62 s [really-safe-money-gen]
  9500. 1105.62 s [really-safe-money-gen]
  9501. 1105.62 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  9502. 1105.62 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  9503. 1105.62 s [really-safe-money-gen] toInt dl = do
  9504. 1105.62 s [really-safe-money-gen] n <- toInteger dl
  9505. 1105.62 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  9506. 1105.62 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  9507. 1105.62 s [really-safe-money-gen] pure $ fromIntegral n
  9508. 1105.62 s [really-safe-money-gen]
  9509. 1105.62 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9510. 1105.62 s [really-safe-money-gen]
  9511. 1105.62 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  9512. 1105.62 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  9513. 1105.62 s [really-safe-money-gen] toInt dl = do
  9514. 1105.62 s [really-safe-money-gen] n <- toInteger dl
  9515. 1105.62 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  9516. 1105.62 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  9517. 1105.62 s [really-safe-money-gen] + guard $ True
  9518. 1105.62 s [really-safe-money-gen] pure $ fromIntegral n
  9519. 1105.62 s [really-safe-money-gen]
  9520. 1105.62 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9521. 1105.62 s [really-safe-money-gen]
  9522. 1105.62 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  9523. 1105.62 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9524. 1105.62 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9525. 1105.62 s [really-safe-money-gen] toInt dl = do
  9526. 1105.62 s [really-safe-money-gen] n <- toInteger dl
  9527. 1105.62 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9528. 1105.62 s [really-safe-money-gen] + guard $ True
  9529. 1105.62 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9530. 1105.63 s [really-safe-money-gen] pure $ fromIntegral n
  9531. 1105.63 s [really-safe-money-gen]
  9532. 1105.63 s [really-safe-money-gen]
  9533. 1105.63 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  9534. 1105.63 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9535. 1105.63 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9536. 1105.63 s [really-safe-money-gen] toInt dl = do
  9537. 1105.63 s [really-safe-money-gen] n <- toInteger dl
  9538. 1105.63 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9539. 1105.63 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  9540. 1105.63 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9541. 1105.63 s [really-safe-money-gen] pure $ fromIntegral n
  9542. 1105.63 s [really-safe-money-gen]
  9543. 1105.63 s [really-safe-money-gen]
  9544. 1105.63 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  9545. 1105.63 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  9546. 1105.63 s [really-safe-money-gen] pure $ fromIntegral n
  9547. 1105.63 s [really-safe-money-gen]
  9548. 1105.63 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9549. 1105.63 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  9550. 1105.63 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  9551. 1105.63 s [really-safe-money-gen]
  9552. 1105.63 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  9553. 1105.63 s [really-safe-money-gen] signSignum = \case
  9554. 1105.63 s [really-safe-money-gen]
  9555. 1105.63 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  9556. 1105.63 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  9557. 1105.63 s [really-safe-money-gen] pure $ fromIntegral n
  9558. 1105.63 s [really-safe-money-gen]
  9559. 1105.63 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9560. 1105.63 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  9561. 1105.63 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  9562. 1105.63 s [really-safe-money-gen]
  9563. 1105.63 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  9564. 1105.63 s [really-safe-money-gen] signSignum = \case
  9565. 1105.63 s [really-safe-money-gen]
  9566. 1105.63 s [really-safe-money-gen] Cmp at src/Money/Account.hs:131:20-26
  9567. 1105.63 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  9568. 1105.63 s [really-safe-money-gen] amount :: Amount
  9569. 1105.63 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  9570. 1105.63 s [really-safe-money-gen] in Just $
  9571. 1105.63 s [really-safe-money-gen] - if i >= 0
  9572. 1105.63 s [really-safe-money-gen] + if i > 0
  9573. 1105.63 s [really-safe-money-gen] then Positive amount
  9574. 1105.63 s [really-safe-money-gen] else Negative amount
  9575. 1105.63 s [really-safe-money-gen]
  9576. 1105.63 s [really-safe-money-gen]
  9577. 1105.63 s [really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
  9578. 1105.63 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  9579. 1105.63 s [really-safe-money-gen] amount :: Amount
  9580. 1105.63 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  9581. 1105.63 s [really-safe-money-gen] in Just $
  9582. 1105.63 s [really-safe-money-gen] - if i >= 0
  9583. 1105.63 s [really-safe-money-gen] + if i >= 1
  9584. 1105.63 s [really-safe-money-gen] then Positive amount
  9585. 1105.63 s [really-safe-money-gen] else Negative amount
  9586. 1105.63 s [really-safe-money-gen]
  9587. 1105.63 s [really-safe-money-gen]
  9588. 1105.63 s [really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
  9589. 1105.63 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  9590. 1105.63 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  9591. 1105.63 s [really-safe-money-gen] a :: Integer
  9592. 1105.63 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  9593. 1105.63 s [really-safe-money-gen] - in if a > maxBoundI
  9594. 1105.64 s [really-safe-money-gen] + in if False
  9595. 1105.64 s [really-safe-money-gen] then Nothing
  9596. 1105.64 s [really-safe-money-gen] else
  9597. 1105.64 s [really-safe-money-gen] let w :: Word64
  9598. 1105.64 s [really-safe-money-gen]
  9599. 1105.64 s [really-safe-money-gen] Cmp at src/Money/Account.hs:197:14-20
  9600. 1105.64 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  9601. 1105.64 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  9602. 1105.64 s [really-safe-money-gen] fromDouble quantisationFactor d =
  9603. 1105.64 s [really-safe-money-gen] let d' = Prelude.abs d
  9604. 1105.64 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  9605. 1105.64 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  9606. 1105.64 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  9607. 1105.64 s [really-safe-money-gen]
  9608. 1105.64 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  9609. 1105.64 s [really-safe-money-gen]
  9610. 1105.64 s [really-safe-money-gen] Cmp at src/Money/Account.hs:503:10-16
  9611. 1105.64 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  9612. 1105.64 s [really-safe-money-gen] RoundNearest -> RoundNearest
  9613. 1105.64 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  9614. 1105.64 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  9615. 1105.64 s [really-safe-money-gen] - in if f >= 0
  9616. 1105.64 s [really-safe-money-gen] + in if f > 0
  9617. 1105.64 s [really-safe-money-gen] then (ma, r)
  9618. 1105.64 s [really-safe-money-gen] else (negate <$> ma, -r)
  9619. 1105.64 s [really-safe-money-gen]
  9620. 1105.64 s [really-safe-money-gen]
  9621. 1105.64 s [really-safe-money-gen] Cmp at src/Money/Account.hs:495:12-18
  9622. 1105.64 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  9623. 1105.64 s [really-safe-money-gen] fraction rounding account f =
  9624. 1105.64 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  9625. 1105.64 s [really-safe-money-gen] ro =
  9626. 1105.64 s [really-safe-money-gen] - if f >= 0
  9627. 1105.64 s [really-safe-money-gen] + if f > 0
  9628. 1105.64 s [really-safe-money-gen] then rounding
  9629. 1105.64 s [really-safe-money-gen] else case rounding of
  9630. 1105.64 s [really-safe-money-gen] RoundUp -> RoundDown
  9631. 1105.64 s [really-safe-money-gen]
  9632. 1105.64 s [really-safe-money-gen] MaybeOp at src/Money/Account.hs:523:16-25
  9633. 1105.64 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  9634. 1105.64 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  9635. 1105.64 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  9636. 1105.64 s [really-safe-money-gen] func ma r = case compare account zero of
  9637. 1105.64 s [really-safe-money-gen] - EQ -> (Just zero, r)
  9638. 1105.64 s [really-safe-money-gen] + EQ -> (Nothing, r)
  9639. 1105.64 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  9640. 1105.64 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  9641. 1105.64 s [really-safe-money-gen] in func amount actualFraction
  9642. 1105.64 s [really-safe-money-gen]
  9643. 1105.64 s [really-safe-money-gen] Cmp at src/Money/Account.hs:455:14-23
  9644. 1105.64 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  9645. 1105.64 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  9646. 1105.64 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  9647. 1105.64 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  9648. 1105.64 s [really-safe-money-gen] - if a >= zero
  9649. 1105.64 s [really-safe-money-gen] + if a > zero
  9650. 1105.64 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  9651. 1105.65 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  9652. 1105.65 s [really-safe-money-gen]
  9653. 1105.65 s [really-safe-money-gen]
  9654. 1105.65 s [really-safe-money-gen] Cmp at src/Money/Account.hs:451:14-23
  9655. 1105.65 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  9656. 1105.65 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  9657. 1105.65 s [really-safe-money-gen] DistributedZero -> DistributedZero
  9658. 1105.65 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  9659. 1105.65 s [really-safe-money-gen] - if a >= zero
  9660. 1105.65 s [really-safe-money-gen] + if a > zero
  9661. 1105.65 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  9662. 1105.65 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  9663. 1105.65 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  9664. 1105.65 s [really-safe-money-gen] ccount"
  9665. 1105.65 s [really-safe-money-gen] where
  9666. 1105.65 s [really-safe-money-gen] f :: Integer -> Either String Account
  9667. 1105.65 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  9668. 1105.65 s [really-safe-money-gen] Nothing -> Left $ "Number did not fit into an account value: " <> show i
  9669. 1105.65 s [really-safe-money-gen] - Just a -> Right a
  9670. 1105.65 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  9671. 1105.65 s [really-safe-money-gen] @@ -43,15 +43,14 @@
  9672. 1105.65 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  9673. 1105.65 s [really-safe-money-gen] where
  9674. 1105.65 s [really-safe-money-gen] f :: String -> Either String Amount
  9675. 1105.65 s [really-safe-money-gen] f s = case readMaybe s of
  9676. 1105.65 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9677. 1105.65 s [really-safe-money-gen] Just i ->
  9678. 1105.65 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  9679. 1105.65 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9680. 1105.65 s [really-safe-money-gen] else
  9681. 1105.65 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  9682. 1105.65 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9683. 1105.65 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9684. 1105.65 s [really-safe-money-gen] g :: Amount -> String
  9685. 1105.65 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  9686. 1105.65 s [really-safe-money-gen]
  9687. 1105.65 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  9688. 1105.65 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  9689. 1105.65 s [really-safe-money-gen] f s = case readMaybe s of
  9690. 1105.65 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9691. 1105.65 s [really-safe-money-gen] Just i ->
  9692. 1105.65 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  9693. 1105.66 s [really-safe-money-gen] + if False
  9694. 1105.66 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9695. 1105.66 s [really-safe-money-gen] else
  9696. 1105.66 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  9697. 1105.66 s [really-safe-money-gen] checkPhase completed in 16 minutes 36 seconds
  9698. 1105.66 s [really-safe-money-gen] Phase: haddockPhase
  9699. 1106.09 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  9700. 1106.09 s [really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
  9701. 1106.10 s [really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
  9702. 1106.10 s [really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
  9703. 1106.88 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
  9704. 1107.31 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
  9705. 1107.34 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
  9706. 1107.37 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
  9707. 1107.38 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
  9708. 1107.43 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
  9709. 1107.44 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
  9710. 1107.46 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
  9711. 1107.48 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
  9712. 1107.53 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
  9713. 1107.56 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
  9714. 1107.56 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
  9715. 1107.60 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
  9716. 1107.66 s [really-safe-money-gen] Haddock coverage:
  9717. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
  9718. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9719. 1107.67 s [really-safe-money-gen] Module header
  9720. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
  9721. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9722. 1107.67 s [really-safe-money-gen] Module header
  9723. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
  9724. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9725. 1107.67 s [really-safe-money-gen] Module header
  9726. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
  9727. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9728. 1107.67 s [really-safe-money-gen] Module header
  9729. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
  9730. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9731. 1107.67 s [really-safe-money-gen] Module header
  9732. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
  9733. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9734. 1107.67 s [really-safe-money-gen] Module header
  9735. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
  9736. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9737. 1107.67 s [really-safe-money-gen] Module header
  9738. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
  9739. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9740. 1107.67 s [really-safe-money-gen] Module header
  9741. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
  9742. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9743. 1107.67 s [really-safe-money-gen] Module header
  9744. 1107.67 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
  9745. 1107.67 s [really-safe-money-gen] Missing documentation for:
  9746. 1107.67 s [really-safe-money-gen] Module header
  9747. 1107.67 s [really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
  9748. 1107.68 s [really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
  9749. 1107.68 s [really-safe-money-gen] Missing documentation for:
  9750. 1107.68 s [really-safe-money-gen] Module header
  9751. 1107.68 s [really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
  9752. 1107.68 s [really-safe-money-gen] Missing documentation for:
  9753. 1107.68 s [really-safe-money-gen] Module header
  9754. 1107.68 s [really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
  9755. 1108.03 s [really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
  9756. 1108.04 s [really-safe-money-gen] - Money.Amount.Amount
  9757. 1108.04 s [really-safe-money-gen] - Money.Amount.Distribution
  9758. 1108.04 s [really-safe-money-gen] - Money.Amount.Rounding
  9759. 1108.04 s [really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
  9760. 1108.04 s [really-safe-money-gen] - Money.Account.Account
  9761. 1108.04 s [really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
  9762. 1108.04 s [really-safe-money-gen] - Money.AccountOf.AccountOf
  9763. 1108.04 s [really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
  9764. 1108.04 s [really-safe-money-gen] - Money.AmountOf.AmountOf
  9765. 1108.04 s [really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
  9766. 1108.04 s [really-safe-money-gen] - Money.ConversionRate.ConversionRate
  9767. 1108.04 s [really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
  9768. 1108.04 s [really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
  9769. 1108.04 s [really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
  9770. 1108.04 s [really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
  9771. 1108.04 s [really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
  9772. 1108.04 s [really-safe-money-gen] - Money.Currency.Currency
  9773. 1108.04 s [really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
  9774. 1108.04 s [really-safe-money-gen] - Money.MultiAmount.MultiAmount
  9775. 1108.04 s [really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
  9776. 1108.04 s [really-safe-money-gen] - Money.MultiAccount.MultiAccount
  9777. 1108.04 s [really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
  9778. 1108.04 s [really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
  9779. 1122.38 s [really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
  9780. 1122.38 s [really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
  9781. 1122.56 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  9782. 1122.59 s [really-safe-money-gen] Phase: installPhase
  9783. 1123.03 s [really-safe-money-gen] Installing library in /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-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-DUlrgfbYR751gcgZIqRr4A
  9784. 1124.21 s [really-safe-money-gen] Phase: fixupPhase
  9785. 1124.25 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0
  9786. 1124.27 s [really-safe-money-gen] shrinking /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-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-DUlrgfbYR751gcgZIqRr4A-ghc9.10.3.so
  9787. 1124.30 s [really-safe-money-gen] checking for references to /build/ in /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0...
  9788. 1124.35 s [really-safe-money-gen] patching script interpreter paths in /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0
  9789. 1124.37 s [really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0/lib
  9790. 1124.51 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc
  9791. 1124.52 s [really-safe-money-gen] checking for references to /build/ in /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc...
  9792. 1124.57 s [really-safe-money-gen] patching script interpreter paths in /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc
  9793. 1124.58 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report
  9794. 1124.60 s [really-safe-money-gen] checking for references to /build/ in /nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report...
  9795. 1124.66 s [really-safe-money-gen] patching script interpreter paths in /nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report
  9796. 1124.92 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0 /nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc
  9797. 1125.85 s [post-build-hook] Pushing 3 paths (196 are already present) using zstd to cache sydtest ⏳
  9798. 1125.85 s [post-build-hook]
  9799. 1126.21 s [post-build-hook] Pushing /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0 (1.52 MiB)
  9800. 1126.26 s [post-build-hook] Pushing /nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report (351.48 KiB)
  9801. 1126.27 s [post-build-hook] Pushing /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
  9802. 1127.69 s [post-build-hook]
  9803. 1127.69 s [post-build-hook] All done.
  9804. 1127.76 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0 /nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report /nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc
  9805. 1127.91 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  9806. 1128.26 s [post-build-hook] copying 3 paths...
  9807. 1128.26 s [post-build-hook] copying path '/nix/store/mii4mv42yz4xkb0w01vvfq858fvpzjcl-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
  9808. 1128.26 s [post-build-hook] copying path '/nix/store/q3abqwgy7y2xfmrwq6ilddg7p3565d94-really-safe-money-gen-0.0.0.0-doc' to 'https://cache.staging.nix-ci.com'...
  9809. 1128.45 s [post-build-hook] copying path '/nix/store/9pkyysypair47k6nqj54labw5vwlgavg-really-safe-money-gen-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  9810. 1129.34 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  9811. 1129.69 s [post-build-hook] copying 1 paths...
  9812. 1129.70 s [post-build-hook] copying path '/nix/store/8d28j421j78ihrix7rkf8wk5f9z6sbh1-really-safe-money-gen-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  9813. 1130.05 s Progress: 5 of 6 built