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=0b774cd71b385f2210b2cbb42429a4492d30527a#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
  2. 0.10 s warning: ignoring untrusted flake configuration setting 'extra-substituters'.
  3. 0.10 s Pass '--accept-flake-config' to trust it
  4. 0.10 s warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
  5. 0.10 s Pass '--accept-flake-config' to trust it
  6. 0.12 s
  7. 1.81 s Waiting for lock on sydtest-mutation-plugin
  8. 27.06 s Building really-safe-money
  9. 27.27 s [really-safe-money] Phase: setupCompilerEnvironmentPhase
  10. 27.29 s [really-safe-money] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  11. 27.52 s [really-safe-money] Phase: unpackPhase
  12. 27.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
  13. 27.55 s [really-safe-money] source root is really-safe-money-0.0.0.0
  14. 27.55 s [really-safe-money] setting SOURCE_DATE_EPOCH to timestamp 1778358092 of file "really-safe-money-0.0.0.0/src/Numeric/DecimalLiteral.hs"
  15. 27.56 s [really-safe-money] Phase: patchPhase
  16. 27.56 s [really-safe-money] Phase: compileBuildDriverPhase
  17. 27.57 s [really-safe-money] setupCompileFlags: -package-db=/build/tmp.AovMTiZ0cD/setup-package.conf.d -threaded
  18. 27.61 s [really-safe-money] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.AovMTiZ0cD/Main.o )
  19. 27.67 s [really-safe-money] [2 of 2] Linking Setup
  20. 28.79 s [really-safe-money] Phase: updateAutotoolsGnuConfigScriptsPhase
  21. 28.79 s [really-safe-money] Phase: configurePhase
  22. 28.80 s [really-safe-money] configureFlags: --verbose --prefix=/nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.AovMTiZ0cD/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
  23. 28.80 s [really-safe-money] Using Parsec parser
  24. 28.80 s [really-safe-money] Configuring really-safe-money-0.0.0.0...
  25. 29.41 s [really-safe-money] Dependency base >=4.7 && <5: using base-4.20.2.0
  26. 29.41 s [really-safe-money] Dependency containers: using containers-0.7
  27. 29.41 s [really-safe-money] Dependency deepseq: using deepseq-1.5.0.0
  28. 29.41 s [really-safe-money] Dependency validity: using validity-0.12.1.0
  29. 29.41 s [really-safe-money] Dependency validity-containers: using validity-containers-0.5.0.5
  30. 29.41 s [really-safe-money] Dependency validity-scientific: using validity-scientific-0.2.0.3
  31. 29.41 s [really-safe-money] Source component graph: component lib
  32. 29.41 s [really-safe-money] Configured component graph:
  33. 29.41 s [really-safe-money] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  34. 29.41 s [really-safe-money] include base-4.20.2.0-64da
  35. 29.41 s [really-safe-money] include containers-0.7-504a
  36. 29.41 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  37. 29.41 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  38. 29.41 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  39. 29.41 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  40. 29.41 s [really-safe-money] Linked component graph:
  41. 29.41 s [really-safe-money] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  42. 29.41 s [really-safe-money] include base-4.20.2.0-64da
  43. 29.41 s [really-safe-money] include containers-0.7-504a
  44. 29.41 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  45. 29.41 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  46. 29.41 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  47. 29.41 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  48. 29.41 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
  49. 29.41 s [really-safe-money] Ready component graph:
  50. 29.41 s [really-safe-money] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  51. 29.41 s [really-safe-money] depends base-4.20.2.0-64da
  52. 29.41 s [really-safe-money] depends containers-0.7-504a
  53. 29.41 s [really-safe-money] depends deepseq-1.5.0.0-9a2c
  54. 29.41 s [really-safe-money] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  55. 29.41 s [really-safe-money] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  56. 29.41 s [really-safe-money] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  57. 29.41 s [really-safe-money] Using Cabal-3.12.1.0 compiled by ghc-9.10
  58. 29.41 s [really-safe-money] Using compiler: ghc-9.10.3
  59. 29.41 s [really-safe-money] Using install prefix:
  60. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0
  61. 29.41 s [really-safe-money] Executables installed in:
  62. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/bin
  63. 29.41 s [really-safe-money] Libraries installed in:
  64. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-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
  65. 29.41 s [really-safe-money] Dynamic Libraries installed in:
  66. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  67. 29.41 s [really-safe-money] Private executables installed in:
  68. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  69. 29.41 s [really-safe-money] Data files installed in:
  70. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  71. 29.41 s [really-safe-money] Documentation installed in:
  72. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  73. 29.41 s [really-safe-money] Configuration files installed in:
  74. 29.41 s [really-safe-money] /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/etc
  75. 29.41 s [really-safe-money] No alex found
  76. 29.41 s [really-safe-money] Using ar found on system at:
  77. 29.41 s [really-safe-money] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  78. 29.41 s [really-safe-money] No c2hs found
  79. 29.41 s [really-safe-money] No cpphs found
  80. 29.41 s [really-safe-money] No doctest found
  81. 29.41 s [really-safe-money] Using gcc version 14.3.0 given by user at:
  82. 29.41 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  83. 29.41 s [really-safe-money] Using ghc version 9.10.3 found on system at:
  84. 29.41 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  85. 29.41 s [really-safe-money] Using ghc-pkg version 9.10.3 found on system at:
  86. 29.41 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  87. 29.41 s [really-safe-money] No ghcjs found
  88. 29.41 s [really-safe-money] No ghcjs-pkg found
  89. 29.41 s [really-safe-money] No greencard found
  90. 29.41 s [really-safe-money] Using haddock version 2.31.1 found on system at:
  91. 29.41 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  92. 29.41 s [really-safe-money] No happy found
  93. 29.41 s [really-safe-money] Using haskell-suite found on system at: haskell-suite-dummy-location
  94. 29.41 s [really-safe-money] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  95. 29.41 s [really-safe-money] No hmake found
  96. 29.41 s [really-safe-money] Using hpc version 0.69 found on system at:
  97. 29.41 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  98. 29.41 s [really-safe-money] Using hsc2hs version 0.68.10 found on system at:
  99. 29.41 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  100. 29.41 s [really-safe-money] Using hscolour version 1.25 found on system at:
  101. 29.41 s [really-safe-money] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  102. 29.41 s [really-safe-money] No jhc found
  103. 29.41 s [really-safe-money] Using ld found on system at:
  104. 29.41 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  105. 29.41 s [really-safe-money] No pkg-config found
  106. 29.41 s [really-safe-money] Using runghc version 9.10.3 found on system at:
  107. 29.41 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  108. 29.41 s [really-safe-money] Using strip version 2.44 found on system at:
  109. 29.41 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  110. 29.41 s [really-safe-money] Using tar found on system at:
  111. 29.41 s [really-safe-money] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  112. 29.41 s [really-safe-money] No uhc found
  113. 29.55 s [really-safe-money] Phase: buildPhase
  114. 29.56 s [really-safe-money] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest
  115. 29.60 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  116. 29.60 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  117. 29.75 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 )
  118. 30.02 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  119. 30.02 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  120. 30.02 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  121. 30.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  122. 30.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  123. 30.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  124. 30.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  125. 30.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  126. 30.02 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  127. 30.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  128. 30.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  129. 30.02 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  130. 30.02 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  131. 30.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  132. 30.02 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  133. 30.02 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  134. 30.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  135. 30.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  136. 30.02 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  137. 30.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  138. 30.02 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  139. 30.02 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  140. 30.02 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  141. 30.02 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  142. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  143. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  144. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  145. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  146. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  147. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  148. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  149. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  150. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  151. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  152. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  153. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  154. 30.04 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  155. 30.04 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  156. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  157. 30.04 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  158. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  159. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  160. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  161. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  162. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  163. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  164. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  165. 30.04 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  166. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  167. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  168. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  169. 30.04 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  170. 30.04 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  171. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  172. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  173. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  174. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  175. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  176. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  177. 30.04 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  178. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  179. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  180. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  181. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  182. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  183. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  184. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  185. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  186. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  187. 30.04 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  188. 30.04 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  189. 30.04 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  190. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  191. 30.04 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  192. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  193. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  194. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  195. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  196. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  197. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  198. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  199. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  200. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  201. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  202. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  203. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  204. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  205. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  206. 30.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  207. 30.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  208. 30.05 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  209. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  210. 30.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  211. 30.05 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  212. 30.05 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  213. 30.05 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  214. 30.05 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  215. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  216. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  217. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  218. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  219. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  220. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  221. 30.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  222. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  223. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  224. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  225. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  226. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  227. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  228. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  229. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  230. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  231. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  232. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  233. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  234. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  235. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  236. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  237. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  238. 30.05 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  239. 30.05 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  240. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  241. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  242. 30.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  243. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  244. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  245. 30.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  246. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  247. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  248. 30.05 s [really-safe-money] added mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  249. 30.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  250. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  251. 30.05 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  252. 30.05 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  253. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  254. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  255. 30.05 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  256. 30.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  257. 30.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  258. 30.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  259. 30.05 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  260. 30.05 s [really-safe-money] added 141 mutations
  261. 31.47 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 )
  262. 31.48 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  263. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  264. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  265. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  266. 31.48 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  267. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  268. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  269. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  270. 31.48 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  271. 31.48 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  272. 31.48 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  273. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  274. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  275. 31.48 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  276. 31.48 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  277. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  278. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  279. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  280. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  281. 31.48 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  282. 31.48 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  283. 31.48 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  284. 31.48 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  285. 31.48 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  286. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  287. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  288. 31.48 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  289. 31.48 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  290. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  291. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  292. 31.48 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  293. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  294. 31.48 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  295. 31.48 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  296. 31.48 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  297. 31.48 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  298. 31.48 s [really-safe-money] added 35 mutations
  299. 31.79 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 )
  300. 31.80 s [really-safe-money] mutation: instrumenting Money.Currency
  301. 31.80 s [really-safe-money] added 0 mutations
  302. 32.14 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 )
  303. 32.15 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  304. 32.15 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  305. 32.15 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  306. 32.15 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  307. 32.15 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  308. 32.15 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  309. 32.15 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  310. 32.15 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  311. 32.15 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  312. 32.15 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  313. 32.15 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  314. 32.15 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  315. 32.15 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  316. 32.15 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  317. 32.15 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  318. 32.15 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  319. 32.15 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  320. 32.15 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  321. 32.15 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  322. 32.15 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  323. 32.15 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  324. 32.15 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  325. 32.15 s [really-safe-money] added 21 mutations
  326. 32.38 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 )
  327. 32.43 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  328. 32.43 s [really-safe-money] added 0 mutations
  329. 32.45 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 )
  330. 32.51 s [really-safe-money] mutation: instrumenting Money.Amount
  331. 32.51 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  332. 32.51 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  333. 32.51 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  334. 32.51 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  335. 32.51 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  336. 32.51 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  337. 32.51 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  338. 32.51 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  339. 32.51 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  340. 32.51 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  341. 32.51 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  342. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  343. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  344. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  345. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  346. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  347. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  348. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  349. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  350. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  351. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  352. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:546:14-66
  353. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  354. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  355. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  356. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  357. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  358. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  359. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  360. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  361. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  362. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:520:14-66
  363. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  364. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  365. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  366. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  367. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  368. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  369. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  370. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  371. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:478:14-66
  372. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  373. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  374. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  375. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  376. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  377. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  378. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  379. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  380. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  381. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  382. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  383. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  384. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  385. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  386. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  387. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  388. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  389. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  390. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  391. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  392. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  393. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  394. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  395. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  396. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  397. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  398. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  399. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  400. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  401. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  402. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  403. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  404. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  405. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  406. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  407. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  408. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  409. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  410. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  411. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  412. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  413. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  414. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  415. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  416. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  417. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  418. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  419. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  420. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  421. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  422. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  423. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  424. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  425. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  426. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  427. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  428. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  429. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  430. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  431. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:497:14-66
  432. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  433. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:660:28-37
  434. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:661:19-28
  435. 32.52 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  436. 32.52 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  437. 32.52 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  438. 32.52 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  439. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  440. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  441. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  442. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  443. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  444. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  445. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  446. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  447. 32.52 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:683:16-27
  448. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  449. 32.52 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  450. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  451. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  452. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  453. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  454. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  455. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  456. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  457. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  458. 32.52 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  459. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  460. 32.52 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  461. 32.52 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  462. 32.52 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  463. 32.52 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  464. 32.52 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  465. 32.52 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  466. 32.52 s [really-safe-money] added 135 mutations
  467. 34.39 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 )
  468. 34.41 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  469. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  470. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  471. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  472. 34.41 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  473. 34.41 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  474. 34.41 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  475. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  476. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  477. 34.41 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  478. 34.41 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  479. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  480. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  481. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  482. 34.41 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  483. 34.41 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  484. 34.41 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  485. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  486. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  487. 34.41 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  488. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  489. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  490. 34.41 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  491. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  492. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  493. 34.41 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  494. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  495. 34.41 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  496. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  497. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  498. 34.41 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  499. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  500. 34.41 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  501. 34.41 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  502. 34.41 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  503. 34.41 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  504. 34.41 s [really-safe-money] added 35 mutations
  505. 35.05 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 )
  506. 35.06 s [really-safe-money] mutation: instrumenting Money.AmountOf
  507. 35.06 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  508. 35.06 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  509. 35.06 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  510. 35.06 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  511. 35.06 s [really-safe-money] added 4 mutations
  512. 35.31 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 )
  513. 35.33 s [really-safe-money] mutation: instrumenting Money.Account
  514. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  515. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  516. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  517. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  518. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  519. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  520. 35.33 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  521. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  522. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  523. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  524. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  525. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  526. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  527. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  528. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  529. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  530. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  531. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  532. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  533. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  534. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  535. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  536. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  537. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  538. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  539. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  540. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  541. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  542. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  543. 35.33 s [really-safe-money] added mutation MaybeOp at src/Money/Account.hs:523:16-25
  544. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  545. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  546. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  547. 35.33 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  548. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  549. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  550. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  551. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  552. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  553. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  554. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  555. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  556. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  557. 35.33 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  558. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  559. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  560. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  561. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  562. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  563. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  564. 35.33 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  565. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  566. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  567. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  568. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  569. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  570. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  571. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  572. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  573. 35.33 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  574. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  575. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  576. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  577. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  578. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  579. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  580. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  581. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  582. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  583. 35.33 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  584. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  585. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  586. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  587. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  588. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  589. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  590. 35.33 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  591. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  592. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  593. 35.33 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  594. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  595. 35.33 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  596. 35.33 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  597. 35.33 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  598. 35.33 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  599. 35.33 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  600. 35.33 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  601. 35.33 s [really-safe-money] added 87 mutations
  602. 36.19 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 )
  603. 36.20 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  604. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  605. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  606. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  607. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  608. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  609. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  610. 36.20 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  611. 36.20 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  612. 36.20 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  613. 36.20 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  614. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  615. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  616. 36.20 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  617. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  618. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  619. 36.20 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  620. 36.20 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  621. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  622. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  623. 36.20 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  624. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  625. 36.20 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  626. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  627. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  628. 36.20 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  629. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  630. 36.20 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  631. 36.20 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  632. 36.20 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  633. 36.20 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  634. 36.20 s [really-safe-money] added 30 mutations
  635. 36.67 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 )
  636. 36.68 s [really-safe-money] mutation: instrumenting Money.AccountOf
  637. 36.68 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  638. 36.68 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  639. 36.68 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  640. 36.68 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  641. 36.68 s [really-safe-money] added 4 mutations
  642. 36.86 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 )
  643. 37.12 s [really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.p_o )
  644. 37.38 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  645. 37.44 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  646. 37.44 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  647. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  648. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  649. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  650. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  651. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  652. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  653. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  654. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  655. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  656. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  657. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  658. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  659. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  660. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  661. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  662. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  663. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  664. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  665. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  666. 37.44 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  667. 37.44 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  668. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  669. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  670. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  671. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  672. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  673. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  674. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  675. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  676. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  677. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  678. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  679. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  680. 37.44 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  681. 37.44 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  682. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  683. 37.44 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  684. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  685. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  686. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  687. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  688. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  689. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  690. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  691. 37.44 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  692. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  693. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  694. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  695. 37.44 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  696. 37.44 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  697. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  698. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  699. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  700. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  701. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  702. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  703. 37.44 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  704. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  705. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  706. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  707. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  708. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  709. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  710. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  711. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  712. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  713. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  714. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  715. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  716. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  717. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  718. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  719. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  720. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  721. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  722. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  723. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  724. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  725. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  726. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  727. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  728. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  729. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  730. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  731. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  732. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  733. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  734. 37.44 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  735. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  736. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  737. 37.44 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  738. 37.44 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  739. 37.44 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  740. 37.44 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  741. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  742. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  743. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  744. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  745. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  746. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  747. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  748. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  749. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  750. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  751. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  752. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  753. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  754. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  755. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  756. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  757. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  758. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  759. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  760. 37.44 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  761. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  762. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  763. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  764. 37.44 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  765. 37.44 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  766. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  767. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  768. 37.44 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  769. 37.44 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  770. 37.45 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  771. 37.45 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  772. 37.45 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  773. 37.45 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  774. 37.45 s [really-safe-money] added mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  775. 37.45 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  776. 37.45 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  777. 37.45 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  778. 37.45 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  779. 37.45 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  780. 37.45 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  781. 37.45 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  782. 37.45 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  783. 37.45 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  784. 37.45 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  785. 37.45 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  786. 37.45 s [really-safe-money] added 141 mutations
  787. 39.01 s [really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.p_o )
  788. 39.02 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  789. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  790. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  791. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  792. 39.02 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  793. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  794. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  795. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  796. 39.02 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  797. 39.02 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  798. 39.02 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  799. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  800. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  801. 39.02 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  802. 39.02 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  803. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  804. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  805. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  806. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  807. 39.02 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  808. 39.02 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  809. 39.02 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  810. 39.02 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  811. 39.02 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  812. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  813. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  814. 39.02 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  815. 39.02 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  816. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  817. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  818. 39.02 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  819. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  820. 39.02 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  821. 39.02 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  822. 39.02 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  823. 39.02 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  824. 39.02 s [really-safe-money] added 35 mutations
  825. 39.40 s [really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.p_o )
  826. 39.41 s [really-safe-money] mutation: instrumenting Money.Currency
  827. 39.41 s [really-safe-money] added 0 mutations
  828. 39.79 s [really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.p_o )
  829. 39.79 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  830. 39.79 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  831. 39.79 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  832. 39.79 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  833. 39.79 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  834. 39.79 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  835. 39.79 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  836. 39.79 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  837. 39.79 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  838. 39.79 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  839. 39.79 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  840. 39.79 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  841. 39.79 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  842. 39.79 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  843. 39.79 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  844. 39.79 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  845. 39.79 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  846. 39.79 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  847. 39.79 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  848. 39.79 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  849. 39.79 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  850. 39.79 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  851. 39.79 s [really-safe-money] added 21 mutations
  852. 40.07 s [really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.p_o )
  853. 40.08 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  854. 40.08 s [really-safe-money] added 0 mutations
  855. 40.24 s [really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.p_o )
  856. 40.28 s [really-safe-money] mutation: instrumenting Money.Amount
  857. 40.28 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  858. 40.28 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  859. 40.28 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  860. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  861. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  862. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  863. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  864. 40.28 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  865. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  866. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  867. 40.28 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  868. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  869. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  870. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  871. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  872. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  873. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  874. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  875. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  876. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  877. 40.28 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  878. 40.28 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:546:14-66
  879. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  880. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  881. 40.28 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  882. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  883. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  884. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  885. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  886. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  887. 40.28 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  888. 40.28 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:520:14-66
  889. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  890. 40.28 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  891. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  892. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  893. 40.28 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  894. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  895. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  896. 40.28 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  897. 40.28 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:478:14-66
  898. 40.28 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  899. 40.28 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  900. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  901. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  902. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  903. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  904. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  905. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  906. 40.30 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  907. 40.30 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  908. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  909. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  910. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  911. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  912. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  913. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  914. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  915. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  916. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  917. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  918. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  919. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  920. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  921. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  922. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  923. 40.30 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  924. 40.30 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  925. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  926. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  927. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  928. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  929. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  930. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  931. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  932. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  933. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  934. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  935. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  936. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  937. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  938. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  939. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  940. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  941. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  942. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  943. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  944. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  945. 40.30 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  946. 40.30 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  947. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  948. 40.30 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  949. 40.30 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  950. 40.30 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  951. 40.30 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  952. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  953. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  954. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  955. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  956. 40.31 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  957. 40.31 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:497:14-66
  958. 40.31 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  959. 40.31 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:660:28-37
  960. 40.31 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:661:19-28
  961. 40.31 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  962. 40.31 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  963. 40.31 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  964. 40.31 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  965. 40.31 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  966. 40.31 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  967. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  968. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  969. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  970. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  971. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  972. 40.31 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  973. 40.31 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:683:16-27
  974. 40.31 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  975. 40.31 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  976. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  977. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  978. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  979. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  980. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  981. 40.31 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  982. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  983. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  984. 40.31 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  985. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  986. 40.31 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  987. 40.31 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  988. 40.31 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  989. 40.31 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  990. 40.31 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  991. 40.31 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  992. 40.31 s [really-safe-money] added 135 mutations
  993. 42.20 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.p_o )
  994. 42.23 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  995. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  996. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  997. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  998. 42.23 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  999. 42.23 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1000. 42.23 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1001. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  1002. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  1003. 42.23 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  1004. 42.23 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  1005. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1006. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1007. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1008. 42.23 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  1009. 42.23 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  1010. 42.23 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  1011. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  1012. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  1013. 42.23 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  1014. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  1015. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  1016. 42.23 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  1017. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  1018. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  1019. 42.23 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  1020. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  1021. 42.23 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  1022. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  1023. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  1024. 42.23 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  1025. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  1026. 42.23 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  1027. 42.23 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  1028. 42.23 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  1029. 42.23 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  1030. 42.23 s [really-safe-money] added 35 mutations
  1031. 42.89 s [really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.p_o )
  1032. 42.96 s [really-safe-money] mutation: instrumenting Money.AmountOf
  1033. 42.96 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1034. 42.96 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1035. 42.96 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1036. 42.96 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1037. 42.96 s [really-safe-money] added 4 mutations
  1038. 43.19 s [really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.p_o )
  1039. 43.20 s [really-safe-money] mutation: instrumenting Money.Account
  1040. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1041. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1042. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1043. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1044. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  1045. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  1046. 43.20 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  1047. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1048. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1049. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1050. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1051. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1052. 43.20 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1053. 43.20 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1054. 43.20 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1055. 43.20 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1056. 43.20 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  1057. 43.20 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  1058. 43.20 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  1059. 43.20 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1060. 43.20 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1061. 43.20 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1062. 43.20 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  1063. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  1064. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  1065. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1066. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1067. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1068. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1069. 43.21 s [really-safe-money] added mutation MaybeOp at src/Money/Account.hs:523:16-25
  1070. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1071. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1072. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1073. 43.21 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  1074. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1075. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1076. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1077. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  1078. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  1079. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  1080. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1081. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1082. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1083. 43.21 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  1084. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1085. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1086. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1087. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  1088. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  1089. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  1090. 43.21 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  1091. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1092. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1093. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1094. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  1095. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  1096. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  1097. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  1098. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  1099. 43.21 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  1100. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1101. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1102. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1103. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  1104. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  1105. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  1106. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  1107. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  1108. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  1109. 43.21 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  1110. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1111. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1112. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1113. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  1114. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  1115. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  1116. 43.21 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  1117. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1118. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1119. 43.21 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1120. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  1121. 43.21 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  1122. 43.21 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  1123. 43.21 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  1124. 43.21 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  1125. 43.21 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  1126. 43.21 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  1127. 43.21 s [really-safe-money] added 87 mutations
  1128. 44.03 s [really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.p_o )
  1129. 44.04 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  1130. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1131. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1132. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1133. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1134. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1135. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1136. 44.04 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  1137. 44.04 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  1138. 44.04 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  1139. 44.04 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  1140. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  1141. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  1142. 44.04 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  1143. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  1144. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  1145. 44.04 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  1146. 44.04 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  1147. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  1148. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  1149. 44.04 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  1150. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  1151. 44.04 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  1152. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  1153. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  1154. 44.04 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  1155. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  1156. 44.04 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  1157. 44.04 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  1158. 44.04 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  1159. 44.04 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  1160. 44.04 s [really-safe-money] added 30 mutations
  1161. 44.56 s [really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.p_o )
  1162. 44.57 s [really-safe-money] mutation: instrumenting Money.AccountOf
  1163. 44.57 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1164. 44.57 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1165. 44.57 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1166. 44.57 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1167. 44.57 s [really-safe-money] added 4 mutations
  1168. 44.84 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 )
  1169. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  1170. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  1171. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  1172. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  1173. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  1174. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  1175. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  1176. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  1177. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  1178. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  1179. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  1180. 45.18 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  1181. 45.86 s [really-safe-money] mutation-nix: manifest output at /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest:
  1182. 45.86 s [really-safe-money] total 384
  1183. 45.87 s [really-safe-money] drwxr-xr-x 2 nixbld nixbld 4096 May 15 07:50 .
  1184. 45.87 s [really-safe-money] drwxrwxr-t 238 nobody nixbld 24576 May 15 07:50 ..
  1185. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 66992 May 15 07:50 Money.Account.json
  1186. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 5043 May 15 07:50 Money.AccountOf.json
  1187. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 84451 May 15 07:50 Money.Amount.json
  1188. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 4850 May 15 07:50 Money.AmountOf.json
  1189. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 12979 May 15 07:50 Money.ConversionRate.json
  1190. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 15 07:50 Money.ConversionRateOf.json
  1191. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 15 07:50 Money.Currency.json
  1192. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 22648 May 15 07:50 Money.MultiAccount.json
  1193. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 25712 May 15 07:50 Money.MultiAmount.json
  1194. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 18786 May 15 07:50 Money.QuantisationFactor.json
  1195. 45.87 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 88354 May 15 07:50 Numeric.DecimalLiteral.json
  1196. 45.87 s [really-safe-money] mutation-nix: building remaining components with plugin silenced
  1197. 45.90 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  1198. 45.90 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  1199. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  1200. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  1201. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  1202. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  1203. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  1204. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  1205. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  1206. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  1207. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  1208. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  1209. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  1210. 47.19 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  1211. 47.89 s [really-safe-money] Phase: haddockPhase
  1212. 47.90 s [really-safe-money] Phase: installPhase
  1213. 47.93 s [really-safe-money] Installing library in /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-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
  1214. 48.22 s [really-safe-money] Phase: fixupPhase
  1215. 48.24 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0
  1216. 48.24 s [really-safe-money] shrinking /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-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
  1217. 48.26 s [really-safe-money] checking for references to /build/ in /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0...
  1218. 48.28 s [really-safe-money] patching script interpreter paths in /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0
  1219. 48.28 s [really-safe-money] stripping (with command strip and flags -S -p) in /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/lib /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0/bin
  1220. 48.43 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest
  1221. 48.43 s [really-safe-money] checking for references to /build/ in /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest...
  1222. 48.44 s [really-safe-money] patching script interpreter paths in /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest
  1223. 48.52 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0 /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest
  1224. 48.92 s [post-build-hook] Pushing 2 paths (195 are already present) using zstd to cache sydtest ⏳
  1225. 48.92 s [post-build-hook]
  1226. 49.27 s [post-build-hook] Pushing /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest (324.41 KiB)
  1227. 49.33 s [post-build-hook] Pushing /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0 (14.97 MiB)
  1228. 51.47 s [post-build-hook]
  1229. 51.47 s [post-build-hook] All done.
  1230. 51.48 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0 /nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest
  1231. 51.52 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1232. 51.54 s [post-build-hook] copying 2 paths...
  1233. 51.54 s [post-build-hook] copying path '/nix/store/d715iva2x2iach3mvsnrjkf3yv4gddyc-really-safe-money-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1234. 51.54 s [post-build-hook] copying path '/nix/store/yivgqdpncfl22hgyvbwl48bvnbxkz2pn-really-safe-money-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
  1235. 54.64 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1236. 54.86 s [post-build-hook] copying 1 paths...
  1237. 54.89 s [post-build-hook] copying path '/nix/store/x32iz07gd0hj38kfwszcb0j72i1ywlgb-really-safe-money-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1238. 55.08 s Progress: 1 of 7 built
  1239. 55.12 s Building really-safe-money-autodocodec-source
  1240. 55.16 s Building really-safe-money-gen-source
  1241. 55.33 s [really-safe-money-autodocodec-source] Phase: setupCompilerEnvironmentPhase
  1242. 55.34 s [really-safe-money-autodocodec-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1243. 55.44 s [really-safe-money-gen-source] Phase: setupCompilerEnvironmentPhase
  1244. 55.44 s [really-safe-money-gen-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1245. 55.61 s [really-safe-money-autodocodec-source] Phase: unpackPhase
  1246. 55.61 s [really-safe-money-autodocodec-source] unpacking source archive /nix/store/8krpxqimxqvympfqdqxg1jzjg2jrcglb-really-safe-money-autodocodec
  1247. 55.62 s [really-safe-money-autodocodec-source] source root is really-safe-money-autodocodec
  1248. 55.63 s [really-safe-money-autodocodec-source] Phase: patchPhase
  1249. 55.63 s [really-safe-money-autodocodec-source] Phase: compileBuildDriverPhase
  1250. 55.64 s [really-safe-money-autodocodec-source] setupCompileFlags: -package-db=/build/tmp.IChj7h3vmr/setup-package.conf.d -threaded
  1251. 55.68 s [really-safe-money-autodocodec-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.IChj7h3vmr/Main.o )
  1252. 55.73 s [really-safe-money-autodocodec-source] [2 of 2] Linking Setup
  1253. 55.77 s [really-safe-money-gen-source] Phase: unpackPhase
  1254. 55.77 s [really-safe-money-gen-source] unpacking source archive /nix/store/igm3hbdpcwgfbdx9yjyf6d68w1ifih08-really-safe-money-gen
  1255. 55.78 s [really-safe-money-gen-source] source root is really-safe-money-gen
  1256. 55.79 s [really-safe-money-gen-source] Phase: patchPhase
  1257. 55.80 s [really-safe-money-gen-source] Phase: compileBuildDriverPhase
  1258. 55.80 s [really-safe-money-gen-source] setupCompileFlags: -package-db=/build/tmp.ItRjiSjcsz/setup-package.conf.d -threaded
  1259. 55.85 s [really-safe-money-gen-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.ItRjiSjcsz/Main.o )
  1260. 55.90 s [really-safe-money-gen-source] [2 of 2] Linking Setup
  1261. 56.91 s [really-safe-money-autodocodec-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  1262. 56.92 s [really-safe-money-autodocodec-source] Phase: configurePhase
  1263. 56.92 s [really-safe-money-autodocodec-source] configureFlags: --verbose --prefix=/nix/store/girclrppapi95rlvw78xm909pmxwhb1s-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.IChj7h3vmr/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
  1264. 56.93 s [really-safe-money-autodocodec-source] Using Parsec parser
  1265. 56.93 s [really-safe-money-autodocodec-source] Configuring really-safe-money-autodocodec-0.0.0.0...
  1266. 57.05 s [really-safe-money-gen-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  1267. 57.06 s [really-safe-money-gen-source] Phase: configurePhase
  1268. 57.07 s [really-safe-money-gen-source] configureFlags: --verbose --prefix=/nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-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.ItRjiSjcsz/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
  1269. 57.07 s [really-safe-money-gen-source] Using Parsec parser
  1270. 57.07 s [really-safe-money-gen-source] Configuring really-safe-money-gen-0.0.0.0...
  1271. 57.48 s [really-safe-money-autodocodec-source] Dependency autodocodec: using autodocodec-0.5.0.0
  1272. 57.48 s [really-safe-money-autodocodec-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1273. 57.48 s [really-safe-money-autodocodec-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1274. 57.48 s [really-safe-money-autodocodec-source] Source component graph: component lib
  1275. 57.48 s [really-safe-money-autodocodec-source] Configured component graph:
  1276. 57.48 s [really-safe-money-autodocodec-source] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1277. 57.48 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1278. 57.48 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  1279. 57.48 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1280. 57.48 s [really-safe-money-autodocodec-source] Linked component graph:
  1281. 57.48 s [really-safe-money-autodocodec-source] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1282. 57.48 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1283. 57.48 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  1284. 57.48 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1285. 57.48 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
  1286. 57.48 s [really-safe-money-autodocodec-source] Ready component graph:
  1287. 57.49 s [really-safe-money-autodocodec-source] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1288. 57.49 s [really-safe-money-autodocodec-source] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1289. 57.49 s [really-safe-money-autodocodec-source] depends base-4.20.2.0-64da
  1290. 57.49 s [really-safe-money-autodocodec-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1291. 57.49 s [really-safe-money-autodocodec-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1292. 57.49 s [really-safe-money-autodocodec-source] Using compiler: ghc-9.10.3
  1293. 57.49 s [really-safe-money-autodocodec-source] Using install prefix:
  1294. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0
  1295. 57.49 s [really-safe-money-autodocodec-source] Executables installed in:
  1296. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0/bin
  1297. 57.49 s [really-safe-money-autodocodec-source] Libraries installed in:
  1298. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-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
  1299. 57.49 s [really-safe-money-autodocodec-source] Dynamic Libraries installed in:
  1300. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1301. 57.49 s [really-safe-money-autodocodec-source] Private executables installed in:
  1302. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-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
  1303. 57.49 s [really-safe-money-autodocodec-source] Data files installed in:
  1304. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-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
  1305. 57.49 s [really-safe-money-autodocodec-source] Documentation installed in: /share/doc/really-safe-money-autodocodec-0.0.0.0
  1306. 57.49 s [really-safe-money-autodocodec-source] Configuration files installed in:
  1307. 57.49 s [really-safe-money-autodocodec-source] /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0/etc
  1308. 57.49 s [really-safe-money-autodocodec-source] No alex found
  1309. 57.49 s [really-safe-money-autodocodec-source] Using ar found on system at:
  1310. 57.49 s [really-safe-money-autodocodec-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1311. 57.49 s [really-safe-money-autodocodec-source] No c2hs found
  1312. 57.49 s [really-safe-money-autodocodec-source] No cpphs found
  1313. 57.49 s [really-safe-money-autodocodec-source] No doctest found
  1314. 57.49 s [really-safe-money-autodocodec-source] Using gcc version 14.3.0 given by user at:
  1315. 57.49 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1316. 57.49 s [really-safe-money-autodocodec-source] Using ghc version 9.10.3 found on system at:
  1317. 57.49 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1318. 57.49 s [really-safe-money-autodocodec-source] Using ghc-pkg version 9.10.3 found on system at:
  1319. 57.49 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1320. 57.49 s [really-safe-money-autodocodec-source] No ghcjs found
  1321. 57.49 s [really-safe-money-autodocodec-source] No ghcjs-pkg found
  1322. 57.49 s [really-safe-money-autodocodec-source] No greencard found
  1323. 57.49 s [really-safe-money-autodocodec-source] Using haddock version 2.31.1 found on system at:
  1324. 57.49 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1325. 57.49 s [really-safe-money-autodocodec-source] No happy found
  1326. 57.49 s [really-safe-money-autodocodec-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  1327. 57.49 s [really-safe-money-autodocodec-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1328. 57.49 s [really-safe-money-autodocodec-source] No hmake found
  1329. 57.49 s [really-safe-money-autodocodec-source] Using hpc version 0.69 found on system at:
  1330. 57.49 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1331. 57.49 s [really-safe-money-autodocodec-source] Using hsc2hs version 0.68.10 found on system at:
  1332. 57.49 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1333. 57.49 s [really-safe-money-autodocodec-source] Using hscolour version 1.25 found on system at:
  1334. 57.49 s [really-safe-money-autodocodec-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1335. 57.49 s [really-safe-money-autodocodec-source] No jhc found
  1336. 57.49 s [really-safe-money-autodocodec-source] Using ld found on system at:
  1337. 57.49 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1338. 57.49 s [really-safe-money-autodocodec-source] No pkg-config found
  1339. 57.49 s [really-safe-money-autodocodec-source] Using runghc version 9.10.3 found on system at:
  1340. 57.49 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1341. 57.49 s [really-safe-money-autodocodec-source] Using strip version 2.44 found on system at:
  1342. 57.49 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1343. 57.49 s [really-safe-money-autodocodec-source] Using tar found on system at:
  1344. 57.49 s [really-safe-money-autodocodec-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1345. 57.49 s [really-safe-money-autodocodec-source] No uhc found
  1346. 57.68 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1347. 57.68 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1348. 57.68 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  1349. 57.68 s [really-safe-money-gen-source] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  1350. 57.68 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1351. 57.68 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1352. 57.68 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1353. 57.68 s [really-safe-money-gen-source] Dependency criterion: using criterion-1.6.4.0
  1354. 57.68 s [really-safe-money-gen-source] Dependency deepseq: using deepseq-1.5.0.0
  1355. 57.68 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  1356. 57.68 s [really-safe-money-gen-source] Dependency genvalidity-criterion: using genvalidity-criterion-1.1.0.0
  1357. 57.68 s [really-safe-money-gen-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  1358. 57.68 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1359. 57.68 s [really-safe-money-gen-source] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  1360. 57.69 s [really-safe-money-gen-source] Dependency vector: using vector-0.13.2.0
  1361. 57.69 s [really-safe-money-gen-source] Source component graph:
  1362. 57.69 s [really-safe-money-gen-source] component lib
  1363. 57.69 s [really-safe-money-gen-source] component bench:really-safe-money-bench dependency lib
  1364. 57.69 s [really-safe-money-gen-source] Configured component graph:
  1365. 57.69 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1366. 57.69 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1367. 57.69 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1368. 57.69 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1369. 57.69 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1370. 57.69 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1371. 57.69 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1372. 57.69 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1373. 57.69 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1374. 57.69 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1375. 57.69 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  1376. 57.69 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1377. 57.69 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1378. 57.69 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1379. 57.69 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1380. 57.69 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1381. 57.69 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1382. 57.69 s [really-safe-money-gen-source] Linked component graph:
  1383. 57.69 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1384. 57.69 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1385. 57.69 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1386. 57.69 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1387. 57.69 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1388. 57.69 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1389. 57.69 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
  1390. 57.69 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1391. 57.69 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1392. 57.69 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1393. 57.69 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1394. 57.69 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  1395. 57.69 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1396. 57.69 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1397. 57.69 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1398. 57.69 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1399. 57.69 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1400. 57.69 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1401. 57.69 s [really-safe-money-gen-source] Ready component graph:
  1402. 57.69 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1403. 57.69 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1404. 57.69 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  1405. 57.69 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1406. 57.69 s [really-safe-money-gen-source] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1407. 57.69 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1408. 57.69 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1409. 57.69 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1410. 57.69 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  1411. 57.69 s [really-safe-money-gen-source] depends criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1412. 57.69 s [really-safe-money-gen-source] depends deepseq-1.5.0.0-9a2c
  1413. 57.69 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1414. 57.69 s [really-safe-money-gen-source] depends genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1415. 57.69 s [really-safe-money-gen-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1416. 57.69 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1417. 57.69 s [really-safe-money-gen-source] depends really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1418. 57.69 s [really-safe-money-gen-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1419. 57.69 s [really-safe-money-gen-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1420. 57.69 s [really-safe-money-gen-source] Using compiler: ghc-9.10.3
  1421. 57.69 s [really-safe-money-gen-source] Using install prefix:
  1422. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0
  1423. 57.69 s [really-safe-money-gen-source] Executables installed in:
  1424. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0/bin
  1425. 57.69 s [really-safe-money-gen-source] Libraries installed in:
  1426. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-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
  1427. 57.69 s [really-safe-money-gen-source] Dynamic Libraries installed in:
  1428. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1429. 57.69 s [really-safe-money-gen-source] Private executables installed in:
  1430. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-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
  1431. 57.69 s [really-safe-money-gen-source] Data files installed in:
  1432. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-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
  1433. 57.69 s [really-safe-money-gen-source] Documentation installed in: /share/doc/really-safe-money-gen-0.0.0.0
  1434. 57.69 s [really-safe-money-gen-source] Configuration files installed in:
  1435. 57.69 s [really-safe-money-gen-source] /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0/etc
  1436. 57.69 s [really-safe-money-gen-source] No alex found
  1437. 57.69 s [really-safe-money-gen-source] Using ar found on system at:
  1438. 57.69 s [really-safe-money-gen-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1439. 57.69 s [really-safe-money-gen-source] No c2hs found
  1440. 57.69 s [really-safe-money-gen-source] No cpphs found
  1441. 57.69 s [really-safe-money-gen-source] No doctest found
  1442. 57.69 s [really-safe-money-gen-source] Using gcc version 14.3.0 given by user at:
  1443. 57.69 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1444. 57.69 s [really-safe-money-gen-source] Using ghc version 9.10.3 found on system at:
  1445. 57.69 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1446. 57.69 s [really-safe-money-gen-source] Using ghc-pkg version 9.10.3 found on system at:
  1447. 57.69 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1448. 57.69 s [really-safe-money-gen-source] No ghcjs found
  1449. 57.69 s [really-safe-money-gen-source] No ghcjs-pkg found
  1450. 57.69 s [really-safe-money-gen-source] No greencard found
  1451. 57.69 s [really-safe-money-gen-source] Using haddock version 2.31.1 found on system at:
  1452. 57.69 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1453. 57.69 s [really-safe-money-gen-source] No happy found
  1454. 57.69 s [really-safe-money-gen-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  1455. 57.69 s [really-safe-money-gen-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1456. 57.69 s [really-safe-money-gen-source] No hmake found
  1457. 57.69 s [really-safe-money-gen-source] Using hpc version 0.69 found on system at:
  1458. 57.69 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1459. 57.69 s [really-safe-money-gen-source] Using hsc2hs version 0.68.10 found on system at:
  1460. 57.69 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1461. 57.69 s [really-safe-money-gen-source] Using hscolour version 1.25 found on system at:
  1462. 57.69 s [really-safe-money-gen-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1463. 57.69 s [really-safe-money-gen-source] No jhc found
  1464. 57.69 s [really-safe-money-gen-source] Using ld found on system at:
  1465. 57.69 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1466. 57.69 s [really-safe-money-gen-source] No pkg-config found
  1467. 57.69 s [really-safe-money-gen-source] Using runghc version 9.10.3 found on system at:
  1468. 57.69 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1469. 57.69 s [really-safe-money-gen-source] Using strip version 2.44 found on system at:
  1470. 57.69 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1471. 57.69 s [really-safe-money-gen-source] Using tar found on system at:
  1472. 57.69 s [really-safe-money-gen-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1473. 57.69 s [really-safe-money-gen-source] No uhc found
  1474. 57.71 s [really-safe-money-autodocodec-source] Phase: buildPhase
  1475. 57.72 s [really-safe-money-autodocodec-source] Distribution quality errors:
  1476. 57.72 s [really-safe-money-autodocodec-source] [no-syn-desc] No 'synopsis' or 'description' field.
  1477. 57.72 s [really-safe-money-autodocodec-source] Distribution quality warnings:
  1478. 57.72 s [really-safe-money-autodocodec-source] [no-category] No 'category' field.
  1479. 57.72 s [really-safe-money-autodocodec-source] [no-maintainer] No 'maintainer' field.
  1480. 57.72 s [really-safe-money-autodocodec-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  1481. 57.72 s [really-safe-money-autodocodec-source] you want?
  1482. 57.72 s [really-safe-money-autodocodec-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  1483. 57.72 s [really-safe-money-autodocodec-source] - autodocodec
  1484. 57.72 s [really-safe-money-autodocodec-source] - really-safe-money
  1485. 57.72 s [really-safe-money-autodocodec-source] Please add them. There is more information at https://pvp.haskell.org/
  1486. 57.72 s [really-safe-money-autodocodec-source] Note: the public hackage server would reject this package.
  1487. 57.72 s [really-safe-money-autodocodec-source] Building source dist for really-safe-money-autodocodec-0.0.0.0...
  1488. 57.73 s [really-safe-money-autodocodec-source] Source tarball created: dist/really-safe-money-autodocodec-0.0.0.0.tar.gz
  1489. 57.74 s [really-safe-money-autodocodec-source] Phase: haddockPhase
  1490. 57.74 s [really-safe-money-autodocodec-source] Phase: installPhase
  1491. 57.75 s [really-safe-money-autodocodec-source] Phase: fixupPhase
  1492. 57.78 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0
  1493. 58.14 s [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
  1494. 58.14 s [post-build-hook]
  1495. 58.51 s [post-build-hook] Pushing /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0 (5.45 KiB)
  1496. 59.76 s [post-build-hook]
  1497. 59.76 s [post-build-hook] All done.
  1498. 59.78 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0
  1499. 59.82 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1500. 59.83 s [post-build-hook] copying 1 paths...
  1501. 59.83 s [post-build-hook] copying path '/nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1502. 60.21 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1503. 60.55 s [post-build-hook] copying 1 paths...
  1504. 60.60 s [post-build-hook] copying path '/nix/store/zxl4dbl81q243fkzjxyad3x4pg80pxk2-really-safe-money-autodocodec-source-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1505. 60.81 s Progress: 2 of 6 built (1 building)
  1506. 60.88 s Building really-safe-money-autodocodec
  1507. 60.88 s [really-safe-money-gen-source] Phase: buildPhase
  1508. 60.88 s [really-safe-money-gen-source] Distribution quality errors:
  1509. 60.88 s [really-safe-money-gen-source] [no-syn-desc] No 'synopsis' or 'description' field.
  1510. 60.88 s [really-safe-money-gen-source] Distribution quality warnings:
  1511. 60.88 s [really-safe-money-gen-source] [no-category] No 'category' field.
  1512. 60.88 s [really-safe-money-gen-source] [no-maintainer] No 'maintainer' field.
  1513. 60.88 s [really-safe-money-gen-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  1514. 60.88 s [really-safe-money-gen-source] you want?
  1515. 60.88 s [really-safe-money-gen-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  1516. 60.88 s [really-safe-money-gen-source] - QuickCheck
  1517. 60.88 s [really-safe-money-gen-source] - genvalidity
  1518. 60.88 s [really-safe-money-gen-source] - genvalidity-containers
  1519. 60.88 s [really-safe-money-gen-source] - really-safe-money
  1520. 60.88 s [really-safe-money-gen-source] Please add them. There is more information at https://pvp.haskell.org/
  1521. 60.88 s [really-safe-money-gen-source] Note: the public hackage server would reject this package.
  1522. 60.89 s [really-safe-money-gen-source] Building source dist for really-safe-money-gen-0.0.0.0...
  1523. 60.89 s [really-safe-money-gen-source] Source tarball created: dist/really-safe-money-gen-0.0.0.0.tar.gz
  1524. 60.89 s [really-safe-money-gen-source] Phase: haddockPhase
  1525. 60.89 s [really-safe-money-gen-source] Phase: installPhase
  1526. 60.89 s [really-safe-money-gen-source] Phase: fixupPhase
  1527. 60.95 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0
  1528. 61.54 s [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
  1529. 61.54 s [post-build-hook]
  1530. 61.88 s [post-build-hook] Pushing /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0 (15.28 KiB)
  1531. 62.90 s [post-build-hook]
  1532. 62.90 s [post-build-hook] All done.
  1533. 62.92 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0
  1534. 62.97 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1535. 62.98 s [post-build-hook] copying 1 paths...
  1536. 62.98 s [post-build-hook] copying path '/nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1537. 63.28 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1538. 63.49 s [post-build-hook] copying 1 paths...
  1539. 63.49 s [post-build-hook] copying path '/nix/store/7vayv5zj1ijs0r7s66ksnjxj295xn0iq-really-safe-money-gen-source-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1540. 63.67 s Progress: 3 of 6 built (1 building)
  1541. 63.68 s [really-safe-money-autodocodec] Phase: setupCompilerEnvironmentPhase
  1542. 63.68 s [really-safe-money-autodocodec] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1543. 63.68 s [really-safe-money-autodocodec] Phase: unpackPhase
  1544. 63.68 s [really-safe-money-autodocodec] unpacking source archive /nix/store/girclrppapi95rlvw78xm909pmxwhb1s-really-safe-money-autodocodec-source-0.0.0.0/really-safe-money-autodocodec-0.0.0.0.tar.gz
  1545. 63.68 s [really-safe-money-autodocodec] source root is really-safe-money-autodocodec-0.0.0.0
  1546. 63.68 s [really-safe-money-autodocodec] setting SOURCE_DATE_EPOCH to timestamp 1778831458 of file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs"
  1547. 63.68 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
  1548. 63.68 s [really-safe-money-autodocodec] Phase: patchPhase
  1549. 63.68 s [really-safe-money-autodocodec] Phase: compileBuildDriverPhase
  1550. 63.68 s [really-safe-money-autodocodec] setupCompileFlags: -package-db=/build/tmp.AKxwk5pwMR/setup-package.conf.d -threaded
  1551. 63.68 s [really-safe-money-autodocodec] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.AKxwk5pwMR/Main.o )
  1552. 63.68 s [really-safe-money-autodocodec] [2 of 2] Linking Setup
  1553. 63.72 s [really-safe-money-autodocodec] Phase: updateAutotoolsGnuConfigScriptsPhase
  1554. 63.73 s [really-safe-money-autodocodec] Phase: configurePhase
  1555. 63.73 s [really-safe-money-autodocodec] configureFlags: --verbose --prefix=/nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.AKxwk5pwMR/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
  1556. 63.74 s [really-safe-money-autodocodec] Using Parsec parser
  1557. 63.74 s [really-safe-money-autodocodec] Configuring really-safe-money-autodocodec-0.0.0.0...
  1558. 64.97 s [really-safe-money-autodocodec] Dependency autodocodec: using autodocodec-0.5.0.0
  1559. 64.97 s [really-safe-money-autodocodec] Dependency base >=4.7 && <5: using base-4.20.2.0
  1560. 64.97 s [really-safe-money-autodocodec] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1561. 64.98 s [really-safe-money-autodocodec] Source component graph: component lib
  1562. 64.98 s [really-safe-money-autodocodec] Configured component graph:
  1563. 64.98 s [really-safe-money-autodocodec] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1564. 64.98 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1565. 64.98 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  1566. 64.98 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1567. 64.98 s [really-safe-money-autodocodec] Linked component graph:
  1568. 64.98 s [really-safe-money-autodocodec] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1569. 64.98 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1570. 64.98 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  1571. 64.98 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1572. 64.98 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
  1573. 64.98 s [really-safe-money-autodocodec] Ready component graph:
  1574. 64.98 s [really-safe-money-autodocodec] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1575. 64.98 s [really-safe-money-autodocodec] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1576. 64.98 s [really-safe-money-autodocodec] depends base-4.20.2.0-64da
  1577. 64.98 s [really-safe-money-autodocodec] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1578. 64.98 s [really-safe-money-autodocodec] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1579. 64.98 s [really-safe-money-autodocodec] Using compiler: ghc-9.10.3
  1580. 64.98 s [really-safe-money-autodocodec] Using install prefix:
  1581. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0
  1582. 64.98 s [really-safe-money-autodocodec] Executables installed in:
  1583. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0/bin
  1584. 64.98 s [really-safe-money-autodocodec] Libraries installed in:
  1585. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-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
  1586. 64.98 s [really-safe-money-autodocodec] Dynamic Libraries installed in:
  1587. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1588. 64.98 s [really-safe-money-autodocodec] Private executables installed in:
  1589. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-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
  1590. 64.98 s [really-safe-money-autodocodec] Data files installed in:
  1591. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-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
  1592. 64.98 s [really-safe-money-autodocodec] Documentation installed in:
  1593. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-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
  1594. 64.98 s [really-safe-money-autodocodec] Configuration files installed in:
  1595. 64.98 s [really-safe-money-autodocodec] /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0/etc
  1596. 64.98 s [really-safe-money-autodocodec] No alex found
  1597. 64.98 s [really-safe-money-autodocodec] Using ar found on system at:
  1598. 64.98 s [really-safe-money-autodocodec] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1599. 64.98 s [really-safe-money-autodocodec] No c2hs found
  1600. 64.98 s [really-safe-money-autodocodec] No cpphs found
  1601. 64.98 s [really-safe-money-autodocodec] No doctest found
  1602. 64.98 s [really-safe-money-autodocodec] Using gcc version 14.3.0 given by user at:
  1603. 64.98 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1604. 64.98 s [really-safe-money-autodocodec] Using ghc version 9.10.3 found on system at:
  1605. 64.98 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1606. 64.98 s [really-safe-money-autodocodec] Using ghc-pkg version 9.10.3 found on system at:
  1607. 64.98 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1608. 64.98 s [really-safe-money-autodocodec] No ghcjs found
  1609. 64.98 s [really-safe-money-autodocodec] No ghcjs-pkg found
  1610. 64.98 s [really-safe-money-autodocodec] No greencard found
  1611. 64.98 s [really-safe-money-autodocodec] Using haddock version 2.31.1 found on system at:
  1612. 64.98 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1613. 64.98 s [really-safe-money-autodocodec] No happy found
  1614. 64.98 s [really-safe-money-autodocodec] Using haskell-suite found on system at: haskell-suite-dummy-location
  1615. 64.98 s [really-safe-money-autodocodec] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1616. 64.98 s [really-safe-money-autodocodec] No hmake found
  1617. 64.98 s [really-safe-money-autodocodec] Using hpc version 0.69 found on system at:
  1618. 64.98 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1619. 64.98 s [really-safe-money-autodocodec] Using hsc2hs version 0.68.10 found on system at:
  1620. 64.98 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1621. 64.98 s [really-safe-money-autodocodec] Using hscolour version 1.25 found on system at:
  1622. 64.98 s [really-safe-money-autodocodec] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1623. 64.98 s [really-safe-money-autodocodec] No jhc found
  1624. 64.98 s [really-safe-money-autodocodec] Using ld found on system at:
  1625. 64.98 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1626. 64.98 s [really-safe-money-autodocodec] No pkg-config found
  1627. 64.98 s [really-safe-money-autodocodec] Using runghc version 9.10.3 found on system at:
  1628. 64.98 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1629. 64.98 s [really-safe-money-autodocodec] Using strip version 2.44 found on system at:
  1630. 64.98 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1631. 64.98 s [really-safe-money-autodocodec] Using tar found on system at:
  1632. 64.98 s [really-safe-money-autodocodec] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1633. 64.98 s [really-safe-money-autodocodec] No uhc found
  1634. 65.63 s [really-safe-money-autodocodec] Phase: buildPhase
  1635. 65.64 s [really-safe-money-autodocodec] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest
  1636. 65.78 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  1637. 65.78 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  1638. 66.00 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 )
  1639. 66.08 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  1640. 66.11 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1641. 66.11 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1642. 66.11 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1643. 66.11 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1644. 66.11 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1645. 66.11 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1646. 66.11 s [really-safe-money-autodocodec] added 6 mutations
  1647. 66.58 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 )
  1648. 66.58 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  1649. 66.58 s [really-safe-money-autodocodec] added 0 mutations
  1650. 66.60 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 )
  1651. 66.61 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  1652. 66.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1653. 66.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1654. 66.61 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1655. 66.61 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1656. 66.61 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1657. 66.61 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1658. 66.61 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1659. 66.61 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  1660. 66.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1661. 66.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1662. 66.61 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1663. 66.61 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1664. 66.61 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1665. 66.61 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1666. 66.61 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1667. 66.61 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  1668. 66.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1669. 66.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1670. 66.61 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1671. 66.61 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1672. 66.61 s [really-safe-money-autodocodec] added 20 mutations
  1673. 66.74 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 )
  1674. 66.75 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  1675. 66.75 s [really-safe-money-autodocodec] added 0 mutations
  1676. 66.77 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 )
  1677. 66.77 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  1678. 66.77 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1679. 66.77 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1680. 66.77 s [really-safe-money-autodocodec] added 2 mutations
  1681. 66.82 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 )
  1682. 66.82 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  1683. 66.82 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1684. 66.82 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1685. 66.82 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1686. 66.82 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1687. 66.82 s [really-safe-money-autodocodec] added 4 mutations
  1688. 66.88 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 )
  1689. 67.12 s [really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.p_o )
  1690. 67.14 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  1691. 67.18 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1692. 67.18 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1693. 67.18 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1694. 67.18 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1695. 67.18 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1696. 67.18 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1697. 67.18 s [really-safe-money-autodocodec] added 6 mutations
  1698. 67.76 s [really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.p_o )
  1699. 67.76 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  1700. 67.76 s [really-safe-money-autodocodec] added 0 mutations
  1701. 67.88 s [really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.p_o )
  1702. 67.89 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  1703. 67.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1704. 67.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1705. 67.89 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1706. 67.89 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1707. 67.89 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1708. 67.89 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1709. 67.89 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1710. 67.89 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  1711. 67.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1712. 67.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1713. 67.89 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1714. 67.89 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1715. 67.89 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1716. 67.89 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1717. 67.89 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1718. 67.89 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  1719. 67.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1720. 67.89 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1721. 67.89 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1722. 67.89 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1723. 67.89 s [really-safe-money-autodocodec] added 20 mutations
  1724. 68.11 s [really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.p_o )
  1725. 68.11 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  1726. 68.11 s [really-safe-money-autodocodec] added 0 mutations
  1727. 68.23 s [really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.p_o )
  1728. 68.23 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  1729. 68.23 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1730. 68.23 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1731. 68.23 s [really-safe-money-autodocodec] added 2 mutations
  1732. 68.37 s [really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.p_o )
  1733. 68.37 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  1734. 68.37 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1735. 68.37 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1736. 68.37 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1737. 68.37 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1738. 68.37 s [really-safe-money-autodocodec] added 4 mutations
  1739. 68.51 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 )
  1740. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  1741. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  1742. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  1743. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  1744. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  1745. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  1746. 68.84 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  1747. 69.58 s [really-safe-money-autodocodec] mutation-nix: manifest output at /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest:
  1748. 69.59 s [really-safe-money-autodocodec] total 72
  1749. 69.59 s [really-safe-money-autodocodec] drwxr-xr-x 2 nixbld nixbld 4096 May 15 07:51 .
  1750. 69.59 s [really-safe-money-autodocodec] drwxrwxr-t 239 nobody nixbld 24576 May 15 07:51 ..
  1751. 69.59 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 4508 May 15 07:51 Money.Account.Codec.json
  1752. 69.59 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 15 07:51 Money.AccountOf.Codec.json
  1753. 69.59 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 16321 May 15 07:51 Money.Amount.Codec.json
  1754. 69.59 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 15 07:51 Money.AmountOf.Codec.json
  1755. 69.59 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1486 May 15 07:51 Money.QuantisationFactor.Codec.json
  1756. 69.59 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2827 May 15 07:51 Numeric.DecimalLiteral.Codec.json
  1757. 69.59 s [really-safe-money-autodocodec] mutation-nix: building remaining components with plugin silenced
  1758. 69.64 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  1759. 69.64 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  1760. 70.98 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  1761. 71.03 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  1762. 71.03 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  1763. 71.03 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  1764. 71.03 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  1765. 71.03 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  1766. 71.03 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  1767. 71.73 s [really-safe-money-autodocodec] Phase: haddockPhase
  1768. 71.73 s [really-safe-money-autodocodec] Phase: installPhase
  1769. 71.79 s [really-safe-money-autodocodec] Installing library in /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-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
  1770. 71.97 s [really-safe-money-autodocodec] Phase: fixupPhase
  1771. 71.99 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0
  1772. 71.99 s [really-safe-money-autodocodec] shrinking /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-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
  1773. 72.01 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0...
  1774. 72.03 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0
  1775. 72.03 s [really-safe-money-autodocodec] stripping (with command strip and flags -S -p) in /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0/lib /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0/bin
  1776. 72.07 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest
  1777. 72.07 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest...
  1778. 72.09 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest
  1779. 72.14 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0
  1780. 72.59 s [post-build-hook] Pushing 2 paths (196 are already present) using zstd to cache sydtest ⏳
  1781. 72.59 s [post-build-hook]
  1782. 72.96 s [post-build-hook] Pushing /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest (25.90 KiB)
  1783. 72.97 s [post-build-hook] Pushing /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0 (1.60 MiB)
  1784. 74.40 s [post-build-hook]
  1785. 74.40 s [post-build-hook] All done.
  1786. 74.42 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0
  1787. 74.46 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1788. 74.66 s [post-build-hook] copying 2 paths...
  1789. 74.66 s [post-build-hook] copying path '/nix/store/h7amqqmd26qbyzzmqjk098pknpp9sqma-really-safe-money-autodocodec-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
  1790. 74.66 s [post-build-hook] copying path '/nix/store/zm2smzissn0ngr35zcc44q4maxrzigbm-really-safe-money-autodocodec-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1791. 75.57 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1792. 75.80 s [post-build-hook] copying 1 paths...
  1793. 75.80 s [post-build-hook] copying path '/nix/store/ri6pj8pd1jy36172y9n317zggzvf38gh-really-safe-money-autodocodec-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  1794. 75.98 s Progress: 4 of 6 built
  1795. 76.03 s Building really-safe-money-gen
  1796. 76.40 s [really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
  1797. 76.58 s [really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1798. 76.84 s [really-safe-money-gen] Phase: unpackPhase
  1799. 76.84 s [really-safe-money-gen] unpacking source archive /nix/store/a189ba0mmy86h3f3dg153vi9gc48d8rf-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
  1800. 76.85 s [really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
  1801. 76.85 s [really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778831459 of file "really-safe-money-gen-0.0.0.0/test/Spec.hs"
  1802. 76.85 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
  1803. 76.86 s [really-safe-money-gen] Phase: patchPhase
  1804. 76.86 s [really-safe-money-gen] Phase: compileBuildDriverPhase
  1805. 76.87 s [really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.aMNJg1DKi2/setup-package.conf.d -threaded
  1806. 76.91 s [really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.aMNJg1DKi2/Main.o )
  1807. 76.96 s [really-safe-money-gen] [2 of 2] Linking Setup
  1808. 78.08 s [really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
  1809. 78.09 s [really-safe-money-gen] Phase: configurePhase
  1810. 78.10 s [really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-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.aMNJg1DKi2/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
  1811. 78.11 s [really-safe-money-gen] Using Parsec parser
  1812. 78.11 s [really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
  1813. 78.71 s [really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1814. 78.71 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  1815. 78.71 s [really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
  1816. 78.71 s [really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  1817. 78.71 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1818. 78.71 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  1819. 78.71 s [really-safe-money-gen] Dependency containers: using containers-0.7
  1820. 78.71 s [really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  1821. 78.71 s [really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  1822. 78.71 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1823. 78.71 s [really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  1824. 78.71 s [really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
  1825. 78.71 s [really-safe-money-gen] Dependency vector: using vector-0.13.2.0
  1826. 78.71 s [really-safe-money-gen] Source component graph:
  1827. 78.71 s [really-safe-money-gen] component lib
  1828. 78.71 s [really-safe-money-gen] component test:really-safe-money-test dependency lib
  1829. 78.71 s [really-safe-money-gen] Configured component graph:
  1830. 78.71 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1831. 78.71 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1832. 78.71 s [really-safe-money-gen] include base-4.20.2.0-64da
  1833. 78.71 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1834. 78.71 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1835. 78.71 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1836. 78.71 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1837. 78.71 s [really-safe-money-gen] include base-4.20.2.0-64da
  1838. 78.71 s [really-safe-money-gen] include containers-0.7-504a
  1839. 78.71 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1840. 78.71 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1841. 78.71 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1842. 78.71 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1843. 78.71 s [really-safe-money-gen] include sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1844. 78.71 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1845. 78.71 s [really-safe-money-gen] Linked component graph:
  1846. 78.71 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1847. 78.71 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1848. 78.71 s [really-safe-money-gen] include base-4.20.2.0-64da
  1849. 78.71 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1850. 78.71 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1851. 78.71 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1852. 78.71 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
  1853. 78.71 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1854. 78.71 s [really-safe-money-gen] include base-4.20.2.0-64da
  1855. 78.71 s [really-safe-money-gen] include containers-0.7-504a
  1856. 78.71 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1857. 78.71 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1858. 78.71 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1859. 78.71 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1860. 78.71 s [really-safe-money-gen] include sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1861. 78.71 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1862. 78.71 s [really-safe-money-gen] Ready component graph:
  1863. 78.71 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1864. 78.71 s [really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1865. 78.71 s [really-safe-money-gen] depends base-4.20.2.0-64da
  1866. 78.71 s [really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1867. 78.71 s [really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1868. 78.71 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1869. 78.71 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1870. 78.71 s [really-safe-money-gen] depends base-4.20.2.0-64da
  1871. 78.71 s [really-safe-money-gen] depends containers-0.7-504a
  1872. 78.71 s [really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1873. 78.71 s [really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1874. 78.71 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1875. 78.71 s [really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1876. 78.71 s [really-safe-money-gen] depends sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1877. 78.71 s [really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1878. 78.71 s [really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1879. 78.71 s [really-safe-money-gen] Using compiler: ghc-9.10.3
  1880. 78.71 s [really-safe-money-gen] Using install prefix:
  1881. 78.71 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0
  1882. 78.71 s [really-safe-money-gen] Executables installed in:
  1883. 78.71 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/bin
  1884. 78.71 s [really-safe-money-gen] Libraries installed in:
  1885. 78.71 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-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
  1886. 78.71 s [really-safe-money-gen] Dynamic Libraries installed in:
  1887. 78.71 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1888. 78.72 s [really-safe-money-gen] Private executables installed in:
  1889. 78.72 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-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
  1890. 78.72 s [really-safe-money-gen] Data files installed in:
  1891. 78.72 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-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
  1892. 78.72 s [really-safe-money-gen] Documentation installed in:
  1893. 78.72 s [really-safe-money-gen] /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
  1894. 78.72 s [really-safe-money-gen] Configuration files installed in:
  1895. 78.72 s [really-safe-money-gen] /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/etc
  1896. 78.72 s [really-safe-money-gen] No alex found
  1897. 78.72 s [really-safe-money-gen] Using ar found on system at:
  1898. 78.72 s [really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1899. 78.72 s [really-safe-money-gen] No c2hs found
  1900. 78.72 s [really-safe-money-gen] No cpphs found
  1901. 78.72 s [really-safe-money-gen] No doctest found
  1902. 78.72 s [really-safe-money-gen] Using gcc version 14.3.0 given by user at:
  1903. 78.72 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1904. 78.72 s [really-safe-money-gen] Using ghc version 9.10.3 found on system at:
  1905. 78.72 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1906. 78.72 s [really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
  1907. 78.72 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1908. 78.72 s [really-safe-money-gen] No ghcjs found
  1909. 78.72 s [really-safe-money-gen] No ghcjs-pkg found
  1910. 78.72 s [really-safe-money-gen] No greencard found
  1911. 78.72 s [really-safe-money-gen] Using haddock version 2.31.1 found on system at:
  1912. 78.72 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1913. 78.72 s [really-safe-money-gen] No happy found
  1914. 78.72 s [really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
  1915. 78.72 s [really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1916. 78.72 s [really-safe-money-gen] No hmake found
  1917. 78.72 s [really-safe-money-gen] Using hpc version 0.69 found on system at:
  1918. 78.72 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1919. 78.72 s [really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
  1920. 78.72 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1921. 78.72 s [really-safe-money-gen] Using hscolour version 1.25 found on system at:
  1922. 78.72 s [really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1923. 78.72 s [really-safe-money-gen] No jhc found
  1924. 78.72 s [really-safe-money-gen] Using ld found on system at:
  1925. 78.72 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1926. 78.72 s [really-safe-money-gen] No pkg-config found
  1927. 78.72 s [really-safe-money-gen] Using runghc version 9.10.3 found on system at:
  1928. 78.72 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1929. 78.72 s [really-safe-money-gen] Using strip version 2.44 found on system at:
  1930. 78.72 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1931. 78.72 s [really-safe-money-gen] Using tar found on system at:
  1932. 78.72 s [really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1933. 78.72 s [really-safe-money-gen] No uhc found
  1934. 79.09 s [really-safe-money-gen] Phase: buildPhase
  1935. 79.16 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  1936. 79.16 s [really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
  1937. 79.24 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 )
  1938. 80.36 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 )
  1939. 81.01 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 )
  1940. 81.15 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 )
  1941. 81.15 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 )
  1942. 81.15 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 )
  1943. 81.15 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 )
  1944. 81.15 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 )
  1945. 81.15 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 )
  1946. 81.15 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 )
  1947. 81.40 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 )
  1948. 81.46 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 )
  1949. 81.52 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 )
  1950. 82.08 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
  1951. 83.40 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
  1952. 83.67 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
  1953. 83.87 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
  1954. 83.87 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
  1955. 83.87 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
  1956. 83.87 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
  1957. 83.87 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
  1958. 83.87 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
  1959. 83.87 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
  1960. 83.91 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
  1961. 84.06 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
  1962. 84.06 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 )
  1963. 85.88 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  1964. 85.88 s [really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  1965. 86.01 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 )
  1966. 88.25 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 )
  1967. 88.51 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 )
  1968. 88.51 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 )
  1969. 88.51 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 )
  1970. 88.51 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 )
  1971. 88.51 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 )
  1972. 88.51 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 )
  1973. 88.51 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 )
  1974. 88.51 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 )
  1975. 88.51 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 )
  1976. 88.51 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 )
  1977. 88.51 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 )
  1978. 88.56 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 )
  1979. 88.86 s [really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
  1980. 90.18 s [really-safe-money-gen] Phase: checkPhase
  1981. 90.19 s [really-safe-money-gen] mutation-nix: collecting coverage for suite really-safe-money-gen
  1982. 98.60 s [really-safe-money-gen] coverage (3/1610): Numeric\.DecimalLiteralSpec.Natural.toNatural.renders to valid naturals (0 mutations)
  1983. 98.64 s [really-safe-money-gen] coverage (8/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 10 0 into rational 10 % 1 (4 mutations)
  1984. 98.67 s [really-safe-money-gen] coverage (6/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 500 into DecimalLiteral Nothing 2 3 (36 mutations)
  1985. 98.79 s [really-safe-money-gen] coverage (13/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.can parse any rendered rational (43 mutations)
  1986. 98.88 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. 99.07 s [really-safe-money-gen] coverage (9/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 50 1 into rational 5 % 1 (4 mutations)
  1988. 99.10 s [really-safe-money-gen] coverage (2/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.can parse any rendered literal (9 mutations)
  1989. 99.13 s [really-safe-money-gen] coverage (4/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 9 2 into rational 9 % 100 (4 mutations)
  1990. 99.13 s [really-safe-money-gen] coverage (22/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 9 % 100 into DecimalLiteral Nothing 9 2 (36 mutations)
  1991. 99.15 s [really-safe-money-gen] coverage (27/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 240009 % 20000 into DecimalLiteral Nothing 1200045 5 (38 mutations)
  1992. 99.16 s [really-safe-money-gen] coverage (18/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 10 % 1 into DecimalLiteral Nothing 10 0 (30 mutations)
  1993. 99.17 s [really-safe-money-gen] coverage (11/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-4) % 5 into DecimalLiteral (Just False) 8 1 (38 mutations)
  1994. 99.17 s [really-safe-money-gen] coverage (10/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-1) % 1000 into DecimalLiteral (Just False) 1 3 (38 mutations)
  1995. 99.18 s [really-safe-money-gen] coverage (12/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 5 % 1 into DecimalLiteral Nothing 5 0 (30 mutations)
  1996. 99.20 s [really-safe-money-gen] coverage (17/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 20 4 into rational 1 % 500 (4 mutations)
  1997. 99.22 s [really-safe-money-gen] coverage (15/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 600 2 into rational (-6) % 1 (4 mutations)
  1998. 99.28 s [really-safe-money-gen] coverage (23/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 3 0 into rational (-3) % 1 (4 mutations)
  1999. 99.31 s [really-safe-money-gen] coverage (25/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 7 % 1 into DecimalLiteral Nothing 7 0 (30 mutations)
  2000. 99.37 s [really-safe-money-gen] coverage (5/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 (30 mutations)
  2001. 99.37 s [really-safe-money-gen] coverage (1/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.renders to valid decimal literals (1 mutations)
  2002. 99.42 s [really-safe-money-gen] coverage (16/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 400 0 into rational 400 % 1 (4 mutations)
  2003. 99.42 s [really-safe-money-gen] coverage (26/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1 0 into rational 1 % 1 (4 mutations)
  2004. 99.44 s [really-safe-money-gen] coverage (19/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1 into DecimalLiteral (Just False) 3 0 (32 mutations)
  2005. 99.62 s [really-safe-money-gen] coverage (20/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 7000 3 into rational 7 % 1 (4 mutations)
  2006. 99.63 s [really-safe-money-gen] coverage (24/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 1 into DecimalLiteral Nothing 1 0 (30 mutations)
  2007. 99.68 s [really-safe-money-gen] coverage (21/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 2 0 into rational 2 % 1 (4 mutations)
  2008. 99.77 s [really-safe-money-gen] coverage (28/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 1 3 into rational (-1) % 1000 (4 mutations)
  2009. 99.91 s [really-safe-money-gen] coverage (14/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.renders to valid decimal literals (40 mutations)
  2010. 107.69 s [really-safe-money-gen] coverage (42/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.fails to parse scientific notation (22 mutations)
  2011. 107.79 s [really-safe-money-gen] coverage (30/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1000 into DecimalLiteral (Just False) 3 3 (38 mutations)
  2012. 107.90 s [really-safe-money-gen] coverage (29/1610): Numeric\.DecimalLiteralSpec.Rational.toRational.renders to valid rationals (4 mutations)
  2013. 107.94 s [really-safe-money-gen] coverage (32/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1200045 5 into rational 240009 % 20000 (4 mutations)
  2014. 107.95 s [really-safe-money-gen] coverage (38/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.does not change the value of the literal (15 mutations)
  2015. 107.99 s [really-safe-money-gen] coverage (33/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 8 1 into rational (-4) % 5 (4 mutations)
  2016. 108.03 s [really-safe-money-gen] coverage (37/1610): Numeric\.DecimalLiteralSpec.Ratio.toRatio.renders to valid rationals (5 mutations)
  2017. 108.04 s [really-safe-money-gen] coverage (31/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 2 % 1 into DecimalLiteral Nothing 2 0 (30 mutations)
  2018. 108.12 s [really-safe-money-gen] coverage (39/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces valid literals (12 mutations)
  2019. 108.17 s [really-safe-money-gen] coverage (34/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 300 5 into rational (-3) % 1000 (4 mutations)
  2020. 108.27 s [really-safe-money-gen] coverage (40/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces values with more than the given number of digits (12 mutations)
  2021. 108.29 s [really-safe-money-gen] coverage (43/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.can parse any rendered decimal literal (44 mutations)
  2022. 108.30 s [really-safe-money-gen] coverage (41/1610): Numeric\.DecimalLiteralSpec.GenValid DecimalLiteral.genValid \:\: Gen DecimalLiteral.only generates valid 'DecimalLiteral's (0 mutations)
  2023. 108.36 s [really-safe-money-gen] coverage (46/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.can parse any rendered literal (24 mutations)
  2024. 108.38 s [really-safe-money-gen] coverage (35/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.can parse any rendered rational (36 mutations)
  2025. 108.41 s [really-safe-money-gen] coverage (48/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromStringM.does the same as DecimalLiteral\.fromString (12 mutations)
  2026. 108.44 s [really-safe-money-gen] coverage (45/1610): Numeric\.DecimalLiteralSpec.Int.toInt.renders to valid words (14 mutations)
  2027. 108.48 s [really-safe-money-gen] coverage (44/1610): Numeric\.DecimalLiteralSpec.setSignOptional.produces valid values (0 mutations)
  2028. 108.48 s [really-safe-money-gen] coverage (47/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.renders to valid decimal literals (10 mutations)
  2029. 108.66 s [really-safe-money-gen] coverage (51/1610): Numeric\.DecimalLiteralSpec.Word.toWord.renders to valid words (0 mutations)
  2030. 108.69 s [really-safe-money-gen] coverage (50/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.can parse any rendered literal (9 mutations)
  2031. 108.69 s [really-safe-money-gen] coverage (49/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.renders to valid decimal literals (1 mutations)
  2032. 108.86 s [really-safe-money-gen] coverage (36/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.renders to valid decimal literals (31 mutations)
  2033. 108.88 s [really-safe-money-gen] coverage (53/1610): Numeric\.DecimalLiteralSpec.examples.can parse "+2" (25 mutations)
  2034. 108.97 s [really-safe-money-gen] coverage (52/1610): Numeric\.DecimalLiteralSpec.toString.can render any decimal literal (2 mutations)
  2035. 109.03 s [really-safe-money-gen] coverage (54/1610): Numeric\.DecimalLiteralSpec.examples.can parse "1" (22 mutations)
  2036. 109.25 s [really-safe-money-gen] coverage (56/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 50 1 (1 mutations)
  2037. 109.28 s [really-safe-money-gen] coverage (55/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 300 5 (3 mutations)
  2038. 117.56 s [really-safe-money-gen] coverage (58/1610): Numeric\.DecimalLiteralSpec.examples.can parse "5\.0" (31 mutations)
  2039. 117.56 s [really-safe-money-gen] coverage (57/1610): Numeric\.DecimalLiteralSpec.examples.can parse "400" (31 mutations)
  2040. 117.69 s [really-safe-money-gen] coverage (64/1610): Numeric\.DecimalLiteralSpec.examples.can parse "12\.00045" (38 mutations)
  2041. 117.79 s [really-safe-money-gen] coverage (61/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.00300" (36 mutations)
  2042. 117.82 s [really-safe-money-gen] coverage (62/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 7000 3 (1 mutations)
  2043. 117.82 s [really-safe-money-gen] coverage (59/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 8 1 (3 mutations)
  2044. 117.91 s [really-safe-money-gen] coverage (63/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 20 4 (3 mutations)
  2045. 117.95 s [really-safe-money-gen] coverage (67/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1200045 5 (1 mutations)
  2046. 117.95 s [really-safe-money-gen] coverage (65/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 0 (1 mutations)
  2047. 118.02 s [really-safe-money-gen] coverage (60/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 3 (3 mutations)
  2048. 118.06 s [really-safe-money-gen] coverage (70/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 600 2 (1 mutations)
  2049. 118.10 s [really-safe-money-gen] coverage (66/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just True) 2 0 (1 mutations)
  2050. 118.17 s [really-safe-money-gen] coverage (77/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just False) 3 0 (1 mutations)
  2051. 118.19 s [really-safe-money-gen] coverage (72/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.8" (29 mutations)
  2052. 118.27 s [really-safe-money-gen] coverage (68/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.001" (34 mutations)
  2053. 118.27 s [really-safe-money-gen] coverage (71/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 9 2 (3 mutations)
  2054. 118.37 s [really-safe-money-gen] coverage (69/1610): Numeric\.DecimalLiteralSpec.examples.can parse "6\.00" (36 mutations)
  2055. 118.48 s [really-safe-money-gen] coverage (73/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 400 0 (1 mutations)
  2056. 118.58 s [really-safe-money-gen] coverage (76/1610): Numeric\.DecimalLiteralSpec.examples.can parse "-3" (22 mutations)
  2057. 118.59 s [really-safe-money-gen] coverage (79/1610): Numeric\.DecimalLiteralSpec.Integer.toInteger.renders to valid words (0 mutations)
  2058. 118.60 s [really-safe-money-gen] coverage (74/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.09" (34 mutations)
  2059. 118.60 s [really-safe-money-gen] coverage (82/1610): Numeric\.DecimalLiteralSpec.digits.produces valid numbers of digits (0 mutations)
  2060. 118.64 s [really-safe-money-gen] coverage (80/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.renders to valid decimal literals (10 mutations)
  2061. 118.65 s [really-safe-money-gen] coverage (78/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.0020" (36 mutations)
  2062. 118.68 s [really-safe-money-gen] coverage (81/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.can parse any rendered literal (10 mutations)
  2063. 118.81 s [really-safe-money-gen] coverage (75/1610): Numeric\.DecimalLiteralSpec.examples.can parse "7\.000" (36 mutations)
  2064. 119.03 s [really-safe-money-gen] coverage (83/1610): Numeric\.DecimalLiteralSpec.setSignRequired.produces valid values (2 mutations)
  2065. 119.55 s [really-safe-money-gen] coverage (84/1610): Money\.ConversionRateSpec.Rational.toRational.produces valid rationals (0 mutations)
  2066. 127.73 s [really-safe-money-gen] coverage (90/1610): Money\.ConversionRateSpec.invert.produces valid rates (8 mutations)
  2067. 127.76 s [really-safe-money-gen] coverage (88/1610): Money\.ConversionRateSpec.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2068. 127.82 s [really-safe-money-gen] coverage (86/1610): Money\.ConversionRateSpec.Rational.fromRational.produces valid conversion rates (13 mutations)
  2069. 127.82 s [really-safe-money-gen] coverage (89/1610): Money\.ConversionRateSpec.Ratio.toRatio.produces valid ratios (0 mutations)
  2070. 127.92 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)
  2071. 127.94 s [really-safe-money-gen] coverage (87/1610): Money\.ConversionRateSpec.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2072. 127.95 s [really-safe-money-gen] coverage (85/1610): Money\.ConversionRateSpec.Rational.fromRational.roundtrips with toRational (13 mutations)
  2073. 127.98 s [really-safe-money-gen] coverage (94/1610): Money\.ConversionRateSpec.compose.produces valid rates (8 mutations)
  2074. 128.15 s [really-safe-money-gen] coverage (103/1610): Money\.AccountSpec.Eq.says negative 0 equals positive 0 (3 mutations)
  2075. 128.18 s [really-safe-money-gen] coverage (92/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2076. 128.19 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. 128.21 s [really-safe-money-gen] coverage (100/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is transitive for "valid Account"s (3 mutations)
  2078. 128.22 s [really-safe-money-gen] coverage (95/1610): Money\.ConversionRateSpec.GenValid ConversionRate.genValid \:\: Gen ConversionRate.only generates valid 'ConversionRate's (6 mutations)
  2079. 128.22 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)
  2080. 128.36 s [really-safe-money-gen] coverage (109/1610): Money\.AccountSpec.distribute.correctly distributes 5 into 3 (20 mutations)
  2081. 128.38 s [really-safe-money-gen] coverage (108/1610): Money\.AccountSpec.convert.converts this USD to CHF correctly (26 mutations)
  2082. 128.40 s [really-safe-money-gen] coverage (104/1610): Money\.AccountSpec.negate.produces valid amounts (1 mutations)
  2083. 128.40 s [really-safe-money-gen] coverage (101/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is symmetric for "valid Account"s (3 mutations)
  2084. 128.40 s [really-safe-money-gen] coverage (102/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is reflexive for "valid Account"s (3 mutations)
  2085. 128.58 s [really-safe-money-gen] coverage (110/1610): Money\.AccountSpec.distribute.correctly distributes 3 into 3 (18 mutations)
  2086. 128.68 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)
  2087. 128.70 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)
  2088. 129.09 s [really-safe-money-gen] coverage (105/1610): Money\.AccountSpec.format.produces valid strings (6 mutations)
  2089. 129.10 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. 129.22 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)
  2091. 129.78 s [really-safe-money-gen] coverage (107/1610): Money\.AccountSpec.convert.produces valid amounts (27 mutations)
  2092. 136.91 s [really-safe-money-gen] coverage (121/1610): Money\.AccountSpec.abs.produces valid amounts (1 mutations)
  2093. 137.24 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)
  2094. 137.24 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)
  2095. 137.31 s [really-safe-money-gen] coverage (131/1610): Money\.AccountSpec.rate.computes this USD to CHF rate correctly (14 mutations)
  2096. 137.37 s [really-safe-money-gen] coverage (125/1610): Money\.AccountSpec.fromRatio.produces valid rational (20 mutations)
  2097. 137.48 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. 137.51 s [really-safe-money-gen] coverage (122/1610): Money\.AccountSpec.fromAmount.produces valid accounts (1 mutations)
  2099. 137.57 s [really-safe-money-gen] coverage (123/1610): Money\.AccountSpec.fromRational.roundtrips with toRational (31 mutations)
  2100. 137.58 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)
  2101. 137.59 s [really-safe-money-gen] coverage (127/1610): Money\.AccountSpec.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2102. 137.81 s [really-safe-money-gen] coverage (128/1610): Money\.AccountSpec.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2103. 137.89 s [really-safe-money-gen] coverage (133/1610): Money\.AccountSpec.toDouble.produces an infinite or NaN Double with quantisation factor 0 (3 mutations)
  2104. 137.90 s [really-safe-money-gen] coverage (118/1610): Money\.AccountSpec.distribute.correctly distributes 10 into 4 (20 mutations)
  2105. 138.09 s [really-safe-money-gen] coverage (132/1610): Money\.AccountSpec.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2106. 138.10 s [really-safe-money-gen] coverage (139/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2107. 138.12 s [really-safe-money-gen] coverage (124/1610): Money\.AccountSpec.fromRational.produces valid rational (27 mutations)
  2108. 138.27 s [really-safe-money-gen] coverage (120/1610): Money\.AccountSpec.distribute.produces valid amounts (36 mutations)
  2109. 138.33 s [really-safe-money-gen] coverage (134/1610): Money\.AccountSpec.Ord.says -6 is greater than -7 (2 mutations)
  2110. 138.34 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)
  2111. 138.39 s [really-safe-money-gen] coverage (130/1610): Money\.AccountSpec.rate.produces valid conversion rates (15 mutations)
  2112. 138.48 s [really-safe-money-gen] coverage (117/1610): Money\.AccountSpec.distribute.produces results that sum up to the greater whole (66 mutations)
  2113. 138.51 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)
  2114. 138.59 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)
  2115. 138.59 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. 138.66 s [really-safe-money-gen] coverage (142/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
  2117. 139.29 s [really-safe-money-gen] coverage (143/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2118. 146.32 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)
  2119. 146.37 s [really-safe-money-gen] coverage (135/1610): Money\.AccountSpec.Ord.says 4 is smaller than 5 (2 mutations)
  2120. 146.40 s [really-safe-money-gen] coverage (136/1610): Money\.AccountSpec.Ord.says -3 is smaller than 2 (2 mutations)
  2121. 146.46 s [really-safe-money-gen] coverage (146/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2122. 146.67 s [really-safe-money-gen] coverage (145/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
  2123. 146.76 s [really-safe-money-gen] coverage (148/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
  2124. 146.83 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)
  2125. 146.84 s [really-safe-money-gen] coverage (149/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
  2126. 147.04 s [really-safe-money-gen] coverage (126/1610): Money\.AccountSpec.fromRatio.roundtrips with toRatio (22 mutations)
  2127. 147.08 s [really-safe-money-gen] coverage (153/1610): Money\.AccountSpec.toRatio.produces valid Ratios when the quantisation factor is nonzero (1 mutations)
  2128. 147.11 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)
  2129. 147.16 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)
  2130. 147.18 s [really-safe-money-gen] coverage (150/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
  2131. 147.20 s [really-safe-money-gen] coverage (157/1610): Money\.AccountSpec.sum.fails to sum above maxBound (10 mutations)
  2132. 147.21 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)
  2133. 147.39 s [really-safe-money-gen] coverage (158/1610): Money\.AccountSpec.sum.correctly sums [1,2,3] to 6 (12 mutations)
  2134. 147.40 s [really-safe-money-gen] coverage (160/1610): Money\.AccountSpec.toMinimalQuantisations.produces valid accounts (3 mutations)
  2135. 147.51 s [really-safe-money-gen] coverage (163/1610): Money\.AccountSpec.add.fails for minBound + minBound (8 mutations)
  2136. 147.61 s [really-safe-money-gen] coverage (141/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
  2137. 147.62 s [really-safe-money-gen] coverage (154/1610): Money\.AccountSpec.fractionRatio.produces valid amounts (22 mutations)
  2138. 147.69 s [really-safe-money-gen] coverage (165/1610): Money\.AccountSpec.add.has a right-identity\: zero (28 mutations)
  2139. 147.75 s [really-safe-money-gen] coverage (162/1610): Money\.AccountSpec.add.fails for minBound + (-1) (8 mutations)
  2140. 147.78 s [really-safe-money-gen] coverage (152/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2141. 147.95 s [really-safe-money-gen] coverage (161/1610): Money\.AccountSpec.add.is commutative (27 mutations)
  2142. 148.54 s [really-safe-money-gen] coverage (155/1610): Money\.AccountSpec.sum.produces valid amounts (28 mutations)
  2143. 148.66 s [really-safe-money-gen] coverage (164/1610): Money\.AccountSpec.add.produces valid amounts (27 mutations)
  2144. 155.34 s [really-safe-money-gen] coverage (167/1610): Money\.AccountSpec.add.fails for maxBound + maxBound (8 mutations)
  2145. 155.37 s [really-safe-money-gen] coverage (166/1610): Money\.AccountSpec.add.fails for maxBound + 1 (8 mutations)
  2146. 155.61 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)
  2147. 155.66 s [really-safe-money-gen] coverage (170/1610): Money\.AccountSpec.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2148. 155.77 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)
  2149. 155.88 s [really-safe-money-gen] coverage (169/1610): Money\.AccountSpec.add.has a left-identity\: zero (28 mutations)
  2150. 155.90 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)
  2151. 156.02 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)
  2152. 156.06 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)
  2153. 156.13 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)
  2154. 156.15 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)
  2155. 156.16 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)
  2156. 156.18 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. 156.24 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)
  2158. 156.24 s [really-safe-money-gen] coverage (168/1610): Money\.AccountSpec.add.is associative when both succeed (27 mutations)
  2159. 156.37 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)
  2160. 156.56 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)
  2161. 156.59 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)
  2162. 156.69 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)
  2163. 156.72 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. 156.82 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)
  2165. 156.89 s [really-safe-money-gen] coverage (159/1610): Money\.AccountSpec.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2166. 157.42 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)
  2167. 157.58 s [really-safe-money-gen] coverage (191/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise (17 mutations)
  2168. 163.63 s [really-safe-money-gen] coverage (193/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise:1 (17 mutations)
  2169. 163.81 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)
  2170. 163.94 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)
  2171. 164.15 s [really-safe-money-gen] coverage (192/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.produces valid factors (30 mutations)
  2172. 164.19 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)
  2173. 164.28 s [really-safe-money-gen] coverage (202/1610): Money\.AccountSpec.subtract.fails for minBound - maxBound (8 mutations)
  2174. 164.33 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)
  2175. 164.42 s [really-safe-money-gen] coverage (198/1610): Money\.AccountSpec.fromDouble.produces valid rational (38 mutations)
  2176. 164.42 s [really-safe-money-gen] coverage (201/1610): Money\.AccountSpec.subtract.fails for minBound - 1 (8 mutations)
  2177. 164.48 s [really-safe-money-gen] coverage (204/1610): Money\.AccountSpec.multiply.fails for 3 * minBound (8 mutations)
  2178. 164.53 s [really-safe-money-gen] coverage (203/1610): Money\.AccountSpec.subtract.fails for maxBound - minBound (8 mutations)
  2179. 164.65 s [really-safe-money-gen] coverage (207/1610): Money\.AccountSpec.multiply.succeeds for 3 * 6 (19 mutations)
  2180. 164.72 s [really-safe-money-gen] coverage (200/1610): Money\.AccountSpec.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2181. 164.78 s [really-safe-money-gen] coverage (206/1610): Money\.AccountSpec.multiply.produces valid amounts (20 mutations)
  2182. 164.89 s [really-safe-money-gen] coverage (199/1610): Money\.AccountSpec.fromDouble.roundtrips with toDouble back to double (40 mutations)
  2183. 164.90 s [really-safe-money-gen] coverage (205/1610): Money\.AccountSpec.multiply.is absorbed by 0 (20 mutations)
  2184. 164.92 s [really-safe-money-gen] coverage (212/1610): Money\.AccountSpec.GenValid Account.genValid \:\: Gen Account.only generates valid 'Account's (1 mutations)
  2185. 165.07 s [really-safe-money-gen] coverage (210/1610): Money\.AccountSpec.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2186. 165.08 s [really-safe-money-gen] coverage (213/1610): Money\.AccountSpec.fraction.Correctly fractions 101 with 1 % 100 (32 mutations)
  2187. 165.10 s [really-safe-money-gen] coverage (211/1610): Money\.AccountSpec.multiply.fails for 2 * maxbound (8 mutations)
  2188. 165.24 s [really-safe-money-gen] coverage (209/1610): Money\.AccountSpec.multiply.is distributive with add when both succeed (44 mutations)
  2189. 165.69 s [really-safe-money-gen] coverage (214/1610): Money\.AccountSpec.fraction.produces valid amounts (39 mutations)
  2190. 165.88 s [really-safe-money-gen] coverage (219/1610): Money\.AccountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2191. 166.43 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)
  2192. 171.90 s [really-safe-money-gen] coverage (221/1610): Money\.MultiAmountSpec.fromAmount.produces valid amounts (15 mutations)
  2193. 171.95 s [really-safe-money-gen] coverage (216/1610): Money\.AccountSpec.fraction.Correctly fractions 100 with 1 % 100 (32 mutations)
  2194. 172.00 s [really-safe-money-gen] coverage (220/1610): Money\.AccountSpec.toRational.produces an invalid Rational with quantisation factor 0 (4 mutations)
  2195. 172.26 s [really-safe-money-gen] coverage (223/1610): Money\.MultiAmountSpec.zero.is valid (2 mutations)
  2196. 172.56 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)
  2197. 172.60 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)
  2198. 172.64 s [really-safe-money-gen] coverage (208/1610): Money\.AccountSpec.multiply.has an identity\: 1 (20 mutations)
  2199. 172.65 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)
  2200. 172.73 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)
  2201. 172.79 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)
  2202. 172.85 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. 172.88 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. 173.06 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)
  2205. 173.22 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)
  2206. 173.28 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)
  2207. 173.30 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)
  2208. 173.39 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)
  2209. 173.41 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)
  2210. 173.58 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)
  2211. 173.59 s [really-safe-money-gen] coverage (230/1610): Money\.MultiAmountSpec.sum.produces valid amounts (27 mutations)
  2212. 174.11 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)
  2213. 174.14 s [really-safe-money-gen] coverage (215/1610): Money\.AccountSpec.fraction.Produces a result that can be multiplied back (39 mutations)
  2214. 174.24 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)
  2215. 174.91 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)
  2216. 180.02 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)
  2217. 180.18 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. 180.38 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)
  2219. 180.46 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)
  2220. 180.51 s [really-safe-money-gen] coverage (247/1610): Money\.MultiAmountSpec.convertAll.produces the right result in this example (15 mutations)
  2221. 180.70 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. 180.79 s [really-safe-money-gen] coverage (249/1610): Money\.MultiAmountSpec.convertAll.does the same as 'convert' when there is only one amount (32 mutations)
  2223. 180.81 s [really-safe-money-gen] coverage (248/1610): Money\.MultiAmountSpec.convertAll.produces valid results when converting two currencies to one (20 mutations)
  2224. 180.81 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)
  2225. 180.97 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)
  2226. 181.18 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)
  2227. 181.19 s [really-safe-money-gen] coverage (256/1610): Money\.MultiAmountSpec.subtractAmount.produces valid amounts (29 mutations)
  2228. 181.21 s [really-safe-money-gen] coverage (252/1610): Money\.MultiAmountSpec.add.has a left-identity\: zero (4 mutations)
  2229. 181.22 s [really-safe-money-gen] coverage (250/1610): Money\.MultiAmountSpec.add.produces valid amounts (27 mutations)
  2230. 181.25 s [really-safe-money-gen] coverage (251/1610): Money\.MultiAmountSpec.add.has a right-identity\: zero (2 mutations)
  2231. 181.36 s [really-safe-money-gen] coverage (258/1610): Money\.MultiAmountSpec.subtract.produces valid amounts (28 mutations)
  2232. 181.41 s [really-safe-money-gen] coverage (261/1610): Money\.MultiAmountSpec.lookupAmount.can find an added amount (5 mutations)
  2233. 181.43 s [really-safe-money-gen] coverage (259/1610): Money\.MultiAmountSpec.subtract.has a right-identity\: zero (2 mutations)
  2234. 181.57 s [really-safe-money-gen] coverage (262/1610): Money\.AccountOfSpec.USD.sum.produces valid amounts (28 mutations)
  2235. 181.82 s [really-safe-money-gen] coverage (91/1610): Money\.ConversionRateSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2236. 181.92 s [really-safe-money-gen] coverage (263/1610): Money\.AccountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2237. 182.05 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)
  2238. 182.18 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)
  2239. 182.68 s [really-safe-money-gen] coverage (253/1610): Money\.MultiAmountSpec.add.is associative when both succeed (16 mutations)
  2240. 182.94 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)
  2241. 183.29 s [really-safe-money-gen] coverage (93/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2242. 188.34 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)
  2243. 188.59 s [really-safe-money-gen] coverage (270/1610): Money\.AccountOfSpec.USD.add.has a right-identity\: zero (28 mutations)
  2244. 188.74 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)
  2245. 188.80 s [really-safe-money-gen] coverage (271/1610): Money\.AccountOfSpec.USD.add.is associative when both succeed (27 mutations)
  2246. 188.85 s [really-safe-money-gen] coverage (272/1610): Money\.AccountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2247. 189.03 s [really-safe-money-gen] coverage (274/1610): Money\.AccountOfSpec.USD.add.is commutative (27 mutations)
  2248. 189.11 s [really-safe-money-gen] coverage (277/1610): Money\.AccountOfSpec.USD.toMinimalQuantisations.produces valid accounts (3 mutations)
  2249. 189.34 s [really-safe-money-gen] coverage (273/1610): Money\.AccountOfSpec.USD.add.produces valid amounts (27 mutations)
  2250. 189.42 s [really-safe-money-gen] coverage (278/1610): Money\.AccountOfSpec.USD.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2251. 189.47 s [really-safe-money-gen] coverage (276/1610): Money\.AccountOfSpec.USD.fromAmountOf.produces valid AccountOfs (1 mutations)
  2252. 189.55 s [really-safe-money-gen] coverage (281/1610): Money\.AccountOfSpec.USD.USD.convert.produces valid amounts (27 mutations)
  2253. 189.67 s [really-safe-money-gen] coverage (280/1610): Money\.AccountOfSpec.USD.negate.produces valid amounts (1 mutations)
  2254. 189.70 s [really-safe-money-gen] coverage (279/1610): Money\.AccountOfSpec.USD.fromAmount.produces valid AccountOfs (1 mutations)
  2255. 189.77 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)
  2256. 189.79 s [really-safe-money-gen] coverage (282/1610): Money\.AccountOfSpec.USD.USD.rate.produces valid amounts (15 mutations)
  2257. 189.83 s [really-safe-money-gen] coverage (286/1610): Money\.AccountOfSpec.USD.INR.rate.produces valid amounts (15 mutations)
  2258. 189.85 s [really-safe-money-gen] coverage (285/1610): Money\.AccountOfSpec.USD.BTC.convert.produces valid amounts (27 mutations)
  2259. 189.91 s [really-safe-money-gen] coverage (287/1610): Money\.AccountOfSpec.USD.INR.convert.produces valid amounts (27 mutations)
  2260. 189.98 s [really-safe-money-gen] coverage (284/1610): Money\.AccountOfSpec.USD.BTC.rate.produces valid amounts (15 mutations)
  2261. 190.21 s [really-safe-money-gen] coverage (288/1610): Money\.AccountOfSpec.USD.ADA.rate.produces valid amounts (15 mutations)
  2262. 190.41 s [really-safe-money-gen] coverage (289/1610): Money\.AccountOfSpec.USD.ADA.convert.produces valid amounts (27 mutations)
  2263. 190.53 s [really-safe-money-gen] coverage (290/1610): Money\.AccountOfSpec.USD.CHF.convert.produces valid amounts (27 mutations)
  2264. 190.67 s [really-safe-money-gen] coverage (291/1610): Money\.AccountOfSpec.USD.CHF.rate.produces valid amounts (15 mutations)
  2265. 191.28 s [really-safe-money-gen] coverage (292/1610): Money\.AccountOfSpec.USD.abs.produces valid amounts (1 mutations)
  2266. 191.43 s [really-safe-money-gen] coverage (293/1610): Money\.AccountOfSpec.USD.fraction.produces valid amounts (39 mutations)
  2267. 192.01 s [really-safe-money-gen] coverage (294/1610): Money\.AccountOfSpec.USD.fraction.Produces a result that can be multiplied back (38 mutations)
  2268. 196.96 s [really-safe-money-gen] coverage (295/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2269. 197.31 s [really-safe-money-gen] coverage (296/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2270. 197.40 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)
  2271. 197.45 s [really-safe-money-gen] coverage (299/1610): Money\.AccountOfSpec.USD.fromDouble.roundtrips with toDouble (40 mutations)
  2272. 197.55 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)
  2273. 197.72 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)
  2274. 197.93 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)
  2275. 198.13 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)
  2276. 198.23 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)
  2277. 198.27 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)
  2278. 198.57 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)
  2279. 198.57 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)
  2280. 198.57 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)
  2281. 198.58 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)
  2282. 198.59 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)
  2283. 198.60 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)
  2284. 198.65 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)
  2285. 198.69 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)
  2286. 198.76 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)
  2287. 199.12 s [really-safe-money-gen] coverage (316/1610): Money\.AccountOfSpec.USD.distribute.produces results that sum up to the greater whole (64 mutations)
  2288. 199.29 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)
  2289. 199.44 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)
  2290. 199.62 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)
  2291. 200.26 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)
  2292. 200.28 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)
  2293. 200.84 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)
  2294. 206.21 s [really-safe-money-gen] coverage (325/1610): Money\.AccountOfSpec.USD.format.produces valid strings (6 mutations)
  2295. 206.58 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)
  2296. 206.75 s [really-safe-money-gen] coverage (324/1610): Money\.AccountOfSpec.USD.distribute.produces valid amounts (34 mutations)
  2297. 206.81 s [really-safe-money-gen] coverage (326/1610): Money\.AccountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2298. 206.99 s [really-safe-money-gen] coverage (327/1610): Money\.AccountOfSpec.USD.fromRational.produces valid rational (27 mutations)
  2299. 207.06 s [really-safe-money-gen] coverage (328/1610): Money\.AccountOfSpec.USD.fromRational.roundtrips with toRational (31 mutations)
  2300. 207.09 s [really-safe-money-gen] coverage (329/1610): Money\.AccountOfSpec.USD.multiply.is absorbed by 0 (20 mutations)
  2301. 207.39 s [really-safe-money-gen] coverage (330/1610): Money\.AccountOfSpec.USD.multiply.has an identity\: 1 (20 mutations)
  2302. 207.56 s [really-safe-money-gen] coverage (333/1610): Money\.AccountOfSpec.USD.multiply.is distributive with add when both succeed (44 mutations)
  2303. 207.64 s [really-safe-money-gen] coverage (332/1610): Money\.AccountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2304. 208.00 s [really-safe-money-gen] coverage (275/1610): Money\.AccountOfSpec.USD.add.has a left-identity\: zero (28 mutations)
  2305. 208.00 s [really-safe-money-gen] coverage (344/1610): Money\.AccountOfSpec.INR.add.has a right-identity\: zero (28 mutations)
  2306. 208.04 s [really-safe-money-gen] coverage (334/1610): Money\.AccountOfSpec.USD.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2307. 208.05 s [really-safe-money-gen] coverage (342/1610): Money\.AccountOfSpec.INR.add.has a left-identity\: zero (28 mutations)
  2308. 208.06 s [really-safe-money-gen] coverage (343/1610): Money\.AccountOfSpec.INR.add.is commutative (27 mutations)
  2309. 208.06 s [really-safe-money-gen] coverage (340/1610): Money\.AccountOfSpec.INR.add.produces valid amounts (27 mutations)
  2310. 208.11 s [really-safe-money-gen] coverage (341/1610): Money\.AccountOfSpec.INR.add.is associative when both succeed (27 mutations)
  2311. 208.12 s [really-safe-money-gen] coverage (347/1610): Money\.AccountOfSpec.INR.fraction.produces valid amounts (39 mutations)
  2312. 208.24 s [really-safe-money-gen] coverage (345/1610): Money\.AccountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2313. 208.52 s [really-safe-money-gen] coverage (348/1610): Money\.AccountOfSpec.INR.fraction.Produces a result that can be multiplied back (38 mutations)
  2314. 208.67 s [really-safe-money-gen] coverage (346/1610): Money\.AccountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2315. 209.02 s [really-safe-money-gen] coverage (349/1610): Money\.AccountOfSpec.INR.distribute.produces results that sum up to the greater whole (64 mutations)
  2316. 209.03 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)
  2317. 209.81 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)
  2318. 209.99 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)
  2319. 210.43 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)
  2320. 216.42 s [really-safe-money-gen] coverage (184/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.produces valid decimal literals (56 mutations)
  2321. 216.55 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)
  2322. 216.66 s [really-safe-money-gen] coverage (183/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.roundtrips with Account\.fromDecimalLiteral (87 mutations)
  2323. 216.77 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)
  2324. 217.07 s [really-safe-money-gen] coverage (357/1610): Money\.AccountOfSpec.INR.distribute.produces valid amounts (34 mutations)
  2325. 217.13 s [really-safe-money-gen] coverage (358/1610): Money\.AccountOfSpec.INR.fromAmountOf.produces valid AccountOfs (1 mutations)
  2326. 217.37 s [really-safe-money-gen] coverage (360/1610): Money\.AccountOfSpec.INR.sum.produces valid amounts (28 mutations)
  2327. 217.57 s [really-safe-money-gen] coverage (359/1610): Money\.AccountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2328. 217.58 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)
  2329. 217.95 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)
  2330. 218.04 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)
  2331. 218.17 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)
  2332. 218.44 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)
  2333. 218.48 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)
  2334. 218.49 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)
  2335. 218.62 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)
  2336. 218.62 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)
  2337. 218.62 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)
  2338. 218.65 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)
  2339. 218.75 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)
  2340. 218.94 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)
  2341. 219.06 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)
  2342. 219.19 s [really-safe-money-gen] coverage (377/1610): Money\.AccountOfSpec.INR.CHF.rate.produces valid amounts (15 mutations)
  2343. 219.72 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)
  2344. 219.72 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)
  2345. 220.42 s [really-safe-money-gen] coverage (339/1610): Money\.AccountOfSpec.INR.abs.produces valid amounts (1 mutations)
  2346. 220.62 s [really-safe-money-gen] coverage (260/1610): Money\.MultiAmountSpec.lookupAmount.produces valid amounts (2 mutations)
  2347. 220.81 s [really-safe-money-gen] coverage (336/1610): Money\.AccountOfSpec.INR.USD.convert.produces valid amounts (27 mutations)
  2348. 226.90 s [really-safe-money-gen] coverage (378/1610): Money\.AccountOfSpec.INR.CHF.convert.produces valid amounts (27 mutations)
  2349. 226.94 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)
  2350. 227.23 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)
  2351. 227.40 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)
  2352. 227.44 s [really-safe-money-gen] coverage (380/1610): Money\.AccountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2353. 227.65 s [really-safe-money-gen] coverage (298/1610): Money\.AccountOfSpec.USD.fromDouble.produces valid rational (38 mutations)
  2354. 227.66 s [really-safe-money-gen] coverage (383/1610): Money\.AccountOfSpec.INR.multiply.has an identity\: 1 (20 mutations)
  2355. 227.79 s [really-safe-money-gen] coverage (254/1610): Money\.MultiAmountSpec.add.is commutative (16 mutations)
  2356. 227.84 s [really-safe-money-gen] coverage (255/1610): Money\.MultiAmountSpec.addAmount.produces valid amounts (24 mutations)
  2357. 228.03 s [really-safe-money-gen] coverage (386/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2358. 228.17 s [really-safe-money-gen] coverage (388/1610): Money\.AccountOfSpec.INR.fromRational.produces valid rational (27 mutations)
  2359. 228.33 s [really-safe-money-gen] coverage (390/1610): Money\.AccountOfSpec.INR.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2360. 228.33 s [really-safe-money-gen] coverage (389/1610): Money\.AccountOfSpec.INR.fromRational.roundtrips with toRational (31 mutations)
  2361. 228.40 s [really-safe-money-gen] coverage (387/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2362. 228.53 s [really-safe-money-gen] coverage (384/1610): Money\.AccountOfSpec.INR.negate.produces valid amounts (1 mutations)
  2363. 228.69 s [really-safe-money-gen] coverage (393/1610): Money\.AccountOfSpec.INR.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2364. 228.85 s [really-safe-money-gen] coverage (392/1610): Money\.AccountOfSpec.INR.BTC.convert.produces valid amounts (27 mutations)
  2365. 228.93 s [really-safe-money-gen] coverage (391/1610): Money\.AccountOfSpec.INR.BTC.rate.produces valid amounts (15 mutations)
  2366. 228.96 s [really-safe-money-gen] coverage (394/1610): Money\.AccountOfSpec.INR.fromDouble.roundtrips with toDouble (40 mutations)
  2367. 228.96 s [really-safe-money-gen] coverage (395/1610): Money\.AccountOfSpec.INR.fromDouble.produces valid rational (38 mutations)
  2368. 228.98 s [really-safe-money-gen] coverage (396/1610): Money\.AccountOfSpec.INR.ADA.convert.produces valid amounts (27 mutations)
  2369. 228.99 s [really-safe-money-gen] coverage (382/1610): Money\.AccountOfSpec.INR.multiply.produces valid amounts (20 mutations)
  2370. 229.29 s [really-safe-money-gen] coverage (397/1610): Money\.AccountOfSpec.INR.ADA.rate.produces valid amounts (15 mutations)
  2371. 229.84 s [really-safe-money-gen] coverage (398/1610): Money\.AccountOfSpec.INR.format.produces valid strings (6 mutations)
  2372. 229.90 s [really-safe-money-gen] coverage (399/1610): Money\.AccountOfSpec.INR.toMinimalQuantisations.produces valid accounts (3 mutations)
  2373. 230.53 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)
  2374. 231.13 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)
  2375. 231.17 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)
  2376. 237.37 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)
  2377. 237.60 s [really-safe-money-gen] coverage (331/1610): Money\.AccountOfSpec.USD.multiply.produces valid amounts (20 mutations)
  2378. 237.86 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)
  2379. 238.07 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)
  2380. 238.13 s [really-safe-money-gen] coverage (379/1610): Money\.AccountOfSpec.INR.multiply.is distributive with add when both succeed (44 mutations)
  2381. 238.29 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)
  2382. 238.43 s [really-safe-money-gen] coverage (381/1610): Money\.AccountOfSpec.INR.multiply.is absorbed by 0 (20 mutations)
  2383. 238.65 s [really-safe-money-gen] coverage (407/1610): Money\.AccountOfSpec.INR.INR.rate.produces valid amounts (15 mutations)
  2384. 238.69 s [really-safe-money-gen] coverage (406/1610): Money\.AccountOfSpec.INR.INR.convert.produces valid amounts (27 mutations)
  2385. 238.86 s [really-safe-money-gen] coverage (408/1610): Money\.AccountOfSpec.CHF.fromAmount.produces valid AccountOfs (1 mutations)
  2386. 238.93 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)
  2387. 239.11 s [really-safe-money-gen] coverage (411/1610): Money\.AccountOfSpec.CHF.multiply.produces valid amounts (20 mutations)
  2388. 239.13 s [really-safe-money-gen] coverage (410/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2389. 239.13 s [really-safe-money-gen] coverage (412/1610): Money\.AccountOfSpec.CHF.multiply.is absorbed by 0 (20 mutations)
  2390. 239.47 s [really-safe-money-gen] coverage (409/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2391. 239.48 s [really-safe-money-gen] coverage (415/1610): Money\.AccountOfSpec.CHF.multiply.has an identity\: 1 (20 mutations)
  2392. 239.61 s [really-safe-money-gen] coverage (417/1610): Money\.AccountOfSpec.CHF.distribute.produces results that sum up to the greater whole (64 mutations)
  2393. 239.82 s [really-safe-money-gen] coverage (335/1610): Money\.AccountOfSpec.INR.fromAmount.produces valid AccountOfs (1 mutations)
  2394. 239.88 s [really-safe-money-gen] coverage (413/1610): Money\.AccountOfSpec.CHF.multiply.is distributive with add when both succeed (44 mutations)
  2395. 239.92 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)
  2396. 239.99 s [really-safe-money-gen] coverage (414/1610): Money\.AccountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2397. 240.13 s [really-safe-money-gen] coverage (337/1610): Money\.AccountOfSpec.INR.USD.rate.produces valid amounts (15 mutations)
  2398. 240.30 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)
  2399. 240.81 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)
  2400. 240.81 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)
  2401. 241.47 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)
  2402. 241.78 s [really-safe-money-gen] coverage (416/1610): Money\.AccountOfSpec.CHF.distribute.produces valid amounts (34 mutations)
  2403. 241.90 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)
  2404. 247.23 s [really-safe-money-gen] coverage (430/1610): Money\.AccountOfSpec.CHF.USD.convert.produces valid amounts (27 mutations)
  2405. 247.35 s [really-safe-money-gen] coverage (426/1610): Money\.AccountOfSpec.CHF.sum.produces valid amounts (28 mutations)
  2406. 247.71 s [really-safe-money-gen] coverage (429/1610): Money\.AccountOfSpec.CHF.USD.rate.produces valid amounts (15 mutations)
  2407. 247.91 s [really-safe-money-gen] coverage (425/1610): Money\.AccountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2408. 247.92 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)
  2409. 248.06 s [really-safe-money-gen] coverage (428/1610): Money\.AccountOfSpec.CHF.abs.produces valid amounts (1 mutations)
  2410. 248.28 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)
  2411. 248.33 s [really-safe-money-gen] coverage (433/1610): Money\.AccountOfSpec.CHF.toMinimalQuantisations.produces valid accounts (3 mutations)
  2412. 248.44 s [really-safe-money-gen] coverage (431/1610): Money\.AccountOfSpec.CHF.BTC.convert.produces valid amounts (27 mutations)
  2413. 248.65 s [really-safe-money-gen] coverage (434/1610): Money\.AccountOfSpec.CHF.fraction.Produces a result that can be multiplied back (38 mutations)
  2414. 248.88 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)
  2415. 248.92 s [really-safe-money-gen] coverage (432/1610): Money\.AccountOfSpec.CHF.BTC.rate.produces valid amounts (15 mutations)
  2416. 248.92 s [really-safe-money-gen] coverage (435/1610): Money\.AccountOfSpec.CHF.fraction.produces valid amounts (39 mutations)
  2417. 248.97 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)
  2418. 249.05 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)
  2419. 249.10 s [really-safe-money-gen] coverage (442/1610): Money\.AccountOfSpec.CHF.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2420. 249.27 s [really-safe-money-gen] coverage (451/1610): Money\.AccountOfSpec.CHF.ADA.convert.produces valid amounts (27 mutations)
  2421. 249.61 s [really-safe-money-gen] coverage (452/1610): Money\.AccountOfSpec.CHF.ADA.rate.produces valid amounts (15 mutations)
  2422. 249.62 s [really-safe-money-gen] coverage (444/1610): Money\.AccountOfSpec.CHF.negate.produces valid amounts (1 mutations)
  2423. 249.63 s [really-safe-money-gen] coverage (449/1610): Money\.AccountOfSpec.CHF.fromDouble.produces valid rational (38 mutations)
  2424. 249.71 s [really-safe-money-gen] coverage (445/1610): Money\.AccountOfSpec.CHF.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2425. 249.73 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)
  2426. 249.87 s [really-safe-money-gen] coverage (450/1610): Money\.AccountOfSpec.CHF.fromDouble.roundtrips with toDouble (40 mutations)
  2427. 250.41 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)
  2428. 250.42 s [really-safe-money-gen] coverage (448/1610): Money\.AccountOfSpec.CHF.fromRational.roundtrips with toRational (31 mutations)
  2429. 251.16 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)
  2430. 251.59 s [really-safe-money-gen] coverage (447/1610): Money\.AccountOfSpec.CHF.fromRational.produces valid rational (27 mutations)
  2431. 251.60 s [really-safe-money-gen] coverage (443/1610): Money\.AccountOfSpec.CHF.fromAmountOf.produces valid AccountOfs (1 mutations)
  2432. 256.81 s [really-safe-money-gen] coverage (446/1610): Money\.AccountOfSpec.CHF.format.produces valid strings (6 mutations)
  2433. 256.95 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)
  2434. 257.30 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)
  2435. 257.39 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)
  2436. 257.41 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)
  2437. 257.49 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)
  2438. 257.84 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)
  2439. 257.91 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)
  2440. 257.95 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)
  2441. 258.23 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)
  2442. 258.40 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)
  2443. 258.41 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)
  2444. 258.53 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)
  2445. 258.58 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)
  2446. 258.58 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)
  2447. 258.71 s [really-safe-money-gen] coverage (471/1610): Money\.AccountOfSpec.CHF.CHF.rate.produces valid amounts (15 mutations)
  2448. 258.77 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)
  2449. 259.11 s [really-safe-money-gen] coverage (476/1610): Money\.AccountOfSpec.CHF.add.has a right-identity\: zero (28 mutations)
  2450. 259.20 s [really-safe-money-gen] coverage (474/1610): Money\.AccountOfSpec.CHF.add.has a left-identity\: zero (28 mutations)
  2451. 259.25 s [really-safe-money-gen] coverage (475/1610): Money\.AccountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2452. 259.31 s [really-safe-money-gen] coverage (478/1610): Money\.AccountOfSpec.CHF.add.produces valid amounts (27 mutations)
  2453. 259.32 s [really-safe-money-gen] coverage (473/1610): Money\.AccountOfSpec.CHF.add.is associative when both succeed (27 mutations)
  2454. 259.40 s [really-safe-money-gen] coverage (470/1610): Money\.AccountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2455. 259.99 s [really-safe-money-gen] coverage (472/1610): Money\.AccountOfSpec.CHF.CHF.convert.produces valid amounts (27 mutations)
  2456. 260.08 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)
  2457. 261.01 s [really-safe-money-gen] coverage (480/1610): Money\.AccountOfSpec.CHF.INR.rate.produces valid amounts (15 mutations)
  2458. 261.03 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)
  2459. 261.11 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)
  2460. 266.32 s [really-safe-money-gen] coverage (477/1610): Money\.AccountOfSpec.CHF.add.is commutative (27 mutations)
  2461. 266.55 s [really-safe-money-gen] coverage (482/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2462. 266.85 s [really-safe-money-gen] coverage (483/1610): Money\.AccountOfSpec.ADA.fromDouble.produces valid rational (38 mutations)
  2463. 266.95 s [really-safe-money-gen] coverage (485/1610): Money\.AccountOfSpec.ADA.fromRational.produces valid rational (27 mutations)
  2464. 267.06 s [really-safe-money-gen] coverage (484/1610): Money\.AccountOfSpec.ADA.fromDouble.roundtrips with toDouble (40 mutations)
  2465. 267.07 s [really-safe-money-gen] coverage (486/1610): Money\.AccountOfSpec.ADA.fromRational.roundtrips with toRational (31 mutations)
  2466. 267.36 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)
  2467. 267.52 s [really-safe-money-gen] coverage (481/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2468. 267.53 s [really-safe-money-gen] coverage (488/1610): Money\.AccountOfSpec.ADA.fraction.Produces a result that can be multiplied back (38 mutations)
  2469. 267.64 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)
  2470. 267.94 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)
  2471. 267.96 s [really-safe-money-gen] coverage (489/1610): Money\.AccountOfSpec.ADA.fraction.produces valid amounts (39 mutations)
  2472. 268.08 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)
  2473. 268.14 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)
  2474. 268.15 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)
  2475. 268.52 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)
  2476. 268.56 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)
  2477. 268.61 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)
  2478. 268.69 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)
  2479. 268.89 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)
  2480. 268.98 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)
  2481. 268.98 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)
  2482. 269.08 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)
  2483. 269.62 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. 269.66 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)
  2485. 270.50 s [really-safe-money-gen] coverage (507/1610): Money\.AccountOfSpec.ADA.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2486. 270.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. 270.63 s [really-safe-money-gen] coverage (506/1610): Money\.AccountOfSpec.ADA.fromAmountOf.produces valid AccountOfs (1 mutations)
  2488. 275.82 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. 276.30 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)
  2490. 276.46 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)
  2491. 276.58 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)
  2492. 276.59 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)
  2493. 276.61 s [really-safe-money-gen] coverage (479/1610): Money\.AccountOfSpec.CHF.INR.convert.produces valid amounts (27 mutations)
  2494. 277.13 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)
  2495. 277.14 s [really-safe-money-gen] coverage (524/1610): Money\.AccountOfSpec.ADA.abs.produces valid amounts (1 mutations)
  2496. 277.17 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)
  2497. 277.45 s [really-safe-money-gen] coverage (526/1610): Money\.AccountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2498. 277.50 s [really-safe-money-gen] coverage (527/1610): Money\.AccountOfSpec.ADA.negate.produces valid amounts (1 mutations)
  2499. 277.52 s [really-safe-money-gen] coverage (525/1610): Money\.AccountOfSpec.ADA.format.produces valid strings (6 mutations)
  2500. 277.65 s [really-safe-money-gen] coverage (515/1610): Money\.AccountOfSpec.ADA.distribute.produces valid amounts (34 mutations)
  2501. 277.88 s [really-safe-money-gen] coverage (516/1610): Money\.AccountOfSpec.ADA.distribute.produces results that sum up to the greater whole (64 mutations)
  2502. 277.99 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)
  2503. 278.07 s [really-safe-money-gen] coverage (517/1610): Money\.AccountOfSpec.ADA.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2504. 278.08 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)
  2505. 278.29 s [really-safe-money-gen] coverage (535/1610): Money\.AccountOfSpec.ADA.toMinimalQuantisations.produces valid accounts (3 mutations)
  2506. 278.46 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)
  2507. 278.50 s [really-safe-money-gen] coverage (543/1610): Money\.AccountOfSpec.ADA.add.has a right-identity\: zero (28 mutations)
  2508. 278.52 s [really-safe-money-gen] coverage (540/1610): Money\.AccountOfSpec.ADA.add.is commutative (27 mutations)
  2509. 278.58 s [really-safe-money-gen] coverage (534/1610): Money\.AccountOfSpec.ADA.sum.produces valid amounts (28 mutations)
  2510. 278.93 s [really-safe-money-gen] coverage (529/1610): Money\.AccountOfSpec.ADA.CHF.convert.produces valid amounts (27 mutations)
  2511. 278.95 s [really-safe-money-gen] coverage (528/1610): Money\.AccountOfSpec.ADA.CHF.rate.produces valid amounts (15 mutations)
  2512. 279.39 s [really-safe-money-gen] coverage (531/1610): Money\.AccountOfSpec.ADA.INR.convert.produces valid amounts (27 mutations)
  2513. 280.08 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)
  2514. 280.11 s [really-safe-money-gen] coverage (541/1610): Money\.AccountOfSpec.ADA.add.is associative when both succeed (27 mutations)
  2515. 280.21 s [really-safe-money-gen] coverage (550/1610): Money\.AccountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2516. 285.15 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)
  2517. 285.66 s [really-safe-money-gen] coverage (551/1610): Money\.AccountOfSpec.ADA.multiply.is absorbed by 0 (20 mutations)
  2518. 285.77 s [really-safe-money-gen] coverage (538/1610): Money\.AccountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2519. 285.94 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)
  2520. 285.98 s [really-safe-money-gen] coverage (553/1610): Money\.AccountOfSpec.ADA.USD.rate.produces valid amounts (15 mutations)
  2521. 286.02 s [really-safe-money-gen] coverage (552/1610): Money\.AccountOfSpec.ADA.USD.convert.produces valid amounts (27 mutations)
  2522. 286.41 s [really-safe-money-gen] coverage (536/1610): Money\.AccountOfSpec.ADA.ADA.convert.produces valid amounts (27 mutations)
  2523. 286.48 s [really-safe-money-gen] coverage (539/1610): Money\.AccountOfSpec.ADA.add.produces valid amounts (27 mutations)
  2524. 286.53 s [really-safe-money-gen] coverage (537/1610): Money\.AccountOfSpec.ADA.ADA.rate.produces valid amounts (15 mutations)
  2525. 286.76 s [really-safe-money-gen] coverage (532/1610): Money\.AccountOfSpec.ADA.fromAmount.produces valid AccountOfs (1 mutations)
  2526. 286.86 s [really-safe-money-gen] coverage (530/1610): Money\.AccountOfSpec.ADA.INR.rate.produces valid amounts (15 mutations)
  2527. 286.91 s [really-safe-money-gen] coverage (554/1610): Money\.AccountOfSpec.BTC.add.is commutative (27 mutations)
  2528. 287.04 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)
  2529. 287.18 s [really-safe-money-gen] coverage (556/1610): Money\.AccountOfSpec.BTC.add.has a left-identity\: zero (28 mutations)
  2530. 287.31 s [really-safe-money-gen] coverage (546/1610): Money\.AccountOfSpec.ADA.BTC.rate.produces valid amounts (15 mutations)
  2531. 287.38 s [really-safe-money-gen] coverage (545/1610): Money\.AccountOfSpec.ADA.BTC.convert.produces valid amounts (27 mutations)
  2532. 287.43 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)
  2533. 287.66 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)
  2534. 287.70 s [really-safe-money-gen] coverage (549/1610): Money\.AccountOfSpec.ADA.multiply.has an identity\: 1 (20 mutations)
  2535. 287.85 s [really-safe-money-gen] coverage (542/1610): Money\.AccountOfSpec.ADA.add.has a left-identity\: zero (28 mutations)
  2536. 287.86 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)
  2537. 287.87 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)
  2538. 288.21 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)
  2539. 288.21 s [really-safe-money-gen] coverage (548/1610): Money\.AccountOfSpec.ADA.multiply.is distributive with add when both succeed (44 mutations)
  2540. 288.68 s [really-safe-money-gen] coverage (547/1610): Money\.AccountOfSpec.ADA.multiply.produces valid amounts (20 mutations)
  2541. 289.20 s [really-safe-money-gen] coverage (579/1610): Money\.AccountOfSpec.BTC.distribute.produces results that sum up to the greater whole (64 mutations)
  2542. 289.25 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)
  2543. 289.41 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)
  2544. 294.12 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)
  2545. 294.49 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)
  2546. 294.56 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)
  2547. 294.78 s [really-safe-money-gen] coverage (587/1610): Money\.AccountOfSpec.BTC.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2548. 294.81 s [really-safe-money-gen] coverage (589/1610): Money\.AccountOfSpec.BTC.fromAmountOf.produces valid AccountOfs (1 mutations)
  2549. 294.88 s [really-safe-money-gen] coverage (588/1610): Money\.AccountOfSpec.BTC.negate.produces valid amounts (1 mutations)
  2550. 295.23 s [really-safe-money-gen] coverage (590/1610): Money\.AccountOfSpec.BTC.multiply.produces valid amounts (20 mutations)
  2551. 295.27 s [really-safe-money-gen] coverage (592/1610): Money\.AccountOfSpec.BTC.multiply.is absorbed by 0 (20 mutations)
  2552. 295.34 s [really-safe-money-gen] coverage (591/1610): Money\.AccountOfSpec.BTC.multiply.is distributive with add when both succeed (44 mutations)
  2553. 295.54 s [really-safe-money-gen] coverage (593/1610): Money\.AccountOfSpec.BTC.multiply.has an identity\: 1 (20 mutations)
  2554. 295.65 s [really-safe-money-gen] coverage (595/1610): Money\.AccountOfSpec.BTC.sum.produces valid amounts (28 mutations)
  2555. 295.82 s [really-safe-money-gen] coverage (594/1610): Money\.AccountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2556. 295.88 s [really-safe-money-gen] coverage (596/1610): Money\.AccountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2557. 296.04 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)
  2558. 296.14 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)
  2559. 296.16 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)
  2560. 296.17 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)
  2561. 296.43 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)
  2562. 296.47 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)
  2563. 296.57 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)
  2564. 296.62 s [really-safe-money-gen] coverage (603/1610): Money\.AccountOfSpec.BTC.format.produces valid strings (6 mutations)
  2565. 296.70 s [really-safe-money-gen] coverage (605/1610): Money\.AccountOfSpec.BTC.USD.rate.produces valid amounts (15 mutations)
  2566. 297.04 s [really-safe-money-gen] coverage (604/1610): Money\.AccountOfSpec.BTC.USD.convert.produces valid amounts (27 mutations)
  2567. 297.10 s [really-safe-money-gen] coverage (557/1610): Money\.AccountOfSpec.BTC.add.has a right-identity\: zero (28 mutations)
  2568. 297.54 s [really-safe-money-gen] coverage (606/1610): Money\.AccountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2569. 297.95 s [really-safe-money-gen] coverage (608/1610): Money\.AccountOfSpec.BTC.ADA.rate.produces valid amounts (15 mutations)
  2570. 298.03 s [really-safe-money-gen] coverage (607/1610): Money\.AccountOfSpec.BTC.ADA.convert.produces valid amounts (27 mutations)
  2571. 298.29 s [really-safe-money-gen] coverage (610/1610): Money\.AccountOfSpec.BTC.fromRational.roundtrips with toRational (31 mutations)
  2572. 303.57 s [really-safe-money-gen] coverage (533/1610): Money\.AccountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2573. 303.87 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)
  2574. 304.15 s [really-safe-money-gen] coverage (614/1610): Money\.AccountOfSpec.BTC.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2575. 304.28 s [really-safe-money-gen] coverage (615/1610): Money\.AccountOfSpec.BTC.INR.rate.produces valid amounts (15 mutations)
  2576. 304.37 s [really-safe-money-gen] coverage (616/1610): Money\.AccountOfSpec.BTC.INR.convert.produces valid amounts (27 mutations)
  2577. 304.43 s [really-safe-money-gen] coverage (617/1610): Money\.AccountOfSpec.BTC.fromDouble.roundtrips with toDouble (40 mutations)
  2578. 304.81 s [really-safe-money-gen] coverage (619/1610): Money\.AccountOfSpec.BTC.fraction.produces valid amounts (39 mutations)
  2579. 304.81 s [really-safe-money-gen] coverage (618/1610): Money\.AccountOfSpec.BTC.fromDouble.produces valid rational (38 mutations)
  2580. 304.89 s [really-safe-money-gen] coverage (620/1610): Money\.AccountOfSpec.BTC.fraction.Produces a result that can be multiplied back (38 mutations)
  2581. 305.19 s [really-safe-money-gen] coverage (621/1610): Money\.AccountOfSpec.BTC.CHF.rate.produces valid amounts (15 mutations)
  2582. 305.19 s [really-safe-money-gen] coverage (622/1610): Money\.AccountOfSpec.BTC.CHF.convert.produces valid amounts (27 mutations)
  2583. 305.36 s [really-safe-money-gen] coverage (623/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2584. 305.39 s [really-safe-money-gen] coverage (624/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2585. 305.62 s [really-safe-money-gen] coverage (625/1610): Money\.AccountOfSpec.BTC.fromAmount.produces valid AccountOfs (1 mutations)
  2586. 305.72 s [really-safe-money-gen] coverage (628/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2587. 305.83 s [really-safe-money-gen] coverage (627/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2588. 305.84 s [really-safe-money-gen] coverage (626/1610): Money\.AccountOfSpec.BTC.abs.produces valid amounts (1 mutations)
  2589. 306.12 s [really-safe-money-gen] coverage (558/1610): Money\.AccountOfSpec.BTC.add.is associative when both succeed (27 mutations)
  2590. 306.14 s [really-safe-money-gen] coverage (629/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2591. 306.24 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)
  2592. 306.25 s [really-safe-money-gen] coverage (632/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2593. 306.33 s [really-safe-money-gen] coverage (631/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2594. 306.71 s [really-safe-money-gen] coverage (633/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2595. 306.90 s [really-safe-money-gen] coverage (634/1610): Money\.ConversionRateOfSpec.INR.ADA.compose.produces valid rates (8 mutations)
  2596. 307.05 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)
  2597. 307.60 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)
  2598. 307.73 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)
  2599. 307.98 s [really-safe-money-gen] coverage (635/1610): Money\.ConversionRateOfSpec.INR.ADA.invert.produces valid rates (8 mutations)
  2600. 313.03 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)
  2601. 313.25 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)
  2602. 313.49 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)
  2603. 313.65 s [really-safe-money-gen] coverage (637/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2604. 313.88 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)
  2605. 314.11 s [really-safe-money-gen] coverage (578/1610): Money\.AccountOfSpec.BTC.distribute.produces valid amounts (34 mutations)
  2606. 314.26 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)
  2607. 314.49 s [really-safe-money-gen] coverage (636/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2608. 314.56 s [really-safe-money-gen] coverage (576/1610): Money\.AccountOfSpec.BTC.BTC.convert.produces valid amounts (27 mutations)
  2609. 314.72 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)
  2610. 314.90 s [really-safe-money-gen] coverage (639/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2611. 314.98 s [really-safe-money-gen] coverage (638/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2612. 315.19 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)
  2613. 315.46 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)
  2614. 315.46 s [really-safe-money-gen] coverage (577/1610): Money\.AccountOfSpec.BTC.BTC.rate.produces valid amounts (15 mutations)
  2615. 315.48 s [really-safe-money-gen] coverage (612/1610): Money\.AccountOfSpec.BTC.toMinimalQuantisations.produces valid accounts (3 mutations)
  2616. 315.51 s [really-safe-money-gen] coverage (640/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2617. 315.77 s [really-safe-money-gen] coverage (609/1610): Money\.AccountOfSpec.BTC.fromRational.produces valid rational (27 mutations)
  2618. 316.01 s [really-safe-money-gen] coverage (555/1610): Money\.AccountOfSpec.BTC.add.produces valid amounts (27 mutations)
  2619. 316.01 s [really-safe-money-gen] coverage (643/1610): Money\.ConversionRateOfSpec.INR.BTC.compose.produces valid rates (8 mutations)
  2620. 316.18 s [really-safe-money-gen] coverage (642/1610): Money\.ConversionRateOfSpec.INR.BTC.invert.produces valid rates (8 mutations)
  2621. 316.37 s [really-safe-money-gen] coverage (641/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2622. 316.49 s [really-safe-money-gen] coverage (644/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2623. 316.98 s [really-safe-money-gen] coverage (645/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2624. 317.78 s [really-safe-money-gen] coverage (648/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2625. 318.06 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)
  2626. 318.14 s [really-safe-money-gen] coverage (649/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2627. 318.21 s [really-safe-money-gen] coverage (646/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2628. 324.01 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)
  2629. 324.64 s [really-safe-money-gen] coverage (651/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2630. 325.69 s [really-safe-money-gen] coverage (654/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2631. 325.76 s [really-safe-money-gen] coverage (652/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2632. 325.78 s [really-safe-money-gen] coverage (653/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2633. 325.91 s [really-safe-money-gen] coverage (655/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2634. 326.06 s [really-safe-money-gen] coverage (656/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2635. 326.13 s [really-safe-money-gen] coverage (658/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2636. 326.15 s [really-safe-money-gen] coverage (657/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2637. 326.38 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)
  2638. 326.47 s [really-safe-money-gen] coverage (659/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2639. 326.59 s [really-safe-money-gen] coverage (680/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2640. 326.59 s [really-safe-money-gen] coverage (647/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2641. 326.95 s [really-safe-money-gen] coverage (559/1610): Money\.AccountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2642. 326.96 s [really-safe-money-gen] coverage (682/1610): Money\.ConversionRateOfSpec.INR.INR.compose.produces valid rates (8 mutations)
  2643. 326.98 s [really-safe-money-gen] coverage (685/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2644. 327.04 s [really-safe-money-gen] coverage (684/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2645. 327.10 s [really-safe-money-gen] coverage (683/1610): Money\.ConversionRateOfSpec.INR.INR.invert.produces valid rates (8 mutations)
  2646. 327.45 s [really-safe-money-gen] coverage (681/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2647. 327.58 s [really-safe-money-gen] coverage (689/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2648. 327.70 s [really-safe-money-gen] coverage (687/1610): Money\.ConversionRateOfSpec.ADA.USD.compose.produces valid rates (8 mutations)
  2649. 327.70 s [really-safe-money-gen] coverage (688/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2650. 328.49 s [really-safe-money-gen] coverage (696/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2651. 328.86 s [really-safe-money-gen] coverage (693/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2652. 329.01 s [really-safe-money-gen] coverage (697/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2653. 329.28 s [really-safe-money-gen] coverage (698/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2654. 329.29 s [really-safe-money-gen] coverage (677/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2655. 329.74 s [really-safe-money-gen] coverage (699/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2656. 334.10 s [really-safe-money-gen] coverage (700/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2657. 335.45 s [really-safe-money-gen] coverage (701/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2658. 335.80 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)
  2659. 335.99 s [really-safe-money-gen] coverage (703/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2660. 336.07 s [really-safe-money-gen] coverage (702/1610): Money\.ConversionRateOfSpec.ADA.CHF.compose.produces valid rates (8 mutations)
  2661. 336.24 s [really-safe-money-gen] coverage (704/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2662. 336.29 s [really-safe-money-gen] coverage (705/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2663. 336.38 s [really-safe-money-gen] coverage (708/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2664. 336.55 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)
  2665. 336.61 s [really-safe-money-gen] coverage (712/1610): Money\.ConversionRateOfSpec.ADA.ADA.invert.produces valid rates (8 mutations)
  2666. 336.63 s [really-safe-money-gen] coverage (710/1610): Money\.ConversionRateOfSpec.ADA.CHF.invert.produces valid rates (8 mutations)
  2667. 336.85 s [really-safe-money-gen] coverage (714/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2668. 336.85 s [really-safe-money-gen] coverage (713/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2669. 337.04 s [really-safe-money-gen] coverage (715/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2670. 337.10 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)
  2671. 337.13 s [really-safe-money-gen] coverage (716/1610): Money\.ConversionRateOfSpec.ADA.ADA.compose.produces valid rates (8 mutations)
  2672. 337.15 s [really-safe-money-gen] coverage (707/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2673. 337.28 s [really-safe-money-gen] coverage (717/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2674. 337.53 s [really-safe-money-gen] coverage (721/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2675. 337.76 s [really-safe-money-gen] coverage (718/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2676. 338.04 s [really-safe-money-gen] coverage (720/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2677. 338.28 s [really-safe-money-gen] coverage (722/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2678. 338.58 s [really-safe-money-gen] coverage (719/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2679. 339.26 s [really-safe-money-gen] coverage (725/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2680. 339.34 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)
  2681. 339.54 s [really-safe-money-gen] coverage (723/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2682. 339.56 s [really-safe-money-gen] coverage (724/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2683. 339.57 s [really-safe-money-gen] coverage (727/1610): Money\.ConversionRateOfSpec.ADA.BTC.invert.produces valid rates (8 mutations)
  2684. 343.45 s [really-safe-money-gen] coverage (660/1610): Money\.ConversionRateOfSpec.INR.CHF.invert.produces valid rates (8 mutations)
  2685. 344.76 s [really-safe-money-gen] coverage (729/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2686. 345.00 s [really-safe-money-gen] coverage (730/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2687. 345.30 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)
  2688. 345.31 s [really-safe-money-gen] coverage (734/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2689. 345.65 s [really-safe-money-gen] coverage (733/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2690. 345.76 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)
  2691. 345.82 s [really-safe-money-gen] coverage (731/1610): Money\.ConversionRateOfSpec.ADA.BTC.compose.produces valid rates (8 mutations)
  2692. 346.03 s [really-safe-money-gen] coverage (737/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2693. 346.13 s [really-safe-money-gen] coverage (736/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2694. 346.16 s [really-safe-money-gen] coverage (739/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2695. 346.19 s [really-safe-money-gen] coverage (741/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2696. 346.26 s [really-safe-money-gen] coverage (740/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2697. 346.47 s [really-safe-money-gen] coverage (743/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2698. 346.58 s [really-safe-money-gen] coverage (746/1610): Money\.ConversionRateOfSpec.ADA.INR.invert.produces valid rates (8 mutations)
  2699. 346.79 s [really-safe-money-gen] coverage (745/1610): Money\.ConversionRateOfSpec.ADA.INR.compose.produces valid rates (8 mutations)
  2700. 346.93 s [really-safe-money-gen] coverage (744/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2701. 347.10 s [really-safe-money-gen] coverage (747/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2702. 347.33 s [really-safe-money-gen] coverage (748/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2703. 347.41 s [really-safe-money-gen] coverage (742/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2704. 347.50 s [really-safe-money-gen] coverage (749/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2705. 348.04 s [really-safe-money-gen] coverage (751/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2706. 348.27 s [really-safe-money-gen] coverage (750/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2707. 348.83 s [really-safe-money-gen] coverage (753/1610): Money\.ConversionRateOfSpec.CHF.BTC.compose.produces valid rates (8 mutations)
  2708. 348.99 s [really-safe-money-gen] coverage (754/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2709. 349.07 s [really-safe-money-gen] coverage (756/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2710. 349.08 s [really-safe-money-gen] coverage (755/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2711. 349.26 s [really-safe-money-gen] coverage (752/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2712. 353.03 s [really-safe-money-gen] coverage (757/1610): Money\.ConversionRateOfSpec.CHF.BTC.invert.produces valid rates (8 mutations)
  2713. 354.38 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)
  2714. 354.54 s [really-safe-money-gen] coverage (759/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2715. 354.74 s [really-safe-money-gen] coverage (762/1610): Money\.ConversionRateOfSpec.CHF.ADA.invert.produces valid rates (8 mutations)
  2716. 355.33 s [really-safe-money-gen] coverage (763/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2717. 355.36 s [really-safe-money-gen] coverage (764/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2718. 355.40 s [really-safe-money-gen] coverage (765/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2719. 355.60 s [really-safe-money-gen] coverage (761/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2720. 355.66 s [really-safe-money-gen] coverage (766/1610): Money\.ConversionRateOfSpec.CHF.ADA.compose.produces valid rates (8 mutations)
  2721. 355.81 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)
  2722. 355.87 s [really-safe-money-gen] coverage (768/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2723. 355.91 s [really-safe-money-gen] coverage (769/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2724. 356.01 s [really-safe-money-gen] coverage (770/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2725. 356.20 s [really-safe-money-gen] coverage (771/1610): Money\.ConversionRateOfSpec.CHF.USD.invert.produces valid rates (8 mutations)
  2726. 356.20 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)
  2727. 356.92 s [really-safe-money-gen] coverage (775/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2728. 357.00 s [really-safe-money-gen] coverage (694/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.toRational.produces valid rationals (0 mutations)
  2729. 357.00 s [really-safe-money-gen] coverage (776/1610): Money\.ConversionRateOfSpec.CHF.USD.compose.produces valid rates (8 mutations)
  2730. 357.19 s [really-safe-money-gen] coverage (686/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2731. 357.19 s [really-safe-money-gen] coverage (773/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2732. 357.41 s [really-safe-money-gen] coverage (774/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2733. 357.58 s [really-safe-money-gen] coverage (675/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.toRational.produces valid rationals (0 mutations)
  2734. 357.97 s [really-safe-money-gen] coverage (665/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2735. 358.50 s [really-safe-money-gen] coverage (661/1610): Money\.ConversionRateOfSpec.INR.CHF.compose.produces valid rates (8 mutations)
  2736. 358.69 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)
  2737. 358.73 s [really-safe-money-gen] coverage (692/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2738. 358.86 s [really-safe-money-gen] coverage (777/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2739. 359.04 s [really-safe-money-gen] coverage (732/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2740. 362.60 s [really-safe-money-gen] coverage (784/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2741. 363.58 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)
  2742. 363.69 s [really-safe-money-gen] coverage (787/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2743. 364.14 s [really-safe-money-gen] coverage (786/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2744. 364.31 s [really-safe-money-gen] coverage (781/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2745. 364.44 s [really-safe-money-gen] coverage (785/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2746. 364.62 s [really-safe-money-gen] coverage (780/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2747. 364.65 s [really-safe-money-gen] coverage (788/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2748. 364.73 s [really-safe-money-gen] coverage (676/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2749. 364.83 s [really-safe-money-gen] coverage (779/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.toRational.produces valid rationals (0 mutations)
  2750. 364.93 s [really-safe-money-gen] coverage (666/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2751. 365.04 s [really-safe-money-gen] coverage (667/1610): Money\.ConversionRateOfSpec.INR.USD.invert.produces valid rates (8 mutations)
  2752. 365.20 s [really-safe-money-gen] coverage (778/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2753. 365.35 s [really-safe-money-gen] coverage (793/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2754. 365.37 s [really-safe-money-gen] coverage (792/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2755. 365.90 s [really-safe-money-gen] coverage (664/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.toRational.produces valid rationals (0 mutations)
  2756. 365.97 s [really-safe-money-gen] coverage (794/1610): Money\.ConversionRateOfSpec.CHF.CHF.compose.produces valid rates (8 mutations)
  2757. 366.04 s [really-safe-money-gen] coverage (795/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2758. 366.05 s [really-safe-money-gen] coverage (738/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.toRational.produces valid rationals (0 mutations)
  2759. 366.13 s [really-safe-money-gen] coverage (668/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2760. 366.35 s [really-safe-money-gen] coverage (797/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2761. 366.66 s [really-safe-money-gen] coverage (798/1610): Money\.ConversionRateOfSpec.CHF.INR.compose.produces valid rates (8 mutations)
  2762. 367.08 s [really-safe-money-gen] coverage (799/1610): Money\.ConversionRateOfSpec.CHF.INR.invert.produces valid rates (8 mutations)
  2763. 367.50 s [really-safe-money-gen] coverage (801/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2764. 367.65 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)
  2765. 367.67 s [really-safe-money-gen] coverage (790/1610): Money\.ConversionRateOfSpec.CHF.CHF.invert.produces valid rates (8 mutations)
  2766. 368.13 s [really-safe-money-gen] coverage (800/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2767. 368.50 s [really-safe-money-gen] coverage (802/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2768. 371.63 s [really-safe-money-gen] coverage (796/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2769. 372.71 s [really-safe-money-gen] coverage (671/1610): Money\.ConversionRateOfSpec.INR.USD.compose.produces valid rates (8 mutations)
  2770. 373.07 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)
  2771. 373.20 s [really-safe-money-gen] coverage (782/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2772. 373.64 s [really-safe-money-gen] coverage (691/1610): Money\.ConversionRateOfSpec.ADA.USD.invert.produces valid rates (8 mutations)
  2773. 373.93 s [really-safe-money-gen] coverage (690/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2774. 373.96 s [really-safe-money-gen] coverage (728/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2775. 374.11 s [really-safe-money-gen] coverage (791/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2776. 374.24 s [really-safe-money-gen] coverage (760/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2777. 374.30 s [really-safe-money-gen] coverage (806/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.toRational.produces valid rationals (0 mutations)
  2778. 374.38 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)
  2779. 374.67 s [really-safe-money-gen] coverage (679/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2780. 374.71 s [really-safe-money-gen] coverage (808/1610): Money\.ConversionRateOfSpec.USD.CHF.invert.produces valid rates (8 mutations)
  2781. 374.77 s [really-safe-money-gen] coverage (805/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2782. 375.12 s [really-safe-money-gen] coverage (817/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2783. 375.32 s [really-safe-money-gen] coverage (809/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2784. 375.39 s [really-safe-money-gen] coverage (819/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2785. 375.42 s [really-safe-money-gen] coverage (818/1610): Money\.ConversionRateOfSpec.USD.CHF.compose.produces valid rates (8 mutations)
  2786. 375.57 s [really-safe-money-gen] coverage (820/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2787. 375.61 s [really-safe-money-gen] coverage (821/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2788. 375.69 s [really-safe-money-gen] coverage (804/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2789. 376.70 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)
  2790. 376.73 s [really-safe-money-gen] coverage (789/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2791. 376.80 s [really-safe-money-gen] coverage (831/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2792. 377.17 s [really-safe-money-gen] coverage (839/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2793. 377.19 s [really-safe-money-gen] coverage (838/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2794. 377.59 s [really-safe-money-gen] coverage (840/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2795. 377.80 s [really-safe-money-gen] coverage (841/1610): Money\.ConversionRateOfSpec.USD.INR.invert.produces valid rates (8 mutations)
  2796. 381.09 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)
  2797. 382.15 s [really-safe-money-gen] coverage (843/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2798. 382.46 s [really-safe-money-gen] coverage (844/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2799. 382.55 s [really-safe-money-gen] coverage (845/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2800. 382.95 s [really-safe-money-gen] coverage (846/1610): Money\.ConversionRateOfSpec.USD.BTC.compose.produces valid rates (8 mutations)
  2801. 383.22 s [really-safe-money-gen] coverage (847/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2802. 383.39 s [really-safe-money-gen] coverage (848/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2803. 383.48 s [really-safe-money-gen] coverage (849/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2804. 383.53 s [really-safe-money-gen] coverage (851/1610): Money\.ConversionRateOfSpec.USD.BTC.invert.produces valid rates (8 mutations)
  2805. 383.82 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)
  2806. 384.09 s [really-safe-money-gen] coverage (706/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2807. 384.18 s [really-safe-money-gen] coverage (854/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2808. 384.56 s [really-safe-money-gen] coverage (856/1610): Money\.ConversionRateOfSpec.USD.ADA.compose.produces valid rates (8 mutations)
  2809. 384.62 s [really-safe-money-gen] coverage (852/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2810. 384.72 s [really-safe-money-gen] coverage (853/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2811. 384.88 s [really-safe-money-gen] coverage (858/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2812. 385.05 s [really-safe-money-gen] coverage (862/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2813. 385.06 s [really-safe-money-gen] coverage (860/1610): Money\.ConversionRateOfSpec.USD.ADA.invert.produces valid rates (8 mutations)
  2814. 385.18 s [really-safe-money-gen] coverage (861/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2815. 385.19 s [really-safe-money-gen] coverage (857/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2816. 385.45 s [really-safe-money-gen] coverage (859/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2817. 386.13 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)
  2818. 386.25 s [really-safe-money-gen] coverage (863/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2819. 386.36 s [really-safe-money-gen] coverage (865/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2820. 386.38 s [really-safe-money-gen] coverage (864/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2821. 386.60 s [really-safe-money-gen] coverage (867/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2822. 387.04 s [really-safe-money-gen] coverage (866/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2823. 387.05 s [really-safe-money-gen] coverage (669/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2824. 390.51 s [really-safe-money-gen] coverage (869/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2825. 391.76 s [really-safe-money-gen] coverage (868/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2826. 392.12 s [really-safe-money-gen] coverage (873/1610): Money\.ConversionRateOfSpec.BTC.ADA.compose.produces valid rates (8 mutations)
  2827. 392.56 s [really-safe-money-gen] coverage (874/1610): Money\.ConversionRateOfSpec.BTC.ADA.invert.produces valid rates (8 mutations)
  2828. 392.57 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)
  2829. 392.68 s [really-safe-money-gen] coverage (872/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2830. 392.94 s [really-safe-money-gen] coverage (871/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2831. 392.99 s [really-safe-money-gen] coverage (878/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2832. 393.01 s [really-safe-money-gen] coverage (877/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2833. 393.36 s [really-safe-money-gen] coverage (879/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.toRational.produces valid rationals (0 mutations)
  2834. 393.60 s [really-safe-money-gen] coverage (880/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2835. 393.71 s [really-safe-money-gen] coverage (881/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2836. 394.28 s [really-safe-money-gen] coverage (885/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2837. 394.37 s [really-safe-money-gen] coverage (883/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2838. 394.65 s [really-safe-money-gen] coverage (882/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2839. 394.66 s [really-safe-money-gen] coverage (886/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2840. 394.77 s [really-safe-money-gen] coverage (889/1610): Money\.ConversionRateOfSpec.BTC.USD.invert.produces valid rates (8 mutations)
  2841. 394.81 s [really-safe-money-gen] coverage (887/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2842. 394.87 s [really-safe-money-gen] coverage (884/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2843. 394.88 s [really-safe-money-gen] coverage (888/1610): Money\.ConversionRateOfSpec.BTC.USD.compose.produces valid rates (8 mutations)
  2844. 394.98 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)
  2845. 395.69 s [really-safe-money-gen] coverage (891/1610): Money\.ConversionRateOfSpec.BTC.INR.compose.produces valid rates (8 mutations)
  2846. 396.09 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)
  2847. 396.14 s [really-safe-money-gen] coverage (894/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2848. 396.57 s [really-safe-money-gen] coverage (893/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2849. 396.63 s [really-safe-money-gen] coverage (896/1610): Money\.ConversionRateOfSpec.BTC.INR.invert.produces valid rates (8 mutations)
  2850. 396.91 s [really-safe-money-gen] coverage (897/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2851. 397.02 s [really-safe-money-gen] coverage (895/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2852. 400.18 s [really-safe-money-gen] coverage (898/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2853. 401.35 s [really-safe-money-gen] coverage (899/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.toRational.produces valid rationals (0 mutations)
  2854. 401.91 s [really-safe-money-gen] coverage (832/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2855. 402.22 s [really-safe-money-gen] coverage (902/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2856. 402.25 s [really-safe-money-gen] coverage (901/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2857. 402.68 s [really-safe-money-gen] coverage (900/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2858. 402.79 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)
  2859. 402.84 s [really-safe-money-gen] coverage (903/1610): Money\.ConversionRateOfSpec.BTC.CHF.compose.produces valid rates (8 mutations)
  2860. 403.32 s [really-safe-money-gen] coverage (834/1610): Money\.ConversionRateOfSpec.USD.INR.compose.produces valid rates (8 mutations)
  2861. 403.37 s [really-safe-money-gen] coverage (833/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2862. 403.59 s [really-safe-money-gen] coverage (906/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2863. 403.79 s [really-safe-money-gen] coverage (905/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2864. 404.32 s [really-safe-money-gen] coverage (908/1610): Money\.ConversionRateOfSpec.BTC.CHF.invert.produces valid rates (8 mutations)
  2865. 404.35 s [really-safe-money-gen] coverage (909/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2866. 404.41 s [really-safe-money-gen] coverage (835/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2867. 404.51 s [really-safe-money-gen] coverage (810/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2868. 404.60 s [really-safe-money-gen] coverage (907/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2869. 404.67 s [really-safe-money-gen] coverage (910/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2870. 404.74 s [really-safe-money-gen] coverage (911/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2871. 404.78 s [really-safe-money-gen] coverage (912/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2872. 404.94 s [really-safe-money-gen] coverage (913/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2873. 405.77 s [really-safe-money-gen] coverage (915/1610): Money\.ConversionRateOfSpec.BTC.BTC.invert.produces valid rates (8 mutations)
  2874. 405.86 s [really-safe-money-gen] coverage (811/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2875. 405.97 s [really-safe-money-gen] coverage (914/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2876. 406.17 s [really-safe-money-gen] coverage (812/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2877. 406.22 s [really-safe-money-gen] coverage (916/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2878. 406.75 s [really-safe-money-gen] coverage (918/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2879. 406.87 s [really-safe-money-gen] coverage (919/1610): Money\.ConversionRateOfSpec.BTC.BTC.compose.produces valid rates (8 mutations)
  2880. 409.79 s [really-safe-money-gen] coverage (917/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2881. 411.07 s [really-safe-money-gen] coverage (813/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2882. 411.57 s [really-safe-money-gen] coverage (922/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2883. 411.96 s [really-safe-money-gen] coverage (924/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2884. 412.33 s [really-safe-money-gen] coverage (829/1610): Money\.ConversionRateOfSpec.USD.USD.compose.produces valid rates (8 mutations)
  2885. 412.50 s [really-safe-money-gen] coverage (921/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2886. 412.50 s [really-safe-money-gen] coverage (926/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2887. 412.72 s [really-safe-money-gen] coverage (927/1610): Money\.QuantisationFactorSpec.fromWord32.produces valid quantisation factors (6 mutations)
  2888. 412.89 s [really-safe-money-gen] coverage (827/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2889. 413.23 s [really-safe-money-gen] coverage (928/1610): Money\.QuantisationFactorSpec.digits.works on 10 (0 mutations)
  2890. 413.33 s [really-safe-money-gen] coverage (823/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2891. 413.50 s [really-safe-money-gen] coverage (930/1610): Money\.QuantisationFactorSpec.digits.works on 100 (0 mutations)
  2892. 414.07 s [really-safe-money-gen] coverage (932/1610): Money\.QuantisationFactorSpec.digits.works on 1 (0 mutations)
  2893. 414.26 s [really-safe-money-gen] coverage (929/1610): Money\.QuantisationFactorSpec.digits.works on 20 (0 mutations)
  2894. 414.27 s [really-safe-money-gen] coverage (931/1610): Money\.QuantisationFactorSpec.digits.produces valid numbers of digits (0 mutations)
  2895. 414.33 s [really-safe-money-gen] coverage (825/1610): Money\.ConversionRateOfSpec.USD.USD.invert.produces valid rates (8 mutations)
  2896. 414.39 s [really-safe-money-gen] coverage (828/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2897. 414.62 s [really-safe-money-gen] coverage (826/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.toRational.produces valid rationals (0 mutations)
  2898. 414.74 s [really-safe-money-gen] coverage (815/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2899. 415.12 s [really-safe-money-gen] coverage (824/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2900. 415.46 s [really-safe-money-gen] coverage (822/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2901. 415.91 s [really-safe-money-gen] coverage (933/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a non-1 integer (23 mutations)
  2902. 416.30 s [really-safe-money-gen] coverage (870/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2903. 416.36 s [really-safe-money-gen] coverage (934/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render negative fractionals (17 mutations)
  2904. 416.39 s [really-safe-money-gen] coverage (936/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a 0 (8 mutations)
  2905. 416.54 s [really-safe-money-gen] coverage (876/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2906. 416.65 s [really-safe-money-gen] coverage (935/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.produces valid factors (37 mutations)
  2907. 420.48 s [really-safe-money-gen] coverage (939/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 1 into quantisation factor 10 (31 mutations)
  2908. 420.75 s [really-safe-money-gen] coverage (940/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 100 into DecimalLiteral Nothing 1 2 (38 mutations)
  2909. 421.25 s [really-safe-money-gen] coverage (941/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 50 into DecimalLiteral Nothing 2 2 (38 mutations)
  2910. 421.40 s [really-safe-money-gen] coverage (943/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 10 into DecimalLiteral Nothing 1 1 (38 mutations)
  2911. 421.65 s [really-safe-money-gen] coverage (944/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 2 2 into quantisation factor 50 (31 mutations)
  2912. 421.77 s [really-safe-money-gen] coverage (942/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 3 into quantisation factor 1000 (31 mutations)
  2913. 421.85 s [really-safe-money-gen] coverage (946/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 20 into DecimalLiteral Nothing 5 2 (38 mutations)
  2914. 421.98 s [really-safe-money-gen] coverage (945/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 0 into quantisation factor 1 (31 mutations)
  2915. 422.42 s [really-safe-money-gen] coverage (947/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 5 2 into quantisation factor 20 (31 mutations)
  2916. 422.47 s [really-safe-money-gen] coverage (814/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2917. 422.73 s [really-safe-money-gen] coverage (949/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 2 into quantisation factor 100 (31 mutations)
  2918. 422.93 s [really-safe-money-gen] coverage (948/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1 into DecimalLiteral Nothing 1 0 (32 mutations)
  2919. 423.28 s [really-safe-money-gen] coverage (950/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1000 into DecimalLiteral Nothing 1 3 (38 mutations)
  2920. 423.48 s [really-safe-money-gen] coverage (951/1610): Money\.QuantisationFactorSpec.GenValid QuantisationFactor.genValid \:\: Gen QuantisationFactor.only generates valid 'QuantisationFactor's (6 mutations)
  2921. 423.53 s [really-safe-money-gen] coverage (954/1610): Money\.MultiAccountSpec.subtractAmount.adds a non zero amount (5 mutations)
  2922. 423.57 s [really-safe-money-gen] coverage (952/1610): Money\.MultiAccountSpec.subtractAmount.produces valid amounts (44 mutations)
  2923. 423.66 s [really-safe-money-gen] coverage (953/1610): Money\.MultiAccountSpec.subtractAmount.computes this example correctly (24 mutations)
  2924. 423.66 s [really-safe-money-gen] coverage (955/1610): Money\.MultiAccountSpec.subtractAmount.removes a zero amount (24 mutations)
  2925. 424.06 s [really-safe-money-gen] coverage (816/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2926. 424.77 s [really-safe-money-gen] coverage (925/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2927. 424.80 s [really-safe-money-gen] coverage (923/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2928. 425.22 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)
  2929. 425.30 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)
  2930. 425.44 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)
  2931. 425.63 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)
  2932. 425.91 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)
  2933. 430.09 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)
  2934. 430.56 s [really-safe-money-gen] coverage (968/1610): Money\.MultiAccountSpec.sum.produces valid amounts (44 mutations)
  2935. 430.75 s [really-safe-money-gen] coverage (960/1610): Money\.MultiAccountSpec.add.has a left-identity\: zero (6 mutations)
  2936. 430.98 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)
  2937. 431.18 s [really-safe-money-gen] coverage (956/1610): Money\.MultiAccountSpec.add.has a right-identity\: zero (4 mutations)
  2938. 431.32 s [really-safe-money-gen] coverage (958/1610): Money\.MultiAccountSpec.add.produces valid amounts (44 mutations)
  2939. 431.59 s [really-safe-money-gen] coverage (971/1610): Money\.MultiAccountSpec.fromAccount.produces valid amounts (18 mutations)
  2940. 431.71 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)
  2941. 431.81 s [really-safe-money-gen] coverage (970/1610): Money\.MultiAccountSpec.zero.is valid (2 mutations)
  2942. 431.98 s [really-safe-money-gen] coverage (972/1610): Money\.MultiAccountSpec.addAccount.produces valid amounts (46 mutations)
  2943. 432.23 s [really-safe-money-gen] coverage (957/1610): Money\.MultiAccountSpec.add.is commutative (33 mutations)
  2944. 432.35 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)
  2945. 432.64 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)
  2946. 433.03 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)
  2947. 433.08 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)
  2948. 433.09 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)
  2949. 433.22 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)
  2950. 433.29 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)
  2951. 433.51 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)
  2952. 433.95 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)
  2953. 434.09 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)
  2954. 434.63 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)
  2955. 434.80 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)
  2956. 434.87 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)
  2957. 434.91 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)
  2958. 435.33 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)
  2959. 441.23 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)
  2960. 441.56 s [really-safe-money-gen] coverage (993/1610): Money\.MultiAccountSpec.addAmount.adds a non zero amount (5 mutations)
  2961. 441.66 s [really-safe-money-gen] coverage (992/1610): Money\.MultiAccountSpec.addAmount.computes this example correctly (18 mutations)
  2962. 442.31 s [really-safe-money-gen] coverage (994/1610): Money\.MultiAccountSpec.addAmount.removes a zero amount (24 mutations)
  2963. 442.59 s [really-safe-money-gen] coverage (996/1610): Money\.MultiAccountSpec.lookupAccount.can find an added amount (7 mutations)
  2964. 443.40 s [really-safe-money-gen] coverage (995/1610): Money\.MultiAccountSpec.subtractAccount.produces valid amounts (46 mutations)
  2965. 443.65 s [really-safe-money-gen] coverage (991/1610): Money\.MultiAccountSpec.addAmount.produces valid amounts (45 mutations)
  2966. 443.74 s [really-safe-money-gen] coverage (997/1610): Money\.MultiAccountSpec.lookupAccount.produces valid amounts (4 mutations)
  2967. 444.60 s [really-safe-money-gen] coverage (998/1610): Money\.MultiAccountSpec.convertAll.produces valid results when converting two currencies to one (28 mutations)
  2968. 444.62 s [really-safe-money-gen] coverage (990/1610): Money\.MultiAccountSpec.subtract.has a right-identity\: zero (4 mutations)
  2969. 444.80 s [really-safe-money-gen] coverage (999/1610): Money\.MultiAccountSpec.convertAll.produces the right result in this example (23 mutations)
  2970. 445.70 s [really-safe-money-gen] coverage (1001/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  2971. 445.81 s [really-safe-money-gen] coverage (1002/1610): Money\.AmountOfSpec.USD.CHF.rate.produces valid amounts (10 mutations)
  2972. 446.02 s [really-safe-money-gen] coverage (1010/1610): Money\.AmountOfSpec.USD.fromRatio.fails on 7\.123 (13 mutations)
  2973. 446.20 s [really-safe-money-gen] coverage (1011/1610): Money\.AmountOfSpec.USD.fromRatio.fails on +Infinity (2 mutations)
  2974. 446.30 s [really-safe-money-gen] coverage (989/1610): Money\.MultiAccountSpec.subtract.produces valid amounts (44 mutations)
  2975. 446.44 s [really-safe-money-gen] coverage (1000/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.produces valid Int64s (0 mutations)
  2976. 446.66 s [really-safe-money-gen] coverage (1012/1610): Money\.AmountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (9 mutations)
  2977. 447.07 s [really-safe-money-gen] coverage (1009/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 0 (20 mutations)
  2978. 447.77 s [really-safe-money-gen] coverage (1013/1610): Money\.AmountOfSpec.USD.add.has a right-identity\: zero (10 mutations)
  2979. 448.18 s [really-safe-money-gen] coverage (1014/1610): Money\.AmountOfSpec.USD.add.produces valid amounts (9 mutations)
  2980. 448.82 s [really-safe-money-gen] coverage (1015/1610): Money\.AmountOfSpec.USD.add.has a left-identity\: zero (10 mutations)
  2981. 449.35 s [really-safe-money-gen] coverage (1018/1610): Money\.AmountOfSpec.USD.fromMinimalQuantisations.produces valid amounts (0 mutations)
  2982. 449.52 s [really-safe-money-gen] coverage (1016/1610): Money\.AmountOfSpec.USD.add.is commutative (9 mutations)
  2983. 449.69 s [really-safe-money-gen] coverage (1017/1610): Money\.AmountOfSpec.USD.add.is associative when both succeed (9 mutations)
  2984. 450.59 s [really-safe-money-gen] coverage (1019/1610): Money\.AmountOfSpec.USD.fromRational.roundtrips with toRational (19 mutations)
  2985. 457.62 s [really-safe-money-gen] coverage (1021/1610): Money\.AmountOfSpec.USD.fromRational.fails on +Infinity (2 mutations)
  2986. 458.61 s [really-safe-money-gen] coverage (1022/1610): Money\.AmountOfSpec.USD.fromRational.produces valid Amounts (19 mutations)
  2987. 458.81 s [really-safe-money-gen] coverage (1024/1610): Money\.AmountOfSpec.USD.fromRational.fails on -Infinity (2 mutations)
  2988. 459.48 s [really-safe-money-gen] coverage (1026/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 0 (19 mutations)
  2989. 459.58 s [really-safe-money-gen] coverage (1020/1610): Money\.AmountOfSpec.USD.fromRational.fails on -1 (8 mutations)
  2990. 459.61 s [really-safe-money-gen] coverage (1023/1610): Money\.AmountOfSpec.USD.fromRational.fails on NaN (2 mutations)
  2991. 460.25 s [really-safe-money-gen] coverage (1025/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 1 (19 mutations)
  2992. 460.81 s [really-safe-money-gen] coverage (1027/1610): Money\.AmountOfSpec.USD.toRational.produces valid Rationals (0 mutations)
  2993. 461.21 s [really-safe-money-gen] coverage (1029/1610): Money\.AmountOfSpec.USD.zero.is valid (1 mutations)
  2994. 461.51 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)
  2995. 461.55 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)
  2996. 462.23 s [really-safe-money-gen] coverage (1007/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 77 (19 mutations)
  2997. 462.64 s [really-safe-money-gen] coverage (1032/1610): Money\.AmountOfSpec.USD.BTC.rate.produces valid amounts (10 mutations)
  2998. 462.81 s [really-safe-money-gen] coverage (1031/1610): Money\.AmountOfSpec.USD.BTC.convert.produces valid amounts (25 mutations)
  2999. 463.06 s [really-safe-money-gen] coverage (1033/1610): Money\.AmountOfSpec.USD.fromDouble.produces valid amounts (30 mutations)
  3000. 463.21 s [really-safe-money-gen] coverage (1008/1610): Money\.AmountOfSpec.USD.fromRatio.fails on NaN (2 mutations)
  3001. 463.39 s [really-safe-money-gen] coverage (1004/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 1 (19 mutations)
  3002. 463.58 s [really-safe-money-gen] coverage (1006/1610): Money\.AmountOfSpec.USD.fromRatio.produces valid AmountOfs (19 mutations)
  3003. 463.76 s [really-safe-money-gen] coverage (1005/1610): Money\.AmountOfSpec.USD.fromRatio.roundtrips with toRatio (19 mutations)
  3004. 464.52 s [really-safe-money-gen] coverage (1003/1610): Money\.AmountOfSpec.USD.CHF.convert.produces valid amounts (25 mutations)
  3005. 465.16 s [really-safe-money-gen] coverage (1035/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 1 (30 mutations)
  3006. 465.17 s [really-safe-money-gen] coverage (1034/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 0 (30 mutations)
  3007. 466.07 s [really-safe-money-gen] coverage (1036/1610): Money\.AmountOfSpec.USD.fromDouble.fails on +Infinity (10 mutations)
  3008. 466.33 s [really-safe-money-gen] coverage (1038/1610): Money\.AmountOfSpec.USD.fromDouble.fails on NaN (8 mutations)
  3009. 466.52 s [really-safe-money-gen] coverage (1037/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -Infinity (6 mutations)
  3010. 468.05 s [really-safe-money-gen] coverage (1039/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -1 (6 mutations)
  3011. 474.88 s [really-safe-money-gen] coverage (836/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  3012. 475.28 s [really-safe-money-gen] coverage (1040/1610): Money\.AmountOfSpec.USD.fraction.produces valid amounts (17 mutations)
  3013. 476.33 s [really-safe-money-gen] coverage (670/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  3014. 476.44 s [really-safe-money-gen] coverage (673/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  3015. 476.54 s [really-safe-money-gen] coverage (1042/1610): Money\.AmountOfSpec.USD.INR.rate.produces valid amounts (10 mutations)
  3016. 476.84 s [really-safe-money-gen] coverage (937/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.roundtrips with fromDecimalLiteral (70 mutations)
  3017. 477.22 s [really-safe-money-gen] coverage (1043/1610): Money\.AmountOfSpec.USD.USD.rate.produces valid amounts (10 mutations)
  3018. 477.28 s [really-safe-money-gen] coverage (1044/1610): Money\.AmountOfSpec.USD.USD.convert.produces valid amounts (25 mutations)
  3019. 477.70 s [really-safe-money-gen] coverage (1045/1610): Money\.AmountOfSpec.USD.sum.produces valid amounts (10 mutations)
  3020. 477.72 s [really-safe-money-gen] coverage (674/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  3021. 478.21 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)
  3022. 478.22 s [really-safe-money-gen] coverage (959/1610): Money\.MultiAccountSpec.add.is associative when both succeed (33 mutations)
  3023. 478.29 s [really-safe-money-gen] coverage (672/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  3024. 478.53 s [really-safe-money-gen] coverage (1047/1610): Money\.AmountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3025. 478.64 s [really-safe-money-gen] coverage (1041/1610): Money\.AmountOfSpec.USD.INR.convert.produces valid amounts (25 mutations)
  3026. 478.88 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)
  3027. 479.01 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)
  3028. 479.45 s [really-safe-money-gen] coverage (1046/1610): Money\.AmountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3029. 479.46 s [really-safe-money-gen] coverage (938/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (40 mutations)
  3030. 479.91 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)
  3031. 480.31 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)
  3032. 480.73 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)
  3033. 481.14 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)
  3034. 481.16 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)
  3035. 481.41 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)
  3036. 481.66 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)
  3037. 481.83 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)
  3038. 483.38 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)
  3039. 491.26 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)
  3040. 491.39 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)
  3041. 492.29 s [really-safe-money-gen] coverage (1064/1610): Money\.AmountOfSpec.USD.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3042. 492.73 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)
  3043. 492.89 s [really-safe-money-gen] coverage (1065/1610): Money\.AmountOfSpec.USD.format.produces valid strings (3 mutations)
  3044. 493.47 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)
  3045. 493.63 s [really-safe-money-gen] coverage (1066/1610): Money\.AmountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3046. 494.23 s [really-safe-money-gen] coverage (1069/1610): Money\.AmountOfSpec.USD.multiply.has an identity\: 1 (9 mutations)
  3047. 494.27 s [really-safe-money-gen] coverage (1073/1610): Money\.AmountOfSpec.USD.distribute.produces valid amounts (21 mutations)
  3048. 494.36 s [really-safe-money-gen] coverage (1068/1610): Money\.AmountOfSpec.USD.multiply.is distributive with add when both succeed (17 mutations)
  3049. 494.49 s [really-safe-money-gen] coverage (1071/1610): Money\.AmountOfSpec.USD.toDouble.produces valid Doubles (0 mutations)
  3050. 494.66 s [really-safe-money-gen] coverage (1070/1610): Money\.AmountOfSpec.USD.multiply.produces valid amounts (9 mutations)
  3051. 494.68 s [really-safe-money-gen] coverage (1067/1610): Money\.AmountOfSpec.USD.multiply.is absorbed by 0 (10 mutations)
  3052. 495.64 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)
  3053. 495.72 s [really-safe-money-gen] coverage (1074/1610): Money\.AmountOfSpec.USD.distribute.produces results that sum up to the greater whole (29 mutations)
  3054. 495.98 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)
  3055. 496.07 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)
  3056. 496.26 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)
  3057. 496.43 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)
  3058. 496.62 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)
  3059. 497.10 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)
  3060. 497.50 s [really-safe-money-gen] coverage (1081/1610): Money\.AmountOfSpec.USD.ADA.convert.produces valid amounts (25 mutations)
  3061. 497.81 s [really-safe-money-gen] coverage (1082/1610): Money\.AmountOfSpec.USD.ADA.rate.produces valid amounts (10 mutations)
  3062. 498.14 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. 498.41 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)
  3064. 498.62 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)
  3065. 499.08 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)
  3066. 500.00 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)
  3067. 508.52 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)
  3068. 509.32 s [really-safe-money-gen] coverage (1089/1610): Money\.AmountOfSpec.ADA.BTC.convert.produces valid amounts (25 mutations)
  3069. 509.55 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)
  3070. 509.69 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)
  3071. 510.22 s [really-safe-money-gen] coverage (1090/1610): Money\.AmountOfSpec.ADA.BTC.rate.produces valid amounts (10 mutations)
  3072. 510.32 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)
  3073. 510.52 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)
  3074. 510.76 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. 510.93 s [really-safe-money-gen] coverage (1097/1610): Money\.AmountOfSpec.ADA.zero.is valid (1 mutations)
  3076. 511.16 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)
  3077. 511.46 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)
  3078. 511.68 s [really-safe-money-gen] coverage (1100/1610): Money\.AmountOfSpec.ADA.toRational.produces valid Rationals (0 mutations)
  3079. 512.16 s [really-safe-money-gen] coverage (1099/1610): Money\.AmountOfSpec.ADA.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3080. 512.60 s [really-safe-money-gen] coverage (1105/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 1 (19 mutations)
  3081. 512.60 s [really-safe-money-gen] coverage (1101/1610): Money\.AmountOfSpec.ADA.fromRatio.produces valid AmountOfs (19 mutations)
  3082. 512.63 s [really-safe-money-gen] coverage (1102/1610): Money\.AmountOfSpec.ADA.fromRatio.roundtrips with toRatio (19 mutations)
  3083. 512.74 s [really-safe-money-gen] coverage (1106/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on NaN (2 mutations)
  3084. 512.83 s [really-safe-money-gen] coverage (1103/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 0 (20 mutations)
  3085. 513.45 s [really-safe-money-gen] coverage (837/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.toRational.produces valid rationals (0 mutations)
  3086. 513.98 s [really-safe-money-gen] coverage (1104/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on +Infinity (2 mutations)
  3087. 514.15 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)
  3088. 514.38 s [really-safe-money-gen] coverage (1107/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 77 (19 mutations)
  3089. 515.01 s [really-safe-money-gen] coverage (1118/1610): Money\.AmountOfSpec.ADA.sum.produces valid amounts (10 mutations)
  3090. 515.17 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)
  3091. 515.34 s [really-safe-money-gen] coverage (1108/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on 7\.123 (13 mutations)
  3092. 515.61 s [really-safe-money-gen] coverage (1110/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 1 (19 mutations)
  3093. 515.67 s [really-safe-money-gen] coverage (1117/1610): Money\.AmountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3094. 516.88 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)
  3095. 526.02 s [really-safe-money-gen] coverage (1120/1610): Money\.AmountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3096. 526.23 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)
  3097. 526.68 s [really-safe-money-gen] coverage (1124/1610): Money\.AmountOfSpec.ADA.add.produces valid amounts (9 mutations)
  3098. 526.92 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)
  3099. 527.01 s [really-safe-money-gen] coverage (1137/1610): Money\.AmountOfSpec.ADA.distribute.produces valid amounts (21 mutations)
  3100. 527.04 s [really-safe-money-gen] coverage (1123/1610): Money\.AmountOfSpec.ADA.add.is associative when both succeed (9 mutations)
  3101. 527.08 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)
  3102. 527.75 s [really-safe-money-gen] coverage (1125/1610): Money\.AmountOfSpec.ADA.add.is commutative (9 mutations)
  3103. 528.15 s [really-safe-money-gen] coverage (1127/1610): Money\.AmountOfSpec.ADA.USD.convert.produces valid amounts (25 mutations)
  3104. 528.55 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)
  3105. 528.56 s [really-safe-money-gen] coverage (1126/1610): Money\.AmountOfSpec.ADA.USD.rate.produces valid amounts (10 mutations)
  3106. 528.64 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)
  3107. 528.81 s [really-safe-money-gen] coverage (1119/1610): Money\.AmountOfSpec.ADA.toDouble.produces valid Doubles (0 mutations)
  3108. 528.84 s [really-safe-money-gen] coverage (1130/1610): Money\.AmountOfSpec.ADA.distribute.produces results that sum up to the greater whole (29 mutations)
  3109. 529.11 s [really-safe-money-gen] coverage (1115/1610): Money\.AmountOfSpec.ADA.fromRational.produces valid Amounts (19 mutations)
  3110. 529.11 s [really-safe-money-gen] coverage (1121/1610): Money\.AmountOfSpec.ADA.add.has a left-identity\: zero (10 mutations)
  3111. 529.87 s [really-safe-money-gen] coverage (1114/1610): Money\.AmountOfSpec.ADA.fromRational.fails on +Infinity (2 mutations)
  3112. 529.91 s [really-safe-money-gen] coverage (1122/1610): Money\.AmountOfSpec.ADA.add.has a right-identity\: zero (10 mutations)
  3113. 530.09 s [really-safe-money-gen] coverage (1116/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 0 (19 mutations)
  3114. 530.67 s [really-safe-money-gen] coverage (1113/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -Infinity (2 mutations)
  3115. 530.96 s [really-safe-money-gen] coverage (1112/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -1 (8 mutations)
  3116. 531.13 s [really-safe-money-gen] coverage (1109/1610): Money\.AmountOfSpec.ADA.fromRational.fails on NaN (2 mutations)
  3117. 531.37 s [really-safe-money-gen] coverage (1111/1610): Money\.AmountOfSpec.ADA.fromRational.roundtrips with toRational (19 mutations)
  3118. 531.81 s [really-safe-money-gen] coverage (1142/1610): Money\.AmountOfSpec.ADA.format.produces valid strings (3 mutations)
  3119. 532.23 s [really-safe-money-gen] coverage (1128/1610): Money\.AmountOfSpec.ADA.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3120. 532.73 s [really-safe-money-gen] coverage (1141/1610): Money\.AmountOfSpec.ADA.CHF.rate.produces valid amounts (10 mutations)
  3121. 533.13 s [really-safe-money-gen] coverage (1140/1610): Money\.AmountOfSpec.ADA.CHF.convert.produces valid amounts (25 mutations)
  3122. 533.56 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)
  3123. 543.99 s [really-safe-money-gen] coverage (1146/1610): Money\.AmountOfSpec.ADA.fraction.produces valid amounts (17 mutations)
  3124. 544.12 s [really-safe-money-gen] coverage (1144/1610): Money\.AmountOfSpec.ADA.ADA.rate.produces valid amounts (10 mutations)
  3125. 545.82 s [really-safe-money-gen] coverage (1147/1610): Money\.AmountOfSpec.ADA.INR.rate.produces valid amounts (10 mutations)
  3126. 545.90 s [really-safe-money-gen] coverage (1150/1610): Money\.AmountOfSpec.ADA.multiply.is absorbed by 0 (10 mutations)
  3127. 546.90 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. 547.01 s [really-safe-money-gen] coverage (1149/1610): Money\.AmountOfSpec.ADA.multiply.produces valid amounts (9 mutations)
  3129. 547.48 s [really-safe-money-gen] coverage (1152/1610): Money\.AmountOfSpec.ADA.multiply.is distributive with add when both succeed (17 mutations)
  3130. 548.94 s [really-safe-money-gen] coverage (1154/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 0 (30 mutations)
  3131. 549.13 s [really-safe-money-gen] coverage (1158/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -Infinity (6 mutations)
  3132. 549.45 s [really-safe-money-gen] coverage (1148/1610): Money\.AmountOfSpec.ADA.INR.convert.produces valid amounts (25 mutations)
  3133. 550.00 s [really-safe-money-gen] coverage (1156/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 1 (30 mutations)
  3134. 550.22 s [really-safe-money-gen] coverage (1138/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3135. 550.32 s [really-safe-money-gen] coverage (1153/1610): Money\.AmountOfSpec.ADA.multiply.has an identity\: 1 (9 mutations)
  3136. 550.56 s [really-safe-money-gen] coverage (1155/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on +Infinity (10 mutations)
  3137. 550.65 s [really-safe-money-gen] coverage (1160/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -1 (6 mutations)
  3138. 551.45 s [really-safe-money-gen] coverage (1180/1610): Money\.AmountOfSpec.INR.distribute.produces results that sum up to the greater whole (29 mutations)
  3139. 551.59 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)
  3140. 551.65 s [really-safe-money-gen] coverage (1161/1610): Money\.AmountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3141. 551.67 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)
  3142. 552.67 s [really-safe-money-gen] coverage (1145/1610): Money\.AmountOfSpec.ADA.ADA.convert.produces valid amounts (25 mutations)
  3143. 553.10 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)
  3144. 554.13 s [really-safe-money-gen] coverage (1139/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3145. 554.24 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)
  3146. 556.40 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)
  3147. 556.55 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. 557.10 s [really-safe-money-gen] coverage (1178/1610): Money\.AmountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3149. 557.40 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)
  3150. 558.07 s [really-safe-money-gen] coverage (1181/1610): Money\.AmountOfSpec.INR.distribute.produces valid amounts (21 mutations)
  3151. 563.18 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)
  3152. 566.10 s [really-safe-money-gen] coverage (1193/1610): Money\.AmountOfSpec.INR.ADA.convert.produces valid amounts (25 mutations)
  3153. 568.03 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)
  3154. 569.80 s [really-safe-money-gen] coverage (1179/1610): Money\.AmountOfSpec.INR.toDouble.produces valid Doubles (0 mutations)
  3155. 570.42 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)
  3156. 571.73 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)
  3157. 572.87 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)
  3158. 573.06 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)
  3159. 574.63 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)
  3160. 575.40 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)
  3161. 576.54 s [really-safe-money-gen] coverage (1157/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on NaN (8 mutations)
  3162. 576.71 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)
  3163. 576.88 s [really-safe-money-gen] coverage (1159/1610): Money\.AmountOfSpec.ADA.fromDouble.produces valid amounts (30 mutations)
  3164. 577.44 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)
  3165. 577.51 s [really-safe-money-gen] coverage (1194/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -Infinity (6 mutations)
  3166. 577.67 s [really-safe-money-gen] coverage (1195/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 1 (30 mutations)
  3167. 578.43 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)
  3168. 578.53 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)
  3169. 579.02 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)
  3170. 579.24 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)
  3171. 579.78 s [really-safe-money-gen] coverage (1192/1610): Money\.AmountOfSpec.INR.ADA.rate.produces valid amounts (10 mutations)
  3172. 580.31 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)
  3173. 580.42 s [really-safe-money-gen] coverage (1189/1610): Money\.AmountOfSpec.INR.zero.is valid (1 mutations)
  3174. 582.04 s [really-safe-money-gen] coverage (1191/1610): Money\.AmountOfSpec.INR.fraction.produces valid amounts (17 mutations)
  3175. 582.69 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)
  3176. 583.59 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)
  3177. 584.83 s [really-safe-money-gen] coverage (1196/1610): Money\.AmountOfSpec.INR.fromDouble.fails on NaN (8 mutations)
  3178. 587.01 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)
  3179. 587.68 s [really-safe-money-gen] coverage (1190/1610): Money\.AmountOfSpec.INR.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3180. 589.15 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)
  3181. 593.60 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)
  3182. 593.64 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)
  3183. 595.10 s [really-safe-money-gen] coverage (1239/1610): Money\.AmountOfSpec.INR.add.produces valid amounts (9 mutations)
  3184. 595.64 s [really-safe-money-gen] coverage (1200/1610): Money\.AmountOfSpec.INR.fromDouble.produces valid amounts (30 mutations)
  3185. 595.67 s [really-safe-money-gen] coverage (1199/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 0 (30 mutations)
  3186. 597.37 s [really-safe-money-gen] coverage (1248/1610): Money\.AmountOfSpec.INR.BTC.rate.produces valid amounts (10 mutations)
  3187. 598.00 s [really-safe-money-gen] coverage (1234/1610): Money\.AmountOfSpec.INR.add.is commutative (9 mutations)
  3188. 598.14 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)
  3189. 599.15 s [really-safe-money-gen] coverage (1236/1610): Money\.AmountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3190. 599.15 s [really-safe-money-gen] coverage (1232/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 1 (19 mutations)
  3191. 599.91 s [really-safe-money-gen] coverage (1238/1610): Money\.AmountOfSpec.INR.add.has a right-identity\: zero (10 mutations)
  3192. 600.14 s [really-safe-money-gen] coverage (1233/1610): Money\.AmountOfSpec.INR.fromRational.fails on -1 (8 mutations)
  3193. 600.16 s [really-safe-money-gen] coverage (1231/1610): Money\.AmountOfSpec.INR.fromRational.produces valid Amounts (19 mutations)
  3194. 600.17 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)
  3195. 602.47 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)
  3196. 603.66 s [really-safe-money-gen] coverage (1245/1610): Money\.AmountOfSpec.INR.format.produces valid strings (3 mutations)
  3197. 604.18 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)
  3198. 605.20 s [really-safe-money-gen] coverage (1243/1610): Money\.AmountOfSpec.INR.sum.produces valid amounts (10 mutations)
  3199. 606.74 s [really-safe-money-gen] coverage (1244/1610): Money\.AmountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3200. 606.90 s [really-safe-money-gen] coverage (1237/1610): Money\.AmountOfSpec.INR.add.has a left-identity\: zero (10 mutations)
  3201. 607.05 s [really-safe-money-gen] coverage (1240/1610): Money\.AmountOfSpec.INR.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3202. 607.14 s [really-safe-money-gen] coverage (1242/1610): Money\.AmountOfSpec.INR.toRational.produces valid Rationals (0 mutations)
  3203. 607.45 s [really-safe-money-gen] coverage (1235/1610): Money\.AmountOfSpec.INR.add.is associative when both succeed (9 mutations)
  3204. 611.83 s [really-safe-money-gen] coverage (1250/1610): Money\.AmountOfSpec.INR.fromRatio.fails on NaN (2 mutations)
  3205. 611.93 s [really-safe-money-gen] coverage (1246/1610): Money\.AmountOfSpec.INR.INR.rate.produces valid amounts (10 mutations)
  3206. 612.57 s [really-safe-money-gen] coverage (1247/1610): Money\.AmountOfSpec.INR.INR.convert.produces valid amounts (25 mutations)
  3207. 614.06 s [really-safe-money-gen] coverage (1249/1610): Money\.AmountOfSpec.INR.BTC.convert.produces valid amounts (25 mutations)
  3208. 614.15 s [really-safe-money-gen] coverage (1251/1610): Money\.AmountOfSpec.INR.fromRatio.fails on +Infinity (2 mutations)
  3209. 619.41 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)
  3210. 620.96 s [really-safe-money-gen] coverage (1252/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 1 (19 mutations)
  3211. 621.06 s [really-safe-money-gen] coverage (1257/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 77 (19 mutations)
  3212. 621.13 s [really-safe-money-gen] coverage (1256/1610): Money\.AmountOfSpec.INR.fromRatio.fails on 7\.123 (13 mutations)
  3213. 622.22 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)
  3214. 622.84 s [really-safe-money-gen] coverage (1253/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 0 (20 mutations)
  3215. 623.15 s [really-safe-money-gen] coverage (1255/1610): Money\.AmountOfSpec.INR.fromRatio.produces valid AmountOfs (19 mutations)
  3216. 623.84 s [really-safe-money-gen] coverage (1254/1610): Money\.AmountOfSpec.INR.fromRatio.roundtrips with toRatio (19 mutations)
  3217. 624.08 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. 625.20 s [really-safe-money-gen] coverage (1265/1610): Money\.AmountOfSpec.INR.USD.convert.produces valid amounts (25 mutations)
  3219. 625.66 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)
  3220. 626.19 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)
  3221. 626.49 s [really-safe-money-gen] coverage (1271/1610): Money\.AmountOfSpec.BTC.INR.convert.produces valid amounts (25 mutations)
  3222. 626.61 s [really-safe-money-gen] coverage (1268/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3223. 628.09 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)
  3224. 628.65 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)
  3225. 629.22 s [really-safe-money-gen] coverage (1267/1610): Money\.AmountOfSpec.BTC.format.produces valid strings (3 mutations)
  3226. 630.15 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)
  3227. 631.70 s [really-safe-money-gen] coverage (1266/1610): Money\.AmountOfSpec.INR.USD.rate.produces valid amounts (10 mutations)
  3228. 632.21 s [really-safe-money-gen] coverage (1269/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3229. 632.78 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)
  3230. 634.71 s [really-safe-money-gen] coverage (1270/1610): Money\.AmountOfSpec.BTC.INR.rate.produces valid amounts (10 mutations)
  3231. 635.05 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. 636.67 s [really-safe-money-gen] coverage (1291/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 0 (20 mutations)
  3233. 637.46 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)
  3234. 637.71 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. 639.13 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)
  3236. 639.66 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)
  3237. 639.66 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)
  3238. 642.15 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)
  3239. 642.36 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)
  3240. 642.43 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)
  3241. 644.59 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)
  3242. 644.62 s [really-safe-money-gen] coverage (1294/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on +Infinity (2 mutations)
  3243. 644.67 s [really-safe-money-gen] coverage (1289/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on NaN (2 mutations)
  3244. 645.33 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)
  3245. 645.52 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)
  3246. 646.62 s [really-safe-money-gen] coverage (1293/1610): Money\.AmountOfSpec.BTC.fromRatio.produces valid AmountOfs (19 mutations)
  3247. 646.91 s [really-safe-money-gen] coverage (1302/1610): Money\.AmountOfSpec.BTC.fromRational.fails on +Infinity (2 mutations)
  3248. 648.23 s [really-safe-money-gen] coverage (1306/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on +Infinity (10 mutations)
  3249. 648.76 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)
  3250. 649.93 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)
  3251. 650.51 s [really-safe-money-gen] coverage (1297/1610): Money\.AmountOfSpec.BTC.CHF.rate.produces valid amounts (10 mutations)
  3252. 651.04 s [really-safe-money-gen] coverage (1288/1610): Money\.AmountOfSpec.BTC.fromRatio.roundtrips with toRatio (19 mutations)
  3253. 653.47 s [really-safe-money-gen] coverage (1304/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 0 (19 mutations)
  3254. 654.03 s [really-safe-money-gen] coverage (1292/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 1 (19 mutations)
  3255. 654.71 s [really-safe-money-gen] coverage (1303/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -Infinity (2 mutations)
  3256. 655.22 s [really-safe-money-gen] coverage (1295/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on 7\.123 (13 mutations)
  3257. 655.93 s [really-safe-money-gen] coverage (1296/1610): Money\.AmountOfSpec.BTC.CHF.convert.produces valid amounts (25 mutations)
  3258. 656.60 s [really-safe-money-gen] coverage (1307/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 1 (30 mutations)
  3259. 657.36 s [really-safe-money-gen] coverage (1221/1610): Money\.AmountOfSpec.INR.multiply.is absorbed by 0 (10 mutations)
  3260. 657.37 s [really-safe-money-gen] coverage (1290/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 77 (19 mutations)
  3261. 657.89 s [really-safe-money-gen] coverage (1227/1610): Money\.AmountOfSpec.INR.fromRational.fails on -Infinity (2 mutations)
  3262. 658.07 s [really-safe-money-gen] coverage (1299/1610): Money\.AmountOfSpec.BTC.fromRational.produces valid Amounts (19 mutations)
  3263. 660.18 s [really-safe-money-gen] coverage (1301/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 1 (19 mutations)
  3264. 660.95 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)
  3265. 660.98 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)
  3266. 661.12 s [really-safe-money-gen] coverage (1305/1610): Money\.AmountOfSpec.BTC.fromRational.roundtrips with toRational (19 mutations)
  3267. 662.09 s [really-safe-money-gen] coverage (1223/1610): Money\.AmountOfSpec.INR.multiply.is distributive with add when both succeed (17 mutations)
  3268. 662.25 s [really-safe-money-gen] coverage (1298/1610): Money\.AmountOfSpec.BTC.fromRational.fails on NaN (2 mutations)
  3269. 662.25 s [really-safe-money-gen] coverage (1224/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3270. 663.31 s [really-safe-money-gen] coverage (1310/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 0 (30 mutations)
  3271. 664.09 s [really-safe-money-gen] coverage (1230/1610): Money\.AmountOfSpec.INR.fromRational.fails on NaN (2 mutations)
  3272. 665.08 s [really-safe-money-gen] coverage (1308/1610): Money\.AmountOfSpec.BTC.fromDouble.produces valid amounts (30 mutations)
  3273. 667.46 s [really-safe-money-gen] coverage (1311/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -Infinity (6 mutations)
  3274. 667.54 s [really-safe-money-gen] coverage (1300/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -1 (8 mutations)
  3275. 668.30 s [really-safe-money-gen] coverage (1218/1610): Money\.AmountOfSpec.INR.CHF.rate.produces valid amounts (10 mutations)
  3276. 670.34 s [really-safe-money-gen] coverage (1219/1610): Money\.AmountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3277. 671.81 s [really-safe-money-gen] coverage (1220/1610): Money\.AmountOfSpec.INR.multiply.produces valid amounts (9 mutations)
  3278. 671.90 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)
  3279. 672.03 s [really-safe-money-gen] coverage (1309/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -1 (6 mutations)
  3280. 672.53 s [really-safe-money-gen] coverage (1226/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 0 (19 mutations)
  3281. 675.13 s [really-safe-money-gen] coverage (1197/1610): Money\.AmountOfSpec.INR.fromDouble.fails on +Infinity (10 mutations)
  3282. 675.35 s [really-safe-money-gen] coverage (1225/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3283. 675.52 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)
  3284. 677.85 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)
  3285. 678.64 s [really-safe-money-gen] coverage (1228/1610): Money\.AmountOfSpec.INR.fromRational.roundtrips with toRational (19 mutations)
  3286. 678.70 s [really-safe-money-gen] coverage (1356/1610): Money\.AmountOfSpec.CHF.INR.convert.produces valid amounts (25 mutations)
  3287. 680.06 s [really-safe-money-gen] coverage (1198/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -1 (6 mutations)
  3288. 680.12 s [really-safe-money-gen] coverage (1347/1610): Money\.AmountOfSpec.BTC.distribute.produces results that sum up to the greater whole (29 mutations)
  3289. 680.66 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)
  3290. 681.44 s [really-safe-money-gen] coverage (1349/1610): Money\.AmountOfSpec.BTC.toRational.produces valid Rationals (0 mutations)
  3291. 683.31 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)
  3292. 683.56 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)
  3293. 684.05 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)
  3294. 684.29 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)
  3295. 684.50 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)
  3296. 684.53 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)
  3297. 684.60 s [really-safe-money-gen] coverage (1350/1610): Money\.AmountOfSpec.BTC.fraction.produces valid amounts (17 mutations)
  3298. 685.08 s [really-safe-money-gen] coverage (1229/1610): Money\.AmountOfSpec.INR.fromRational.fails on +Infinity (2 mutations)
  3299. 685.33 s [really-safe-money-gen] coverage (1222/1610): Money\.AmountOfSpec.INR.multiply.has an identity\: 1 (9 mutations)
  3300. 686.01 s [really-safe-money-gen] coverage (1217/1610): Money\.AmountOfSpec.INR.CHF.convert.produces valid amounts (25 mutations)
  3301. 687.41 s [really-safe-money-gen] coverage (1339/1610): Money\.AmountOfSpec.BTC.sum.produces valid amounts (10 mutations)
  3302. 688.21 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)
  3303. 689.28 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)
  3304. 690.56 s [really-safe-money-gen] coverage (1346/1610): Money\.AmountOfSpec.BTC.distribute.produces valid amounts (21 mutations)
  3305. 691.29 s [really-safe-money-gen] coverage (1354/1610): Money\.AmountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3306. 692.93 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)
  3307. 696.01 s [really-safe-money-gen] coverage (1353/1610): Money\.AmountOfSpec.BTC.multiply.produces valid amounts (9 mutations)
  3308. 696.22 s [really-safe-money-gen] coverage (1362/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on +Infinity (2 mutations)
  3309. 697.27 s [really-safe-money-gen] coverage (1366/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on 7\.123 (13 mutations)
  3310. 698.24 s [really-safe-money-gen] coverage (1351/1610): Money\.AmountOfSpec.BTC.multiply.is absorbed by 0 (10 mutations)
  3311. 698.47 s [really-safe-money-gen] coverage (1378/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 0 (19 mutations)
  3312. 698.93 s [really-safe-money-gen] coverage (1355/1610): Money\.AmountOfSpec.BTC.multiply.is distributive with add when both succeed (17 mutations)
  3313. 699.51 s [really-safe-money-gen] coverage (1352/1610): Money\.AmountOfSpec.BTC.multiply.has an identity\: 1 (9 mutations)
  3314. 700.11 s [really-safe-money-gen] coverage (1357/1610): Money\.AmountOfSpec.CHF.INR.rate.produces valid amounts (10 mutations)
  3315. 701.61 s [really-safe-money-gen] coverage (1359/1610): Money\.AmountOfSpec.CHF.USD.rate.produces valid amounts (10 mutations)
  3316. 701.67 s [really-safe-money-gen] coverage (1358/1610): Money\.AmountOfSpec.CHF.USD.convert.produces valid amounts (25 mutations)
  3317. 701.86 s [really-safe-money-gen] coverage (1367/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 77 (19 mutations)
  3318. 702.04 s [really-safe-money-gen] coverage (1369/1610): Money\.AmountOfSpec.CHF.fraction.produces valid amounts (17 mutations)
  3319. 703.09 s [really-safe-money-gen] coverage (1364/1610): Money\.AmountOfSpec.CHF.fromRatio.roundtrips with toRatio (19 mutations)
  3320. 703.77 s [really-safe-money-gen] coverage (1376/1610): Money\.AmountOfSpec.CHF.fromRational.fails on +Infinity (2 mutations)
  3321. 704.96 s [really-safe-money-gen] coverage (1370/1610): Money\.AmountOfSpec.CHF.multiply.has an identity\: 1 (9 mutations)
  3322. 705.81 s [really-safe-money-gen] coverage (1363/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on NaN (2 mutations)
  3323. 706.95 s [really-safe-money-gen] coverage (1377/1610): Money\.AmountOfSpec.CHF.fromRational.produces valid Amounts (19 mutations)
  3324. 707.26 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)
  3325. 708.70 s [really-safe-money-gen] coverage (1360/1610): Money\.AmountOfSpec.CHF.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3326. 709.20 s [really-safe-money-gen] coverage (1373/1610): Money\.AmountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3327. 709.33 s [really-safe-money-gen] coverage (1372/1610): Money\.AmountOfSpec.CHF.multiply.is distributive with add when both succeed (17 mutations)
  3328. 709.92 s [really-safe-money-gen] coverage (1361/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 0 (20 mutations)
  3329. 710.69 s [really-safe-money-gen] coverage (1374/1610): Money\.AmountOfSpec.CHF.multiply.produces valid amounts (9 mutations)
  3330. 711.00 s [really-safe-money-gen] coverage (1375/1610): Money\.AmountOfSpec.CHF.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3331. 711.61 s [really-safe-money-gen] coverage (1390/1610): Money\.AmountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3332. 712.17 s [really-safe-money-gen] coverage (1392/1610): Money\.AmountOfSpec.CHF.BTC.convert.produces valid amounts (25 mutations)
  3333. 712.29 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)
  3334. 712.31 s [really-safe-money-gen] coverage (1371/1610): Money\.AmountOfSpec.CHF.multiply.is absorbed by 0 (10 mutations)
  3335. 713.87 s [really-safe-money-gen] coverage (1368/1610): Money\.AmountOfSpec.CHF.fromRatio.produces valid AmountOfs (19 mutations)
  3336. 714.64 s [really-safe-money-gen] coverage (1381/1610): Money\.AmountOfSpec.CHF.fromRational.fails on NaN (2 mutations)
  3337. 714.75 s [really-safe-money-gen] coverage (1365/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 1 (19 mutations)
  3338. 715.52 s [really-safe-money-gen] coverage (1379/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -Infinity (2 mutations)
  3339. 716.12 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)
  3340. 716.12 s [really-safe-money-gen] coverage (1394/1610): Money\.AmountOfSpec.CHF.zero.is valid (1 mutations)
  3341. 717.43 s [really-safe-money-gen] coverage (1380/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -1 (8 mutations)
  3342. 717.98 s [really-safe-money-gen] coverage (1393/1610): Money\.AmountOfSpec.CHF.BTC.rate.produces valid amounts (10 mutations)
  3343. 718.57 s [really-safe-money-gen] coverage (1382/1610): Money\.AmountOfSpec.CHF.fromRational.roundtrips with toRational (19 mutations)
  3344. 718.71 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)
  3345. 722.69 s [really-safe-money-gen] coverage (1398/1610): Money\.AmountOfSpec.CHF.CHF.convert.produces valid amounts (25 mutations)
  3346. 723.28 s [really-safe-money-gen] coverage (1383/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 1 (19 mutations)
  3347. 724.08 s [really-safe-money-gen] coverage (1401/1610): Money\.AmountOfSpec.CHF.format.produces valid strings (3 mutations)
  3348. 724.18 s [really-safe-money-gen] coverage (1408/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -Infinity (6 mutations)
  3349. 725.37 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)
  3350. 726.32 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)
  3351. 726.32 s [really-safe-money-gen] coverage (1391/1610): Money\.AmountOfSpec.CHF.sum.produces valid amounts (10 mutations)
  3352. 728.84 s [really-safe-money-gen] coverage (1410/1610): Money\.AmountOfSpec.CHF.ADA.convert.produces valid amounts (25 mutations)
  3353. 729.82 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)
  3354. 730.36 s [really-safe-money-gen] coverage (1396/1610): Money\.AmountOfSpec.CHF.toDouble.produces valid Doubles (0 mutations)
  3355. 730.87 s [really-safe-money-gen] coverage (1407/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on NaN (8 mutations)
  3356. 730.94 s [really-safe-money-gen] coverage (1412/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3357. 732.05 s [really-safe-money-gen] coverage (1395/1610): Money\.AmountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3358. 733.32 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)
  3359. 734.33 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)
  3360. 734.35 s [really-safe-money-gen] coverage (1402/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 1 (30 mutations)
  3361. 734.89 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)
  3362. 734.93 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)
  3363. 735.03 s [really-safe-money-gen] coverage (1397/1610): Money\.AmountOfSpec.CHF.toRational.produces valid Rationals (0 mutations)
  3364. 736.42 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)
  3365. 736.58 s [really-safe-money-gen] coverage (1399/1610): Money\.AmountOfSpec.CHF.CHF.rate.produces valid amounts (10 mutations)
  3366. 736.81 s [really-safe-money-gen] coverage (1403/1610): Money\.AmountOfSpec.CHF.fromDouble.produces valid amounts (30 mutations)
  3367. 738.57 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)
  3368. 739.60 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)
  3369. 739.76 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)
  3370. 739.98 s [really-safe-money-gen] coverage (1404/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on +Infinity (10 mutations)
  3371. 740.11 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)
  3372. 740.69 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)
  3373. 740.72 s [really-safe-money-gen] coverage (1431/1610): Money\.AmountOfSpec.CHF.distribute.produces valid amounts (21 mutations)
  3374. 740.87 s [really-safe-money-gen] coverage (1406/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -1 (6 mutations)
  3375. 741.01 s [really-safe-money-gen] coverage (1409/1610): Money\.AmountOfSpec.CHF.ADA.rate.produces valid amounts (10 mutations)
  3376. 741.95 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)
  3377. 742.49 s [really-safe-money-gen] coverage (1405/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 0 (30 mutations)
  3378. 742.50 s [really-safe-money-gen] coverage (1411/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3379. 743.51 s [really-safe-money-gen] coverage (1441/1610): Money\.AmountOfSpec.CHF.add.is associative when both succeed (9 mutations)
  3380. 744.76 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)
  3381. 746.85 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)
  3382. 747.54 s [really-safe-money-gen] coverage (1444/1610): Money\.AmountOfSpec.CHF.add.has a right-identity\: zero (10 mutations)
  3383. 748.13 s [really-safe-money-gen] coverage (1452/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 10 (3 mutations)
  3384. 748.70 s [really-safe-money-gen] coverage (1453/1610): Money\.AmountSpec.format.produces valid strings (3 mutations)
  3385. 749.94 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)
  3386. 750.87 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)
  3387. 750.96 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)
  3388. 752.11 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)
  3389. 753.20 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)
  3390. 753.71 s [really-safe-money-gen] coverage (1448/1610): Money\.AmountSpec.fraction.produces valid amounts (17 mutations)
  3391. 755.73 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)
  3392. 756.35 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)
  3393. 756.54 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)
  3394. 756.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)
  3395. 757.29 s [really-safe-money-gen] coverage (1458/1610): Money\.AmountSpec.fromRatio.fails on +Infinity (2 mutations)
  3396. 757.60 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)
  3397. 758.15 s [really-safe-money-gen] coverage (1446/1610): Money\.AmountSpec.fraction.Correctly fractions 101 with 1 % 100 (12 mutations)
  3398. 759.22 s [really-safe-money-gen] coverage (1442/1610): Money\.AmountOfSpec.CHF.add.produces valid amounts (9 mutations)
  3399. 759.38 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)
  3400. 759.42 s [really-safe-money-gen] coverage (1432/1610): Money\.AmountOfSpec.CHF.distribute.produces results that sum up to the greater whole (29 mutations)
  3401. 760.07 s [really-safe-money-gen] coverage (1439/1610): Money\.AmountOfSpec.CHF.add.is commutative (9 mutations)
  3402. 760.07 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)
  3403. 761.23 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)
  3404. 761.70 s [really-safe-money-gen] coverage (1459/1610): Money\.AmountSpec.fromRatio.succeeds on 77\.02 with quantisation factor 100 (19 mutations)
  3405. 762.33 s [really-safe-money-gen] coverage (1447/1610): Money\.AmountSpec.fraction.Produces a result that can be multiplied back (17 mutations)
  3406. 763.54 s [really-safe-money-gen] coverage (1451/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 1 (3 mutations)
  3407. 763.54 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)
  3408. 764.04 s [really-safe-money-gen] coverage (1463/1610): Money\.AmountSpec.distribute.produces results that sum up to the greater whole (25 mutations)
  3409. 764.52 s [really-safe-money-gen] coverage (1443/1610): Money\.AmountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3410. 765.50 s [really-safe-money-gen] coverage (1462/1610): Money\.AmountSpec.distribute.correctly distributes 3 into 3 (5 mutations)
  3411. 766.37 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)
  3412. 766.87 s [really-safe-money-gen] coverage (1457/1610): Money\.AmountSpec.fromRatio.fails on NaN (2 mutations)
  3413. 767.36 s [really-safe-money-gen] coverage (1440/1610): Money\.AmountOfSpec.CHF.add.has a left-identity\: zero (10 mutations)
  3414. 768.22 s [really-safe-money-gen] coverage (1480/1610): Money\.AmountSpec.multiply.fails for 2 * maxbound (8 mutations)
  3415. 770.27 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)
  3416. 770.79 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)
  3417. 772.43 s [really-safe-money-gen] coverage (1455/1610): Money\.AmountSpec.fromRatio.roundtrips with toRatio (19 mutations)
  3418. 773.01 s [really-safe-money-gen] coverage (1456/1610): Money\.AmountSpec.fromRatio.succeeds on 1 (19 mutations)
  3419. 773.04 s [really-safe-money-gen] coverage (1454/1610): Money\.AmountSpec.fromRatio.produces valid Amounts (19 mutations)
  3420. 773.57 s [really-safe-money-gen] coverage (1449/1610): Money\.AmountSpec.fraction.Correctly fractions 100 with 1 % 100 (12 mutations)
  3421. 774.76 s [really-safe-money-gen] coverage (1460/1610): Money\.AmountSpec.fromRatio.succeeds on 0 (19 mutations)
  3422. 775.45 s [really-safe-money-gen] coverage (1489/1610): Money\.AmountSpec.fromDouble.succeeds on 77\.02 with quantisation factor 100 (30 mutations)
  3423. 775.99 s [really-safe-money-gen] coverage (1477/1610): Money\.AmountSpec.sum.fails to sum above maxBound (9 mutations)
  3424. 776.22 s [really-safe-money-gen] coverage (1481/1610): Money\.AmountSpec.multiply.produces valid amounts (9 mutations)
  3425. 776.26 s [really-safe-money-gen] coverage (1461/1610): Money\.AmountSpec.fromRatio.fails on 7\.123 with quantisation factor 10 (13 mutations)
  3426. 777.34 s [really-safe-money-gen] coverage (1479/1610): Money\.AmountSpec.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3427. 779.41 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)
  3428. 780.02 s [really-safe-money-gen] coverage (1483/1610): Money\.AmountSpec.multiply.is distributive with add when both succeed (18 mutations)
  3429. 780.20 s [really-safe-money-gen] coverage (1467/1610): Money\.AmountSpec.distribute.correctly distributes 5 into 3 (7 mutations)
  3430. 780.80 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)
  3431. 781.43 s [really-safe-money-gen] coverage (1484/1610): Money\.AmountSpec.multiply.has an identity\: 1 (9 mutations)
  3432. 781.94 s [really-safe-money-gen] coverage (1476/1610): Money\.AmountSpec.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3433. 782.73 s [really-safe-money-gen] coverage (1465/1610): Money\.AmountSpec.distribute.correctly distributes 10 into 4 (7 mutations)
  3434. 783.03 s [really-safe-money-gen] coverage (1492/1610): Money\.AmountSpec.fromDouble.fails on NaN (8 mutations)
  3435. 784.55 s [really-safe-money-gen] coverage (1490/1610): Money\.AmountSpec.fromDouble.produces valid amounts (30 mutations)
  3436. 785.24 s [really-safe-money-gen] coverage (1494/1610): Money\.AmountSpec.fromDouble.fails on 7\.123 with quantisation factor 10 (24 mutations)
  3437. 785.74 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)
  3438. 786.23 s [really-safe-money-gen] coverage (1474/1610): Money\.AmountSpec.distribute.produces valid amounts (17 mutations)
  3439. 789.27 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)
  3440. 789.52 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)
  3441. 791.08 s [really-safe-money-gen] coverage (1495/1610): Money\.AmountSpec.fromDouble.fails on -Infinity (6 mutations)
  3442. 791.78 s [really-safe-money-gen] coverage (1482/1610): Money\.AmountSpec.multiply.is absorbed by 0 (10 mutations)
  3443. 791.98 s [really-safe-money-gen] coverage (1478/1610): Money\.AmountSpec.sum.correctly sums [1,2,3] to 6 (10 mutations)
  3444. 792.19 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)
  3445. 792.76 s [really-safe-money-gen] coverage (1498/1610): Money\.AmountSpec.fromDouble.succeeds on 0 (30 mutations)
  3446. 794.53 s [really-safe-money-gen] coverage (1505/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  3447. 795.13 s [really-safe-money-gen] coverage (1488/1610): Money\.AmountSpec.fromDouble.roundtrips with toDouble, back to double (30 mutations)
  3448. 795.17 s [really-safe-money-gen] coverage (1475/1610): Money\.AmountSpec.sum.produces valid amounts (10 mutations)
  3449. 796.20 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)
  3450. 796.72 s [really-safe-money-gen] coverage (1485/1610): Money\.AmountSpec.multiply.succeeds for 3 * 6 (9 mutations)
  3451. 796.77 s [really-safe-money-gen] coverage (1499/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  3452. 797.37 s [really-safe-money-gen] coverage (1487/1610): Money\.AmountSpec.fromDouble.fails on really large numbers (21 mutations)
  3453. 797.88 s [really-safe-money-gen] coverage (1496/1610): Money\.AmountSpec.fromDouble.fails on +Infinity (10 mutations)
  3454. 798.15 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)
  3455. 800.97 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)
  3456. 801.13 s [really-safe-money-gen] coverage (1516/1610): Money\.AmountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
  3457. 801.91 s [really-safe-money-gen] coverage (1503/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3458. 802.08 s [really-safe-money-gen] coverage (1493/1610): Money\.AmountSpec.fromDouble.fails on -1 (6 mutations)
  3459. 803.41 s [really-safe-money-gen] coverage (1501/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  3460. 804.15 s [really-safe-money-gen] coverage (1491/1610): Money\.AmountSpec.fromDouble.fails on really large numbers:1 (10 mutations)
  3461. 804.39 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)
  3462. 804.51 s [really-safe-money-gen] coverage (1502/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3463. 804.60 s [really-safe-money-gen] coverage (1497/1610): Money\.AmountSpec.fromDouble.succeeds on 1 (30 mutations)
  3464. 805.71 s [really-safe-money-gen] coverage (1519/1610): Money\.AmountSpec.fromRational.fails on really large numbers (19 mutations)
  3465. 808.01 s [really-safe-money-gen] coverage (1506/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  3466. 810.79 s [really-safe-money-gen] coverage (1513/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  3467. 812.18 s [really-safe-money-gen] coverage (1509/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3468. 812.89 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)
  3469. 813.46 s [really-safe-money-gen] coverage (1514/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3470. 814.12 s [really-safe-money-gen] coverage (1508/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  3471. 816.13 s [really-safe-money-gen] coverage (1522/1610): Money\.AmountSpec.fromRational.succeeds on 77\.02 with quantisation factor 100 (19 mutations)
  3472. 816.75 s [really-safe-money-gen] coverage (1526/1610): Money\.AmountSpec.fromRational.fails on NaN (2 mutations)
  3473. 817.06 s [really-safe-money-gen] coverage (1515/1610): Money\.AmountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3474. 819.56 s [really-safe-money-gen] coverage (1520/1610): Money\.AmountSpec.fromRational.fails on -Infinity (2 mutations)
  3475. 820.84 s [really-safe-money-gen] coverage (1517/1610): Money\.AmountSpec.fromRational.roundtrips with toRational (19 mutations)
  3476. 821.47 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)
  3477. 821.74 s [really-safe-money-gen] coverage (1528/1610): Money\.AmountSpec.add.is associative when both succeed (9 mutations)
  3478. 821.79 s [really-safe-money-gen] coverage (1518/1610): Money\.AmountSpec.fromRational.succeeds on 0 (19 mutations)
  3479. 822.88 s [really-safe-money-gen] coverage (1523/1610): Money\.AmountSpec.fromRational.fails on 7\.123 with quantisation factor 10 (13 mutations)
  3480. 823.92 s [really-safe-money-gen] coverage (1524/1610): Money\.AmountSpec.fromRational.fails on +Infinity (2 mutations)
  3481. 824.83 s [really-safe-money-gen] coverage (1521/1610): Money\.AmountSpec.fromRational.succeeds on 1 (19 mutations)
  3482. 825.16 s [really-safe-money-gen] coverage (1525/1610): Money\.AmountSpec.fromRational.fails on -1 (8 mutations)
  3483. 825.45 s [really-safe-money-gen] coverage (1538/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"s (0 mutations)
  3484. 825.96 s [really-safe-money-gen] coverage (1532/1610): Money\.AmountSpec.add.has a right-identity\: zero (10 mutations)
  3485. 826.17 s [really-safe-money-gen] coverage (1527/1610): Money\.AmountSpec.fromRational.produces valid Amounts (19 mutations)
  3486. 826.36 s [really-safe-money-gen] coverage (1535/1610): Money\.AmountSpec.add.has a left-identity\: zero (10 mutations)
  3487. 827.63 s [really-safe-money-gen] coverage (1530/1610): Money\.AmountSpec.add.fails for maxBound + 1 (8 mutations)
  3488. 827.95 s [really-safe-money-gen] coverage (1533/1610): Money\.AmountSpec.add.produces valid amounts (9 mutations)
  3489. 828.90 s [really-safe-money-gen] coverage (1542/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"s (0 mutations)
  3490. 829.53 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)
  3491. 829.57 s [really-safe-money-gen] coverage (1531/1610): Money\.AmountSpec.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3492. 829.74 s [really-safe-money-gen] coverage (1529/1610): Money\.AmountSpec.add.is commutative (9 mutations)
  3493. 830.01 s [really-safe-money-gen] coverage (1536/1610): Money\.AmountSpec.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3494. 830.09 s [really-safe-money-gen] coverage (1544/1610): Money\.AmountSpec.GenValid Amount.genValid \:\: Gen Amount.only generates valid 'Amount's (0 mutations)
  3495. 830.28 s [really-safe-money-gen] coverage (1550/1610): Money\.AmountSpec.rate.computes this USD to CHF rate correctly (10 mutations)
  3496. 831.44 s [really-safe-money-gen] coverage (1534/1610): Money\.AmountSpec.add.fails for maxBound + maxBound (8 mutations)
  3497. 835.47 s [really-safe-money-gen] coverage (1537/1610): Money\.AmountSpec.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3498. 836.60 s [really-safe-money-gen] coverage (1548/1610): Money\.AmountSpec.rate.produces valid conversion rates (10 mutations)
  3499. 838.63 s [really-safe-money-gen] coverage (1556/1610): Money\.AmountSpec.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3500. 838.83 s [really-safe-money-gen] coverage (1570/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise (17 mutations)
  3501. 839.72 s [really-safe-money-gen] coverage (1558/1610): Money\.AmountSpec.subtract.fails for 0 - 1 (9 mutations)
  3502. 840.40 s [really-safe-money-gen] coverage (1546/1610): Money\.AmountSpec.toDouble.succeeds on 7702 with quantisation factor 100 (0 mutations)
  3503. 840.68 s [really-safe-money-gen] coverage (1559/1610): Money\.AmountSpec.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3504. 840.96 s [really-safe-money-gen] coverage (1551/1610): Money\.AmountSpec.zero.is valid (1 mutations)
  3505. 840.99 s [really-safe-money-gen] coverage (1543/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is symmetric for "valid Amount"s (0 mutations)
  3506. 841.06 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)
  3507. 841.62 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)
  3508. 842.27 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)
  3509. 843.12 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)
  3510. 843.36 s [really-safe-money-gen] coverage (1545/1610): Money\.AmountSpec.toDouble.produces valid Doubles (0 mutations)
  3511. 844.90 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)
  3512. 845.16 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)
  3513. 846.11 s [really-safe-money-gen] coverage (1553/1610): Money\.AmountSpec.convert.converts this USD to CHF correctly (22 mutations)
  3514. 846.35 s [really-safe-money-gen] coverage (1547/1610): Money\.AmountSpec.toDouble.produces an infinite Double with quantisation factor 0 (0 mutations)
  3515. 846.59 s [really-safe-money-gen] coverage (1541/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"s (0 mutations)
  3516. 848.33 s [really-safe-money-gen] coverage (1554/1610): Money\.AmountSpec.convert.produces valid amounts (25 mutations)
  3517. 848.91 s [really-safe-money-gen] coverage (1555/1610): Money\.AmountSpec.toRatio.produces an invalid Rational with quantisation factor 0 (1 mutations)
  3518. 849.51 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)
  3519. 852.04 s [really-safe-money-gen] coverage (1557/1610): Money\.AmountSpec.subtract.fails for 0 - maxBound (9 mutations)
  3520. 852.75 s [really-safe-money-gen] coverage (1569/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.produces valid factors (23 mutations)
  3521. 854.13 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)
  3522. 854.34 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)
  3523. 854.98 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)
  3524. 856.41 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)
  3525. 856.97 s [really-safe-money-gen] coverage (1571/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise:1 (17 mutations)
  3526. 858.78 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)
  3527. 861.22 s [really-safe-money-gen] coverage (1588/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"s (1 mutations)
  3528. 861.24 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)
  3529. 861.82 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)
  3530. 862.87 s [really-safe-money-gen] coverage (1597/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3531. 862.96 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)
  3532. 863.59 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)
  3533. 864.25 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)
  3534. 864.37 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)
  3535. 865.40 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)
  3536. 866.10 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)
  3537. 866.62 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)
  3538. 867.14 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)
  3539. 870.17 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)
  3540. 871.39 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)
  3541. 871.47 s [really-safe-money-gen] coverage (1606/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  3542. 871.72 s [really-safe-money-gen] coverage (1592/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"s (1 mutations)
  3543. 872.41 s [really-safe-money-gen] coverage (1591/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is symmetric for "valid Currency"s (1 mutations)
  3544. 872.68 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)
  3545. 873.23 s [really-safe-money-gen] coverage (1603/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  3546. 874.96 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)
  3547. 875.72 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)
  3548. 875.74 s [really-safe-money-gen] coverage (1587/1610): Money\.AmountSpec.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3549. 877.87 s [really-safe-money-gen] coverage (1609/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3550. 878.51 s [really-safe-money-gen] coverage (1593/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"s (1 mutations)
  3551. 879.65 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)
  3552. 879.92 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)
  3553. 881.59 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)
  3554. 884.29 s [really-safe-money-gen] coverage (1600/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  3555. 885.99 s [really-safe-money-gen] coverage (1338/1610): Money\.AmountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3556. 886.02 s [really-safe-money-gen] coverage (1598/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  3557. 886.02 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)
  3558. 886.55 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)
  3559. 886.76 s [really-safe-money-gen] coverage (1601/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3560. 888.92 s [really-safe-money-gen] coverage (1328/1610): Money\.AmountOfSpec.BTC.ADA.convert.produces valid amounts (25 mutations)
  3561. 889.20 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)
  3562. 889.23 s [really-safe-money-gen] coverage (1337/1610): Money\.AmountOfSpec.BTC.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3563. 889.30 s [really-safe-money-gen] coverage (1610/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  3564. 889.81 s [really-safe-money-gen] coverage (1332/1610): Money\.AmountOfSpec.BTC.BTC.rate.produces valid amounts (10 mutations)
  3565. 889.84 s [really-safe-money-gen] coverage (1327/1610): Money\.AmountOfSpec.BTC.add.is associative when both succeed (9 mutations)
  3566. 890.35 s [really-safe-money-gen] coverage (1605/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  3567. 890.51 s [really-safe-money-gen] coverage (1323/1610): Money\.AmountOfSpec.BTC.add.has a left-identity\: zero (10 mutations)
  3568. 890.68 s [really-safe-money-gen] coverage (1330/1610): Money\.AmountOfSpec.BTC.zero.is valid (1 mutations)
  3569. 891.18 s [really-safe-money-gen] coverage (1322/1610): Money\.AmountOfSpec.BTC.add.has a right-identity\: zero (10 mutations)
  3570. 892.61 s [really-safe-money-gen] coverage (1604/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3571. 892.77 s [really-safe-money-gen] coverage (1325/1610): Money\.AmountOfSpec.BTC.add.is commutative (9 mutations)
  3572. 893.88 s [really-safe-money-gen] coverage (1336/1610): Money\.AmountOfSpec.BTC.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3573. 894.31 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)
  3574. 895.14 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)
  3575. 895.61 s [really-safe-money-gen] coverage (1335/1610): Money\.AmountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3576. 896.33 s [really-safe-money-gen] coverage (1331/1610): Money\.AmountOfSpec.BTC.BTC.convert.produces valid amounts (25 mutations)
  3577. 896.46 s [really-safe-money-gen] coverage (1329/1610): Money\.AmountOfSpec.BTC.ADA.rate.produces valid amounts (10 mutations)
  3578. 896.50 s [really-safe-money-gen] coverage (1333/1610): Money\.AmountOfSpec.BTC.toDouble.produces valid Doubles (0 mutations)
  3579. 897.76 s [really-safe-money-gen] coverage (1326/1610): Money\.AmountOfSpec.BTC.add.produces valid amounts (9 mutations)
  3580. 902.00 s [really-safe-money-gen] coverage (1314/1610): Money\.AmountOfSpec.BTC.USD.rate.produces valid amounts (10 mutations)
  3581. 902.16 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)
  3582. 903.37 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)
  3583. 903.55 s [really-safe-money-gen] coverage (1324/1610): Money\.AmountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3584. 903.57 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)
  3585. 903.64 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)
  3586. 903.96 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)
  3587. 904.06 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)
  3588. 904.19 s [really-safe-money-gen] coverage (1315/1610): Money\.AmountOfSpec.BTC.USD.convert.produces valid amounts (25 mutations)
  3589. 904.42 s [really-safe-money-gen] coverage (1312/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on NaN (8 mutations)
  3590. 914.41 s [really-safe-money-gen] coverage (1582/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.produces valid decimal literals (52 mutations)
  3591. 930.99 s [really-safe-money-gen] coverage (1583/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.roundtrips with Amount\.fromDecimalLiteral (74 mutations)
  3592. 932.03 s [really-safe-money-gen] mutation-nix: running mutations
  3593. 941.95 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  3594. 941.97 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  3595. 941.97 s [really-safe-money-gen] fmap
  3596. 941.97 s [really-safe-money-gen] ( ( \theoreticalResult ->
  3597. 941.98 s [really-safe-money-gen] let rounder :: Rational -> Integer
  3598. 941.98 s [really-safe-money-gen] rounder = case r of
  3599. 941.98 s [really-safe-money-gen] RoundUp -> ceiling
  3600. 941.98 s [really-safe-money-gen] - RoundDown -> floor
  3601. 941.98 s [really-safe-money-gen] RoundNearest -> round
  3602. 941.98 s [really-safe-money-gen] roundedResult :: Integer
  3603. 941.98 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  3604. 941.98 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3605. 941.98 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  3606. 941.98 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  3607. 941.98 s [really-safe-money-gen] fmap
  3608. 941.98 s [really-safe-money-gen] ( ( \theoreticalResult ->
  3609. 941.98 s [really-safe-money-gen] let rounder :: Rational -> Integer
  3610. 941.98 s [really-safe-money-gen] rounder = case r of
  3611. 941.98 s [really-safe-money-gen] - RoundUp -> ceiling
  3612. 941.98 s [really-safe-money-gen] RoundDown -> floor
  3613. 941.98 s [really-safe-money-gen] RoundNearest -> round
  3614. 941.98 s [really-safe-money-gen] roundedResult :: Integer
  3615. 941.98 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  3616. 941.98 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3617. 941.98 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  3618. 941.98 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  3619. 941.98 s [really-safe-money-gen] RoundNearest -> round
  3620. 941.98 s [really-safe-money-gen] roundedResult :: Integer
  3621. 941.98 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  3622. 941.98 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3623. 941.98 s [really-safe-money-gen] LT -> RoundedDown
  3624. 941.98 s [really-safe-money-gen] EQ -> DidNotRound
  3625. 941.98 s [really-safe-money-gen] - GT -> RoundedUp
  3626. 941.98 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  3627. 941.98 s [really-safe-money-gen] )
  3628. 941.98 s [really-safe-money-gen] . Prelude.sum
  3629. 941.98 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  3630. 941.98 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  3631. 941.98 s [really-safe-money-gen] RoundNearest -> round
  3632. 941.98 s [really-safe-money-gen] roundedResult :: Integer
  3633. 941.98 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  3634. 941.98 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3635. 941.98 s [really-safe-money-gen] LT -> RoundedDown
  3636. 941.98 s [really-safe-money-gen] - EQ -> DidNotRound
  3637. 941.98 s [really-safe-money-gen] GT -> RoundedUp
  3638. 941.99 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  3639. 941.99 s [really-safe-money-gen] )
  3640. 941.99 s [really-safe-money-gen] . Prelude.sum
  3641. 941.99 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
  3642. 941.99 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  3643. 941.99 s [really-safe-money-gen] Just a -> do
  3644. 941.99 s [really-safe-money-gen] r <- Account.subtract a account
  3645. 941.99 s [really-safe-money-gen] Just $
  3646. 941.99 s [really-safe-money-gen] - if r == Account.zero
  3647. 941.99 s [really-safe-money-gen] + if not (r == Account.zero)
  3648. 941.99 s [really-safe-money-gen] then M.delete currency m
  3649. 941.99 s [really-safe-money-gen] else M.insert currency r m
  3650. 941.99 s [really-safe-money-gen]
  3651. 941.99 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  3652. 941.99 s [really-safe-money-gen] @@ -126,14 +126,8 @@
  3653. 941.99 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  3654. 941.99 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  3655. 941.99 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  3656. 941.99 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3657. 941.99 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  3658. 941.99 s [really-safe-money-gen] - Just a -> do
  3659. 941.99 s [really-safe-money-gen] - r <- Account.subtract a account
  3660. 941.99 s [really-safe-money-gen] - Just $
  3661. 941.99 s [really-safe-money-gen] - if r == Account.zero
  3662. 941.99 s [really-safe-money-gen] - then M.delete currency m
  3663. 941.99 s [really-safe-money-gen] - else M.insert currency r m
  3664. 941.99 s [really-safe-money-gen]
  3665. 941.99 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  3666. 941.99 s [really-safe-money-gen] --
  3667. 941.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  3668. 941.99 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  3669. 941.99 s [really-safe-money-gen] Just a -> do
  3670. 941.99 s [really-safe-money-gen] r <- Account.subtract a account
  3671. 941.99 s [really-safe-money-gen] Just $
  3672. 941.99 s [really-safe-money-gen] - if r == Account.zero
  3673. 941.99 s [really-safe-money-gen] + if True
  3674. 941.99 s [really-safe-money-gen] then M.delete currency m
  3675. 941.99 s [really-safe-money-gen] else M.insert currency r m
  3676. 941.99 s [really-safe-money-gen]
  3677. 941.99 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  3678. 941.99 s [really-safe-money-gen] @@ -112,14 +112,13 @@
  3679. 941.99 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  3680. 941.99 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  3681. 941.99 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  3682. 941.99 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3683. 941.99 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
  3684. 941.99 s [really-safe-money-gen] Just a -> do
  3685. 941.99 s [really-safe-money-gen] r <- Account.add a account
  3686. 941.99 s [really-safe-money-gen] Just $
  3687. 941.99 s [really-safe-money-gen] if r == Account.zero
  3688. 941.99 s [really-safe-money-gen] then M.delete currency m
  3689. 941.99 s [really-safe-money-gen] else M.insert currency r m
  3690. 941.99 s [really-safe-money-gen]
  3691. 941.99 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  3692. 941.99 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3693. 941.99 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
  3694. 941.99 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  3695. 941.99 s [really-safe-money-gen] ( \(currency, a) ->
  3696. 941.99 s [really-safe-money-gen] ( \(cr, qf2) ->
  3697. 942.00 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  3698. 942.00 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  3699. 942.00 s [really-safe-money-gen] - * toInteger (numerator factor)
  3700. 942.00 s [really-safe-money-gen] + + toInteger (numerator factor)
  3701. 942.00 s [really-safe-money-gen] % toInteger (denominator factor)
  3702. 942.00 s [really-safe-money-gen] )
  3703. 942.00 s [really-safe-money-gen] <$> func currency
  3704. 942.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  3705. 942.00 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  3706. 942.00 s [really-safe-money-gen] Just a -> do
  3707. 942.00 s [really-safe-money-gen] r <- Account.add a account
  3708. 942.00 s [really-safe-money-gen] Just $
  3709. 942.00 s [really-safe-money-gen] - if r == Account.zero
  3710. 942.00 s [really-safe-money-gen] + if False
  3711. 942.00 s [really-safe-money-gen] then M.delete currency m
  3712. 942.00 s [really-safe-money-gen] else M.insert currency r m
  3713. 942.00 s [really-safe-money-gen]
  3714. 942.00 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  3715. 942.00 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  3716. 942.00 s [really-safe-money-gen]
  3717. 942.00 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  3718. 942.00 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3719. 942.00 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  3720. 942.00 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  3721. 942.00 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  3722. 942.00 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  3723. 942.00 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3724. 942.00 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  3725. 942.00 s [really-safe-money-gen] @@ -112,14 +112,8 @@
  3726. 942.00 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  3727. 942.00 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  3728. 942.00 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  3729. 942.00 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3730. 942.00 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  3731. 942.00 s [really-safe-money-gen] - Just a -> do
  3732. 942.00 s [really-safe-money-gen] - r <- Account.add a account
  3733. 942.00 s [really-safe-money-gen] - Just $
  3734. 942.00 s [really-safe-money-gen] - if r == Account.zero
  3735. 942.00 s [really-safe-money-gen] - then M.delete currency m
  3736. 942.00 s [really-safe-money-gen] - else M.insert currency r m
  3737. 942.00 s [really-safe-money-gen]
  3738. 942.00 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  3739. 942.00 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3740. 942.00 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  3741. 942.00 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  3742. 942.00 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  3743. 942.00 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3744. 942.00 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  3745. 942.00 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  3746. 942.00 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  3747. 942.00 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  3748. 942.00 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3749. 942.00 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  3750. 942.00 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  3751. 942.00 s [really-safe-money-gen] @@ -126,14 +126,13 @@
  3752. 942.00 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  3753. 942.00 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  3754. 942.00 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  3755. 942.00 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3756. 942.00 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
  3757. 942.00 s [really-safe-money-gen] Just a -> do
  3758. 942.00 s [really-safe-money-gen] r <- Account.subtract a account
  3759. 942.00 s [really-safe-money-gen] Just $
  3760. 942.00 s [really-safe-money-gen] if r == Account.zero
  3761. 942.00 s [really-safe-money-gen] then M.delete currency m
  3762. 942.00 s [really-safe-money-gen] else M.insert currency r m
  3763. 942.00 s [really-safe-money-gen]
  3764. 942.01 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  3765. 942.01 s [really-safe-money-gen] --
  3766. 942.01 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
  3767. 942.01 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  3768. 942.01 s [really-safe-money-gen] ( \(currency, a) ->
  3769. 942.01 s [really-safe-money-gen] ( \(cr, qf2) ->
  3770. 942.01 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  3771. 942.01 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  3772. 948.02 s [really-safe-money-gen] - * toInteger (numerator factor)
  3773. 948.02 s [really-safe-money-gen] + - toInteger (numerator factor)
  3774. 948.04 s [really-safe-money-gen] % toInteger (denominator factor)
  3775. 948.04 s [really-safe-money-gen] )
  3776. 948.04 s [really-safe-money-gen] <$> func currency
  3777. 948.04 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  3778. 948.04 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  3779. 948.04 s [really-safe-money-gen] Just a -> do
  3780. 948.04 s [really-safe-money-gen] r <- Account.subtract a account
  3781. 948.04 s [really-safe-money-gen] Just $
  3782. 948.04 s [really-safe-money-gen] - if r == Account.zero
  3783. 948.04 s [really-safe-money-gen] + if False
  3784. 948.04 s [really-safe-money-gen] then M.delete currency m
  3785. 948.04 s [really-safe-money-gen] else M.insert currency r m
  3786. 948.04 s [really-safe-money-gen]
  3787. 948.04 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  3788. 948.04 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  3789. 948.04 s [really-safe-money-gen] fmap
  3790. 948.04 s [really-safe-money-gen] ( ( \theoreticalResult ->
  3791. 948.04 s [really-safe-money-gen] let rounder :: Rational -> Integer
  3792. 948.04 s [really-safe-money-gen] rounder = case r of
  3793. 948.04 s [really-safe-money-gen] RoundUp -> ceiling
  3794. 948.04 s [really-safe-money-gen] RoundDown -> floor
  3795. 948.05 s [really-safe-money-gen] - RoundNearest -> round
  3796. 948.05 s [really-safe-money-gen] roundedResult :: Integer
  3797. 948.05 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  3798. 948.05 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3799. 948.05 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  3800. 948.05 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  3801. 948.05 s [really-safe-money-gen] RoundNearest -> round
  3802. 948.05 s [really-safe-money-gen] roundedResult :: Integer
  3803. 948.05 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  3804. 948.05 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3805. 948.05 s [really-safe-money-gen] - LT -> RoundedDown
  3806. 948.05 s [really-safe-money-gen] EQ -> DidNotRound
  3807. 948.05 s [really-safe-money-gen] GT -> RoundedUp
  3808. 948.05 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  3809. 948.05 s [really-safe-money-gen] )
  3810. 948.05 s [really-safe-money-gen] . Prelude.sum
  3811. 948.05 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
  3812. 948.05 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  3813. 948.05 s [really-safe-money-gen] [ genericValidate ma,
  3814. 948.05 s [really-safe-money-gen] decorateMap m $ \_ a ->
  3815. 948.05 s [really-safe-money-gen] declare "The account is not zero" $
  3816. 948.05 s [really-safe-money-gen] - a /= Account.zero
  3817. 948.05 s [really-safe-money-gen] + not (a /= Account.zero)
  3818. 948.05 s [really-safe-money-gen] ]
  3819. 948.05 s [really-safe-money-gen]
  3820. 948.05 s [really-safe-money-gen] -- TODO no empty currencies
  3821. 948.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  3822. 948.05 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  3823. 948.05 s [really-safe-money-gen]
  3824. 948.05 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  3825. 948.05 s [really-safe-money-gen] fromAccount currency amount =
  3826. 948.05 s [really-safe-money-gen] - if amount == Account.zero
  3827. 948.05 s [really-safe-money-gen] + if True
  3828. 948.05 s [really-safe-money-gen] then zero
  3829. 948.05 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  3830. 948.05 s [really-safe-money-gen]
  3831. 948.05 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  3832. 948.05 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  3833. 948.05 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  3834. 948.05 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  3835. 948.05 s [really-safe-money-gen] mconcat
  3836. 948.05 s [really-safe-money-gen] - [ genericValidate ma,
  3837. 948.05 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  3838. 948.05 s [really-safe-money-gen] - declare "The account is not zero" $
  3839. 948.05 s [really-safe-money-gen] - a /= Account.zero
  3840. 948.05 s [really-safe-money-gen] ]
  3841. 948.05 s [really-safe-money-gen]
  3842. 948.06 s [really-safe-money-gen] -- TODO no empty currencies
  3843. 948.06 s [really-safe-money-gen]
  3844. 948.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  3845. 948.06 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  3846. 948.06 s [really-safe-money-gen] Just a -> do
  3847. 948.06 s [really-safe-money-gen] r <- Account.add a account
  3848. 948.06 s [really-safe-money-gen] Just $
  3849. 948.06 s [really-safe-money-gen] - if r == Account.zero
  3850. 948.06 s [really-safe-money-gen] + if True
  3851. 948.06 s [really-safe-money-gen] then M.delete currency m
  3852. 948.06 s [really-safe-money-gen] else M.insert currency r m
  3853. 948.06 s [really-safe-money-gen]
  3854. 948.06 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  3855. 948.06 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  3856. 948.06 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  3857. 948.06 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3858. 948.06 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  3859. 948.06 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  3860. 948.06 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  3861. 948.06 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  3862. 948.06 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3863. 948.06 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  3864. 948.06 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
  3865. 948.06 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  3866. 948.06 s [really-safe-money-gen] Just a -> do
  3867. 948.06 s [really-safe-money-gen] r <- Account.add a account
  3868. 948.06 s [really-safe-money-gen] Just $
  3869. 948.06 s [really-safe-money-gen] - if r == Account.zero
  3870. 948.06 s [really-safe-money-gen] + if not (r == Account.zero)
  3871. 948.06 s [really-safe-money-gen] then M.delete currency m
  3872. 948.06 s [really-safe-money-gen] else M.insert currency r m
  3873. 948.06 s [really-safe-money-gen]
  3874. 948.06 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  3875. 948.06 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  3876. 948.06 s [really-safe-money-gen]
  3877. 948.06 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  3878. 948.06 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3879. 948.06 s [really-safe-money-gen] -addAccount m _ (Positive (Amount 0)) = Just m
  3880. 948.06 s [really-safe-money-gen] +addAccount m _ (Positive (Amount 0)) = Nothing
  3881. 948.06 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  3882. 948.06 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  3883. 948.06 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  3884. 948.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  3885. 948.06 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  3886. 948.06 s [really-safe-money-gen]
  3887. 948.06 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  3888. 948.06 s [really-safe-money-gen] fromAccount currency amount =
  3889. 948.06 s [really-safe-money-gen] - if amount == Account.zero
  3890. 948.06 s [really-safe-money-gen] + if False
  3891. 948.06 s [really-safe-money-gen] then zero
  3892. 948.06 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  3893. 948.07 s [really-safe-money-gen]
  3894. 948.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3895. 948.07 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3896. 948.07 s [really-safe-money-gen] let aa1 = abs a1
  3897. 948.07 s [really-safe-money-gen] aa2 = abs a2
  3898. 948.07 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3899. 948.07 s [really-safe-money-gen] in case (a1, a2) of
  3900. 948.07 s [really-safe-money-gen] - (Positive _, Positive _) -> mr
  3901. 948.07 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3902. 948.07 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3903. 948.07 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3904. 948.07 s [really-safe-money-gen]
  3905. 948.07 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3906. 948.07 s [really-safe-money-gen] -- another currency using a conversion rate.
  3907. 948.07 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  3908. 948.07 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  3909. 948.07 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  3910. 948.07 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  3911. 948.07 s [really-safe-money-gen] mconcat
  3912. 948.07 s [really-safe-money-gen] - [ genericValidate ma,
  3913. 948.07 s [really-safe-money-gen] decorateMap m $ \_ a ->
  3914. 948.07 s [really-safe-money-gen] declare "The account is not zero" $
  3915. 948.07 s [really-safe-money-gen] a /= Account.zero
  3916. 948.07 s [really-safe-money-gen] ]
  3917. 948.07 s [really-safe-money-gen]
  3918. 948.07 s [really-safe-money-gen] -- TODO no empty currencies
  3919. 948.07 s [really-safe-money-gen]
  3920. 948.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3921. 948.07 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3922. 948.07 s [really-safe-money-gen] let aa1 = abs a1
  3923. 948.07 s [really-safe-money-gen] aa2 = abs a2
  3924. 948.07 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3925. 948.07 s [really-safe-money-gen] in case (a1, a2) of
  3926. 948.07 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3927. 948.07 s [really-safe-money-gen] - (Positive _, Negative _) -> Nothing
  3928. 948.07 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3929. 948.07 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3930. 948.07 s [really-safe-money-gen]
  3931. 948.07 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3932. 948.07 s [really-safe-money-gen] -- another currency using a conversion rate.
  3933. 948.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3934. 948.07 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3935. 948.07 s [really-safe-money-gen] let aa1 = abs a1
  3936. 948.07 s [really-safe-money-gen] aa2 = abs a2
  3937. 948.07 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3938. 948.07 s [really-safe-money-gen] in case (a1, a2) of
  3939. 948.07 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3940. 948.07 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3941. 948.07 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3942. 948.07 s [really-safe-money-gen] - (Negative _, Negative _) -> mr
  3943. 948.07 s [really-safe-money-gen]
  3944. 948.07 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3945. 948.07 s [really-safe-money-gen] -- another currency using a conversion rate.
  3946. 948.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
  3947. 948.07 s [really-safe-money-gen] @@ -588,9 +588,8 @@
  3948. 948.07 s [really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
  3949. 948.07 s [really-safe-money-gen] convert r qf1 a cr qf2 =
  3950. 948.07 s [really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
  3951. 948.07 s [really-safe-money-gen] in case a of
  3952. 948.07 s [really-safe-money-gen] - Positive _ -> (Positive <$> ma, mr)
  3953. 948.07 s [really-safe-money-gen] Negative _ -> (Negative <$> ma, mr)
  3954. 948.07 s [really-safe-money-gen]
  3955. 948.07 s [really-safe-money-gen] -- | Format an account of money without a symbol.
  3956. 948.07 s [really-safe-money-gen] --
  3957. 948.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
  3958. 948.07 s [really-safe-money-gen] @@ -588,9 +588,8 @@
  3959. 948.08 s [really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
  3960. 948.08 s [really-safe-money-gen] convert r qf1 a cr qf2 =
  3961. 948.08 s [really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
  3962. 948.08 s [really-safe-money-gen] in case a of
  3963. 948.08 s [really-safe-money-gen] Positive _ -> (Positive <$> ma, mr)
  3964. 949.96 s [really-safe-money-gen] - Negative _ -> (Negative <$> ma, mr)
  3965. 949.96 s [really-safe-money-gen]
  3966. 949.96 s [really-safe-money-gen] -- | Format an account of money without a symbol.
  3967. 949.96 s [really-safe-money-gen] --
  3968. 949.96 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:421:32-33
  3969. 949.96 s [really-safe-money-gen] @@ -418,7 +418,7 @@
  3970. 949.96 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3971. 949.96 s [really-safe-money-gen] multiply factor account =
  3972. 949.96 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3973. 949.96 s [really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
  3974. 949.96 s [really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
  3975. 949.96 s [really-safe-money-gen] (EQ, _) -> const zero
  3976. 949.96 s [really-safe-money-gen] (_, EQ) -> const zero
  3977. 949.96 s [really-safe-money-gen] (GT, GT) -> Positive
  3978. 949.96 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3979. 949.96 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3980. 949.97 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3981. 949.97 s [really-safe-money-gen] multiply factor account =
  3982. 949.97 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3983. 949.97 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3984. 949.97 s [really-safe-money-gen] - (EQ, _) -> const zero
  3985. 949.97 s [really-safe-money-gen] (_, EQ) -> const zero
  3986. 949.97 s [really-safe-money-gen] (GT, GT) -> Positive
  3987. 949.97 s [really-safe-money-gen] (GT, LT) -> Negative
  3988. 949.97 s [really-safe-money-gen] (LT, GT) -> Negative
  3989. 949.97 s [really-safe-money-gen] (LT, LT) -> Positive
  3990. 949.97 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3991. 949.97 s [really-safe-money-gen]
  3992. 949.97 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3993. 949.97 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3994. 949.97 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3995. 949.97 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3996. 949.97 s [really-safe-money-gen] multiply factor account =
  3997. 949.97 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3998. 949.97 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3999. 949.97 s [really-safe-money-gen] (EQ, _) -> const zero
  4000. 949.97 s [really-safe-money-gen] - (_, EQ) -> const zero
  4001. 949.97 s [really-safe-money-gen] (GT, GT) -> Positive
  4002. 949.97 s [really-safe-money-gen] (GT, LT) -> Negative
  4003. 949.97 s [really-safe-money-gen] (LT, GT) -> Negative
  4004. 949.97 s [really-safe-money-gen] (LT, LT) -> Positive
  4005. 949.97 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  4006. 949.97 s [really-safe-money-gen]
  4007. 949.97 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  4008. 949.97 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  4009. 949.97 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  4010. 949.97 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  4011. 949.97 s [really-safe-money-gen] multiply factor account =
  4012. 949.97 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  4013. 949.97 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  4014. 949.97 s [really-safe-money-gen] (EQ, _) -> const zero
  4015. 949.97 s [really-safe-money-gen] (_, EQ) -> const zero
  4016. 949.97 s [really-safe-money-gen] - (GT, GT) -> Positive
  4017. 949.97 s [really-safe-money-gen] (GT, LT) -> Negative
  4018. 949.97 s [really-safe-money-gen] (LT, GT) -> Negative
  4019. 949.98 s [really-safe-money-gen] (LT, LT) -> Positive
  4020. 949.98 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  4021. 949.98 s [really-safe-money-gen]
  4022. 949.98 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  4023. 949.98 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  4024. 949.98 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  4025. 949.98 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  4026. 949.98 s [really-safe-money-gen] multiply factor account =
  4027. 949.98 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  4028. 949.98 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  4029. 949.98 s [really-safe-money-gen] (EQ, _) -> const zero
  4030. 949.98 s [really-safe-money-gen] (_, EQ) -> const zero
  4031. 949.98 s [really-safe-money-gen] (GT, GT) -> Positive
  4032. 949.98 s [really-safe-money-gen] (GT, LT) -> Negative
  4033. 949.98 s [really-safe-money-gen] - (LT, GT) -> Negative
  4034. 949.98 s [really-safe-money-gen] (LT, LT) -> Positive
  4035. 949.98 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  4036. 949.98 s [really-safe-money-gen]
  4037. 949.98 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  4038. 949.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  4039. 949.98 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  4040. 949.98 s [really-safe-money-gen] [ genericValidate ma,
  4041. 949.98 s [really-safe-money-gen] decorateMap m $ \_ a ->
  4042. 949.98 s [really-safe-money-gen] declare "The account is not zero" $
  4043. 949.98 s [really-safe-money-gen] - a /= Account.zero
  4044. 949.98 s [really-safe-money-gen] + False
  4045. 949.98 s [really-safe-money-gen] ]
  4046. 949.98 s [really-safe-money-gen]
  4047. 949.98 s [really-safe-money-gen] -- TODO no empty currencies
  4048. 949.98 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  4049. 949.98 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  4050. 949.98 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  4051. 949.98 s [really-safe-money-gen] multiply factor account =
  4052. 949.98 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  4053. 949.98 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  4054. 949.98 s [really-safe-money-gen] (EQ, _) -> const zero
  4055. 949.98 s [really-safe-money-gen] (_, EQ) -> const zero
  4056. 949.98 s [really-safe-money-gen] (GT, GT) -> Positive
  4057. 949.98 s [really-safe-money-gen] - (GT, LT) -> Negative
  4058. 949.98 s [really-safe-money-gen] (LT, GT) -> Negative
  4059. 949.98 s [really-safe-money-gen] (LT, LT) -> Positive
  4060. 949.98 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  4061. 949.98 s [really-safe-money-gen]
  4062. 949.98 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  4063. 949.99 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
  4064. 949.99 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  4065. 949.99 s [really-safe-money-gen]
  4066. 949.99 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  4067. 949.99 s [really-safe-money-gen] fromAccount currency amount =
  4068. 949.99 s [really-safe-money-gen] - if amount == Account.zero
  4069. 949.99 s [really-safe-money-gen] + if not (amount == Account.zero)
  4070. 949.99 s [really-safe-money-gen] then zero
  4071. 949.99 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  4072. 949.99 s [really-safe-money-gen]
  4073. 949.99 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  4074. 949.99 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4075. 949.99 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4076. 949.99 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4077. 949.99 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4078. 949.99 s [really-safe-money-gen] - if a >= zero
  4079. 949.99 s [really-safe-money-gen] + if a > zero
  4080. 949.99 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4081. 949.99 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4082. 949.99 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4083. 949.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  4084. 949.99 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  4085. 949.99 s [really-safe-money-gen] [ genericValidate ma,
  4086. 949.99 s [really-safe-money-gen] decorateMap m $ \_ a ->
  4087. 949.99 s [really-safe-money-gen] declare "The account is not zero" $
  4088. 949.99 s [really-safe-money-gen] - a /= Account.zero
  4089. 949.99 s [really-safe-money-gen] + True
  4090. 949.99 s [really-safe-money-gen] ]
  4091. 949.99 s [really-safe-money-gen]
  4092. 949.99 s [really-safe-money-gen] -- TODO no empty currencies
  4093. 949.99 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  4094. 949.99 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4095. 949.99 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4096. 949.99 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4097. 949.99 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4098. 949.99 s [really-safe-money-gen] - if a >= zero
  4099. 949.99 s [really-safe-money-gen] + if a <= zero
  4100. 949.99 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4101. 949.99 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4102. 949.99 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4103. 949.99 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  4104. 949.99 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4105. 949.99 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4106. 949.99 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4107. 949.99 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4108. 949.99 s [really-safe-money-gen] - if a >= zero
  4109. 949.99 s [really-safe-money-gen] + if a < zero
  4110. 949.99 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4111. 949.99 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4112. 949.99 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4113. 950.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  4114. 950.00 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4115. 950.00 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4116. 950.00 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4117. 950.00 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4118. 950.00 s [really-safe-money-gen] - if a >= zero
  4119. 950.00 s [really-safe-money-gen] + if False
  4120. 950.00 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4121. 950.00 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4122. 950.00 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4123. 950.00 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  4124. 950.00 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4125. 950.00 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4126. 950.00 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4127. 950.00 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4128. 950.00 s [really-safe-money-gen] - if a >= zero
  4129. 950.00 s [really-safe-money-gen] + if a > zero
  4130. 953.99 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4131. 954.07 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4132. 954.07 s [really-safe-money-gen]
  4133. 954.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  4134. 954.07 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4135. 954.07 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4136. 954.07 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4137. 954.07 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4138. 954.07 s [really-safe-money-gen] - if a >= zero
  4139. 954.07 s [really-safe-money-gen] + if True
  4140. 954.07 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4141. 954.07 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4142. 954.07 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4143. 954.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  4144. 954.07 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4145. 954.07 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4146. 954.07 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4147. 954.07 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4148. 954.07 s [really-safe-money-gen] - if a >= zero
  4149. 954.08 s [really-safe-money-gen] + if False
  4150. 954.08 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4151. 954.08 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4152. 954.08 s [really-safe-money-gen]
  4153. 954.08 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  4154. 954.08 s [really-safe-money-gen] @@ -444,17 +444,16 @@
  4155. 954.08 s [really-safe-money-gen] distribute a f =
  4156. 954.08 s [really-safe-money-gen] let aa = abs a
  4157. 954.08 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  4158. 954.08 s [really-safe-money-gen] in case Amount.distribute aa af of
  4159. 954.08 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4160. 954.08 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4161. 954.08 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4162. 954.08 s [really-safe-money-gen] if a >= zero
  4163. 954.08 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4164. 954.08 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4165. 954.08 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4166. 954.08 s [really-safe-money-gen] if a >= zero
  4167. 954.08 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4168. 954.08 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4169. 954.08 s [really-safe-money-gen]
  4170. 954.08 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  4171. 954.08 s [really-safe-money-gen]
  4172. 954.08 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23
  4173. 954.08 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4174. 954.08 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4175. 954.08 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4176. 954.08 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4177. 954.08 s [really-safe-money-gen] - if a >= zero
  4178. 954.08 s [really-safe-money-gen] + if not (a >= zero)
  4179. 954.08 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4180. 954.08 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4181. 954.09 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4182. 954.09 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23
  4183. 954.09 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4184. 954.09 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4185. 954.09 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4186. 954.09 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4187. 954.09 s [really-safe-money-gen] - if a >= zero
  4188. 954.09 s [really-safe-money-gen] + if not (a >= zero)
  4189. 954.09 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4190. 954.09 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4191. 954.09 s [really-safe-money-gen]
  4192. 954.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  4193. 954.09 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4194. 954.09 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4195. 954.09 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4196. 954.09 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4197. 954.09 s [really-safe-money-gen] - if a >= zero
  4198. 954.09 s [really-safe-money-gen] + if True
  4199. 954.09 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4200. 954.09 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4201. 954.09 s [really-safe-money-gen]
  4202. 954.09 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  4203. 954.09 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4204. 954.09 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4205. 954.09 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4206. 954.09 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4207. 954.09 s [really-safe-money-gen] - if a >= zero
  4208. 954.09 s [really-safe-money-gen] + if a <= zero
  4209. 954.09 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4210. 954.09 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4211. 954.09 s [really-safe-money-gen]
  4212. 954.09 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Account.hs:523:16-25
  4213. 954.09 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  4214. 954.09 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  4215. 954.09 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  4216. 954.09 s [really-safe-money-gen] func ma r = case compare account zero of
  4217. 954.09 s [really-safe-money-gen] - EQ -> (Just zero, r)
  4218. 954.09 s [really-safe-money-gen] + EQ -> (Nothing, r)
  4219. 954.09 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  4220. 954.09 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  4221. 954.09 s [really-safe-money-gen] in func amount actualFraction
  4222. 954.09 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  4223. 954.10 s [really-safe-money-gen] @@ -444,17 +444,16 @@
  4224. 954.10 s [really-safe-money-gen] distribute a f =
  4225. 954.10 s [really-safe-money-gen] let aa = abs a
  4226. 954.10 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  4227. 954.10 s [really-safe-money-gen] in case Amount.distribute aa af of
  4228. 954.10 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4229. 954.10 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  4230. 954.10 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4231. 954.10 s [really-safe-money-gen] if a >= zero
  4232. 954.10 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4233. 954.10 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4234. 954.10 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4235. 954.10 s [really-safe-money-gen] if a >= zero
  4236. 954.10 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4237. 954.10 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4238. 954.10 s [really-safe-money-gen]
  4239. 954.10 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  4240. 954.10 s [really-safe-money-gen]
  4241. 954.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  4242. 954.10 s [really-safe-money-gen] @@ -444,17 +444,13 @@
  4243. 954.10 s [really-safe-money-gen] distribute a f =
  4244. 954.10 s [really-safe-money-gen] let aa = abs a
  4245. 954.10 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  4246. 954.10 s [really-safe-money-gen] in case Amount.distribute aa af of
  4247. 954.10 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4248. 954.10 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4249. 954.10 s [really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
  4250. 954.10 s [really-safe-money-gen] - if a >= zero
  4251. 954.10 s [really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4252. 954.10 s [really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4253. 954.10 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4254. 954.10 s [really-safe-money-gen] if a >= zero
  4255. 958.66 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4256. 958.66 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4257. 958.66 s [really-safe-money-gen]
  4258. 958.66 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  4259. 958.66 s [really-safe-money-gen]
  4260. 958.66 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18
  4261. 958.66 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4262. 958.66 s [really-safe-money-gen] fraction rounding account f =
  4263. 958.66 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4264. 958.66 s [really-safe-money-gen] ro =
  4265. 958.66 s [really-safe-money-gen] - if f >= 0
  4266. 958.66 s [really-safe-money-gen] + if f >= 1
  4267. 958.66 s [really-safe-money-gen] then rounding
  4268. 958.66 s [really-safe-money-gen] else case rounding of
  4269. 958.66 s [really-safe-money-gen] RoundUp -> RoundDown
  4270. 958.67 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  4271. 958.67 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  4272. 958.67 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4273. 958.67 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4274. 958.67 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4275. 958.67 s [really-safe-money-gen] - if a >= zero
  4276. 958.67 s [really-safe-money-gen] + if a < zero
  4277. 958.67 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4278. 958.67 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4279. 958.67 s [really-safe-money-gen]
  4280. 958.67 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4281. 958.67 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4282. 958.67 s [really-safe-money-gen] ro =
  4283. 958.67 s [really-safe-money-gen] if f >= 0
  4284. 958.67 s [really-safe-money-gen] then rounding
  4285. 958.67 s [really-safe-money-gen] else case rounding of
  4286. 958.67 s [really-safe-money-gen] RoundUp -> RoundDown
  4287. 958.67 s [really-safe-money-gen] - RoundDown -> RoundUp
  4288. 958.67 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4289. 958.67 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4290. 958.67 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4291. 958.67 s [really-safe-money-gen] in if f >= 0
  4292. 958.67 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16
  4293. 958.67 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4294. 958.67 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4295. 958.67 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4296. 958.67 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4297. 958.67 s [really-safe-money-gen] - in if f >= 0
  4298. 958.68 s [really-safe-money-gen] + in if f >= 1
  4299. 958.68 s [really-safe-money-gen] then (ma, r)
  4300. 958.68 s [really-safe-money-gen] else (negate <$> ma, -r)
  4301. 958.68 s [really-safe-money-gen]
  4302. 958.68 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4303. 958.68 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4304. 958.68 s [really-safe-money-gen] ro =
  4305. 958.68 s [really-safe-money-gen] if f >= 0
  4306. 958.68 s [really-safe-money-gen] then rounding
  4307. 958.68 s [really-safe-money-gen] else case rounding of
  4308. 958.68 s [really-safe-money-gen] - RoundUp -> RoundDown
  4309. 958.68 s [really-safe-money-gen] RoundDown -> RoundUp
  4310. 958.68 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4311. 958.68 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4312. 958.68 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4313. 958.68 s [really-safe-money-gen] in if f >= 0
  4314. 958.68 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4315. 958.68 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4316. 958.68 s [really-safe-money-gen] ro =
  4317. 958.68 s [really-safe-money-gen] if f >= 0
  4318. 958.68 s [really-safe-money-gen] then rounding
  4319. 958.68 s [really-safe-money-gen] else case rounding of
  4320. 958.68 s [really-safe-money-gen] RoundUp -> RoundDown
  4321. 958.68 s [really-safe-money-gen] RoundDown -> RoundUp
  4322. 958.68 s [really-safe-money-gen] - RoundNearest -> RoundNearest
  4323. 958.69 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4324. 958.69 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4325. 958.69 s [really-safe-money-gen] in if f >= 0
  4326. 958.69 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4327. 958.69 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4328. 958.69 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4329. 958.69 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4330. 958.69 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4331. 958.69 s [really-safe-money-gen] - in if f >= 0
  4332. 958.69 s [really-safe-money-gen] + in if f <= 0
  4333. 958.69 s [really-safe-money-gen] then (ma, r)
  4334. 958.69 s [really-safe-money-gen] else (negate <$> ma, -r)
  4335. 958.69 s [really-safe-money-gen]
  4336. 958.69 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4337. 958.69 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4338. 958.69 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4339. 958.69 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4340. 958.69 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4341. 958.69 s [really-safe-money-gen] - in if f >= 0
  4342. 958.69 s [really-safe-money-gen] + in if f < 0
  4343. 958.69 s [really-safe-money-gen] then (ma, r)
  4344. 958.69 s [really-safe-money-gen] else (negate <$> ma, -r)
  4345. 958.69 s [really-safe-money-gen]
  4346. 958.69 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4347. 958.69 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4348. 958.69 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4349. 958.69 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4350. 958.69 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4351. 958.69 s [really-safe-money-gen] - in if f >= 0
  4352. 958.69 s [really-safe-money-gen] + in if f > 0
  4353. 958.69 s [really-safe-money-gen] then (ma, r)
  4354. 958.70 s [really-safe-money-gen] else (negate <$> ma, -r)
  4355. 958.70 s [really-safe-money-gen]
  4356. 958.70 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  4357. 958.70 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4358. 958.70 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4359. 958.70 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4360. 958.70 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4361. 958.70 s [really-safe-money-gen] - in if f >= 0
  4362. 958.70 s [really-safe-money-gen] + in if True
  4363. 958.70 s [really-safe-money-gen] then (ma, r)
  4364. 958.70 s [really-safe-money-gen] else (negate <$> ma, -r)
  4365. 958.70 s [really-safe-money-gen]
  4366. 958.70 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  4367. 958.70 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4368. 958.70 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4369. 958.70 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4370. 958.70 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4371. 958.70 s [really-safe-money-gen] - in if f >= 0
  4372. 958.70 s [really-safe-money-gen] + in if False
  4373. 958.70 s [really-safe-money-gen] then (ma, r)
  4374. 958.70 s [really-safe-money-gen] else (negate <$> ma, -r)
  4375. 958.70 s [really-safe-money-gen]
  4376. 958.70 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16
  4377. 958.70 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4378. 958.70 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4379. 958.70 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4380. 958.70 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4381. 958.70 s [really-safe-money-gen] - in if f >= 0
  4382. 958.70 s [really-safe-money-gen] + in if not (f >= 0)
  4383. 958.70 s [really-safe-money-gen] then (ma, r)
  4384. 958.70 s [really-safe-money-gen] else (negate <$> ma, -r)
  4385. 958.70 s [really-safe-money-gen]
  4386. 958.70 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20
  4387. 958.70 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4388. 958.70 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4389. 958.70 s [really-safe-money-gen] fromRational quantisationFactor r =
  4390. 958.70 s [really-safe-money-gen] let r' = Prelude.abs r
  4391. 958.70 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4392. 958.70 s [really-safe-money-gen] + f = if r >= 1 then Positive else Negative
  4393. 958.70 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4394. 958.71 s [really-safe-money-gen]
  4395. 958.71 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4396. 958.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4397. 958.71 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4398. 958.71 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4399. 958.71 s [really-safe-money-gen] fromRational quantisationFactor r =
  4400. 958.71 s [really-safe-money-gen] let r' = Prelude.abs r
  4401. 958.71 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4402. 958.71 s [really-safe-money-gen] + f = if r <= 0 then Positive else Negative
  4403. 958.71 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4404. 958.71 s [really-safe-money-gen]
  4405. 958.71 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4406. 958.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4407. 958.71 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4408. 958.71 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4409. 958.71 s [really-safe-money-gen] fromRational quantisationFactor r =
  4410. 958.71 s [really-safe-money-gen] let r' = Prelude.abs r
  4411. 958.71 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4412. 958.71 s [really-safe-money-gen] + f = if r > 0 then Positive else Negative
  4413. 958.71 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4414. 958.71 s [really-safe-money-gen]
  4415. 958.71 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4416. 958.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  4417. 958.71 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4418. 958.71 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4419. 958.71 s [really-safe-money-gen] fromRational quantisationFactor r =
  4420. 958.71 s [really-safe-money-gen] let r' = Prelude.abs r
  4421. 958.71 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4422. 958.71 s [really-safe-money-gen] + f = if True then Positive else Negative
  4423. 958.71 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4424. 958.71 s [really-safe-money-gen]
  4425. 958.71 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4426. 958.72 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4427. 958.72 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4428. 958.72 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4429. 958.72 s [really-safe-money-gen] fromRational quantisationFactor r =
  4430. 958.72 s [really-safe-money-gen] let r' = Prelude.abs r
  4431. 958.72 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4432. 958.72 s [really-safe-money-gen] + f = if r < 0 then Positive else Negative
  4433. 958.72 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4434. 958.72 s [really-safe-money-gen]
  4435. 958.72 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4436. 958.72 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
  4437. 958.72 s [really-safe-money-gen] @@ -208,9 +208,8 @@
  4438. 958.72 s [really-safe-money-gen] -- (-3) % 20
  4439. 958.72 s [really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
  4440. 958.72 s [really-safe-money-gen] toRational quantisationFactor account =
  4441. 958.72 s [really-safe-money-gen] let f = case account of
  4442. 958.72 s [really-safe-money-gen] Positive _ -> id
  4443. 958.72 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4444. 963.82 s [really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
  4445. 963.84 s [really-safe-money-gen]
  4446. 963.84 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4447. 963.84 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
  4448. 963.84 s [really-safe-money-gen] @@ -208,9 +208,8 @@
  4449. 963.84 s [really-safe-money-gen] -- (-3) % 20
  4450. 963.84 s [really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
  4451. 963.84 s [really-safe-money-gen] toRational quantisationFactor account =
  4452. 963.84 s [really-safe-money-gen] let f = case account of
  4453. 963.84 s [really-safe-money-gen] - Positive _ -> id
  4454. 963.85 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4455. 963.85 s [really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
  4456. 963.85 s [really-safe-money-gen]
  4457. 963.85 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4458. 963.85 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20
  4459. 963.85 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4460. 963.85 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4461. 963.85 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4462. 963.85 s [really-safe-money-gen] let d' = Prelude.abs d
  4463. 963.85 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4464. 963.85 s [really-safe-money-gen] + f = if d >= 1 then Positive else Negative
  4465. 963.85 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4466. 963.85 s [really-safe-money-gen]
  4467. 963.85 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4468. 963.85 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20
  4469. 963.85 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4470. 963.85 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4471. 963.85 s [really-safe-money-gen] fromRational quantisationFactor r =
  4472. 963.85 s [really-safe-money-gen] let r' = Prelude.abs r
  4473. 963.85 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4474. 963.85 s [really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
  4475. 963.85 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4476. 963.85 s [really-safe-money-gen]
  4477. 963.85 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4478. 963.85 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  4479. 963.85 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  4480. 963.85 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  4481. 963.85 s [really-safe-money-gen] multiply factor account =
  4482. 963.85 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  4483. 963.85 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  4484. 963.85 s [really-safe-money-gen] (EQ, _) -> const zero
  4485. 963.85 s [really-safe-money-gen] (_, EQ) -> const zero
  4486. 963.85 s [really-safe-money-gen] (GT, GT) -> Positive
  4487. 963.85 s [really-safe-money-gen] (GT, LT) -> Negative
  4488. 963.86 s [really-safe-money-gen] (LT, GT) -> Negative
  4489. 963.86 s [really-safe-money-gen] - (LT, LT) -> Positive
  4490. 963.86 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  4491. 963.86 s [really-safe-money-gen]
  4492. 963.86 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  4493. 963.86 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4494. 963.86 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4495. 963.86 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4496. 963.86 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4497. 963.86 s [really-safe-money-gen] let d' = Prelude.abs d
  4498. 963.86 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4499. 963.86 s [really-safe-money-gen] + f = if d < 0 then Positive else Negative
  4500. 963.86 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4501. 963.86 s [really-safe-money-gen]
  4502. 963.86 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4503. 963.86 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4504. 963.86 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4505. 963.86 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4506. 963.86 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4507. 963.86 s [really-safe-money-gen] let d' = Prelude.abs d
  4508. 963.86 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4509. 963.86 s [really-safe-money-gen] + f = if d <= 0 then Positive else Negative
  4510. 963.86 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4511. 963.86 s [really-safe-money-gen]
  4512. 963.86 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4513. 963.86 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  4514. 963.86 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4515. 963.86 s [really-safe-money-gen] fraction rounding account f =
  4516. 963.86 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4517. 963.86 s [really-safe-money-gen] ro =
  4518. 963.86 s [really-safe-money-gen] - if f >= 0
  4519. 963.86 s [really-safe-money-gen] + if False
  4520. 963.86 s [really-safe-money-gen] then rounding
  4521. 963.86 s [really-safe-money-gen] else case rounding of
  4522. 963.86 s [really-safe-money-gen] RoundUp -> RoundDown
  4523. 963.86 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4524. 963.87 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4525. 963.87 s [really-safe-money-gen] fraction rounding account f =
  4526. 963.87 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4527. 963.87 s [really-safe-money-gen] ro =
  4528. 963.87 s [really-safe-money-gen] - if f >= 0
  4529. 963.87 s [really-safe-money-gen] + if f > 0
  4530. 963.87 s [really-safe-money-gen] then rounding
  4531. 963.87 s [really-safe-money-gen] else case rounding of
  4532. 963.87 s [really-safe-money-gen] RoundUp -> RoundDown
  4533. 963.87 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  4534. 963.87 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4535. 963.87 s [really-safe-money-gen] fraction rounding account f =
  4536. 963.87 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4537. 963.87 s [really-safe-money-gen] ro =
  4538. 963.87 s [really-safe-money-gen] - if f >= 0
  4539. 963.87 s [really-safe-money-gen] + if True
  4540. 963.87 s [really-safe-money-gen] then rounding
  4541. 963.87 s [really-safe-money-gen] else case rounding of
  4542. 963.87 s [really-safe-money-gen] RoundUp -> RoundDown
  4543. 963.87 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  4544. 963.87 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  4545. 963.87 s [really-safe-money-gen] let aa1 = abs a1
  4546. 963.87 s [really-safe-money-gen] aa2 = abs a2
  4547. 963.87 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  4548. 963.87 s [really-safe-money-gen] in case (a1, a2) of
  4549. 963.87 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  4550. 963.87 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  4551. 963.87 s [really-safe-money-gen] - (Negative _, Positive _) -> Nothing
  4552. 963.87 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  4553. 963.87 s [really-safe-money-gen]
  4554. 963.87 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  4555. 963.87 s [really-safe-money-gen] -- another currency using a conversion rate.
  4556. 963.87 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  4557. 963.87 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  4558. 963.87 s [really-safe-money-gen] let aa = abs account
  4559. 963.87 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  4560. 963.88 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  4561. 963.88 s [really-safe-money-gen] func ma r = case compare account zero of
  4562. 963.88 s [really-safe-money-gen] EQ -> (Just zero, r)
  4563. 963.88 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  4564. 963.88 s [really-safe-money-gen] - LT -> (Negative <$> ma, r)
  4565. 963.88 s [really-safe-money-gen] in func amount actualFraction
  4566. 963.88 s [really-safe-money-gen]
  4567. 963.88 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  4568. 963.88 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  4569. 963.88 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  4570. 963.88 s [really-safe-money-gen] let aa = abs account
  4571. 963.88 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  4572. 963.88 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  4573. 963.88 s [really-safe-money-gen] func ma r = case compare account zero of
  4574. 963.88 s [really-safe-money-gen] - EQ -> (Just zero, r)
  4575. 963.88 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  4576. 963.88 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  4577. 963.88 s [really-safe-money-gen] in func amount actualFraction
  4578. 963.88 s [really-safe-money-gen]
  4579. 963.88 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  4580. 963.88 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  4581. 963.88 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  4582. 963.88 s [really-safe-money-gen] let aa = abs account
  4583. 963.88 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  4584. 963.88 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  4585. 963.88 s [really-safe-money-gen] func ma r = case compare account zero of
  4586. 963.88 s [really-safe-money-gen] EQ -> (Just zero, r)
  4587. 963.88 s [really-safe-money-gen] - GT -> (Positive <$> ma, r)
  4588. 963.88 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  4589. 963.88 s [really-safe-money-gen] in func amount actualFraction
  4590. 963.88 s [really-safe-money-gen]
  4591. 963.88 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  4592. 963.88 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18
  4593. 963.88 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4594. 963.88 s [really-safe-money-gen] fraction rounding account f =
  4595. 963.88 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4596. 963.88 s [really-safe-money-gen] ro =
  4597. 963.88 s [really-safe-money-gen] - if f >= 0
  4598. 963.88 s [really-safe-money-gen] + if not (f >= 0)
  4599. 963.88 s [really-safe-money-gen] then rounding
  4600. 963.88 s [really-safe-money-gen] else case rounding of
  4601. 963.88 s [really-safe-money-gen] RoundUp -> RoundDown
  4602. 963.89 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4603. 963.89 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4604. 963.89 s [really-safe-money-gen] fraction rounding account f =
  4605. 963.89 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4606. 963.89 s [really-safe-money-gen] ro =
  4607. 963.89 s [really-safe-money-gen] - if f >= 0
  4608. 963.89 s [really-safe-money-gen] + if f <= 0
  4609. 963.89 s [really-safe-money-gen] then rounding
  4610. 963.89 s [really-safe-money-gen] else case rounding of
  4611. 963.89 s [really-safe-money-gen] RoundUp -> RoundDown
  4612. 963.89 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4613. 963.89 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4614. 963.89 s [really-safe-money-gen] fraction rounding account f =
  4615. 963.89 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4616. 963.89 s [really-safe-money-gen] ro =
  4617. 963.89 s [really-safe-money-gen] - if f >= 0
  4618. 963.89 s [really-safe-money-gen] + if f < 0
  4619. 963.89 s [really-safe-money-gen] then rounding
  4620. 963.89 s [really-safe-money-gen] else case rounding of
  4621. 963.89 s [really-safe-money-gen] RoundUp -> RoundDown
  4622. 963.89 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  4623. 963.89 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4624. 963.89 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4625. 963.89 s [really-safe-money-gen] fromRational quantisationFactor r =
  4626. 963.89 s [really-safe-money-gen] let r' = Prelude.abs r
  4627. 963.89 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4628. 968.75 s [really-safe-money-gen] + f = if False then Positive else Negative
  4629. 968.75 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4630. 968.75 s [really-safe-money-gen]
  4631. 968.75 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4632. 968.75 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  4633. 968.75 s [really-safe-money-gen] @@ -444,17 +444,13 @@
  4634. 968.75 s [really-safe-money-gen] distribute a f =
  4635. 968.75 s [really-safe-money-gen] let aa = abs a
  4636. 968.75 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  4637. 968.75 s [really-safe-money-gen] in case Amount.distribute aa af of
  4638. 968.75 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4639. 968.75 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4640. 968.75 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4641. 968.75 s [really-safe-money-gen] if a >= zero
  4642. 968.75 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4643. 968.75 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4644. 968.75 s [really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4645. 968.75 s [really-safe-money-gen] - if a >= zero
  4646. 968.75 s [really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  4647. 968.75 s [really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  4648. 968.76 s [really-safe-money-gen]
  4649. 968.76 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  4650. 968.76 s [really-safe-money-gen]
  4651. 968.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
  4652. 968.76 s [really-safe-money-gen] @@ -168,9 +168,8 @@
  4653. 968.76 s [really-safe-money-gen] -- -0.25
  4654. 968.76 s [really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
  4655. 968.76 s [really-safe-money-gen] toDouble quantisationFactor account =
  4656. 968.76 s [really-safe-money-gen] let f = case account of
  4657. 968.76 s [really-safe-money-gen] Positive _ -> id
  4658. 968.76 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4659. 968.76 s [really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
  4660. 968.76 s [really-safe-money-gen]
  4661. 968.76 s [really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
  4662. 968.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
  4663. 968.76 s [really-safe-money-gen] @@ -152,9 +152,8 @@
  4664. 968.76 s [really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
  4665. 968.76 s [really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
  4666. 968.76 s [really-safe-money-gen] toMinimalQuantisations account =
  4667. 968.76 s [really-safe-money-gen] let f = case account of
  4668. 968.76 s [really-safe-money-gen] Positive _ -> id
  4669. 968.76 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4670. 968.76 s [really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
  4671. 968.76 s [really-safe-money-gen]
  4672. 968.76 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  4673. 968.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  4674. 968.76 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4675. 968.76 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4676. 968.76 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4677. 968.76 s [really-safe-money-gen] let d' = Prelude.abs d
  4678. 968.76 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4679. 968.76 s [really-safe-money-gen] + f = if False then Positive else Negative
  4680. 968.76 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4681. 968.76 s [really-safe-money-gen]
  4682. 968.76 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4683. 968.76 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4684. 968.76 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4685. 968.76 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4686. 968.76 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4687. 968.76 s [really-safe-money-gen] let d' = Prelude.abs d
  4688. 968.76 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4689. 968.76 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  4690. 968.76 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4691. 968.76 s [really-safe-money-gen]
  4692. 968.76 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4693. 968.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
  4694. 968.76 s [really-safe-money-gen] @@ -152,9 +152,8 @@
  4695. 968.76 s [really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
  4696. 968.76 s [really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
  4697. 968.76 s [really-safe-money-gen] toMinimalQuantisations account =
  4698. 968.76 s [really-safe-money-gen] let f = case account of
  4699. 968.77 s [really-safe-money-gen] - Positive _ -> id
  4700. 968.77 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4701. 968.77 s [really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
  4702. 968.77 s [really-safe-money-gen]
  4703. 968.77 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  4704. 968.77 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
  4705. 968.77 s [really-safe-money-gen] @@ -168,9 +168,8 @@
  4706. 968.77 s [really-safe-money-gen] -- -0.25
  4707. 968.77 s [really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
  4708. 968.77 s [really-safe-money-gen] toDouble quantisationFactor account =
  4709. 968.77 s [really-safe-money-gen] let f = case account of
  4710. 968.77 s [really-safe-money-gen] - Positive _ -> id
  4711. 968.77 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4712. 968.77 s [really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
  4713. 968.77 s [really-safe-money-gen]
  4714. 968.77 s [really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
  4715. 968.77 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20
  4716. 968.77 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4717. 968.77 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4718. 968.77 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4719. 968.77 s [really-safe-money-gen] let d' = Prelude.abs d
  4720. 968.77 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4721. 968.77 s [really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
  4722. 968.77 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4723. 968.77 s [really-safe-money-gen]
  4724. 968.77 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4725. 968.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  4726. 968.77 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4727. 968.77 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4728. 968.77 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4729. 968.77 s [really-safe-money-gen] let d' = Prelude.abs d
  4730. 968.77 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4731. 968.77 s [really-safe-money-gen] + f = if True then Positive else Negative
  4732. 968.77 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4733. 968.77 s [really-safe-money-gen]
  4734. 968.77 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4735. 968.77 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4736. 968.77 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4737. 968.77 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4738. 968.77 s [really-safe-money-gen] a :: Integer
  4739. 968.77 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4740. 968.77 s [really-safe-money-gen] - in if a > maxBoundI
  4741. 968.77 s [really-safe-money-gen] + in if a < maxBoundI
  4742. 968.77 s [really-safe-money-gen] then Nothing
  4743. 968.77 s [really-safe-money-gen] else
  4744. 968.77 s [really-safe-money-gen] let w :: Word64
  4745. 968.77 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4746. 968.77 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4747. 968.77 s [really-safe-money-gen] amount :: Amount
  4748. 968.77 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4749. 968.77 s [really-safe-money-gen] in Just $
  4750. 968.77 s [really-safe-money-gen] - if i >= 0
  4751. 968.77 s [really-safe-money-gen] + if i <= 0
  4752. 968.77 s [really-safe-money-gen] then Positive amount
  4753. 968.77 s [really-safe-money-gen] else Negative amount
  4754. 968.77 s [really-safe-money-gen]
  4755. 968.77 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4756. 968.77 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4757. 968.77 s [really-safe-money-gen] amount :: Amount
  4758. 968.77 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4759. 968.77 s [really-safe-money-gen] in Just $
  4760. 968.77 s [really-safe-money-gen] - if i >= 0
  4761. 968.77 s [really-safe-money-gen] + if i < 0
  4762. 968.77 s [really-safe-money-gen] then Positive amount
  4763. 968.77 s [really-safe-money-gen] else Negative amount
  4764. 968.77 s [really-safe-money-gen]
  4765. 968.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  4766. 968.77 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4767. 968.77 s [really-safe-money-gen] amount :: Amount
  4768. 968.77 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4769. 968.77 s [really-safe-money-gen] in Just $
  4770. 968.77 s [really-safe-money-gen] - if i >= 0
  4771. 968.77 s [really-safe-money-gen] + if False
  4772. 968.77 s [really-safe-money-gen] then Positive amount
  4773. 968.77 s [really-safe-money-gen] else Negative amount
  4774. 968.77 s [really-safe-money-gen]
  4775. 968.77 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26
  4776. 968.77 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4777. 968.77 s [really-safe-money-gen] amount :: Amount
  4778. 968.77 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4779. 968.77 s [really-safe-money-gen] in Just $
  4780. 968.77 s [really-safe-money-gen] - if i >= 0
  4781. 968.77 s [really-safe-money-gen] + if not (i >= 0)
  4782. 968.77 s [really-safe-money-gen] then Positive amount
  4783. 968.77 s [really-safe-money-gen] else Negative amount
  4784. 968.77 s [really-safe-money-gen]
  4785. 968.77 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:341:11-18
  4786. 968.77 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  4787. 968.77 s [really-safe-money-gen] i2 :: Integer
  4788. 968.77 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4789. 968.77 s [really-safe-money-gen] r :: Integer
  4790. 968.77 s [really-safe-money-gen] - r = i1 + i2
  4791. 968.77 s [really-safe-money-gen] + r = i1 - i2
  4792. 968.77 s [really-safe-money-gen] in fromMinimalQuantisations r
  4793. 968.77 s [really-safe-money-gen]
  4794. 968.77 s [really-safe-money-gen] -- | Add a number of accounts of money together.
  4795. 968.77 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:378:11-18
  4796. 968.77 s [really-safe-money-gen] @@ -375,7 +375,7 @@
  4797. 968.77 s [really-safe-money-gen] i2 :: Integer
  4798. 968.77 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4799. 968.77 s [really-safe-money-gen] r :: Integer
  4800. 968.77 s [really-safe-money-gen] - r = i1 - i2
  4801. 968.77 s [really-safe-money-gen] + r = i1 * i2
  4802. 968.77 s [really-safe-money-gen] in fromMinimalQuantisations r
  4803. 968.77 s [really-safe-money-gen]
  4804. 968.77 s [really-safe-money-gen] -- | The absolute value of the account
  4805. 968.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  4806. 968.77 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4807. 968.77 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4808. 968.77 s [really-safe-money-gen] a :: Integer
  4809. 968.77 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4810. 968.77 s [really-safe-money-gen] - in if a > maxBoundI
  4811. 973.30 s [really-safe-money-gen] + in if False
  4812. 973.30 s [really-safe-money-gen] then Nothing
  4813. 973.37 s [really-safe-money-gen] else
  4814. 973.37 s [really-safe-money-gen] let w :: Word64
  4815. 973.37 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:378:11-18
  4816. 973.37 s [really-safe-money-gen] @@ -375,7 +375,7 @@
  4817. 973.37 s [really-safe-money-gen] i2 :: Integer
  4818. 973.37 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4819. 973.37 s [really-safe-money-gen] r :: Integer
  4820. 973.38 s [really-safe-money-gen] - r = i1 - i2
  4821. 973.38 s [really-safe-money-gen] + r = i1 + i2
  4822. 973.38 s [really-safe-money-gen] in fromMinimalQuantisations r
  4823. 973.38 s [really-safe-money-gen]
  4824. 973.38 s [really-safe-money-gen] -- | The absolute value of the account
  4825. 973.38 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26
  4826. 973.38 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4827. 973.38 s [really-safe-money-gen] amount :: Amount
  4828. 973.38 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4829. 973.38 s [really-safe-money-gen] in Just $
  4830. 973.38 s [really-safe-money-gen] - if i >= 0
  4831. 973.38 s [really-safe-money-gen] + if i >= 1
  4832. 973.38 s [really-safe-money-gen] then Positive amount
  4833. 973.38 s [really-safe-money-gen] else Negative amount
  4834. 973.38 s [really-safe-money-gen]
  4835. 973.38 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  4836. 973.38 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4837. 973.38 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4838. 973.38 s [really-safe-money-gen] a :: Integer
  4839. 973.38 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4840. 973.38 s [really-safe-money-gen] - in if a > maxBoundI
  4841. 973.38 s [really-safe-money-gen] + in if True
  4842. 973.38 s [really-safe-money-gen] then Nothing
  4843. 973.38 s [really-safe-money-gen] else
  4844. 973.38 s [really-safe-money-gen] let w :: Word64
  4845. 973.38 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  4846. 973.38 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4847. 973.38 s [really-safe-money-gen] amount :: Amount
  4848. 973.38 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4849. 973.38 s [really-safe-money-gen] in Just $
  4850. 973.38 s [really-safe-money-gen] - if i >= 0
  4851. 973.38 s [really-safe-money-gen] + if True
  4852. 973.39 s [really-safe-money-gen] then Positive amount
  4853. 973.39 s [really-safe-money-gen] else Negative amount
  4854. 973.39 s [really-safe-money-gen]
  4855. 973.39 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:341:11-18
  4856. 973.39 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  4857. 973.39 s [really-safe-money-gen] i2 :: Integer
  4858. 973.39 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4859. 973.39 s [really-safe-money-gen] r :: Integer
  4860. 973.39 s [really-safe-money-gen] - r = i1 + i2
  4861. 973.39 s [really-safe-money-gen] + r = i1 * i2
  4862. 973.39 s [really-safe-money-gen] in fromMinimalQuantisations r
  4863. 973.39 s [really-safe-money-gen]
  4864. 973.39 s [really-safe-money-gen] -- | Add a number of accounts of money together.
  4865. 973.39 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4866. 973.39 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4867. 973.39 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4868. 973.39 s [really-safe-money-gen] a :: Integer
  4869. 973.39 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4870. 973.39 s [really-safe-money-gen] - in if a > maxBoundI
  4871. 973.39 s [really-safe-money-gen] + in if a >= maxBoundI
  4872. 973.39 s [really-safe-money-gen] then Nothing
  4873. 973.39 s [really-safe-money-gen] else
  4874. 973.39 s [really-safe-money-gen] let w :: Word64
  4875. 973.39 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4876. 973.39 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4877. 973.39 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4878. 973.39 s [really-safe-money-gen] a :: Integer
  4879. 973.39 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4880. 973.39 s [really-safe-money-gen] - in if a > maxBoundI
  4881. 973.39 s [really-safe-money-gen] + in if a <= maxBoundI
  4882. 973.39 s [really-safe-money-gen] then Nothing
  4883. 973.39 s [really-safe-money-gen] else
  4884. 973.39 s [really-safe-money-gen] let w :: Word64
  4885. 973.39 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4886. 973.39 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4887. 973.39 s [really-safe-money-gen] amount :: Amount
  4888. 973.39 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4889. 973.39 s [really-safe-money-gen] in Just $
  4890. 973.39 s [really-safe-money-gen] - if i >= 0
  4891. 973.39 s [really-safe-money-gen] + if i > 0
  4892. 973.39 s [really-safe-money-gen] then Positive amount
  4893. 973.39 s [really-safe-money-gen] else Negative amount
  4894. 973.39 s [really-safe-money-gen]
  4895. 973.39 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23
  4896. 973.39 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4897. 973.39 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4898. 973.39 s [really-safe-money-gen] a :: Integer
  4899. 973.39 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4900. 973.39 s [really-safe-money-gen] - in if a > maxBoundI
  4901. 973.39 s [really-safe-money-gen] + in if not (a > maxBoundI)
  4902. 973.39 s [really-safe-money-gen] then Nothing
  4903. 973.39 s [really-safe-money-gen] else
  4904. 973.39 s [really-safe-money-gen] let w :: Word64
  4905. 973.39 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:720:6-40
  4906. 973.39 s [really-safe-money-gen] @@ -717,7 +717,7 @@
  4907. 973.39 s [really-safe-money-gen] rate _ _ _ (Amount 0) = Nothing
  4908. 973.39 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  4909. 973.39 s [really-safe-money-gen] ConversionRate.fromRatio $
  4910. 973.39 s [really-safe-money-gen] - (fromIntegral a2 * fromIntegral qf1)
  4911. 973.39 s [really-safe-money-gen] + (fromIntegral a2 + fromIntegral qf1)
  4912. 973.39 s [really-safe-money-gen] % (fromIntegral a1 * fromIntegral qf2)
  4913. 973.39 s [really-safe-money-gen]
  4914. 973.39 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  4915. 973.39 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:720:6-40
  4916. 973.39 s [really-safe-money-gen] @@ -717,7 +717,7 @@
  4917. 973.40 s [really-safe-money-gen] rate _ _ _ (Amount 0) = Nothing
  4918. 973.40 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  4919. 973.40 s [really-safe-money-gen] ConversionRate.fromRatio $
  4920. 973.40 s [really-safe-money-gen] - (fromIntegral a2 * fromIntegral qf1)
  4921. 973.40 s [really-safe-money-gen] + (fromIntegral a2 - fromIntegral qf1)
  4922. 973.40 s [really-safe-money-gen] % (fromIntegral a1 * fromIntegral qf2)
  4923. 973.40 s [really-safe-money-gen]
  4924. 973.40 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  4925. 973.40 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:721:10-44
  4926. 973.40 s [really-safe-money-gen] @@ -718,7 +718,7 @@
  4927. 973.40 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  4928. 973.40 s [really-safe-money-gen] ConversionRate.fromRatio $
  4929. 973.40 s [really-safe-money-gen] (fromIntegral a2 * fromIntegral qf1)
  4930. 973.40 s [really-safe-money-gen] - % (fromIntegral a1 * fromIntegral qf2)
  4931. 973.40 s [really-safe-money-gen] + % (fromIntegral a1 + fromIntegral qf2)
  4932. 973.40 s [really-safe-money-gen]
  4933. 973.40 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  4934. 973.40 s [really-safe-money-gen] -- another currency using a conversion rate.
  4935. 973.40 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  4936. 973.40 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  4937. 973.40 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  4938. 973.40 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  4939. 973.40 s [really-safe-money-gen] let decimals :: Int
  4940. 973.40 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  4941. 973.40 s [really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  4942. 973.40 s [really-safe-money-gen] in printf "%%0.%df" decimals
  4943. 973.40 s [really-safe-money-gen]
  4944. 973.40 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  4945. 973.40 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:721:10-44
  4946. 973.40 s [really-safe-money-gen] @@ -718,7 +718,7 @@
  4947. 973.40 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  4948. 973.40 s [really-safe-money-gen] ConversionRate.fromRatio $
  4949. 973.40 s [really-safe-money-gen] (fromIntegral a2 * fromIntegral qf1)
  4950. 973.40 s [really-safe-money-gen] - % (fromIntegral a1 * fromIntegral qf2)
  4951. 973.40 s [really-safe-money-gen] + % (fromIntegral a1 - fromIntegral qf2)
  4952. 973.40 s [really-safe-money-gen]
  4953. 973.40 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  4954. 973.40 s [really-safe-money-gen] -- another currency using a conversion rate.
  4955. 973.40 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  4956. 973.40 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  4957. 973.40 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  4958. 973.40 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  4959. 973.40 s [really-safe-money-gen] let decimals :: Int
  4960. 973.40 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  4961. 973.40 s [really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  4962. 973.40 s [really-safe-money-gen] in printf "%%0.%df" decimals
  4963. 973.40 s [really-safe-money-gen]
  4964. 973.40 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  4965. 973.40 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19
  4966. 973.40 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  4967. 973.40 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  4968. 973.40 s [really-safe-money-gen] smallerChunk :: Amount
  4969. 973.40 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  4970. 973.40 s [really-safe-money-gen] - in if rest == 0
  4971. 973.40 s [really-safe-money-gen] + in if rest == 1
  4972. 973.40 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  4973. 973.40 s [really-safe-money-gen] else
  4974. 973.40 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  4975. 973.40 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  4976. 973.40 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  4977. 973.40 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  4978. 973.40 s [really-safe-money-gen] smallerChunk :: Amount
  4979. 973.40 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  4980. 973.40 s [really-safe-money-gen] - in if rest == 0
  4981. 973.40 s [really-safe-money-gen] + in if True
  4982. 973.40 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  4983. 973.40 s [really-safe-money-gen] else
  4984. 973.40 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  4985. 973.40 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
  4986. 973.40 s [really-safe-money-gen] @@ -574,7 +574,7 @@
  4987. 973.40 s [really-safe-money-gen] numberOfLargerChunks :: Word32
  4988. 973.40 s [really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  4989. 973.40 s [really-safe-money-gen] numberOfSmallerChunks :: Word32
  4990. 973.40 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  4991. 976.92 s [really-safe-money-gen] + numberOfSmallerChunks = f + numberOfLargerChunks
  4992. 976.92 s [really-safe-money-gen] largerChunk :: Amount
  4993. 976.92 s [really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
  4994. 976.92 s [really-safe-money-gen] in DistributedIntoUnequalChunks
  4995. 976.92 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19
  4996. 976.92 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  4997. 976.92 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  4998. 976.92 s [really-safe-money-gen] smallerChunk :: Amount
  4999. 976.92 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  5000. 976.92 s [really-safe-money-gen] - in if rest == 0
  5001. 976.93 s [really-safe-money-gen] + in if not (rest == 0)
  5002. 976.93 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  5003. 976.93 s [really-safe-money-gen] else
  5004. 976.93 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  5005. 976.93 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  5006. 976.93 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  5007. 976.93 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  5008. 976.93 s [really-safe-money-gen] smallerChunk :: Amount
  5009. 976.93 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  5010. 976.93 s [really-safe-money-gen] - in if rest == 0
  5011. 976.93 s [really-safe-money-gen] + in if False
  5012. 976.93 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  5013. 976.93 s [really-safe-money-gen] else
  5014. 976.93 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  5015. 976.93 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  5016. 976.93 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  5017. 976.93 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  5018. 976.93 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  5019. 976.93 s [really-safe-money-gen] let decimals :: Int
  5020. 976.93 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  5021. 976.93 s [really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  5022. 976.93 s [really-safe-money-gen] in printf "%%0.%df" decimals
  5023. 976.93 s [really-safe-money-gen]
  5024. 976.93 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  5025. 976.93 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
  5026. 976.93 s [really-safe-money-gen] @@ -540,7 +540,7 @@
  5027. 976.93 s [really-safe-money-gen] let maxBoundI :: Integer
  5028. 976.93 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5029. 976.93 s [really-safe-money-gen] r :: Integer
  5030. 976.93 s [really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5031. 976.93 s [really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f + (fromIntegral :: Word64 -> Integer) a
  5032. 976.93 s [really-safe-money-gen] in if r > maxBoundI
  5033. 976.93 s [really-safe-money-gen] then Nothing
  5034. 976.93 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5035. 976.93 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  5036. 976.93 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  5037. 976.93 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5038. 976.93 s [really-safe-money-gen] r :: Integer
  5039. 976.93 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5040. 976.93 s [really-safe-money-gen] - in if r > maxBoundI
  5041. 976.93 s [really-safe-money-gen] + in if r < maxBoundI
  5042. 976.93 s [really-safe-money-gen] then Nothing
  5043. 976.93 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5044. 976.93 s [really-safe-money-gen]
  5045. 976.93 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
  5046. 976.93 s [really-safe-money-gen] @@ -574,7 +574,7 @@
  5047. 976.93 s [really-safe-money-gen] numberOfLargerChunks :: Word32
  5048. 976.93 s [really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  5049. 976.93 s [really-safe-money-gen] numberOfSmallerChunks :: Word32
  5050. 976.93 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  5051. 976.94 s [really-safe-money-gen] + numberOfSmallerChunks = f * numberOfLargerChunks
  5052. 976.94 s [really-safe-money-gen] largerChunk :: Amount
  5053. 976.94 s [really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
  5054. 976.94 s [really-safe-money-gen] in DistributedIntoUnequalChunks
  5055. 976.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
  5056. 976.94 s [really-safe-money-gen] @@ -540,7 +540,7 @@
  5057. 976.94 s [really-safe-money-gen] let maxBoundI :: Integer
  5058. 976.94 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5059. 976.94 s [really-safe-money-gen] r :: Integer
  5060. 976.94 s [really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5061. 976.94 s [really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f - (fromIntegral :: Word64 -> Integer) a
  5062. 976.94 s [really-safe-money-gen] in if r > maxBoundI
  5063. 976.94 s [really-safe-money-gen] then Nothing
  5064. 976.94 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5065. 976.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:517:11-18
  5066. 976.94 s [really-safe-money-gen] @@ -514,7 +514,7 @@
  5067. 976.94 s [really-safe-money-gen] i2 :: Integer
  5068. 976.94 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5069. 976.94 s [really-safe-money-gen] r :: Integer
  5070. 976.94 s [really-safe-money-gen] - r = i1 - i2
  5071. 976.94 s [really-safe-money-gen] + r = i1 + i2
  5072. 976.94 s [really-safe-money-gen] in if r < 0
  5073. 976.94 s [really-safe-money-gen] then Nothing
  5074. 976.94 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5075. 976.94 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15
  5076. 976.94 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5077. 976.94 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5078. 976.94 s [really-safe-money-gen] r :: Integer
  5079. 976.94 s [really-safe-money-gen] r = i1 - i2
  5080. 976.94 s [really-safe-money-gen] - in if r < 0
  5081. 976.94 s [really-safe-money-gen] + in if r < 1
  5082. 976.94 s [really-safe-money-gen] then Nothing
  5083. 976.94 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5084. 976.94 s [really-safe-money-gen]
  5085. 976.94 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  5086. 976.94 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5087. 976.94 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5088. 976.94 s [really-safe-money-gen] r :: Integer
  5089. 976.94 s [really-safe-money-gen] r = i1 - i2
  5090. 976.94 s [really-safe-money-gen] - in if r < 0
  5091. 976.94 s [really-safe-money-gen] + in if r <= 0
  5092. 976.94 s [really-safe-money-gen] then Nothing
  5093. 976.94 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5094. 976.94 s [really-safe-money-gen]
  5095. 976.94 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  5096. 976.94 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5097. 976.94 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5098. 976.94 s [really-safe-money-gen] r :: Integer
  5099. 976.94 s [really-safe-money-gen] r = i1 - i2
  5100. 976.94 s [really-safe-money-gen] - in if r < 0
  5101. 976.94 s [really-safe-money-gen] + in if r > 0
  5102. 976.94 s [really-safe-money-gen] then Nothing
  5103. 976.94 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5104. 976.94 s [really-safe-money-gen]
  5105. 976.94 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:546:14-66
  5106. 976.94 s [really-safe-money-gen] @@ -543,7 +543,7 @@
  5107. 976.94 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5108. 976.94 s [really-safe-money-gen] in if r > maxBoundI
  5109. 976.94 s [really-safe-money-gen] then Nothing
  5110. 976.94 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5111. 976.94 s [really-safe-money-gen] + else Nothing
  5112. 976.94 s [really-safe-money-gen]
  5113. 976.94 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  5114. 976.94 s [really-safe-money-gen] --
  5115. 976.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  5116. 976.94 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  5117. 976.94 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5118. 976.94 s [really-safe-money-gen] r :: Integer
  5119. 976.94 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5120. 976.94 s [really-safe-money-gen] - in if r > maxBoundI
  5121. 976.94 s [really-safe-money-gen] + in if False
  5122. 976.94 s [really-safe-money-gen] then Nothing
  5123. 976.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5124. 976.95 s [really-safe-money-gen]
  5125. 976.95 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  5126. 976.95 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5127. 976.95 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5128. 976.95 s [really-safe-money-gen] r :: Integer
  5129. 976.95 s [really-safe-money-gen] r = i1 - i2
  5130. 976.95 s [really-safe-money-gen] - in if r < 0
  5131. 976.95 s [really-safe-money-gen] + in if r >= 0
  5132. 976.95 s [really-safe-money-gen] then Nothing
  5133. 976.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5134. 976.95 s [really-safe-money-gen]
  5135. 976.95 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15
  5136. 976.95 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5137. 976.95 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5138. 976.95 s [really-safe-money-gen] r :: Integer
  5139. 976.95 s [really-safe-money-gen] r = i1 - i2
  5140. 976.95 s [really-safe-money-gen] - in if r < 0
  5141. 976.95 s [really-safe-money-gen] + in if not (r < 0)
  5142. 976.95 s [really-safe-money-gen] then Nothing
  5143. 976.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5144. 976.95 s [really-safe-money-gen]
  5145. 976.95 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:520:14-66
  5146. 976.95 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  5147. 976.95 s [really-safe-money-gen] r = i1 - i2
  5148. 976.95 s [really-safe-money-gen] in if r < 0
  5149. 976.95 s [really-safe-money-gen] then Nothing
  5150. 976.95 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5151. 976.95 s [really-safe-money-gen] + else Nothing
  5152. 976.95 s [really-safe-money-gen]
  5153. 976.95 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  5154. 976.95 s [really-safe-money-gen] --
  5155. 976.95 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  5156. 976.95 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  5157. 976.95 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5158. 976.95 s [really-safe-money-gen] r :: Integer
  5159. 983.52 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5160. 983.54 s [really-safe-money-gen] - in if r > maxBoundI
  5161. 983.54 s [really-safe-money-gen] + in if r >= maxBoundI
  5162. 983.54 s [really-safe-money-gen] then Nothing
  5163. 983.54 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5164. 983.54 s [really-safe-money-gen]
  5165. 983.54 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  5166. 983.54 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  5167. 983.54 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5168. 983.54 s [really-safe-money-gen] r :: Integer
  5169. 983.54 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5170. 983.54 s [really-safe-money-gen] - in if r > maxBoundI
  5171. 983.54 s [really-safe-money-gen] + in if True
  5172. 983.54 s [really-safe-money-gen] then Nothing
  5173. 983.54 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5174. 983.54 s [really-safe-money-gen]
  5175. 983.54 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  5176. 983.54 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5177. 983.54 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5178. 983.54 s [really-safe-money-gen] r :: Integer
  5179. 983.54 s [really-safe-money-gen] r = i1 - i2
  5180. 983.54 s [really-safe-money-gen] - in if r < 0
  5181. 983.54 s [really-safe-money-gen] + in if False
  5182. 983.54 s [really-safe-money-gen] then Nothing
  5183. 983.55 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5184. 983.55 s [really-safe-money-gen]
  5185. 983.55 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23
  5186. 983.55 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  5187. 983.55 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5188. 983.55 s [really-safe-money-gen] r :: Integer
  5189. 983.55 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5190. 983.55 s [really-safe-money-gen] - in if r > maxBoundI
  5191. 983.55 s [really-safe-money-gen] + in if not (r > maxBoundI)
  5192. 983.55 s [really-safe-money-gen] then Nothing
  5193. 983.55 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5194. 983.55 s [really-safe-money-gen]
  5195. 983.55 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  5196. 983.55 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  5197. 983.55 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5198. 983.55 s [really-safe-money-gen] r :: Integer
  5199. 983.55 s [really-safe-money-gen] r = i1 + i2
  5200. 983.55 s [really-safe-money-gen] - in if r > maxBoundI
  5201. 983.55 s [really-safe-money-gen] + in if r < maxBoundI
  5202. 983.55 s [really-safe-money-gen] then Nothing
  5203. 983.55 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5204. 983.55 s [really-safe-money-gen]
  5205. 983.55 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:517:11-18
  5206. 983.55 s [really-safe-money-gen] @@ -514,7 +514,7 @@
  5207. 983.55 s [really-safe-money-gen] i2 :: Integer
  5208. 983.55 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5209. 983.55 s [really-safe-money-gen] r :: Integer
  5210. 983.55 s [really-safe-money-gen] - r = i1 - i2
  5211. 983.55 s [really-safe-money-gen] + r = i1 * i2
  5212. 983.55 s [really-safe-money-gen] in if r < 0
  5213. 983.55 s [really-safe-money-gen] then Nothing
  5214. 983.55 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5215. 983.55 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:478:14-66
  5216. 983.55 s [really-safe-money-gen] @@ -475,7 +475,7 @@
  5217. 983.55 s [really-safe-money-gen] r = i1 + i2
  5218. 983.55 s [really-safe-money-gen] in if r > maxBoundI
  5219. 983.55 s [really-safe-money-gen] then Nothing
  5220. 983.55 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5221. 983.55 s [really-safe-money-gen] + else Nothing
  5222. 983.55 s [really-safe-money-gen]
  5223. 983.56 s [really-safe-money-gen] -- | Add a number of amounts of money together.
  5224. 983.56 s [really-safe-money-gen] --
  5225. 983.56 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16
  5226. 983.56 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  5227. 983.56 s [really-safe-money-gen] -- Nothing
  5228. 983.56 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5229. 983.56 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5230. 983.56 s [really-safe-money-gen] - | isInvalid r = Nothing
  5231. 983.56 s [really-safe-money-gen] + | not (isInvalid r) = Nothing
  5232. 983.56 s [really-safe-money-gen] | r < 0 = Nothing
  5233. 983.56 s [really-safe-money-gen] | otherwise =
  5234. 983.56 s [really-safe-money-gen] let resultRational :: Rational
  5235. 983.56 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10
  5236. 983.56 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  5237. 983.56 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5238. 983.56 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5239. 983.56 s [really-safe-money-gen] | isInvalid r = Nothing
  5240. 983.56 s [really-safe-money-gen] - | r < 0 = Nothing
  5241. 983.56 s [really-safe-money-gen] + | r < 1 = Nothing
  5242. 983.56 s [really-safe-money-gen] | otherwise =
  5243. 983.56 s [really-safe-money-gen] let resultRational :: Rational
  5244. 983.56 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5245. 983.56 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  5246. 983.56 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  5247. 983.56 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5248. 983.56 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5249. 983.56 s [really-safe-money-gen] | isInvalid r = Nothing
  5250. 983.56 s [really-safe-money-gen] - | r < 0 = Nothing
  5251. 983.56 s [really-safe-money-gen] + | r >= 0 = Nothing
  5252. 983.56 s [really-safe-money-gen] | otherwise =
  5253. 983.56 s [really-safe-money-gen] let resultRational :: Rational
  5254. 983.56 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5255. 983.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10
  5256. 983.56 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  5257. 983.56 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5258. 983.56 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5259. 983.56 s [really-safe-money-gen] | isInvalid r = Nothing
  5260. 983.56 s [really-safe-money-gen] - | r < 0 = Nothing
  5261. 983.56 s [really-safe-money-gen] + | True = Nothing
  5262. 983.56 s [really-safe-money-gen] | otherwise =
  5263. 983.56 s [really-safe-money-gen] let resultRational :: Rational
  5264. 983.56 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5265. 983.56 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  5266. 983.56 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  5267. 983.56 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5268. 983.56 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5269. 983.56 s [really-safe-money-gen] | isInvalid r = Nothing
  5270. 983.56 s [really-safe-money-gen] - | r < 0 = Nothing
  5271. 983.56 s [really-safe-money-gen] + | r > 0 = Nothing
  5272. 983.56 s [really-safe-money-gen] | otherwise =
  5273. 983.56 s [really-safe-money-gen] let resultRational :: Rational
  5274. 983.56 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5275. 983.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16
  5276. 983.56 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  5277. 983.56 s [really-safe-money-gen] -- Nothing
  5278. 983.56 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5279. 983.56 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5280. 983.56 s [really-safe-money-gen] - | isInvalid r = Nothing
  5281. 983.56 s [really-safe-money-gen] + | True = Nothing
  5282. 983.56 s [really-safe-money-gen] | r < 0 = Nothing
  5283. 983.56 s [really-safe-money-gen] | otherwise =
  5284. 983.56 s [really-safe-money-gen] let resultRational :: Rational
  5285. 983.57 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:392:28-71
  5286. 983.57 s [really-safe-money-gen] @@ -389,7 +389,7 @@
  5287. 983.57 s [really-safe-money-gen] | r < 0 = Nothing
  5288. 983.57 s [really-safe-money-gen] | otherwise =
  5289. 983.57 s [really-safe-money-gen] let resultRational :: Rational
  5290. 983.57 s [really-safe-money-gen] - resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5291. 983.57 s [really-safe-money-gen] + resultRational = r + (fromIntegral :: Word32 -> Rational) qf
  5292. 983.57 s [really-safe-money-gen] ceiled :: Natural
  5293. 983.57 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  5294. 983.57 s [really-safe-money-gen] floored :: Natural
  5295. 983.57 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  5296. 983.57 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  5297. 983.57 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5298. 983.57 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5299. 983.57 s [really-safe-money-gen] | isInvalid r = Nothing
  5300. 983.57 s [really-safe-money-gen] - | r < 0 = Nothing
  5301. 983.57 s [really-safe-money-gen] + | r <= 0 = Nothing
  5302. 983.57 s [really-safe-money-gen] | otherwise =
  5303. 983.57 s [really-safe-money-gen] let resultRational :: Rational
  5304. 983.57 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5305. 983.57 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  5306. 983.57 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  5307. 983.57 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5308. 983.57 s [really-safe-money-gen] r :: Integer
  5309. 983.57 s [really-safe-money-gen] r = i1 + i2
  5310. 983.57 s [really-safe-money-gen] - in if r > maxBoundI
  5311. 983.57 s [really-safe-money-gen] + in if r <= maxBoundI
  5312. 983.57 s [really-safe-money-gen] then Nothing
  5313. 983.57 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5314. 983.57 s [really-safe-money-gen]
  5315. 983.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  5316. 983.57 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  5317. 983.57 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5318. 983.57 s [really-safe-money-gen] r :: Integer
  5319. 983.57 s [really-safe-money-gen] r = i1 + i2
  5320. 983.57 s [really-safe-money-gen] - in if r > maxBoundI
  5321. 983.57 s [really-safe-money-gen] + in if False
  5322. 983.57 s [really-safe-money-gen] then Nothing
  5323. 983.57 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5324. 983.57 s [really-safe-money-gen]
  5325. 983.57 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  5326. 983.57 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  5327. 983.57 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5328. 983.57 s [really-safe-money-gen] r :: Integer
  5329. 983.57 s [really-safe-money-gen] r = i1 + i2
  5330. 983.57 s [really-safe-money-gen] - in if r > maxBoundI
  5331. 983.57 s [really-safe-money-gen] + in if r >= maxBoundI
  5332. 983.57 s [really-safe-money-gen] then Nothing
  5333. 983.57 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5334. 983.57 s [really-safe-money-gen]
  5335. 983.57 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:475:11-18
  5336. 983.57 s [really-safe-money-gen] @@ -472,7 +472,7 @@
  5337. 983.57 s [really-safe-money-gen] maxBoundI :: Integer
  5338. 983.57 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5339. 983.57 s [really-safe-money-gen] r :: Integer
  5340. 983.57 s [really-safe-money-gen] - r = i1 + i2
  5341. 983.57 s [really-safe-money-gen] + r = i1 - i2
  5342. 988.67 s [really-safe-money-gen] in if r > maxBoundI
  5343. 988.67 s [really-safe-money-gen] then Nothing
  5344. 988.67 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5345. 988.69 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23
  5346. 988.69 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  5347. 988.69 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5348. 988.70 s [really-safe-money-gen] r :: Integer
  5349. 988.70 s [really-safe-money-gen] r = i1 + i2
  5350. 988.70 s [really-safe-money-gen] - in if r > maxBoundI
  5351. 988.70 s [really-safe-money-gen] + in if not (r > maxBoundI)
  5352. 988.70 s [really-safe-money-gen] then Nothing
  5353. 988.70 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5354. 988.70 s [really-safe-money-gen]
  5355. 988.70 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10
  5356. 988.70 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  5357. 988.70 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5358. 988.70 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  5359. 988.70 s [really-safe-money-gen] | isInvalid r = Nothing
  5360. 988.70 s [really-safe-money-gen] - | r < 0 = Nothing
  5361. 988.70 s [really-safe-money-gen] + | not (r < 0) = Nothing
  5362. 988.70 s [really-safe-money-gen] | otherwise =
  5363. 988.70 s [really-safe-money-gen] let resultRational :: Rational
  5364. 988.70 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5365. 988.70 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  5366. 988.70 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  5367. 988.70 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  5368. 988.70 s [really-safe-money-gen] r :: Integer
  5369. 988.70 s [really-safe-money-gen] r = i1 - i2
  5370. 988.70 s [really-safe-money-gen] - in if r < 0
  5371. 988.70 s [really-safe-money-gen] + in if True
  5372. 988.70 s [really-safe-money-gen] then Nothing
  5373. 988.70 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5374. 988.70 s [really-safe-money-gen]
  5375. 988.70 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  5376. 988.70 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  5377. 988.70 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5378. 988.70 s [really-safe-money-gen] in if ceiled == floored
  5379. 988.71 s [really-safe-money-gen] then
  5380. 988.71 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5381. 988.71 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5382. 988.71 s [really-safe-money-gen] then Nothing
  5383. 988.71 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5384. 988.71 s [really-safe-money-gen] else Nothing
  5385. 988.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  5386. 988.71 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  5387. 988.71 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5388. 988.71 s [really-safe-money-gen] in if ceiled == floored
  5389. 988.71 s [really-safe-money-gen] then
  5390. 988.71 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5391. 988.71 s [really-safe-money-gen] + if True
  5392. 988.71 s [really-safe-money-gen] then Nothing
  5393. 988.71 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5394. 988.71 s [really-safe-money-gen] else Nothing
  5395. 988.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  5396. 988.71 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  5397. 988.71 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5398. 988.71 s [really-safe-money-gen] in if ceiled == floored
  5399. 988.71 s [really-safe-money-gen] then
  5400. 988.71 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5401. 988.71 s [really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5402. 988.71 s [really-safe-money-gen] then Nothing
  5403. 988.71 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5404. 988.71 s [really-safe-money-gen] else Nothing
  5405. 988.71 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  5406. 988.71 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  5407. 988.71 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5408. 988.71 s [really-safe-money-gen] in if ceiled == floored
  5409. 988.71 s [really-safe-money-gen] then
  5410. 988.71 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5411. 988.72 s [really-safe-money-gen] + if ceiled <= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5412. 988.72 s [really-safe-money-gen] then Nothing
  5413. 988.72 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5414. 988.72 s [really-safe-money-gen] else Nothing
  5415. 988.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31
  5416. 988.72 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  5417. 988.72 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  5418. 988.72 s [really-safe-money-gen] floored :: Natural
  5419. 988.72 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5420. 988.72 s [really-safe-money-gen] - in if ceiled == floored
  5421. 988.72 s [really-safe-money-gen] + in if not (ceiled == floored)
  5422. 988.72 s [really-safe-money-gen] then
  5423. 988.72 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5424. 988.72 s [really-safe-money-gen] then Nothing
  5425. 988.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  5426. 988.72 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  5427. 988.72 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  5428. 988.72 s [really-safe-money-gen] floored :: Natural
  5429. 988.72 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5430. 988.72 s [really-safe-money-gen] - in if ceiled == floored
  5431. 988.72 s [really-safe-money-gen] + in if False
  5432. 988.72 s [really-safe-money-gen] then
  5433. 988.72 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5434. 988.72 s [really-safe-money-gen] then Nothing
  5435. 988.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  5436. 988.72 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  5437. 988.72 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  5438. 988.72 s [really-safe-money-gen] floored :: Natural
  5439. 988.73 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5440. 988.73 s [really-safe-money-gen] - in if ceiled == floored
  5441. 988.73 s [really-safe-money-gen] + in if True
  5442. 988.73 s [really-safe-money-gen] then
  5443. 988.73 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5444. 988.73 s [really-safe-money-gen] then Nothing
  5445. 988.73 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
  5446. 988.73 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  5447. 988.73 s [really-safe-money-gen] Double ->
  5448. 988.73 s [really-safe-money-gen] Maybe Amount
  5449. 988.73 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  5450. 988.73 s [really-safe-money-gen] - | d < 0 = Nothing
  5451. 988.73 s [really-safe-money-gen] + | d < 1 = Nothing
  5452. 988.73 s [really-safe-money-gen] | otherwise =
  5453. 988.73 s [really-safe-money-gen] let resultDouble :: Double
  5454. 988.73 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5455. 988.73 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  5456. 988.73 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  5457. 988.73 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5458. 988.73 s [really-safe-money-gen] r :: Integer
  5459. 988.73 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5460. 988.73 s [really-safe-money-gen] - in if r > maxBoundI
  5461. 988.73 s [really-safe-money-gen] + in if r <= maxBoundI
  5462. 988.73 s [really-safe-money-gen] then Nothing
  5463. 988.73 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5464. 988.73 s [really-safe-money-gen]
  5465. 988.73 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
  5466. 988.73 s [really-safe-money-gen] @@ -320,7 +320,7 @@
  5467. 988.73 s [really-safe-money-gen] | d < 0 = Nothing
  5468. 988.73 s [really-safe-money-gen] | otherwise =
  5469. 988.73 s [really-safe-money-gen] let resultDouble :: Double
  5470. 988.73 s [really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5471. 988.73 s [really-safe-money-gen] + resultDouble = d + (fromIntegral :: Word32 -> Double) qf
  5472. 988.73 s [really-safe-money-gen] in go resultDouble
  5473. 988.73 s [really-safe-money-gen] where
  5474. 988.73 s [really-safe-money-gen] go resultDouble
  5475. 988.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21
  5476. 988.74 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  5477. 988.74 s [really-safe-money-gen] where
  5478. 988.74 s [really-safe-money-gen] go resultDouble
  5479. 988.74 s [really-safe-money-gen] | isNaN d = Nothing
  5480. 988.74 s [really-safe-money-gen] - | isInfinite d = Nothing
  5481. 988.74 s [really-safe-money-gen] + | True = Nothing
  5482. 988.74 s [really-safe-money-gen] | otherwise =
  5483. 988.74 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5484. 988.74 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5485. 988.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  5486. 988.74 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  5487. 988.74 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5488. 988.74 s [really-safe-money-gen] r :: Integer
  5489. 988.74 s [really-safe-money-gen] r = i1 + i2
  5490. 988.74 s [really-safe-money-gen] - in if r > maxBoundI
  5491. 988.74 s [really-safe-money-gen] + in if True
  5492. 988.74 s [really-safe-money-gen] then Nothing
  5493. 988.74 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5494. 988.74 s [really-safe-money-gen]
  5495. 988.74 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21
  5496. 988.74 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  5497. 988.74 s [really-safe-money-gen] where
  5498. 988.74 s [really-safe-money-gen] go resultDouble
  5499. 988.74 s [really-safe-money-gen] | isNaN d = Nothing
  5500. 988.74 s [really-safe-money-gen] - | isInfinite d = Nothing
  5501. 988.74 s [really-safe-money-gen] + | not (isInfinite d) = Nothing
  5502. 988.74 s [really-safe-money-gen] | otherwise =
  5503. 988.74 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5504. 988.74 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5505. 994.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10
  5506. 994.10 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  5507. 994.10 s [really-safe-money-gen] Double ->
  5508. 994.10 s [really-safe-money-gen] Maybe Amount
  5509. 994.10 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  5510. 994.10 s [really-safe-money-gen] - | d < 0 = Nothing
  5511. 994.11 s [really-safe-money-gen] + | True = Nothing
  5512. 994.11 s [really-safe-money-gen] | otherwise =
  5513. 994.11 s [really-safe-money-gen] let resultDouble :: Double
  5514. 994.11 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5515. 994.11 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  5516. 994.11 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  5517. 994.11 s [really-safe-money-gen] Double ->
  5518. 994.11 s [really-safe-money-gen] Maybe Amount
  5519. 994.11 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  5520. 994.11 s [really-safe-money-gen] - | d < 0 = Nothing
  5521. 994.11 s [really-safe-money-gen] + | d >= 0 = Nothing
  5522. 994.11 s [really-safe-money-gen] | otherwise =
  5523. 994.11 s [really-safe-money-gen] let resultDouble :: Double
  5524. 994.11 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5525. 994.11 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  5526. 994.11 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5527. 994.11 s [really-safe-money-gen] | otherwise =
  5528. 994.11 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5529. 994.11 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5530. 994.11 s [really-safe-money-gen] - if exponent resultDouble > 65
  5531. 994.11 s [really-safe-money-gen] + if exponent resultDouble <= 65
  5532. 994.11 s [really-safe-money-gen] then Nothing
  5533. 994.11 s [really-safe-money-gen] else
  5534. 994.11 s [really-safe-money-gen] let ceiled :: Natural
  5535. 994.11 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16
  5536. 994.11 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  5537. 994.11 s [really-safe-money-gen] in go resultDouble
  5538. 994.11 s [really-safe-money-gen] where
  5539. 994.11 s [really-safe-money-gen] go resultDouble
  5540. 994.11 s [really-safe-money-gen] - | isNaN d = Nothing
  5541. 994.11 s [really-safe-money-gen] + | True = Nothing
  5542. 994.11 s [really-safe-money-gen] | isInfinite d = Nothing
  5543. 994.11 s [really-safe-money-gen] | otherwise =
  5544. 994.11 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5545. 994.11 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  5546. 994.11 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5547. 994.11 s [really-safe-money-gen] | otherwise =
  5548. 994.11 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5549. 994.11 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5550. 994.11 s [really-safe-money-gen] - if exponent resultDouble > 65
  5551. 994.11 s [really-safe-money-gen] + if True
  5552. 994.11 s [really-safe-money-gen] then Nothing
  5553. 994.12 s [really-safe-money-gen] else
  5554. 994.12 s [really-safe-money-gen] let ceiled :: Natural
  5555. 994.12 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
  5556. 994.12 s [really-safe-money-gen] @@ -320,7 +320,7 @@
  5557. 994.12 s [really-safe-money-gen] | d < 0 = Nothing
  5558. 994.12 s [really-safe-money-gen] | otherwise =
  5559. 994.12 s [really-safe-money-gen] let resultDouble :: Double
  5560. 994.12 s [really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5561. 994.12 s [really-safe-money-gen] + resultDouble = d - (fromIntegral :: Word32 -> Double) qf
  5562. 994.12 s [really-safe-money-gen] in go resultDouble
  5563. 994.12 s [really-safe-money-gen] where
  5564. 994.12 s [really-safe-money-gen] go resultDouble
  5565. 994.12 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40
  5566. 994.12 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5567. 994.12 s [really-safe-money-gen] | otherwise =
  5568. 994.12 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5569. 994.12 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5570. 994.12 s [really-safe-money-gen] - if exponent resultDouble > 65
  5571. 994.12 s [really-safe-money-gen] + if not (exponent resultDouble > 65)
  5572. 994.12 s [really-safe-money-gen] then Nothing
  5573. 994.12 s [really-safe-money-gen] else
  5574. 994.12 s [really-safe-money-gen] let ceiled :: Natural
  5575. 994.12 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  5576. 994.12 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5577. 994.12 s [really-safe-money-gen] | otherwise =
  5578. 994.12 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5579. 994.12 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5580. 994.12 s [really-safe-money-gen] - if exponent resultDouble > 65
  5581. 994.12 s [really-safe-money-gen] + if exponent resultDouble > 0
  5582. 994.12 s [really-safe-money-gen] then Nothing
  5583. 994.12 s [really-safe-money-gen] else
  5584. 994.12 s [really-safe-money-gen] let ceiled :: Natural
  5585. 994.12 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  5586. 994.12 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5587. 994.12 s [really-safe-money-gen] | otherwise =
  5588. 994.12 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5589. 994.12 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5590. 994.12 s [really-safe-money-gen] - if exponent resultDouble > 65
  5591. 994.12 s [really-safe-money-gen] + if exponent resultDouble > 1
  5592. 994.12 s [really-safe-money-gen] then Nothing
  5593. 994.12 s [really-safe-money-gen] else
  5594. 994.12 s [really-safe-money-gen] let ceiled :: Natural
  5595. 994.12 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:475:11-18
  5596. 994.12 s [really-safe-money-gen] @@ -472,7 +472,7 @@
  5597. 994.12 s [really-safe-money-gen] maxBoundI :: Integer
  5598. 994.12 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5599. 994.12 s [really-safe-money-gen] r :: Integer
  5600. 994.12 s [really-safe-money-gen] - r = i1 + i2
  5601. 994.12 s [really-safe-money-gen] + r = i1 * i2
  5602. 994.12 s [really-safe-money-gen] in if r > maxBoundI
  5603. 994.12 s [really-safe-money-gen] then Nothing
  5604. 994.12 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5605. 994.12 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  5606. 994.12 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5607. 994.12 s [really-safe-money-gen] | otherwise =
  5608. 994.12 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5609. 994.12 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5610. 994.12 s [really-safe-money-gen] - if exponent resultDouble > 65
  5611. 994.12 s [really-safe-money-gen] + if exponent resultDouble > -65
  5612. 994.12 s [really-safe-money-gen] then Nothing
  5613. 994.12 s [really-safe-money-gen] else
  5614. 994.12 s [really-safe-money-gen] let ceiled :: Natural
  5615. 994.12 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
  5616. 994.12 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  5617. 994.12 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  5618. 994.12 s [really-safe-money-gen] floored :: Natural
  5619. 994.12 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5620. 994.12 s [really-safe-money-gen] - in if ceiled == floored
  5621. 994.12 s [really-safe-money-gen] + in if not (ceiled == floored)
  5622. 994.12 s [really-safe-money-gen] then
  5623. 994.12 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5624. 994.12 s [really-safe-money-gen] then Nothing
  5625. 994.12 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  5626. 994.12 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  5627. 994.12 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  5628. 994.13 s [really-safe-money-gen] floored :: Natural
  5629. 994.13 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5630. 994.13 s [really-safe-money-gen] - in if ceiled == floored
  5631. 994.13 s [really-safe-money-gen] + in if True
  5632. 994.13 s [really-safe-money-gen] then
  5633. 994.13 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5634. 994.13 s [really-safe-money-gen] then Nothing
  5635. 994.13 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  5636. 994.13 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  5637. 994.13 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5638. 994.13 s [really-safe-money-gen] in if ceiled == floored
  5639. 994.13 s [really-safe-money-gen] then
  5640. 994.13 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5641. 994.13 s [really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5642. 994.13 s [really-safe-money-gen] then Nothing
  5643. 994.13 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5644. 994.13 s [really-safe-money-gen] else Nothing
  5645. 994.13 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  5646. 994.13 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  5647. 994.13 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  5648. 994.13 s [really-safe-money-gen] floored :: Natural
  5649. 994.13 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5650. 994.13 s [really-safe-money-gen] - in if ceiled == floored
  5651. 994.13 s [really-safe-money-gen] + in if False
  5652. 994.13 s [really-safe-money-gen] then
  5653. 994.13 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5654. 994.13 s [really-safe-money-gen] then Nothing
  5655. 994.13 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  5656. 994.13 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  5657. 994.13 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5658. 994.13 s [really-safe-money-gen] in if ceiled == floored
  5659. 994.13 s [really-safe-money-gen] then
  5660. 994.13 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5661. 994.13 s [really-safe-money-gen] + if True
  5662. 994.13 s [really-safe-money-gen] then Nothing
  5663. 998.92 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5664. 998.92 s [really-safe-money-gen] else Nothing
  5665. 998.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  5666. 998.92 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  5667. 998.92 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5668. 998.92 s [really-safe-money-gen] in if ceiled == floored
  5669. 998.92 s [really-safe-money-gen] then
  5670. 998.92 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5671. 998.92 s [really-safe-money-gen] + if False
  5672. 998.92 s [really-safe-money-gen] then Nothing
  5673. 998.92 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5674. 998.92 s [really-safe-money-gen] else Nothing
  5675. 998.92 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
  5676. 998.92 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  5677. 998.92 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5678. 998.92 s [really-safe-money-gen] in if ceiled == floored
  5679. 998.92 s [really-safe-money-gen] then
  5680. 998.92 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5681. 998.93 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  5682. 998.93 s [really-safe-money-gen] then Nothing
  5683. 998.93 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5684. 998.93 s [really-safe-money-gen] else Nothing
  5685. 998.93 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  5686. 998.93 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  5687. 998.93 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5688. 998.93 s [really-safe-money-gen] in if ceiled == floored
  5689. 998.93 s [really-safe-money-gen] then
  5690. 998.93 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5691. 998.93 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5692. 998.93 s [really-safe-money-gen] then Nothing
  5693. 998.93 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5694. 998.93 s [really-safe-money-gen] else Nothing
  5695. 998.93 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  5696. 998.93 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  5697. 998.93 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  5698. 998.93 s [really-safe-money-gen] in if ceiled == floored
  5699. 998.93 s [really-safe-money-gen] then
  5700. 998.93 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5701. 998.93 s [really-safe-money-gen] + if ceiled <= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5702. 998.93 s [really-safe-money-gen] then Nothing
  5703. 998.94 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5704. 998.94 s [really-safe-money-gen] else Nothing
  5705. 998.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:392:28-71
  5706. 998.94 s [really-safe-money-gen] @@ -389,7 +389,7 @@
  5707. 998.94 s [really-safe-money-gen] | r < 0 = Nothing
  5708. 998.94 s [really-safe-money-gen] | otherwise =
  5709. 998.94 s [really-safe-money-gen] let resultRational :: Rational
  5710. 998.94 s [really-safe-money-gen] - resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5711. 998.94 s [really-safe-money-gen] + resultRational = r - (fromIntegral :: Word32 -> Rational) qf
  5712. 998.94 s [really-safe-money-gen] ceiled :: Natural
  5713. 998.94 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  5714. 998.94 s [really-safe-money-gen] floored :: Natural
  5715. 998.94 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83
  5716. 998.94 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  5717. 998.94 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5718. 998.94 s [really-safe-money-gen] in if ceiled == floored
  5719. 998.94 s [really-safe-money-gen] then
  5720. 998.94 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5721. 998.94 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  5722. 998.94 s [really-safe-money-gen] then Nothing
  5723. 998.94 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5724. 998.94 s [really-safe-money-gen] else Nothing
  5725. 998.94 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
  5726. 998.94 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  5727. 998.94 s [really-safe-money-gen] Double ->
  5728. 998.94 s [really-safe-money-gen] Maybe Amount
  5729. 998.94 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  5730. 998.94 s [really-safe-money-gen] - | d < 0 = Nothing
  5731. 998.94 s [really-safe-money-gen] + | not (d < 0) = Nothing
  5732. 998.94 s [really-safe-money-gen] | otherwise =
  5733. 998.94 s [really-safe-money-gen] let resultDouble :: Double
  5734. 998.94 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5735. 998.94 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16
  5736. 998.94 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  5737. 998.94 s [really-safe-money-gen] in go resultDouble
  5738. 998.94 s [really-safe-money-gen] where
  5739. 998.94 s [really-safe-money-gen] go resultDouble
  5740. 998.94 s [really-safe-money-gen] - | isNaN d = Nothing
  5741. 998.94 s [really-safe-money-gen] + | not (isNaN d) = Nothing
  5742. 998.94 s [really-safe-money-gen] | isInfinite d = Nothing
  5743. 998.94 s [really-safe-money-gen] | otherwise =
  5744. 998.94 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5745. 998.94 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  5746. 998.95 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  5747. 998.95 s [really-safe-money-gen] Double ->
  5748. 998.95 s [really-safe-money-gen] Maybe Amount
  5749. 998.95 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  5750. 998.95 s [really-safe-money-gen] - | d < 0 = Nothing
  5751. 998.95 s [really-safe-money-gen] + | d <= 0 = Nothing
  5752. 998.95 s [really-safe-money-gen] | otherwise =
  5753. 998.95 s [really-safe-money-gen] let resultDouble :: Double
  5754. 998.95 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5755. 998.95 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  5756. 998.95 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  5757. 998.95 s [really-safe-money-gen] Double ->
  5758. 998.95 s [really-safe-money-gen] Maybe Amount
  5759. 998.95 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  5760. 998.95 s [really-safe-money-gen] - | d < 0 = Nothing
  5761. 998.95 s [really-safe-money-gen] + | d > 0 = Nothing
  5762. 998.95 s [really-safe-money-gen] | otherwise =
  5763. 998.95 s [really-safe-money-gen] let resultDouble :: Double
  5764. 998.95 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5765. 998.95 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  5766. 998.95 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  5767. 998.95 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  5768. 998.95 s [really-safe-money-gen] in if ceiled == floored
  5769. 998.95 s [really-safe-money-gen] then
  5770. 998.95 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5771. 998.95 s [really-safe-money-gen] + if False
  5772. 998.95 s [really-safe-money-gen] then Nothing
  5773. 998.95 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  5774. 998.95 s [really-safe-money-gen] else Nothing
  5775. 998.95 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
  5776. 998.95 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  5777. 998.95 s [really-safe-money-gen] let maxBoundI :: Integer
  5778. 998.95 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5779. 998.95 s [really-safe-money-gen] r :: Integer
  5780. 998.95 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5781. 998.95 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) * acc) 0 l
  5782. 998.95 s [really-safe-money-gen] in if r > maxBoundI
  5783. 998.95 s [really-safe-money-gen] then Nothing
  5784. 998.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5785. 998.95 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
  5786. 998.95 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  5787. 998.95 s [really-safe-money-gen] let maxBoundI :: Integer
  5788. 998.95 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5789. 998.95 s [really-safe-money-gen] r :: Integer
  5790. 998.95 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5791. 998.95 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  5792. 998.95 s [really-safe-money-gen] in if r > maxBoundI
  5793. 998.95 s [really-safe-money-gen] then Nothing
  5794. 998.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5795. 998.95 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  5796. 998.96 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  5797. 998.96 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5798. 998.96 s [really-safe-money-gen] r :: Integer
  5799. 998.96 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5800. 998.96 s [really-safe-money-gen] - in if r > maxBoundI
  5801. 998.96 s [really-safe-money-gen] + in if r <= maxBoundI
  5802. 998.96 s [really-safe-money-gen] then Nothing
  5803. 998.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5804. 998.96 s [really-safe-money-gen]
  5805. 998.96 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  5806. 998.96 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  5807. 998.96 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5808. 998.96 s [really-safe-money-gen] r :: Integer
  5809. 998.96 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5810. 998.96 s [really-safe-money-gen] - in if r > maxBoundI
  5811. 998.96 s [really-safe-money-gen] + in if r < maxBoundI
  5812. 998.96 s [really-safe-money-gen] then Nothing
  5813. 998.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5814. 998.96 s [really-safe-money-gen]
  5815. 998.96 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
  5816. 998.96 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  5817. 998.96 s [really-safe-money-gen] let maxBoundI :: Integer
  5818. 1005.28 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5819. 1005.28 s [really-safe-money-gen] r :: Integer
  5820. 1005.31 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5821. 1005.31 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) - acc) 0 l
  5822. 1005.31 s [really-safe-money-gen] in if r > maxBoundI
  5823. 1005.31 s [really-safe-money-gen] then Nothing
  5824. 1005.31 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5825. 1005.31 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
  5826. 1005.31 s [really-safe-money-gen] @@ -287,7 +287,7 @@
  5827. 1005.31 s [really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  5828. 1005.31 s [really-safe-money-gen] -- 1 % 100
  5829. 1005.31 s [really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  5830. 1005.31 s [really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  5831. 1005.31 s [really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  5832. 1005.31 s [really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
  5833. 1005.31 s [really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  5834. 1005.31 s [really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  5835. 1005.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  5836. 1005.31 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5837. 1005.31 s [really-safe-money-gen] | otherwise =
  5838. 1005.31 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5839. 1005.31 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5840. 1005.31 s [really-safe-money-gen] - if exponent resultDouble > 65
  5841. 1005.31 s [really-safe-money-gen] + if False
  5842. 1005.31 s [really-safe-money-gen] then Nothing
  5843. 1005.31 s [really-safe-money-gen] else
  5844. 1005.31 s [really-safe-money-gen] let ceiled :: Natural
  5845. 1005.31 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  5846. 1005.31 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  5847. 1005.31 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5848. 1005.31 s [really-safe-money-gen] r :: Integer
  5849. 1005.31 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5850. 1005.31 s [really-safe-money-gen] - in if r > maxBoundI
  5851. 1005.31 s [really-safe-money-gen] + in if r >= maxBoundI
  5852. 1005.31 s [really-safe-money-gen] then Nothing
  5853. 1005.31 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5854. 1005.32 s [really-safe-money-gen]
  5855. 1005.32 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:497:14-66
  5856. 1005.32 s [really-safe-money-gen] @@ -494,7 +494,7 @@
  5857. 1005.32 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5858. 1005.32 s [really-safe-money-gen] in if r > maxBoundI
  5859. 1005.32 s [really-safe-money-gen] then Nothing
  5860. 1005.32 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5861. 1005.32 s [really-safe-money-gen] + else Nothing
  5862. 1005.32 s [really-safe-money-gen]
  5863. 1005.32 s [really-safe-money-gen] -- | Add two amounts of money.
  5864. 1005.32 s [really-safe-money-gen] --
  5865. 1005.32 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:660:28-37
  5866. 1005.32 s [really-safe-money-gen] @@ -657,7 +657,7 @@
  5867. 1005.32 s [really-safe-money-gen] Ratio Natural ->
  5868. 1005.32 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  5869. 1005.32 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  5870. 1005.32 s [really-safe-money-gen] -fraction _ (Amount 0) f = (Just zero, f)
  5871. 1005.32 s [really-safe-money-gen] +fraction _ (Amount 0) f = (Nothing, f)
  5872. 1005.32 s [really-safe-money-gen] fraction _ _ 0 = (Just zero, 0)
  5873. 1005.32 s [really-safe-money-gen] fraction r (Amount a) f =
  5874. 1005.32 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  5875. 1005.32 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
  5876. 1005.32 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  5877. 1005.32 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  5878. 1005.32 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  5879. 1005.32 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  5880. 1005.32 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  5881. 1005.32 s [really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
  5882. 1005.32 s [really-safe-money-gen] fraction r (Amount a) f =
  5883. 1005.32 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  5884. 1005.32 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  5885. 1005.32 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  5886. 1005.32 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  5887. 1005.32 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  5888. 1005.32 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  5889. 1005.32 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  5890. 1005.32 s [really-safe-money-gen] rounder = case r of
  5891. 1005.32 s [really-safe-money-gen] - RoundUp -> ceiling
  5892. 1005.32 s [really-safe-money-gen] RoundDown -> floor
  5893. 1005.32 s [really-safe-money-gen] RoundNearest -> round
  5894. 1005.32 s [really-safe-money-gen] roundedResult :: Natural
  5895. 1005.32 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  5896. 1005.32 s [really-safe-money-gen] actualRate :: Ratio Natural
  5897. 1005.32 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:661:19-28
  5898. 1005.32 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  5899. 1005.32 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  5900. 1005.32 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  5901. 1005.32 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  5902. 1005.32 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  5903. 1005.32 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  5904. 1005.32 s [really-safe-money-gen] fraction r (Amount a) f =
  5905. 1005.32 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  5906. 1005.32 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  5907. 1005.32 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  5908. 1005.32 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  5909. 1005.32 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  5910. 1005.32 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  5911. 1005.32 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  5912. 1005.32 s [really-safe-money-gen] rounder = case r of
  5913. 1005.32 s [really-safe-money-gen] RoundUp -> ceiling
  5914. 1005.32 s [really-safe-money-gen] - RoundDown -> floor
  5915. 1005.32 s [really-safe-money-gen] RoundNearest -> round
  5916. 1005.32 s [really-safe-money-gen] roundedResult :: Natural
  5917. 1005.32 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  5918. 1005.32 s [really-safe-money-gen] actualRate :: Ratio Natural
  5919. 1005.32 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  5920. 1005.32 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5921. 1005.32 s [really-safe-money-gen] | otherwise =
  5922. 1005.32 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5923. 1005.32 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5924. 1005.32 s [really-safe-money-gen] - if exponent resultDouble > 65
  5925. 1005.32 s [really-safe-money-gen] + if exponent resultDouble >= 65
  5926. 1005.32 s [really-safe-money-gen] then Nothing
  5927. 1005.33 s [really-safe-money-gen] else
  5928. 1005.33 s [really-safe-money-gen] let ceiled :: Natural
  5929. 1005.33 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  5930. 1005.33 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5931. 1005.33 s [really-safe-money-gen] | otherwise =
  5932. 1005.33 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  5933. 1005.33 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  5934. 1005.33 s [really-safe-money-gen] - if exponent resultDouble > 65
  5935. 1005.33 s [really-safe-money-gen] + if exponent resultDouble < 65
  5936. 1005.33 s [really-safe-money-gen] then Nothing
  5937. 1005.33 s [really-safe-money-gen] else
  5938. 1005.33 s [really-safe-money-gen] let ceiled :: Natural
  5939. 1005.33 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
  5940. 1005.33 s [really-safe-money-gen] @@ -663,7 +663,7 @@
  5941. 1005.33 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  5942. 1005.33 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  5943. 1005.33 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  5944. 1005.33 s [really-safe-money-gen] - theoreticalResult = amountAsRatio * f
  5945. 1005.33 s [really-safe-money-gen] + theoreticalResult = amountAsRatio - f
  5946. 1005.33 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  5947. 1005.33 s [really-safe-money-gen] rounder = case r of
  5948. 1005.33 s [really-safe-money-gen] RoundUp -> ceiling
  5949. 1005.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  5950. 1005.33 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  5951. 1005.33 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5952. 1005.33 s [really-safe-money-gen] r :: Integer
  5953. 1005.33 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5954. 1005.33 s [really-safe-money-gen] - in if r > maxBoundI
  5955. 1005.33 s [really-safe-money-gen] + in if False
  5956. 1005.33 s [really-safe-money-gen] then Nothing
  5957. 1005.33 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5958. 1005.33 s [really-safe-money-gen]
  5959. 1005.33 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  5960. 1005.33 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  5961. 1005.33 s [really-safe-money-gen] maxBoundN :: Natural
  5962. 1005.33 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  5963. 1005.33 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  5964. 1005.33 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  5965. 1005.33 s [really-safe-money-gen] + in ( if roundedResult >= maxBoundN
  5966. 1005.33 s [really-safe-money-gen] then Nothing
  5967. 1005.33 s [really-safe-money-gen] else Just result,
  5968. 1005.33 s [really-safe-money-gen] actualRate
  5969. 1005.33 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
  5970. 1005.33 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  5971. 1005.33 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  5972. 1005.33 s [really-safe-money-gen] r :: Integer
  5973. 1005.33 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  5974. 1005.33 s [really-safe-money-gen] - in if r > maxBoundI
  5975. 1005.33 s [really-safe-money-gen] + in if not (r > maxBoundI)
  5976. 1005.33 s [really-safe-money-gen] then Nothing
  5977. 1005.33 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5978. 1005.33 s [really-safe-money-gen]
  5979. 1005.33 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  5980. 1009.79 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  5981. 1009.79 s [really-safe-money-gen] maxBoundN :: Natural
  5982. 1009.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  5983. 1009.79 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  5984. 1009.79 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  5985. 1009.79 s [really-safe-money-gen] + in ( if roundedResult <= maxBoundN
  5986. 1009.79 s [really-safe-money-gen] then Nothing
  5987. 1009.79 s [really-safe-money-gen] else Just result,
  5988. 1009.79 s [really-safe-money-gen] actualRate
  5989. 1009.79 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
  5990. 1009.79 s [really-safe-money-gen] @@ -247,7 +247,7 @@
  5991. 1009.79 s [really-safe-money-gen] -- >>> zero
  5992. 1009.79 s [really-safe-money-gen] -- Amount 0
  5993. 1009.79 s [really-safe-money-gen] zero :: Amount
  5994. 1009.79 s [really-safe-money-gen] -zero = Amount 0
  5995. 1009.79 s [really-safe-money-gen] +zero = Amount 1
  5996. 1009.79 s [really-safe-money-gen]
  5997. 1009.79 s [really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
  5998. 1009.79 s [really-safe-money-gen] --
  5999. 1009.79 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
  6000. 1009.79 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  6001. 1009.79 s [really-safe-money-gen] maxBoundN :: Natural
  6002. 1009.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  6003. 1009.79 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6004. 1009.79 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  6005. 1009.79 s [really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
  6006. 1009.79 s [really-safe-money-gen] then Nothing
  6007. 1009.79 s [really-safe-money-gen] else Just result,
  6008. 1009.79 s [really-safe-money-gen] actualRate
  6009. 1009.79 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  6010. 1009.79 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  6011. 1009.79 s [really-safe-money-gen] maxBoundN :: Natural
  6012. 1009.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  6013. 1009.79 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6014. 1009.79 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  6015. 1009.79 s [really-safe-money-gen] + in ( if False
  6016. 1009.79 s [really-safe-money-gen] then Nothing
  6017. 1009.79 s [really-safe-money-gen] else Just result,
  6018. 1009.80 s [really-safe-money-gen] actualRate
  6019. 1009.80 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
  6020. 1009.80 s [really-safe-money-gen] @@ -759,7 +759,7 @@
  6021. 1009.80 s [really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
  6022. 1009.80 s [really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
  6023. 1009.80 s [really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
  6024. 1009.80 s [really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
  6025. 1009.80 s [really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar + qf1r / qf2r))
  6026. 1009.80 s [really-safe-money-gen]
  6027. 1009.80 s [really-safe-money-gen] -- | Format an amount of money without a symbol.
  6028. 1009.80 s [really-safe-money-gen] --
  6029. 1009.80 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:683:16-27
  6030. 1009.80 s [really-safe-money-gen] @@ -680,7 +680,7 @@
  6031. 1009.80 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6032. 1009.80 s [really-safe-money-gen] in ( if roundedResult > maxBoundN
  6033. 1009.80 s [really-safe-money-gen] then Nothing
  6034. 1009.80 s [really-safe-money-gen] - else Just result,
  6035. 1009.80 s [really-safe-money-gen] + else Nothing,
  6036. 1009.80 s [really-safe-money-gen] actualRate
  6037. 1009.80 s [really-safe-money-gen] )
  6038. 1009.80 s [really-safe-money-gen]
  6039. 1009.80 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
  6040. 1009.80 s [really-safe-money-gen] @@ -759,7 +759,7 @@
  6041. 1009.80 s [really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
  6042. 1009.80 s [really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
  6043. 1009.80 s [really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
  6044. 1009.80 s [really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
  6045. 1009.80 s [really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar - qf1r / qf2r))
  6046. 1009.80 s [really-safe-money-gen]
  6047. 1009.80 s [really-safe-money-gen] -- | Format an amount of money without a symbol.
  6048. 1009.80 s [really-safe-money-gen] --
  6049. 1009.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  6050. 1009.80 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  6051. 1009.80 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6052. 1009.80 s [really-safe-money-gen] r :: Integer
  6053. 1009.80 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  6054. 1009.80 s [really-safe-money-gen] - in if r > maxBoundI
  6055. 1009.80 s [really-safe-money-gen] + in if True
  6056. 1009.80 s [really-safe-money-gen] then Nothing
  6057. 1009.80 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6058. 1009.80 s [really-safe-money-gen]
  6059. 1009.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  6060. 1009.80 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  6061. 1009.80 s [really-safe-money-gen]
  6062. 1009.80 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6063. 1009.80 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  6064. 1009.80 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6065. 1009.80 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  6066. 1009.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  6067. 1009.80 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  6068. 1009.80 s [really-safe-money-gen]
  6069. 1009.80 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6070. 1009.81 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  6071. 1009.81 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6072. 1009.81 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  6073. 1009.81 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  6074. 1009.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  6075. 1009.81 s [really-safe-money-gen] case ad of
  6076. 1009.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6077. 1009.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6078. 1009.81 s [really-safe-money-gen] - a1 > a2
  6079. 1009.81 s [really-safe-money-gen] + a1 >= a2
  6080. 1009.81 s [really-safe-money-gen] _ -> valid
  6081. 1009.81 s [really-safe-money-gen] ]
  6082. 1009.81 s [really-safe-money-gen]
  6083. 1009.81 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  6084. 1009.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  6085. 1009.81 s [really-safe-money-gen] case ad of
  6086. 1009.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6087. 1009.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6088. 1009.81 s [really-safe-money-gen] - a1 > a2
  6089. 1009.81 s [really-safe-money-gen] + True
  6090. 1009.81 s [really-safe-money-gen] _ -> valid
  6091. 1009.81 s [really-safe-money-gen] ]
  6092. 1009.81 s [really-safe-money-gen]
  6093. 1009.81 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  6094. 1009.81 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  6095. 1009.81 s [really-safe-money-gen]
  6096. 1009.81 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6097. 1009.81 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  6098. 1009.81 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6099. 1009.81 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount >= zero
  6100. 1009.81 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  6101. 1009.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  6102. 1009.81 s [really-safe-money-gen] case ad of
  6103. 1009.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6104. 1009.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6105. 1009.81 s [really-safe-money-gen] - a1 > a2
  6106. 1009.81 s [really-safe-money-gen] + a1 < a2
  6107. 1009.81 s [really-safe-money-gen] _ -> valid
  6108. 1009.81 s [really-safe-money-gen] ]
  6109. 1009.81 s [really-safe-money-gen]
  6110. 1009.81 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
  6111. 1009.81 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  6112. 1009.81 s [really-safe-money-gen]
  6113. 1009.81 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6114. 1009.81 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  6115. 1009.81 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6116. 1009.81 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  6117. 1009.81 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  6118. 1009.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  6119. 1009.81 s [really-safe-money-gen] case ad of
  6120. 1009.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6121. 1009.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6122. 1009.81 s [really-safe-money-gen] - a1 > a2
  6123. 1009.81 s [really-safe-money-gen] + False
  6124. 1009.82 s [really-safe-money-gen] _ -> valid
  6125. 1009.82 s [really-safe-money-gen] ]
  6126. 1009.82 s [really-safe-money-gen]
  6127. 1009.82 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  6128. 1009.82 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  6129. 1009.82 s [really-safe-money-gen] maxBoundN :: Natural
  6130. 1009.82 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  6131. 1009.82 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6132. 1009.82 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  6133. 1009.82 s [really-safe-money-gen] + in ( if True
  6134. 1009.82 s [really-safe-money-gen] then Nothing
  6135. 1009.82 s [really-safe-money-gen] else Just result,
  6136. 1009.82 s [really-safe-money-gen] actualRate
  6137. 1009.82 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
  6138. 1009.82 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  6139. 1009.82 s [really-safe-money-gen] case ad of
  6140. 1009.82 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6141. 1009.82 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6142. 1009.82 s [really-safe-money-gen] - a1 > a2
  6143. 1014.25 s [really-safe-money-gen] + not (a1 > a2)
  6144. 1014.25 s [really-safe-money-gen] _ -> valid
  6145. 1014.32 s [really-safe-money-gen] ]
  6146. 1014.32 s [really-safe-money-gen]
  6147. 1014.32 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  6148. 1014.32 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  6149. 1014.32 s [really-safe-money-gen]
  6150. 1014.32 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6151. 1014.32 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  6152. 1014.32 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6153. 1014.32 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount < zero
  6154. 1014.32 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  6155. 1014.32 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  6156. 1014.32 s [really-safe-money-gen] maxBoundN :: Natural
  6157. 1014.32 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  6158. 1014.32 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6159. 1014.32 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  6160. 1014.32 s [really-safe-money-gen] + in ( if roundedResult < maxBoundN
  6161. 1014.33 s [really-safe-money-gen] then Nothing
  6162. 1014.33 s [really-safe-money-gen] else Just result,
  6163. 1014.33 s [really-safe-money-gen] actualRate
  6164. 1014.33 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
  6165. 1014.33 s [really-safe-money-gen] @@ -663,7 +663,7 @@
  6166. 1014.33 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  6167. 1014.33 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  6168. 1014.33 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  6169. 1014.33 s [really-safe-money-gen] - theoreticalResult = amountAsRatio * f
  6170. 1014.33 s [really-safe-money-gen] + theoreticalResult = amountAsRatio + f
  6171. 1014.33 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  6172. 1014.33 s [really-safe-money-gen] rounder = case r of
  6173. 1014.33 s [really-safe-money-gen] RoundUp -> ceiling
  6174. 1014.33 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  6175. 1014.33 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  6176. 1014.33 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  6177. 1014.33 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  6178. 1014.33 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  6179. 1014.33 s [really-safe-money-gen] rounder = case r of
  6180. 1014.33 s [really-safe-money-gen] RoundUp -> ceiling
  6181. 1014.33 s [really-safe-money-gen] RoundDown -> floor
  6182. 1014.33 s [really-safe-money-gen] - RoundNearest -> round
  6183. 1014.33 s [really-safe-money-gen] roundedResult :: Natural
  6184. 1014.33 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  6185. 1014.33 s [really-safe-money-gen] actualRate :: Ratio Natural
  6186. 1014.34 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  6187. 1014.34 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  6188. 1014.34 s [really-safe-money-gen]
  6189. 1014.34 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6190. 1014.34 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  6191. 1014.34 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6192. 1014.34 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount <= zero
  6193. 1014.34 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  6194. 1014.34 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  6195. 1014.34 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  6196. 1014.34 s [really-safe-money-gen] where
  6197. 1014.34 s [really-safe-money-gen] go = \case
  6198. 1014.34 s [really-safe-money-gen] - Nothing -> Just True
  6199. 1014.34 s [really-safe-money-gen] + Nothing -> Nothing
  6200. 1014.34 s [really-safe-money-gen] s -> s
  6201. 1014.34 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  6202. 1014.34 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  6203. 1014.34 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  6204. 1014.34 s [really-safe-money-gen] let currentDigits :: Word8
  6205. 1014.34 s [really-safe-money-gen] currentDigits = digits dl
  6206. 1014.34 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  6207. 1014.34 s [really-safe-money-gen] + in if wantedDigits >= currentDigits
  6208. 1014.34 s [really-safe-money-gen] then dl
  6209. 1014.34 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  6210. 1014.34 s [really-safe-money-gen] where
  6211. 1014.34 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  6212. 1014.34 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  6213. 1014.34 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  6214. 1014.35 s [really-safe-money-gen] let currentDigits :: Word8
  6215. 1014.35 s [really-safe-money-gen] currentDigits = digits dl
  6216. 1014.35 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  6217. 1014.35 s [really-safe-money-gen] + in if False
  6218. 1014.35 s [really-safe-money-gen] then dl
  6219. 1014.35 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  6220. 1014.35 s [really-safe-money-gen] where
  6221. 1014.35 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  6222. 1014.35 s [really-safe-money-gen] @@ -367,7 +367,7 @@
  6223. 1014.35 s [really-safe-money-gen] currentDigits = digits dl
  6224. 1014.35 s [really-safe-money-gen] in if wantedDigits <= currentDigits
  6225. 1014.35 s [really-safe-money-gen] then dl
  6226. 1014.35 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  6227. 1014.35 s [really-safe-money-gen] + else increaseDigits (wantedDigits * currentDigits) dl
  6228. 1014.35 s [really-safe-money-gen] where
  6229. 1014.35 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  6230. 1014.35 s [really-safe-money-gen] increaseDigits 0 = id
  6231. 1014.35 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  6232. 1014.35 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  6233. 1014.35 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  6234. 1014.35 s [really-safe-money-gen] validate ad =
  6235. 1014.35 s [really-safe-money-gen] mconcat
  6236. 1014.35 s [really-safe-money-gen] - [ genericValidate ad,
  6237. 1014.35 s [really-safe-money-gen] case ad of
  6238. 1014.35 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6239. 1014.35 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6240. 1014.35 s [really-safe-money-gen] a1 > a2
  6241. 1014.35 s [really-safe-money-gen] _ -> valid
  6242. 1014.35 s [really-safe-money-gen] ]
  6243. 1014.35 s [really-safe-money-gen]
  6244. 1014.35 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  6245. 1014.35 s [really-safe-money-gen]
  6246. 1014.35 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  6247. 1014.35 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  6248. 1014.36 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  6249. 1014.36 s [really-safe-money-gen] let currentDigits :: Word8
  6250. 1014.36 s [really-safe-money-gen] currentDigits = digits dl
  6251. 1014.36 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  6252. 1014.36 s [really-safe-money-gen] + in if wantedDigits > currentDigits
  6253. 1014.36 s [really-safe-money-gen] then dl
  6254. 1014.36 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  6255. 1014.36 s [really-safe-money-gen] where
  6256. 1014.36 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  6257. 1014.36 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  6258. 1014.36 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  6259. 1014.36 s [really-safe-money-gen] let currentDigits :: Word8
  6260. 1014.36 s [really-safe-money-gen] currentDigits = digits dl
  6261. 1014.36 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  6262. 1014.36 s [really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
  6263. 1014.36 s [really-safe-money-gen] then dl
  6264. 1014.36 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  6265. 1014.36 s [really-safe-money-gen] where
  6266. 1014.36 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  6267. 1014.36 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  6268. 1014.36 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  6269. 1014.36 s [really-safe-money-gen] increaseDigits 0 = id
  6270. 1014.36 s [really-safe-money-gen] increaseDigits w = \case
  6271. 1014.36 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  6272. 1014.36 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m + 10) (succ e))
  6273. 1014.36 s [really-safe-money-gen]
  6274. 1014.36 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  6275. 1014.36 s [really-safe-money-gen] --
  6276. 1014.36 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  6277. 1014.36 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6278. 1014.36 s [really-safe-money-gen] pure $ fromIntegral n
  6279. 1014.36 s [really-safe-money-gen]
  6280. 1014.36 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6281. 1014.36 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6282. 1014.37 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  6283. 1014.37 s [really-safe-money-gen]
  6284. 1014.37 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6285. 1014.37 s [really-safe-money-gen] signSignum = \case
  6286. 1014.37 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  6287. 1014.37 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6288. 1014.37 s [really-safe-money-gen] pure $ fromIntegral n
  6289. 1014.37 s [really-safe-money-gen]
  6290. 1014.37 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6291. 1014.37 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6292. 1014.37 s [really-safe-money-gen] +numSign a = if a <= 0 then Nothing else Just False
  6293. 1014.37 s [really-safe-money-gen]
  6294. 1014.37 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6295. 1014.37 s [really-safe-money-gen] signSignum = \case
  6296. 1014.37 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  6297. 1014.37 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  6298. 1014.37 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  6299. 1014.37 s [really-safe-money-gen] let currentDigits :: Word8
  6300. 1014.37 s [really-safe-money-gen] currentDigits = digits dl
  6301. 1014.37 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  6302. 1014.37 s [really-safe-money-gen] + in if wantedDigits < currentDigits
  6303. 1014.37 s [really-safe-money-gen] then dl
  6304. 1014.37 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  6305. 1014.37 s [really-safe-money-gen] where
  6306. 1014.37 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  6307. 1014.37 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  6308. 1014.37 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  6309. 1014.37 s [really-safe-money-gen] where
  6310. 1014.37 s [really-safe-money-gen] go = \case
  6311. 1014.37 s [really-safe-money-gen] - Nothing -> Just True
  6312. 1014.37 s [really-safe-money-gen] + Nothing -> Just False
  6313. 1014.37 s [really-safe-money-gen] s -> s
  6314. 1014.37 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
  6315. 1014.37 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  6316. 1014.37 s [really-safe-money-gen] validate ad =
  6317. 1014.37 s [really-safe-money-gen] mconcat
  6318. 1014.37 s [really-safe-money-gen] [ genericValidate ad,
  6319. 1014.37 s [really-safe-money-gen] case ad of
  6320. 1014.37 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  6321. 1014.37 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  6322. 1014.37 s [really-safe-money-gen] - a1 > a2
  6323. 1014.37 s [really-safe-money-gen] _ -> valid
  6324. 1014.37 s [really-safe-money-gen] ]
  6325. 1014.38 s [really-safe-money-gen]
  6326. 1014.38 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  6327. 1014.38 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  6328. 1014.38 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  6329. 1019.23 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  6330. 1019.23 s [really-safe-money-gen] increaseDigits 0 = id
  6331. 1019.23 s [really-safe-money-gen] increaseDigits w = \case
  6332. 1019.23 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  6333. 1019.24 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  6334. 1019.24 s [really-safe-money-gen]
  6335. 1019.24 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  6336. 1019.24 s [really-safe-money-gen] --
  6337. 1019.24 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  6338. 1019.24 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  6339. 1019.24 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  6340. 1019.24 s [really-safe-money-gen] increaseDigits 0 = id
  6341. 1019.24 s [really-safe-money-gen] increaseDigits w = \case
  6342. 1019.24 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  6343. 1019.24 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m - 10) (succ e))
  6344. 1019.24 s [really-safe-money-gen]
  6345. 1019.24 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  6346. 1019.24 s [really-safe-money-gen] --
  6347. 1019.24 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  6348. 1019.24 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6349. 1019.24 s [really-safe-money-gen] pure $ fromIntegral n
  6350. 1019.24 s [really-safe-money-gen]
  6351. 1019.24 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6352. 1019.24 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6353. 1019.24 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  6354. 1019.24 s [really-safe-money-gen]
  6355. 1019.24 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6356. 1019.24 s [really-safe-money-gen] signSignum = \case
  6357. 1019.24 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  6358. 1019.24 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  6359. 1019.24 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  6360. 1019.24 s [really-safe-money-gen] let currentDigits :: Word8
  6361. 1019.24 s [really-safe-money-gen] currentDigits = digits dl
  6362. 1019.24 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  6363. 1019.24 s [really-safe-money-gen] + in if True
  6364. 1019.24 s [really-safe-money-gen] then dl
  6365. 1019.24 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  6366. 1019.24 s [really-safe-money-gen] where
  6367. 1019.24 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  6368. 1019.24 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  6369. 1019.24 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  6370. 1019.24 s [really-safe-money-gen] increaseDigits 0 = id
  6371. 1019.24 s [really-safe-money-gen] increaseDigits w = \case
  6372. 1019.24 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  6373. 1019.24 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  6374. 1019.24 s [really-safe-money-gen]
  6375. 1019.24 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  6376. 1019.24 s [really-safe-money-gen] --
  6377. 1019.24 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  6378. 1019.24 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  6379. 1019.25 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6380. 1019.25 s [really-safe-money-gen] toInt dl = do
  6381. 1019.25 s [really-safe-money-gen] n <- toInteger dl
  6382. 1019.25 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6383. 1019.25 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  6384. 1019.25 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6385. 1019.25 s [really-safe-money-gen] pure $ fromIntegral n
  6386. 1019.25 s [really-safe-money-gen]
  6387. 1019.25 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  6388. 1019.25 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6389. 1019.25 s [really-safe-money-gen] pure $ fromIntegral n
  6390. 1019.25 s [really-safe-money-gen]
  6391. 1019.25 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6392. 1019.25 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6393. 1019.25 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
  6394. 1019.25 s [really-safe-money-gen]
  6395. 1019.25 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6396. 1019.25 s [really-safe-money-gen] signSignum = \case
  6397. 1019.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  6398. 1019.25 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  6399. 1019.25 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6400. 1019.25 s [really-safe-money-gen] toInt dl = do
  6401. 1019.25 s [really-safe-money-gen] n <- toInteger dl
  6402. 1019.25 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6403. 1019.25 s [really-safe-money-gen] + guard $ True
  6404. 1019.25 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6405. 1019.25 s [really-safe-money-gen] pure $ fromIntegral n
  6406. 1019.25 s [really-safe-money-gen]
  6407. 1019.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  6408. 1019.25 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  6409. 1019.25 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6410. 1019.25 s [really-safe-money-gen] toInt dl = do
  6411. 1019.25 s [really-safe-money-gen] n <- toInteger dl
  6412. 1019.25 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6413. 1019.25 s [really-safe-money-gen] + guard $ False
  6414. 1019.25 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6415. 1019.25 s [really-safe-money-gen] pure $ fromIntegral n
  6416. 1019.25 s [really-safe-money-gen]
  6417. 1019.25 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  6418. 1019.25 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  6419. 1019.25 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6420. 1019.25 s [really-safe-money-gen] toInt dl = do
  6421. 1019.25 s [really-safe-money-gen] n <- toInteger dl
  6422. 1019.25 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6423. 1019.25 s [really-safe-money-gen] + guard $ n >= fromIntegral (maxBound :: Int)
  6424. 1019.25 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6425. 1019.32 s [really-safe-money-gen] pure $ fromIntegral n
  6426. 1019.32 s [really-safe-money-gen]
  6427. 1019.32 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  6428. 1019.32 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  6429. 1019.32 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6430. 1019.32 s [really-safe-money-gen] toInt dl = do
  6431. 1019.32 s [really-safe-money-gen] n <- toInteger dl
  6432. 1019.32 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6433. 1019.32 s [really-safe-money-gen] + guard $ n > fromIntegral (maxBound :: Int)
  6434. 1019.32 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6435. 1019.32 s [really-safe-money-gen] pure $ fromIntegral n
  6436. 1019.32 s [really-safe-money-gen]
  6437. 1019.32 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  6438. 1019.32 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  6439. 1019.32 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6440. 1019.32 s [really-safe-money-gen] toInt dl = do
  6441. 1019.32 s [really-safe-money-gen] n <- toInteger dl
  6442. 1019.32 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6443. 1019.32 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
  6444. 1019.32 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6445. 1019.32 s [really-safe-money-gen] pure $ fromIntegral n
  6446. 1019.32 s [really-safe-money-gen]
  6447. 1019.32 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  6448. 1019.32 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6449. 1019.32 s [really-safe-money-gen] pure $ fromIntegral n
  6450. 1019.32 s [really-safe-money-gen]
  6451. 1019.32 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6452. 1019.32 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6453. 1019.32 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Nothing
  6454. 1019.32 s [really-safe-money-gen]
  6455. 1019.32 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6456. 1019.32 s [really-safe-money-gen] signSignum = \case
  6457. 1019.32 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  6458. 1019.32 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6459. 1019.32 s [really-safe-money-gen] pure $ fromIntegral n
  6460. 1019.32 s [really-safe-money-gen]
  6461. 1019.32 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6462. 1019.32 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6463. 1019.32 s [really-safe-money-gen] +numSign a = if False then Nothing else Just False
  6464. 1019.32 s [really-safe-money-gen]
  6465. 1019.33 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6466. 1019.33 s [really-safe-money-gen] signSignum = \case
  6467. 1019.33 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  6468. 1019.33 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6469. 1019.33 s [really-safe-money-gen] pure $ fromIntegral n
  6470. 1019.33 s [really-safe-money-gen]
  6471. 1019.33 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6472. 1019.33 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6473. 1019.33 s [really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
  6474. 1019.33 s [really-safe-money-gen]
  6475. 1019.33 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6476. 1019.33 s [really-safe-money-gen] signSignum = \case
  6477. 1019.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  6478. 1019.33 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6479. 1019.33 s [really-safe-money-gen] pure $ fromIntegral n
  6480. 1019.33 s [really-safe-money-gen]
  6481. 1019.33 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6482. 1019.33 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6483. 1019.33 s [really-safe-money-gen] +numSign a = if True then Nothing else Just False
  6484. 1019.33 s [really-safe-money-gen]
  6485. 1019.33 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6486. 1019.33 s [really-safe-money-gen] signSignum = \case
  6487. 1019.33 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  6488. 1019.33 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  6489. 1019.33 s [really-safe-money-gen] case ad of
  6490. 1019.33 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6491. 1019.33 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6492. 1019.33 s [really-safe-money-gen] - a1 > a2
  6493. 1019.33 s [really-safe-money-gen] + a1 <= a2
  6494. 1019.33 s [really-safe-money-gen] _ -> valid
  6495. 1019.33 s [really-safe-money-gen] ]
  6496. 1019.33 s [really-safe-money-gen]
  6497. 1019.33 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  6498. 1019.33 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  6499. 1019.33 s [really-safe-money-gen] toInt dl = do
  6500. 1019.33 s [really-safe-money-gen] n <- toInteger dl
  6501. 1019.33 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6502. 1019.33 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6503. 1019.33 s [really-safe-money-gen] + guard $ n < fromIntegral (minBound :: Int)
  6504. 1019.33 s [really-safe-money-gen] pure $ fromIntegral n
  6505. 1019.33 s [really-safe-money-gen]
  6506. 1019.33 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6507. 1019.33 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  6508. 1019.33 s [really-safe-money-gen] @@ -367,7 +367,7 @@
  6509. 1024.32 s [really-safe-money-gen] currentDigits = digits dl
  6510. 1024.32 s [really-safe-money-gen] in if wantedDigits <= currentDigits
  6511. 1024.37 s [really-safe-money-gen] then dl
  6512. 1024.37 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  6513. 1024.37 s [really-safe-money-gen] + else increaseDigits (wantedDigits + currentDigits) dl
  6514. 1024.37 s [really-safe-money-gen] where
  6515. 1024.37 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  6516. 1024.37 s [really-safe-money-gen] increaseDigits 0 = id
  6517. 1024.37 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  6518. 1024.37 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  6519. 1024.38 s [really-safe-money-gen] toInt dl = do
  6520. 1024.38 s [really-safe-money-gen] n <- toInteger dl
  6521. 1024.38 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6522. 1024.38 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6523. 1024.38 s [really-safe-money-gen] + guard $ False
  6524. 1024.38 s [really-safe-money-gen] pure $ fromIntegral n
  6525. 1024.38 s [really-safe-money-gen]
  6526. 1024.38 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6527. 1024.38 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  6528. 1024.38 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  6529. 1024.38 s [really-safe-money-gen] toInt dl = do
  6530. 1024.38 s [really-safe-money-gen] n <- toInteger dl
  6531. 1024.38 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6532. 1024.38 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6533. 1024.38 s [really-safe-money-gen] + guard $ n > fromIntegral (minBound :: Int)
  6534. 1024.38 s [really-safe-money-gen] pure $ fromIntegral n
  6535. 1024.38 s [really-safe-money-gen]
  6536. 1024.38 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6537. 1024.38 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  6538. 1024.38 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  6539. 1024.38 s [really-safe-money-gen] toInt dl = do
  6540. 1024.38 s [really-safe-money-gen] n <- toInteger dl
  6541. 1024.38 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6542. 1024.38 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6543. 1024.38 s [really-safe-money-gen] + guard $ True
  6544. 1024.38 s [really-safe-money-gen] pure $ fromIntegral n
  6545. 1024.38 s [really-safe-money-gen]
  6546. 1024.38 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6547. 1024.38 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  6548. 1024.38 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  6549. 1024.38 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  6550. 1024.38 s [really-safe-money-gen] toInt dl = do
  6551. 1024.38 s [really-safe-money-gen] n <- toInteger dl
  6552. 1024.38 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  6553. 1024.38 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  6554. 1024.38 s [really-safe-money-gen] pure $ fromIntegral n
  6555. 1024.38 s [really-safe-money-gen]
  6556. 1024.38 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
  6557. 1024.39 s [really-safe-money-gen] @@ -601,11 +601,10 @@
  6558. 1024.39 s [really-safe-money-gen] validate ad =
  6559. 1024.39 s [really-safe-money-gen] mconcat
  6560. 1024.39 s [really-safe-money-gen] [ genericValidate ad,
  6561. 1024.39 s [really-safe-money-gen] case ad of
  6562. 1024.39 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6563. 1024.39 s [really-safe-money-gen] declare "The larger chunks are larger" $
  6564. 1024.39 s [really-safe-money-gen] a1 > a2
  6565. 1024.39 s [really-safe-money-gen] - _ -> valid
  6566. 1024.39 s [really-safe-money-gen] ]
  6567. 1024.39 s [really-safe-money-gen]
  6568. 1024.39 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  6569. 1024.39 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  6570. 1024.39 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  6571. 1024.39 s [really-safe-money-gen] toInt dl = do
  6572. 1024.39 s [really-safe-money-gen] n <- toInteger dl
  6573. 1024.39 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6574. 1024.39 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6575. 1024.39 s [really-safe-money-gen] pure $ fromIntegral n
  6576. 1024.39 s [really-safe-money-gen]
  6577. 1024.39 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6578. 1024.39 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  6579. 1024.39 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  6580. 1024.39 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  6581. 1024.39 s [really-safe-money-gen] validate ad =
  6582. 1024.39 s [really-safe-money-gen] mconcat
  6583. 1024.39 s [really-safe-money-gen] - [ genericValidate ad,
  6584. 1024.39 s [really-safe-money-gen] - case ad of
  6585. 1024.39 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  6586. 1024.39 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  6587. 1024.39 s [really-safe-money-gen] - a1 > a2
  6588. 1024.39 s [really-safe-money-gen] - _ -> valid
  6589. 1024.39 s [really-safe-money-gen] ]
  6590. 1024.39 s [really-safe-money-gen]
  6591. 1024.39 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  6592. 1024.39 s [really-safe-money-gen]
  6593. 1024.39 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  6594. 1024.39 s [really-safe-money-gen] @@ -301,7 +301,7 @@
  6595. 1024.39 s [really-safe-money-gen]
  6596. 1024.39 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6597. 1024.39 s [really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
  6598. 1024.39 s [really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
  6599. 1024.39 s [really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
  6600. 1024.39 s [really-safe-money-gen]
  6601. 1024.39 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
  6602. 1024.39 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  6603. 1024.39 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  6604. 1024.39 s [really-safe-money-gen] @@ -307,7 +307,7 @@
  6605. 1024.39 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  6606. 1024.39 s [really-safe-money-gen] toNatural = \case
  6607. 1024.39 s [really-safe-money-gen] DecimalLiteral (Just False) _ _ -> Nothing
  6608. 1024.39 s [really-safe-money-gen] - DecimalLiteral _ n 0 -> Just n
  6609. 1024.39 s [really-safe-money-gen] + DecimalLiteral _ n 0 -> Nothing
  6610. 1024.39 s [really-safe-money-gen] _ -> Nothing
  6611. 1024.40 s [really-safe-money-gen]
  6612. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  6613. 1024.40 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  6614. 1024.40 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  6615. 1024.40 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6616. 1024.40 s [really-safe-money-gen] toWord dl = do
  6617. 1024.40 s [really-safe-money-gen] n <- toNatural dl
  6618. 1024.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6619. 1024.40 s [really-safe-money-gen] + guard $ n >= fromIntegral (maxBound :: Word)
  6620. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6621. 1024.40 s [really-safe-money-gen]
  6622. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6623. 1024.40 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  6624. 1024.40 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  6625. 1024.40 s [really-safe-money-gen] toInt dl = do
  6626. 1024.40 s [really-safe-money-gen] n <- toInteger dl
  6627. 1024.40 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6628. 1024.40 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6629. 1024.40 s [really-safe-money-gen] + guard $ n <= fromIntegral (minBound :: Int)
  6630. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6631. 1024.40 s [really-safe-money-gen]
  6632. 1024.40 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6633. 1024.40 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  6634. 1024.40 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  6635. 1024.40 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6636. 1024.40 s [really-safe-money-gen] toWord dl = do
  6637. 1024.40 s [really-safe-money-gen] n <- toNatural dl
  6638. 1024.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6639. 1024.40 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
  6640. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6641. 1024.40 s [really-safe-money-gen]
  6642. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6643. 1024.40 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  6644. 1024.40 s [really-safe-money-gen] @@ -312,7 +312,7 @@
  6645. 1024.40 s [really-safe-money-gen]
  6646. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  6647. 1024.40 s [really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
  6648. 1024.40 s [really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  6649. 1024.40 s [really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  6650. 1024.40 s [really-safe-money-gen]
  6651. 1024.40 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
  6652. 1024.40 s [really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
  6653. 1024.40 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  6654. 1024.40 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  6655. 1024.40 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6656. 1024.40 s [really-safe-money-gen] toWord dl = do
  6657. 1024.40 s [really-safe-money-gen] n <- toNatural dl
  6658. 1024.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6659. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6660. 1024.40 s [really-safe-money-gen]
  6661. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6662. 1024.40 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  6663. 1024.40 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  6664. 1024.40 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6665. 1024.40 s [really-safe-money-gen] toWord dl = do
  6666. 1024.40 s [really-safe-money-gen] n <- toNatural dl
  6667. 1024.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6668. 1024.40 s [really-safe-money-gen] + guard $ False
  6669. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6670. 1024.40 s [really-safe-money-gen]
  6671. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6672. 1024.40 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  6673. 1024.40 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  6674. 1024.40 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6675. 1024.40 s [really-safe-money-gen] toWord dl = do
  6676. 1024.40 s [really-safe-money-gen] n <- toNatural dl
  6677. 1024.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6678. 1024.40 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Word)
  6679. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6680. 1024.40 s [really-safe-money-gen]
  6681. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6682. 1024.40 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  6683. 1024.40 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  6684. 1024.40 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  6685. 1024.40 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  6686. 1024.40 s [really-safe-money-gen] Just False -> Nothing
  6687. 1024.40 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  6688. 1024.40 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
  6689. 1024.40 s [really-safe-money-gen]
  6690. 1024.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  6691. 1024.40 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  6692. 1024.40 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  6693. 1024.40 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  6694. 1024.40 s [really-safe-money-gen] pure $ fromIntegral n
  6695. 1024.40 s [really-safe-money-gen]
  6696. 1024.41 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6697. 1024.41 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  6698. 1024.41 s [really-safe-money-gen] +numSign a = if a < 0 then Nothing else Just False
  6699. 1024.41 s [really-safe-money-gen]
  6700. 1024.41 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  6701. 1024.41 s [really-safe-money-gen] signSignum = \case
  6702. 1024.41 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  6703. 1024.41 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  6704. 1024.41 s [really-safe-money-gen] toInt dl = do
  6705. 1024.41 s [really-safe-money-gen] n <- toInteger dl
  6706. 1024.41 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  6707. 1029.60 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  6708. 1029.62 s [really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
  6709. 1029.62 s [really-safe-money-gen] pure $ fromIntegral n
  6710. 1029.62 s [really-safe-money-gen]
  6711. 1029.63 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  6712. 1029.63 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  6713. 1029.63 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  6714. 1029.63 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6715. 1029.63 s [really-safe-money-gen] toWord dl = do
  6716. 1029.63 s [really-safe-money-gen] n <- toNatural dl
  6717. 1029.63 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6718. 1029.63 s [really-safe-money-gen] + guard $ True
  6719. 1029.63 s [really-safe-money-gen] pure $ fromIntegral n
  6720. 1029.63 s [really-safe-money-gen]
  6721. 1029.63 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6722. 1029.63 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  6723. 1029.63 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  6724. 1029.63 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  6725. 1029.63 s [really-safe-money-gen] toWord dl = do
  6726. 1029.63 s [really-safe-money-gen] n <- toNatural dl
  6727. 1029.63 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  6728. 1029.63 s [really-safe-money-gen] + guard $ n > fromIntegral (maxBound :: Word)
  6729. 1029.63 s [really-safe-money-gen] pure $ fromIntegral n
  6730. 1029.63 s [really-safe-money-gen]
  6731. 1029.63 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  6732. 1029.63 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  6733. 1029.63 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  6734. 1029.63 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  6735. 1029.63 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  6736. 1029.63 s [really-safe-money-gen] Just False -> Nothing
  6737. 1029.63 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  6738. 1029.63 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
  6739. 1029.63 s [really-safe-money-gen]
  6740. 1029.63 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  6741. 1029.63 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  6742. 1029.63 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  6743. 1029.63 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  6744. 1029.63 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  6745. 1029.63 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  6746. 1029.63 s [really-safe-money-gen] Just False -> Nothing
  6747. 1029.63 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  6748. 1029.63 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  6749. 1029.63 s [really-safe-money-gen]
  6750. 1029.63 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  6751. 1029.63 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  6752. 1029.63 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  6753. 1029.64 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  6754. 1029.64 s [really-safe-money-gen] Ratio Natural ->
  6755. 1029.64 s [really-safe-money-gen] Maybe DecimalLiteral
  6756. 1029.64 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  6757. 1029.64 s [really-safe-money-gen] - | d == 0 = Nothing
  6758. 1029.64 s [really-safe-money-gen] + | True = Nothing
  6759. 1029.64 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  6760. 1029.64 s [really-safe-money-gen] where
  6761. 1029.64 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  6762. 1029.64 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  6763. 1029.64 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  6764. 1029.64 s [really-safe-money-gen] Ratio Natural ->
  6765. 1029.64 s [really-safe-money-gen] Maybe DecimalLiteral
  6766. 1029.64 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  6767. 1029.64 s [really-safe-money-gen] - | d == 0 = Nothing
  6768. 1029.64 s [really-safe-money-gen] + | not (d == 0) = Nothing
  6769. 1029.64 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  6770. 1029.64 s [really-safe-money-gen] where
  6771. 1029.64 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  6772. 1029.64 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  6773. 1029.64 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  6774. 1029.64 s [really-safe-money-gen] Just (c, e)
  6775. 1029.64 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  6776. 1029.64 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  6777. 1029.64 s [really-safe-money-gen] - | S.member n ns = Nothing
  6778. 1029.64 s [really-safe-money-gen] + | True = Nothing
  6779. 1029.64 s [really-safe-money-gen] -- Over the limit, stop trying
  6780. 1029.64 s [really-safe-money-gen] | e >= l = Nothing
  6781. 1029.64 s [really-safe-money-gen] | n < d =
  6782. 1029.64 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  6783. 1029.64 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  6784. 1029.64 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  6785. 1029.64 s [really-safe-money-gen] -- Nothing
  6786. 1029.64 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  6787. 1029.64 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  6788. 1029.64 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
  6789. 1029.64 s [really-safe-money-gen] where
  6790. 1029.64 s [really-safe-money-gen] fromRationalRepetendLimited ::
  6791. 1029.64 s [really-safe-money-gen] -- limit
  6792. 1029.64 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  6793. 1029.64 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  6794. 1029.64 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  6795. 1029.64 s [really-safe-money-gen] -- Nothing
  6796. 1029.65 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  6797. 1029.65 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  6798. 1029.65 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
  6799. 1029.65 s [really-safe-money-gen] where
  6800. 1029.65 s [really-safe-money-gen] fromRationalRepetendLimited ::
  6801. 1029.65 s [really-safe-money-gen] -- limit
  6802. 1029.65 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  6803. 1029.65 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  6804. 1029.65 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  6805. 1029.65 s [really-safe-money-gen] -- Nothing
  6806. 1029.65 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  6807. 1029.65 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  6808. 1029.65 s [really-safe-money-gen] - Just False -> Nothing
  6809. 1029.65 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  6810. 1029.65 s [really-safe-money-gen]
  6811. 1029.65 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  6812. 1029.65 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  6813. 1029.65 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  6814. 1029.65 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  6815. 1029.65 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  6816. 1029.65 s [really-safe-money-gen] -- Nothing
  6817. 1029.65 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  6818. 1029.65 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  6819. 1029.65 s [really-safe-money-gen] Just False -> Nothing
  6820. 1029.65 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  6821. 1029.65 s [really-safe-money-gen]
  6822. 1029.65 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  6823. 1029.65 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  6824. 1029.65 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  6825. 1029.65 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  6826. 1029.65 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  6827. 1029.65 s [really-safe-money-gen] -- Nothing
  6828. 1029.65 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  6829. 1029.65 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  6830. 1029.65 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
  6831. 1029.65 s [really-safe-money-gen] where
  6832. 1029.65 s [really-safe-money-gen] fromRationalRepetendLimited ::
  6833. 1029.65 s [really-safe-money-gen] -- limit
  6834. 1029.65 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  6835. 1029.65 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6836. 1029.65 s [really-safe-money-gen] | e >= l = Nothing
  6837. 1029.66 s [really-safe-money-gen] | n < d =
  6838. 1029.66 s [really-safe-money-gen] let !ns' = S.insert n ns
  6839. 1029.66 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6840. 1029.66 s [really-safe-money-gen] + in longDivWithLimit (c + 10) (succ e) ns' (n * 10)
  6841. 1029.66 s [really-safe-money-gen] | otherwise =
  6842. 1029.66 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6843. 1029.66 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6844. 1029.66 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  6845. 1029.66 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6846. 1029.66 s [really-safe-money-gen] | e >= l = Nothing
  6847. 1029.66 s [really-safe-money-gen] | n < d =
  6848. 1029.66 s [really-safe-money-gen] let !ns' = S.insert n ns
  6849. 1029.66 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6850. 1029.66 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  6851. 1029.66 s [really-safe-money-gen] | otherwise =
  6852. 1029.66 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6853. 1029.66 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6854. 1029.66 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  6855. 1029.66 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6856. 1029.66 s [really-safe-money-gen] | e >= l = Nothing
  6857. 1029.66 s [really-safe-money-gen] | n < d =
  6858. 1029.66 s [really-safe-money-gen] let !ns' = S.insert n ns
  6859. 1029.66 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6860. 1029.66 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n + 10)
  6861. 1029.66 s [really-safe-money-gen] | otherwise =
  6862. 1029.66 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6863. 1029.66 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6864. 1029.66 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  6865. 1029.66 s [really-safe-money-gen] @@ -269,7 +269,7 @@
  6866. 1029.66 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6867. 1029.66 s [really-safe-money-gen] | otherwise =
  6868. 1029.66 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6869. 1029.66 s [really-safe-money-gen] - in longDivWithLimit (c + q) e ns r'
  6870. 1029.66 s [really-safe-money-gen] + in longDivWithLimit (c - q) e ns r'
  6871. 1029.66 s [really-safe-money-gen]
  6872. 1029.66 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Ratio Natural'
  6873. 1029.66 s [really-safe-money-gen] --
  6874. 1029.66 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  6875. 1029.66 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  6876. 1029.66 s [really-safe-money-gen] num = numerator rational
  6877. 1029.66 s [really-safe-money-gen]
  6878. 1029.66 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  6879. 1029.66 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  6880. 1029.66 s [really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
  6881. 1029.66 s [really-safe-money-gen]
  6882. 1029.67 s [really-safe-money-gen] longDivWithLimit ::
  6883. 1029.67 s [really-safe-money-gen] Natural ->
  6884. 1029.67 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  6885. 1033.64 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  6886. 1033.64 s [really-safe-money-gen] -- (-3) % 10
  6887. 1033.64 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  6888. 1033.64 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  6889. 1033.64 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  6890. 1033.64 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
  6891. 1033.64 s [really-safe-money-gen]
  6892. 1033.64 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  6893. 1033.64 s [really-safe-money-gen] --
  6894. 1033.64 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  6895. 1033.64 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6896. 1033.64 s [really-safe-money-gen] | e >= l = Nothing
  6897. 1033.65 s [really-safe-money-gen] | n < d =
  6898. 1033.65 s [really-safe-money-gen] let !ns' = S.insert n ns
  6899. 1033.65 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6900. 1033.65 s [really-safe-money-gen] + in longDivWithLimit (c - 10) (succ e) ns' (n * 10)
  6901. 1033.65 s [really-safe-money-gen] | otherwise =
  6902. 1033.65 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6903. 1033.65 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6904. 1033.65 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  6905. 1033.65 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  6906. 1033.65 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  6907. 1033.65 s [really-safe-money-gen] | S.member n ns = Nothing
  6908. 1033.65 s [really-safe-money-gen] -- Over the limit, stop trying
  6909. 1033.65 s [really-safe-money-gen] - | e >= l = Nothing
  6910. 1033.65 s [really-safe-money-gen] + | e < l = Nothing
  6911. 1033.65 s [really-safe-money-gen] | n < d =
  6912. 1033.65 s [really-safe-money-gen] let !ns' = S.insert n ns
  6913. 1033.65 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6914. 1033.65 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  6915. 1033.65 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6916. 1033.65 s [really-safe-money-gen] | e >= l = Nothing
  6917. 1033.65 s [really-safe-money-gen] | n < d =
  6918. 1033.65 s [really-safe-money-gen] let !ns' = S.insert n ns
  6919. 1033.65 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6920. 1033.65 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  6921. 1033.65 s [really-safe-money-gen] | otherwise =
  6922. 1033.65 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6923. 1033.65 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6924. 1033.65 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  6925. 1033.65 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  6926. 1033.65 s [really-safe-money-gen] Just (c, e)
  6927. 1033.65 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  6928. 1033.65 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  6929. 1033.65 s [really-safe-money-gen] - | S.member n ns = Nothing
  6930. 1033.65 s [really-safe-money-gen] + | not (S.member n ns) = Nothing
  6931. 1033.65 s [really-safe-money-gen] -- Over the limit, stop trying
  6932. 1033.65 s [really-safe-money-gen] | e >= l = Nothing
  6933. 1033.65 s [really-safe-money-gen] | n < d =
  6934. 1033.65 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  6935. 1033.65 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  6936. 1033.66 s [really-safe-money-gen] | S.member n ns = Nothing
  6937. 1033.66 s [really-safe-money-gen] -- Over the limit, stop trying
  6938. 1033.66 s [really-safe-money-gen] | e >= l = Nothing
  6939. 1033.66 s [really-safe-money-gen] - | n < d =
  6940. 1033.66 s [really-safe-money-gen] + | n >= d =
  6941. 1033.66 s [really-safe-money-gen] let !ns' = S.insert n ns
  6942. 1033.66 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6943. 1033.66 s [really-safe-money-gen] | otherwise =
  6944. 1033.66 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  6945. 1033.66 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  6946. 1033.66 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  6947. 1033.66 s [really-safe-money-gen] | S.member n ns = Nothing
  6948. 1033.66 s [really-safe-money-gen] -- Over the limit, stop trying
  6949. 1033.66 s [really-safe-money-gen] - | e >= l = Nothing
  6950. 1033.66 s [really-safe-money-gen] + | e <= l = Nothing
  6951. 1033.66 s [really-safe-money-gen] | n < d =
  6952. 1033.66 s [really-safe-money-gen] let !ns' = S.insert n ns
  6953. 1033.66 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6954. 1033.66 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  6955. 1033.66 s [really-safe-money-gen] @@ -269,7 +269,7 @@
  6956. 1033.66 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6957. 1033.66 s [really-safe-money-gen] | otherwise =
  6958. 1033.66 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6959. 1033.66 s [really-safe-money-gen] - in longDivWithLimit (c + q) e ns r'
  6960. 1033.66 s [really-safe-money-gen] + in longDivWithLimit (c * q) e ns r'
  6961. 1033.66 s [really-safe-money-gen]
  6962. 1033.66 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Ratio Natural'
  6963. 1033.66 s [really-safe-money-gen] --
  6964. 1033.66 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  6965. 1033.66 s [really-safe-money-gen] @@ -258,7 +258,7 @@
  6966. 1033.66 s [really-safe-money-gen] Natural ->
  6967. 1033.66 s [really-safe-money-gen] Maybe (Natural, Int)
  6968. 1033.66 s [really-safe-money-gen] longDivWithLimit !c !e _ns 0 =
  6969. 1033.66 s [really-safe-money-gen] - Just (c, e)
  6970. 1033.66 s [really-safe-money-gen] + Nothing
  6971. 1033.66 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  6972. 1033.66 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  6973. 1033.66 s [really-safe-money-gen] | S.member n ns = Nothing
  6974. 1033.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  6975. 1033.66 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  6976. 1033.66 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  6977. 1033.66 s [really-safe-money-gen] | S.member n ns = Nothing
  6978. 1033.66 s [really-safe-money-gen] -- Over the limit, stop trying
  6979. 1033.66 s [really-safe-money-gen] - | e >= l = Nothing
  6980. 1033.66 s [really-safe-money-gen] + | True = Nothing
  6981. 1033.66 s [really-safe-money-gen] | n < d =
  6982. 1033.66 s [really-safe-money-gen] let !ns' = S.insert n ns
  6983. 1033.66 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6984. 1033.66 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  6985. 1033.66 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  6986. 1033.66 s [really-safe-money-gen] Ratio Natural ->
  6987. 1033.67 s [really-safe-money-gen] Maybe DecimalLiteral
  6988. 1033.67 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  6989. 1033.67 s [really-safe-money-gen] - | d == 0 = Nothing
  6990. 1033.67 s [really-safe-money-gen] + | d == 1 = Nothing
  6991. 1033.67 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  6992. 1033.67 s [really-safe-money-gen] where
  6993. 1033.67 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  6994. 1033.67 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  6995. 1033.67 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6996. 1033.67 s [really-safe-money-gen] | e >= l = Nothing
  6997. 1033.67 s [really-safe-money-gen] | n < d =
  6998. 1033.67 s [really-safe-money-gen] let !ns' = S.insert n ns
  6999. 1033.67 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7000. 1033.67 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n - 10)
  7001. 1033.67 s [really-safe-money-gen] | otherwise =
  7002. 1033.67 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  7003. 1033.67 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  7004. 1033.67 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  7005. 1033.67 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  7006. 1033.67 s [really-safe-money-gen] num = numerator rational
  7007. 1033.67 s [really-safe-money-gen]
  7008. 1033.67 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  7009. 1033.67 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  7010. 1033.67 s [really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
  7011. 1033.67 s [really-safe-money-gen]
  7012. 1033.67 s [really-safe-money-gen] longDivWithLimit ::
  7013. 1033.67 s [really-safe-money-gen] Natural ->
  7014. 1033.67 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  7015. 1033.67 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  7016. 1033.67 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  7017. 1033.67 s [really-safe-money-gen] | S.member n ns = Nothing
  7018. 1033.67 s [really-safe-money-gen] -- Over the limit, stop trying
  7019. 1033.67 s [really-safe-money-gen] - | e >= l = Nothing
  7020. 1033.67 s [really-safe-money-gen] + | not (e >= l) = Nothing
  7021. 1033.67 s [really-safe-money-gen] | n < d =
  7022. 1033.67 s [really-safe-money-gen] let !ns' = S.insert n ns
  7023. 1033.67 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7024. 1033.67 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  7025. 1033.67 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  7026. 1033.67 s [really-safe-money-gen] | S.member n ns = Nothing
  7027. 1033.67 s [really-safe-money-gen] -- Over the limit, stop trying
  7028. 1033.67 s [really-safe-money-gen] | e >= l = Nothing
  7029. 1033.67 s [really-safe-money-gen] - | n < d =
  7030. 1033.67 s [really-safe-money-gen] + | n > d =
  7031. 1033.67 s [really-safe-money-gen] let !ns' = S.insert n ns
  7032. 1033.67 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7033. 1033.67 s [really-safe-money-gen] | otherwise =
  7034. 1033.67 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  7035. 1033.67 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  7036. 1033.67 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  7037. 1033.67 s [really-safe-money-gen] | S.member n ns = Nothing
  7038. 1033.68 s [really-safe-money-gen] -- Over the limit, stop trying
  7039. 1033.68 s [really-safe-money-gen] - | e >= l = Nothing
  7040. 1033.68 s [really-safe-money-gen] + | e > l = Nothing
  7041. 1033.68 s [really-safe-money-gen] | n < d =
  7042. 1033.68 s [really-safe-money-gen] let !ns' = S.insert n ns
  7043. 1033.68 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7044. 1033.68 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  7045. 1033.68 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  7046. 1033.68 s [really-safe-money-gen] | S.member n ns = Nothing
  7047. 1033.68 s [really-safe-money-gen] -- Over the limit, stop trying
  7048. 1033.68 s [really-safe-money-gen] | e >= l = Nothing
  7049. 1033.68 s [really-safe-money-gen] - | n < d =
  7050. 1033.68 s [really-safe-money-gen] + | n <= d =
  7051. 1033.68 s [really-safe-money-gen] let !ns' = S.insert n ns
  7052. 1033.68 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7053. 1033.68 s [really-safe-money-gen] | otherwise =
  7054. 1033.68 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  7055. 1037.36 s [really-safe-money-gen] @@ -183,7 +183,6 @@
  7056. 1037.36 s [really-safe-money-gen]
  7057. 1037.36 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  7058. 1037.44 s [really-safe-money-gen] go :: Word8 -> String -> String
  7059. 1037.44 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  7060. 1037.44 s [really-safe-money-gen] go 0 s = '.' : s
  7061. 1037.44 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  7062. 1037.44 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  7063. 1037.44 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  7064. 1037.44 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7065. 1037.44 s [really-safe-money-gen] -- Nothing
  7066. 1037.44 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7067. 1037.44 s [really-safe-money-gen] fromRational (n :% d)
  7068. 1037.44 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7069. 1037.44 s [really-safe-money-gen] + | n <= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7070. 1037.44 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7071. 1037.44 s [really-safe-money-gen]
  7072. 1037.44 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7073. 1037.44 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  7074. 1037.44 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7075. 1037.44 s [really-safe-money-gen] -- Nothing
  7076. 1037.44 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7077. 1037.44 s [really-safe-money-gen] fromRational (n :% d)
  7078. 1037.44 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7079. 1037.44 s [really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7080. 1037.44 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7081. 1037.44 s [really-safe-money-gen]
  7082. 1037.44 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7083. 1037.44 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  7084. 1037.44 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7085. 1037.44 s [really-safe-money-gen] -- Nothing
  7086. 1037.44 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7087. 1037.44 s [really-safe-money-gen] fromRational (n :% d)
  7088. 1037.45 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7089. 1037.45 s [really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7090. 1037.45 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7091. 1037.45 s [really-safe-money-gen]
  7092. 1037.45 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7093. 1037.45 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  7094. 1037.45 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7095. 1037.45 s [really-safe-money-gen] -- Nothing
  7096. 1037.45 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7097. 1037.45 s [really-safe-money-gen] fromRational (n :% d)
  7098. 1037.45 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7099. 1037.45 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7100. 1037.45 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7101. 1037.45 s [really-safe-money-gen]
  7102. 1037.45 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7103. 1037.45 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  7104. 1037.45 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7105. 1037.45 s [really-safe-money-gen] -- Nothing
  7106. 1037.45 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7107. 1037.45 s [really-safe-money-gen] fromRational (n :% d)
  7108. 1037.45 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7109. 1037.45 s [really-safe-money-gen] + | n >= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7110. 1037.45 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7111. 1037.45 s [really-safe-money-gen]
  7112. 1037.45 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7113. 1037.45 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  7114. 1037.45 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7115. 1037.45 s [really-safe-money-gen] -- Nothing
  7116. 1037.45 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7117. 1037.45 s [really-safe-money-gen] fromRational (n :% d)
  7118. 1037.45 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7119. 1037.45 s [really-safe-money-gen] + | n > 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7120. 1037.45 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7121. 1037.45 s [really-safe-money-gen]
  7122. 1037.45 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7123. 1037.45 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  7124. 1037.45 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7125. 1037.45 s [really-safe-money-gen] -- Nothing
  7126. 1037.45 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7127. 1037.45 s [really-safe-money-gen] fromRational (n :% d)
  7128. 1037.46 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7129. 1037.46 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7130. 1037.46 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7131. 1037.46 s [really-safe-money-gen]
  7132. 1037.46 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7133. 1037.46 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  7134. 1037.46 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  7135. 1037.46 s [really-safe-money-gen] -- (-3) % 10
  7136. 1037.46 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  7137. 1037.46 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  7138. 1037.46 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  7139. 1037.46 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
  7140. 1037.46 s [really-safe-money-gen]
  7141. 1037.46 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  7142. 1037.46 s [really-safe-money-gen] --
  7143. 1037.46 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  7144. 1037.46 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  7145. 1037.46 s [really-safe-money-gen] -- (-3) % 10
  7146. 1037.46 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  7147. 1037.46 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  7148. 1037.46 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  7149. 1037.46 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
  7150. 1037.46 s [really-safe-money-gen]
  7151. 1037.46 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  7152. 1037.46 s [really-safe-money-gen] --
  7153. 1037.46 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  7154. 1037.46 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  7155. 1037.46 s [really-safe-money-gen] | e >= l = Nothing
  7156. 1037.46 s [really-safe-money-gen] | n < d =
  7157. 1037.46 s [really-safe-money-gen] let !ns' = S.insert n ns
  7158. 1037.46 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7159. 1037.46 s [really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  7160. 1037.46 s [really-safe-money-gen] | otherwise =
  7161. 1037.47 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  7162. 1037.47 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  7163. 1037.47 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  7164. 1037.47 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  7165. 1037.47 s [really-safe-money-gen] | e >= l = Nothing
  7166. 1037.47 s [really-safe-money-gen] | n < d =
  7167. 1037.47 s [really-safe-money-gen] let !ns' = S.insert n ns
  7168. 1037.47 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7169. 1037.47 s [really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  7170. 1037.47 s [really-safe-money-gen] | otherwise =
  7171. 1037.47 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  7172. 1037.47 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  7173. 1037.47 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  7174. 1037.47 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  7175. 1037.47 s [really-safe-money-gen] | S.member n ns = Nothing
  7176. 1037.47 s [really-safe-money-gen] -- Over the limit, stop trying
  7177. 1037.47 s [really-safe-money-gen] | e >= l = Nothing
  7178. 1037.47 s [really-safe-money-gen] - | n < d =
  7179. 1037.47 s [really-safe-money-gen] + | not (n < d) =
  7180. 1037.47 s [really-safe-money-gen] let !ns' = S.insert n ns
  7181. 1037.47 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7182. 1037.47 s [really-safe-money-gen] | otherwise =
  7183. 1037.47 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  7184. 1037.47 s [really-safe-money-gen] @@ -183,7 +183,6 @@
  7185. 1037.47 s [really-safe-money-gen]
  7186. 1037.47 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  7187. 1037.47 s [really-safe-money-gen] go :: Word8 -> String -> String
  7188. 1037.47 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  7189. 1037.47 s [really-safe-money-gen] go 0 s = '.' : s
  7190. 1037.47 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  7191. 1037.47 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  7192. 1037.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  7193. 1037.48 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  7194. 1037.48 s [really-safe-money-gen] | S.member n ns = Nothing
  7195. 1037.48 s [really-safe-money-gen] -- Over the limit, stop trying
  7196. 1037.48 s [really-safe-money-gen] | e >= l = Nothing
  7197. 1037.48 s [really-safe-money-gen] - | n < d =
  7198. 1037.48 s [really-safe-money-gen] + | True =
  7199. 1037.48 s [really-safe-money-gen] let !ns' = S.insert n ns
  7200. 1037.48 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  7201. 1037.48 s [really-safe-money-gen] | otherwise =
  7202. 1037.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  7203. 1037.48 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  7204. 1037.48 s [really-safe-money-gen] where
  7205. 1037.48 s [really-safe-money-gen] go !a [] = return a
  7206. 1037.48 s [really-safe-money-gen] go !a (c : cs)
  7207. 1037.48 s [really-safe-money-gen] - | Char.isDigit c = do
  7208. 1037.48 s [really-safe-money-gen] + | True = do
  7209. 1037.48 s [really-safe-money-gen] _ <- ReadP.get
  7210. 1042.91 s [really-safe-money-gen] let digit = Char.ord c - 48
  7211. 1042.91 s [really-safe-money-gen] case f a digit of
  7212. 1042.93 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  7213. 1042.94 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  7214. 1042.94 s [really-safe-money-gen] where
  7215. 1042.94 s [really-safe-money-gen] go !a [] = return a
  7216. 1042.94 s [really-safe-money-gen] go !a (c : cs)
  7217. 1042.94 s [really-safe-money-gen] - | Char.isDigit c = do
  7218. 1042.94 s [really-safe-money-gen] + | not (Char.isDigit c) = do
  7219. 1042.94 s [really-safe-money-gen] _ <- ReadP.get
  7220. 1042.94 s [really-safe-money-gen] let digit = Char.ord c - 48
  7221. 1042.94 s [really-safe-money-gen] case f a digit of
  7222. 1042.94 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  7223. 1042.94 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  7224. 1042.94 s [really-safe-money-gen] go !a (c : cs)
  7225. 1042.94 s [really-safe-money-gen] | Char.isDigit c = do
  7226. 1042.94 s [really-safe-money-gen] _ <- ReadP.get
  7227. 1042.94 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7228. 1042.94 s [really-safe-money-gen] + let digit = Char.ord c - 0
  7229. 1042.94 s [really-safe-money-gen] case f a digit of
  7230. 1042.94 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  7231. 1042.94 s [really-safe-money-gen] Just a' -> go a' cs
  7232. 1042.94 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  7233. 1042.94 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  7234. 1042.94 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7235. 1042.94 s [really-safe-money-gen] parseDigits f z = do
  7236. 1042.94 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  7237. 1042.94 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7238. 1042.94 s [really-safe-money-gen] + let digit = Char.ord c - 1
  7239. 1042.94 s [really-safe-money-gen] case f z digit of
  7240. 1042.94 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  7241. 1042.95 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  7242. 1042.95 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  7243. 1042.95 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  7244. 1042.95 s [really-safe-money-gen] -- Nothing
  7245. 1042.95 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  7246. 1042.95 s [really-safe-money-gen] fromRational (n :% d)
  7247. 1042.95 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7248. 1042.95 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Nothing) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  7249. 1042.95 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  7250. 1042.95 s [really-safe-money-gen]
  7251. 1042.95 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  7252. 1042.95 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  7253. 1042.95 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  7254. 1042.95 s [really-safe-money-gen] go !a (c : cs)
  7255. 1042.95 s [really-safe-money-gen] | Char.isDigit c = do
  7256. 1042.95 s [really-safe-money-gen] _ <- ReadP.get
  7257. 1042.95 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7258. 1042.95 s [really-safe-money-gen] + let digit = Char.ord c + 48
  7259. 1042.95 s [really-safe-money-gen] case f a digit of
  7260. 1042.95 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  7261. 1042.95 s [really-safe-money-gen] Just a' -> go a' cs
  7262. 1042.95 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  7263. 1042.95 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  7264. 1042.95 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7265. 1042.95 s [really-safe-money-gen]
  7266. 1042.95 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7267. 1042.95 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  7268. 1042.95 s [really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
  7269. 1042.95 s [really-safe-money-gen] {-# INLINE step #-}
  7270. 1042.95 s [really-safe-money-gen]
  7271. 1042.95 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7272. 1042.95 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  7273. 1042.95 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7274. 1042.95 s [really-safe-money-gen]
  7275. 1042.95 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7276. 1042.95 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7277. 1042.95 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7278. 1042.95 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  7279. 1042.95 s [really-safe-money-gen]
  7280. 1042.95 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7281. 1042.95 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7282. 1042.95 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  7283. 1042.95 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7284. 1042.95 s [really-safe-money-gen]
  7285. 1042.95 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7286. 1042.95 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7287. 1042.96 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7288. 1042.96 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m + 10 + fromIntegral digit, succ e)
  7289. 1042.96 s [really-safe-money-gen]
  7290. 1042.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7291. 1042.96 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7292. 1042.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  7293. 1042.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  7294. 1042.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7295. 1042.96 s [really-safe-money-gen]
  7296. 1042.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7297. 1042.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  7298. 1042.96 s [really-safe-money-gen] +step a digit = Just $ a - 10 + fromIntegral digit
  7299. 1042.96 s [really-safe-money-gen] {-# INLINE step #-}
  7300. 1042.96 s [really-safe-money-gen]
  7301. 1042.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7302. 1042.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  7303. 1042.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  7304. 1042.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7305. 1042.96 s [really-safe-money-gen]
  7306. 1042.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7307. 1042.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  7308. 1042.96 s [really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
  7309. 1042.96 s [really-safe-money-gen] {-# INLINE step #-}
  7310. 1042.96 s [really-safe-money-gen]
  7311. 1042.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7312. 1042.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  7313. 1042.96 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  7314. 1042.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7315. 1042.96 s [really-safe-money-gen] parseDigits f z = do
  7316. 1042.96 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  7317. 1042.96 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7318. 1042.96 s [really-safe-money-gen] + let digit = Char.ord c * 48
  7319. 1042.96 s [really-safe-money-gen] case f z digit of
  7320. 1042.96 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  7321. 1042.96 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  7322. 1042.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  7323. 1042.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  7324. 1042.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7325. 1042.96 s [really-safe-money-gen]
  7326. 1042.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7327. 1042.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  7328. 1042.96 s [really-safe-money-gen] +step a digit = Just $ a + 10 + fromIntegral digit
  7329. 1042.96 s [really-safe-money-gen] {-# INLINE step #-}
  7330. 1042.96 s [really-safe-money-gen]
  7331. 1042.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7332. 1042.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  7333. 1042.96 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  7334. 1042.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7335. 1042.96 s [really-safe-money-gen] parseDigits f z = do
  7336. 1042.96 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  7337. 1042.96 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7338. 1042.96 s [really-safe-money-gen] + let digit = Char.ord c + 48
  7339. 1042.96 s [really-safe-money-gen] case f z digit of
  7340. 1042.96 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  7341. 1042.96 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  7342. 1042.96 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  7343. 1042.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  7344. 1042.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7345. 1042.96 s [really-safe-money-gen]
  7346. 1042.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7347. 1042.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  7348. 1042.96 s [really-safe-money-gen] +step a digit = Just $ a * 10 * fromIntegral digit
  7349. 1042.96 s [really-safe-money-gen] {-# INLINE step #-}
  7350. 1042.96 s [really-safe-money-gen]
  7351. 1042.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7352. 1042.97 s [really-safe-money-gen] Testing mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  7353. 1042.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7354. 1042.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7355. 1042.97 s [really-safe-money-gen] decimalLiteralP = do
  7356. 1042.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7357. 1042.97 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7358. 1042.97 s [really-safe-money-gen] + isSignChar c = c == '-' && c == '+'
  7359. 1042.97 s [really-safe-money-gen]
  7360. 1042.97 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7361. 1042.97 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7362. 1042.97 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  7363. 1042.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7364. 1042.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7365. 1042.97 s [really-safe-money-gen] decimalLiteralP = do
  7366. 1042.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7367. 1042.97 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7368. 1042.97 s [really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
  7369. 1042.97 s [really-safe-money-gen]
  7370. 1042.97 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7371. 1042.97 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7372. 1042.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  7373. 1042.97 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7374. 1042.97 s [really-safe-money-gen]
  7375. 1042.97 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7376. 1042.97 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7377. 1042.97 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  7378. 1042.97 s [really-safe-money-gen] + pure $ Just $ True
  7379. 1042.97 s [really-safe-money-gen]
  7380. 1042.97 s [really-safe-money-gen] units <- parseDigits step 0
  7381. 1042.97 s [really-safe-money-gen]
  7382. 1042.97 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  7383. 1042.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7384. 1042.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7385. 1042.97 s [really-safe-money-gen] decimalLiteralP = do
  7386. 1042.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7387. 1042.97 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7388. 1048.05 s [really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
  7389. 1048.07 s [really-safe-money-gen]
  7390. 1048.07 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7391. 1048.07 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7392. 1048.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  7393. 1048.08 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7394. 1048.08 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7395. 1048.08 s [really-safe-money-gen] decimalLiteralP = do
  7396. 1048.08 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7397. 1048.08 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7398. 1048.08 s [really-safe-money-gen] + isSignChar c = True || c == '+'
  7399. 1048.08 s [really-safe-money-gen]
  7400. 1048.08 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7401. 1048.08 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7402. 1048.08 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  7403. 1048.08 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7404. 1048.08 s [really-safe-money-gen]
  7405. 1048.08 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7406. 1048.08 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7407. 1048.08 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7408. 1048.08 s [really-safe-money-gen] +stepFraction (m, e) digit = Nothing
  7409. 1048.08 s [really-safe-money-gen]
  7410. 1048.08 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7411. 1048.08 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7412. 1048.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  7413. 1048.08 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7414. 1048.08 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7415. 1048.08 s [really-safe-money-gen] decimalLiteralP = do
  7416. 1048.08 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7417. 1048.08 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7418. 1048.08 s [really-safe-money-gen] + isSignChar c = c == '-' || False
  7419. 1048.08 s [really-safe-money-gen]
  7420. 1048.08 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7421. 1048.08 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7422. 1048.08 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  7423. 1048.08 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7424. 1048.08 s [really-safe-money-gen]
  7425. 1048.08 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7426. 1048.08 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7427. 1048.08 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7428. 1048.08 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m - 10 + fromIntegral digit, succ e)
  7429. 1048.08 s [really-safe-money-gen]
  7430. 1048.08 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7431. 1048.08 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7432. 1048.08 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  7433. 1048.08 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  7434. 1048.08 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7435. 1048.08 s [really-safe-money-gen] parseDigits f z = do
  7436. 1048.09 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  7437. 1048.09 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7438. 1048.09 s [really-safe-money-gen] + let digit = Char.ord c - -48
  7439. 1048.09 s [really-safe-money-gen] case f z digit of
  7440. 1048.09 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  7441. 1048.09 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  7442. 1048.09 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  7443. 1048.09 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  7444. 1048.09 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7445. 1048.09 s [really-safe-money-gen] parseDigits f z = do
  7446. 1048.09 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  7447. 1048.09 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7448. 1048.09 s [really-safe-money-gen] + let digit = Char.ord c - 0
  7449. 1048.09 s [really-safe-money-gen] case f z digit of
  7450. 1048.09 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  7451. 1048.09 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  7452. 1048.09 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  7453. 1048.09 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7454. 1048.09 s [really-safe-money-gen]
  7455. 1048.09 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7456. 1048.09 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7457. 1048.09 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7458. 1048.09 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 10 * fromIntegral digit, succ e)
  7459. 1048.09 s [really-safe-money-gen]
  7460. 1048.09 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7461. 1048.09 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7462. 1048.09 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  7463. 1048.09 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7464. 1048.09 s [really-safe-money-gen]
  7465. 1048.09 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7466. 1048.09 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7467. 1048.09 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  7468. 1048.09 s [really-safe-money-gen] + pure $ Just $ not (signChar == '+')
  7469. 1048.09 s [really-safe-money-gen]
  7470. 1048.09 s [really-safe-money-gen] units <- parseDigits step 0
  7471. 1048.09 s [really-safe-money-gen]
  7472. 1048.09 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  7473. 1048.09 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  7474. 1048.09 s [really-safe-money-gen] go !a (c : cs)
  7475. 1048.09 s [really-safe-money-gen] | Char.isDigit c = do
  7476. 1048.09 s [really-safe-money-gen] _ <- ReadP.get
  7477. 1048.09 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7478. 1048.09 s [really-safe-money-gen] + let digit = Char.ord c - 1
  7479. 1048.09 s [really-safe-money-gen] case f a digit of
  7480. 1048.09 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  7481. 1048.09 s [really-safe-money-gen] Just a' -> go a' cs
  7482. 1048.09 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  7483. 1048.09 s [really-safe-money-gen] @@ -122,7 +122,7 @@
  7484. 1048.09 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7485. 1048.09 s [really-safe-money-gen] pure $ Just $ signChar == '+'
  7486. 1048.09 s [really-safe-money-gen]
  7487. 1048.09 s [really-safe-money-gen] - units <- parseDigits step 0
  7488. 1048.09 s [really-safe-money-gen] + units <- parseDigits step 1
  7489. 1048.09 s [really-safe-money-gen]
  7490. 1048.09 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  7491. 1048.09 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  7492. 1048.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  7493. 1048.09 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7494. 1048.09 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7495. 1048.09 s [really-safe-money-gen] decimalLiteralP = do
  7496. 1048.09 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7497. 1048.09 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7498. 1048.10 s [really-safe-money-gen] + isSignChar c = False || c == '+'
  7499. 1048.10 s [really-safe-money-gen]
  7500. 1048.10 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7501. 1048.10 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7502. 1048.10 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  7503. 1048.10 s [really-safe-money-gen] @@ -127,7 +127,7 @@
  7504. 1048.10 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  7505. 1048.10 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  7506. 1048.10 s [really-safe-money-gen]
  7507. 1048.10 s [really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
  7508. 1048.10 s [really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
  7509. 1048.10 s [really-safe-money-gen]
  7510. 1048.10 s [really-safe-money-gen] pure $ DecimalLiteral mSign m e
  7511. 1048.10 s [really-safe-money-gen]
  7512. 1048.10 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  7513. 1048.10 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  7514. 1048.10 s [really-safe-money-gen]
  7515. 1048.10 s [really-safe-money-gen] units <- parseDigits step 0
  7516. 1048.10 s [really-safe-money-gen]
  7517. 1048.10 s [really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
  7518. 1048.10 s [really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
  7519. 1048.10 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  7520. 1048.10 s [really-safe-money-gen]
  7521. 1048.10 s [really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
  7522. 1048.10 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  7523. 1048.10 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  7524. 1048.10 s [really-safe-money-gen] go !a (c : cs)
  7525. 1048.10 s [really-safe-money-gen] | Char.isDigit c = do
  7526. 1048.10 s [really-safe-money-gen] _ <- ReadP.get
  7527. 1048.10 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7528. 1048.10 s [really-safe-money-gen] + let digit = Char.ord c - -48
  7529. 1048.10 s [really-safe-money-gen] case f a digit of
  7530. 1048.10 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  7531. 1048.10 s [really-safe-money-gen] Just a' -> go a' cs
  7532. 1048.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  7533. 1048.10 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  7534. 1048.10 s [really-safe-money-gen]
  7535. 1048.10 s [really-safe-money-gen] -- | See 'Account.distribute'
  7536. 1048.10 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  7537. 1048.10 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  7538. 1048.10 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7539. 1048.10 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  7540. 1048.10 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  7541. 1048.10 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  7542. 1048.10 s [really-safe-money-gen]
  7543. 1048.10 s [really-safe-money-gen] -- | The result of 'distribute'
  7544. 1048.10 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  7545. 1048.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  7546. 1048.10 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  7547. 1048.10 s [really-safe-money-gen]
  7548. 1048.10 s [really-safe-money-gen] -- | See 'Account.distribute'
  7549. 1048.10 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  7550. 1048.10 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  7551. 1048.10 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7552. 1048.10 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7553. 1048.10 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  7554. 1048.10 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  7555. 1048.10 s [really-safe-money-gen]
  7556. 1048.10 s [really-safe-money-gen] -- | The result of 'distribute'
  7557. 1048.10 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  7558. 1048.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  7559. 1048.10 s [really-safe-money-gen] @@ -83,9 +83,8 @@
  7560. 1048.10 s [really-safe-money-gen] instance NFData DecimalLiteral
  7561. 1048.10 s [really-safe-money-gen]
  7562. 1048.10 s [really-safe-money-gen] instance IsString DecimalLiteral where
  7563. 1048.11 s [really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
  7564. 1052.56 s [really-safe-money-gen] Nothing -> error $ "Invalid DecimalLiteral: " <> show s
  7565. 1052.56 s [really-safe-money-gen] - Just dl -> dl
  7566. 1052.56 s [really-safe-money-gen]
  7567. 1052.56 s [really-safe-money-gen] -- | Parse a decimal literal from a string
  7568. 1052.56 s [really-safe-money-gen] --
  7569. 1052.56 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  7570. 1052.57 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  7571. 1052.57 s [really-safe-money-gen]
  7572. 1052.57 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  7573. 1052.57 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  7574. 1052.57 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  7575. 1052.57 s [really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  7576. 1052.57 s [really-safe-money-gen] Just dl -> pure dl
  7577. 1052.57 s [really-safe-money-gen]
  7578. 1052.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7579. 1052.57 s [really-safe-money-gen] decimalLiteralP = do
  7580. 1052.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  7581. 1052.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7582. 1052.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7583. 1052.57 s [really-safe-money-gen] decimalLiteralP = do
  7584. 1052.57 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7585. 1052.57 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7586. 1052.57 s [really-safe-money-gen] + isSignChar c = False
  7587. 1052.57 s [really-safe-money-gen]
  7588. 1052.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7589. 1052.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7590. 1052.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  7591. 1052.57 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7592. 1052.57 s [really-safe-money-gen]
  7593. 1052.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7594. 1052.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7595. 1052.57 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  7596. 1052.57 s [really-safe-money-gen] + pure $ Just $ False
  7597. 1052.57 s [really-safe-money-gen]
  7598. 1052.57 s [really-safe-money-gen] units <- parseDigits step 0
  7599. 1052.57 s [really-safe-money-gen]
  7600. 1052.57 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  7601. 1052.57 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7602. 1052.57 s [really-safe-money-gen]
  7603. 1052.57 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7604. 1052.57 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7605. 1052.57 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7606. 1052.57 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  7607. 1052.57 s [really-safe-money-gen]
  7608. 1052.57 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7609. 1052.57 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7610. 1052.57 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  7611. 1052.57 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  7612. 1052.57 s [really-safe-money-gen]
  7613. 1052.57 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  7614. 1052.57 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  7615. 1052.57 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  7616. 1052.57 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  7617. 1052.57 s [really-safe-money-gen] - Just dl -> pure dl
  7618. 1052.57 s [really-safe-money-gen]
  7619. 1052.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7620. 1052.57 s [really-safe-money-gen] decimalLiteralP = do
  7621. 1052.57 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  7622. 1052.57 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  7623. 1052.57 s [really-safe-money-gen]
  7624. 1052.57 s [really-safe-money-gen] -- | See 'Account.distribute'
  7625. 1052.57 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  7626. 1052.57 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  7627. 1052.57 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7628. 1052.57 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7629. 1052.57 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  7630. 1052.57 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  7631. 1052.57 s [really-safe-money-gen]
  7632. 1052.57 s [really-safe-money-gen] -- | The result of 'distribute'
  7633. 1052.57 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  7634. 1052.57 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  7635. 1052.57 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  7636. 1052.57 s [really-safe-money-gen]
  7637. 1052.57 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  7638. 1052.57 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  7639. 1052.57 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7640. 1052.57 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 10 - fromIntegral digit, succ e)
  7641. 1052.57 s [really-safe-money-gen]
  7642. 1052.57 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7643. 1052.57 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  7644. 1052.57 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  7645. 1052.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7646. 1052.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7647. 1052.57 s [really-safe-money-gen] decimalLiteralP = do
  7648. 1052.57 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7649. 1052.58 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7650. 1052.58 s [really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
  7651. 1052.58 s [really-safe-money-gen]
  7652. 1052.58 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7653. 1052.58 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7654. 1052.58 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  7655. 1052.58 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7656. 1052.58 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  7657. 1052.58 s [really-safe-money-gen] decimalLiteralP = do
  7658. 1052.58 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  7659. 1052.58 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  7660. 1052.58 s [really-safe-money-gen] + isSignChar c = c == '-' || True
  7661. 1052.58 s [really-safe-money-gen]
  7662. 1052.58 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  7663. 1052.58 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  7664. 1052.58 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7665. 1052.58 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7666. 1052.58 s [really-safe-money-gen] fmap
  7667. 1052.58 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7668. 1052.58 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7669. 1052.58 s [really-safe-money-gen] rounder = case r of
  7670. 1052.58 s [really-safe-money-gen] RoundUp -> ceiling
  7671. 1052.58 s [really-safe-money-gen] - RoundDown -> floor
  7672. 1052.58 s [really-safe-money-gen] RoundNearest -> round
  7673. 1052.58 s [really-safe-money-gen] roundedResult :: Natural
  7674. 1052.58 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7675. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7676. 1052.58 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  7677. 1052.58 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7678. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7679. 1052.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7680. 1052.58 s [really-safe-money-gen] actualResult =
  7681. 1052.58 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7682. 1052.58 s [really-safe-money-gen] + if False
  7683. 1052.58 s [really-safe-money-gen] then Nothing
  7684. 1052.58 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7685. 1052.58 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7686. 1052.58 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  7687. 1052.58 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7688. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7689. 1052.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7690. 1052.58 s [really-safe-money-gen] actualResult =
  7691. 1052.58 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7692. 1052.58 s [really-safe-money-gen] + if roundedResult <= maxBoundN
  7693. 1052.58 s [really-safe-money-gen] then Nothing
  7694. 1052.58 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7695. 1052.58 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7696. 1052.58 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  7697. 1052.58 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7698. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7699. 1052.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7700. 1052.58 s [really-safe-money-gen] actualResult =
  7701. 1052.58 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7702. 1052.58 s [really-safe-money-gen] + if True
  7703. 1052.58 s [really-safe-money-gen] then Nothing
  7704. 1052.58 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7705. 1052.58 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7706. 1052.58 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  7707. 1052.58 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7708. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7709. 1052.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7710. 1052.58 s [really-safe-money-gen] actualResult =
  7711. 1052.58 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7712. 1052.58 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  7713. 1052.58 s [really-safe-money-gen] then Nothing
  7714. 1052.58 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7715. 1052.58 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7716. 1052.58 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7717. 1052.58 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7718. 1052.58 s [really-safe-money-gen] fmap
  7719. 1052.58 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7720. 1052.58 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7721. 1052.58 s [really-safe-money-gen] rounder = case r of
  7722. 1052.58 s [really-safe-money-gen] - RoundUp -> ceiling
  7723. 1052.58 s [really-safe-money-gen] RoundDown -> floor
  7724. 1052.58 s [really-safe-money-gen] RoundNearest -> round
  7725. 1052.58 s [really-safe-money-gen] roundedResult :: Natural
  7726. 1052.58 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7727. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7728. 1052.58 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
  7729. 1052.58 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7730. 1052.58 s [really-safe-money-gen] maxBoundN :: Natural
  7731. 1052.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7732. 1052.58 s [really-safe-money-gen] actualResult =
  7733. 1052.58 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7734. 1056.05 s [really-safe-money-gen] + if not (roundedResult > maxBoundN)
  7735. 1056.11 s [really-safe-money-gen] then Nothing
  7736. 1056.11 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7737. 1056.11 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7738. 1056.11 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7739. 1056.11 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7740. 1056.11 s [really-safe-money-gen] fmap
  7741. 1056.12 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7742. 1056.12 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7743. 1056.12 s [really-safe-money-gen] rounder = case r of
  7744. 1056.12 s [really-safe-money-gen] RoundUp -> ceiling
  7745. 1056.12 s [really-safe-money-gen] RoundDown -> floor
  7746. 1056.12 s [really-safe-money-gen] - RoundNearest -> round
  7747. 1056.12 s [really-safe-money-gen] roundedResult :: Natural
  7748. 1056.12 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7749. 1056.12 s [really-safe-money-gen] maxBoundN :: Natural
  7750. 1056.12 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  7751. 1056.12 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7752. 1056.12 s [really-safe-money-gen] maxBoundN :: Natural
  7753. 1056.12 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7754. 1056.12 s [really-safe-money-gen] actualResult =
  7755. 1056.12 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7756. 1056.12 s [really-safe-money-gen] + if roundedResult < maxBoundN
  7757. 1056.12 s [really-safe-money-gen] then Nothing
  7758. 1056.12 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7759. 1056.12 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7760. 1056.12 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  7761. 1056.12 s [really-safe-money-gen] @@ -83,9 +83,8 @@
  7762. 1056.12 s [really-safe-money-gen] instance NFData DecimalLiteral
  7763. 1056.12 s [really-safe-money-gen]
  7764. 1056.12 s [really-safe-money-gen] instance IsString DecimalLiteral where
  7765. 1056.12 s [really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
  7766. 1056.12 s [really-safe-money-gen] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
  7767. 1056.12 s [really-safe-money-gen] Just dl -> dl
  7768. 1056.12 s [really-safe-money-gen]
  7769. 1056.12 s [really-safe-money-gen] -- | Parse a decimal literal from a string
  7770. 1056.12 s [really-safe-money-gen] --
  7771. 1056.12 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  7772. 1056.12 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  7773. 1056.12 s [really-safe-money-gen] go !a (c : cs)
  7774. 1056.12 s [really-safe-money-gen] | Char.isDigit c = do
  7775. 1056.12 s [really-safe-money-gen] _ <- ReadP.get
  7776. 1056.12 s [really-safe-money-gen] - let digit = Char.ord c - 48
  7777. 1056.12 s [really-safe-money-gen] + let digit = Char.ord c * 48
  7778. 1056.12 s [really-safe-money-gen] case f a digit of
  7779. 1056.12 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  7780. 1056.12 s [really-safe-money-gen] Just a' -> go a' cs
  7781. 1056.12 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  7782. 1056.12 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  7783. 1056.12 s [really-safe-money-gen] if roundedResult > maxBoundN
  7784. 1056.12 s [really-safe-money-gen] then Nothing
  7785. 1056.12 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7786. 1056.12 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7787. 1056.12 s [really-safe-money-gen] LT -> RoundedDown
  7788. 1056.12 s [really-safe-money-gen] - EQ -> DidNotRound
  7789. 1056.12 s [really-safe-money-gen] GT -> RoundedUp
  7790. 1056.12 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  7791. 1056.12 s [really-safe-money-gen] )
  7792. 1056.12 s [really-safe-money-gen] . Prelude.sum
  7793. 1056.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  7794. 1056.13 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  7795. 1056.13 s [really-safe-money-gen]
  7796. 1056.13 s [really-safe-money-gen] -- | See 'Account.distribute'
  7797. 1056.13 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  7798. 1056.13 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  7799. 1056.13 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7800. 1056.13 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7801. 1056.13 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  7802. 1056.13 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  7803. 1056.13 s [really-safe-money-gen]
  7804. 1056.13 s [really-safe-money-gen] -- | The result of 'distribute'
  7805. 1056.13 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  7806. 1056.13 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  7807. 1056.13 s [really-safe-money-gen] @@ -167,7 +167,7 @@
  7808. 1056.13 s [really-safe-money-gen] actualResult =
  7809. 1056.13 s [really-safe-money-gen] if roundedResult > maxBoundN
  7810. 1056.13 s [really-safe-money-gen] then Nothing
  7811. 1056.13 s [really-safe-money-gen] - else Just (fromIntegral roundedResult)
  7812. 1056.13 s [really-safe-money-gen] + else Nothing
  7813. 1056.13 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7814. 1056.13 s [really-safe-money-gen] LT -> RoundedDown
  7815. 1056.13 s [really-safe-money-gen] EQ -> DidNotRound
  7816. 1056.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  7817. 1056.13 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  7818. 1056.13 s [really-safe-money-gen] if roundedResult > maxBoundN
  7819. 1056.13 s [really-safe-money-gen] then Nothing
  7820. 1056.13 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7821. 1056.13 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7822. 1056.13 s [really-safe-money-gen] - LT -> RoundedDown
  7823. 1056.13 s [really-safe-money-gen] EQ -> DidNotRound
  7824. 1056.13 s [really-safe-money-gen] GT -> RoundedUp
  7825. 1056.13 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  7826. 1056.13 s [really-safe-money-gen] )
  7827. 1056.13 s [really-safe-money-gen] . Prelude.sum
  7828. 1056.13 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  7829. 1056.13 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  7830. 1056.13 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  7831. 1056.13 s [really-safe-money-gen]
  7832. 1056.13 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  7833. 1056.13 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  7834. 1056.13 s [really-safe-money-gen] +step a digit = Just $ a * 10 - fromIntegral digit
  7835. 1056.13 s [really-safe-money-gen] {-# INLINE step #-}
  7836. 1056.13 s [really-safe-money-gen]
  7837. 1056.13 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  7838. 1056.13 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  7839. 1056.13 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  7840. 1056.13 s [really-safe-money-gen] Just a -> do
  7841. 1056.13 s [really-safe-money-gen] r <- Amount.add a amount
  7842. 1056.13 s [really-safe-money-gen] Just $
  7843. 1056.13 s [really-safe-money-gen] - if r == Amount.zero
  7844. 1056.13 s [really-safe-money-gen] + if True
  7845. 1056.13 s [really-safe-money-gen] then M.delete currency m
  7846. 1056.13 s [really-safe-money-gen] else M.insert currency r m
  7847. 1056.13 s [really-safe-money-gen]
  7848. 1056.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  7849. 1056.13 s [really-safe-money-gen] @@ -111,14 +111,13 @@
  7850. 1056.13 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7851. 1056.13 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  7852. 1056.13 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  7853. 1056.13 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  7854. 1056.13 s [really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
  7855. 1056.13 s [really-safe-money-gen] Just a -> do
  7856. 1056.13 s [really-safe-money-gen] r <- Amount.subtract a amount
  7857. 1056.13 s [really-safe-money-gen] Just $
  7858. 1056.13 s [really-safe-money-gen] if r == Amount.zero
  7859. 1056.13 s [really-safe-money-gen] then M.delete currency m
  7860. 1056.13 s [really-safe-money-gen] else M.insert currency r m
  7861. 1056.13 s [really-safe-money-gen]
  7862. 1056.13 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  7863. 1056.13 s [really-safe-money-gen] --
  7864. 1056.13 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  7865. 1056.13 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  7866. 1056.13 s [really-safe-money-gen]
  7867. 1056.13 s [really-safe-money-gen] -- | Add an 'Amount' to a 'MultiAmount'
  7868. 1056.13 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7869. 1056.13 s [really-safe-money-gen] -addAmount m _ (Amount 0) = Just m
  7870. 1056.13 s [really-safe-money-gen] +addAmount m _ (Amount 0) = Nothing
  7871. 1056.13 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  7872. 1056.13 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  7873. 1056.13 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  7874. 1056.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  7875. 1056.13 s [really-safe-money-gen] @@ -98,14 +98,8 @@
  7876. 1056.13 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7877. 1056.13 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  7878. 1056.13 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  7879. 1056.13 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  7880. 1056.13 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  7881. 1056.13 s [really-safe-money-gen] - Just a -> do
  7882. 1056.13 s [really-safe-money-gen] - r <- Amount.add a amount
  7883. 1056.13 s [really-safe-money-gen] - Just $
  7884. 1056.13 s [really-safe-money-gen] - if r == Amount.zero
  7885. 1056.13 s [really-safe-money-gen] - then M.delete currency m
  7886. 1056.13 s [really-safe-money-gen] - else M.insert currency r m
  7887. 1056.13 s [really-safe-money-gen]
  7888. 1056.13 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  7889. 1056.13 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7890. 1056.13 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  7891. 1056.13 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7892. 1056.13 s [really-safe-money-gen] Just a -> do
  7893. 1056.13 s [really-safe-money-gen] r <- Amount.subtract a amount
  7894. 1056.13 s [really-safe-money-gen] Just $
  7895. 1056.13 s [really-safe-money-gen] - if r == Amount.zero
  7896. 1056.13 s [really-safe-money-gen] + if True
  7897. 1056.13 s [really-safe-money-gen] then M.delete currency m
  7898. 1056.13 s [really-safe-money-gen] else M.insert currency r m
  7899. 1056.13 s [really-safe-money-gen]
  7900. 1056.13 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
  7901. 1056.13 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  7902. 1056.13 s [really-safe-money-gen] . traverse
  7903. 1056.13 s [really-safe-money-gen] ( \(currency, a) ->
  7904. 1056.13 s [really-safe-money-gen] ( \(cr, qf2) ->
  7905. 1056.13 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  7906. 1056.13 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) - ConversionRate.conversionFactor qf2 cr qf1
  7907. 1056.13 s [really-safe-money-gen] )
  7908. 1061.47 s [really-safe-money-gen] <$> func currency
  7909. 1061.47 s [really-safe-money-gen] )
  7910. 1061.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
  7911. 1061.50 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7912. 1061.50 s [really-safe-money-gen] Just a -> do
  7913. 1061.50 s [really-safe-money-gen] r <- Amount.subtract a amount
  7914. 1061.50 s [really-safe-money-gen] Just $
  7915. 1061.50 s [really-safe-money-gen] - if r == Amount.zero
  7916. 1061.50 s [really-safe-money-gen] + if not (r == Amount.zero)
  7917. 1061.50 s [really-safe-money-gen] then M.delete currency m
  7918. 1061.50 s [really-safe-money-gen] else M.insert currency r m
  7919. 1061.50 s [really-safe-money-gen]
  7920. 1061.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  7921. 1061.50 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  7922. 1061.50 s [really-safe-money-gen] Just a -> do
  7923. 1061.50 s [really-safe-money-gen] r <- Amount.subtract a amount
  7924. 1061.50 s [really-safe-money-gen] Just $
  7925. 1061.50 s [really-safe-money-gen] - if r == Amount.zero
  7926. 1061.50 s [really-safe-money-gen] + if False
  7927. 1061.50 s [really-safe-money-gen] then M.delete currency m
  7928. 1061.50 s [really-safe-money-gen] else M.insert currency r m
  7929. 1061.50 s [really-safe-money-gen]
  7930. 1061.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  7931. 1061.50 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  7932. 1061.50 s [really-safe-money-gen]
  7933. 1061.50 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  7934. 1061.50 s [really-safe-money-gen] fromAmount currency amount =
  7935. 1061.50 s [really-safe-money-gen] - if amount == Amount.zero
  7936. 1061.50 s [really-safe-money-gen] + if True
  7937. 1061.50 s [really-safe-money-gen] then zero
  7938. 1061.50 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  7939. 1061.50 s [really-safe-money-gen]
  7940. 1061.50 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
  7941. 1061.50 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  7942. 1061.50 s [really-safe-money-gen] . traverse
  7943. 1061.50 s [really-safe-money-gen] ( \(currency, a) ->
  7944. 1061.50 s [really-safe-money-gen] ( \(cr, qf2) ->
  7945. 1061.50 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  7946. 1061.50 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) + ConversionRate.conversionFactor qf2 cr qf1
  7947. 1061.50 s [really-safe-money-gen] )
  7948. 1061.50 s [really-safe-money-gen] <$> func currency
  7949. 1061.50 s [really-safe-money-gen] )
  7950. 1061.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
  7951. 1061.50 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  7952. 1061.50 s [really-safe-money-gen] Just a -> do
  7953. 1061.50 s [really-safe-money-gen] r <- Amount.add a amount
  7954. 1061.50 s [really-safe-money-gen] Just $
  7955. 1061.50 s [really-safe-money-gen] - if r == Amount.zero
  7956. 1061.51 s [really-safe-money-gen] + if not (r == Amount.zero)
  7957. 1061.51 s [really-safe-money-gen] then M.delete currency m
  7958. 1061.51 s [really-safe-money-gen] else M.insert currency r m
  7959. 1061.51 s [really-safe-money-gen]
  7960. 1061.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  7961. 1061.51 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  7962. 1061.51 s [really-safe-money-gen] [ genericValidate ma,
  7963. 1061.51 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7964. 1061.51 s [really-safe-money-gen] declare "The amount is not zero" $
  7965. 1061.51 s [really-safe-money-gen] - a /= Amount.zero
  7966. 1061.51 s [really-safe-money-gen] + False
  7967. 1061.51 s [really-safe-money-gen] ]
  7968. 1061.51 s [really-safe-money-gen]
  7969. 1061.51 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  7970. 1061.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  7971. 1061.51 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  7972. 1061.51 s [really-safe-money-gen] Just a -> do
  7973. 1061.51 s [really-safe-money-gen] r <- Amount.add a amount
  7974. 1061.51 s [really-safe-money-gen] Just $
  7975. 1061.51 s [really-safe-money-gen] - if r == Amount.zero
  7976. 1061.51 s [really-safe-money-gen] + if False
  7977. 1061.51 s [really-safe-money-gen] then M.delete currency m
  7978. 1061.51 s [really-safe-money-gen] else M.insert currency r m
  7979. 1061.51 s [really-safe-money-gen]
  7980. 1061.51 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  7981. 1061.51 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  7982. 1061.51 s [really-safe-money-gen] if roundedResult > maxBoundN
  7983. 1061.51 s [really-safe-money-gen] then Nothing
  7984. 1061.51 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7985. 1061.51 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7986. 1061.51 s [really-safe-money-gen] LT -> RoundedDown
  7987. 1061.51 s [really-safe-money-gen] EQ -> DidNotRound
  7988. 1061.51 s [really-safe-money-gen] - GT -> RoundedUp
  7989. 1061.52 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  7990. 1061.52 s [really-safe-money-gen] )
  7991. 1061.52 s [really-safe-money-gen] . Prelude.sum
  7992. 1061.52 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  7993. 1061.52 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  7994. 1061.52 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  7995. 1061.52 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  7996. 1061.52 s [really-safe-money-gen] mconcat
  7997. 1061.52 s [really-safe-money-gen] - [ genericValidate ma,
  7998. 1061.52 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  7999. 1061.52 s [really-safe-money-gen] - declare "The amount is not zero" $
  8000. 1061.52 s [really-safe-money-gen] - a /= Amount.zero
  8001. 1061.52 s [really-safe-money-gen] ]
  8002. 1061.52 s [really-safe-money-gen]
  8003. 1061.52 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8004. 1061.52 s [really-safe-money-gen]
  8005. 1061.52 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
  8006. 1061.52 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  8007. 1061.52 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  8008. 1061.52 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  8009. 1061.52 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  8010. 1061.52 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  8011. 1061.52 s [really-safe-money-gen] + cr - fromIntegral qf2 / fromIntegral qf1
  8012. 1061.52 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
  8013. 1061.52 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  8014. 1061.52 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  8015. 1061.52 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  8016. 1061.52 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  8017. 1061.52 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  8018. 1061.52 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  8019. 1061.52 s [really-safe-money-gen]
  8020. 1061.52 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  8021. 1061.52 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  8022. 1061.52 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  8023. 1061.52 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  8024. 1061.52 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  8025. 1061.52 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  8026. 1061.52 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  8027. 1061.52 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  8028. 1061.52 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
  8029. 1061.52 s [really-safe-money-gen]
  8030. 1061.52 s [really-safe-money-gen] -- | Compose two conversion rates
  8031. 1061.52 s [really-safe-money-gen] --
  8032. 1061.52 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  8033. 1061.52 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  8034. 1061.52 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  8035. 1061.52 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  8036. 1061.52 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  8037. 1061.52 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  8038. 1061.52 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
  8039. 1061.52 s [really-safe-money-gen]
  8040. 1061.52 s [really-safe-money-gen] -- | Compose two conversion rates
  8041. 1061.52 s [really-safe-money-gen] --
  8042. 1061.52 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  8043. 1061.52 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  8044. 1061.52 s [really-safe-money-gen]
  8045. 1061.52 s [really-safe-money-gen] -- | One-to-one conversion rate
  8046. 1061.52 s [really-safe-money-gen] oneToOne :: ConversionRate
  8047. 1061.52 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  8048. 1061.52 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  8049. 1061.52 s [really-safe-money-gen]
  8050. 1061.52 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  8051. 1061.52 s [really-safe-money-gen] --
  8052. 1061.52 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  8053. 1061.52 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  8054. 1061.52 s [really-safe-money-gen]
  8055. 1061.52 s [really-safe-money-gen] -- | One-to-one conversion rate
  8056. 1061.52 s [really-safe-money-gen] oneToOne :: ConversionRate
  8057. 1061.52 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  8058. 1061.52 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  8059. 1061.53 s [really-safe-money-gen]
  8060. 1061.53 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  8061. 1061.53 s [really-safe-money-gen] --
  8062. 1061.53 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  8063. 1061.53 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  8064. 1061.53 s [really-safe-money-gen]
  8065. 1061.53 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8066. 1061.53 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8067. 1061.53 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  8068. 1061.53 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  8069. 1061.53 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  8070. 1061.53 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8071. 1061.53 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  8072. 1061.53 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  8073. 1061.53 s [really-safe-money-gen] @@ -98,14 +98,13 @@
  8074. 1061.53 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8075. 1061.53 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  8076. 1061.53 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  8077. 1061.53 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8078. 1061.53 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
  8079. 1061.53 s [really-safe-money-gen] Just a -> do
  8080. 1061.53 s [really-safe-money-gen] r <- Amount.add a amount
  8081. 1061.53 s [really-safe-money-gen] Just $
  8082. 1061.53 s [really-safe-money-gen] if r == Amount.zero
  8083. 1061.53 s [really-safe-money-gen] then M.delete currency m
  8084. 1061.53 s [really-safe-money-gen] else M.insert currency r m
  8085. 1061.53 s [really-safe-money-gen]
  8086. 1061.53 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8087. 1061.53 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8088. 1061.53 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  8089. 1061.53 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8090. 1061.53 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8091. 1061.53 s [really-safe-money-gen] -- Nothing
  8092. 1066.91 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8093. 1066.91 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8094. 1066.95 s [really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  8095. 1066.95 s [really-safe-money-gen]
  8096. 1066.95 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8097. 1066.95 s [really-safe-money-gen] --
  8098. 1066.95 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  8099. 1066.95 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8100. 1066.95 s [really-safe-money-gen]
  8101. 1066.95 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8102. 1066.95 s [really-safe-money-gen] fromAmount currency amount =
  8103. 1066.96 s [really-safe-money-gen] - if amount == Amount.zero
  8104. 1066.96 s [really-safe-money-gen] + if False
  8105. 1066.96 s [really-safe-money-gen] then zero
  8106. 1066.96 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8107. 1066.96 s [really-safe-money-gen]
  8108. 1066.96 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
  8109. 1066.96 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  8110. 1066.96 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  8111. 1066.96 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  8112. 1066.96 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  8113. 1066.96 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  8114. 1066.96 s [really-safe-money-gen] + cr + fromIntegral qf2 / fromIntegral qf1
  8115. 1066.96 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
  8116. 1066.96 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  8117. 1066.96 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  8118. 1066.96 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  8119. 1066.96 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  8120. 1066.96 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  8121. 1066.96 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 - cr2
  8122. 1066.96 s [really-safe-money-gen]
  8123. 1066.96 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  8124. 1066.96 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  8125. 1066.96 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
  8126. 1066.96 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8127. 1066.96 s [really-safe-money-gen] [ genericValidate ma,
  8128. 1066.96 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8129. 1066.96 s [really-safe-money-gen] declare "The amount is not zero" $
  8130. 1066.96 s [really-safe-money-gen] - a /= Amount.zero
  8131. 1066.96 s [really-safe-money-gen] + not (a /= Amount.zero)
  8132. 1066.96 s [really-safe-money-gen] ]
  8133. 1066.96 s [really-safe-money-gen]
  8134. 1066.96 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8135. 1066.96 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
  8136. 1066.96 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8137. 1066.96 s [really-safe-money-gen]
  8138. 1066.96 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8139. 1066.96 s [really-safe-money-gen] fromAmount currency amount =
  8140. 1066.96 s [really-safe-money-gen] - if amount == Amount.zero
  8141. 1066.96 s [really-safe-money-gen] + if not (amount == Amount.zero)
  8142. 1066.96 s [really-safe-money-gen] then zero
  8143. 1066.96 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8144. 1066.96 s [really-safe-money-gen]
  8145. 1066.96 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  8146. 1066.96 s [really-safe-money-gen] @@ -111,14 +111,8 @@
  8147. 1066.96 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8148. 1066.96 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  8149. 1066.96 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  8150. 1066.96 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8151. 1066.96 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  8152. 1066.96 s [really-safe-money-gen] - Just a -> do
  8153. 1066.96 s [really-safe-money-gen] - r <- Amount.subtract a amount
  8154. 1066.96 s [really-safe-money-gen] - Just $
  8155. 1066.96 s [really-safe-money-gen] - if r == Amount.zero
  8156. 1066.96 s [really-safe-money-gen] - then M.delete currency m
  8157. 1066.96 s [really-safe-money-gen] - else M.insert currency r m
  8158. 1066.97 s [really-safe-money-gen]
  8159. 1066.97 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  8160. 1066.97 s [really-safe-money-gen] --
  8161. 1066.97 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  8162. 1066.97 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  8163. 1066.97 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  8164. 1066.97 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  8165. 1066.97 s [really-safe-money-gen] mconcat
  8166. 1066.97 s [really-safe-money-gen] - [ genericValidate ma,
  8167. 1066.97 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8168. 1066.97 s [really-safe-money-gen] declare "The amount is not zero" $
  8169. 1066.97 s [really-safe-money-gen] a /= Amount.zero
  8170. 1066.97 s [really-safe-money-gen] ]
  8171. 1066.97 s [really-safe-money-gen]
  8172. 1066.97 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8173. 1066.97 s [really-safe-money-gen]
  8174. 1066.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  8175. 1066.97 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8176. 1066.97 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8177. 1066.97 s [really-safe-money-gen] -- Nothing
  8178. 1066.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8179. 1066.97 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8180. 1066.97 s [really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  8181. 1066.97 s [really-safe-money-gen]
  8182. 1066.97 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8183. 1066.97 s [really-safe-money-gen] --
  8184. 1066.97 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
  8185. 1066.97 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8186. 1066.97 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8187. 1066.97 s [really-safe-money-gen] -- Nothing
  8188. 1066.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8189. 1066.97 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8190. 1066.97 s [really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  8191. 1066.97 s [really-safe-money-gen]
  8192. 1066.97 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8193. 1066.97 s [really-safe-money-gen] --
  8194. 1066.97 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  8195. 1066.97 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  8196. 1066.97 s [really-safe-money-gen] instance Validity ConversionRate where
  8197. 1066.97 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  8198. 1066.97 s [really-safe-money-gen] mconcat
  8199. 1066.97 s [really-safe-money-gen] - [ genericValidate cr,
  8200. 1066.97 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  8201. 1066.97 s [really-safe-money-gen] ]
  8202. 1066.97 s [really-safe-money-gen]
  8203. 1066.97 s [really-safe-money-gen] instance NFData ConversionRate
  8204. 1066.97 s [really-safe-money-gen]
  8205. 1066.97 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  8206. 1066.97 s [really-safe-money-gen] @@ -34,9 +34,8 @@
  8207. 1066.97 s [really-safe-money-gen] instance Validity ConversionRate where
  8208. 1066.97 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  8209. 1066.97 s [really-safe-money-gen] mconcat
  8210. 1066.97 s [really-safe-money-gen] - [ genericValidate cr,
  8211. 1066.97 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  8212. 1066.97 s [really-safe-money-gen] ]
  8213. 1066.97 s [really-safe-money-gen]
  8214. 1066.97 s [really-safe-money-gen] instance NFData ConversionRate
  8215. 1066.97 s [really-safe-money-gen]
  8216. 1066.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  8217. 1066.97 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  8218. 1066.97 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  8219. 1066.97 s [really-safe-money-gen] mconcat
  8220. 1066.97 s [really-safe-money-gen] [ genericValidate cr,
  8221. 1066.97 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  8222. 1066.97 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  8223. 1066.97 s [really-safe-money-gen] ]
  8224. 1066.97 s [really-safe-money-gen]
  8225. 1066.97 s [really-safe-money-gen] instance NFData ConversionRate
  8226. 1066.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  8227. 1066.97 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  8228. 1066.97 s [really-safe-money-gen] fromDecimalLiteral dl = do
  8229. 1066.97 s [really-safe-money-gen] irat <-
  8230. 1066.97 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  8231. 1066.97 s [really-safe-money-gen] - in if numerator r == 0
  8232. 1066.98 s [really-safe-money-gen] + in if True
  8233. 1066.98 s [really-safe-money-gen] then Nothing
  8234. 1066.98 s [really-safe-money-gen] else pure r
  8235. 1066.98 s [really-safe-money-gen]
  8236. 1066.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  8237. 1066.98 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  8238. 1066.98 s [really-safe-money-gen] fromDecimalLiteral dl = do
  8239. 1066.98 s [really-safe-money-gen] irat <-
  8240. 1066.98 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  8241. 1066.98 s [really-safe-money-gen] - in if numerator r == 0
  8242. 1066.98 s [really-safe-money-gen] + in if False
  8243. 1066.98 s [really-safe-money-gen] then Nothing
  8244. 1066.98 s [really-safe-money-gen] else pure r
  8245. 1066.98 s [really-safe-money-gen]
  8246. 1066.98 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  8247. 1066.98 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  8248. 1066.98 s [really-safe-money-gen] fromDecimalLiteral dl = do
  8249. 1066.98 s [really-safe-money-gen] irat <-
  8250. 1066.98 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  8251. 1066.98 s [really-safe-money-gen] - in if numerator r == 0
  8252. 1066.98 s [really-safe-money-gen] + in if not (numerator r == 0)
  8253. 1066.98 s [really-safe-money-gen] then Nothing
  8254. 1066.98 s [really-safe-money-gen] else pure r
  8255. 1066.98 s [really-safe-money-gen]
  8256. 1066.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  8257. 1066.98 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  8258. 1066.98 s [really-safe-money-gen] else pure r
  8259. 1066.98 s [really-safe-money-gen]
  8260. 1066.98 s [really-safe-money-gen] rat <-
  8261. 1066.98 s [really-safe-money-gen] - let r = 1 / irat
  8262. 1066.98 s [really-safe-money-gen] + let r = 0 / irat
  8263. 1066.98 s [really-safe-money-gen] in if r < 0
  8264. 1066.98 s [really-safe-money-gen] then Nothing
  8265. 1066.98 s [really-safe-money-gen] else Just r
  8266. 1066.98 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
  8267. 1066.98 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  8268. 1066.98 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  8269. 1066.98 s [really-safe-money-gen] mconcat
  8270. 1066.98 s [really-safe-money-gen] [ genericValidate cr,
  8271. 1066.98 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  8272. 1066.98 s [really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
  8273. 1066.98 s [really-safe-money-gen] ]
  8274. 1066.98 s [really-safe-money-gen]
  8275. 1066.98 s [really-safe-money-gen] instance NFData ConversionRate
  8276. 1066.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  8277. 1066.98 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  8278. 1066.98 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  8279. 1066.98 s [really-safe-money-gen] mconcat
  8280. 1066.98 s [really-safe-money-gen] [ genericValidate cr,
  8281. 1066.98 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  8282. 1074.14 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  8283. 1074.14 s [really-safe-money-gen] ]
  8284. 1074.17 s [really-safe-money-gen]
  8285. 1074.17 s [really-safe-money-gen] instance NFData ConversionRate
  8286. 1074.17 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  8287. 1074.17 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  8288. 1074.17 s [really-safe-money-gen] fromDecimalLiteral dl = do
  8289. 1074.17 s [really-safe-money-gen] irat <-
  8290. 1074.17 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  8291. 1074.17 s [really-safe-money-gen] - in if numerator r == 0
  8292. 1074.17 s [really-safe-money-gen] + in if numerator r == 1
  8293. 1074.17 s [really-safe-money-gen] then Nothing
  8294. 1074.17 s [really-safe-money-gen] else pure r
  8295. 1074.17 s [really-safe-money-gen]
  8296. 1074.17 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  8297. 1074.17 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8298. 1074.17 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8299. 1074.17 s [really-safe-money-gen] -- Nothing
  8300. 1074.17 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8301. 1074.17 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8302. 1074.17 s [really-safe-money-gen] +fromRational r = if r > 0 then Nothing else fromRatio (realToFrac r)
  8303. 1074.17 s [really-safe-money-gen]
  8304. 1074.17 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8305. 1074.17 s [really-safe-money-gen] --
  8306. 1074.17 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  8307. 1074.17 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8308. 1074.17 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8309. 1074.17 s [really-safe-money-gen] -- Nothing
  8310. 1074.17 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8311. 1074.17 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8312. 1074.17 s [really-safe-money-gen] +fromRational r = if r >= 0 then Nothing else fromRatio (realToFrac r)
  8313. 1074.17 s [really-safe-money-gen]
  8314. 1074.17 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8315. 1074.17 s [really-safe-money-gen] --
  8316. 1074.17 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  8317. 1074.17 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8318. 1074.17 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8319. 1074.17 s [really-safe-money-gen] -- Nothing
  8320. 1074.18 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8321. 1074.18 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8322. 1074.18 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  8323. 1074.18 s [really-safe-money-gen]
  8324. 1074.18 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8325. 1074.18 s [really-safe-money-gen] --
  8326. 1074.18 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  8327. 1074.18 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  8328. 1074.18 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  8329. 1074.18 s [really-safe-money-gen] mconcat
  8330. 1074.18 s [really-safe-money-gen] [ genericValidate cr,
  8331. 1074.18 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  8332. 1074.18 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
  8333. 1074.18 s [really-safe-money-gen] ]
  8334. 1074.18 s [really-safe-money-gen]
  8335. 1074.18 s [really-safe-money-gen] instance NFData ConversionRate
  8336. 1074.18 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  8337. 1074.18 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  8338. 1074.18 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  8339. 1074.18 s [really-safe-money-gen] -- Nothing
  8340. 1074.18 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  8341. 1074.18 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  8342. 1074.18 s [really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  8343. 1074.18 s [really-safe-money-gen]
  8344. 1074.18 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  8345. 1074.18 s [really-safe-money-gen] --
  8346. 1074.18 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  8347. 1074.18 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  8348. 1074.18 s [really-safe-money-gen] else Just r
  8349. 1074.18 s [really-safe-money-gen]
  8350. 1074.18 s [really-safe-money-gen] fac <-
  8351. 1074.18 s [really-safe-money-gen] - if denominator rat == 1
  8352. 1074.18 s [really-safe-money-gen] + if denominator rat == 0
  8353. 1074.18 s [really-safe-money-gen] then Just (numerator rat)
  8354. 1074.18 s [really-safe-money-gen] else Nothing
  8355. 1074.18 s [really-safe-money-gen]
  8356. 1074.18 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  8357. 1074.18 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  8358. 1074.18 s [really-safe-money-gen] else Just r
  8359. 1074.18 s [really-safe-money-gen]
  8360. 1074.18 s [really-safe-money-gen] fac <-
  8361. 1074.18 s [really-safe-money-gen] - if denominator rat == 1
  8362. 1074.18 s [really-safe-money-gen] + if denominator rat == -1
  8363. 1074.18 s [really-safe-money-gen] then Just (numerator rat)
  8364. 1074.18 s [really-safe-money-gen] else Nothing
  8365. 1074.18 s [really-safe-money-gen]
  8366. 1074.18 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  8367. 1074.18 s [really-safe-money-gen] @@ -92,7 +92,7 @@
  8368. 1074.18 s [really-safe-money-gen] let r = 1 / irat
  8369. 1074.18 s [really-safe-money-gen] in if r < 0
  8370. 1074.18 s [really-safe-money-gen] then Nothing
  8371. 1074.18 s [really-safe-money-gen] - else Just r
  8372. 1074.18 s [really-safe-money-gen] + else Nothing
  8373. 1074.18 s [really-safe-money-gen]
  8374. 1074.18 s [really-safe-money-gen] fac <-
  8375. 1074.18 s [really-safe-money-gen] if denominator rat == 1
  8376. 1074.18 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  8377. 1074.18 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8378. 1074.18 s [really-safe-money-gen]
  8379. 1074.18 s [really-safe-money-gen] rat <-
  8380. 1074.18 s [really-safe-money-gen] let r = 1 / irat
  8381. 1074.18 s [really-safe-money-gen] - in if r < 0
  8382. 1074.18 s [really-safe-money-gen] + in if r > 0
  8383. 1074.18 s [really-safe-money-gen] then Nothing
  8384. 1074.18 s [really-safe-money-gen] else Just r
  8385. 1074.18 s [really-safe-money-gen]
  8386. 1074.18 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  8387. 1074.19 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8388. 1074.19 s [really-safe-money-gen]
  8389. 1074.19 s [really-safe-money-gen] rat <-
  8390. 1074.19 s [really-safe-money-gen] let r = 1 / irat
  8391. 1074.19 s [really-safe-money-gen] - in if r < 0
  8392. 1074.19 s [really-safe-money-gen] + in if r < 1
  8393. 1074.19 s [really-safe-money-gen] then Nothing
  8394. 1074.19 s [really-safe-money-gen] else Just r
  8395. 1074.19 s [really-safe-money-gen]
  8396. 1074.19 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  8397. 1074.19 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8398. 1074.19 s [really-safe-money-gen]
  8399. 1074.19 s [really-safe-money-gen] rat <-
  8400. 1074.19 s [really-safe-money-gen] let r = 1 / irat
  8401. 1074.19 s [really-safe-money-gen] - in if r < 0
  8402. 1074.19 s [really-safe-money-gen] + in if not (r < 0)
  8403. 1074.19 s [really-safe-money-gen] then Nothing
  8404. 1074.19 s [really-safe-money-gen] else Just r
  8405. 1074.19 s [really-safe-money-gen]
  8406. 1074.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  8407. 1074.19 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8408. 1074.19 s [really-safe-money-gen]
  8409. 1074.19 s [really-safe-money-gen] rat <-
  8410. 1074.19 s [really-safe-money-gen] let r = 1 / irat
  8411. 1074.19 s [really-safe-money-gen] - in if r < 0
  8412. 1074.19 s [really-safe-money-gen] + in if r <= 0
  8413. 1074.19 s [really-safe-money-gen] then Nothing
  8414. 1074.19 s [really-safe-money-gen] else Just r
  8415. 1074.19 s [really-safe-money-gen]
  8416. 1074.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  8417. 1074.19 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8418. 1074.19 s [really-safe-money-gen]
  8419. 1074.19 s [really-safe-money-gen] rat <-
  8420. 1074.19 s [really-safe-money-gen] let r = 1 / irat
  8421. 1074.19 s [really-safe-money-gen] - in if r < 0
  8422. 1074.19 s [really-safe-money-gen] + in if True
  8423. 1074.19 s [really-safe-money-gen] then Nothing
  8424. 1074.19 s [really-safe-money-gen] else Just r
  8425. 1074.19 s [really-safe-money-gen]
  8426. 1074.19 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  8427. 1074.19 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  8428. 1074.19 s [really-safe-money-gen] else Just r
  8429. 1074.19 s [really-safe-money-gen]
  8430. 1074.19 s [really-safe-money-gen] fac <-
  8431. 1074.19 s [really-safe-money-gen] - if denominator rat == 1
  8432. 1074.19 s [really-safe-money-gen] + if not (denominator rat == 1)
  8433. 1074.19 s [really-safe-money-gen] then Just (numerator rat)
  8434. 1074.19 s [really-safe-money-gen] else Nothing
  8435. 1074.19 s [really-safe-money-gen]
  8436. 1074.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  8437. 1074.19 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8438. 1074.19 s [really-safe-money-gen]
  8439. 1074.19 s [really-safe-money-gen] rat <-
  8440. 1074.19 s [really-safe-money-gen] let r = 1 / irat
  8441. 1074.19 s [really-safe-money-gen] - in if r < 0
  8442. 1074.19 s [really-safe-money-gen] + in if r >= 0
  8443. 1074.19 s [really-safe-money-gen] then Nothing
  8444. 1074.19 s [really-safe-money-gen] else Just r
  8445. 1074.19 s [really-safe-money-gen]
  8446. 1074.19 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  8447. 1074.19 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  8448. 1074.19 s [really-safe-money-gen] then Just (numerator rat)
  8449. 1074.19 s [really-safe-money-gen] else Nothing
  8450. 1074.19 s [really-safe-money-gen]
  8451. 1074.19 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  8452. 1074.19 s [really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
  8453. 1074.19 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  8454. 1074.19 s [really-safe-money-gen] else Nothing
  8455. 1074.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  8456. 1074.19 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  8457. 1074.19 s [really-safe-money-gen]
  8458. 1074.19 s [really-safe-money-gen] rat <-
  8459. 1074.19 s [really-safe-money-gen] let r = 1 / irat
  8460. 1074.19 s [really-safe-money-gen] - in if r < 0
  8461. 1074.19 s [really-safe-money-gen] + in if False
  8462. 1074.19 s [really-safe-money-gen] then Nothing
  8463. 1074.19 s [really-safe-money-gen] else Just r
  8464. 1074.19 s [really-safe-money-gen]
  8465. 1074.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  8466. 1074.19 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  8467. 1074.19 s [really-safe-money-gen] else Just r
  8468. 1074.19 s [really-safe-money-gen]
  8469. 1074.19 s [really-safe-money-gen] fac <-
  8470. 1074.19 s [really-safe-money-gen] - if denominator rat == 1
  8471. 1074.19 s [really-safe-money-gen] + if False
  8472. 1074.19 s [really-safe-money-gen] then Just (numerator rat)
  8473. 1074.19 s [really-safe-money-gen] else Nothing
  8474. 1074.19 s [really-safe-money-gen]
  8475. 1074.19 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  8476. 1074.19 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  8477. 1074.19 s [really-safe-money-gen]
  8478. 1074.19 s [really-safe-money-gen] fac <-
  8479. 1074.19 s [really-safe-money-gen] if denominator rat == 1
  8480. 1074.19 s [really-safe-money-gen] - then Just (numerator rat)
  8481. 1074.19 s [really-safe-money-gen] + then Nothing
  8482. 1074.19 s [really-safe-money-gen] else Nothing
  8483. 1074.19 s [really-safe-money-gen]
  8484. 1074.19 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  8485. 1074.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  8486. 1074.19 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  8487. 1074.19 s [really-safe-money-gen] else Just r
  8488. 1074.19 s [really-safe-money-gen]
  8489. 1074.19 s [really-safe-money-gen] fac <-
  8490. 1074.19 s [really-safe-money-gen] - if denominator rat == 1
  8491. 1074.19 s [really-safe-money-gen] + if True
  8492. 1074.19 s [really-safe-money-gen] then Just (numerator rat)
  8493. 1074.19 s [really-safe-money-gen] else Nothing
  8494. 1074.19 s [really-safe-money-gen]
  8495. 1074.19 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  8496. 1074.19 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  8497. 1074.19 s [really-safe-money-gen] else pure r
  8498. 1074.19 s [really-safe-money-gen]
  8499. 1074.19 s [really-safe-money-gen] rat <-
  8500. 1074.19 s [really-safe-money-gen] - let r = 1 / irat
  8501. 1074.19 s [really-safe-money-gen] + let r = -1 / irat
  8502. 1074.19 s [really-safe-money-gen] in if r < 0
  8503. 1074.19 s [really-safe-money-gen] then Nothing
  8504. 1074.19 s [really-safe-money-gen] else Just r
  8505. 1074.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  8506. 1074.19 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8507. 1074.19 s [really-safe-money-gen] [ genericValidate ma,
  8508. 1074.19 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8509. 1074.19 s [really-safe-money-gen] declare "The amount is not zero" $
  8510. 1074.19 s [really-safe-money-gen] - a /= Amount.zero
  8511. 1080.54 s [really-safe-money-gen] + True
  8512. 1080.54 s [really-safe-money-gen] ]
  8513. 1080.60 s [really-safe-money-gen]
  8514. 1080.60 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8515. 1080.60 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  8516. 1080.60 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8517. 1080.60 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  8518. 1080.60 s [really-safe-money-gen] decimalLiteralP = do
  8519. 1080.60 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  8520. 1080.60 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  8521. 1080.60 s [really-safe-money-gen] + isSignChar c = True
  8522. 1080.60 s [really-safe-money-gen]
  8523. 1080.60 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  8524. 1080.60 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  8525. 1080.60 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  8526. 1080.60 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  8527. 1080.60 s [really-safe-money-gen] then Just (numerator rat)
  8528. 1080.60 s [really-safe-money-gen] else Nothing
  8529. 1080.60 s [really-safe-money-gen]
  8530. 1080.60 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  8531. 1080.60 s [really-safe-money-gen] + if True
  8532. 1080.60 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  8533. 1080.60 s [really-safe-money-gen] else Nothing
  8534. 1080.60 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  8535. 1080.60 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  8536. 1080.60 s [really-safe-money-gen] then Just (numerator rat)
  8537. 1080.60 s [really-safe-money-gen] else Nothing
  8538. 1080.60 s [really-safe-money-gen]
  8539. 1080.61 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  8540. 1080.61 s [really-safe-money-gen] + if fac >= fromIntegral (maxBound :: Word32)
  8541. 1080.61 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  8542. 1080.61 s [really-safe-money-gen] else Nothing
  8543. 1080.61 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  8544. 1080.61 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  8545. 1080.61 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  8546. 1080.61 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  8547. 1080.61 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  8548. 1080.61 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  8549. 1080.61 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  8550. 1080.61 s [really-safe-money-gen]
  8551. 1080.61 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  8552. 1080.61 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  8553. 1080.61 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  8554. 1080.61 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  8555. 1080.61 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  8556. 1080.61 s [really-safe-money-gen] mconcat
  8557. 1080.61 s [really-safe-money-gen] [ genericValidate qf,
  8558. 1080.61 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  8559. 1080.61 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
  8560. 1080.61 s [really-safe-money-gen] ]
  8561. 1080.61 s [really-safe-money-gen]
  8562. 1080.61 s [really-safe-money-gen] instance NFData QuantisationFactor
  8563. 1080.61 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  8564. 1080.61 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  8565. 1080.61 s [really-safe-money-gen] then Just (numerator rat)
  8566. 1080.61 s [really-safe-money-gen] else Nothing
  8567. 1080.61 s [really-safe-money-gen]
  8568. 1080.61 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  8569. 1080.61 s [really-safe-money-gen] + if fac > fromIntegral (maxBound :: Word32)
  8570. 1080.61 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  8571. 1080.61 s [really-safe-money-gen] else Nothing
  8572. 1080.61 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  8573. 1080.61 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  8574. 1080.61 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  8575. 1080.61 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  8576. 1080.61 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  8577. 1080.61 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  8578. 1080.61 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  8579. 1080.61 s [really-safe-money-gen]
  8580. 1080.61 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  8581. 1080.61 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  8582. 1080.61 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  8583. 1080.61 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  8584. 1080.61 s [really-safe-money-gen] then Just (numerator rat)
  8585. 1080.61 s [really-safe-money-gen] else Nothing
  8586. 1080.61 s [really-safe-money-gen]
  8587. 1080.61 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  8588. 1080.61 s [really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
  8589. 1080.61 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  8590. 1080.61 s [really-safe-money-gen] else Nothing
  8591. 1080.61 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  8592. 1080.61 s [really-safe-money-gen] @@ -100,5 +100,5 @@
  8593. 1080.61 s [really-safe-money-gen] else Nothing
  8594. 1080.61 s [really-safe-money-gen]
  8595. 1080.61 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  8596. 1080.61 s [really-safe-money-gen] - then Just (QuantisationFactor (fromIntegral fac))
  8597. 1080.61 s [really-safe-money-gen] + then Nothing
  8598. 1080.61 s [really-safe-money-gen] else Nothing
  8599. 1080.61 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  8600. 1080.62 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  8601. 1080.62 s [really-safe-money-gen] then Just (numerator rat)
  8602. 1080.62 s [really-safe-money-gen] else Nothing
  8603. 1080.62 s [really-safe-money-gen]
  8604. 1080.62 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  8605. 1080.62 s [really-safe-money-gen] + if False
  8606. 1080.62 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  8607. 1080.62 s [really-safe-money-gen] else Nothing
  8608. 1080.62 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  8609. 1080.62 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  8610. 1080.62 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  8611. 1080.62 s [really-safe-money-gen] mconcat
  8612. 1080.62 s [really-safe-money-gen] [ genericValidate qf,
  8613. 1080.62 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  8614. 1080.62 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  8615. 1080.62 s [really-safe-money-gen] ]
  8616. 1080.62 s [really-safe-money-gen]
  8617. 1080.62 s [really-safe-money-gen] instance NFData QuantisationFactor
  8618. 1080.62 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  8619. 1080.62 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  8620. 1080.62 s [really-safe-money-gen] instance Validity QuantisationFactor where
  8621. 1080.62 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  8622. 1080.62 s [really-safe-money-gen] mconcat
  8623. 1080.62 s [really-safe-money-gen] - [ genericValidate qf,
  8624. 1080.62 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  8625. 1080.62 s [really-safe-money-gen] ]
  8626. 1080.62 s [really-safe-money-gen]
  8627. 1080.62 s [really-safe-money-gen] instance NFData QuantisationFactor
  8628. 1080.62 s [really-safe-money-gen]
  8629. 1080.62 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8630. 1080.62 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8631. 1080.62 s [really-safe-money-gen]
  8632. 1080.62 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8633. 1080.62 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8634. 1080.62 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8635. 1080.62 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8636. 1080.62 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8637. 1080.62 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8638. 1080.62 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8639. 1080.62 s [really-safe-money-gen]
  8640. 1080.62 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8641. 1080.62 s [really-safe-money-gen]
  8642. 1080.62 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8643. 1080.62 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8644. 1080.62 s [really-safe-money-gen]
  8645. 1080.62 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8646. 1080.62 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8647. 1080.62 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8648. 1080.62 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8649. 1080.62 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8650. 1080.62 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8651. 1080.62 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8652. 1080.62 s [really-safe-money-gen]
  8653. 1080.62 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8654. 1080.62 s [really-safe-money-gen]
  8655. 1080.62 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  8656. 1080.62 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  8657. 1080.62 s [really-safe-money-gen] instance Validity QuantisationFactor where
  8658. 1080.62 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  8659. 1080.62 s [really-safe-money-gen] mconcat
  8660. 1080.62 s [really-safe-money-gen] - [ genericValidate qf,
  8661. 1080.62 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  8662. 1080.62 s [really-safe-money-gen] ]
  8663. 1080.62 s [really-safe-money-gen]
  8664. 1080.62 s [really-safe-money-gen] instance NFData QuantisationFactor
  8665. 1080.62 s [really-safe-money-gen]
  8666. 1080.62 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  8667. 1080.62 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  8668. 1080.62 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  8669. 1080.62 s [really-safe-money-gen] mconcat
  8670. 1080.62 s [really-safe-money-gen] [ genericValidate qf,
  8671. 1080.62 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  8672. 1080.62 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
  8673. 1080.62 s [really-safe-money-gen] ]
  8674. 1080.62 s [really-safe-money-gen]
  8675. 1080.62 s [really-safe-money-gen] instance NFData QuantisationFactor
  8676. 1080.62 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8677. 1080.62 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8678. 1080.62 s [really-safe-money-gen]
  8679. 1080.62 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8680. 1080.62 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8681. 1080.62 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8682. 1080.62 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8683. 1081.47 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  8684. 1081.47 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8685. 1081.47 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8686. 1081.48 s [really-safe-money-gen]
  8687. 1081.48 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8688. 1081.48 s [really-safe-money-gen]
  8689. 1081.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8690. 1081.48 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8691. 1081.48 s [really-safe-money-gen]
  8692. 1081.48 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8693. 1081.48 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8694. 1081.48 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8695. 1081.48 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8696. 1081.48 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8697. 1081.48 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8698. 1081.48 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8699. 1081.48 s [really-safe-money-gen]
  8700. 1081.48 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8701. 1081.48 s [really-safe-money-gen]
  8702. 1081.48 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8703. 1081.48 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8704. 1081.48 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8705. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8706. 1081.48 s [really-safe-money-gen] else
  8707. 1081.48 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8708. 1081.48 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (maxBound :: Word64)
  8709. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8710. 1081.48 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8711. 1081.48 s [really-safe-money-gen] g :: Amount -> String
  8712. 1081.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8713. 1081.48 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8714. 1081.48 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8715. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8716. 1081.48 s [really-safe-money-gen] else
  8717. 1081.48 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8718. 1081.48 s [really-safe-money-gen] + if True
  8719. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8720. 1081.48 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8721. 1081.48 s [really-safe-money-gen] g :: Amount -> String
  8722. 1081.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8723. 1081.48 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8724. 1081.48 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8725. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8726. 1081.48 s [really-safe-money-gen] else
  8727. 1081.48 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8728. 1081.48 s [really-safe-money-gen] + if False
  8729. 1081.48 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8730. 1081.48 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8731. 1081.48 s [really-safe-money-gen] g :: Amount -> String
  8732. 1081.48 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  8733. 1081.49 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8734. 1081.49 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8735. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8736. 1081.49 s [really-safe-money-gen] else
  8737. 1081.49 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8738. 1081.49 s [really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  8739. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8740. 1081.49 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8741. 1081.49 s [really-safe-money-gen] g :: Amount -> String
  8742. 1081.49 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  8743. 1081.49 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  8744. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8745. 1081.49 s [really-safe-money-gen] else
  8746. 1081.49 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8747. 1081.49 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8748. 1081.49 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8749. 1081.49 s [really-safe-money-gen] g :: Amount -> String
  8750. 1081.49 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8751. 1081.49 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  8752. 1081.49 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  8753. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8754. 1081.49 s [really-safe-money-gen] else
  8755. 1081.49 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8756. 1081.49 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8757. 1081.49 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8758. 1081.49 s [really-safe-money-gen] g :: Amount -> String
  8759. 1081.49 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8760. 1081.49 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  8761. 1081.49 s [really-safe-money-gen] @@ -43,15 +43,14 @@
  8762. 1081.49 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  8763. 1081.49 s [really-safe-money-gen] where
  8764. 1081.49 s [really-safe-money-gen] f :: String -> Either String Amount
  8765. 1081.49 s [really-safe-money-gen] f s = case readMaybe s of
  8766. 1081.49 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8767. 1081.49 s [really-safe-money-gen] Just i ->
  8768. 1081.49 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8769. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8770. 1081.49 s [really-safe-money-gen] else
  8771. 1081.49 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8772. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8773. 1081.49 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8774. 1081.49 s [really-safe-money-gen] g :: Amount -> String
  8775. 1081.49 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8776. 1081.49 s [really-safe-money-gen]
  8777. 1081.49 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  8778. 1081.49 s [really-safe-money-gen] @@ -43,15 +43,8 @@
  8779. 1081.49 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  8780. 1081.49 s [really-safe-money-gen] where
  8781. 1081.49 s [really-safe-money-gen] f :: String -> Either String Amount
  8782. 1081.49 s [really-safe-money-gen] f s = case readMaybe s of
  8783. 1081.49 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8784. 1081.49 s [really-safe-money-gen] - Just i ->
  8785. 1081.49 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8786. 1081.49 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8787. 1081.49 s [really-safe-money-gen] - else
  8788. 1081.49 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8789. 1081.49 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8790. 1081.49 s [really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8791. 1081.49 s [really-safe-money-gen] g :: Amount -> String
  8792. 1081.49 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8793. 1081.49 s [really-safe-money-gen]
  8794. 1081.49 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8795. 1081.49 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  8796. 1081.49 s [really-safe-money-gen] where
  8797. 1081.49 s [really-safe-money-gen] f :: String -> Either String Account
  8798. 1081.49 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8799. 1081.49 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8800. 1081.49 s [really-safe-money-gen] Just a -> Right a
  8801. 1081.49 s [really-safe-money-gen] g :: Account -> String
  8802. 1081.49 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8803. 1081.49 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8804. 1081.49 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  8805. 1081.49 s [really-safe-money-gen] where
  8806. 1081.49 s [really-safe-money-gen] f :: String -> Either String Account
  8807. 1081.49 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8808. 1081.49 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8809. 1081.49 s [really-safe-money-gen] Just a -> Right a
  8810. 1081.49 s [really-safe-money-gen] g :: Account -> String
  8811. 1081.49 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8812. 1081.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8813. 1081.49 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8814. 1081.49 s [really-safe-money-gen] f s = case readMaybe s of
  8815. 1081.49 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8816. 1081.49 s [really-safe-money-gen] Just i ->
  8817. 1081.49 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8818. 1081.49 s [really-safe-money-gen] + if (i :: Integer) > toInteger (minBound :: Word64)
  8819. 1081.49 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8820. 1081.49 s [really-safe-money-gen] else
  8821. 1081.49 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8822. 1081.49 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  8823. 1081.49 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  8824. 1081.49 s [really-safe-money-gen] <?> "Account"
  8825. 1081.49 s [really-safe-money-gen] where
  8826. 1081.49 s [really-safe-money-gen] f :: Integer -> Either String Account
  8827. 1081.49 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  8828. 1081.49 s [really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
  8829. 1081.49 s [really-safe-money-gen] Just a -> Right a
  8830. 1081.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  8831. 1082.10 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8832. 1082.11 s [really-safe-money-gen] f s = case readMaybe s of
  8833. 1082.11 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8834. 1082.11 s [really-safe-money-gen] Just i ->
  8835. 1082.11 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8836. 1082.11 s [really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  8837. 1082.11 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8838. 1082.11 s [really-safe-money-gen] else
  8839. 1082.11 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8840. 1082.11 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8841. 1082.11 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  8842. 1082.11 s [really-safe-money-gen] where
  8843. 1082.11 s [really-safe-money-gen] f :: String -> Either String Amount
  8844. 1082.11 s [really-safe-money-gen] f s = case readMaybe s of
  8845. 1082.11 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8846. 1082.11 s [really-safe-money-gen] Just i ->
  8847. 1082.11 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8848. 1082.11 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8849. 1082.11 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  8850. 1082.11 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  8851. 1082.11 s [really-safe-money-gen] <?> "Account"
  8852. 1082.11 s [really-safe-money-gen] where
  8853. 1082.11 s [really-safe-money-gen] f :: Integer -> Either String Account
  8854. 1082.11 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  8855. 1082.11 s [really-safe-money-gen] Nothing -> Left $ "Number did not fit into an account value: " <> show i
  8856. 1082.11 s [really-safe-money-gen] - Just a -> Right a
  8857. 1082.11 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8858. 1082.11 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  8859. 1082.11 s [really-safe-money-gen] where
  8860. 1082.11 s [really-safe-money-gen] f :: String -> Either String Amount
  8861. 1082.11 s [really-safe-money-gen] f s = case readMaybe s of
  8862. 1082.11 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8863. 1082.11 s [really-safe-money-gen] Just i ->
  8864. 1082.11 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8865. 1082.11 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8866. 1082.11 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  8867. 1082.12 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  8868. 1082.12 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  8869. 1082.12 s [really-safe-money-gen] where
  8870. 1082.12 s [really-safe-money-gen] f :: String -> Either String Account
  8871. 1082.12 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8872. 1082.12 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8873. 1082.12 s [really-safe-money-gen] - Just a -> Right a
  8874. 1082.12 s [really-safe-money-gen] g :: Account -> String
  8875. 1082.12 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8876. 1082.12 s [really-safe-money-gen]
  8877. 1082.12 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  8878. 1082.12 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  8879. 1082.12 s [really-safe-money-gen] where
  8880. 1082.12 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8881. 1082.12 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8882. 1082.12 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8883. 1082.12 s [really-safe-money-gen] Just a -> Right a
  8884. 1082.12 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  8885. 1082.12 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  8886. 1082.12 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  8887. 1082.12 s [really-safe-money-gen] where
  8888. 1082.12 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8889. 1082.12 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8890. 1082.12 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8891. 1082.12 s [really-safe-money-gen] - Just a -> Right a
  8892. 1082.12 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  8893. 1082.12 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  8894. 1082.12 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  8895. 1082.12 s [really-safe-money-gen] where
  8896. 1082.12 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8897. 1082.12 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8898. 1082.12 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8899. 1082.12 s [really-safe-money-gen] Just a -> Right a
  8900. 1082.12 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8901. 1082.12 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  8902. 1082.12 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8903. 1082.12 s [really-safe-money-gen] Just i ->
  8904. 1082.12 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8905. 1082.12 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8906. 1082.12 s [really-safe-money-gen] else
  8907. 1082.12 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8908. 1082.12 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8909. 1082.13 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8910. 1082.13 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8911. 1082.13 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8912. 1082.13 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8913. 1082.13 s [really-safe-money-gen] else
  8914. 1082.13 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8915. 1082.13 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (maxBound :: Word64)
  8916. 1082.13 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8917. 1082.13 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8918. 1082.13 s [really-safe-money-gen] g :: Amount -> String
  8919. 1082.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  8920. 1082.13 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  8921. 1082.13 s [really-safe-money-gen] codec
  8922. 1082.13 s [really-safe-money-gen] <?> "QuantisationFactor"
  8923. 1082.13 s [really-safe-money-gen] where
  8924. 1082.13 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  8925. 1082.13 s [really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  8926. 1082.13 s [really-safe-money-gen] Just qf -> Right qf
  8927. 1082.13 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  8928. 1082.13 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  8929. 1082.13 s [really-safe-money-gen] where
  8930. 1082.13 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8931. 1082.13 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8932. 1082.13 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8933. 1082.13 s [really-safe-money-gen] Just a -> Right a
  8934. 1082.13 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  8935. 1082.13 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  8936. 1082.13 s [really-safe-money-gen] codec
  8937. 1082.13 s [really-safe-money-gen] <?> "QuantisationFactor"
  8938. 1082.13 s [really-safe-money-gen] where
  8939. 1082.13 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  8940. 1082.13 s [really-safe-money-gen] Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  8941. 1082.13 s [really-safe-money-gen] - Just qf -> Right qf
  8942. 1082.13 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  8943. 1082.13 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  8944. 1082.13 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  8945. 1082.13 s [really-safe-money-gen] mconcat
  8946. 1082.13 s [really-safe-money-gen] [ genericValidate qf,
  8947. 1082.13 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  8948. 1082.13 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  8949. 1082.13 s [really-safe-money-gen] ]
  8950. 1082.13 s [really-safe-money-gen]
  8951. 1082.13 s [really-safe-money-gen] instance NFData QuantisationFactor
  8952. 1082.13 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8953. 1082.13 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8954. 1082.13 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8955. 1082.14 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8956. 1082.14 s [really-safe-money-gen] else
  8957. 1082.14 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8958. 1082.14 s [really-safe-money-gen] + if (i :: Integer) < toInteger (maxBound :: Word64)
  8959. 1082.14 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8960. 1082.14 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8961. 1082.14 s [really-safe-money-gen] g :: Amount -> String
  8962. 1082.14 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8963. 1082.14 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  8964. 1082.14 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8965. 1082.14 s [really-safe-money-gen] Just i ->
  8966. 1082.14 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8967. 1082.14 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8968. 1082.14 s [really-safe-money-gen] else
  8969. 1082.14 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8970. 1082.14 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8971. 1082.14 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  8972. 1082.14 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8973. 1082.14 s [really-safe-money-gen] f s = case readMaybe s of
  8974. 1082.14 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8975. 1082.14 s [really-safe-money-gen] Just i ->
  8976. 1082.14 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8977. 1082.14 s [really-safe-money-gen] + if False
  8978. 1082.14 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8979. 1082.14 s [really-safe-money-gen] else
  8980. 1082.14 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8981. 1082.14 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8982. 1082.14 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8983. 1082.14 s [really-safe-money-gen] f s = case readMaybe s of
  8984. 1082.14 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8985. 1082.14 s [really-safe-money-gen] Just i ->
  8986. 1082.14 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8987. 1082.14 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (minBound :: Word64)
  8988. 1082.14 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8989. 1082.14 s [really-safe-money-gen] else
  8990. 1342.73 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: WKilled: 419
  8991. 1342.76 s [really-safe-money-gen] (of which timed out: 0)
  8992. 1342.76 s [really-safe-money-gen] Survived: 65
  8993. 1342.76 s [really-safe-money-gen] Uncovered: 40
  8994. 1342.76 s [really-safe-money-gen]
  8995. 1342.76 s [really-safe-money-gen] Surviving mutations:
  8996. 1342.76 s [really-safe-money-gen]
  8997. 1342.76 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  8998. 1342.76 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  8999. 1342.76 s [really-safe-money-gen] instance Validity QuantisationFactor where
  9000. 1342.76 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9001. 1342.76 s [really-safe-money-gen] mconcat
  9002. 1342.76 s [really-safe-money-gen] - [ genericValidate qf,
  9003. 1342.76 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  9004. 1342.76 s [really-safe-money-gen] ]
  9005. 1342.76 s [really-safe-money-gen]
  9006. 1342.76 s [really-safe-money-gen] instance NFData QuantisationFactor
  9007. 1342.76 s [really-safe-money-gen]
  9008. 1342.76 s [really-safe-money-gen]
  9009. 1342.76 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  9010. 1342.76 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  9011. 1342.76 s [really-safe-money-gen] instance Validity QuantisationFactor where
  9012. 1342.76 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9013. 1342.76 s [really-safe-money-gen] mconcat
  9014. 1342.76 s [really-safe-money-gen] - [ genericValidate qf,
  9015. 1342.76 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9016. 1342.76 s [really-safe-money-gen] ]
  9017. 1342.76 s [really-safe-money-gen]
  9018. 1342.76 s [really-safe-money-gen] instance NFData QuantisationFactor
  9019. 1342.76 s [really-safe-money-gen]
  9020. 1342.76 s [really-safe-money-gen]
  9021. 1342.76 s [really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  9022. 1342.76 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  9023. 1342.76 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9024. 1342.76 s [really-safe-money-gen] mconcat
  9025. 1342.76 s [really-safe-money-gen] [ genericValidate qf,
  9026. 1342.76 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9027. 1342.76 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  9028. 1342.76 s [really-safe-money-gen] ]
  9029. 1342.76 s [really-safe-money-gen]
  9030. 1342.76 s [really-safe-money-gen] instance NFData QuantisationFactor
  9031. 1342.76 s [really-safe-money-gen]
  9032. 1342.76 s [really-safe-money-gen] Cmp at src/Money/QuantisationFactor.hs:102:6-46
  9033. 1342.76 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  9034. 1342.76 s [really-safe-money-gen] then Just (numerator rat)
  9035. 1342.76 s [really-safe-money-gen] else Nothing
  9036. 1342.76 s [really-safe-money-gen]
  9037. 1342.76 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  9038. 1342.76 s [really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
  9039. 1342.76 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  9040. 1342.76 s [really-safe-money-gen] else Nothing
  9041. 1342.76 s [really-safe-money-gen]
  9042. 1342.77 s [really-safe-money-gen] Cmp at src/Money/QuantisationFactor.hs:93:12-17
  9043. 1342.77 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9044. 1342.77 s [really-safe-money-gen]
  9045. 1342.77 s [really-safe-money-gen] rat <-
  9046. 1342.77 s [really-safe-money-gen] let r = 1 / irat
  9047. 1342.77 s [really-safe-money-gen] - in if r < 0
  9048. 1342.77 s [really-safe-money-gen] + in if r <= 0
  9049. 1342.77 s [really-safe-money-gen] then Nothing
  9050. 1342.77 s [really-safe-money-gen] else Just r
  9051. 1342.77 s [really-safe-money-gen]
  9052. 1342.77 s [really-safe-money-gen]
  9053. 1342.77 s [really-safe-money-gen] IntLit at src/Money/QuantisationFactor.hs:93:16-17
  9054. 1342.77 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9055. 1342.77 s [really-safe-money-gen]
  9056. 1342.77 s [really-safe-money-gen] rat <-
  9057. 1342.77 s [really-safe-money-gen] let r = 1 / irat
  9058. 1342.77 s [really-safe-money-gen] - in if r < 0
  9059. 1342.77 s [really-safe-money-gen] + in if r < 1
  9060. 1342.77 s [really-safe-money-gen] then Nothing
  9061. 1342.77 s [really-safe-money-gen] else Just r
  9062. 1342.77 s [really-safe-money-gen]
  9063. 1342.77 s [really-safe-money-gen]
  9064. 1342.77 s [really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
  9065. 1342.77 s [really-safe-money-gen] @@ -34,9 +34,8 @@
  9066. 1342.77 s [really-safe-money-gen] instance Validity ConversionRate where
  9067. 1342.77 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  9068. 1342.77 s [really-safe-money-gen] mconcat
  9069. 1342.77 s [really-safe-money-gen] - [ genericValidate cr,
  9070. 1342.77 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  9071. 1342.77 s [really-safe-money-gen] ]
  9072. 1342.77 s [really-safe-money-gen]
  9073. 1342.77 s [really-safe-money-gen] instance NFData ConversionRate
  9074. 1342.77 s [really-safe-money-gen]
  9075. 1342.77 s [really-safe-money-gen]
  9076. 1342.77 s [really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
  9077. 1342.77 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  9078. 1342.77 s [really-safe-money-gen] instance Validity ConversionRate where
  9079. 1342.77 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  9080. 1342.77 s [really-safe-money-gen] mconcat
  9081. 1342.77 s [really-safe-money-gen] - [ genericValidate cr,
  9082. 1342.77 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  9083. 1342.77 s [really-safe-money-gen] ]
  9084. 1342.77 s [really-safe-money-gen]
  9085. 1342.77 s [really-safe-money-gen] instance NFData ConversionRate
  9086. 1342.77 s [really-safe-money-gen]
  9087. 1342.77 s [really-safe-money-gen]
  9088. 1342.77 s [really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57
  9089. 1342.77 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  9090. 1342.77 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  9091. 1342.77 s [really-safe-money-gen] mconcat
  9092. 1342.77 s [really-safe-money-gen] [ genericValidate cr,
  9093. 1342.77 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  9094. 1342.77 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  9095. 1342.77 s [really-safe-money-gen] ]
  9096. 1342.77 s [really-safe-money-gen]
  9097. 1342.77 s [really-safe-money-gen] instance NFData ConversionRate
  9098. 1342.77 s [really-safe-money-gen]
  9099. 1342.77 s [really-safe-money-gen] Cmp at src/Money/ConversionRate.hs:72:21-26
  9100. 1342.77 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  9101. 1342.77 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  9102. 1342.77 s [really-safe-money-gen] -- Nothing
  9103. 1342.77 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  9104. 1342.77 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  9105. 1342.77 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  9106. 1342.77 s [really-safe-money-gen]
  9107. 1342.77 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  9108. 1342.77 s [really-safe-money-gen] --
  9109. 1342.77 s [really-safe-money-gen]
  9110. 1342.77 s [really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
  9111. 1342.77 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  9112. 1342.77 s [really-safe-money-gen]
  9113. 1342.78 s [really-safe-money-gen] -- | One-to-one conversion rate
  9114. 1342.78 s [really-safe-money-gen] oneToOne :: ConversionRate
  9115. 1342.78 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  9116. 1342.78 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  9117. 1342.78 s [really-safe-money-gen]
  9118. 1342.78 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  9119. 1342.78 s [really-safe-money-gen] --
  9120. 1342.78 s [really-safe-money-gen]
  9121. 1342.78 s [really-safe-money-gen] Arith at src/Money/ConversionRate.hs:127:70-79
  9122. 1342.78 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  9123. 1342.78 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  9124. 1342.78 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  9125. 1342.78 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  9126. 1342.78 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  9127. 1342.78 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  9128. 1342.78 s [really-safe-money-gen]
  9129. 1342.78 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  9130. 1342.78 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  9131. 1342.78 s [really-safe-money-gen]
  9132. 1342.78 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  9133. 1342.78 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  9134. 1342.78 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  9135. 1342.78 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  9136. 1342.78 s [really-safe-money-gen] mconcat
  9137. 1342.78 s [really-safe-money-gen] - [ genericValidate ma,
  9138. 1342.78 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9139. 1342.78 s [really-safe-money-gen] declare "The amount is not zero" $
  9140. 1342.78 s [really-safe-money-gen] a /= Amount.zero
  9141. 1342.78 s [really-safe-money-gen] ]
  9142. 1342.78 s [really-safe-money-gen]
  9143. 1342.78 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9144. 1342.78 s [really-safe-money-gen]
  9145. 1342.78 s [really-safe-money-gen]
  9146. 1342.78 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  9147. 1342.78 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  9148. 1342.78 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  9149. 1342.78 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  9150. 1342.78 s [really-safe-money-gen] mconcat
  9151. 1342.78 s [really-safe-money-gen] - [ genericValidate ma,
  9152. 1342.78 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  9153. 1342.78 s [really-safe-money-gen] - declare "The amount is not zero" $
  9154. 1342.78 s [really-safe-money-gen] - a /= Amount.zero
  9155. 1342.78 s [really-safe-money-gen] ]
  9156. 1342.78 s [really-safe-money-gen]
  9157. 1342.78 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9158. 1342.78 s [really-safe-money-gen]
  9159. 1342.78 s [really-safe-money-gen]
  9160. 1342.78 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
  9161. 1342.78 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  9162. 1342.78 s [really-safe-money-gen] [ genericValidate ma,
  9163. 1342.78 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9164. 1342.78 s [really-safe-money-gen] declare "The amount is not zero" $
  9165. 1342.78 s [really-safe-money-gen] - a /= Amount.zero
  9166. 1342.78 s [really-safe-money-gen] + True
  9167. 1342.78 s [really-safe-money-gen] ]
  9168. 1342.78 s [really-safe-money-gen]
  9169. 1342.78 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9170. 1342.78 s [really-safe-money-gen]
  9171. 1342.78 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
  9172. 1342.78 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  9173. 1342.78 s [really-safe-money-gen] Just a -> do
  9174. 1342.78 s [really-safe-money-gen] r <- Amount.add a amount
  9175. 1342.78 s [really-safe-money-gen] Just $
  9176. 1342.78 s [really-safe-money-gen] - if r == Amount.zero
  9177. 1342.78 s [really-safe-money-gen] + if False
  9178. 1342.78 s [really-safe-money-gen] then M.delete currency m
  9179. 1342.78 s [really-safe-money-gen] else M.insert currency r m
  9180. 1342.78 s [really-safe-money-gen]
  9181. 1342.78 s [really-safe-money-gen]
  9182. 1342.78 s [really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
  9183. 1342.78 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9184. 1342.78 s [really-safe-money-gen] Just a -> do
  9185. 1342.78 s [really-safe-money-gen] r <- Amount.subtract a amount
  9186. 1342.78 s [really-safe-money-gen] Just $
  9187. 1342.78 s [really-safe-money-gen] - if r == Amount.zero
  9188. 1342.78 s [really-safe-money-gen] + if not (r == Amount.zero)
  9189. 1342.78 s [really-safe-money-gen] then M.delete currency m
  9190. 1342.79 s [really-safe-money-gen] else M.insert currency r m
  9191. 1342.79 s [really-safe-money-gen]
  9192. 1342.79 s [really-safe-money-gen]
  9193. 1342.79 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  9194. 1342.79 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9195. 1342.79 s [really-safe-money-gen] Just a -> do
  9196. 1342.79 s [really-safe-money-gen] r <- Amount.subtract a amount
  9197. 1342.79 s [really-safe-money-gen] Just $
  9198. 1342.79 s [really-safe-money-gen] - if r == Amount.zero
  9199. 1342.79 s [really-safe-money-gen] + if False
  9200. 1342.79 s [really-safe-money-gen] then M.delete currency m
  9201. 1342.79 s [really-safe-money-gen] else M.insert currency r m
  9202. 1342.79 s [really-safe-money-gen]
  9203. 1342.79 s [really-safe-money-gen]
  9204. 1342.79 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  9205. 1342.79 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9206. 1342.79 s [really-safe-money-gen] Just a -> do
  9207. 1342.79 s [really-safe-money-gen] r <- Amount.subtract a amount
  9208. 1342.79 s [really-safe-money-gen] Just $
  9209. 1342.79 s [really-safe-money-gen] - if r == Amount.zero
  9210. 1342.79 s [really-safe-money-gen] + if True
  9211. 1342.79 s [really-safe-money-gen] then M.delete currency m
  9212. 1342.79 s [really-safe-money-gen] else M.insert currency r m
  9213. 1342.79 s [really-safe-money-gen]
  9214. 1342.79 s [really-safe-money-gen]
  9215. 1342.79 s [really-safe-money-gen] MaybeOp at src/Money/MultiAmount.hs:112:33-39
  9216. 1342.79 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  9217. 1342.79 s [really-safe-money-gen]
  9218. 1342.79 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  9219. 1342.79 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  9220. 1342.79 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  9221. 1342.79 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  9222. 1342.79 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  9223. 1342.79 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  9224. 1342.79 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  9225. 1342.79 s [really-safe-money-gen]
  9226. 1342.79 s [really-safe-money-gen] Cmp at src/Money/MultiAmount.hs:168:20-45
  9227. 1342.79 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  9228. 1342.79 s [really-safe-money-gen] maxBoundN :: Natural
  9229. 1342.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  9230. 1342.79 s [really-safe-money-gen] actualResult =
  9231. 1342.79 s [really-safe-money-gen] - if roundedResult > maxBoundN
  9232. 1342.79 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  9233. 1342.79 s [really-safe-money-gen] then Nothing
  9234. 1342.79 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  9235. 1342.79 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  9236. 1342.79 s [really-safe-money-gen]
  9237. 1342.79 s [really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115
  9238. 1342.79 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  9239. 1342.79 s [really-safe-money-gen]
  9240. 1342.79 s [really-safe-money-gen] -- | See 'Account.distribute'
  9241. 1342.79 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  9242. 1342.79 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  9243. 1342.79 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  9244. 1342.79 s [really-safe-money-gen] DistributedZero -> DistributedZero
  9245. 1342.79 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  9246. 1342.79 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  9247. 1342.79 s [really-safe-money-gen]
  9248. 1342.79 s [really-safe-money-gen] -- | The result of 'distribute'
  9249. 1342.79 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  9250. 1342.79 s [really-safe-money-gen]
  9251. 1342.79 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  9252. 1342.79 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  9253. 1342.79 s [really-safe-money-gen]
  9254. 1342.79 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  9255. 1342.79 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  9256. 1342.79 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  9257. 1342.79 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  9258. 1342.79 s [really-safe-money-gen] - Just dl -> pure dl
  9259. 1342.79 s [really-safe-money-gen]
  9260. 1342.79 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  9261. 1342.79 s [really-safe-money-gen] decimalLiteralP = do
  9262. 1342.79 s [really-safe-money-gen]
  9263. 1342.79 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  9264. 1342.79 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  9265. 1342.79 s [really-safe-money-gen] -- Nothing
  9266. 1342.79 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  9267. 1342.79 s [really-safe-money-gen] fromRational (n :% d)
  9268. 1342.79 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  9269. 1342.79 s [really-safe-money-gen] + | n <= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  9270. 1342.79 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  9271. 1342.79 s [really-safe-money-gen]
  9272. 1342.79 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  9273. 1342.80 s [really-safe-money-gen]
  9274. 1342.80 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  9275. 1342.80 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  9276. 1342.80 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  9277. 1342.80 s [really-safe-money-gen] -- Nothing
  9278. 1342.80 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  9279. 1342.80 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  9280. 1342.80 s [really-safe-money-gen] - Just False -> Nothing
  9281. 1342.80 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  9282. 1342.80 s [really-safe-money-gen]
  9283. 1342.80 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  9284. 1342.80 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  9285. 1342.80 s [really-safe-money-gen]
  9286. 1342.80 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  9287. 1342.80 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  9288. 1342.80 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  9289. 1342.80 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  9290. 1342.80 s [really-safe-money-gen] Just False -> Nothing
  9291. 1342.80 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  9292. 1342.80 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  9293. 1342.80 s [really-safe-money-gen]
  9294. 1342.80 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  9295. 1342.80 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  9296. 1342.80 s [really-safe-money-gen]
  9297. 1342.80 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  9298. 1342.80 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  9299. 1342.80 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  9300. 1342.80 s [really-safe-money-gen] toWord dl = do
  9301. 1342.80 s [really-safe-money-gen] n <- toNatural dl
  9302. 1342.80 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  9303. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9304. 1342.80 s [really-safe-money-gen]
  9305. 1342.80 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  9306. 1342.80 s [really-safe-money-gen]
  9307. 1342.80 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  9308. 1342.80 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  9309. 1342.80 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  9310. 1342.80 s [really-safe-money-gen] toWord dl = do
  9311. 1342.80 s [really-safe-money-gen] n <- toNatural dl
  9312. 1342.80 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  9313. 1342.80 s [really-safe-money-gen] + guard $ True
  9314. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9315. 1342.80 s [really-safe-money-gen]
  9316. 1342.80 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  9317. 1342.80 s [really-safe-money-gen]
  9318. 1342.80 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  9319. 1342.80 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  9320. 1342.80 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9321. 1342.80 s [really-safe-money-gen] toInt dl = do
  9322. 1342.80 s [really-safe-money-gen] n <- toInteger dl
  9323. 1342.80 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9324. 1342.80 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9325. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9326. 1342.80 s [really-safe-money-gen]
  9327. 1342.80 s [really-safe-money-gen]
  9328. 1342.80 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  9329. 1342.80 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  9330. 1342.80 s [really-safe-money-gen] toInt dl = do
  9331. 1342.80 s [really-safe-money-gen] n <- toInteger dl
  9332. 1342.80 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  9333. 1342.80 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  9334. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9335. 1342.80 s [really-safe-money-gen]
  9336. 1342.80 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9337. 1342.80 s [really-safe-money-gen]
  9338. 1342.80 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  9339. 1342.80 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  9340. 1342.80 s [really-safe-money-gen] toInt dl = do
  9341. 1342.80 s [really-safe-money-gen] n <- toInteger dl
  9342. 1342.80 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  9343. 1342.80 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  9344. 1342.80 s [really-safe-money-gen] + guard $ True
  9345. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9346. 1342.80 s [really-safe-money-gen]
  9347. 1342.80 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9348. 1342.80 s [really-safe-money-gen]
  9349. 1342.80 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  9350. 1342.80 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9351. 1342.80 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9352. 1342.80 s [really-safe-money-gen] toInt dl = do
  9353. 1342.80 s [really-safe-money-gen] n <- toInteger dl
  9354. 1342.80 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9355. 1342.80 s [really-safe-money-gen] + guard $ True
  9356. 1342.80 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9357. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9358. 1342.80 s [really-safe-money-gen]
  9359. 1342.80 s [really-safe-money-gen]
  9360. 1342.80 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  9361. 1342.80 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9362. 1342.80 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9363. 1342.80 s [really-safe-money-gen] toInt dl = do
  9364. 1342.80 s [really-safe-money-gen] n <- toInteger dl
  9365. 1342.80 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9366. 1342.80 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  9367. 1342.80 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9368. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9369. 1342.80 s [really-safe-money-gen]
  9370. 1342.80 s [really-safe-money-gen]
  9371. 1342.80 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  9372. 1342.80 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  9373. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9374. 1342.80 s [really-safe-money-gen]
  9375. 1342.80 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9376. 1342.80 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  9377. 1342.80 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  9378. 1342.80 s [really-safe-money-gen]
  9379. 1342.80 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  9380. 1342.80 s [really-safe-money-gen] signSignum = \case
  9381. 1342.80 s [really-safe-money-gen]
  9382. 1342.80 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  9383. 1342.80 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  9384. 1342.80 s [really-safe-money-gen] pure $ fromIntegral n
  9385. 1342.80 s [really-safe-money-gen]
  9386. 1342.81 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9387. 1342.81 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  9388. 1342.81 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  9389. 1342.81 s [really-safe-money-gen]
  9390. 1342.81 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  9391. 1342.81 s [really-safe-money-gen] signSignum = \case
  9392. 1342.81 s [really-safe-money-gen]
  9393. 1342.81 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  9394. 1342.81 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  9395. 1342.81 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9396. 1342.81 s [really-safe-money-gen] validate ad =
  9397. 1342.81 s [really-safe-money-gen] mconcat
  9398. 1342.81 s [really-safe-money-gen] - [ genericValidate ad,
  9399. 1342.81 s [really-safe-money-gen] case ad of
  9400. 1342.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9401. 1342.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9402. 1342.81 s [really-safe-money-gen] a1 > a2
  9403. 1342.81 s [really-safe-money-gen] _ -> valid
  9404. 1342.81 s [really-safe-money-gen] ]
  9405. 1342.81 s [really-safe-money-gen]
  9406. 1342.81 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9407. 1342.81 s [really-safe-money-gen]
  9408. 1342.81 s [really-safe-money-gen]
  9409. 1342.81 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  9410. 1342.81 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  9411. 1342.81 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9412. 1342.81 s [really-safe-money-gen] validate ad =
  9413. 1342.81 s [really-safe-money-gen] mconcat
  9414. 1342.81 s [really-safe-money-gen] - [ genericValidate ad,
  9415. 1342.81 s [really-safe-money-gen] - case ad of
  9416. 1342.81 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  9417. 1342.81 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  9418. 1342.81 s [really-safe-money-gen] - a1 > a2
  9419. 1342.81 s [really-safe-money-gen] - _ -> valid
  9420. 1342.81 s [really-safe-money-gen] ]
  9421. 1342.81 s [really-safe-money-gen]
  9422. 1342.81 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9423. 1342.81 s [really-safe-money-gen]
  9424. 1342.81 s [really-safe-money-gen]
  9425. 1342.81 s [really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21
  9426. 1342.81 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  9427. 1342.81 s [really-safe-money-gen] validate ad =
  9428. 1342.81 s [really-safe-money-gen] mconcat
  9429. 1342.81 s [really-safe-money-gen] [ genericValidate ad,
  9430. 1342.81 s [really-safe-money-gen] case ad of
  9431. 1342.81 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  9432. 1342.81 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  9433. 1342.81 s [really-safe-money-gen] - a1 > a2
  9434. 1342.81 s [really-safe-money-gen] _ -> valid
  9435. 1342.81 s [really-safe-money-gen] ]
  9436. 1342.81 s [really-safe-money-gen]
  9437. 1342.81 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9438. 1342.81 s [really-safe-money-gen]
  9439. 1342.81 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
  9440. 1342.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9441. 1342.81 s [really-safe-money-gen] case ad of
  9442. 1342.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9443. 1342.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9444. 1342.81 s [really-safe-money-gen] - a1 > a2
  9445. 1342.81 s [really-safe-money-gen] + True
  9446. 1342.81 s [really-safe-money-gen] _ -> valid
  9447. 1342.81 s [really-safe-money-gen] ]
  9448. 1342.81 s [really-safe-money-gen]
  9449. 1342.81 s [really-safe-money-gen]
  9450. 1342.81 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:607:15-22
  9451. 1342.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9452. 1342.81 s [really-safe-money-gen] case ad of
  9453. 1342.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9454. 1342.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9455. 1342.81 s [really-safe-money-gen] - a1 > a2
  9456. 1342.81 s [really-safe-money-gen] + a1 >= a2
  9457. 1342.81 s [really-safe-money-gen] _ -> valid
  9458. 1342.81 s [really-safe-money-gen] ]
  9459. 1342.81 s [really-safe-money-gen]
  9460. 1342.81 s [really-safe-money-gen]
  9461. 1342.81 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:661:19-28
  9462. 1342.81 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  9463. 1342.81 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  9464. 1342.81 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  9465. 1342.81 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  9466. 1342.81 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  9467. 1342.81 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  9468. 1342.81 s [really-safe-money-gen] fraction r (Amount a) f =
  9469. 1342.81 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  9470. 1342.81 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  9471. 1342.81 s [really-safe-money-gen]
  9472. 1342.81 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:495:10-23
  9473. 1342.81 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  9474. 1342.81 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  9475. 1342.81 s [really-safe-money-gen] r :: Integer
  9476. 1342.81 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  9477. 1342.81 s [really-safe-money-gen] - in if r > maxBoundI
  9478. 1342.81 s [really-safe-money-gen] + in if r >= maxBoundI
  9479. 1342.81 s [really-safe-money-gen] then Nothing
  9480. 1342.81 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9481. 1342.81 s [really-safe-money-gen]
  9482. 1342.81 s [really-safe-money-gen]
  9483. 1342.81 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:341:26-91
  9484. 1342.81 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  9485. 1342.81 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  9486. 1342.81 s [really-safe-money-gen] in if ceiled == floored
  9487. 1342.81 s [really-safe-money-gen] then
  9488. 1342.81 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  9489. 1342.82 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  9490. 1342.82 s [really-safe-money-gen] then Nothing
  9491. 1342.82 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  9492. 1342.82 s [really-safe-money-gen] else Nothing
  9493. 1342.82 s [really-safe-money-gen]
  9494. 1342.82 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
  9495. 1342.82 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9496. 1342.82 s [really-safe-money-gen] | otherwise =
  9497. 1342.82 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9498. 1342.82 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9499. 1342.82 s [really-safe-money-gen] - if exponent resultDouble > 65
  9500. 1342.82 s [really-safe-money-gen] + if False
  9501. 1342.82 s [really-safe-money-gen] then Nothing
  9502. 1342.82 s [really-safe-money-gen] else
  9503. 1342.82 s [really-safe-money-gen] let ceiled :: Natural
  9504. 1342.82 s [really-safe-money-gen]
  9505. 1342.82 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:332:14-40
  9506. 1342.82 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9507. 1342.82 s [really-safe-money-gen] | otherwise =
  9508. 1342.82 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9509. 1342.82 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9510. 1342.82 s [really-safe-money-gen] - if exponent resultDouble > 65
  9511. 1342.82 s [really-safe-money-gen] + if exponent resultDouble >= 65
  9512. 1342.82 s [really-safe-money-gen] then Nothing
  9513. 1342.82 s [really-safe-money-gen] else
  9514. 1342.82 s [really-safe-money-gen] let ceiled :: Natural
  9515. 1342.82 s [really-safe-money-gen]
  9516. 1342.82 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:520:14-66
  9517. 1342.82 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  9518. 1342.82 s [really-safe-money-gen] r = i1 - i2
  9519. 1342.82 s [really-safe-money-gen] in if r < 0
  9520. 1342.82 s [really-safe-money-gen] then Nothing
  9521. 1342.82 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9522. 1342.82 s [really-safe-money-gen] + else Nothing
  9523. 1342.82 s [really-safe-money-gen]
  9524. 1342.82 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  9525. 1342.82 s [really-safe-money-gen] --
  9526. 1342.82 s [really-safe-money-gen]
  9527. 1342.82 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
  9528. 1342.82 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9529. 1342.82 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9530. 1342.82 s [really-safe-money-gen] r :: Integer
  9531. 1342.82 s [really-safe-money-gen] r = i1 - i2
  9532. 1342.82 s [really-safe-money-gen] - in if r < 0
  9533. 1342.82 s [really-safe-money-gen] + in if True
  9534. 1342.82 s [really-safe-money-gen] then Nothing
  9535. 1342.82 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9536. 1342.82 s [really-safe-money-gen]
  9537. 1342.82 s [really-safe-money-gen]
  9538. 1342.82 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:518:10-15
  9539. 1342.82 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9540. 1342.82 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9541. 1342.82 s [really-safe-money-gen] r :: Integer
  9542. 1342.82 s [really-safe-money-gen] r = i1 - i2
  9543. 1342.82 s [really-safe-money-gen] - in if r < 0
  9544. 1342.82 s [really-safe-money-gen] + in if r <= 0
  9545. 1342.82 s [really-safe-money-gen] then Nothing
  9546. 1342.82 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9547. 1342.82 s [really-safe-money-gen]
  9548. 1342.82 s [really-safe-money-gen]
  9549. 1342.82 s [really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
  9550. 1342.82 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9551. 1342.82 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9552. 1342.82 s [really-safe-money-gen] r :: Integer
  9553. 1342.82 s [really-safe-money-gen] r = i1 - i2
  9554. 1342.82 s [really-safe-money-gen] - in if r < 0
  9555. 1342.82 s [really-safe-money-gen] + in if r < 1
  9556. 1342.82 s [really-safe-money-gen] then Nothing
  9557. 1342.82 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9558. 1342.82 s [really-safe-money-gen]
  9559. 1342.82 s [really-safe-money-gen]
  9560. 1342.82 s [really-safe-money-gen] Cmp at src/Money/Account.hs:131:20-26
  9561. 1342.82 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  9562. 1342.82 s [really-safe-money-gen] amount :: Amount
  9563. 1342.82 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  9564. 1342.82 s [really-safe-money-gen] in Just $
  9565. 1342.82 s [really-safe-money-gen] - if i >= 0
  9566. 1342.82 s [really-safe-money-gen] + if i > 0
  9567. 1342.82 s [really-safe-money-gen] then Positive amount
  9568. 1342.82 s [really-safe-money-gen] else Negative amount
  9569. 1342.82 s [really-safe-money-gen]
  9570. 1342.82 s [really-safe-money-gen]
  9571. 1342.82 s [really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
  9572. 1342.82 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  9573. 1342.82 s [really-safe-money-gen] amount :: Amount
  9574. 1342.82 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  9575. 1342.82 s [really-safe-money-gen] in Just $
  9576. 1342.82 s [really-safe-money-gen] - if i >= 0
  9577. 1342.82 s [really-safe-money-gen] + if i >= 1
  9578. 1342.82 s [really-safe-money-gen] then Positive amount
  9579. 1342.82 s [really-safe-money-gen] else Negative amount
  9580. 1342.82 s [really-safe-money-gen]
  9581. 1342.82 s [really-safe-money-gen]
  9582. 1342.82 s [really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
  9583. 1342.83 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  9584. 1342.83 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  9585. 1342.83 s [really-safe-money-gen] a :: Integer
  9586. 1342.83 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  9587. 1342.83 s [really-safe-money-gen] - in if a > maxBoundI
  9588. 1342.83 s [really-safe-money-gen] + in if False
  9589. 1342.83 s [really-safe-money-gen] then Nothing
  9590. 1342.83 s [really-safe-money-gen] else
  9591. 1342.83 s [really-safe-money-gen] let w :: Word64
  9592. 1342.83 s [really-safe-money-gen]
  9593. 1342.83 s [really-safe-money-gen] Cmp at src/Money/Account.hs:197:14-20
  9594. 1342.83 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  9595. 1342.83 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  9596. 1342.83 s [really-safe-money-gen] fromDouble quantisationFactor d =
  9597. 1342.83 s [really-safe-money-gen] let d' = Prelude.abs d
  9598. 1342.83 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  9599. 1342.83 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  9600. 1342.83 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  9601. 1342.83 s [really-safe-money-gen]
  9602. 1342.83 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  9603. 1342.83 s [really-safe-money-gen]
  9604. 1342.83 s [really-safe-money-gen] Cmp at src/Money/Account.hs:503:10-16
  9605. 1342.83 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  9606. 1342.83 s [really-safe-money-gen] RoundNearest -> RoundNearest
  9607. 1342.83 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  9608. 1342.83 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  9609. 1342.83 s [really-safe-money-gen] - in if f >= 0
  9610. 1342.83 s [really-safe-money-gen] + in if f > 0
  9611. 1342.83 s [really-safe-money-gen] then (ma, r)
  9612. 1342.83 s [really-safe-money-gen] else (negate <$> ma, -r)
  9613. 1342.83 s [really-safe-money-gen]
  9614. 1342.83 s [really-safe-money-gen]
  9615. 1342.83 s [really-safe-money-gen] Cmp at src/Money/Account.hs:495:12-18
  9616. 1342.83 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  9617. 1342.83 s [really-safe-money-gen] fraction rounding account f =
  9618. 1342.83 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  9619. 1342.83 s [really-safe-money-gen] ro =
  9620. 1342.83 s [really-safe-money-gen] - if f >= 0
  9621. 1342.83 s [really-safe-money-gen] + if f > 0
  9622. 1342.83 s [really-safe-money-gen] then rounding
  9623. 1342.83 s [really-safe-money-gen] else case rounding of
  9624. 1342.83 s [really-safe-money-gen] RoundUp -> RoundDown
  9625. 1342.83 s [really-safe-money-gen]
  9626. 1342.83 s [really-safe-money-gen] MaybeOp at src/Money/Account.hs:523:16-25
  9627. 1342.83 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  9628. 1342.83 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  9629. 1342.83 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  9630. 1342.83 s [really-safe-money-gen] func ma r = case compare account zero of
  9631. 1342.83 s [really-safe-money-gen] - EQ -> (Just zero, r)
  9632. 1342.83 s [really-safe-money-gen] + EQ -> (Nothing, r)
  9633. 1342.83 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  9634. 1342.83 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  9635. 1342.83 s [really-safe-money-gen] in func amount actualFraction
  9636. 1342.83 s [really-safe-money-gen]
  9637. 1342.83 s [really-safe-money-gen] Cmp at src/Money/Account.hs:455:14-23
  9638. 1342.83 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  9639. 1342.83 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  9640. 1342.83 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  9641. 1342.83 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  9642. 1342.83 s [really-safe-money-gen] - if a >= zero
  9643. 1342.83 s [really-safe-money-gen] + if a > zero
  9644. 1342.83 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  9645. 1342.83 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  9646. 1342.83 s [really-safe-money-gen]
  9647. 1342.83 s [really-safe-money-gen]
  9648. 1342.83 s [really-safe-money-gen] Cmp at src/Money/Account.hs:451:14-23
  9649. 1342.83 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  9650. 1342.83 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  9651. 1342.83 s [really-safe-money-gen] DistributedZero -> DistributedZero
  9652. 1342.83 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  9653. 1342.83 s [really-safe-money-gen] - if a >= zero
  9654. 1342.83 s [really-safe-money-gen] + if a > zero
  9655. 1342.83 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  9656. 1342.83 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  9657. 1342.83 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  9658. 1342.83 s [really-safe-money-gen]
  9659. 1342.83 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  9660. 1342.83 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  9661. 1342.83 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  9662. 1342.83 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  9663. 1342.83 s [really-safe-money-gen] mconcat
  9664. 1342.83 s [really-safe-money-gen] - [ genericValidate ma,
  9665. 1342.83 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9666. 1342.83 s [really-safe-money-gen] declare "The account is not zero" $
  9667. 1342.83 s [really-safe-money-gen] a /= Account.zero
  9668. 1342.83 s [really-safe-money-gen] ]
  9669. 1342.83 s [really-safe-money-gen]
  9670. 1342.83 s [really-safe-money-gen] -- TODO no empty currencies
  9671. 1342.83 s [really-safe-money-gen]
  9672. 1342.83 s [really-safe-money-gen]
  9673. 1342.83 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  9674. 1342.83 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  9675. 1342.83 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  9676. 1342.84 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  9677. 1342.84 s [really-safe-money-gen] mconcat
  9678. 1342.84 s [really-safe-money-gen] - [ genericValidate ma,
  9679. 1342.84 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  9680. 1342.84 s [really-safe-money-gen] - declare "The account is not zero" $
  9681. 1342.84 s [really-safe-money-gen] - a /= Account.zero
  9682. 1342.84 s [really-safe-money-gen] ]
  9683. 1342.84 s [really-safe-money-gen]
  9684. 1342.84 s [really-safe-money-gen] -- TODO no empty currencies
  9685. 1342.84 s [really-safe-money-gen]
  9686. 1342.84 s [really-safe-money-gen]
  9687. 1342.84 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
  9688. 1342.84 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  9689. 1342.84 s [really-safe-money-gen] [ genericValidate ma,
  9690. 1342.84 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9691. 1342.84 s [really-safe-money-gen] declare "The account is not zero" $
  9692. 1342.84 s [really-safe-money-gen] - a /= Account.zero
  9693. 1342.84 s [really-safe-money-gen] + True
  9694. 1342.84 s [really-safe-money-gen] ]
  9695. 1342.84 s [really-safe-money-gen]
  9696. 1342.84 s [really-safe-money-gen] -- TODO no empty currencies
  9697. 1342.84 s [really-safe-money-gen]
  9698. 1342.84 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
  9699. 1342.84 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  9700. 1342.84 s [really-safe-money-gen]
  9701. 1342.84 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  9702. 1342.84 s [really-safe-money-gen] fromAccount currency amount =
  9703. 1342.84 s [really-safe-money-gen] - if amount == Account.zero
  9704. 1342.84 s [really-safe-money-gen] + if True
  9705. 1342.84 s [really-safe-money-gen] then zero
  9706. 1342.84 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  9707. 1342.84 s [really-safe-money-gen]
  9708. 1342.84 s [really-safe-money-gen]
  9709. 1342.84 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:113:40-46
  9710. 1342.84 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  9711. 1342.84 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9712. 1342.84 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9713. 1342.84 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  9714. 1342.84 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  9715. 1342.84 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  9716. 1342.84 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  9717. 1342.84 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9718. 1342.84 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  9719. 1342.84 s [really-safe-money-gen]
  9720. 1342.84 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:127:45-51
  9721. 1342.84 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  9722. 1342.84 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9723. 1342.84 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9724. 1342.84 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  9725. 1342.84 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  9726. 1342.84 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  9727. 1342.84 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  9728. 1342.84 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9729. 1342.84 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  9730. 1342.84 s [really-safe-money-gen]
  9731. 1342.84 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:126:45-51
  9732. 1342.84 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  9733. 1342.84 s [really-safe-money-gen]
  9734. 1342.84 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9735. 1342.84 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9736. 1342.84 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  9737. 1342.84 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  9738. 1342.84 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  9739. 1342.84 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  9740. 1342.84 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9741. 1342.84 s [really-safe-money-gen] ord64)
  9742. 1342.84 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  9743. 1342.84 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  9744. 1342.84 s [really-safe-money-gen] f s = case readMaybe s of
  9745. 1342.84 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9746. 1342.84 s [really-safe-money-gen] Just i ->
  9747. 1342.84 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  9748. 1342.84 s [really-safe-money-gen] + if True
  9749. 1342.84 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9750. 1342.84 s [really-safe-money-gen] else
  9751. 1342.84 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  9752. 1342.84 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  9753. 1342.84 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  9754. 1342.84 s [really-safe-money-gen] f s = case readMaybe s of
  9755. 1342.84 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9756. 1342.84 s [really-safe-money-gen] Just i ->
  9757. 1342.84 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  9758. 1342.84 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (minBound :: Word64)
  9759. 1342.84 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9760. 1342.85 s [really-safe-money-gen] else
  9761. 1342.85 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  9762. 1342.85 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  9763. 1342.85 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  9764. 1342.85 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  9765. 1342.85 s [really-safe-money-gen] where
  9766. 1342.85 s [really-safe-money-gen] f :: String -> Either String Account
  9767. 1342.85 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  9768. 1342.85 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  9769. 1342.85 s [really-safe-money-gen] Just a -> Right a
  9770. 1342.85 s [really-safe-money-gen] g :: Account -> String
  9771. 1342.85 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  9772. 1342.85 s [really-safe-money-gen]
  9773. 1342.85 s [really-safe-money-gen] checkPhase completed in 20 minutes 52 seconds
  9774. 1342.85 s [really-safe-money-gen] Phase: haddockPhase
  9775. 1343.39 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  9776. 1343.40 s [really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
  9777. 1343.40 s [really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
  9778. 1343.40 s [really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
  9779. 1344.11 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
  9780. 1344.54 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
  9781. 1344.57 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
  9782. 1344.59 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
  9783. 1344.61 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
  9784. 1344.65 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
  9785. 1344.67 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
  9786. 1344.69 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
  9787. 1344.71 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
  9788. 1344.79 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
  9789. 1344.82 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
  9790. 1344.83 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
  9791. 1344.87 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
  9792. 1344.94 s [really-safe-money-gen] Haddock coverage:
  9793. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
  9794. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9795. 1344.94 s [really-safe-money-gen] Module header
  9796. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
  9797. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9798. 1344.94 s [really-safe-money-gen] Module header
  9799. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
  9800. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9801. 1344.94 s [really-safe-money-gen] Module header
  9802. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
  9803. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9804. 1344.94 s [really-safe-money-gen] Module header
  9805. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
  9806. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9807. 1344.94 s [really-safe-money-gen] Module header
  9808. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
  9809. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9810. 1344.94 s [really-safe-money-gen] Module header
  9811. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
  9812. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9813. 1344.94 s [really-safe-money-gen] Module header
  9814. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
  9815. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9816. 1344.94 s [really-safe-money-gen] Module header
  9817. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
  9818. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9819. 1344.94 s [really-safe-money-gen] Module header
  9820. 1344.94 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
  9821. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9822. 1344.94 s [really-safe-money-gen] Module header
  9823. 1344.94 s [really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
  9824. 1344.94 s [really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
  9825. 1344.94 s [really-safe-money-gen] Missing documentation for:
  9826. 1344.95 s [really-safe-money-gen] Module header
  9827. 1344.95 s [really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
  9828. 1344.95 s [really-safe-money-gen] Missing documentation for:
  9829. 1344.95 s [really-safe-money-gen] Module header
  9830. 1344.95 s [really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
  9831. 1345.29 s [really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
  9832. 1345.29 s [really-safe-money-gen] - Money.Amount.Amount
  9833. 1345.29 s [really-safe-money-gen] - Money.Amount.Distribution
  9834. 1345.29 s [really-safe-money-gen] - Money.Amount.Rounding
  9835. 1345.29 s [really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
  9836. 1345.29 s [really-safe-money-gen] - Money.Account.Account
  9837. 1345.29 s [really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
  9838. 1345.29 s [really-safe-money-gen] - Money.AccountOf.AccountOf
  9839. 1345.29 s [really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
  9840. 1345.29 s [really-safe-money-gen] - Money.AmountOf.AmountOf
  9841. 1345.29 s [really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
  9842. 1345.29 s [really-safe-money-gen] - Money.ConversionRate.ConversionRate
  9843. 1345.29 s [really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
  9844. 1345.29 s [really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
  9845. 1345.29 s [really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
  9846. 1345.29 s [really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
  9847. 1345.29 s [really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
  9848. 1345.29 s [really-safe-money-gen] - Money.Currency.Currency
  9849. 1345.29 s [really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
  9850. 1345.29 s [really-safe-money-gen] - Money.MultiAmount.MultiAmount
  9851. 1345.29 s [really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
  9852. 1345.29 s [really-safe-money-gen] - Money.MultiAccount.MultiAccount
  9853. 1345.29 s [really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
  9854. 1345.29 s [really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
  9855. 1358.76 s [really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
  9856. 1358.76 s [really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
  9857. 1358.94 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  9858. 1358.98 s [really-safe-money-gen] Phase: installPhase
  9859. 1359.37 s [really-safe-money-gen] Installing library in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-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
  9860. 1360.43 s [really-safe-money-gen] Phase: fixupPhase
  9861. 1360.49 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0
  9862. 1360.51 s [really-safe-money-gen] shrinking /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-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
  9863. 1360.53 s [really-safe-money-gen] checking for references to /build/ in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0...
  9864. 1360.58 s [really-safe-money-gen] patching script interpreter paths in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0
  9865. 1360.60 s [really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/lib
  9866. 1360.77 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc
  9867. 1360.79 s [really-safe-money-gen] checking for references to /build/ in /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc...
  9868. 1360.83 s [really-safe-money-gen] patching script interpreter paths in /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc
  9869. 1360.84 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
  9870. 1360.86 s [really-safe-money-gen] checking for references to /build/ in /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report...
  9871. 1360.91 s [really-safe-money-gen] patching script interpreter paths in /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
  9872. 1361.20 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
  9873. 1362.23 s [post-build-hook] Pushing 3 paths (196 are already present) using zstd to cache sydtest ⏳
  9874. 1362.23 s [post-build-hook]
  9875. 1362.59 s [post-build-hook] Pushing /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 (1.52 MiB)
  9876. 1362.66 s [post-build-hook] Pushing /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
  9877. 1362.69 s [post-build-hook] Pushing /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report (706.92 KiB)
  9878. 1364.04 s [post-build-hook]
  9879. 1364.04 s [post-build-hook] All done.
  9880. 1364.10 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
  9881. 1364.19 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  9882. 1364.52 s [post-build-hook] copying 3 paths...
  9883. 1364.52 s [post-build-hook] copying path '/nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
  9884. 1364.52 s [post-build-hook] copying path '/nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc' to 'https://cache.staging.nix-ci.com'...
  9885. 1364.69 s [post-build-hook] copying path '/nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  9886. 1365.55 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  9887. 1365.85 s [post-build-hook] copying 1 paths...
  9888. 1365.85 s [post-build-hook] copying path '/nix/store/jf1dnysz6vy2f5ldd3nfkssadz2s8dv3-really-safe-money-gen-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  9889. 1366.13 s Progress: 5 of 6 built