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=c0b2f0a5810b9e118fa070af844aeff5fcee37b3#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
  2. 0.08 s warning: ignoring untrusted flake configuration setting 'extra-substituters'.
  3. 0.08 s Pass '--accept-flake-config' to trust it
  4. 0.08 s warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
  5. 0.08 s Pass '--accept-flake-config' to trust it
  6. 0.56 s error (ignored): SQLite database '/var/cache/private/nix-ci-worker/eval-cache-v6/44c5cc97d685a34d24cd0ee331514998807ad7a26ab5bedd271154cd4ccb525d.sqlite' is busy
  7. 1.39 s
  8. 2.59 s Waiting for lock on sydtest-mutation-plugin-source
  9. 7.61 s Waiting for lock on sydtest-mutation-plugin-0.0.0.0-doc
  10. 42.73 s Building really-safe-money
  11. 42.93 s [really-safe-money] Phase: setupCompilerEnvironmentPhase
  12. 42.94 s [really-safe-money] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  13. 43.19 s [really-safe-money] Phase: unpackPhase
  14. 43.19 s [really-safe-money] unpacking source archive /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/really-safe-money-0.0.0.0.tar.gz
  15. 43.20 s [really-safe-money] source root is really-safe-money-0.0.0.0
  16. 43.20 s [really-safe-money] setting SOURCE_DATE_EPOCH to timestamp 1778737784 of file "really-safe-money-0.0.0.0/src/Numeric/DecimalLiteral.hs"
  17. 43.21 s [really-safe-money] Phase: patchPhase
  18. 43.21 s [really-safe-money] Phase: compileBuildDriverPhase
  19. 43.22 s [really-safe-money] setupCompileFlags: -package-db=/build/tmp.60GgwBRtub/setup-package.conf.d -threaded
  20. 43.26 s [really-safe-money] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.60GgwBRtub/Main.o )
  21. 43.30 s [really-safe-money] [2 of 2] Linking Setup
  22. 44.46 s [really-safe-money] Phase: updateAutotoolsGnuConfigScriptsPhase
  23. 44.47 s [really-safe-money] Phase: configurePhase
  24. 44.47 s [really-safe-money] configureFlags: --verbose --prefix=/nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.60GgwBRtub/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --disable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --ghc-options=-fplugin-opt=Test.Syd.Mutation.Plugin:--debug --disable-optimization --ghc-option=-j1 --ghc-option=+RTS --ghc-option=-A32M --ghc-option=-M16g --ghc-option=-RTS --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
  25. 44.48 s [really-safe-money] Using Parsec parser
  26. 44.48 s [really-safe-money] Configuring really-safe-money-0.0.0.0...
  27. 45.01 s [really-safe-money] Dependency base >=4.7 && <5: using base-4.20.2.0
  28. 45.01 s [really-safe-money] Dependency containers: using containers-0.7
  29. 45.01 s [really-safe-money] Dependency deepseq: using deepseq-1.5.0.0
  30. 45.01 s [really-safe-money] Dependency validity: using validity-0.12.1.0
  31. 45.01 s [really-safe-money] Dependency validity-containers: using validity-containers-0.5.0.5
  32. 45.01 s [really-safe-money] Dependency validity-scientific: using validity-scientific-0.2.0.3
  33. 45.01 s [really-safe-money] Source component graph: component lib
  34. 45.01 s [really-safe-money] Configured component graph:
  35. 45.01 s [really-safe-money] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  36. 45.01 s [really-safe-money] include base-4.20.2.0-64da
  37. 45.01 s [really-safe-money] include containers-0.7-504a
  38. 45.01 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  39. 45.01 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  40. 45.01 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  41. 45.01 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  42. 45.01 s [really-safe-money] Linked component graph:
  43. 45.01 s [really-safe-money] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  44. 45.01 s [really-safe-money] include base-4.20.2.0-64da
  45. 45.01 s [really-safe-money] include containers-0.7-504a
  46. 45.01 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  47. 45.01 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  48. 45.01 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  49. 45.01 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  50. 45.01 s [really-safe-money] Money.Account=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Account,Money.AccountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AccountOf,Money.Amount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Amount,Money.AmountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AmountOf,Money.ConversionRate=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRate,Money.ConversionRateOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRateOf,Money.Currency=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Currency,Money.MultiAccount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAccount,Money.MultiAmount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAmount,Money.QuantisationFactor=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.QuantisationFactor,Numeric.DecimalLiteral=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Numeric.DecimalLiteral
  51. 45.01 s [really-safe-money] Ready component graph:
  52. 45.01 s [really-safe-money] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  53. 45.01 s [really-safe-money] depends base-4.20.2.0-64da
  54. 45.01 s [really-safe-money] depends containers-0.7-504a
  55. 45.01 s [really-safe-money] depends deepseq-1.5.0.0-9a2c
  56. 45.01 s [really-safe-money] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  57. 45.01 s [really-safe-money] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  58. 45.01 s [really-safe-money] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  59. 45.01 s [really-safe-money] Using Cabal-3.12.1.0 compiled by ghc-9.10
  60. 45.01 s [really-safe-money] Using compiler: ghc-9.10.3
  61. 45.01 s [really-safe-money] Using install prefix:
  62. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0
  63. 45.01 s [really-safe-money] Executables installed in:
  64. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/bin
  65. 45.01 s [really-safe-money] Libraries installed in:
  66. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  67. 45.01 s [really-safe-money] Dynamic Libraries installed in:
  68. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  69. 45.01 s [really-safe-money] Private executables installed in:
  70. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  71. 45.01 s [really-safe-money] Data files installed in:
  72. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  73. 45.01 s [really-safe-money] Documentation installed in:
  74. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  75. 45.01 s [really-safe-money] Configuration files installed in:
  76. 45.01 s [really-safe-money] /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/etc
  77. 45.01 s [really-safe-money] No alex found
  78. 45.01 s [really-safe-money] Using ar found on system at:
  79. 45.01 s [really-safe-money] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  80. 45.01 s [really-safe-money] No c2hs found
  81. 45.01 s [really-safe-money] No cpphs found
  82. 45.01 s [really-safe-money] No doctest found
  83. 45.01 s [really-safe-money] Using gcc version 14.3.0 given by user at:
  84. 45.01 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  85. 45.01 s [really-safe-money] Using ghc version 9.10.3 found on system at:
  86. 45.01 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  87. 45.01 s [really-safe-money] Using ghc-pkg version 9.10.3 found on system at:
  88. 45.01 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  89. 45.01 s [really-safe-money] No ghcjs found
  90. 45.01 s [really-safe-money] No ghcjs-pkg found
  91. 45.01 s [really-safe-money] No greencard found
  92. 45.01 s [really-safe-money] Using haddock version 2.31.1 found on system at:
  93. 45.01 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  94. 45.01 s [really-safe-money] No happy found
  95. 45.01 s [really-safe-money] Using haskell-suite found on system at: haskell-suite-dummy-location
  96. 45.01 s [really-safe-money] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  97. 45.01 s [really-safe-money] No hmake found
  98. 45.01 s [really-safe-money] Using hpc version 0.69 found on system at:
  99. 45.01 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  100. 45.01 s [really-safe-money] Using hsc2hs version 0.68.10 found on system at:
  101. 45.01 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  102. 45.01 s [really-safe-money] Using hscolour version 1.25 found on system at:
  103. 45.01 s [really-safe-money] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  104. 45.01 s [really-safe-money] No jhc found
  105. 45.01 s [really-safe-money] Using ld found on system at:
  106. 45.01 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  107. 45.01 s [really-safe-money] No pkg-config found
  108. 45.01 s [really-safe-money] Using runghc version 9.10.3 found on system at:
  109. 45.01 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  110. 45.01 s [really-safe-money] Using strip version 2.44 found on system at:
  111. 45.01 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  112. 45.01 s [really-safe-money] Using tar found on system at:
  113. 45.01 s [really-safe-money] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  114. 45.01 s [really-safe-money] No uhc found
  115. 45.16 s [really-safe-money] Phase: buildPhase
  116. 45.16 s [really-safe-money] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest
  117. 45.21 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  118. 45.21 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  119. 45.36 s [really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.o, dist/build/Numeric/DecimalLiteral.dyn_o )
  120. 45.64 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  121. 45.64 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  122. 45.64 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  123. 45.64 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  124. 45.64 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  125. 45.64 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  126. 45.64 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  127. 45.64 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  128. 45.64 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  129. 45.64 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  130. 45.64 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  131. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  132. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  133. 45.66 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  134. 45.66 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  135. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  136. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  137. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  138. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  139. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  140. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  141. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  142. 45.66 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  143. 45.66 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  144. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  145. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  146. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  147. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  148. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  149. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  150. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  151. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  152. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  153. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  154. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  155. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  156. 45.66 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  157. 45.66 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  158. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  159. 45.66 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  160. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  161. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  162. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  163. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  164. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  165. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  166. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  167. 45.66 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  168. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  169. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  170. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  171. 45.66 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  172. 45.66 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  173. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  174. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  175. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  176. 45.66 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  177. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  178. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  179. 45.66 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  180. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  181. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  182. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  183. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  184. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  185. 45.66 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  186. 45.66 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  187. 45.66 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  188. 45.67 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  189. 45.67 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  190. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  191. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  192. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  193. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  194. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  195. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  196. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  197. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  198. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  199. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  200. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  201. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  202. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  203. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  204. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  205. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  206. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  207. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  208. 45.67 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  209. 45.67 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  210. 45.67 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  211. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  212. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  213. 45.67 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  214. 45.67 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  215. 45.67 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  216. 45.67 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  217. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  218. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  219. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  220. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  221. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  222. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  223. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  224. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  225. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  226. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  227. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  228. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  229. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  230. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  231. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  232. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  233. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  234. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  235. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  236. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  237. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  238. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  239. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  240. 45.67 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  241. 45.67 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  242. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  243. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  244. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  245. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  246. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  247. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  248. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  249. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  250. 45.67 s [really-safe-money] added mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  251. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  252. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  253. 45.67 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  254. 45.67 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  255. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  256. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  257. 45.67 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  258. 45.67 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  259. 45.67 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  260. 45.67 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  261. 45.67 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  262. 45.67 s [really-safe-money] added 141 mutations
  263. 47.19 s [really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.o, dist/build/Money/QuantisationFactor.dyn_o )
  264. 47.21 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  265. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  266. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  267. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  268. 47.21 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  269. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  270. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  271. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  272. 47.21 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  273. 47.21 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  274. 47.21 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  275. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  276. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  277. 47.21 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  278. 47.21 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  279. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  280. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  281. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  282. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  283. 47.21 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  284. 47.21 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  285. 47.21 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  286. 47.21 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  287. 47.21 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  288. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  289. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  290. 47.21 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  291. 47.21 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  292. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  293. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  294. 47.21 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  295. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  296. 47.21 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  297. 47.21 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  298. 47.21 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  299. 47.21 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  300. 47.21 s [really-safe-money] added 35 mutations
  301. 47.52 s [really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.o, dist/build/Money/Currency.dyn_o )
  302. 47.53 s [really-safe-money] mutation: instrumenting Money.Currency
  303. 47.53 s [really-safe-money] added 0 mutations
  304. 47.85 s [really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.o, dist/build/Money/ConversionRate.dyn_o )
  305. 47.90 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  306. 47.90 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  307. 47.90 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  308. 47.90 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  309. 47.90 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  310. 47.90 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  311. 47.90 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  312. 47.90 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  313. 47.90 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  314. 47.90 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  315. 47.90 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  316. 47.90 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  317. 47.90 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  318. 47.90 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  319. 47.90 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  320. 47.90 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  321. 47.90 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  322. 47.90 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  323. 47.90 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  324. 47.90 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  325. 47.90 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  326. 47.90 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  327. 47.90 s [really-safe-money] added 21 mutations
  328. 48.07 s [really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.o, dist/build/Money/ConversionRateOf.dyn_o )
  329. 48.08 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  330. 48.08 s [really-safe-money] added 0 mutations
  331. 48.15 s [really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.o, dist/build/Money/Amount.dyn_o )
  332. 48.20 s [really-safe-money] mutation: instrumenting Money.Amount
  333. 48.22 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  334. 48.22 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  335. 48.22 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  336. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  337. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  338. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  339. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  340. 48.22 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  341. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  342. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  343. 48.22 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  344. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  345. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  346. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  347. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  348. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  349. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  350. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  351. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  352. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  353. 48.22 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  354. 48.22 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:546:14-66
  355. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  356. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  357. 48.22 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  358. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  359. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  360. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  361. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  362. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  363. 48.22 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  364. 48.22 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:520:14-66
  365. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  366. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  367. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  368. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  369. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  370. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  371. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  372. 48.22 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  373. 48.22 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:478:14-66
  374. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  375. 48.22 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  376. 48.22 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  377. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  378. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  379. 48.22 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  380. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  381. 48.22 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  382. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  383. 48.22 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  384. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  385. 48.22 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  386. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  387. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  388. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  389. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  390. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  391. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  392. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  393. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  394. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  395. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  396. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  397. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  398. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  399. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  400. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  401. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  402. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  403. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  404. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  405. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  406. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  407. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  408. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  409. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  410. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  411. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  412. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  413. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  414. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  415. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  416. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  417. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  418. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  419. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  420. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  421. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  422. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  423. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  424. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  425. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  426. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  427. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  428. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  429. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  430. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  431. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  432. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  433. 48.23 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:497:14-66
  434. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  435. 48.23 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:660:28-37
  436. 48.23 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:661:19-28
  437. 48.23 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  438. 48.23 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  439. 48.23 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  440. 48.23 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  441. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  442. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  443. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  444. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  445. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  446. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  447. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  448. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  449. 48.23 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:683:16-27
  450. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  451. 48.23 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  452. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  453. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  454. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  455. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  456. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  457. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  458. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  459. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  460. 48.23 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  461. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  462. 48.23 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  463. 48.23 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  464. 48.23 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  465. 48.23 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  466. 48.23 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  467. 48.23 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  468. 48.23 s [really-safe-money] added 135 mutations
  469. 50.11 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.o, dist/build/Money/MultiAmount.dyn_o )
  470. 50.13 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  471. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  472. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  473. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  474. 50.13 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  475. 50.13 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  476. 50.13 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  477. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  478. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  479. 50.13 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  480. 50.13 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  481. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  482. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  483. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  484. 50.13 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  485. 50.13 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  486. 50.13 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  487. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  488. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  489. 50.13 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  490. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  491. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  492. 50.13 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  493. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  494. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  495. 50.13 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  496. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  497. 50.13 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  498. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  499. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  500. 50.13 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  501. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  502. 50.13 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  503. 50.13 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  504. 50.13 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  505. 50.13 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  506. 50.13 s [really-safe-money] added 35 mutations
  507. 50.70 s [really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.o, dist/build/Money/AmountOf.dyn_o )
  508. 50.71 s [really-safe-money] mutation: instrumenting Money.AmountOf
  509. 50.71 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  510. 50.71 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  511. 50.71 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  512. 50.71 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  513. 50.71 s [really-safe-money] added 4 mutations
  514. 50.92 s [really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.o, dist/build/Money/Account.dyn_o )
  515. 50.93 s [really-safe-money] mutation: instrumenting Money.Account
  516. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  517. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  518. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  519. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  520. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  521. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  522. 50.94 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  523. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  524. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  525. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  526. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  527. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  528. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  529. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  530. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  531. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  532. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  533. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  534. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  535. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  536. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  537. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  538. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  539. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  540. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  541. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  542. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  543. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  544. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  545. 50.94 s [really-safe-money] added mutation MaybeOp at src/Money/Account.hs:523:16-25
  546. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  547. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  548. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  549. 50.94 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  550. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  551. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  552. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  553. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  554. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  555. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  556. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  557. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  558. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  559. 50.94 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  560. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  561. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  562. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  563. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  564. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  565. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  566. 50.94 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  567. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  568. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  569. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  570. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  571. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  572. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  573. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  574. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  575. 50.94 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  576. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  577. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  578. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  579. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  580. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  581. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  582. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  583. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  584. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  585. 50.94 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  586. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  587. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  588. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  589. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  590. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  591. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  592. 50.94 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  593. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  594. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  595. 50.94 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  596. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  597. 50.94 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  598. 50.94 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  599. 50.94 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  600. 50.94 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  601. 50.94 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  602. 50.94 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  603. 50.94 s [really-safe-money] added 87 mutations
  604. 51.85 s [really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.o, dist/build/Money/MultiAccount.dyn_o )
  605. 51.86 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  606. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  607. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  608. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  609. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  610. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  611. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  612. 51.86 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  613. 51.86 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  614. 51.86 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  615. 51.86 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  616. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  617. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  618. 51.86 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  619. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  620. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  621. 51.86 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  622. 51.86 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  623. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  624. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  625. 51.86 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  626. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  627. 51.86 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  628. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  629. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  630. 51.86 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  631. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  632. 51.86 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  633. 51.86 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  634. 51.86 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  635. 51.86 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  636. 51.86 s [really-safe-money] added 30 mutations
  637. 52.33 s [really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.o, dist/build/Money/AccountOf.dyn_o )
  638. 52.34 s [really-safe-money] mutation: instrumenting Money.AccountOf
  639. 52.35 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  640. 52.35 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  641. 52.35 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  642. 52.35 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  643. 52.35 s [really-safe-money] added 4 mutations
  644. 52.54 s [really-safe-money] [12 of 12] Compiling Paths_really_safe_money ( dist/build/autogen/Paths_really_safe_money.hs, dist/build/Paths_really_safe_money.o, dist/build/Paths_really_safe_money.dyn_o )
  645. 52.86 s [really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.p_o )
  646. 53.15 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  647. 53.21 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  648. 53.21 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  649. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  650. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  651. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  652. 53.21 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  653. 53.21 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  654. 53.21 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  655. 53.21 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  656. 53.21 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  657. 53.21 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  658. 53.21 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  659. 53.21 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  660. 53.21 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  661. 53.21 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  662. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  663. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  664. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  665. 53.21 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  666. 53.21 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  667. 53.21 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  668. 53.21 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  669. 53.21 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  670. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  671. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  672. 53.21 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  673. 53.21 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  674. 53.21 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  675. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  676. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  677. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  678. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  679. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  680. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  681. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  682. 53.22 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  683. 53.22 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  684. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  685. 53.22 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  686. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  687. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  688. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  689. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  690. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  691. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  692. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  693. 53.22 s [really-safe-money] added mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  694. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  695. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  696. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  697. 53.22 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  698. 53.22 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  699. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  700. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  701. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  702. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  703. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  704. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  705. 53.22 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  706. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  707. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  708. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  709. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  710. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  711. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  712. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  713. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  714. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  715. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  716. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  717. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  718. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  719. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  720. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  721. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  722. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  723. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  724. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  725. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  726. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  727. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  728. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  729. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  730. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  731. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  732. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  733. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  734. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  735. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  736. 53.22 s [really-safe-money] added mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  737. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  738. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  739. 53.22 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  740. 53.22 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  741. 53.22 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  742. 53.22 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  743. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  744. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  745. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  746. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  747. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  748. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  749. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  750. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  751. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  752. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  753. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  754. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  755. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  756. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  757. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  758. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  759. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  760. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  761. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  762. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  763. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  764. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  765. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  766. 53.22 s [really-safe-money] added mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  767. 53.22 s [really-safe-money] added mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  768. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  769. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  770. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  771. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  772. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  773. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  774. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  775. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  776. 53.22 s [really-safe-money] added mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  777. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  778. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  779. 53.22 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  780. 53.22 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  781. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  782. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  783. 53.22 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  784. 53.22 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  785. 53.22 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  786. 53.22 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  787. 53.22 s [really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  788. 53.22 s [really-safe-money] added 141 mutations
  789. 54.86 s [really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.p_o )
  790. 54.88 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  791. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  792. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  793. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  794. 54.88 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  795. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  796. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  797. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  798. 54.88 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  799. 54.88 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  800. 54.88 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  801. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  802. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  803. 54.88 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  804. 54.88 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  805. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  806. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  807. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  808. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  809. 54.88 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  810. 54.88 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  811. 54.88 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  812. 54.88 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  813. 54.88 s [really-safe-money] added mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  814. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  815. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  816. 54.88 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  817. 54.88 s [really-safe-money] added mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  818. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  819. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  820. 54.88 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  821. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  822. 54.88 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  823. 54.88 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  824. 54.88 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  825. 54.88 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  826. 54.88 s [really-safe-money] added 35 mutations
  827. 55.30 s [really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.p_o )
  828. 55.31 s [really-safe-money] mutation: instrumenting Money.Currency
  829. 55.31 s [really-safe-money] added 0 mutations
  830. 55.69 s [really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.p_o )
  831. 55.70 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  832. 55.70 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  833. 55.70 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:132:3-24
  834. 55.70 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  835. 55.70 s [really-safe-money] added mutation Arith at src/Money/ConversionRate.hs:127:70-79
  836. 55.70 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  837. 55.70 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  838. 55.70 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  839. 55.70 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  840. 55.70 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  841. 55.70 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  842. 55.70 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  843. 55.70 s [really-safe-money] added mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  844. 55.70 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  845. 55.70 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  846. 55.70 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  847. 55.70 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  848. 55.70 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  849. 55.70 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  850. 55.70 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  851. 55.70 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  852. 55.70 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  853. 55.70 s [really-safe-money] added 21 mutations
  854. 56.02 s [really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.p_o )
  855. 56.02 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  856. 56.02 s [really-safe-money] added 0 mutations
  857. 56.19 s [really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.p_o )
  858. 56.25 s [really-safe-money] mutation: instrumenting Money.Amount
  859. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  860. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  861. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  862. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  863. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:720:6-40
  864. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  865. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:721:10-44
  866. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  867. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  868. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  869. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  870. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  871. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:577:39-63
  872. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  873. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:543:11-88
  874. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  875. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  876. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:544:10-23
  877. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  878. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  879. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  880. 56.25 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:546:14-66
  881. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  882. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:517:11-18
  883. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  884. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  885. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  886. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:518:10-15
  887. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  888. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  889. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  890. 56.25 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:520:14-66
  891. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  892. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:475:11-18
  893. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  894. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  895. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:476:10-23
  896. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  897. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  898. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  899. 56.25 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:478:14-66
  900. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  901. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  902. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  903. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  904. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  905. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:389:5-10
  906. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  907. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  908. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  909. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:392:28-71
  910. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  911. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  912. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  913. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  914. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  915. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:399:18-83
  916. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  917. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  918. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  919. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  920. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  921. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  922. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:320:5-10
  923. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  924. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  925. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  926. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:323:26-67
  927. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  928. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  929. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  930. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  931. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  932. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  933. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  934. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  935. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  936. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:332:14-40
  937. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  938. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  939. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  940. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  941. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  942. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  943. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  944. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  945. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:341:26-91
  946. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  947. 56.25 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  948. 56.25 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  949. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  950. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  951. 56.25 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:494:29-94
  952. 56.25 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  953. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  954. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  955. 56.25 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:495:10-23
  956. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  957. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  958. 56.27 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  959. 56.27 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:497:14-66
  960. 56.27 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  961. 56.27 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:660:28-37
  962. 56.27 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:661:19-28
  963. 56.27 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  964. 56.27 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  965. 56.27 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  966. 56.27 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
  967. 56.27 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  968. 56.27 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:666:27-44
  969. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  970. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  971. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:681:12-37
  972. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  973. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  974. 56.27 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  975. 56.27 s [really-safe-money] added mutation MaybeOp at src/Money/Amount.hs:683:16-27
  976. 56.27 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  977. 56.27 s [really-safe-money] added mutation Arith at src/Money/Amount.hs:762:40-49
  978. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  979. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  980. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:806:79-92
  981. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  982. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  983. 56.27 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  984. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  985. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  986. 56.27 s [really-safe-money] added mutation Cmp at src/Money/Amount.hs:607:15-22
  987. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  988. 56.27 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  989. 56.27 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  990. 56.27 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  991. 56.27 s [really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
  992. 56.27 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  993. 56.27 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  994. 56.28 s [really-safe-money] added 135 mutations
  995. 58.29 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.p_o )
  996. 58.36 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  997. 58.36 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  998. 58.36 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  999. 58.36 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  1000. 58.36 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1001. 58.36 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1002. 58.36 s [really-safe-money] added mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  1003. 58.36 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  1004. 58.36 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  1005. 58.36 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  1006. 58.36 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  1007. 58.36 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1008. 58.36 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1009. 58.36 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  1010. 58.36 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  1011. 58.36 s [really-safe-money] added mutation Arith at src/Money/MultiAmount.hs:182:15-106
  1012. 58.36 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  1013. 58.36 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  1014. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  1015. 58.37 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  1016. 58.37 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  1017. 58.37 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  1018. 58.37 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  1019. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  1020. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  1021. 58.37 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  1022. 58.37 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  1023. 58.37 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  1024. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  1025. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  1026. 58.37 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  1027. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  1028. 58.37 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  1029. 58.37 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  1030. 58.37 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  1031. 58.37 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  1032. 58.37 s [really-safe-money] added 35 mutations
  1033. 59.01 s [really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.p_o )
  1034. 59.02 s [really-safe-money] mutation: instrumenting Money.AmountOf
  1035. 59.02 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1036. 59.02 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1037. 59.02 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1038. 59.02 s [really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  1039. 59.03 s [really-safe-money] added 4 mutations
  1040. 59.36 s [really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.p_o )
  1041. 59.38 s [really-safe-money] mutation: instrumenting Money.Account
  1042. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1043. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1044. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1045. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
  1046. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  1047. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
  1048. 59.38 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  1049. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1050. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1051. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1052. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1053. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1054. 59.38 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
  1055. 59.38 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1056. 59.38 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1057. 59.38 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:451:14-23
  1058. 59.38 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  1059. 59.38 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  1060. 59.38 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  1061. 59.38 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1062. 59.38 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1063. 59.38 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:455:14-23
  1064. 59.38 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  1065. 59.38 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  1066. 59.38 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  1067. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1068. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1069. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1070. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
  1071. 59.39 s [really-safe-money] added mutation MaybeOp at src/Money/Account.hs:523:16-25
  1072. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1073. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1074. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
  1075. 59.39 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  1076. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1077. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1078. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:495:12-18
  1079. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  1080. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  1081. 59.39 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  1082. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1083. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1084. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
  1085. 59.39 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  1086. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1087. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1088. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:503:10-16
  1089. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  1090. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  1091. 59.39 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  1092. 59.39 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  1093. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1094. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1095. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:233:14-20
  1096. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  1097. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  1098. 59.39 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  1099. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  1100. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
  1101. 59.39 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  1102. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1103. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1104. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:197:14-20
  1105. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  1106. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  1107. 59.39 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  1108. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  1109. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
  1110. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  1111. 59.39 s [really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
  1112. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1113. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1114. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:123:10-23
  1115. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  1116. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  1117. 59.39 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  1118. 59.39 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  1119. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1120. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1121. 59.39 s [really-safe-money] added mutation Cmp at src/Money/Account.hs:131:20-26
  1122. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  1123. 59.39 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  1124. 59.39 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  1125. 59.39 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  1126. 59.39 s [really-safe-money] added mutation Arith at src/Money/Account.hs:341:11-18
  1127. 59.39 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  1128. 59.39 s [really-safe-money] added mutation Arith at src/Money/Account.hs:378:11-18
  1129. 59.39 s [really-safe-money] added 87 mutations
  1130. 60.27 s [really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.p_o )
  1131. 60.28 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  1132. 60.28 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1133. 60.28 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1134. 60.28 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  1135. 60.28 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1136. 60.28 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1137. 60.28 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  1138. 60.28 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  1139. 60.28 s [really-safe-money] added mutation Arith at src/Money/MultiAccount.hs:192:19-51
  1140. 60.28 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  1141. 60.28 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  1142. 60.28 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  1143. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  1144. 60.29 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  1145. 60.29 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  1146. 60.29 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  1147. 60.29 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  1148. 60.29 s [really-safe-money] added mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  1149. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  1150. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  1151. 60.29 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  1152. 60.29 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  1153. 60.29 s [really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  1154. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  1155. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  1156. 60.29 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  1157. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  1158. 60.29 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  1159. 60.29 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  1160. 60.29 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  1161. 60.29 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  1162. 60.29 s [really-safe-money] added 30 mutations
  1163. 60.82 s [really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.p_o )
  1164. 60.83 s [really-safe-money] mutation: instrumenting Money.AccountOf
  1165. 60.83 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1166. 60.83 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1167. 60.83 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1168. 60.83 s [really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  1169. 60.83 s [really-safe-money] added 4 mutations
  1170. 61.12 s [really-safe-money] [12 of 12] Compiling Paths_really_safe_money ( dist/build/autogen/Paths_really_safe_money.hs, dist/build/Paths_really_safe_money.p_o )
  1171. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  1172. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  1173. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  1174. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  1175. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  1176. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  1177. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  1178. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  1179. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  1180. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  1181. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  1182. 61.50 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  1183. 62.25 s [really-safe-money] mutation-nix: manifest output at /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest:
  1184. 62.25 s [really-safe-money] total 384
  1185. 62.25 s [really-safe-money] drwxr-xr-x 2 nixbld nixbld 4096 May 15 05:40 .
  1186. 62.25 s [really-safe-money] drwxrwxr-t 238 nobody nixbld 24576 May 15 05:40 ..
  1187. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 66992 May 15 05:40 Money.Account.json
  1188. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 5043 May 15 05:40 Money.AccountOf.json
  1189. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 84451 May 15 05:40 Money.Amount.json
  1190. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 4850 May 15 05:40 Money.AmountOf.json
  1191. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 12979 May 15 05:40 Money.ConversionRate.json
  1192. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 15 05:40 Money.ConversionRateOf.json
  1193. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 15 05:40 Money.Currency.json
  1194. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 22648 May 15 05:40 Money.MultiAccount.json
  1195. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 25712 May 15 05:40 Money.MultiAmount.json
  1196. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 18786 May 15 05:40 Money.QuantisationFactor.json
  1197. 62.25 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 88354 May 15 05:40 Numeric.DecimalLiteral.json
  1198. 62.25 s [really-safe-money] mutation-nix: building remaining components with plugin silenced
  1199. 62.29 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  1200. 62.29 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  1201. 63.67 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  1202. 63.67 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  1203. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  1204. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  1205. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  1206. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  1207. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  1208. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  1209. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  1210. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  1211. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  1212. 63.73 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  1213. 64.43 s [really-safe-money] Phase: haddockPhase
  1214. 64.43 s [really-safe-money] Phase: installPhase
  1215. 64.47 s [really-safe-money] Installing library in /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1216. 64.76 s [really-safe-money] Phase: fixupPhase
  1217. 64.78 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0
  1218. 64.79 s [really-safe-money] shrinking /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9-ghc9.10.3.so
  1219. 64.80 s [really-safe-money] checking for references to /build/ in /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0...
  1220. 64.83 s [really-safe-money] patching script interpreter paths in /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0
  1221. 64.83 s [really-safe-money] stripping (with command strip and flags -S -p) in /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/lib /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0/bin
  1222. 64.99 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest
  1223. 64.99 s [really-safe-money] checking for references to /build/ in /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest...
  1224. 65.01 s [really-safe-money] patching script interpreter paths in /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest
  1225. 65.09 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0
  1226. 65.61 s [post-build-hook] Pushing 2 paths (195 are already present) using zstd to cache sydtest ⏳
  1227. 65.61 s [post-build-hook]
  1228. 65.98 s [post-build-hook] Pushing /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest (324.41 KiB)
  1229. 66.08 s [post-build-hook] Pushing /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0 (14.97 MiB)
  1230. 67.68 s [post-build-hook]
  1231. 67.68 s [post-build-hook] All done.
  1232. 67.69 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest /nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0
  1233. 67.73 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1234. 67.75 s [post-build-hook] copying 2 paths...
  1235. 67.75 s [post-build-hook] copying path '/nix/store/bgldvhr1xw9gj84n3dsnyj2qzqk393qj-really-safe-money-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
  1236. 67.75 s [post-build-hook] copying path '/nix/store/mwzjwndyjnkrkp397zlmw1xfpmvki6nm-really-safe-money-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1237. 70.86 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1238. 70.96 s [post-build-hook] copying 0 paths...
  1239. 70.99 s Progress: 1 of 7 built
  1240. 71.02 s Building really-safe-money-autodocodec-source
  1241. 71.05 s Building really-safe-money-gen-source
  1242. 71.23 s [really-safe-money-autodocodec-source] Phase: setupCompilerEnvironmentPhase
  1243. 71.23 s [really-safe-money-autodocodec-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1244. 71.33 s [really-safe-money-gen-source] Phase: setupCompilerEnvironmentPhase
  1245. 71.33 s [really-safe-money-gen-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1246. 71.48 s [really-safe-money-autodocodec-source] Phase: unpackPhase
  1247. 71.49 s [really-safe-money-autodocodec-source] unpacking source archive /nix/store/8krpxqimxqvympfqdqxg1jzjg2jrcglb-really-safe-money-autodocodec
  1248. 71.49 s [really-safe-money-autodocodec-source] source root is really-safe-money-autodocodec
  1249. 71.50 s [really-safe-money-autodocodec-source] Phase: patchPhase
  1250. 71.51 s [really-safe-money-autodocodec-source] Phase: compileBuildDriverPhase
  1251. 71.51 s [really-safe-money-autodocodec-source] setupCompileFlags: -package-db=/build/tmp.PfkHP6xjg4/setup-package.conf.d -threaded
  1252. 71.56 s [really-safe-money-autodocodec-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.PfkHP6xjg4/Main.o )
  1253. 71.61 s [really-safe-money-autodocodec-source] [2 of 2] Linking Setup
  1254. 71.65 s [really-safe-money-gen-source] Phase: unpackPhase
  1255. 71.66 s [really-safe-money-gen-source] unpacking source archive /nix/store/igm3hbdpcwgfbdx9yjyf6d68w1ifih08-really-safe-money-gen
  1256. 71.66 s [really-safe-money-gen-source] source root is really-safe-money-gen
  1257. 71.67 s [really-safe-money-gen-source] Phase: patchPhase
  1258. 71.68 s [really-safe-money-gen-source] Phase: compileBuildDriverPhase
  1259. 71.68 s [really-safe-money-gen-source] setupCompileFlags: -package-db=/build/tmp.9DMyDMI3No/setup-package.conf.d -threaded
  1260. 71.73 s [really-safe-money-gen-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.9DMyDMI3No/Main.o )
  1261. 71.78 s [really-safe-money-gen-source] [2 of 2] Linking Setup
  1262. 72.82 s [really-safe-money-autodocodec-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  1263. 72.83 s [really-safe-money-autodocodec-source] Phase: configurePhase
  1264. 72.83 s [really-safe-money-autodocodec-source] configureFlags: --verbose --prefix=/nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-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.PfkHP6xjg4/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
  1265. 72.84 s [really-safe-money-autodocodec-source] Using Parsec parser
  1266. 72.84 s [really-safe-money-autodocodec-source] Configuring really-safe-money-autodocodec-0.0.0.0...
  1267. 72.98 s [really-safe-money-gen-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  1268. 72.99 s [really-safe-money-gen-source] Phase: configurePhase
  1269. 72.99 s [really-safe-money-gen-source] configureFlags: --verbose --prefix=/nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-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.9DMyDMI3No/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
  1270. 73.00 s [really-safe-money-gen-source] Using Parsec parser
  1271. 73.00 s [really-safe-money-gen-source] Configuring really-safe-money-gen-0.0.0.0...
  1272. 73.39 s [really-safe-money-autodocodec-source] Dependency autodocodec: using autodocodec-0.5.0.0
  1273. 73.39 s [really-safe-money-autodocodec-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1274. 73.39 s [really-safe-money-autodocodec-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1275. 73.39 s [really-safe-money-autodocodec-source] Source component graph: component lib
  1276. 73.39 s [really-safe-money-autodocodec-source] Configured component graph:
  1277. 73.39 s [really-safe-money-autodocodec-source] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1278. 73.39 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1279. 73.39 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  1280. 73.39 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1281. 73.39 s [really-safe-money-autodocodec-source] Linked component graph:
  1282. 73.39 s [really-safe-money-autodocodec-source] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1283. 73.39 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1284. 73.39 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  1285. 73.39 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1286. 73.39 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
  1287. 73.39 s [really-safe-money-autodocodec-source] Ready component graph:
  1288. 73.39 s [really-safe-money-autodocodec-source] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1289. 73.39 s [really-safe-money-autodocodec-source] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1290. 73.39 s [really-safe-money-autodocodec-source] depends base-4.20.2.0-64da
  1291. 73.39 s [really-safe-money-autodocodec-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1292. 73.39 s [really-safe-money-autodocodec-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1293. 73.39 s [really-safe-money-autodocodec-source] Using compiler: ghc-9.10.3
  1294. 73.39 s [really-safe-money-autodocodec-source] Using install prefix:
  1295. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0
  1296. 73.39 s [really-safe-money-autodocodec-source] Executables installed in:
  1297. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0/bin
  1298. 73.39 s [really-safe-money-autodocodec-source] Libraries installed in:
  1299. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-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
  1300. 73.39 s [really-safe-money-autodocodec-source] Dynamic Libraries installed in:
  1301. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1302. 73.39 s [really-safe-money-autodocodec-source] Private executables installed in:
  1303. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-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
  1304. 73.39 s [really-safe-money-autodocodec-source] Data files installed in:
  1305. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-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
  1306. 73.39 s [really-safe-money-autodocodec-source] Documentation installed in: /share/doc/really-safe-money-autodocodec-0.0.0.0
  1307. 73.39 s [really-safe-money-autodocodec-source] Configuration files installed in:
  1308. 73.39 s [really-safe-money-autodocodec-source] /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0/etc
  1309. 73.39 s [really-safe-money-autodocodec-source] No alex found
  1310. 73.39 s [really-safe-money-autodocodec-source] Using ar found on system at:
  1311. 73.39 s [really-safe-money-autodocodec-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1312. 73.39 s [really-safe-money-autodocodec-source] No c2hs found
  1313. 73.39 s [really-safe-money-autodocodec-source] No cpphs found
  1314. 73.39 s [really-safe-money-autodocodec-source] No doctest found
  1315. 73.39 s [really-safe-money-autodocodec-source] Using gcc version 14.3.0 given by user at:
  1316. 73.39 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1317. 73.39 s [really-safe-money-autodocodec-source] Using ghc version 9.10.3 found on system at:
  1318. 73.39 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1319. 73.39 s [really-safe-money-autodocodec-source] Using ghc-pkg version 9.10.3 found on system at:
  1320. 73.39 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1321. 73.39 s [really-safe-money-autodocodec-source] No ghcjs found
  1322. 73.39 s [really-safe-money-autodocodec-source] No ghcjs-pkg found
  1323. 73.39 s [really-safe-money-autodocodec-source] No greencard found
  1324. 73.39 s [really-safe-money-autodocodec-source] Using haddock version 2.31.1 found on system at:
  1325. 73.39 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1326. 73.39 s [really-safe-money-autodocodec-source] No happy found
  1327. 73.39 s [really-safe-money-autodocodec-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  1328. 73.39 s [really-safe-money-autodocodec-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1329. 73.39 s [really-safe-money-autodocodec-source] No hmake found
  1330. 73.39 s [really-safe-money-autodocodec-source] Using hpc version 0.69 found on system at:
  1331. 73.39 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1332. 73.39 s [really-safe-money-autodocodec-source] Using hsc2hs version 0.68.10 found on system at:
  1333. 73.39 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1334. 73.39 s [really-safe-money-autodocodec-source] Using hscolour version 1.25 found on system at:
  1335. 73.39 s [really-safe-money-autodocodec-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1336. 73.39 s [really-safe-money-autodocodec-source] No jhc found
  1337. 73.39 s [really-safe-money-autodocodec-source] Using ld found on system at:
  1338. 73.39 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1339. 73.39 s [really-safe-money-autodocodec-source] No pkg-config found
  1340. 73.39 s [really-safe-money-autodocodec-source] Using runghc version 9.10.3 found on system at:
  1341. 73.39 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1342. 73.39 s [really-safe-money-autodocodec-source] Using strip version 2.44 found on system at:
  1343. 73.39 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1344. 73.39 s [really-safe-money-autodocodec-source] Using tar found on system at:
  1345. 73.39 s [really-safe-money-autodocodec-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1346. 73.39 s [really-safe-money-autodocodec-source] No uhc found
  1347. 73.59 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1348. 73.59 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1349. 73.59 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  1350. 73.59 s [really-safe-money-gen-source] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  1351. 73.59 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1352. 73.59 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1353. 73.59 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  1354. 73.59 s [really-safe-money-gen-source] Dependency criterion: using criterion-1.6.4.0
  1355. 73.59 s [really-safe-money-gen-source] Dependency deepseq: using deepseq-1.5.0.0
  1356. 73.59 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  1357. 73.59 s [really-safe-money-gen-source] Dependency genvalidity-criterion: using genvalidity-criterion-1.1.0.0
  1358. 73.59 s [really-safe-money-gen-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  1359. 73.59 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1360. 73.59 s [really-safe-money-gen-source] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  1361. 73.59 s [really-safe-money-gen-source] Dependency vector: using vector-0.13.2.0
  1362. 73.59 s [really-safe-money-gen-source] Source component graph:
  1363. 73.59 s [really-safe-money-gen-source] component lib
  1364. 73.59 s [really-safe-money-gen-source] component bench:really-safe-money-bench dependency lib
  1365. 73.59 s [really-safe-money-gen-source] Configured component graph:
  1366. 73.59 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1367. 73.59 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1368. 73.59 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1369. 73.59 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1370. 73.59 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1371. 73.59 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1372. 73.59 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1373. 73.59 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1374. 73.59 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1375. 73.59 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1376. 73.59 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  1377. 73.59 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1378. 73.59 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1379. 73.59 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1380. 73.60 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1381. 73.60 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1382. 73.60 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1383. 73.60 s [really-safe-money-gen-source] Linked component graph:
  1384. 73.60 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1385. 73.60 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1386. 73.60 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1387. 73.60 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1388. 73.60 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1389. 73.60 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1390. 73.60 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
  1391. 73.60 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1392. 73.60 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1393. 73.60 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  1394. 73.60 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1395. 73.60 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  1396. 73.60 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1397. 73.60 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1398. 73.60 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1399. 73.60 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1400. 73.60 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1401. 73.60 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1402. 73.60 s [really-safe-money-gen-source] Ready component graph:
  1403. 73.60 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1404. 73.60 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1405. 73.60 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  1406. 73.60 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1407. 73.60 s [really-safe-money-gen-source] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1408. 73.60 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1409. 73.60 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  1410. 73.60 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1411. 73.60 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  1412. 73.60 s [really-safe-money-gen-source] depends criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  1413. 73.60 s [really-safe-money-gen-source] depends deepseq-1.5.0.0-9a2c
  1414. 73.60 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1415. 73.60 s [really-safe-money-gen-source] depends genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  1416. 73.60 s [really-safe-money-gen-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1417. 73.60 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1418. 73.60 s [really-safe-money-gen-source] depends really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  1419. 73.60 s [really-safe-money-gen-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1420. 73.60 s [really-safe-money-gen-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1421. 73.60 s [really-safe-money-gen-source] Using compiler: ghc-9.10.3
  1422. 73.60 s [really-safe-money-gen-source] Using install prefix:
  1423. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0
  1424. 73.60 s [really-safe-money-gen-source] Executables installed in:
  1425. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0/bin
  1426. 73.60 s [really-safe-money-gen-source] Libraries installed in:
  1427. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-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
  1428. 73.60 s [really-safe-money-gen-source] Dynamic Libraries installed in:
  1429. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1430. 73.60 s [really-safe-money-gen-source] Private executables installed in:
  1431. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-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
  1432. 73.60 s [really-safe-money-gen-source] Data files installed in:
  1433. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-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
  1434. 73.60 s [really-safe-money-gen-source] Documentation installed in: /share/doc/really-safe-money-gen-0.0.0.0
  1435. 73.60 s [really-safe-money-gen-source] Configuration files installed in:
  1436. 73.60 s [really-safe-money-gen-source] /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0/etc
  1437. 73.60 s [really-safe-money-gen-source] No alex found
  1438. 73.60 s [really-safe-money-gen-source] Using ar found on system at:
  1439. 73.60 s [really-safe-money-gen-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1440. 73.60 s [really-safe-money-gen-source] No c2hs found
  1441. 73.60 s [really-safe-money-gen-source] No cpphs found
  1442. 73.60 s [really-safe-money-gen-source] No doctest found
  1443. 73.60 s [really-safe-money-gen-source] Using gcc version 14.3.0 given by user at:
  1444. 73.60 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1445. 73.60 s [really-safe-money-gen-source] Using ghc version 9.10.3 found on system at:
  1446. 73.60 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1447. 73.60 s [really-safe-money-gen-source] Using ghc-pkg version 9.10.3 found on system at:
  1448. 73.60 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1449. 73.60 s [really-safe-money-gen-source] No ghcjs found
  1450. 73.60 s [really-safe-money-gen-source] No ghcjs-pkg found
  1451. 73.60 s [really-safe-money-gen-source] No greencard found
  1452. 73.60 s [really-safe-money-gen-source] Using haddock version 2.31.1 found on system at:
  1453. 73.60 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1454. 73.60 s [really-safe-money-gen-source] No happy found
  1455. 73.60 s [really-safe-money-gen-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  1456. 73.60 s [really-safe-money-gen-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1457. 73.60 s [really-safe-money-gen-source] No hmake found
  1458. 73.60 s [really-safe-money-gen-source] Using hpc version 0.69 found on system at:
  1459. 73.60 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1460. 73.60 s [really-safe-money-gen-source] Using hsc2hs version 0.68.10 found on system at:
  1461. 73.60 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1462. 73.60 s [really-safe-money-gen-source] Using hscolour version 1.25 found on system at:
  1463. 73.60 s [really-safe-money-gen-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1464. 73.60 s [really-safe-money-gen-source] No jhc found
  1465. 73.60 s [really-safe-money-gen-source] Using ld found on system at:
  1466. 73.60 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1467. 73.60 s [really-safe-money-gen-source] No pkg-config found
  1468. 73.60 s [really-safe-money-gen-source] Using runghc version 9.10.3 found on system at:
  1469. 73.60 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1470. 73.60 s [really-safe-money-gen-source] Using strip version 2.44 found on system at:
  1471. 73.60 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1472. 73.60 s [really-safe-money-gen-source] Using tar found on system at:
  1473. 73.60 s [really-safe-money-gen-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1474. 73.60 s [really-safe-money-gen-source] No uhc found
  1475. 73.63 s [really-safe-money-autodocodec-source] Phase: buildPhase
  1476. 73.64 s [really-safe-money-autodocodec-source] Distribution quality errors:
  1477. 73.64 s [really-safe-money-autodocodec-source] [no-syn-desc] No 'synopsis' or 'description' field.
  1478. 73.64 s [really-safe-money-autodocodec-source] Distribution quality warnings:
  1479. 73.64 s [really-safe-money-autodocodec-source] [no-category] No 'category' field.
  1480. 73.64 s [really-safe-money-autodocodec-source] [no-maintainer] No 'maintainer' field.
  1481. 73.64 s [really-safe-money-autodocodec-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  1482. 73.64 s [really-safe-money-autodocodec-source] you want?
  1483. 73.64 s [really-safe-money-autodocodec-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  1484. 73.64 s [really-safe-money-autodocodec-source] - autodocodec
  1485. 73.64 s [really-safe-money-autodocodec-source] - really-safe-money
  1486. 73.64 s [really-safe-money-autodocodec-source] Please add them. There is more information at https://pvp.haskell.org/
  1487. 73.64 s [really-safe-money-autodocodec-source] Note: the public hackage server would reject this package.
  1488. 73.64 s [really-safe-money-autodocodec-source] Building source dist for really-safe-money-autodocodec-0.0.0.0...
  1489. 73.65 s [really-safe-money-autodocodec-source] Source tarball created: dist/really-safe-money-autodocodec-0.0.0.0.tar.gz
  1490. 73.66 s [really-safe-money-autodocodec-source] Phase: haddockPhase
  1491. 73.66 s [really-safe-money-autodocodec-source] Phase: installPhase
  1492. 73.67 s [really-safe-money-autodocodec-source] Phase: fixupPhase
  1493. 73.70 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0
  1494. 74.19 s [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
  1495. 74.19 s [post-build-hook]
  1496. 74.58 s [post-build-hook] Pushing /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0 (5.45 KiB)
  1497. 75.81 s [post-build-hook]
  1498. 75.81 s [post-build-hook] All done.
  1499. 75.82 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0
  1500. 75.86 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1501. 75.87 s [post-build-hook] copying 1 paths...
  1502. 75.87 s [post-build-hook] copying path '/nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1503. 76.10 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1504. 76.21 s [post-build-hook] copying 0 paths...
  1505. 76.26 s Progress: 2 of 6 built (1 building)
  1506. 76.27 s Building really-safe-money-autodocodec
  1507. 76.27 s [really-safe-money-gen-source] Phase: buildPhase
  1508. 76.27 s [really-safe-money-gen-source] Distribution quality errors:
  1509. 76.27 s [really-safe-money-gen-source] [no-syn-desc] No 'synopsis' or 'description' field.
  1510. 76.27 s [really-safe-money-gen-source] Distribution quality warnings:
  1511. 76.27 s [really-safe-money-gen-source] [no-category] No 'category' field.
  1512. 76.27 s [really-safe-money-gen-source] [no-maintainer] No 'maintainer' field.
  1513. 76.27 s [really-safe-money-gen-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  1514. 76.27 s [really-safe-money-gen-source] you want?
  1515. 76.27 s [really-safe-money-gen-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  1516. 76.27 s [really-safe-money-gen-source] - QuickCheck
  1517. 76.27 s [really-safe-money-gen-source] - genvalidity
  1518. 76.27 s [really-safe-money-gen-source] - genvalidity-containers
  1519. 76.27 s [really-safe-money-gen-source] - really-safe-money
  1520. 76.27 s [really-safe-money-gen-source] Please add them. There is more information at https://pvp.haskell.org/
  1521. 76.27 s [really-safe-money-gen-source] Note: the public hackage server would reject this package.
  1522. 76.27 s [really-safe-money-gen-source] Building source dist for really-safe-money-gen-0.0.0.0...
  1523. 76.27 s [really-safe-money-gen-source] Source tarball created: dist/really-safe-money-gen-0.0.0.0.tar.gz
  1524. 76.27 s [really-safe-money-gen-source] Phase: haddockPhase
  1525. 76.27 s [really-safe-money-gen-source] Phase: installPhase
  1526. 76.27 s [really-safe-money-gen-source] Phase: fixupPhase
  1527. 76.30 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0
  1528. 76.66 s [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
  1529. 76.66 s [post-build-hook]
  1530. 76.99 s [post-build-hook] Pushing /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0 (16.64 KiB)
  1531. 77.88 s [post-build-hook]
  1532. 77.88 s [post-build-hook] All done.
  1533. 77.89 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0
  1534. 77.93 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1535. 77.94 s [post-build-hook] copying 1 paths...
  1536. 77.94 s [post-build-hook] copying path '/nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  1537. 78.19 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1538. 78.29 s [post-build-hook] copying 0 paths...
  1539. 78.31 s Progress: 3 of 6 built (1 building)
  1540. 78.31 s [really-safe-money-autodocodec] Phase: setupCompilerEnvironmentPhase
  1541. 78.31 s [really-safe-money-autodocodec] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1542. 78.31 s [really-safe-money-autodocodec] Phase: unpackPhase
  1543. 78.31 s [really-safe-money-autodocodec] unpacking source archive /nix/store/4gza7cscnfxrxrvwd372fc51h6fh8d00-really-safe-money-autodocodec-source-0.0.0.0/really-safe-money-autodocodec-0.0.0.0.tar.gz
  1544. 78.31 s [really-safe-money-autodocodec] source root is really-safe-money-autodocodec-0.0.0.0
  1545. 78.31 s [really-safe-money-autodocodec] setting SOURCE_DATE_EPOCH to timestamp 1778823637 of file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs"
  1546. 78.31 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
  1547. 78.31 s [really-safe-money-autodocodec] Phase: patchPhase
  1548. 78.31 s [really-safe-money-autodocodec] Phase: compileBuildDriverPhase
  1549. 78.31 s [really-safe-money-autodocodec] setupCompileFlags: -package-db=/build/tmp.cvh0UQekAL/setup-package.conf.d -threaded
  1550. 78.31 s [really-safe-money-autodocodec] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.cvh0UQekAL/Main.o )
  1551. 78.31 s [really-safe-money-autodocodec] [2 of 2] Linking Setup
  1552. 78.31 s [really-safe-money-autodocodec] Phase: updateAutotoolsGnuConfigScriptsPhase
  1553. 78.31 s [really-safe-money-autodocodec] Phase: configurePhase
  1554. 78.31 s [really-safe-money-autodocodec] configureFlags: --verbose --prefix=/nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.cvh0UQekAL/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
  1555. 78.31 s [really-safe-money-autodocodec] Using Parsec parser
  1556. 78.31 s [really-safe-money-autodocodec] Configuring really-safe-money-autodocodec-0.0.0.0...
  1557. 78.58 s [really-safe-money-autodocodec] Dependency autodocodec: using autodocodec-0.5.0.0
  1558. 78.58 s [really-safe-money-autodocodec] Dependency base >=4.7 && <5: using base-4.20.2.0
  1559. 78.58 s [really-safe-money-autodocodec] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1560. 78.58 s [really-safe-money-autodocodec] Source component graph: component lib
  1561. 78.58 s [really-safe-money-autodocodec] Configured component graph:
  1562. 78.58 s [really-safe-money-autodocodec] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1563. 78.58 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1564. 78.58 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  1565. 78.58 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1566. 78.58 s [really-safe-money-autodocodec] Linked component graph:
  1567. 78.58 s [really-safe-money-autodocodec] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1568. 78.58 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1569. 78.58 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  1570. 78.58 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1571. 78.58 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
  1572. 78.58 s [really-safe-money-autodocodec] Ready component graph:
  1573. 78.58 s [really-safe-money-autodocodec] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  1574. 78.58 s [really-safe-money-autodocodec] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  1575. 78.58 s [really-safe-money-autodocodec] depends base-4.20.2.0-64da
  1576. 78.58 s [really-safe-money-autodocodec] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1577. 78.58 s [really-safe-money-autodocodec] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1578. 78.58 s [really-safe-money-autodocodec] Using compiler: ghc-9.10.3
  1579. 78.58 s [really-safe-money-autodocodec] Using install prefix:
  1580. 78.58 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0
  1581. 78.58 s [really-safe-money-autodocodec] Executables installed in:
  1582. 78.58 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0/bin
  1583. 78.58 s [really-safe-money-autodocodec] Libraries installed in:
  1584. 78.58 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-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
  1585. 78.58 s [really-safe-money-autodocodec] Dynamic Libraries installed in:
  1586. 78.58 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1587. 78.58 s [really-safe-money-autodocodec] Private executables installed in:
  1588. 78.58 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-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
  1589. 78.58 s [really-safe-money-autodocodec] Data files installed in:
  1590. 78.58 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-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
  1591. 78.58 s [really-safe-money-autodocodec] Documentation installed in:
  1592. 78.59 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-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
  1593. 78.59 s [really-safe-money-autodocodec] Configuration files installed in:
  1594. 78.59 s [really-safe-money-autodocodec] /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0/etc
  1595. 78.59 s [really-safe-money-autodocodec] No alex found
  1596. 78.59 s [really-safe-money-autodocodec] Using ar found on system at:
  1597. 78.59 s [really-safe-money-autodocodec] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1598. 78.59 s [really-safe-money-autodocodec] No c2hs found
  1599. 78.59 s [really-safe-money-autodocodec] No cpphs found
  1600. 78.59 s [really-safe-money-autodocodec] No doctest found
  1601. 78.59 s [really-safe-money-autodocodec] Using gcc version 14.3.0 given by user at:
  1602. 78.59 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1603. 78.59 s [really-safe-money-autodocodec] Using ghc version 9.10.3 found on system at:
  1604. 78.59 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1605. 78.59 s [really-safe-money-autodocodec] Using ghc-pkg version 9.10.3 found on system at:
  1606. 78.59 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1607. 78.59 s [really-safe-money-autodocodec] No ghcjs found
  1608. 78.59 s [really-safe-money-autodocodec] No ghcjs-pkg found
  1609. 78.59 s [really-safe-money-autodocodec] No greencard found
  1610. 78.59 s [really-safe-money-autodocodec] Using haddock version 2.31.1 found on system at:
  1611. 78.59 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1612. 78.59 s [really-safe-money-autodocodec] No happy found
  1613. 78.59 s [really-safe-money-autodocodec] Using haskell-suite found on system at: haskell-suite-dummy-location
  1614. 78.59 s [really-safe-money-autodocodec] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1615. 78.59 s [really-safe-money-autodocodec] No hmake found
  1616. 78.59 s [really-safe-money-autodocodec] Using hpc version 0.69 found on system at:
  1617. 78.59 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1618. 78.59 s [really-safe-money-autodocodec] Using hsc2hs version 0.68.10 found on system at:
  1619. 78.59 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1620. 78.59 s [really-safe-money-autodocodec] Using hscolour version 1.25 found on system at:
  1621. 78.59 s [really-safe-money-autodocodec] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1622. 78.59 s [really-safe-money-autodocodec] No jhc found
  1623. 78.59 s [really-safe-money-autodocodec] Using ld found on system at:
  1624. 78.59 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1625. 78.59 s [really-safe-money-autodocodec] No pkg-config found
  1626. 78.59 s [really-safe-money-autodocodec] Using runghc version 9.10.3 found on system at:
  1627. 78.59 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1628. 78.59 s [really-safe-money-autodocodec] Using strip version 2.44 found on system at:
  1629. 78.59 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1630. 78.59 s [really-safe-money-autodocodec] Using tar found on system at:
  1631. 78.59 s [really-safe-money-autodocodec] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1632. 78.59 s [really-safe-money-autodocodec] No uhc found
  1633. 78.82 s [really-safe-money-autodocodec] Phase: buildPhase
  1634. 78.82 s [really-safe-money-autodocodec] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest
  1635. 78.88 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  1636. 78.88 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  1637. 79.03 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 )
  1638. 79.11 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  1639. 79.14 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1640. 79.14 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1641. 79.14 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1642. 79.14 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1643. 79.14 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1644. 79.14 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1645. 79.14 s [really-safe-money-autodocodec] added 6 mutations
  1646. 79.61 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 )
  1647. 79.62 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  1648. 79.62 s [really-safe-money-autodocodec] added 0 mutations
  1649. 79.65 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 )
  1650. 79.66 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  1651. 79.66 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1652. 79.66 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1653. 79.66 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1654. 79.66 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1655. 79.66 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1656. 79.66 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1657. 79.66 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1658. 79.66 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  1659. 79.66 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1660. 79.66 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1661. 79.66 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1662. 79.66 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1663. 79.66 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1664. 79.66 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1665. 79.66 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1666. 79.66 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  1667. 79.66 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1668. 79.66 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1669. 79.66 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1670. 79.66 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1671. 79.66 s [really-safe-money-autodocodec] added 20 mutations
  1672. 79.80 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 )
  1673. 79.81 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  1674. 79.81 s [really-safe-money-autodocodec] added 0 mutations
  1675. 79.84 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 )
  1676. 79.84 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  1677. 79.84 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1678. 79.84 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1679. 79.84 s [really-safe-money-autodocodec] added 2 mutations
  1680. 79.89 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 )
  1681. 79.90 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  1682. 79.90 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1683. 79.90 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1684. 79.90 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1685. 79.90 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1686. 79.90 s [really-safe-money-autodocodec] added 4 mutations
  1687. 79.95 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 )
  1688. 80.22 s [really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.p_o )
  1689. 80.23 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  1690. 80.28 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1691. 80.28 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  1692. 80.28 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1693. 80.28 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  1694. 80.28 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1695. 80.28 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  1696. 80.28 s [really-safe-money-autodocodec] added 6 mutations
  1697. 80.86 s [really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.p_o )
  1698. 80.86 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  1699. 80.86 s [really-safe-money-autodocodec] added 0 mutations
  1700. 80.98 s [really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.p_o )
  1701. 80.98 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  1702. 80.99 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1703. 80.99 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  1704. 80.99 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1705. 80.99 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1706. 80.99 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  1707. 80.99 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1708. 80.99 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  1709. 80.99 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  1710. 80.99 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1711. 80.99 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  1712. 80.99 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1713. 80.99 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1714. 80.99 s [really-safe-money-autodocodec] added mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  1715. 80.99 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1716. 80.99 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  1717. 80.99 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  1718. 80.99 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1719. 80.99 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  1720. 80.99 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1721. 80.99 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  1722. 80.99 s [really-safe-money-autodocodec] added 20 mutations
  1723. 81.20 s [really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.p_o )
  1724. 81.20 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  1725. 81.20 s [really-safe-money-autodocodec] added 0 mutations
  1726. 81.33 s [really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.p_o )
  1727. 81.38 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  1728. 81.38 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1729. 81.38 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  1730. 81.38 s [really-safe-money-autodocodec] added 2 mutations
  1731. 81.47 s [really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.p_o )
  1732. 81.47 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  1733. 81.47 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1734. 81.47 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  1735. 81.47 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1736. 81.47 s [really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  1737. 81.47 s [really-safe-money-autodocodec] added 4 mutations
  1738. 81.61 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 )
  1739. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  1740. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  1741. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  1742. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  1743. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  1744. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  1745. 81.95 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  1746. 82.73 s [really-safe-money-autodocodec] mutation-nix: manifest output at /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest:
  1747. 82.73 s [really-safe-money-autodocodec] total 72
  1748. 82.73 s [really-safe-money-autodocodec] drwxr-xr-x 2 nixbld nixbld 4096 May 15 05:40 .
  1749. 82.73 s [really-safe-money-autodocodec] drwxrwxr-t 239 nobody nixbld 28672 May 15 05:40 ..
  1750. 82.73 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 4508 May 15 05:40 Money.Account.Codec.json
  1751. 82.73 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 15 05:40 Money.AccountOf.Codec.json
  1752. 82.73 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 16321 May 15 05:40 Money.Amount.Codec.json
  1753. 82.73 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 15 05:40 Money.AmountOf.Codec.json
  1754. 82.73 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1486 May 15 05:40 Money.QuantisationFactor.Codec.json
  1755. 82.73 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2827 May 15 05:40 Numeric.DecimalLiteral.Codec.json
  1756. 82.73 s [really-safe-money-autodocodec] mutation-nix: building remaining components with plugin silenced
  1757. 82.80 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  1758. 82.80 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  1759. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  1760. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  1761. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  1762. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  1763. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  1764. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  1765. 84.07 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  1766. 84.77 s [really-safe-money-autodocodec] Phase: haddockPhase
  1767. 84.78 s [really-safe-money-autodocodec] Phase: installPhase
  1768. 84.84 s [really-safe-money-autodocodec] Installing library in /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-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
  1769. 85.00 s [really-safe-money-autodocodec] Phase: fixupPhase
  1770. 85.02 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0
  1771. 85.03 s [really-safe-money-autodocodec] shrinking /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-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
  1772. 85.04 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0...
  1773. 85.06 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0
  1774. 85.07 s [really-safe-money-autodocodec] stripping (with command strip and flags -S -p) in /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0/lib /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0/bin
  1775. 85.11 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest
  1776. 85.11 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest...
  1777. 85.12 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest
  1778. 85.18 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0
  1779. 85.71 s [post-build-hook] Pushing 2 paths (196 are already present) using zstd to cache sydtest ⏳
  1780. 85.71 s [post-build-hook]
  1781. 86.06 s [post-build-hook] Pushing /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest (25.90 KiB)
  1782. 86.09 s [post-build-hook] Pushing /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0 (1.60 MiB)
  1783. 87.50 s [post-build-hook]
  1784. 87.54 s [post-build-hook] All done.
  1785. 87.54 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/qr7s8fpdz0c6m5jpv6qysikbbnzh7f55-really-safe-money-autodocodec-0.0.0.0
  1786. 87.57 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1787. 87.63 s [post-build-hook] copying 1 paths...
  1788. 87.63 s [post-build-hook] copying path '/nix/store/jh365dqv5xh29i8cfz2h4f1wslbf3321-really-safe-money-autodocodec-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
  1789. 87.71 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  1790. 87.83 s [post-build-hook] copying 0 paths...
  1791. 87.85 s Progress: 4 of 6 built
  1792. 87.90 s Building really-safe-money-gen
  1793. 88.25 s [really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
  1794. 88.25 s [really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  1795. 88.70 s [really-safe-money-gen] Phase: unpackPhase
  1796. 88.70 s [really-safe-money-gen] unpacking source archive /nix/store/aanh88q92cqv7hg7zcsz1xf0knsg6l42-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
  1797. 88.71 s [really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
  1798. 88.72 s [really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778823637 of file "really-safe-money-gen-0.0.0.0/test/Spec.hs"
  1799. 88.72 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
  1800. 88.72 s [really-safe-money-gen] Phase: patchPhase
  1801. 88.73 s [really-safe-money-gen] Phase: compileBuildDriverPhase
  1802. 88.73 s [really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.N2EMM8BkhK/setup-package.conf.d -threaded
  1803. 88.78 s [really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.N2EMM8BkhK/Main.o )
  1804. 88.83 s [really-safe-money-gen] [2 of 2] Linking Setup
  1805. 90.02 s [really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
  1806. 90.03 s [really-safe-money-gen] Phase: configurePhase
  1807. 90.04 s [really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-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.N2EMM8BkhK/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
  1808. 90.05 s [really-safe-money-gen] Using Parsec parser
  1809. 90.05 s [really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
  1810. 90.70 s [really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
  1811. 90.70 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  1812. 90.70 s [really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
  1813. 90.70 s [really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  1814. 90.70 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1815. 90.70 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  1816. 90.70 s [really-safe-money-gen] Dependency containers: using containers-0.7
  1817. 90.70 s [really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  1818. 90.70 s [really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  1819. 90.70 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  1820. 90.70 s [really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  1821. 90.70 s [really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
  1822. 90.70 s [really-safe-money-gen] Dependency vector: using vector-0.13.2.0
  1823. 90.70 s [really-safe-money-gen] Source component graph:
  1824. 90.70 s [really-safe-money-gen] component lib
  1825. 90.70 s [really-safe-money-gen] component test:really-safe-money-test dependency lib
  1826. 90.70 s [really-safe-money-gen] Configured component graph:
  1827. 90.70 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1828. 90.70 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1829. 90.70 s [really-safe-money-gen] include base-4.20.2.0-64da
  1830. 90.70 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1831. 90.70 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1832. 90.70 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1833. 90.70 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1834. 90.70 s [really-safe-money-gen] include base-4.20.2.0-64da
  1835. 90.70 s [really-safe-money-gen] include containers-0.7-504a
  1836. 90.70 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1837. 90.70 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1838. 90.70 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1839. 90.70 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1840. 90.70 s [really-safe-money-gen] include sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1841. 90.70 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1842. 90.70 s [really-safe-money-gen] Linked component graph:
  1843. 90.70 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1844. 90.70 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1845. 90.70 s [really-safe-money-gen] include base-4.20.2.0-64da
  1846. 90.70 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1847. 90.70 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1848. 90.70 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1849. 90.70 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
  1850. 90.70 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1851. 90.70 s [really-safe-money-gen] include base-4.20.2.0-64da
  1852. 90.70 s [really-safe-money-gen] include containers-0.7-504a
  1853. 90.70 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1854. 90.70 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1855. 90.70 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1856. 90.70 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1857. 90.70 s [really-safe-money-gen] include sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1858. 90.70 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1859. 90.70 s [really-safe-money-gen] Ready component graph:
  1860. 90.70 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1861. 90.70 s [really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  1862. 90.70 s [really-safe-money-gen] depends base-4.20.2.0-64da
  1863. 90.70 s [really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  1864. 90.70 s [really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  1865. 90.70 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1866. 90.70 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-Ls5GL9RPudG7f67os7F74b-really-safe-money-test
  1867. 90.70 s [really-safe-money-gen] depends base-4.20.2.0-64da
  1868. 90.70 s [really-safe-money-gen] depends containers-0.7-504a
  1869. 90.70 s [really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-4MUjvMP5f0h4Td7V6rG94v
  1870. 90.70 s [really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  1871. 90.70 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  1872. 90.70 s [really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
  1873. 90.70 s [really-safe-money-gen] depends sydtest-0.23.0.2-2pBpKNR1Siz5MducBHcrJ7
  1874. 90.70 s [really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  1875. 90.70 s [really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
  1876. 90.70 s [really-safe-money-gen] Using compiler: ghc-9.10.3
  1877. 90.70 s [really-safe-money-gen] Using install prefix:
  1878. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0
  1879. 90.70 s [really-safe-money-gen] Executables installed in:
  1880. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0/bin
  1881. 90.70 s [really-safe-money-gen] Libraries installed in:
  1882. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-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
  1883. 90.70 s [really-safe-money-gen] Dynamic Libraries installed in:
  1884. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  1885. 90.70 s [really-safe-money-gen] Private executables installed in:
  1886. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-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
  1887. 90.70 s [really-safe-money-gen] Data files installed in:
  1888. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-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
  1889. 90.70 s [really-safe-money-gen] Documentation installed in:
  1890. 90.70 s [really-safe-money-gen] /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
  1891. 90.70 s [really-safe-money-gen] Configuration files installed in:
  1892. 90.70 s [really-safe-money-gen] /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0/etc
  1893. 90.70 s [really-safe-money-gen] No alex found
  1894. 90.70 s [really-safe-money-gen] Using ar found on system at:
  1895. 90.70 s [really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1896. 90.70 s [really-safe-money-gen] No c2hs found
  1897. 90.70 s [really-safe-money-gen] No cpphs found
  1898. 90.70 s [really-safe-money-gen] No doctest found
  1899. 90.70 s [really-safe-money-gen] Using gcc version 14.3.0 given by user at:
  1900. 90.70 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1901. 90.70 s [really-safe-money-gen] Using ghc version 9.10.3 found on system at:
  1902. 90.70 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1903. 90.70 s [really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
  1904. 90.70 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1905. 90.70 s [really-safe-money-gen] No ghcjs found
  1906. 90.70 s [really-safe-money-gen] No ghcjs-pkg found
  1907. 90.70 s [really-safe-money-gen] No greencard found
  1908. 90.70 s [really-safe-money-gen] Using haddock version 2.31.1 found on system at:
  1909. 90.70 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1910. 90.70 s [really-safe-money-gen] No happy found
  1911. 90.70 s [really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
  1912. 90.70 s [really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1913. 90.70 s [really-safe-money-gen] No hmake found
  1914. 90.70 s [really-safe-money-gen] Using hpc version 0.69 found on system at:
  1915. 90.70 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1916. 90.70 s [really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
  1917. 90.70 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1918. 90.70 s [really-safe-money-gen] Using hscolour version 1.25 found on system at:
  1919. 90.70 s [really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1920. 90.70 s [really-safe-money-gen] No jhc found
  1921. 90.70 s [really-safe-money-gen] Using ld found on system at:
  1922. 90.70 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1923. 90.70 s [really-safe-money-gen] No pkg-config found
  1924. 90.70 s [really-safe-money-gen] Using runghc version 9.10.3 found on system at:
  1925. 90.70 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1926. 90.70 s [really-safe-money-gen] Using strip version 2.44 found on system at:
  1927. 90.70 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1928. 90.70 s [really-safe-money-gen] Using tar found on system at:
  1929. 90.70 s [really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1930. 90.70 s [really-safe-money-gen] No uhc found
  1931. 91.08 s [really-safe-money-gen] Phase: buildPhase
  1932. 91.15 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  1933. 91.15 s [really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
  1934. 91.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 )
  1935. 91.56 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 )
  1936. 91.65 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 )
  1937. 91.68 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 )
  1938. 91.68 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 )
  1939. 91.68 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 )
  1940. 91.68 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 )
  1941. 91.68 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 )
  1942. 91.68 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 )
  1943. 91.68 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 )
  1944. 91.74 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 )
  1945. 91.75 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 )
  1946. 91.75 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 )
  1947. 91.97 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
  1948. 92.34 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
  1949. 92.53 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
  1950. 92.66 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
  1951. 92.72 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
  1952. 92.72 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
  1953. 92.72 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
  1954. 92.72 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
  1955. 92.72 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
  1956. 92.72 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
  1957. 92.72 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
  1958. 92.80 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
  1959. 92.80 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 )
  1960. 94.10 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  1961. 94.11 s [really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  1962. 94.24 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 )
  1963. 96.57 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 )
  1964. 96.84 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 )
  1965. 96.84 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 )
  1966. 96.84 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 )
  1967. 96.84 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 )
  1968. 96.84 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 )
  1969. 96.84 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 )
  1970. 96.84 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 )
  1971. 96.84 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 )
  1972. 96.84 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 )
  1973. 96.84 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 )
  1974. 96.84 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 )
  1975. 96.90 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 )
  1976. 97.23 s [really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
  1977. 98.66 s [really-safe-money-gen] Phase: checkPhase
  1978. 98.68 s [really-safe-money-gen] mutation-nix: collecting coverage for suite really-safe-money-gen
  1979. 107.23 s [really-safe-money-gen] coverage (8/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 10 0 into rational 10 % 1 (4 mutations)
  1980. 107.53 s [really-safe-money-gen] coverage (28/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 1 3 into rational (-1) % 1000 (4 mutations)
  1981. 107.57 s [really-safe-money-gen] coverage (20/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 7000 3 into rational 7 % 1 (4 mutations)
  1982. 107.57 s [really-safe-money-gen] coverage (12/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 5 % 1 into DecimalLiteral Nothing 5 0 (30 mutations)
  1983. 107.58 s [really-safe-money-gen] coverage (26/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1 0 into rational 1 % 1 (4 mutations)
  1984. 107.61 s [really-safe-money-gen] coverage (21/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 2 0 into rational 2 % 1 (4 mutations)
  1985. 107.72 s [really-safe-money-gen] coverage (22/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 9 % 100 into DecimalLiteral Nothing 9 2 (36 mutations)
  1986. 107.73 s [really-safe-money-gen] coverage (27/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 240009 % 20000 into DecimalLiteral Nothing 1200045 5 (38 mutations)
  1987. 107.77 s [really-safe-money-gen] coverage (19/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1 into DecimalLiteral (Just False) 3 0 (32 mutations)
  1988. 107.78 s [really-safe-money-gen] coverage (6/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 500 into DecimalLiteral Nothing 2 3 (36 mutations)
  1989. 107.82 s [really-safe-money-gen] coverage (16/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 400 0 into rational 400 % 1 (4 mutations)
  1990. 107.83 s [really-safe-money-gen] coverage (9/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 50 1 into rational 5 % 1 (4 mutations)
  1991. 107.83 s [really-safe-money-gen] coverage (10/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-1) % 1000 into DecimalLiteral (Just False) 1 3 (38 mutations)
  1992. 107.91 s [really-safe-money-gen] coverage (2/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.can parse any rendered literal (9 mutations)
  1993. 107.93 s [really-safe-money-gen] coverage (17/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 20 4 into rational 1 % 500 (4 mutations)
  1994. 107.94 s [really-safe-money-gen] coverage (5/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 (30 mutations)
  1995. 107.94 s [really-safe-money-gen] coverage (11/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-4) % 5 into DecimalLiteral (Just False) 8 1 (38 mutations)
  1996. 108.02 s [really-safe-money-gen] coverage (15/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 600 2 into rational (-6) % 1 (4 mutations)
  1997. 108.04 s [really-safe-money-gen] coverage (3/1610): Numeric\.DecimalLiteralSpec.Natural.toNatural.renders to valid naturals (0 mutations)
  1998. 108.07 s [really-safe-money-gen] coverage (18/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 10 % 1 into DecimalLiteral Nothing 10 0 (30 mutations)
  1999. 108.09 s [really-safe-money-gen] coverage (1/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.renders to valid decimal literals (1 mutations)
  2000. 108.12 s [really-safe-money-gen] coverage (4/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 9 2 into rational 9 % 100 (4 mutations)
  2001. 108.13 s [really-safe-money-gen] coverage (23/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 3 0 into rational (-3) % 1 (4 mutations)
  2002. 108.14 s [really-safe-money-gen] coverage (24/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 1 into DecimalLiteral Nothing 1 0 (30 mutations)
  2003. 108.33 s [really-safe-money-gen] coverage (7/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-6) % 1 into DecimalLiteral (Just False) 6 0 (32 mutations)
  2004. 108.42 s [really-safe-money-gen] coverage (25/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 7 % 1 into DecimalLiteral Nothing 7 0 (30 mutations)
  2005. 108.58 s [really-safe-money-gen] coverage (13/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.can parse any rendered rational (43 mutations)
  2006. 108.59 s [really-safe-money-gen] coverage (14/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.renders to valid decimal literals (40 mutations)
  2007. 116.54 s [really-safe-money-gen] coverage (29/1610): Numeric\.DecimalLiteralSpec.Rational.toRational.renders to valid rationals (4 mutations)
  2008. 116.72 s [really-safe-money-gen] coverage (33/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 8 1 into rational (-4) % 5 (4 mutations)
  2009. 116.74 s [really-safe-money-gen] coverage (32/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1200045 5 into rational 240009 % 20000 (4 mutations)
  2010. 116.74 s [really-safe-money-gen] coverage (34/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 300 5 into rational (-3) % 1000 (4 mutations)
  2011. 116.82 s [really-safe-money-gen] coverage (31/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 2 % 1 into DecimalLiteral Nothing 2 0 (30 mutations)
  2012. 116.82 s [really-safe-money-gen] coverage (30/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1000 into DecimalLiteral (Just False) 3 3 (38 mutations)
  2013. 116.92 s [really-safe-money-gen] coverage (41/1610): Numeric\.DecimalLiteralSpec.GenValid DecimalLiteral.genValid \:\: Gen DecimalLiteral.only generates valid 'DecimalLiteral's (0 mutations)
  2014. 116.99 s [really-safe-money-gen] coverage (38/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.does not change the value of the literal (15 mutations)
  2015. 117.05 s [really-safe-money-gen] coverage (35/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.can parse any rendered rational (36 mutations)
  2016. 117.10 s [really-safe-money-gen] coverage (39/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces valid literals (12 mutations)
  2017. 117.16 s [really-safe-money-gen] coverage (37/1610): Numeric\.DecimalLiteralSpec.Ratio.toRatio.renders to valid rationals (5 mutations)
  2018. 117.21 s [really-safe-money-gen] coverage (46/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.can parse any rendered literal (24 mutations)
  2019. 117.23 s [really-safe-money-gen] coverage (42/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.fails to parse scientific notation (22 mutations)
  2020. 117.31 s [really-safe-money-gen] coverage (40/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces values with more than the given number of digits (12 mutations)
  2021. 117.34 s [really-safe-money-gen] coverage (47/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.renders to valid decimal literals (10 mutations)
  2022. 117.34 s [really-safe-money-gen] coverage (48/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromStringM.does the same as DecimalLiteral\.fromString (12 mutations)
  2023. 117.36 s [really-safe-money-gen] coverage (45/1610): Numeric\.DecimalLiteralSpec.Int.toInt.renders to valid words (14 mutations)
  2024. 117.39 s [really-safe-money-gen] coverage (49/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.renders to valid decimal literals (1 mutations)
  2025. 117.41 s [really-safe-money-gen] coverage (44/1610): Numeric\.DecimalLiteralSpec.setSignOptional.produces valid values (0 mutations)
  2026. 117.49 s [really-safe-money-gen] coverage (43/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.can parse any rendered decimal literal (44 mutations)
  2027. 117.50 s [really-safe-money-gen] coverage (52/1610): Numeric\.DecimalLiteralSpec.toString.can render any decimal literal (2 mutations)
  2028. 117.50 s [really-safe-money-gen] coverage (50/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.can parse any rendered literal (9 mutations)
  2029. 117.51 s [really-safe-money-gen] coverage (51/1610): Numeric\.DecimalLiteralSpec.Word.toWord.renders to valid words (0 mutations)
  2030. 117.52 s [really-safe-money-gen] coverage (36/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.renders to valid decimal literals (31 mutations)
  2031. 117.61 s [really-safe-money-gen] coverage (53/1610): Numeric\.DecimalLiteralSpec.examples.can parse "+2" (25 mutations)
  2032. 117.82 s [really-safe-money-gen] coverage (54/1610): Numeric\.DecimalLiteralSpec.examples.can parse "1" (22 mutations)
  2033. 117.88 s [really-safe-money-gen] coverage (56/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 50 1 (1 mutations)
  2034. 118.09 s [really-safe-money-gen] coverage (55/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 300 5 (3 mutations)
  2035. 125.69 s [really-safe-money-gen] coverage (58/1610): Numeric\.DecimalLiteralSpec.examples.can parse "5\.0" (31 mutations)
  2036. 125.90 s [really-safe-money-gen] coverage (60/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 3 (3 mutations)
  2037. 125.93 s [really-safe-money-gen] coverage (59/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 8 1 (3 mutations)
  2038. 125.93 s [really-safe-money-gen] coverage (61/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.00300" (36 mutations)
  2039. 125.94 s [really-safe-money-gen] coverage (57/1610): Numeric\.DecimalLiteralSpec.examples.can parse "400" (31 mutations)
  2040. 126.03 s [really-safe-money-gen] coverage (63/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 20 4 (3 mutations)
  2041. 126.10 s [really-safe-money-gen] coverage (62/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 7000 3 (1 mutations)
  2042. 126.31 s [really-safe-money-gen] coverage (67/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1200045 5 (1 mutations)
  2043. 126.31 s [really-safe-money-gen] coverage (66/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just True) 2 0 (1 mutations)
  2044. 126.34 s [really-safe-money-gen] coverage (65/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 0 (1 mutations)
  2045. 126.38 s [really-safe-money-gen] coverage (64/1610): Numeric\.DecimalLiteralSpec.examples.can parse "12\.00045" (38 mutations)
  2046. 126.44 s [really-safe-money-gen] coverage (68/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.001" (34 mutations)
  2047. 126.48 s [really-safe-money-gen] coverage (73/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 400 0 (1 mutations)
  2048. 126.48 s [really-safe-money-gen] coverage (72/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.8" (29 mutations)
  2049. 126.49 s [really-safe-money-gen] coverage (71/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 9 2 (3 mutations)
  2050. 126.53 s [really-safe-money-gen] coverage (70/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 600 2 (1 mutations)
  2051. 126.53 s [really-safe-money-gen] coverage (75/1610): Numeric\.DecimalLiteralSpec.examples.can parse "7\.000" (36 mutations)
  2052. 126.56 s [really-safe-money-gen] coverage (78/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.0020" (36 mutations)
  2053. 126.57 s [really-safe-money-gen] coverage (79/1610): Numeric\.DecimalLiteralSpec.Integer.toInteger.renders to valid words (0 mutations)
  2054. 126.63 s [really-safe-money-gen] coverage (69/1610): Numeric\.DecimalLiteralSpec.examples.can parse "6\.00" (36 mutations)
  2055. 126.67 s [really-safe-money-gen] coverage (74/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.09" (34 mutations)
  2056. 126.74 s [really-safe-money-gen] coverage (76/1610): Numeric\.DecimalLiteralSpec.examples.can parse "-3" (22 mutations)
  2057. 126.75 s [really-safe-money-gen] coverage (82/1610): Numeric\.DecimalLiteralSpec.digits.produces valid numbers of digits (0 mutations)
  2058. 126.82 s [really-safe-money-gen] coverage (77/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just False) 3 0 (1 mutations)
  2059. 126.85 s [really-safe-money-gen] coverage (80/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.renders to valid decimal literals (10 mutations)
  2060. 126.97 s [really-safe-money-gen] coverage (83/1610): Numeric\.DecimalLiteralSpec.setSignRequired.produces valid values (2 mutations)
  2061. 127.07 s [really-safe-money-gen] coverage (81/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.can parse any rendered literal (10 mutations)
  2062. 127.54 s [really-safe-money-gen] coverage (84/1610): Money\.ConversionRateSpec.Rational.toRational.produces valid rationals (0 mutations)
  2063. 135.42 s [really-safe-money-gen] coverage (88/1610): Money\.ConversionRateSpec.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2064. 135.44 s [really-safe-money-gen] coverage (89/1610): Money\.ConversionRateSpec.Ratio.toRatio.produces valid ratios (0 mutations)
  2065. 135.47 s [really-safe-money-gen] coverage (87/1610): Money\.ConversionRateSpec.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2066. 135.61 s [really-safe-money-gen] coverage (86/1610): Money\.ConversionRateSpec.Rational.fromRational.produces valid conversion rates (13 mutations)
  2067. 135.61 s [really-safe-money-gen] coverage (85/1610): Money\.ConversionRateSpec.Rational.fromRational.roundtrips with toRational (13 mutations)
  2068. 135.66 s [really-safe-money-gen] coverage (90/1610): Money\.ConversionRateSpec.invert.produces valid rates (8 mutations)
  2069. 135.72 s [really-safe-money-gen] coverage (108/1610): Money\.AccountSpec.convert.converts this USD to CHF correctly (26 mutations)
  2070. 135.79 s [really-safe-money-gen] coverage (104/1610): Money\.AccountSpec.negate.produces valid amounts (1 mutations)
  2071. 135.83 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)
  2072. 135.88 s [really-safe-money-gen] coverage (110/1610): Money\.AccountSpec.distribute.correctly distributes 3 into 3 (18 mutations)
  2073. 135.90 s [really-safe-money-gen] coverage (98/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"s (3 mutations)
  2074. 135.94 s [really-safe-money-gen] coverage (102/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is reflexive for "valid Account"s (3 mutations)
  2075. 135.95 s [really-safe-money-gen] coverage (103/1610): Money\.AccountSpec.Eq.says negative 0 equals positive 0 (3 mutations)
  2076. 135.96 s [really-safe-money-gen] coverage (94/1610): Money\.ConversionRateSpec.compose.produces valid rates (8 mutations)
  2077. 135.96 s [really-safe-money-gen] coverage (95/1610): Money\.ConversionRateSpec.GenValid ConversionRate.genValid \:\: Gen ConversionRate.only generates valid 'ConversionRate's (6 mutations)
  2078. 135.97 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)
  2079. 135.98 s [really-safe-money-gen] coverage (109/1610): Money\.AccountSpec.distribute.correctly distributes 5 into 3 (20 mutations)
  2080. 136.05 s [really-safe-money-gen] coverage (100/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is transitive for "valid Account"s (3 mutations)
  2081. 136.16 s [really-safe-money-gen] coverage (101/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is symmetric for "valid Account"s (3 mutations)
  2082. 136.26 s [really-safe-money-gen] coverage (92/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2083. 136.29 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)
  2084. 136.48 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)
  2085. 136.51 s [really-safe-money-gen] coverage (105/1610): Money\.AccountSpec.format.produces valid strings (6 mutations)
  2086. 136.58 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. 136.72 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)
  2088. 137.55 s [really-safe-money-gen] coverage (107/1610): Money\.AccountSpec.convert.produces valid amounts (27 mutations)
  2089. 144.31 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)
  2090. 144.33 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)
  2091. 144.39 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)
  2092. 144.42 s [really-safe-money-gen] coverage (118/1610): Money\.AccountSpec.distribute.correctly distributes 10 into 4 (20 mutations)
  2093. 144.46 s [really-safe-money-gen] coverage (121/1610): Money\.AccountSpec.abs.produces valid amounts (1 mutations)
  2094. 144.54 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)
  2095. 144.64 s [really-safe-money-gen] coverage (122/1610): Money\.AccountSpec.fromAmount.produces valid accounts (1 mutations)
  2096. 144.75 s [really-safe-money-gen] coverage (131/1610): Money\.AccountSpec.rate.computes this USD to CHF rate correctly (14 mutations)
  2097. 144.84 s [really-safe-money-gen] coverage (128/1610): Money\.AccountSpec.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2098. 144.84 s [really-safe-money-gen] coverage (120/1610): Money\.AccountSpec.distribute.produces valid amounts (36 mutations)
  2099. 144.89 s [really-safe-money-gen] coverage (127/1610): Money\.AccountSpec.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2100. 144.93 s [really-safe-money-gen] coverage (133/1610): Money\.AccountSpec.toDouble.produces an infinite or NaN Double with quantisation factor 0 (3 mutations)
  2101. 144.97 s [really-safe-money-gen] coverage (125/1610): Money\.AccountSpec.fromRatio.produces valid rational (20 mutations)
  2102. 145.00 s [really-safe-money-gen] coverage (123/1610): Money\.AccountSpec.fromRational.roundtrips with toRational (31 mutations)
  2103. 145.07 s [really-safe-money-gen] coverage (135/1610): Money\.AccountSpec.Ord.says 4 is smaller than 5 (2 mutations)
  2104. 145.08 s [really-safe-money-gen] coverage (124/1610): Money\.AccountSpec.fromRational.produces valid rational (27 mutations)
  2105. 145.08 s [really-safe-money-gen] coverage (126/1610): Money\.AccountSpec.fromRatio.roundtrips with toRatio (22 mutations)
  2106. 145.26 s [really-safe-money-gen] coverage (130/1610): Money\.AccountSpec.rate.produces valid conversion rates (15 mutations)
  2107. 145.26 s [really-safe-money-gen] coverage (117/1610): Money\.AccountSpec.distribute.produces results that sum up to the greater whole (66 mutations)
  2108. 145.27 s [really-safe-money-gen] coverage (134/1610): Money\.AccountSpec.Ord.says -6 is greater than -7 (2 mutations)
  2109. 145.27 s [really-safe-money-gen] coverage (132/1610): Money\.AccountSpec.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2110. 145.50 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. 145.70 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)
  2112. 145.71 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)
  2113. 145.91 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)
  2114. 146.33 s [really-safe-money-gen] coverage (139/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2115. 153.39 s [really-safe-money-gen] coverage (136/1610): Money\.AccountSpec.Ord.says -3 is smaller than 2 (2 mutations)
  2116. 153.43 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)
  2117. 153.48 s [really-safe-money-gen] coverage (142/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
  2118. 153.49 s [really-safe-money-gen] coverage (141/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
  2119. 153.73 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)
  2120. 153.74 s [really-safe-money-gen] coverage (143/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2121. 153.83 s [really-safe-money-gen] coverage (145/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
  2122. 153.90 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)
  2123. 153.93 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. 153.95 s [really-safe-money-gen] coverage (150/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
  2125. 154.02 s [really-safe-money-gen] coverage (146/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2126. 154.06 s [really-safe-money-gen] coverage (149/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
  2127. 154.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)
  2128. 154.26 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)
  2129. 154.27 s [really-safe-money-gen] coverage (152/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
  2130. 154.28 s [really-safe-money-gen] coverage (157/1610): Money\.AccountSpec.sum.fails to sum above maxBound (10 mutations)
  2131. 154.30 s [really-safe-money-gen] coverage (153/1610): Money\.AccountSpec.toRatio.produces valid Ratios when the quantisation factor is nonzero (1 mutations)
  2132. 154.34 s [really-safe-money-gen] coverage (158/1610): Money\.AccountSpec.sum.correctly sums [1,2,3] to 6 (12 mutations)
  2133. 154.61 s [really-safe-money-gen] coverage (154/1610): Money\.AccountSpec.fractionRatio.produces valid amounts (22 mutations)
  2134. 154.82 s [really-safe-money-gen] coverage (162/1610): Money\.AccountSpec.add.fails for minBound + (-1) (8 mutations)
  2135. 154.87 s [really-safe-money-gen] coverage (160/1610): Money\.AccountSpec.toMinimalQuantisations.produces valid accounts (3 mutations)
  2136. 155.14 s [really-safe-money-gen] coverage (163/1610): Money\.AccountSpec.add.fails for minBound + minBound (8 mutations)
  2137. 155.26 s [really-safe-money-gen] coverage (161/1610): Money\.AccountSpec.add.is commutative (27 mutations)
  2138. 155.67 s [really-safe-money-gen] coverage (164/1610): Money\.AccountSpec.add.produces valid amounts (27 mutations)
  2139. 155.67 s [really-safe-money-gen] coverage (155/1610): Money\.AccountSpec.sum.produces valid amounts (28 mutations)
  2140. 155.91 s [really-safe-money-gen] coverage (159/1610): Money\.AccountSpec.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2141. 162.46 s [really-safe-money-gen] coverage (166/1610): Money\.AccountSpec.add.fails for maxBound + 1 (8 mutations)
  2142. 162.59 s [really-safe-money-gen] coverage (165/1610): Money\.AccountSpec.add.has a right-identity\: zero (28 mutations)
  2143. 162.67 s [really-safe-money-gen] coverage (167/1610): Money\.AccountSpec.add.fails for maxBound + maxBound (8 mutations)
  2144. 162.98 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)
  2145. 163.07 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)
  2146. 163.14 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)
  2147. 163.27 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)
  2148. 163.28 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)
  2149. 163.28 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)
  2150. 163.32 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)
  2151. 163.34 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)
  2152. 163.37 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)
  2153. 163.40 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)
  2154. 163.50 s [really-safe-money-gen] coverage (169/1610): Money\.AccountSpec.add.has a left-identity\: zero (28 mutations)
  2155. 163.59 s [really-safe-money-gen] coverage (168/1610): Money\.AccountSpec.add.is associative when both succeed (27 mutations)
  2156. 163.59 s [really-safe-money-gen] coverage (170/1610): Money\.AccountSpec.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2157. 163.69 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)
  2158. 163.75 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)
  2159. 164.24 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)
  2160. 164.57 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)
  2161. 164.68 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. 164.74 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)
  2163. 165.14 s [really-safe-money-gen] coverage (190/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (32 mutations)
  2164. 165.28 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)
  2165. 171.18 s [really-safe-money-gen] coverage (191/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise (17 mutations)
  2166. 171.33 s [really-safe-money-gen] coverage (193/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise:1 (17 mutations)
  2167. 171.48 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)
  2168. 171.61 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)
  2169. 171.69 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)
  2170. 171.70 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)
  2171. 171.73 s [really-safe-money-gen] coverage (201/1610): Money\.AccountSpec.subtract.fails for minBound - 1 (8 mutations)
  2172. 171.85 s [really-safe-money-gen] coverage (192/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.produces valid factors (30 mutations)
  2173. 171.95 s [really-safe-money-gen] coverage (198/1610): Money\.AccountSpec.fromDouble.produces valid rational (38 mutations)
  2174. 171.99 s [really-safe-money-gen] coverage (204/1610): Money\.AccountSpec.multiply.fails for 3 * minBound (8 mutations)
  2175. 172.06 s [really-safe-money-gen] coverage (203/1610): Money\.AccountSpec.subtract.fails for maxBound - minBound (8 mutations)
  2176. 172.07 s [really-safe-money-gen] coverage (202/1610): Money\.AccountSpec.subtract.fails for minBound - maxBound (8 mutations)
  2177. 172.27 s [really-safe-money-gen] coverage (200/1610): Money\.AccountSpec.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2178. 172.31 s [really-safe-money-gen] coverage (207/1610): Money\.AccountSpec.multiply.succeeds for 3 * 6 (19 mutations)
  2179. 172.40 s [really-safe-money-gen] coverage (206/1610): Money\.AccountSpec.multiply.produces valid amounts (20 mutations)
  2180. 172.42 s [really-safe-money-gen] coverage (199/1610): Money\.AccountSpec.fromDouble.roundtrips with toDouble back to double (40 mutations)
  2181. 172.48 s [really-safe-money-gen] coverage (205/1610): Money\.AccountSpec.multiply.is absorbed by 0 (20 mutations)
  2182. 172.68 s [really-safe-money-gen] coverage (208/1610): Money\.AccountSpec.multiply.has an identity\: 1 (20 mutations)
  2183. 172.99 s [really-safe-money-gen] coverage (210/1610): Money\.AccountSpec.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2184. 173.13 s [really-safe-money-gen] coverage (211/1610): Money\.AccountSpec.multiply.fails for 2 * maxbound (8 mutations)
  2185. 173.14 s [really-safe-money-gen] coverage (209/1610): Money\.AccountSpec.multiply.is distributive with add when both succeed (44 mutations)
  2186. 173.47 s [really-safe-money-gen] coverage (213/1610): Money\.AccountSpec.fraction.Correctly fractions 101 with 1 % 100 (32 mutations)
  2187. 173.58 s [really-safe-money-gen] coverage (212/1610): Money\.AccountSpec.GenValid Account.genValid \:\: Gen Account.only generates valid 'Account's (1 mutations)
  2188. 174.43 s [really-safe-money-gen] coverage (214/1610): Money\.AccountSpec.fraction.produces valid amounts (39 mutations)
  2189. 179.74 s [really-safe-money-gen] coverage (216/1610): Money\.AccountSpec.fraction.Correctly fractions 100 with 1 % 100 (32 mutations)
  2190. 179.96 s [really-safe-money-gen] coverage (221/1610): Money\.MultiAmountSpec.fromAmount.produces valid amounts (15 mutations)
  2191. 180.06 s [really-safe-money-gen] coverage (220/1610): Money\.AccountSpec.toRational.produces an invalid Rational with quantisation factor 0 (4 mutations)
  2192. 180.23 s [really-safe-money-gen] coverage (219/1610): Money\.AccountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2193. 180.29 s [really-safe-money-gen] coverage (223/1610): Money\.MultiAmountSpec.zero.is valid (2 mutations)
  2194. 180.36 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)
  2195. 180.43 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)
  2196. 180.69 s [really-safe-money-gen] coverage (215/1610): Money\.AccountSpec.fraction.Produces a result that can be multiplied back (39 mutations)
  2197. 180.71 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)
  2198. 180.72 s [really-safe-money-gen] coverage (226/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"s (1 mutations)
  2199. 180.76 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)
  2200. 180.89 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)
  2201. 180.98 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)
  2202. 181.13 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. 181.13 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)
  2204. 181.42 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)
  2205. 181.42 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)
  2206. 181.61 s [really-safe-money-gen] coverage (230/1610): Money\.MultiAmountSpec.sum.produces valid amounts (27 mutations)
  2207. 181.85 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)
  2208. 181.93 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)
  2209. 181.98 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)
  2210. 182.31 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)
  2211. 182.67 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)
  2212. 183.41 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)
  2213. 188.65 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)
  2214. 188.83 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)
  2215. 188.96 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)
  2216. 189.13 s [really-safe-money-gen] coverage (248/1610): Money\.MultiAmountSpec.convertAll.produces valid results when converting two currencies to one (20 mutations)
  2217. 189.14 s [really-safe-money-gen] coverage (249/1610): Money\.MultiAmountSpec.convertAll.does the same as 'convert' when there is only one amount (32 mutations)
  2218. 189.14 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)
  2219. 189.24 s [really-safe-money-gen] coverage (241/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
  2220. 189.33 s [really-safe-money-gen] coverage (251/1610): Money\.MultiAmountSpec.add.has a right-identity\: zero (2 mutations)
  2221. 189.35 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)
  2222. 189.39 s [really-safe-money-gen] coverage (247/1610): Money\.MultiAmountSpec.convertAll.produces the right result in this example (15 mutations)
  2223. 189.61 s [really-safe-money-gen] coverage (256/1610): Money\.MultiAmountSpec.subtractAmount.produces valid amounts (29 mutations)
  2224. 189.70 s [really-safe-money-gen] coverage (252/1610): Money\.MultiAmountSpec.add.has a left-identity\: zero (4 mutations)
  2225. 189.73 s [really-safe-money-gen] coverage (250/1610): Money\.MultiAmountSpec.add.produces valid amounts (27 mutations)
  2226. 190.07 s [really-safe-money-gen] coverage (260/1610): Money\.MultiAmountSpec.lookupAmount.produces valid amounts (2 mutations)
  2227. 190.14 s [really-safe-money-gen] coverage (258/1610): Money\.MultiAmountSpec.subtract.produces valid amounts (28 mutations)
  2228. 190.30 s [really-safe-money-gen] coverage (261/1610): Money\.MultiAmountSpec.lookupAmount.can find an added amount (5 mutations)
  2229. 190.36 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)
  2230. 190.36 s [really-safe-money-gen] coverage (254/1610): Money\.MultiAmountSpec.add.is commutative (16 mutations)
  2231. 190.43 s [really-safe-money-gen] coverage (259/1610): Money\.MultiAmountSpec.subtract.has a right-identity\: zero (2 mutations)
  2232. 190.43 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)
  2233. 190.50 s [really-safe-money-gen] coverage (91/1610): Money\.ConversionRateSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2234. 190.51 s [really-safe-money-gen] coverage (255/1610): Money\.MultiAmountSpec.addAmount.produces valid amounts (24 mutations)
  2235. 190.99 s [really-safe-money-gen] coverage (253/1610): Money\.MultiAmountSpec.add.is associative when both succeed (16 mutations)
  2236. 191.30 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)
  2237. 191.53 s [really-safe-money-gen] coverage (93/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2238. 191.76 s [really-safe-money-gen] coverage (262/1610): Money\.AccountOfSpec.USD.sum.produces valid amounts (28 mutations)
  2239. 197.10 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)
  2240. 197.19 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. 197.24 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)
  2242. 197.69 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)
  2243. 197.74 s [really-safe-money-gen] coverage (265/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"s (3 mutations)
  2244. 197.76 s [really-safe-money-gen] coverage (275/1610): Money\.AccountOfSpec.USD.add.has a left-identity\: zero (28 mutations)
  2245. 197.80 s [really-safe-money-gen] coverage (270/1610): Money\.AccountOfSpec.USD.add.has a right-identity\: zero (28 mutations)
  2246. 197.86 s [really-safe-money-gen] coverage (274/1610): Money\.AccountOfSpec.USD.add.is commutative (27 mutations)
  2247. 197.98 s [really-safe-money-gen] coverage (272/1610): Money\.AccountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2248. 198.00 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)
  2249. 198.15 s [really-safe-money-gen] coverage (276/1610): Money\.AccountOfSpec.USD.fromAmountOf.produces valid AccountOfs (1 mutations)
  2250. 198.31 s [really-safe-money-gen] coverage (263/1610): Money\.AccountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2251. 198.38 s [really-safe-money-gen] coverage (277/1610): Money\.AccountOfSpec.USD.toMinimalQuantisations.produces valid accounts (3 mutations)
  2252. 198.78 s [really-safe-money-gen] coverage (279/1610): Money\.AccountOfSpec.USD.fromAmount.produces valid AccountOfs (1 mutations)
  2253. 198.80 s [really-safe-money-gen] coverage (278/1610): Money\.AccountOfSpec.USD.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2254. 198.86 s [really-safe-money-gen] coverage (280/1610): Money\.AccountOfSpec.USD.negate.produces valid amounts (1 mutations)
  2255. 198.97 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. 199.01 s [really-safe-money-gen] coverage (282/1610): Money\.AccountOfSpec.USD.USD.rate.produces valid amounts (15 mutations)
  2257. 199.03 s [really-safe-money-gen] coverage (281/1610): Money\.AccountOfSpec.USD.USD.convert.produces valid amounts (27 mutations)
  2258. 199.08 s [really-safe-money-gen] coverage (286/1610): Money\.AccountOfSpec.USD.INR.rate.produces valid amounts (15 mutations)
  2259. 199.14 s [really-safe-money-gen] coverage (284/1610): Money\.AccountOfSpec.USD.BTC.rate.produces valid amounts (15 mutations)
  2260. 199.25 s [really-safe-money-gen] coverage (285/1610): Money\.AccountOfSpec.USD.BTC.convert.produces valid amounts (27 mutations)
  2261. 199.85 s [really-safe-money-gen] coverage (287/1610): Money\.AccountOfSpec.USD.INR.convert.produces valid amounts (27 mutations)
  2262. 200.07 s [really-safe-money-gen] coverage (288/1610): Money\.AccountOfSpec.USD.ADA.rate.produces valid amounts (15 mutations)
  2263. 200.25 s [really-safe-money-gen] coverage (289/1610): Money\.AccountOfSpec.USD.ADA.convert.produces valid amounts (27 mutations)
  2264. 200.60 s [really-safe-money-gen] coverage (290/1610): Money\.AccountOfSpec.USD.CHF.convert.produces valid amounts (27 mutations)
  2265. 206.01 s [really-safe-money-gen] coverage (291/1610): Money\.AccountOfSpec.USD.CHF.rate.produces valid amounts (15 mutations)
  2266. 206.12 s [really-safe-money-gen] coverage (292/1610): Money\.AccountOfSpec.USD.abs.produces valid amounts (1 mutations)
  2267. 206.12 s [really-safe-money-gen] coverage (293/1610): Money\.AccountOfSpec.USD.fraction.produces valid amounts (39 mutations)
  2268. 206.48 s [really-safe-money-gen] coverage (295/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2269. 206.67 s [really-safe-money-gen] coverage (298/1610): Money\.AccountOfSpec.USD.fromDouble.produces valid rational (38 mutations)
  2270. 206.68 s [really-safe-money-gen] coverage (299/1610): Money\.AccountOfSpec.USD.fromDouble.roundtrips with toDouble (40 mutations)
  2271. 206.70 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)
  2272. 206.80 s [really-safe-money-gen] coverage (296/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2273. 206.92 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)
  2274. 207.03 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)
  2275. 207.12 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)
  2276. 207.20 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)
  2277. 207.42 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)
  2278. 207.72 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)
  2279. 207.82 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)
  2280. 207.94 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. 207.98 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)
  2282. 208.02 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)
  2283. 208.08 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)
  2284. 208.16 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)
  2285. 208.18 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)
  2286. 208.29 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)
  2287. 208.89 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)
  2288. 209.18 s [really-safe-money-gen] coverage (316/1610): Money\.AccountOfSpec.USD.distribute.produces results that sum up to the greater whole (64 mutations)
  2289. 209.28 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. 209.80 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)
  2291. 215.04 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)
  2292. 215.23 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. 215.23 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)
  2294. 215.58 s [really-safe-money-gen] coverage (324/1610): Money\.AccountOfSpec.USD.distribute.produces valid amounts (34 mutations)
  2295. 215.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. 215.87 s [really-safe-money-gen] coverage (325/1610): Money\.AccountOfSpec.USD.format.produces valid strings (6 mutations)
  2297. 215.92 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. 215.93 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)
  2299. 215.95 s [really-safe-money-gen] coverage (327/1610): Money\.AccountOfSpec.USD.fromRational.produces valid rational (27 mutations)
  2300. 216.07 s [really-safe-money-gen] coverage (328/1610): Money\.AccountOfSpec.USD.fromRational.roundtrips with toRational (31 mutations)
  2301. 216.08 s [really-safe-money-gen] coverage (271/1610): Money\.AccountOfSpec.USD.add.is associative when both succeed (27 mutations)
  2302. 216.38 s [really-safe-money-gen] coverage (329/1610): Money\.AccountOfSpec.USD.multiply.is absorbed by 0 (20 mutations)
  2303. 216.87 s [really-safe-money-gen] coverage (330/1610): Money\.AccountOfSpec.USD.multiply.has an identity\: 1 (20 mutations)
  2304. 217.06 s [really-safe-money-gen] coverage (331/1610): Money\.AccountOfSpec.USD.multiply.produces valid amounts (20 mutations)
  2305. 217.12 s [really-safe-money-gen] coverage (332/1610): Money\.AccountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2306. 217.29 s [really-safe-money-gen] coverage (333/1610): Money\.AccountOfSpec.USD.multiply.is distributive with add when both succeed (44 mutations)
  2307. 217.42 s [really-safe-money-gen] coverage (334/1610): Money\.AccountOfSpec.USD.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2308. 217.48 s [really-safe-money-gen] coverage (335/1610): Money\.AccountOfSpec.INR.fromAmount.produces valid AccountOfs (1 mutations)
  2309. 217.58 s [really-safe-money-gen] coverage (336/1610): Money\.AccountOfSpec.INR.USD.convert.produces valid amounts (27 mutations)
  2310. 217.65 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)
  2311. 217.70 s [really-safe-money-gen] coverage (337/1610): Money\.AccountOfSpec.INR.USD.rate.produces valid amounts (15 mutations)
  2312. 217.74 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)
  2313. 218.41 s [really-safe-money-gen] coverage (339/1610): Money\.AccountOfSpec.INR.abs.produces valid amounts (1 mutations)
  2314. 218.60 s [really-safe-money-gen] coverage (340/1610): Money\.AccountOfSpec.INR.add.produces valid amounts (27 mutations)
  2315. 218.73 s [really-safe-money-gen] coverage (341/1610): Money\.AccountOfSpec.INR.add.is associative when both succeed (27 mutations)
  2316. 219.35 s [really-safe-money-gen] coverage (342/1610): Money\.AccountOfSpec.INR.add.has a left-identity\: zero (28 mutations)
  2317. 223.95 s [really-safe-money-gen] coverage (183/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.roundtrips with Account\.fromDecimalLiteral (87 mutations)
  2318. 224.36 s [really-safe-money-gen] coverage (184/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.produces valid decimal literals (56 mutations)
  2319. 224.52 s [really-safe-money-gen] coverage (273/1610): Money\.AccountOfSpec.USD.add.produces valid amounts (27 mutations)
  2320. 224.86 s [really-safe-money-gen] coverage (294/1610): Money\.AccountOfSpec.USD.fraction.Produces a result that can be multiplied back (38 mutations)
  2321. 224.89 s [really-safe-money-gen] coverage (345/1610): Money\.AccountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2322. 225.18 s [really-safe-money-gen] coverage (343/1610): Money\.AccountOfSpec.INR.add.is commutative (27 mutations)
  2323. 225.22 s [really-safe-money-gen] coverage (346/1610): Money\.AccountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2324. 225.39 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)
  2325. 225.45 s [really-safe-money-gen] coverage (347/1610): Money\.AccountOfSpec.INR.fraction.produces valid amounts (39 mutations)
  2326. 225.48 s [really-safe-money-gen] coverage (349/1610): Money\.AccountOfSpec.INR.distribute.produces results that sum up to the greater whole (64 mutations)
  2327. 225.69 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)
  2328. 225.74 s [really-safe-money-gen] coverage (348/1610): Money\.AccountOfSpec.INR.fraction.Produces a result that can be multiplied back (38 mutations)
  2329. 225.80 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)
  2330. 226.18 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)
  2331. 226.21 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)
  2332. 226.44 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)
  2333. 226.56 s [really-safe-money-gen] coverage (344/1610): Money\.AccountOfSpec.INR.add.has a right-identity\: zero (28 mutations)
  2334. 226.76 s [really-safe-money-gen] coverage (360/1610): Money\.AccountOfSpec.INR.sum.produces valid amounts (28 mutations)
  2335. 226.78 s [really-safe-money-gen] coverage (357/1610): Money\.AccountOfSpec.INR.distribute.produces valid amounts (34 mutations)
  2336. 227.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)
  2337. 227.08 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)
  2338. 227.08 s [really-safe-money-gen] coverage (359/1610): Money\.AccountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2339. 227.15 s [really-safe-money-gen] coverage (358/1610): Money\.AccountOfSpec.INR.fromAmountOf.produces valid AccountOfs (1 mutations)
  2340. 227.17 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)
  2341. 227.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)
  2342. 227.96 s [really-safe-money-gen] coverage (365/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
  2343. 228.07 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)
  2344. 228.83 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)
  2345. 233.48 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)
  2346. 233.83 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)
  2347. 233.88 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)
  2348. 234.19 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)
  2349. 234.24 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)
  2350. 234.48 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)
  2351. 234.64 s [really-safe-money-gen] coverage (377/1610): Money\.AccountOfSpec.INR.CHF.rate.produces valid amounts (15 mutations)
  2352. 234.80 s [really-safe-money-gen] coverage (379/1610): Money\.AccountOfSpec.INR.multiply.is distributive with add when both succeed (44 mutations)
  2353. 234.81 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)
  2354. 234.87 s [really-safe-money-gen] coverage (378/1610): Money\.AccountOfSpec.INR.CHF.convert.produces valid amounts (27 mutations)
  2355. 234.95 s [really-safe-money-gen] coverage (380/1610): Money\.AccountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2356. 235.20 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)
  2357. 235.21 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)
  2358. 235.59 s [really-safe-money-gen] coverage (383/1610): Money\.AccountOfSpec.INR.multiply.has an identity\: 1 (20 mutations)
  2359. 235.59 s [really-safe-money-gen] coverage (381/1610): Money\.AccountOfSpec.INR.multiply.is absorbed by 0 (20 mutations)
  2360. 235.85 s [really-safe-money-gen] coverage (384/1610): Money\.AccountOfSpec.INR.negate.produces valid amounts (1 mutations)
  2361. 236.04 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)
  2362. 236.17 s [really-safe-money-gen] coverage (387/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2363. 236.23 s [really-safe-money-gen] coverage (388/1610): Money\.AccountOfSpec.INR.fromRational.produces valid rational (27 mutations)
  2364. 236.25 s [really-safe-money-gen] coverage (386/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2365. 236.38 s [really-safe-money-gen] coverage (389/1610): Money\.AccountOfSpec.INR.fromRational.roundtrips with toRational (31 mutations)
  2366. 236.47 s [really-safe-money-gen] coverage (390/1610): Money\.AccountOfSpec.INR.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2367. 236.51 s [really-safe-money-gen] coverage (391/1610): Money\.AccountOfSpec.INR.BTC.rate.produces valid amounts (15 mutations)
  2368. 236.59 s [really-safe-money-gen] coverage (382/1610): Money\.AccountOfSpec.INR.multiply.produces valid amounts (20 mutations)
  2369. 237.36 s [really-safe-money-gen] coverage (393/1610): Money\.AccountOfSpec.INR.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2370. 237.51 s [really-safe-money-gen] coverage (394/1610): Money\.AccountOfSpec.INR.fromDouble.roundtrips with toDouble (40 mutations)
  2371. 237.62 s [really-safe-money-gen] coverage (392/1610): Money\.AccountOfSpec.INR.BTC.convert.produces valid amounts (27 mutations)
  2372. 238.40 s [really-safe-money-gen] coverage (395/1610): Money\.AccountOfSpec.INR.fromDouble.produces valid rational (38 mutations)
  2373. 243.45 s [really-safe-money-gen] coverage (397/1610): Money\.AccountOfSpec.INR.ADA.rate.produces valid amounts (15 mutations)
  2374. 243.57 s [really-safe-money-gen] coverage (399/1610): Money\.AccountOfSpec.INR.toMinimalQuantisations.produces valid accounts (3 mutations)
  2375. 243.71 s [really-safe-money-gen] coverage (398/1610): Money\.AccountOfSpec.INR.format.produces valid strings (6 mutations)
  2376. 243.96 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)
  2377. 243.97 s [really-safe-money-gen] coverage (396/1610): Money\.AccountOfSpec.INR.ADA.convert.produces valid amounts (27 mutations)
  2378. 244.17 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)
  2379. 244.43 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)
  2380. 244.69 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)
  2381. 244.72 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)
  2382. 244.79 s [really-safe-money-gen] coverage (406/1610): Money\.AccountOfSpec.INR.INR.convert.produces valid amounts (27 mutations)
  2383. 244.91 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)
  2384. 245.00 s [really-safe-money-gen] coverage (408/1610): Money\.AccountOfSpec.CHF.fromAmount.produces valid AccountOfs (1 mutations)
  2385. 245.17 s [really-safe-money-gen] coverage (407/1610): Money\.AccountOfSpec.INR.INR.rate.produces valid amounts (15 mutations)
  2386. 245.35 s [really-safe-money-gen] coverage (410/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2387. 245.48 s [really-safe-money-gen] coverage (411/1610): Money\.AccountOfSpec.CHF.multiply.produces valid amounts (20 mutations)
  2388. 245.82 s [really-safe-money-gen] coverage (412/1610): Money\.AccountOfSpec.CHF.multiply.is absorbed by 0 (20 mutations)
  2389. 245.90 s [really-safe-money-gen] coverage (413/1610): Money\.AccountOfSpec.CHF.multiply.is distributive with add when both succeed (44 mutations)
  2390. 246.16 s [really-safe-money-gen] coverage (416/1610): Money\.AccountOfSpec.CHF.distribute.produces valid amounts (34 mutations)
  2391. 246.26 s [really-safe-money-gen] coverage (415/1610): Money\.AccountOfSpec.CHF.multiply.has an identity\: 1 (20 mutations)
  2392. 246.26 s [really-safe-money-gen] coverage (414/1610): Money\.AccountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2393. 246.34 s [really-safe-money-gen] coverage (417/1610): Money\.AccountOfSpec.CHF.distribute.produces results that sum up to the greater whole (64 mutations)
  2394. 246.39 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)
  2395. 246.48 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)
  2396. 246.68 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)
  2397. 247.11 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)
  2398. 247.12 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)
  2399. 247.46 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)
  2400. 247.98 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)
  2401. 252.72 s [really-safe-money-gen] coverage (425/1610): Money\.AccountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2402. 252.82 s [really-safe-money-gen] coverage (409/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2403. 253.11 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)
  2404. 253.12 s [really-safe-money-gen] coverage (429/1610): Money\.AccountOfSpec.CHF.USD.rate.produces valid amounts (15 mutations)
  2405. 253.16 s [really-safe-money-gen] coverage (428/1610): Money\.AccountOfSpec.CHF.abs.produces valid amounts (1 mutations)
  2406. 253.45 s [really-safe-money-gen] coverage (430/1610): Money\.AccountOfSpec.CHF.USD.convert.produces valid amounts (27 mutations)
  2407. 253.61 s [really-safe-money-gen] coverage (431/1610): Money\.AccountOfSpec.CHF.BTC.convert.produces valid amounts (27 mutations)
  2408. 253.95 s [really-safe-money-gen] coverage (426/1610): Money\.AccountOfSpec.CHF.sum.produces valid amounts (28 mutations)
  2409. 253.96 s [really-safe-money-gen] coverage (432/1610): Money\.AccountOfSpec.CHF.BTC.rate.produces valid amounts (15 mutations)
  2410. 253.99 s [really-safe-money-gen] coverage (433/1610): Money\.AccountOfSpec.CHF.toMinimalQuantisations.produces valid accounts (3 mutations)
  2411. 254.36 s [really-safe-money-gen] coverage (434/1610): Money\.AccountOfSpec.CHF.fraction.Produces a result that can be multiplied back (38 mutations)
  2412. 254.37 s [really-safe-money-gen] coverage (435/1610): Money\.AccountOfSpec.CHF.fraction.produces valid amounts (39 mutations)
  2413. 254.44 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)
  2414. 254.75 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. 254.89 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)
  2416. 255.23 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)
  2417. 255.35 s [really-safe-money-gen] coverage (444/1610): Money\.AccountOfSpec.CHF.negate.produces valid amounts (1 mutations)
  2418. 255.37 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)
  2419. 255.57 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)
  2420. 255.63 s [really-safe-money-gen] coverage (445/1610): Money\.AccountOfSpec.CHF.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2421. 255.65 s [really-safe-money-gen] coverage (442/1610): Money\.AccountOfSpec.CHF.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2422. 255.73 s [really-safe-money-gen] coverage (446/1610): Money\.AccountOfSpec.CHF.format.produces valid strings (6 mutations)
  2423. 255.90 s [really-safe-money-gen] coverage (447/1610): Money\.AccountOfSpec.CHF.fromRational.produces valid rational (27 mutations)
  2424. 256.04 s [really-safe-money-gen] coverage (443/1610): Money\.AccountOfSpec.CHF.fromAmountOf.produces valid AccountOfs (1 mutations)
  2425. 256.32 s [really-safe-money-gen] coverage (449/1610): Money\.AccountOfSpec.CHF.fromDouble.produces valid rational (38 mutations)
  2426. 256.39 s [really-safe-money-gen] coverage (450/1610): Money\.AccountOfSpec.CHF.fromDouble.roundtrips with toDouble (40 mutations)
  2427. 256.80 s [really-safe-money-gen] coverage (451/1610): Money\.AccountOfSpec.CHF.ADA.convert.produces valid amounts (27 mutations)
  2428. 257.21 s [really-safe-money-gen] coverage (452/1610): Money\.AccountOfSpec.CHF.ADA.rate.produces valid amounts (15 mutations)
  2429. 262.30 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)
  2430. 262.50 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)
  2431. 262.69 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)
  2432. 262.86 s [really-safe-money-gen] coverage (448/1610): Money\.AccountOfSpec.CHF.fromRational.roundtrips with toRational (31 mutations)
  2433. 262.88 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)
  2434. 263.35 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)
  2435. 263.42 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)
  2436. 263.62 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)
  2437. 263.83 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)
  2438. 263.85 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)
  2439. 264.28 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)
  2440. 264.45 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)
  2441. 264.48 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)
  2442. 264.80 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)
  2443. 265.15 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)
  2444. 265.49 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)
  2445. 265.58 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)
  2446. 265.72 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)
  2447. 265.75 s [really-safe-money-gen] coverage (470/1610): Money\.AccountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2448. 265.95 s [really-safe-money-gen] coverage (475/1610): Money\.AccountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2449. 266.03 s [really-safe-money-gen] coverage (471/1610): Money\.AccountOfSpec.CHF.CHF.rate.produces valid amounts (15 mutations)
  2450. 266.04 s [really-safe-money-gen] coverage (472/1610): Money\.AccountOfSpec.CHF.CHF.convert.produces valid amounts (27 mutations)
  2451. 266.17 s [really-safe-money-gen] coverage (476/1610): Money\.AccountOfSpec.CHF.add.has a right-identity\: zero (28 mutations)
  2452. 266.17 s [really-safe-money-gen] coverage (474/1610): Money\.AccountOfSpec.CHF.add.has a left-identity\: zero (28 mutations)
  2453. 266.39 s [really-safe-money-gen] coverage (478/1610): Money\.AccountOfSpec.CHF.add.produces valid amounts (27 mutations)
  2454. 266.67 s [really-safe-money-gen] coverage (477/1610): Money\.AccountOfSpec.CHF.add.is commutative (27 mutations)
  2455. 266.84 s [really-safe-money-gen] coverage (479/1610): Money\.AccountOfSpec.CHF.INR.convert.produces valid amounts (27 mutations)
  2456. 267.48 s [really-safe-money-gen] coverage (480/1610): Money\.AccountOfSpec.CHF.INR.rate.produces valid amounts (15 mutations)
  2457. 272.11 s [really-safe-money-gen] coverage (473/1610): Money\.AccountOfSpec.CHF.add.is associative when both succeed (27 mutations)
  2458. 272.27 s [really-safe-money-gen] coverage (481/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2459. 272.62 s [really-safe-money-gen] coverage (482/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2460. 272.67 s [really-safe-money-gen] coverage (484/1610): Money\.AccountOfSpec.ADA.fromDouble.roundtrips with toDouble (40 mutations)
  2461. 272.75 s [really-safe-money-gen] coverage (483/1610): Money\.AccountOfSpec.ADA.fromDouble.produces valid rational (38 mutations)
  2462. 273.39 s [really-safe-money-gen] coverage (486/1610): Money\.AccountOfSpec.ADA.fromRational.roundtrips with toRational (31 mutations)
  2463. 273.41 s [really-safe-money-gen] coverage (485/1610): Money\.AccountOfSpec.ADA.fromRational.produces valid rational (27 mutations)
  2464. 273.58 s [really-safe-money-gen] coverage (488/1610): Money\.AccountOfSpec.ADA.fraction.Produces a result that can be multiplied back (38 mutations)
  2465. 273.58 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)
  2466. 273.61 s [really-safe-money-gen] coverage (489/1610): Money\.AccountOfSpec.ADA.fraction.produces valid amounts (39 mutations)
  2467. 274.00 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)
  2468. 274.10 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)
  2469. 274.18 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)
  2470. 274.73 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)
  2471. 274.88 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)
  2472. 275.10 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)
  2473. 275.29 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. 275.29 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)
  2475. 275.33 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)
  2476. 275.55 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)
  2477. 275.75 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. 275.79 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)
  2479. 275.83 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)
  2480. 275.85 s [really-safe-money-gen] coverage (361/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."min \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * INR)"'s (3 mutations)
  2481. 276.08 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)
  2482. 276.22 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)
  2483. 276.46 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)
  2484. 276.93 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)
  2485. 281.62 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)
  2486. 282.09 s [really-safe-money-gen] coverage (516/1610): Money\.AccountOfSpec.ADA.distribute.produces results that sum up to the greater whole (64 mutations)
  2487. 282.11 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)
  2488. 282.24 s [really-safe-money-gen] coverage (517/1610): Money\.AccountOfSpec.ADA.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2489. 282.27 s [really-safe-money-gen] coverage (515/1610): Money\.AccountOfSpec.ADA.distribute.produces valid amounts (34 mutations)
  2490. 282.88 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)
  2491. 282.94 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)
  2492. 283.12 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)
  2493. 283.14 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)
  2494. 283.21 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)
  2495. 283.50 s [really-safe-money-gen] coverage (507/1610): Money\.AccountOfSpec.ADA.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2496. 283.53 s [really-safe-money-gen] coverage (530/1610): Money\.AccountOfSpec.ADA.INR.rate.produces valid amounts (15 mutations)
  2497. 283.58 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)
  2498. 284.39 s [really-safe-money-gen] coverage (531/1610): Money\.AccountOfSpec.ADA.INR.convert.produces valid amounts (27 mutations)
  2499. 284.59 s [really-safe-money-gen] coverage (532/1610): Money\.AccountOfSpec.ADA.fromAmount.produces valid AccountOfs (1 mutations)
  2500. 284.68 s [really-safe-money-gen] coverage (534/1610): Money\.AccountOfSpec.ADA.sum.produces valid amounts (28 mutations)
  2501. 284.70 s [really-safe-money-gen] coverage (527/1610): Money\.AccountOfSpec.ADA.negate.produces valid amounts (1 mutations)
  2502. 284.75 s [really-safe-money-gen] coverage (528/1610): Money\.AccountOfSpec.ADA.CHF.rate.produces valid amounts (15 mutations)
  2503. 284.90 s [really-safe-money-gen] coverage (536/1610): Money\.AccountOfSpec.ADA.ADA.convert.produces valid amounts (27 mutations)
  2504. 285.05 s [really-safe-money-gen] coverage (533/1610): Money\.AccountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2505. 285.23 s [really-safe-money-gen] coverage (503/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * ADA)"'s (3 mutations)
  2506. 285.24 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)
  2507. 285.41 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)
  2508. 285.47 s [really-safe-money-gen] coverage (506/1610): Money\.AccountOfSpec.ADA.fromAmountOf.produces valid AccountOfs (1 mutations)
  2509. 285.56 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)
  2510. 285.79 s [really-safe-money-gen] coverage (526/1610): Money\.AccountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2511. 286.11 s [really-safe-money-gen] coverage (535/1610): Money\.AccountOfSpec.ADA.toMinimalQuantisations.produces valid accounts (3 mutations)
  2512. 286.50 s [really-safe-money-gen] coverage (538/1610): Money\.AccountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2513. 291.10 s [really-safe-money-gen] coverage (539/1610): Money\.AccountOfSpec.ADA.add.produces valid amounts (27 mutations)
  2514. 291.28 s [really-safe-money-gen] coverage (540/1610): Money\.AccountOfSpec.ADA.add.is commutative (27 mutations)
  2515. 291.44 s [really-safe-money-gen] coverage (529/1610): Money\.AccountOfSpec.ADA.CHF.convert.produces valid amounts (27 mutations)
  2516. 291.45 s [really-safe-money-gen] coverage (542/1610): Money\.AccountOfSpec.ADA.add.has a left-identity\: zero (28 mutations)
  2517. 291.47 s [really-safe-money-gen] coverage (525/1610): Money\.AccountOfSpec.ADA.format.produces valid strings (6 mutations)
  2518. 292.05 s [really-safe-money-gen] coverage (543/1610): Money\.AccountOfSpec.ADA.add.has a right-identity\: zero (28 mutations)
  2519. 292.21 s [really-safe-money-gen] coverage (545/1610): Money\.AccountOfSpec.ADA.BTC.convert.produces valid amounts (27 mutations)
  2520. 292.43 s [really-safe-money-gen] coverage (551/1610): Money\.AccountOfSpec.ADA.multiply.is absorbed by 0 (20 mutations)
  2521. 292.44 s [really-safe-money-gen] coverage (553/1610): Money\.AccountOfSpec.ADA.USD.rate.produces valid amounts (15 mutations)
  2522. 292.49 s [really-safe-money-gen] coverage (552/1610): Money\.AccountOfSpec.ADA.USD.convert.produces valid amounts (27 mutations)
  2523. 292.68 s [really-safe-money-gen] coverage (537/1610): Money\.AccountOfSpec.ADA.ADA.rate.produces valid amounts (15 mutations)
  2524. 292.77 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)
  2525. 292.92 s [really-safe-money-gen] coverage (524/1610): Money\.AccountOfSpec.ADA.abs.produces valid amounts (1 mutations)
  2526. 293.68 s [really-safe-money-gen] coverage (554/1610): Money\.AccountOfSpec.BTC.add.is commutative (27 mutations)
  2527. 293.69 s [really-safe-money-gen] coverage (541/1610): Money\.AccountOfSpec.ADA.add.is associative when both succeed (27 mutations)
  2528. 293.73 s [really-safe-money-gen] coverage (558/1610): Money\.AccountOfSpec.BTC.add.is associative when both succeed (27 mutations)
  2529. 293.85 s [really-safe-money-gen] coverage (555/1610): Money\.AccountOfSpec.BTC.add.produces valid amounts (27 mutations)
  2530. 294.02 s [really-safe-money-gen] coverage (559/1610): Money\.AccountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (27 mutations)
  2531. 294.15 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)
  2532. 294.31 s [really-safe-money-gen] coverage (557/1610): Money\.AccountOfSpec.BTC.add.has a right-identity\: zero (28 mutations)
  2533. 294.42 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)
  2534. 294.56 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)
  2535. 294.61 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)
  2536. 294.76 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)
  2537. 294.79 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)
  2538. 295.10 s [really-safe-money-gen] coverage (549/1610): Money\.AccountOfSpec.ADA.multiply.has an identity\: 1 (20 mutations)
  2539. 295.29 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)
  2540. 295.72 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)
  2541. 300.30 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)
  2542. 300.39 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)
  2543. 300.53 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)
  2544. 300.54 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)
  2545. 300.65 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)
  2546. 300.96 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)
  2547. 301.45 s [really-safe-money-gen] coverage (576/1610): Money\.AccountOfSpec.BTC.BTC.convert.produces valid amounts (27 mutations)
  2548. 301.50 s [really-safe-money-gen] coverage (578/1610): Money\.AccountOfSpec.BTC.distribute.produces valid amounts (34 mutations)
  2549. 301.56 s [really-safe-money-gen] coverage (577/1610): Money\.AccountOfSpec.BTC.BTC.rate.produces valid amounts (15 mutations)
  2550. 301.60 s [really-safe-money-gen] coverage (579/1610): Money\.AccountOfSpec.BTC.distribute.produces results that sum up to the greater whole (64 mutations)
  2551. 301.90 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)
  2552. 301.99 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)
  2553. 302.06 s [really-safe-money-gen] coverage (547/1610): Money\.AccountOfSpec.ADA.multiply.produces valid amounts (20 mutations)
  2554. 302.74 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)
  2555. 302.92 s [really-safe-money-gen] coverage (546/1610): Money\.AccountOfSpec.ADA.BTC.rate.produces valid amounts (15 mutations)
  2556. 302.93 s [really-safe-money-gen] coverage (548/1610): Money\.AccountOfSpec.ADA.multiply.is distributive with add when both succeed (44 mutations)
  2557. 303.01 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)
  2558. 303.18 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)
  2559. 303.39 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)
  2560. 303.53 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)
  2561. 303.54 s [really-safe-money-gen] coverage (587/1610): Money\.AccountOfSpec.BTC.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
  2562. 303.70 s [really-safe-money-gen] coverage (556/1610): Money\.AccountOfSpec.BTC.add.has a left-identity\: zero (28 mutations)
  2563. 303.91 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)
  2564. 304.09 s [really-safe-money-gen] coverage (589/1610): Money\.AccountOfSpec.BTC.fromAmountOf.produces valid AccountOfs (1 mutations)
  2565. 304.21 s [really-safe-money-gen] coverage (591/1610): Money\.AccountOfSpec.BTC.multiply.is distributive with add when both succeed (44 mutations)
  2566. 304.48 s [really-safe-money-gen] coverage (593/1610): Money\.AccountOfSpec.BTC.multiply.has an identity\: 1 (20 mutations)
  2567. 304.59 s [really-safe-money-gen] coverage (594/1610): Money\.AccountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2568. 304.94 s [really-safe-money-gen] coverage (592/1610): Money\.AccountOfSpec.BTC.multiply.is absorbed by 0 (20 mutations)
  2569. 309.63 s [really-safe-money-gen] coverage (590/1610): Money\.AccountOfSpec.BTC.multiply.produces valid amounts (20 mutations)
  2570. 309.87 s [really-safe-money-gen] coverage (588/1610): Money\.AccountOfSpec.BTC.negate.produces valid amounts (1 mutations)
  2571. 309.90 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)
  2572. 309.95 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)
  2573. 309.97 s [really-safe-money-gen] coverage (598/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"s (3 mutations)
  2574. 310.35 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)
  2575. 310.76 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)
  2576. 310.77 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)
  2577. 310.93 s [really-safe-money-gen] coverage (603/1610): Money\.AccountOfSpec.BTC.format.produces valid strings (6 mutations)
  2578. 311.12 s [really-safe-money-gen] coverage (604/1610): Money\.AccountOfSpec.BTC.USD.convert.produces valid amounts (27 mutations)
  2579. 311.50 s [really-safe-money-gen] coverage (606/1610): Money\.AccountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (27 mutations)
  2580. 311.59 s [really-safe-money-gen] coverage (607/1610): Money\.AccountOfSpec.BTC.ADA.convert.produces valid amounts (27 mutations)
  2581. 311.73 s [really-safe-money-gen] coverage (605/1610): Money\.AccountOfSpec.BTC.USD.rate.produces valid amounts (15 mutations)
  2582. 312.27 s [really-safe-money-gen] coverage (612/1610): Money\.AccountOfSpec.BTC.toMinimalQuantisations.produces valid accounts (3 mutations)
  2583. 312.42 s [really-safe-money-gen] coverage (608/1610): Money\.AccountOfSpec.BTC.ADA.rate.produces valid amounts (15 mutations)
  2584. 312.53 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)
  2585. 312.55 s [really-safe-money-gen] coverage (615/1610): Money\.AccountOfSpec.BTC.INR.rate.produces valid amounts (15 mutations)
  2586. 312.60 s [really-safe-money-gen] coverage (614/1610): Money\.AccountOfSpec.BTC.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
  2587. 312.71 s [really-safe-money-gen] coverage (616/1610): Money\.AccountOfSpec.BTC.INR.convert.produces valid amounts (27 mutations)
  2588. 313.01 s [really-safe-money-gen] coverage (618/1610): Money\.AccountOfSpec.BTC.fromDouble.produces valid rational (38 mutations)
  2589. 313.14 s [really-safe-money-gen] coverage (617/1610): Money\.AccountOfSpec.BTC.fromDouble.roundtrips with toDouble (40 mutations)
  2590. 313.18 s [really-safe-money-gen] coverage (619/1610): Money\.AccountOfSpec.BTC.fraction.produces valid amounts (39 mutations)
  2591. 313.28 s [really-safe-money-gen] coverage (620/1610): Money\.AccountOfSpec.BTC.fraction.Produces a result that can be multiplied back (38 mutations)
  2592. 313.63 s [really-safe-money-gen] coverage (610/1610): Money\.AccountOfSpec.BTC.fromRational.roundtrips with toRational (31 mutations)
  2593. 313.71 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)
  2594. 314.08 s [really-safe-money-gen] coverage (622/1610): Money\.AccountOfSpec.BTC.CHF.convert.produces valid amounts (27 mutations)
  2595. 314.08 s [really-safe-money-gen] coverage (595/1610): Money\.AccountOfSpec.BTC.sum.produces valid amounts (28 mutations)
  2596. 314.42 s [really-safe-money-gen] coverage (624/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.produces valid accounts (14 mutations)
  2597. 318.94 s [really-safe-money-gen] coverage (609/1610): Money\.AccountOfSpec.BTC.fromRational.produces valid rational (27 mutations)
  2598. 319.01 s [really-safe-money-gen] coverage (596/1610): Money\.AccountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (28 mutations)
  2599. 319.05 s [really-safe-money-gen] coverage (626/1610): Money\.AccountOfSpec.BTC.abs.produces valid amounts (1 mutations)
  2600. 319.29 s [really-safe-money-gen] coverage (625/1610): Money\.AccountOfSpec.BTC.fromAmount.produces valid AccountOfs (1 mutations)
  2601. 319.39 s [really-safe-money-gen] coverage (627/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2602. 319.39 s [really-safe-money-gen] coverage (628/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2603. 319.89 s [really-safe-money-gen] coverage (550/1610): Money\.AccountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (20 mutations)
  2604. 320.07 s [really-safe-money-gen] coverage (629/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2605. 320.33 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)
  2606. 320.60 s [really-safe-money-gen] coverage (631/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2607. 321.03 s [really-safe-money-gen] coverage (623/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (16 mutations)
  2608. 321.04 s [really-safe-money-gen] coverage (632/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2609. 321.58 s [really-safe-money-gen] coverage (621/1610): Money\.AccountOfSpec.BTC.CHF.rate.produces valid amounts (15 mutations)
  2610. 322.10 s [really-safe-money-gen] coverage (633/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2611. 322.29 s [really-safe-money-gen] coverage (634/1610): Money\.ConversionRateOfSpec.INR.ADA.compose.produces valid rates (8 mutations)
  2612. 322.31 s [really-safe-money-gen] coverage (635/1610): Money\.ConversionRateOfSpec.INR.ADA.invert.produces valid rates (8 mutations)
  2613. 322.68 s [really-safe-money-gen] coverage (639/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2614. 322.94 s [really-safe-money-gen] coverage (640/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2615. 323.02 s [really-safe-money-gen] coverage (642/1610): Money\.ConversionRateOfSpec.INR.BTC.invert.produces valid rates (8 mutations)
  2616. 323.02 s [really-safe-money-gen] coverage (641/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2617. 323.05 s [really-safe-money-gen] coverage (638/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2618. 323.19 s [really-safe-money-gen] coverage (643/1610): Money\.ConversionRateOfSpec.INR.BTC.compose.produces valid rates (8 mutations)
  2619. 323.24 s [really-safe-money-gen] coverage (636/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2620. 323.64 s [really-safe-money-gen] coverage (644/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2621. 324.04 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)
  2622. 324.18 s [really-safe-money-gen] coverage (651/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2623. 324.55 s [really-safe-money-gen] coverage (649/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2624. 325.40 s [really-safe-money-gen] coverage (652/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2625. 329.50 s [really-safe-money-gen] coverage (654/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2626. 329.80 s [really-safe-money-gen] coverage (655/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2627. 329.96 s [really-safe-money-gen] coverage (657/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2628. 330.10 s [really-safe-money-gen] coverage (658/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2629. 330.11 s [really-safe-money-gen] coverage (660/1610): Money\.ConversionRateOfSpec.INR.CHF.invert.produces valid rates (8 mutations)
  2630. 330.22 s [really-safe-money-gen] coverage (659/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2631. 330.64 s [really-safe-money-gen] coverage (661/1610): Money\.ConversionRateOfSpec.INR.CHF.compose.produces valid rates (8 mutations)
  2632. 330.85 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)
  2633. 330.99 s [really-safe-money-gen] coverage (665/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2634. 331.37 s [really-safe-money-gen] coverage (669/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2635. 331.69 s [really-safe-money-gen] coverage (668/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2636. 331.96 s [really-safe-money-gen] coverage (666/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2637. 332.56 s [really-safe-money-gen] coverage (653/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2638. 332.76 s [really-safe-money-gen] coverage (656/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2639. 332.98 s [really-safe-money-gen] coverage (647/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2640. 333.21 s [really-safe-money-gen] coverage (646/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2641. 333.52 s [really-safe-money-gen] coverage (637/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2642. 333.60 s [really-safe-money-gen] coverage (648/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2643. 333.66 s [really-safe-money-gen] coverage (645/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2644. 333.73 s [really-safe-money-gen] coverage (664/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.toRational.produces valid rationals (0 mutations)
  2645. 334.04 s [really-safe-money-gen] coverage (675/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.toRational.produces valid rationals (0 mutations)
  2646. 334.22 s [really-safe-money-gen] coverage (672/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2647. 334.33 s [really-safe-money-gen] coverage (674/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2648. 334.38 s [really-safe-money-gen] coverage (698/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2649. 334.78 s [really-safe-money-gen] coverage (697/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2650. 335.07 s [really-safe-money-gen] coverage (700/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2651. 335.40 s [really-safe-money-gen] coverage (699/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2652. 336.27 s [really-safe-money-gen] coverage (701/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2653. 339.77 s [really-safe-money-gen] coverage (702/1610): Money\.ConversionRateOfSpec.ADA.CHF.compose.produces valid rates (8 mutations)
  2654. 340.19 s [really-safe-money-gen] coverage (704/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2655. 340.21 s [really-safe-money-gen] coverage (703/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2656. 340.26 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)
  2657. 340.33 s [really-safe-money-gen] coverage (705/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2658. 340.39 s [really-safe-money-gen] coverage (707/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2659. 340.91 s [really-safe-money-gen] coverage (706/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2660. 341.17 s [really-safe-money-gen] coverage (708/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2661. 341.44 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)
  2662. 341.56 s [really-safe-money-gen] coverage (692/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2663. 341.91 s [really-safe-money-gen] coverage (694/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.toRational.produces valid rationals (0 mutations)
  2664. 341.99 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)
  2665. 342.96 s [really-safe-money-gen] coverage (691/1610): Money\.ConversionRateOfSpec.ADA.USD.invert.produces valid rates (8 mutations)
  2666. 343.20 s [really-safe-money-gen] coverage (696/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2667. 343.26 s [really-safe-money-gen] coverage (687/1610): Money\.ConversionRateOfSpec.ADA.USD.compose.produces valid rates (8 mutations)
  2668. 343.27 s [really-safe-money-gen] coverage (690/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2669. 343.61 s [really-safe-money-gen] coverage (710/1610): Money\.ConversionRateOfSpec.ADA.CHF.invert.produces valid rates (8 mutations)
  2670. 343.66 s [really-safe-money-gen] coverage (689/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2671. 343.68 s [really-safe-money-gen] coverage (688/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2672. 344.06 s [really-safe-money-gen] coverage (684/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2673. 344.21 s [really-safe-money-gen] coverage (682/1610): Money\.ConversionRateOfSpec.INR.INR.compose.produces valid rates (8 mutations)
  2674. 344.24 s [really-safe-money-gen] coverage (713/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2675. 344.44 s [really-safe-money-gen] coverage (679/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2676. 344.79 s [really-safe-money-gen] coverage (714/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2677. 345.02 s [really-safe-money-gen] coverage (681/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2678. 345.10 s [really-safe-money-gen] coverage (680/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2679. 345.20 s [really-safe-money-gen] coverage (683/1610): Money\.ConversionRateOfSpec.INR.INR.invert.produces valid rates (8 mutations)
  2680. 346.10 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)
  2681. 349.42 s [really-safe-money-gen] coverage (671/1610): Money\.ConversionRateOfSpec.INR.USD.compose.produces valid rates (8 mutations)
  2682. 349.60 s [really-safe-money-gen] coverage (717/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2683. 349.66 s [really-safe-money-gen] coverage (716/1610): Money\.ConversionRateOfSpec.ADA.ADA.compose.produces valid rates (8 mutations)
  2684. 349.76 s [really-safe-money-gen] coverage (718/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2685. 349.84 s [really-safe-money-gen] coverage (693/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2686. 350.07 s [really-safe-money-gen] coverage (719/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2687. 350.42 s [really-safe-money-gen] coverage (670/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2688. 351.01 s [really-safe-money-gen] coverage (721/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2689. 351.35 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)
  2690. 351.37 s [really-safe-money-gen] coverage (720/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2691. 351.40 s [really-safe-money-gen] coverage (686/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2692. 351.70 s [really-safe-money-gen] coverage (722/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2693. 352.63 s [really-safe-money-gen] coverage (725/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2694. 352.63 s [really-safe-money-gen] coverage (685/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2695. 352.66 s [really-safe-money-gen] coverage (676/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2696. 353.01 s [really-safe-money-gen] coverage (677/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2697. 353.10 s [really-safe-money-gen] coverage (723/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2698. 353.14 s [really-safe-money-gen] coverage (724/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2699. 353.16 s [really-safe-money-gen] coverage (726/1610): Money\.ConversionRateOfSpec.ADA.BTC.GenValid (ConversionRateOf ADA BTC).genValid \:\: Gen (ConversionRateOf ADA BTC).only generates valid '(ConversionRateOf ADA BTC)'s (6 mutations)
  2700. 353.34 s [really-safe-money-gen] coverage (727/1610): Money\.ConversionRateOfSpec.ADA.BTC.invert.produces valid rates (8 mutations)
  2701. 353.49 s [really-safe-money-gen] coverage (728/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2702. 353.65 s [really-safe-money-gen] coverage (729/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2703. 353.89 s [really-safe-money-gen] coverage (715/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2704. 354.17 s [really-safe-money-gen] coverage (712/1610): Money\.ConversionRateOfSpec.ADA.ADA.invert.produces valid rates (8 mutations)
  2705. 354.49 s [really-safe-money-gen] coverage (730/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2706. 354.54 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)
  2707. 354.60 s [really-safe-money-gen] coverage (739/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2708. 355.67 s [really-safe-money-gen] coverage (740/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2709. 358.95 s [really-safe-money-gen] coverage (741/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2710. 359.12 s [really-safe-money-gen] coverage (743/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2711. 359.34 s [really-safe-money-gen] coverage (745/1610): Money\.ConversionRateOfSpec.ADA.INR.compose.produces valid rates (8 mutations)
  2712. 359.60 s [really-safe-money-gen] coverage (738/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.toRational.produces valid rationals (0 mutations)
  2713. 359.83 s [really-safe-money-gen] coverage (742/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2714. 359.84 s [really-safe-money-gen] coverage (746/1610): Money\.ConversionRateOfSpec.ADA.INR.invert.produces valid rates (8 mutations)
  2715. 359.99 s [really-safe-money-gen] coverage (744/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2716. 360.69 s [really-safe-money-gen] coverage (747/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2717. 360.73 s [really-safe-money-gen] coverage (748/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2718. 360.79 s [really-safe-money-gen] coverage (667/1610): Money\.ConversionRateOfSpec.INR.USD.invert.produces valid rates (8 mutations)
  2719. 360.98 s [really-safe-money-gen] coverage (736/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2720. 361.34 s [really-safe-money-gen] coverage (673/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2721. 362.13 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)
  2722. 362.16 s [really-safe-money-gen] coverage (734/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2723. 362.54 s [really-safe-money-gen] coverage (732/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2724. 362.69 s [really-safe-money-gen] coverage (749/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2725. 362.72 s [really-safe-money-gen] coverage (753/1610): Money\.ConversionRateOfSpec.CHF.BTC.compose.produces valid rates (8 mutations)
  2726. 362.81 s [really-safe-money-gen] coverage (754/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2727. 362.88 s [really-safe-money-gen] coverage (750/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2728. 363.07 s [really-safe-money-gen] coverage (737/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2729. 363.11 s [really-safe-money-gen] coverage (752/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2730. 363.16 s [really-safe-money-gen] coverage (733/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2731. 363.44 s [really-safe-money-gen] coverage (756/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2732. 363.67 s [really-safe-money-gen] coverage (731/1610): Money\.ConversionRateOfSpec.ADA.BTC.compose.produces valid rates (8 mutations)
  2733. 363.90 s [really-safe-money-gen] coverage (755/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2734. 364.00 s [really-safe-money-gen] coverage (757/1610): Money\.ConversionRateOfSpec.CHF.BTC.invert.produces valid rates (8 mutations)
  2735. 364.03 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)
  2736. 365.10 s [really-safe-money-gen] coverage (759/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2737. 368.64 s [really-safe-money-gen] coverage (762/1610): Money\.ConversionRateOfSpec.CHF.ADA.invert.produces valid rates (8 mutations)
  2738. 368.81 s [really-safe-money-gen] coverage (760/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2739. 368.87 s [really-safe-money-gen] coverage (761/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2740. 369.04 s [really-safe-money-gen] coverage (763/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2741. 369.05 s [really-safe-money-gen] coverage (766/1610): Money\.ConversionRateOfSpec.CHF.ADA.compose.produces valid rates (8 mutations)
  2742. 369.14 s [really-safe-money-gen] coverage (764/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2743. 369.38 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)
  2744. 369.95 s [really-safe-money-gen] coverage (770/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2745. 369.96 s [really-safe-money-gen] coverage (768/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2746. 370.03 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)
  2747. 370.93 s [really-safe-money-gen] coverage (773/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2748. 371.05 s [really-safe-money-gen] coverage (774/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2749. 371.23 s [really-safe-money-gen] coverage (777/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2750. 371.34 s [really-safe-money-gen] coverage (776/1610): Money\.ConversionRateOfSpec.CHF.USD.compose.produces valid rates (8 mutations)
  2751. 371.79 s [really-safe-money-gen] coverage (782/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2752. 371.95 s [really-safe-money-gen] coverage (781/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2753. 371.99 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)
  2754. 372.01 s [really-safe-money-gen] coverage (780/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2755. 372.17 s [really-safe-money-gen] coverage (779/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.toRational.produces valid rationals (0 mutations)
  2756. 372.46 s [really-safe-money-gen] coverage (788/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2757. 372.56 s [really-safe-money-gen] coverage (790/1610): Money\.ConversionRateOfSpec.CHF.CHF.invert.produces valid rates (8 mutations)
  2758. 372.57 s [really-safe-money-gen] coverage (792/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2759. 372.59 s [really-safe-money-gen] coverage (789/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2760. 373.29 s [really-safe-money-gen] coverage (771/1610): Money\.ConversionRateOfSpec.CHF.USD.invert.produces valid rates (8 mutations)
  2761. 373.29 s [really-safe-money-gen] coverage (769/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2762. 373.43 s [really-safe-money-gen] coverage (765/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2763. 373.43 s [really-safe-money-gen] coverage (784/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2764. 374.52 s [really-safe-money-gen] coverage (778/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2765. 378.03 s [really-safe-money-gen] coverage (786/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2766. 378.05 s [really-safe-money-gen] coverage (787/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2767. 378.13 s [really-safe-money-gen] coverage (775/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2768. 378.54 s [really-safe-money-gen] coverage (799/1610): Money\.ConversionRateOfSpec.CHF.INR.invert.produces valid rates (8 mutations)
  2769. 378.57 s [really-safe-money-gen] coverage (801/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2770. 378.92 s [really-safe-money-gen] coverage (751/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2771. 378.98 s [really-safe-money-gen] coverage (785/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2772. 379.35 s [really-safe-money-gen] coverage (793/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2773. 379.40 s [really-safe-money-gen] coverage (796/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2774. 379.97 s [really-safe-money-gen] coverage (802/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2775. 380.16 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)
  2776. 380.41 s [really-safe-money-gen] coverage (804/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2777. 380.62 s [really-safe-money-gen] coverage (795/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2778. 380.77 s [really-safe-money-gen] coverage (794/1610): Money\.ConversionRateOfSpec.CHF.CHF.compose.produces valid rates (8 mutations)
  2779. 381.08 s [really-safe-money-gen] coverage (798/1610): Money\.ConversionRateOfSpec.CHF.INR.compose.produces valid rates (8 mutations)
  2780. 381.24 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)
  2781. 381.38 s [really-safe-money-gen] coverage (805/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2782. 381.54 s [really-safe-money-gen] coverage (808/1610): Money\.ConversionRateOfSpec.USD.CHF.invert.produces valid rates (8 mutations)
  2783. 381.89 s [really-safe-money-gen] coverage (806/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.toRational.produces valid rationals (0 mutations)
  2784. 381.89 s [really-safe-money-gen] coverage (800/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2785. 381.92 s [really-safe-money-gen] coverage (797/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2786. 382.01 s [really-safe-money-gen] coverage (791/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2787. 382.15 s [really-safe-money-gen] coverage (812/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2788. 382.57 s [really-safe-money-gen] coverage (817/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2789. 382.64 s [really-safe-money-gen] coverage (821/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2790. 382.65 s [really-safe-money-gen] coverage (820/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2791. 382.66 s [really-safe-money-gen] coverage (813/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2792. 384.65 s [really-safe-money-gen] coverage (809/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2793. 387.96 s [really-safe-money-gen] coverage (823/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2794. 388.15 s [really-safe-money-gen] coverage (825/1610): Money\.ConversionRateOfSpec.USD.USD.invert.produces valid rates (8 mutations)
  2795. 388.37 s [really-safe-money-gen] coverage (829/1610): Money\.ConversionRateOfSpec.USD.USD.compose.produces valid rates (8 mutations)
  2796. 388.42 s [really-safe-money-gen] coverage (826/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.toRational.produces valid rationals (0 mutations)
  2797. 388.50 s [really-safe-money-gen] coverage (827/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2798. 388.52 s [really-safe-money-gen] coverage (824/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2799. 388.74 s [really-safe-money-gen] coverage (828/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2800. 389.25 s [really-safe-money-gen] coverage (832/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2801. 389.32 s [really-safe-money-gen] coverage (818/1610): Money\.ConversionRateOfSpec.USD.CHF.compose.produces valid rates (8 mutations)
  2802. 390.36 s [really-safe-money-gen] coverage (834/1610): Money\.ConversionRateOfSpec.USD.INR.compose.produces valid rates (8 mutations)
  2803. 390.46 s [really-safe-money-gen] coverage (816/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2804. 390.81 s [really-safe-money-gen] coverage (831/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2805. 391.06 s [really-safe-money-gen] coverage (815/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2806. 391.12 s [really-safe-money-gen] coverage (833/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2807. 391.17 s [really-safe-money-gen] coverage (814/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2808. 391.48 s [really-safe-money-gen] coverage (822/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2809. 391.63 s [really-safe-money-gen] coverage (819/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2810. 391.80 s [really-safe-money-gen] coverage (837/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.toRational.produces valid rationals (0 mutations)
  2811. 391.85 s [really-safe-money-gen] coverage (810/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2812. 391.95 s [really-safe-money-gen] coverage (835/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2813. 391.96 s [really-safe-money-gen] coverage (836/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2814. 392.05 s [really-safe-money-gen] coverage (811/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2815. 392.24 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)
  2816. 392.34 s [really-safe-money-gen] coverage (848/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2817. 392.63 s [really-safe-money-gen] coverage (851/1610): Money\.ConversionRateOfSpec.USD.BTC.invert.produces valid rates (8 mutations)
  2818. 392.68 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)
  2819. 393.19 s [really-safe-money-gen] coverage (852/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2820. 395.20 s [really-safe-money-gen] coverage (853/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2821. 397.97 s [really-safe-money-gen] coverage (854/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2822. 398.09 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)
  2823. 398.23 s [really-safe-money-gen] coverage (860/1610): Money\.ConversionRateOfSpec.USD.ADA.invert.produces valid rates (8 mutations)
  2824. 398.35 s [really-safe-money-gen] coverage (858/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2825. 398.38 s [really-safe-money-gen] coverage (856/1610): Money\.ConversionRateOfSpec.USD.ADA.compose.produces valid rates (8 mutations)
  2826. 398.86 s [really-safe-money-gen] coverage (859/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2827. 398.91 s [really-safe-money-gen] coverage (857/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2828. 398.97 s [really-safe-money-gen] coverage (862/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2829. 399.05 s [really-safe-money-gen] coverage (863/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2830. 400.06 s [really-safe-money-gen] coverage (865/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2831. 400.13 s [really-safe-money-gen] coverage (866/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2832. 400.74 s [really-safe-money-gen] coverage (861/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2833. 400.92 s [really-safe-money-gen] coverage (868/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2834. 401.03 s [really-safe-money-gen] coverage (869/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2835. 401.12 s [really-safe-money-gen] coverage (867/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  2836. 401.85 s [really-safe-money-gen] coverage (871/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2837. 401.92 s [really-safe-money-gen] coverage (874/1610): Money\.ConversionRateOfSpec.BTC.ADA.invert.produces valid rates (8 mutations)
  2838. 401.94 s [really-safe-money-gen] coverage (873/1610): Money\.ConversionRateOfSpec.BTC.ADA.compose.produces valid rates (8 mutations)
  2839. 402.02 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)
  2840. 402.07 s [really-safe-money-gen] coverage (870/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2841. 402.14 s [really-safe-money-gen] coverage (872/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2842. 402.17 s [really-safe-money-gen] coverage (877/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.roundtrips with toRational (13 mutations)
  2843. 402.24 s [really-safe-money-gen] coverage (876/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2844. 402.43 s [really-safe-money-gen] coverage (878/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.toRational.produces valid rationals (0 mutations)
  2845. 402.69 s [really-safe-money-gen] coverage (879/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.toRational.produces valid rationals (0 mutations)
  2846. 402.69 s [really-safe-money-gen] coverage (880/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.roundtrips with toRational (13 mutations)
  2847. 403.05 s [really-safe-money-gen] coverage (881/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.produces valid conversion rates (13 mutations)
  2848. 405.17 s [really-safe-money-gen] coverage (883/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2849. 408.04 s [really-safe-money-gen] coverage (885/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2850. 408.27 s [really-safe-money-gen] coverage (886/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2851. 408.28 s [really-safe-money-gen] coverage (887/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  2852. 408.64 s [really-safe-money-gen] coverage (884/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2853. 408.77 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)
  2854. 408.81 s [really-safe-money-gen] coverage (891/1610): Money\.ConversionRateOfSpec.BTC.INR.compose.produces valid rates (8 mutations)
  2855. 408.82 s [really-safe-money-gen] coverage (889/1610): Money\.ConversionRateOfSpec.BTC.USD.invert.produces valid rates (8 mutations)
  2856. 408.88 s [really-safe-money-gen] coverage (882/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2857. 409.08 s [really-safe-money-gen] coverage (888/1610): Money\.ConversionRateOfSpec.BTC.USD.compose.produces valid rates (8 mutations)
  2858. 409.56 s [really-safe-money-gen] coverage (838/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2859. 410.06 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)
  2860. 410.72 s [really-safe-money-gen] coverage (894/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2861. 410.76 s [really-safe-money-gen] coverage (896/1610): Money\.ConversionRateOfSpec.BTC.INR.invert.produces valid rates (8 mutations)
  2862. 411.12 s [really-safe-money-gen] coverage (893/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2863. 411.47 s [really-safe-money-gen] coverage (895/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2864. 411.60 s [really-safe-money-gen] coverage (844/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2865. 411.60 s [really-safe-money-gen] coverage (897/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.roundtrips with toRational (13 mutations)
  2866. 411.61 s [really-safe-money-gen] coverage (864/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.produces valid conversion rates (13 mutations)
  2867. 411.65 s [really-safe-money-gen] coverage (846/1610): Money\.ConversionRateOfSpec.USD.BTC.compose.produces valid rates (8 mutations)
  2868. 411.70 s [really-safe-money-gen] coverage (849/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2869. 411.76 s [really-safe-money-gen] coverage (843/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2870. 411.76 s [really-safe-money-gen] coverage (845/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2871. 411.87 s [really-safe-money-gen] coverage (847/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2872. 412.17 s [really-safe-money-gen] coverage (839/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2873. 412.45 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)
  2874. 412.54 s [really-safe-money-gen] coverage (898/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.produces valid conversion rates (13 mutations)
  2875. 412.63 s [really-safe-money-gen] coverage (840/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2876. 414.55 s [really-safe-money-gen] coverage (841/1610): Money\.ConversionRateOfSpec.USD.INR.invert.produces valid rates (8 mutations)
  2877. 417.14 s [really-safe-money-gen] coverage (903/1610): Money\.ConversionRateOfSpec.BTC.CHF.compose.produces valid rates (8 mutations)
  2878. 417.31 s [really-safe-money-gen] coverage (902/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  2879. 417.84 s [really-safe-money-gen] coverage (908/1610): Money\.ConversionRateOfSpec.BTC.CHF.invert.produces valid rates (8 mutations)
  2880. 417.95 s [really-safe-money-gen] coverage (909/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  2881. 417.98 s [really-safe-money-gen] coverage (911/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2882. 418.00 s [really-safe-money-gen] coverage (912/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.roundtrips with toRational (13 mutations)
  2883. 418.08 s [really-safe-money-gen] coverage (905/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2884. 418.09 s [really-safe-money-gen] coverage (910/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2885. 418.24 s [really-safe-money-gen] coverage (913/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.produces valid conversion rates (13 mutations)
  2886. 418.64 s [really-safe-money-gen] coverage (914/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.toRational.produces valid rationals (0 mutations)
  2887. 419.10 s [really-safe-money-gen] coverage (915/1610): Money\.ConversionRateOfSpec.BTC.BTC.invert.produces valid rates (8 mutations)
  2888. 419.90 s [really-safe-money-gen] coverage (916/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.toRational.produces valid rationals (0 mutations)
  2889. 419.91 s [really-safe-money-gen] coverage (917/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.produces valid conversion rates (13 mutations)
  2890. 420.47 s [really-safe-money-gen] coverage (919/1610): Money\.ConversionRateOfSpec.BTC.BTC.compose.produces valid rates (8 mutations)
  2891. 420.48 s [really-safe-money-gen] coverage (918/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.roundtrips with toRational (13 mutations)
  2892. 420.59 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)
  2893. 420.73 s [really-safe-money-gen] coverage (924/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2894. 420.78 s [really-safe-money-gen] coverage (926/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  2895. 420.90 s [really-safe-money-gen] coverage (932/1610): Money\.QuantisationFactorSpec.digits.works on 1 (0 mutations)
  2896. 421.06 s [really-safe-money-gen] coverage (900/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2897. 421.16 s [really-safe-money-gen] coverage (923/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2898. 421.16 s [really-safe-money-gen] coverage (927/1610): Money\.QuantisationFactorSpec.fromWord32.produces valid quantisation factors (6 mutations)
  2899. 421.29 s [really-safe-money-gen] coverage (901/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  2900. 421.53 s [really-safe-money-gen] coverage (921/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (37 mutations)
  2901. 421.54 s [really-safe-money-gen] coverage (930/1610): Money\.QuantisationFactorSpec.digits.works on 100 (0 mutations)
  2902. 421.74 s [really-safe-money-gen] coverage (931/1610): Money\.QuantisationFactorSpec.digits.produces valid numbers of digits (0 mutations)
  2903. 421.97 s [really-safe-money-gen] coverage (933/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a non-1 integer (23 mutations)
  2904. 423.81 s [really-safe-money-gen] coverage (929/1610): Money\.QuantisationFactorSpec.digits.works on 20 (0 mutations)
  2905. 426.09 s [really-safe-money-gen] coverage (906/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2906. 426.38 s [really-safe-money-gen] coverage (922/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (16 mutations)
  2907. 426.85 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)
  2908. 426.93 s [really-safe-money-gen] coverage (928/1610): Money\.QuantisationFactorSpec.digits.works on 10 (0 mutations)
  2909. 427.19 s [really-safe-money-gen] coverage (925/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  2910. 427.23 s [really-safe-money-gen] coverage (899/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.toRational.produces valid rationals (0 mutations)
  2911. 427.48 s [really-safe-money-gen] coverage (907/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (53 mutations)
  2912. 427.53 s [really-safe-money-gen] coverage (934/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render negative fractionals (17 mutations)
  2913. 427.79 s [really-safe-money-gen] coverage (935/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.produces valid factors (37 mutations)
  2914. 428.11 s [really-safe-money-gen] coverage (936/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a 0 (8 mutations)
  2915. 428.82 s [really-safe-money-gen] coverage (940/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 100 into DecimalLiteral Nothing 1 2 (38 mutations)
  2916. 428.93 s [really-safe-money-gen] coverage (939/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 1 into quantisation factor 10 (31 mutations)
  2917. 429.54 s [really-safe-money-gen] coverage (942/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 3 into quantisation factor 1000 (31 mutations)
  2918. 429.61 s [really-safe-money-gen] coverage (941/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 50 into DecimalLiteral Nothing 2 2 (38 mutations)
  2919. 429.78 s [really-safe-money-gen] coverage (943/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 10 into DecimalLiteral Nothing 1 1 (38 mutations)
  2920. 429.78 s [really-safe-money-gen] coverage (946/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 20 into DecimalLiteral Nothing 5 2 (38 mutations)
  2921. 429.91 s [really-safe-money-gen] coverage (944/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 2 2 into quantisation factor 50 (31 mutations)
  2922. 430.10 s [really-safe-money-gen] coverage (947/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 5 2 into quantisation factor 20 (31 mutations)
  2923. 430.25 s [really-safe-money-gen] coverage (948/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1 into DecimalLiteral Nothing 1 0 (32 mutations)
  2924. 430.29 s [really-safe-money-gen] coverage (950/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1000 into DecimalLiteral Nothing 1 3 (38 mutations)
  2925. 430.56 s [really-safe-money-gen] coverage (949/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 2 into quantisation factor 100 (31 mutations)
  2926. 430.81 s [really-safe-money-gen] coverage (953/1610): Money\.MultiAccountSpec.subtractAmount.computes this example correctly (24 mutations)
  2927. 430.84 s [really-safe-money-gen] coverage (951/1610): Money\.QuantisationFactorSpec.GenValid QuantisationFactor.genValid \:\: Gen QuantisationFactor.only generates valid 'QuantisationFactor's (6 mutations)
  2928. 431.00 s [really-safe-money-gen] coverage (954/1610): Money\.MultiAccountSpec.subtractAmount.adds a non zero amount (5 mutations)
  2929. 431.25 s [really-safe-money-gen] coverage (952/1610): Money\.MultiAccountSpec.subtractAmount.produces valid amounts (44 mutations)
  2930. 431.61 s [really-safe-money-gen] coverage (956/1610): Money\.MultiAccountSpec.add.has a right-identity\: zero (4 mutations)
  2931. 434.30 s [really-safe-money-gen] coverage (957/1610): Money\.MultiAccountSpec.add.is commutative (33 mutations)
  2932. 435.80 s [really-safe-money-gen] coverage (945/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 0 into quantisation factor 1 (31 mutations)
  2933. 436.07 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. 436.08 s [really-safe-money-gen] coverage (955/1610): Money\.MultiAccountSpec.subtractAmount.removes a zero amount (24 mutations)
  2935. 436.88 s [really-safe-money-gen] coverage (960/1610): Money\.MultiAccountSpec.add.has a left-identity\: zero (6 mutations)
  2936. 436.99 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)
  2937. 437.11 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)
  2938. 437.26 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)
  2939. 437.56 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)
  2940. 438.11 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)
  2941. 438.46 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)
  2942. 438.77 s [really-safe-money-gen] coverage (959/1610): Money\.MultiAccountSpec.add.is associative when both succeed (33 mutations)
  2943. 438.85 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)
  2944. 439.01 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)
  2945. 439.21 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)
  2946. 439.34 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)
  2947. 439.39 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)
  2948. 439.66 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)
  2949. 439.69 s [really-safe-money-gen] coverage (994/1610): Money\.MultiAccountSpec.addAmount.removes a zero amount (24 mutations)
  2950. 439.85 s [really-safe-money-gen] coverage (991/1610): Money\.MultiAccountSpec.addAmount.produces valid amounts (45 mutations)
  2951. 439.87 s [really-safe-money-gen] coverage (996/1610): Money\.MultiAccountSpec.lookupAccount.can find an added amount (7 mutations)
  2952. 439.90 s [really-safe-money-gen] coverage (990/1610): Money\.MultiAccountSpec.subtract.has a right-identity\: zero (4 mutations)
  2953. 440.08 s [really-safe-money-gen] coverage (999/1610): Money\.MultiAccountSpec.convertAll.produces the right result in this example (23 mutations)
  2954. 440.19 s [really-safe-money-gen] coverage (998/1610): Money\.MultiAccountSpec.convertAll.produces valid results when converting two currencies to one (28 mutations)
  2955. 440.31 s [really-safe-money-gen] coverage (1000/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.produces valid Int64s (0 mutations)
  2956. 440.79 s [really-safe-money-gen] coverage (1001/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  2957. 443.20 s [really-safe-money-gen] coverage (1002/1610): Money\.AmountOfSpec.USD.CHF.rate.produces valid amounts (10 mutations)
  2958. 446.10 s [really-safe-money-gen] coverage (1004/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 1 (19 mutations)
  2959. 446.13 s [really-safe-money-gen] coverage (1003/1610): Money\.AmountOfSpec.USD.CHF.convert.produces valid amounts (25 mutations)
  2960. 446.70 s [really-safe-money-gen] coverage (1005/1610): Money\.AmountOfSpec.USD.fromRatio.roundtrips with toRatio (19 mutations)
  2961. 448.01 s [really-safe-money-gen] coverage (1007/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 77 (19 mutations)
  2962. 448.28 s [really-safe-money-gen] coverage (993/1610): Money\.MultiAccountSpec.addAmount.adds a non zero amount (5 mutations)
  2963. 448.47 s [really-safe-money-gen] coverage (1006/1610): Money\.AmountOfSpec.USD.fromRatio.produces valid AmountOfs (19 mutations)
  2964. 450.02 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)
  2965. 450.22 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)
  2966. 450.42 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)
  2967. 450.99 s [really-safe-money-gen] coverage (997/1610): Money\.MultiAccountSpec.lookupAccount.produces valid amounts (4 mutations)
  2968. 451.41 s [really-safe-money-gen] coverage (992/1610): Money\.MultiAccountSpec.addAmount.computes this example correctly (18 mutations)
  2969. 451.44 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)
  2970. 451.60 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)
  2971. 451.79 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)
  2972. 452.33 s [really-safe-money-gen] coverage (995/1610): Money\.MultiAccountSpec.subtractAccount.produces valid amounts (46 mutations)
  2973. 452.74 s [really-safe-money-gen] coverage (970/1610): Money\.MultiAccountSpec.zero.is valid (2 mutations)
  2974. 452.74 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)
  2975. 453.06 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)
  2976. 453.33 s [really-safe-money-gen] coverage (971/1610): Money\.MultiAccountSpec.fromAccount.produces valid amounts (18 mutations)
  2977. 453.61 s [really-safe-money-gen] coverage (972/1610): Money\.MultiAccountSpec.addAccount.produces valid amounts (46 mutations)
  2978. 453.69 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)
  2979. 454.26 s [really-safe-money-gen] coverage (989/1610): Money\.MultiAccountSpec.subtract.produces valid amounts (44 mutations)
  2980. 454.53 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)
  2981. 455.42 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)
  2982. 455.84 s [really-safe-money-gen] coverage (968/1610): Money\.MultiAccountSpec.sum.produces valid amounts (44 mutations)
  2983. 458.20 s [really-safe-money-gen] coverage (1012/1610): Money\.AmountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (9 mutations)
  2984. 460.17 s [really-safe-money-gen] coverage (1018/1610): Money\.AmountOfSpec.USD.fromMinimalQuantisations.produces valid amounts (0 mutations)
  2985. 461.63 s [really-safe-money-gen] coverage (1016/1610): Money\.AmountOfSpec.USD.add.is commutative (9 mutations)
  2986. 461.85 s [really-safe-money-gen] coverage (1019/1610): Money\.AmountOfSpec.USD.fromRational.roundtrips with toRational (19 mutations)
  2987. 463.32 s [really-safe-money-gen] coverage (1020/1610): Money\.AmountOfSpec.USD.fromRational.fails on -1 (8 mutations)
  2988. 463.96 s [really-safe-money-gen] coverage (1022/1610): Money\.AmountOfSpec.USD.fromRational.produces valid Amounts (19 mutations)
  2989. 464.80 s [really-safe-money-gen] coverage (1021/1610): Money\.AmountOfSpec.USD.fromRational.fails on +Infinity (2 mutations)
  2990. 464.98 s [really-safe-money-gen] coverage (1023/1610): Money\.AmountOfSpec.USD.fromRational.fails on NaN (2 mutations)
  2991. 465.25 s [really-safe-money-gen] coverage (1024/1610): Money\.AmountOfSpec.USD.fromRational.fails on -Infinity (2 mutations)
  2992. 466.20 s [really-safe-money-gen] coverage (1027/1610): Money\.AmountOfSpec.USD.toRational.produces valid Rationals (0 mutations)
  2993. 467.14 s [really-safe-money-gen] coverage (1025/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 1 (19 mutations)
  2994. 467.22 s [really-safe-money-gen] coverage (1029/1610): Money\.AmountOfSpec.USD.zero.is valid (1 mutations)
  2995. 467.63 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. 467.91 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)
  2997. 468.04 s [really-safe-money-gen] coverage (1026/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 0 (19 mutations)
  2998. 468.11 s [really-safe-money-gen] coverage (1033/1610): Money\.AmountOfSpec.USD.fromDouble.produces valid amounts (30 mutations)
  2999. 468.73 s [really-safe-money-gen] coverage (1031/1610): Money\.AmountOfSpec.USD.BTC.convert.produces valid amounts (25 mutations)
  3000. 470.07 s [really-safe-money-gen] coverage (1036/1610): Money\.AmountOfSpec.USD.fromDouble.fails on +Infinity (10 mutations)
  3001. 471.01 s [really-safe-money-gen] coverage (1032/1610): Money\.AmountOfSpec.USD.BTC.rate.produces valid amounts (10 mutations)
  3002. 471.15 s [really-safe-money-gen] coverage (1038/1610): Money\.AmountOfSpec.USD.fromDouble.fails on NaN (8 mutations)
  3003. 471.65 s [really-safe-money-gen] coverage (1034/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 0 (30 mutations)
  3004. 471.79 s [really-safe-money-gen] coverage (1035/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 1 (30 mutations)
  3005. 472.30 s [really-safe-money-gen] coverage (1037/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -Infinity (6 mutations)
  3006. 473.58 s [really-safe-money-gen] coverage (1039/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -1 (6 mutations)
  3007. 473.76 s [really-safe-money-gen] coverage (1041/1610): Money\.AmountOfSpec.USD.INR.convert.produces valid amounts (25 mutations)
  3008. 476.98 s [really-safe-money-gen] coverage (1040/1610): Money\.AmountOfSpec.USD.fraction.produces valid amounts (17 mutations)
  3009. 477.62 s [really-safe-money-gen] coverage (1042/1610): Money\.AmountOfSpec.USD.INR.rate.produces valid amounts (10 mutations)
  3010. 483.79 s [really-safe-money-gen] coverage (1043/1610): Money\.AmountOfSpec.USD.USD.rate.produces valid amounts (10 mutations)
  3011. 483.87 s [really-safe-money-gen] coverage (1045/1610): Money\.AmountOfSpec.USD.sum.produces valid amounts (10 mutations)
  3012. 485.67 s [really-safe-money-gen] coverage (1044/1610): Money\.AmountOfSpec.USD.USD.convert.produces valid amounts (25 mutations)
  3013. 486.67 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)
  3014. 486.82 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)
  3015. 486.88 s [really-safe-money-gen] coverage (1046/1610): Money\.AmountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3016. 488.18 s [really-safe-money-gen] coverage (938/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (40 mutations)
  3017. 488.88 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)
  3018. 489.38 s [really-safe-money-gen] coverage (1047/1610): Money\.AmountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3019. 490.17 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)
  3020. 491.26 s [really-safe-money-gen] coverage (1064/1610): Money\.AmountOfSpec.USD.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3021. 491.56 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)
  3022. 491.98 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)
  3023. 492.62 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)
  3024. 492.92 s [really-safe-money-gen] coverage (1051/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"'s (0 mutations)
  3025. 493.87 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)
  3026. 493.87 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)
  3027. 494.08 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)
  3028. 494.11 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)
  3029. 495.36 s [really-safe-money-gen] coverage (937/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.roundtrips with fromDecimalLiteral (70 mutations)
  3030. 495.84 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)
  3031. 496.84 s [really-safe-money-gen] coverage (1011/1610): Money\.AmountOfSpec.USD.fromRatio.fails on +Infinity (2 mutations)
  3032. 497.44 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)
  3033. 498.50 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)
  3034. 499.44 s [really-safe-money-gen] coverage (1065/1610): Money\.AmountOfSpec.USD.format.produces valid strings (3 mutations)
  3035. 500.00 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)
  3036. 505.41 s [really-safe-money-gen] coverage (1067/1610): Money\.AmountOfSpec.USD.multiply.is absorbed by 0 (10 mutations)
  3037. 505.53 s [really-safe-money-gen] coverage (1068/1610): Money\.AmountOfSpec.USD.multiply.is distributive with add when both succeed (17 mutations)
  3038. 507.58 s [really-safe-money-gen] coverage (1100/1610): Money\.AmountOfSpec.ADA.toRational.produces valid Rationals (0 mutations)
  3039. 508.70 s [really-safe-money-gen] coverage (1013/1610): Money\.AmountOfSpec.USD.add.has a right-identity\: zero (10 mutations)
  3040. 509.15 s [really-safe-money-gen] coverage (1070/1610): Money\.AmountOfSpec.USD.multiply.produces valid amounts (9 mutations)
  3041. 509.82 s [really-safe-money-gen] coverage (1066/1610): Money\.AmountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3042. 511.12 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)
  3043. 512.18 s [really-safe-money-gen] coverage (1010/1610): Money\.AmountOfSpec.USD.fromRatio.fails on 7\.123 (13 mutations)
  3044. 512.69 s [really-safe-money-gen] coverage (1069/1610): Money\.AmountOfSpec.USD.multiply.has an identity\: 1 (9 mutations)
  3045. 513.94 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)
  3046. 515.16 s [really-safe-money-gen] coverage (1071/1610): Money\.AmountOfSpec.USD.toDouble.produces valid Doubles (0 mutations)
  3047. 515.80 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)
  3048. 516.77 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)
  3049. 516.83 s [really-safe-money-gen] coverage (1008/1610): Money\.AmountOfSpec.USD.fromRatio.fails on NaN (2 mutations)
  3050. 516.86 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)
  3051. 516.89 s [really-safe-money-gen] coverage (1074/1610): Money\.AmountOfSpec.USD.distribute.produces results that sum up to the greater whole (29 mutations)
  3052. 517.55 s [really-safe-money-gen] coverage (1073/1610): Money\.AmountOfSpec.USD.distribute.produces valid amounts (21 mutations)
  3053. 517.80 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)
  3054. 518.47 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. 518.50 s [really-safe-money-gen] coverage (1102/1610): Money\.AmountOfSpec.ADA.fromRatio.roundtrips with toRatio (19 mutations)
  3056. 519.00 s [really-safe-money-gen] coverage (1082/1610): Money\.AmountOfSpec.USD.ADA.rate.produces valid amounts (10 mutations)
  3057. 519.29 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)
  3058. 519.34 s [really-safe-money-gen] coverage (1015/1610): Money\.AmountOfSpec.USD.add.has a left-identity\: zero (10 mutations)
  3059. 520.49 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)
  3060. 521.06 s [really-safe-money-gen] coverage (1089/1610): Money\.AmountOfSpec.ADA.BTC.convert.produces valid amounts (25 mutations)
  3061. 522.44 s [really-safe-money-gen] coverage (1090/1610): Money\.AmountOfSpec.ADA.BTC.rate.produces valid amounts (10 mutations)
  3062. 524.33 s [really-safe-money-gen] coverage (958/1610): Money\.MultiAccountSpec.add.produces valid amounts (44 mutations)
  3063. 525.41 s [really-safe-money-gen] coverage (1101/1610): Money\.AmountOfSpec.ADA.fromRatio.produces valid AmountOfs (19 mutations)
  3064. 525.43 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)
  3065. 526.11 s [really-safe-money-gen] coverage (1120/1610): Money\.AmountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3066. 527.07 s [really-safe-money-gen] coverage (1099/1610): Money\.AmountOfSpec.ADA.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3067. 527.63 s [really-safe-money-gen] coverage (1124/1610): Money\.AmountOfSpec.ADA.add.produces valid amounts (9 mutations)
  3068. 530.34 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)
  3069. 531.59 s [really-safe-money-gen] coverage (1118/1610): Money\.AmountOfSpec.ADA.sum.produces valid amounts (10 mutations)
  3070. 533.77 s [really-safe-money-gen] coverage (1116/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 0 (19 mutations)
  3071. 534.23 s [really-safe-money-gen] coverage (1119/1610): Money\.AmountOfSpec.ADA.toDouble.produces valid Doubles (0 mutations)
  3072. 536.70 s [really-safe-money-gen] coverage (1122/1610): Money\.AmountOfSpec.ADA.add.has a right-identity\: zero (10 mutations)
  3073. 536.89 s [really-safe-money-gen] coverage (1117/1610): Money\.AmountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3074. 539.09 s [really-safe-money-gen] coverage (1123/1610): Money\.AmountOfSpec.ADA.add.is associative when both succeed (9 mutations)
  3075. 540.10 s [really-safe-money-gen] coverage (1125/1610): Money\.AmountOfSpec.ADA.add.is commutative (9 mutations)
  3076. 540.73 s [really-safe-money-gen] coverage (1121/1610): Money\.AmountOfSpec.ADA.add.has a left-identity\: zero (10 mutations)
  3077. 541.27 s [really-safe-money-gen] coverage (1128/1610): Money\.AmountOfSpec.ADA.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3078. 541.43 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)
  3079. 541.89 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)
  3080. 543.06 s [really-safe-money-gen] coverage (1106/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on NaN (2 mutations)
  3081. 543.09 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)
  3082. 543.53 s [really-safe-money-gen] coverage (1127/1610): Money\.AmountOfSpec.ADA.USD.convert.produces valid amounts (25 mutations)
  3083. 543.76 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)
  3084. 544.31 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)
  3085. 545.51 s [really-safe-money-gen] coverage (1130/1610): Money\.AmountOfSpec.ADA.distribute.produces results that sum up to the greater whole (29 mutations)
  3086. 545.76 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)
  3087. 545.77 s [really-safe-money-gen] coverage (1145/1610): Money\.AmountOfSpec.ADA.ADA.convert.produces valid amounts (25 mutations)
  3088. 547.36 s [really-safe-money-gen] coverage (1126/1610): Money\.AmountOfSpec.ADA.USD.rate.produces valid amounts (10 mutations)
  3089. 547.60 s [really-safe-money-gen] coverage (1137/1610): Money\.AmountOfSpec.ADA.distribute.produces valid amounts (21 mutations)
  3090. 548.94 s [really-safe-money-gen] coverage (1144/1610): Money\.AmountOfSpec.ADA.ADA.rate.produces valid amounts (10 mutations)
  3091. 549.98 s [really-safe-money-gen] coverage (1154/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 0 (30 mutations)
  3092. 550.01 s [really-safe-money-gen] coverage (1138/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3093. 550.07 s [really-safe-money-gen] coverage (1142/1610): Money\.AmountOfSpec.ADA.format.produces valid strings (3 mutations)
  3094. 550.10 s [really-safe-money-gen] coverage (1141/1610): Money\.AmountOfSpec.ADA.CHF.rate.produces valid amounts (10 mutations)
  3095. 551.28 s [really-safe-money-gen] coverage (1139/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3096. 552.42 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)
  3097. 553.13 s [really-safe-money-gen] coverage (1147/1610): Money\.AmountOfSpec.ADA.INR.rate.produces valid amounts (10 mutations)
  3098. 553.93 s [really-safe-money-gen] coverage (1140/1610): Money\.AmountOfSpec.ADA.CHF.convert.produces valid amounts (25 mutations)
  3099. 556.57 s [really-safe-money-gen] coverage (1150/1610): Money\.AmountOfSpec.ADA.multiply.is absorbed by 0 (10 mutations)
  3100. 557.79 s [really-safe-money-gen] coverage (1146/1610): Money\.AmountOfSpec.ADA.fraction.produces valid amounts (17 mutations)
  3101. 560.32 s [really-safe-money-gen] coverage (1148/1610): Money\.AmountOfSpec.ADA.INR.convert.produces valid amounts (25 mutations)
  3102. 560.90 s [really-safe-money-gen] coverage (1149/1610): Money\.AmountOfSpec.ADA.multiply.produces valid amounts (9 mutations)
  3103. 562.57 s [really-safe-money-gen] coverage (1151/1610): Money\.AmountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3104. 563.20 s [really-safe-money-gen] coverage (1157/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on NaN (8 mutations)
  3105. 564.57 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)
  3106. 565.97 s [really-safe-money-gen] coverage (1161/1610): Money\.AmountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3107. 567.01 s [really-safe-money-gen] coverage (1158/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -Infinity (6 mutations)
  3108. 567.58 s [really-safe-money-gen] coverage (1160/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -1 (6 mutations)
  3109. 568.38 s [really-safe-money-gen] coverage (1156/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 1 (30 mutations)
  3110. 568.67 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)
  3111. 569.31 s [really-safe-money-gen] coverage (1152/1610): Money\.AmountOfSpec.ADA.multiply.is distributive with add when both succeed (17 mutations)
  3112. 569.92 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)
  3113. 570.62 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)
  3114. 571.09 s [really-safe-money-gen] coverage (1155/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on +Infinity (10 mutations)
  3115. 571.20 s [really-safe-money-gen] coverage (1153/1610): Money\.AmountOfSpec.ADA.multiply.has an identity\: 1 (9 mutations)
  3116. 571.28 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)
  3117. 571.53 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)
  3118. 571.62 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)
  3119. 573.37 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)
  3120. 574.86 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)
  3121. 576.03 s [really-safe-money-gen] coverage (1159/1610): Money\.AmountOfSpec.ADA.fromDouble.produces valid amounts (30 mutations)
  3122. 576.04 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)
  3123. 576.11 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)
  3124. 577.06 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)
  3125. 577.37 s [really-safe-money-gen] coverage (1180/1610): Money\.AmountOfSpec.INR.distribute.produces results that sum up to the greater whole (29 mutations)
  3126. 579.10 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)
  3127. 582.46 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)
  3128. 583.58 s [really-safe-money-gen] coverage (1199/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 0 (30 mutations)
  3129. 584.20 s [really-safe-money-gen] coverage (1193/1610): Money\.AmountOfSpec.INR.ADA.convert.produces valid amounts (25 mutations)
  3130. 584.21 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)
  3131. 584.41 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)
  3132. 584.55 s [really-safe-money-gen] coverage (1104/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on +Infinity (2 mutations)
  3133. 584.66 s [really-safe-money-gen] coverage (1192/1610): Money\.AmountOfSpec.INR.ADA.rate.produces valid amounts (10 mutations)
  3134. 584.77 s [really-safe-money-gen] coverage (1178/1610): Money\.AmountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3135. 584.95 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)
  3136. 585.46 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)
  3137. 585.77 s [really-safe-money-gen] coverage (1179/1610): Money\.AmountOfSpec.INR.toDouble.produces valid Doubles (0 mutations)
  3138. 587.83 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)
  3139. 588.01 s [really-safe-money-gen] coverage (1190/1610): Money\.AmountOfSpec.INR.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3140. 588.70 s [really-safe-money-gen] coverage (1181/1610): Money\.AmountOfSpec.INR.distribute.produces valid amounts (21 mutations)
  3141. 590.44 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)
  3142. 590.58 s [really-safe-money-gen] coverage (1195/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 1 (30 mutations)
  3143. 591.04 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)
  3144. 592.15 s [really-safe-money-gen] coverage (1196/1610): Money\.AmountOfSpec.INR.fromDouble.fails on NaN (8 mutations)
  3145. 592.74 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)
  3146. 593.84 s [really-safe-money-gen] coverage (1198/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -1 (6 mutations)
  3147. 594.36 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)
  3148. 594.60 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)
  3149. 595.70 s [really-safe-money-gen] coverage (1197/1610): Money\.AmountOfSpec.INR.fromDouble.fails on +Infinity (10 mutations)
  3150. 596.04 s [really-safe-money-gen] coverage (1220/1610): Money\.AmountOfSpec.INR.multiply.produces valid amounts (9 mutations)
  3151. 596.30 s [really-safe-money-gen] coverage (1115/1610): Money\.AmountOfSpec.ADA.fromRational.produces valid Amounts (19 mutations)
  3152. 596.30 s [really-safe-money-gen] coverage (1191/1610): Money\.AmountOfSpec.INR.fraction.produces valid amounts (17 mutations)
  3153. 597.12 s [really-safe-money-gen] coverage (1194/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -Infinity (6 mutations)
  3154. 597.74 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)
  3155. 597.84 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)
  3156. 601.63 s [really-safe-money-gen] coverage (1200/1610): Money\.AmountOfSpec.INR.fromDouble.produces valid amounts (30 mutations)
  3157. 602.70 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)
  3158. 602.72 s [really-safe-money-gen] coverage (1189/1610): Money\.AmountOfSpec.INR.zero.is valid (1 mutations)
  3159. 605.75 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)
  3160. 606.39 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)
  3161. 607.61 s [really-safe-money-gen] coverage (1105/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 1 (19 mutations)
  3162. 607.88 s [really-safe-money-gen] coverage (1081/1610): Money\.AmountOfSpec.USD.ADA.convert.produces valid amounts (25 mutations)
  3163. 609.14 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)
  3164. 609.25 s [really-safe-money-gen] coverage (1222/1610): Money\.AmountOfSpec.INR.multiply.has an identity\: 1 (9 mutations)
  3165. 610.18 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)
  3166. 610.20 s [really-safe-money-gen] coverage (1228/1610): Money\.AmountOfSpec.INR.fromRational.roundtrips with toRational (19 mutations)
  3167. 610.23 s [really-safe-money-gen] coverage (1110/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 1 (19 mutations)
  3168. 611.07 s [really-safe-money-gen] coverage (1111/1610): Money\.AmountOfSpec.ADA.fromRational.roundtrips with toRational (19 mutations)
  3169. 611.25 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)
  3170. 611.39 s [really-safe-money-gen] coverage (1014/1610): Money\.AmountOfSpec.USD.add.produces valid amounts (9 mutations)
  3171. 611.94 s [really-safe-money-gen] coverage (1103/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 0 (20 mutations)
  3172. 612.46 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)
  3173. 613.66 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)
  3174. 614.27 s [really-safe-money-gen] coverage (1223/1610): Money\.AmountOfSpec.INR.multiply.is distributive with add when both succeed (17 mutations)
  3175. 614.96 s [really-safe-money-gen] coverage (1225/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3176. 614.97 s [really-safe-money-gen] coverage (1233/1610): Money\.AmountOfSpec.INR.fromRational.fails on -1 (8 mutations)
  3177. 615.58 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)
  3178. 617.97 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)
  3179. 618.00 s [really-safe-money-gen] coverage (1232/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 1 (19 mutations)
  3180. 618.82 s [really-safe-money-gen] coverage (1227/1610): Money\.AmountOfSpec.INR.fromRational.fails on -Infinity (2 mutations)
  3181. 619.38 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)
  3182. 619.39 s [really-safe-money-gen] coverage (1219/1610): Money\.AmountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3183. 619.50 s [really-safe-money-gen] coverage (1229/1610): Money\.AmountOfSpec.INR.fromRational.fails on +Infinity (2 mutations)
  3184. 619.57 s [really-safe-money-gen] coverage (1017/1610): Money\.AmountOfSpec.USD.add.is associative when both succeed (9 mutations)
  3185. 620.90 s [really-safe-money-gen] coverage (1221/1610): Money\.AmountOfSpec.INR.multiply.is absorbed by 0 (10 mutations)
  3186. 622.45 s [really-safe-money-gen] coverage (1238/1610): Money\.AmountOfSpec.INR.add.has a right-identity\: zero (10 mutations)
  3187. 623.41 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)
  3188. 623.67 s [really-safe-money-gen] coverage (1107/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 77 (19 mutations)
  3189. 624.27 s [really-safe-money-gen] coverage (1226/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 0 (19 mutations)
  3190. 624.41 s [really-safe-money-gen] coverage (1230/1610): Money\.AmountOfSpec.INR.fromRational.fails on NaN (2 mutations)
  3191. 625.41 s [really-safe-money-gen] coverage (1224/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3192. 625.98 s [really-safe-money-gen] coverage (1236/1610): Money\.AmountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3193. 625.99 s [really-safe-money-gen] coverage (1235/1610): Money\.AmountOfSpec.INR.add.is associative when both succeed (9 mutations)
  3194. 626.80 s [really-safe-money-gen] coverage (1009/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 0 (20 mutations)
  3195. 628.46 s [really-safe-money-gen] coverage (1254/1610): Money\.AmountOfSpec.INR.fromRatio.roundtrips with toRatio (19 mutations)
  3196. 629.47 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)
  3197. 629.97 s [really-safe-money-gen] coverage (1256/1610): Money\.AmountOfSpec.INR.fromRatio.fails on 7\.123 (13 mutations)
  3198. 632.13 s [really-safe-money-gen] coverage (1218/1610): Money\.AmountOfSpec.INR.CHF.rate.produces valid amounts (10 mutations)
  3199. 633.48 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)
  3200. 633.52 s [really-safe-money-gen] coverage (1234/1610): Money\.AmountOfSpec.INR.add.is commutative (9 mutations)
  3201. 634.08 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)
  3202. 635.51 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)
  3203. 636.11 s [really-safe-money-gen] coverage (1237/1610): Money\.AmountOfSpec.INR.add.has a left-identity\: zero (10 mutations)
  3204. 636.72 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)
  3205. 636.86 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)
  3206. 637.33 s [really-safe-money-gen] coverage (1231/1610): Money\.AmountOfSpec.INR.fromRational.produces valid Amounts (19 mutations)
  3207. 637.74 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)
  3208. 638.71 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)
  3209. 639.03 s [really-safe-money-gen] coverage (1247/1610): Money\.AmountOfSpec.INR.INR.convert.produces valid amounts (25 mutations)
  3210. 639.12 s [really-safe-money-gen] coverage (1097/1610): Money\.AmountOfSpec.ADA.zero.is valid (1 mutations)
  3211. 639.60 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)
  3212. 640.14 s [really-safe-money-gen] coverage (1255/1610): Money\.AmountOfSpec.INR.fromRatio.produces valid AmountOfs (19 mutations)
  3213. 640.14 s [really-safe-money-gen] coverage (1269/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3214. 640.66 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)
  3215. 640.78 s [really-safe-money-gen] coverage (1251/1610): Money\.AmountOfSpec.INR.fromRatio.fails on +Infinity (2 mutations)
  3216. 642.33 s [really-safe-money-gen] coverage (1249/1610): Money\.AmountOfSpec.INR.BTC.convert.produces valid amounts (25 mutations)
  3217. 642.94 s [really-safe-money-gen] coverage (1113/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -Infinity (2 mutations)
  3218. 643.22 s [really-safe-money-gen] coverage (1270/1610): Money\.AmountOfSpec.BTC.INR.rate.produces valid amounts (10 mutations)
  3219. 643.95 s [really-safe-money-gen] coverage (1108/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on 7\.123 (13 mutations)
  3220. 644.96 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)
  3221. 645.68 s [really-safe-money-gen] coverage (1257/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 77 (19 mutations)
  3222. 646.65 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)
  3223. 646.78 s [really-safe-money-gen] coverage (1265/1610): Money\.AmountOfSpec.INR.USD.convert.produces valid amounts (25 mutations)
  3224. 647.49 s [really-safe-money-gen] coverage (1266/1610): Money\.AmountOfSpec.INR.USD.rate.produces valid amounts (10 mutations)
  3225. 647.80 s [really-safe-money-gen] coverage (1252/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 1 (19 mutations)
  3226. 648.06 s [really-safe-money-gen] coverage (1114/1610): Money\.AmountOfSpec.ADA.fromRational.fails on +Infinity (2 mutations)
  3227. 648.20 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)
  3228. 648.97 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)
  3229. 650.11 s [really-safe-money-gen] coverage (1217/1610): Money\.AmountOfSpec.INR.CHF.convert.produces valid amounts (25 mutations)
  3230. 650.21 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)
  3231. 650.97 s [really-safe-money-gen] coverage (1253/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 0 (20 mutations)
  3232. 652.09 s [really-safe-money-gen] coverage (1271/1610): Money\.AmountOfSpec.BTC.INR.convert.produces valid amounts (25 mutations)
  3233. 652.89 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)
  3234. 653.05 s [really-safe-money-gen] coverage (1268/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3235. 654.38 s [really-safe-money-gen] coverage (1267/1610): Money\.AmountOfSpec.BTC.format.produces valid strings (3 mutations)
  3236. 655.98 s [really-safe-money-gen] coverage (1250/1610): Money\.AmountOfSpec.INR.fromRatio.fails on NaN (2 mutations)
  3237. 656.04 s [really-safe-money-gen] coverage (1298/1610): Money\.AmountOfSpec.BTC.fromRational.fails on NaN (2 mutations)
  3238. 657.07 s [really-safe-money-gen] coverage (1239/1610): Money\.AmountOfSpec.INR.add.produces valid amounts (9 mutations)
  3239. 657.32 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)
  3240. 657.83 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)
  3241. 659.79 s [really-safe-money-gen] coverage (1245/1610): Money\.AmountOfSpec.INR.format.produces valid strings (3 mutations)
  3242. 659.89 s [really-safe-money-gen] coverage (1242/1610): Money\.AmountOfSpec.INR.toRational.produces valid Rationals (0 mutations)
  3243. 660.05 s [really-safe-money-gen] coverage (1291/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 0 (20 mutations)
  3244. 660.37 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)
  3245. 661.34 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)
  3246. 661.41 s [really-safe-money-gen] coverage (1246/1610): Money\.AmountOfSpec.INR.INR.rate.produces valid amounts (10 mutations)
  3247. 661.93 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)
  3248. 664.53 s [really-safe-money-gen] coverage (1289/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on NaN (2 mutations)
  3249. 664.60 s [really-safe-money-gen] coverage (1293/1610): Money\.AmountOfSpec.BTC.fromRatio.produces valid AmountOfs (19 mutations)
  3250. 665.97 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)
  3251. 666.73 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)
  3252. 667.04 s [really-safe-money-gen] coverage (1297/1610): Money\.AmountOfSpec.BTC.CHF.rate.produces valid amounts (10 mutations)
  3253. 667.60 s [really-safe-money-gen] coverage (1244/1610): Money\.AmountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3254. 668.12 s [really-safe-money-gen] coverage (1243/1610): Money\.AmountOfSpec.INR.sum.produces valid amounts (10 mutations)
  3255. 668.31 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)
  3256. 668.90 s [really-safe-money-gen] coverage (1248/1610): Money\.AmountOfSpec.INR.BTC.rate.produces valid amounts (10 mutations)
  3257. 668.90 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)
  3258. 668.98 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)
  3259. 669.59 s [really-safe-money-gen] coverage (1292/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 1 (19 mutations)
  3260. 671.71 s [really-safe-money-gen] coverage (1109/1610): Money\.AmountOfSpec.ADA.fromRational.fails on NaN (2 mutations)
  3261. 674.36 s [really-safe-money-gen] coverage (1300/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -1 (8 mutations)
  3262. 674.84 s [really-safe-money-gen] coverage (1299/1610): Money\.AmountOfSpec.BTC.fromRational.produces valid Amounts (19 mutations)
  3263. 675.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)
  3264. 675.58 s [really-safe-money-gen] coverage (1296/1610): Money\.AmountOfSpec.BTC.CHF.convert.produces valid amounts (25 mutations)
  3265. 676.75 s [really-safe-money-gen] coverage (1240/1610): Money\.AmountOfSpec.INR.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3266. 676.82 s [really-safe-money-gen] coverage (1322/1610): Money\.AmountOfSpec.BTC.add.has a right-identity\: zero (10 mutations)
  3267. 677.29 s [really-safe-money-gen] coverage (1288/1610): Money\.AmountOfSpec.BTC.fromRatio.roundtrips with toRatio (19 mutations)
  3268. 677.73 s [really-safe-money-gen] coverage (1324/1610): Money\.AmountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3269. 678.04 s [really-safe-money-gen] coverage (1331/1610): Money\.AmountOfSpec.BTC.BTC.convert.produces valid amounts (25 mutations)
  3270. 680.25 s [really-safe-money-gen] coverage (1337/1610): Money\.AmountOfSpec.BTC.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3271. 680.99 s [really-safe-money-gen] coverage (1329/1610): Money\.AmountOfSpec.BTC.ADA.rate.produces valid amounts (10 mutations)
  3272. 681.01 s [really-safe-money-gen] coverage (1295/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on 7\.123 (13 mutations)
  3273. 681.05 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)
  3274. 681.22 s [really-safe-money-gen] coverage (1302/1610): Money\.AmountOfSpec.BTC.fromRational.fails on +Infinity (2 mutations)
  3275. 681.45 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)
  3276. 682.42 s [really-safe-money-gen] coverage (1301/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 1 (19 mutations)
  3277. 684.27 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)
  3278. 684.30 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)
  3279. 684.83 s [really-safe-money-gen] coverage (1332/1610): Money\.AmountOfSpec.BTC.BTC.rate.produces valid amounts (10 mutations)
  3280. 685.55 s [really-safe-money-gen] coverage (1112/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -1 (8 mutations)
  3281. 685.65 s [really-safe-money-gen] coverage (1333/1610): Money\.AmountOfSpec.BTC.toDouble.produces valid Doubles (0 mutations)
  3282. 686.19 s [really-safe-money-gen] coverage (1335/1610): Money\.AmountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3283. 686.47 s [really-safe-money-gen] coverage (1294/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on +Infinity (2 mutations)
  3284. 686.74 s [really-safe-money-gen] coverage (1330/1610): Money\.AmountOfSpec.BTC.zero.is valid (1 mutations)
  3285. 687.54 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)
  3286. 687.78 s [really-safe-money-gen] coverage (1290/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 77 (19 mutations)
  3287. 688.48 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)
  3288. 688.59 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)
  3289. 689.84 s [really-safe-money-gen] coverage (1325/1610): Money\.AmountOfSpec.BTC.add.is commutative (9 mutations)
  3290. 690.44 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)
  3291. 690.91 s [really-safe-money-gen] coverage (1311/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -Infinity (6 mutations)
  3292. 691.37 s [really-safe-money-gen] coverage (1315/1610): Money\.AmountOfSpec.BTC.USD.convert.produces valid amounts (25 mutations)
  3293. 692.64 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)
  3294. 693.98 s [really-safe-money-gen] coverage (1360/1610): Money\.AmountOfSpec.CHF.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3295. 694.39 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)
  3296. 695.75 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)
  3297. 695.83 s [really-safe-money-gen] coverage (1314/1610): Money\.AmountOfSpec.BTC.USD.rate.produces valid amounts (10 mutations)
  3298. 698.07 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)
  3299. 698.35 s [really-safe-money-gen] coverage (1365/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 1 (19 mutations)
  3300. 698.94 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)
  3301. 699.44 s [really-safe-money-gen] coverage (1367/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 77 (19 mutations)
  3302. 699.47 s [really-safe-money-gen] coverage (1339/1610): Money\.AmountOfSpec.BTC.sum.produces valid amounts (10 mutations)
  3303. 699.66 s [really-safe-money-gen] coverage (1364/1610): Money\.AmountOfSpec.CHF.fromRatio.roundtrips with toRatio (19 mutations)
  3304. 701.02 s [really-safe-money-gen] coverage (1323/1610): Money\.AmountOfSpec.BTC.add.has a left-identity\: zero (10 mutations)
  3305. 701.08 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)
  3306. 701.68 s [really-safe-money-gen] coverage (1361/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 0 (20 mutations)
  3307. 702.18 s [really-safe-money-gen] coverage (1342/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is reflexive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  3308. 702.70 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)
  3309. 703.46 s [really-safe-money-gen] coverage (1362/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on +Infinity (2 mutations)
  3310. 703.59 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)
  3311. 704.94 s [really-safe-money-gen] coverage (1309/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -1 (6 mutations)
  3312. 706.12 s [really-safe-money-gen] coverage (1312/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on NaN (8 mutations)
  3313. 706.87 s [really-safe-money-gen] coverage (1353/1610): Money\.AmountOfSpec.BTC.multiply.produces valid amounts (9 mutations)
  3314. 708.19 s [really-safe-money-gen] coverage (1310/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 0 (30 mutations)
  3315. 708.31 s [really-safe-money-gen] coverage (1359/1610): Money\.AmountOfSpec.CHF.USD.rate.produces valid amounts (10 mutations)
  3316. 710.45 s [really-safe-money-gen] coverage (1308/1610): Money\.AmountOfSpec.BTC.fromDouble.produces valid amounts (30 mutations)
  3317. 710.72 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)
  3318. 712.83 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)
  3319. 712.91 s [really-safe-money-gen] coverage (1304/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 0 (19 mutations)
  3320. 713.40 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)
  3321. 713.63 s [really-safe-money-gen] coverage (1354/1610): Money\.AmountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3322. 714.25 s [really-safe-money-gen] coverage (1307/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 1 (30 mutations)
  3323. 714.87 s [really-safe-money-gen] coverage (1363/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on NaN (2 mutations)
  3324. 716.06 s [really-safe-money-gen] coverage (1346/1610): Money\.AmountOfSpec.BTC.distribute.produces valid amounts (21 mutations)
  3325. 717.09 s [really-safe-money-gen] coverage (1326/1610): Money\.AmountOfSpec.BTC.add.produces valid amounts (9 mutations)
  3326. 717.10 s [really-safe-money-gen] coverage (1366/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on 7\.123 (13 mutations)
  3327. 717.64 s [really-safe-money-gen] coverage (1357/1610): Money\.AmountOfSpec.CHF.INR.rate.produces valid amounts (10 mutations)
  3328. 718.34 s [really-safe-money-gen] coverage (1347/1610): Money\.AmountOfSpec.BTC.distribute.produces results that sum up to the greater whole (29 mutations)
  3329. 719.61 s [really-safe-money-gen] coverage (1327/1610): Money\.AmountOfSpec.BTC.add.is associative when both succeed (9 mutations)
  3330. 719.61 s [really-safe-money-gen] coverage (1369/1610): Money\.AmountOfSpec.CHF.fraction.produces valid amounts (17 mutations)
  3331. 720.44 s [really-safe-money-gen] coverage (1356/1610): Money\.AmountOfSpec.CHF.INR.convert.produces valid amounts (25 mutations)
  3332. 720.75 s [really-safe-money-gen] coverage (1351/1610): Money\.AmountOfSpec.BTC.multiply.is absorbed by 0 (10 mutations)
  3333. 720.94 s [really-safe-money-gen] coverage (1370/1610): Money\.AmountOfSpec.CHF.multiply.has an identity\: 1 (9 mutations)
  3334. 721.63 s [really-safe-money-gen] coverage (1306/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on +Infinity (10 mutations)
  3335. 722.17 s [really-safe-money-gen] coverage (1352/1610): Money\.AmountOfSpec.BTC.multiply.has an identity\: 1 (9 mutations)
  3336. 722.40 s [really-safe-money-gen] coverage (1305/1610): Money\.AmountOfSpec.BTC.fromRational.roundtrips with toRational (19 mutations)
  3337. 722.64 s [really-safe-money-gen] coverage (1303/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -Infinity (2 mutations)
  3338. 722.96 s [really-safe-money-gen] coverage (1401/1610): Money\.AmountOfSpec.CHF.format.produces valid strings (3 mutations)
  3339. 723.49 s [really-safe-money-gen] coverage (1328/1610): Money\.AmountOfSpec.BTC.ADA.convert.produces valid amounts (25 mutations)
  3340. 724.05 s [really-safe-money-gen] coverage (1358/1610): Money\.AmountOfSpec.CHF.USD.convert.produces valid amounts (25 mutations)
  3341. 725.27 s [really-safe-money-gen] coverage (1336/1610): Money\.AmountOfSpec.BTC.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3342. 727.10 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)
  3343. 727.62 s [really-safe-money-gen] coverage (1355/1610): Money\.AmountOfSpec.BTC.multiply.is distributive with add when both succeed (17 mutations)
  3344. 730.16 s [really-safe-money-gen] coverage (1406/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -1 (6 mutations)
  3345. 730.93 s [really-safe-money-gen] coverage (1368/1610): Money\.AmountOfSpec.CHF.fromRatio.produces valid AmountOfs (19 mutations)
  3346. 732.38 s [really-safe-money-gen] coverage (1350/1610): Money\.AmountOfSpec.BTC.fraction.produces valid amounts (17 mutations)
  3347. 734.20 s [really-safe-money-gen] coverage (1404/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on +Infinity (10 mutations)
  3348. 734.24 s [really-safe-money-gen] coverage (1393/1610): Money\.AmountOfSpec.CHF.BTC.rate.produces valid amounts (10 mutations)
  3349. 735.38 s [really-safe-money-gen] coverage (1371/1610): Money\.AmountOfSpec.CHF.multiply.is absorbed by 0 (10 mutations)
  3350. 737.60 s [really-safe-money-gen] coverage (1391/1610): Money\.AmountOfSpec.CHF.sum.produces valid amounts (10 mutations)
  3351. 737.77 s [really-safe-money-gen] coverage (1394/1610): Money\.AmountOfSpec.CHF.zero.is valid (1 mutations)
  3352. 738.42 s [really-safe-money-gen] coverage (1412/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3353. 738.53 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)
  3354. 738.56 s [really-safe-money-gen] coverage (1407/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on NaN (8 mutations)
  3355. 741.56 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)
  3356. 742.58 s [really-safe-money-gen] coverage (1409/1610): Money\.AmountOfSpec.CHF.ADA.rate.produces valid amounts (10 mutations)
  3357. 743.19 s [really-safe-money-gen] coverage (1392/1610): Money\.AmountOfSpec.CHF.BTC.convert.produces valid amounts (25 mutations)
  3358. 744.23 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)
  3359. 745.01 s [really-safe-money-gen] coverage (1408/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -Infinity (6 mutations)
  3360. 746.02 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)
  3361. 746.04 s [really-safe-money-gen] coverage (1405/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 0 (30 mutations)
  3362. 746.54 s [really-safe-money-gen] coverage (1395/1610): Money\.AmountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3363. 747.22 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)
  3364. 747.43 s [really-safe-money-gen] coverage (1431/1610): Money\.AmountOfSpec.CHF.distribute.produces valid amounts (21 mutations)
  3365. 747.62 s [really-safe-money-gen] coverage (1398/1610): Money\.AmountOfSpec.CHF.CHF.convert.produces valid amounts (25 mutations)
  3366. 747.81 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)
  3367. 748.59 s [really-safe-money-gen] coverage (1411/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3368. 748.61 s [really-safe-money-gen] coverage (1403/1610): Money\.AmountOfSpec.CHF.fromDouble.produces valid amounts (30 mutations)
  3369. 749.66 s [really-safe-money-gen] coverage (1402/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 1 (30 mutations)
  3370. 750.00 s [really-safe-money-gen] coverage (1397/1610): Money\.AmountOfSpec.CHF.toRational.produces valid Rationals (0 mutations)
  3371. 750.52 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)
  3372. 750.54 s [really-safe-money-gen] coverage (1410/1610): Money\.AmountOfSpec.CHF.ADA.convert.produces valid amounts (25 mutations)
  3373. 750.83 s [really-safe-money-gen] coverage (1377/1610): Money\.AmountOfSpec.CHF.fromRational.produces valid Amounts (19 mutations)
  3374. 751.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)
  3375. 754.75 s [really-safe-money-gen] coverage (1378/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 0 (19 mutations)
  3376. 754.97 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)
  3377. 755.49 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)
  3378. 755.92 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)
  3379. 756.47 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)
  3380. 757.07 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)
  3381. 759.78 s [really-safe-money-gen] coverage (1428/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antisymmetric for "valid (AmountOf * CHF)"'s (0 mutations)
  3382. 759.81 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)
  3383. 760.61 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)
  3384. 760.83 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)
  3385. 761.37 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)
  3386. 762.52 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)
  3387. 763.88 s [really-safe-money-gen] coverage (1383/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 1 (19 mutations)
  3388. 764.59 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)
  3389. 764.61 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)
  3390. 766.46 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)
  3391. 767.16 s [really-safe-money-gen] coverage (1441/1610): Money\.AmountOfSpec.CHF.add.is associative when both succeed (9 mutations)
  3392. 768.35 s [really-safe-money-gen] coverage (1432/1610): Money\.AmountOfSpec.CHF.distribute.produces results that sum up to the greater whole (29 mutations)
  3393. 768.46 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)
  3394. 769.59 s [really-safe-money-gen] coverage (1399/1610): Money\.AmountOfSpec.CHF.CHF.rate.produces valid amounts (10 mutations)
  3395. 771.08 s [really-safe-money-gen] coverage (1444/1610): Money\.AmountOfSpec.CHF.add.has a right-identity\: zero (10 mutations)
  3396. 771.22 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)
  3397. 771.24 s [really-safe-money-gen] coverage (1443/1610): Money\.AmountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3398. 772.23 s [really-safe-money-gen] coverage (1442/1610): Money\.AmountOfSpec.CHF.add.produces valid amounts (9 mutations)
  3399. 772.33 s [really-safe-money-gen] coverage (1396/1610): Money\.AmountOfSpec.CHF.toDouble.produces valid Doubles (0 mutations)
  3400. 772.46 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)
  3401. 773.11 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)
  3402. 774.24 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)
  3403. 774.33 s [really-safe-money-gen] coverage (1452/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 10 (3 mutations)
  3404. 777.63 s [really-safe-money-gen] coverage (1439/1610): Money\.AmountOfSpec.CHF.add.is commutative (9 mutations)
  3405. 777.72 s [really-safe-money-gen] coverage (1459/1610): Money\.AmountSpec.fromRatio.succeeds on 77\.02 with quantisation factor 100 (19 mutations)
  3406. 778.22 s [really-safe-money-gen] coverage (1440/1610): Money\.AmountOfSpec.CHF.add.has a left-identity\: zero (10 mutations)
  3407. 778.89 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)
  3408. 780.35 s [really-safe-money-gen] coverage (1453/1610): Money\.AmountSpec.format.produces valid strings (3 mutations)
  3409. 780.59 s [really-safe-money-gen] coverage (1379/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -Infinity (2 mutations)
  3410. 780.72 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)
  3411. 781.41 s [really-safe-money-gen] coverage (1382/1610): Money\.AmountOfSpec.CHF.fromRational.roundtrips with toRational (19 mutations)
  3412. 781.57 s [really-safe-money-gen] coverage (1456/1610): Money\.AmountSpec.fromRatio.succeeds on 1 (19 mutations)
  3413. 782.38 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)
  3414. 782.99 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)
  3415. 783.02 s [really-safe-money-gen] coverage (1457/1610): Money\.AmountSpec.fromRatio.fails on NaN (2 mutations)
  3416. 783.15 s [really-safe-money-gen] coverage (1451/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 1 (3 mutations)
  3417. 783.92 s [really-safe-money-gen] coverage (1376/1610): Money\.AmountOfSpec.CHF.fromRational.fails on +Infinity (2 mutations)
  3418. 784.05 s [really-safe-money-gen] coverage (1338/1610): Money\.AmountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3419. 784.93 s [really-safe-money-gen] coverage (1381/1610): Money\.AmountOfSpec.CHF.fromRational.fails on NaN (2 mutations)
  3420. 785.54 s [really-safe-money-gen] coverage (1349/1610): Money\.AmountOfSpec.BTC.toRational.produces valid Rationals (0 mutations)
  3421. 786.99 s [really-safe-money-gen] coverage (1372/1610): Money\.AmountOfSpec.CHF.multiply.is distributive with add when both succeed (17 mutations)
  3422. 787.51 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)
  3423. 788.51 s [really-safe-money-gen] coverage (1380/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -1 (8 mutations)
  3424. 789.56 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)
  3425. 790.13 s [really-safe-money-gen] coverage (1390/1610): Money\.AmountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3426. 791.03 s [really-safe-money-gen] coverage (1462/1610): Money\.AmountSpec.distribute.correctly distributes 3 into 3 (5 mutations)
  3427. 791.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)
  3428. 791.38 s [really-safe-money-gen] coverage (1454/1610): Money\.AmountSpec.fromRatio.produces valid Amounts (19 mutations)
  3429. 791.53 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)
  3430. 791.59 s [really-safe-money-gen] coverage (1374/1610): Money\.AmountOfSpec.CHF.multiply.produces valid amounts (9 mutations)
  3431. 792.79 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)
  3432. 793.49 s [really-safe-money-gen] coverage (1455/1610): Money\.AmountSpec.fromRatio.roundtrips with toRatio (19 mutations)
  3433. 794.15 s [really-safe-money-gen] coverage (1375/1610): Money\.AmountOfSpec.CHF.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3434. 795.70 s [really-safe-money-gen] coverage (1475/1610): Money\.AmountSpec.sum.produces valid amounts (10 mutations)
  3435. 796.47 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)
  3436. 797.15 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)
  3437. 798.02 s [really-safe-money-gen] coverage (1482/1610): Money\.AmountSpec.multiply.is absorbed by 0 (10 mutations)
  3438. 799.22 s [really-safe-money-gen] coverage (1461/1610): Money\.AmountSpec.fromRatio.fails on 7\.123 with quantisation factor 10 (13 mutations)
  3439. 799.36 s [really-safe-money-gen] coverage (1488/1610): Money\.AmountSpec.fromDouble.roundtrips with toDouble, back to double (30 mutations)
  3440. 799.57 s [really-safe-money-gen] coverage (1458/1610): Money\.AmountSpec.fromRatio.fails on +Infinity (2 mutations)
  3441. 801.52 s [really-safe-money-gen] coverage (1477/1610): Money\.AmountSpec.sum.fails to sum above maxBound (9 mutations)
  3442. 802.69 s [really-safe-money-gen] coverage (1465/1610): Money\.AmountSpec.distribute.correctly distributes 10 into 4 (7 mutations)
  3443. 803.27 s [really-safe-money-gen] coverage (1467/1610): Money\.AmountSpec.distribute.correctly distributes 5 into 3 (7 mutations)
  3444. 805.18 s [really-safe-money-gen] coverage (1460/1610): Money\.AmountSpec.fromRatio.succeeds on 0 (19 mutations)
  3445. 805.23 s [really-safe-money-gen] coverage (1478/1610): Money\.AmountSpec.sum.correctly sums [1,2,3] to 6 (10 mutations)
  3446. 806.51 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)
  3447. 806.52 s [really-safe-money-gen] coverage (1474/1610): Money\.AmountSpec.distribute.produces valid amounts (17 mutations)
  3448. 807.05 s [really-safe-money-gen] coverage (1463/1610): Money\.AmountSpec.distribute.produces results that sum up to the greater whole (25 mutations)
  3449. 809.95 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)
  3450. 811.48 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)
  3451. 811.62 s [really-safe-money-gen] coverage (1480/1610): Money\.AmountSpec.multiply.fails for 2 * maxbound (8 mutations)
  3452. 812.59 s [really-safe-money-gen] coverage (1489/1610): Money\.AmountSpec.fromDouble.succeeds on 77\.02 with quantisation factor 100 (30 mutations)
  3453. 813.16 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)
  3454. 813.20 s [really-safe-money-gen] coverage (1479/1610): Money\.AmountSpec.multiply.matches what you would get with Integer, if nothing fails (9 mutations)
  3455. 813.68 s [really-safe-money-gen] coverage (1490/1610): Money\.AmountSpec.fromDouble.produces valid amounts (30 mutations)
  3456. 814.85 s [really-safe-money-gen] coverage (1481/1610): Money\.AmountSpec.multiply.produces valid amounts (9 mutations)
  3457. 815.16 s [really-safe-money-gen] coverage (1495/1610): Money\.AmountSpec.fromDouble.fails on -Infinity (6 mutations)
  3458. 816.18 s [really-safe-money-gen] coverage (1487/1610): Money\.AmountSpec.fromDouble.fails on really large numbers (21 mutations)
  3459. 816.91 s [really-safe-money-gen] coverage (1476/1610): Money\.AmountSpec.sum.matches what you would get with Integer, if nothing fails (10 mutations)
  3460. 818.27 s [really-safe-money-gen] coverage (1484/1610): Money\.AmountSpec.multiply.has an identity\: 1 (9 mutations)
  3461. 818.78 s [really-safe-money-gen] coverage (1491/1610): Money\.AmountSpec.fromDouble.fails on really large numbers:1 (10 mutations)
  3462. 820.07 s [really-safe-money-gen] coverage (1485/1610): Money\.AmountSpec.multiply.succeeds for 3 * 6 (9 mutations)
  3463. 820.87 s [really-safe-money-gen] coverage (1483/1610): Money\.AmountSpec.multiply.is distributive with add when both succeed (18 mutations)
  3464. 821.02 s [really-safe-money-gen] coverage (1497/1610): Money\.AmountSpec.fromDouble.succeeds on 1 (30 mutations)
  3465. 821.50 s [really-safe-money-gen] coverage (1492/1610): Money\.AmountSpec.fromDouble.fails on NaN (8 mutations)
  3466. 823.88 s [really-safe-money-gen] coverage (1503/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3467. 826.33 s [really-safe-money-gen] coverage (1515/1610): Money\.AmountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3468. 826.51 s [really-safe-money-gen] coverage (1499/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  3469. 827.44 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)
  3470. 828.19 s [really-safe-money-gen] coverage (1494/1610): Money\.AmountSpec.fromDouble.fails on 7\.123 with quantisation factor 10 (24 mutations)
  3471. 828.43 s [really-safe-money-gen] coverage (1493/1610): Money\.AmountSpec.fromDouble.fails on -1 (6 mutations)
  3472. 828.45 s [really-safe-money-gen] coverage (1517/1610): Money\.AmountSpec.fromRational.roundtrips with toRational (19 mutations)
  3473. 828.47 s [really-safe-money-gen] coverage (1498/1610): Money\.AmountSpec.fromDouble.succeeds on 0 (30 mutations)
  3474. 829.43 s [really-safe-money-gen] coverage (1505/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  3475. 829.56 s [really-safe-money-gen] coverage (1502/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3476. 830.62 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)
  3477. 831.07 s [really-safe-money-gen] coverage (1520/1610): Money\.AmountSpec.fromRational.fails on -Infinity (2 mutations)
  3478. 831.25 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)
  3479. 831.72 s [really-safe-money-gen] coverage (1496/1610): Money\.AmountSpec.fromDouble.fails on +Infinity (10 mutations)
  3480. 833.14 s [really-safe-money-gen] coverage (1501/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  3481. 833.32 s [really-safe-money-gen] coverage (1508/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  3482. 835.17 s [really-safe-money-gen] coverage (1509/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3483. 835.34 s [really-safe-money-gen] coverage (1446/1610): Money\.AmountSpec.fraction.Correctly fractions 101 with 1 % 100 (12 mutations)
  3484. 835.85 s [really-safe-money-gen] coverage (1506/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  3485. 836.95 s [really-safe-money-gen] coverage (1513/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  3486. 837.49 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)
  3487. 838.32 s [really-safe-money-gen] coverage (1449/1610): Money\.AmountSpec.fraction.Correctly fractions 100 with 1 % 100 (12 mutations)
  3488. 838.39 s [really-safe-money-gen] coverage (1516/1610): Money\.AmountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
  3489. 839.53 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)
  3490. 840.00 s [really-safe-money-gen] coverage (1550/1610): Money\.AmountSpec.rate.computes this USD to CHF rate correctly (10 mutations)
  3491. 840.13 s [really-safe-money-gen] coverage (1518/1610): Money\.AmountSpec.fromRational.succeeds on 0 (19 mutations)
  3492. 840.61 s [really-safe-money-gen] coverage (1546/1610): Money\.AmountSpec.toDouble.succeeds on 7702 with quantisation factor 100 (0 mutations)
  3493. 840.76 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)
  3494. 841.03 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)
  3495. 843.79 s [really-safe-money-gen] coverage (1521/1610): Money\.AmountSpec.fromRational.succeeds on 1 (19 mutations)
  3496. 845.56 s [really-safe-money-gen] coverage (1447/1610): Money\.AmountSpec.fraction.Produces a result that can be multiplied back (17 mutations)
  3497. 845.74 s [really-safe-money-gen] coverage (1514/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  3498. 845.85 s [really-safe-money-gen] coverage (1547/1610): Money\.AmountSpec.toDouble.produces an infinite Double with quantisation factor 0 (0 mutations)
  3499. 845.97 s [really-safe-money-gen] coverage (1544/1610): Money\.AmountSpec.GenValid Amount.genValid \:\: Gen Amount.only generates valid 'Amount's (0 mutations)
  3500. 846.28 s [really-safe-money-gen] coverage (1448/1610): Money\.AmountSpec.fraction.produces valid amounts (17 mutations)
  3501. 846.31 s [really-safe-money-gen] coverage (1542/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"s (0 mutations)
  3502. 847.31 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)
  3503. 847.85 s [really-safe-money-gen] coverage (1528/1610): Money\.AmountSpec.add.is associative when both succeed (9 mutations)
  3504. 848.80 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)
  3505. 848.86 s [really-safe-money-gen] coverage (1531/1610): Money\.AmountSpec.add.matches what you would get with Integer, if nothing fails (9 mutations)
  3506. 849.91 s [really-safe-money-gen] coverage (1541/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"s (0 mutations)
  3507. 852.69 s [really-safe-money-gen] coverage (1535/1610): Money\.AmountSpec.add.has a left-identity\: zero (10 mutations)
  3508. 852.79 s [really-safe-money-gen] coverage (1543/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is symmetric for "valid Amount"s (0 mutations)
  3509. 853.82 s [really-safe-money-gen] coverage (1523/1610): Money\.AmountSpec.fromRational.fails on 7\.123 with quantisation factor 10 (13 mutations)
  3510. 854.52 s [really-safe-money-gen] coverage (1527/1610): Money\.AmountSpec.fromRational.produces valid Amounts (19 mutations)
  3511. 854.57 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)
  3512. 855.20 s [really-safe-money-gen] coverage (1536/1610): Money\.AmountSpec.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  3513. 855.74 s [really-safe-money-gen] coverage (1545/1610): Money\.AmountSpec.toDouble.produces valid Doubles (0 mutations)
  3514. 857.55 s [really-safe-money-gen] coverage (1525/1610): Money\.AmountSpec.fromRational.fails on -1 (8 mutations)
  3515. 857.86 s [really-safe-money-gen] coverage (1524/1610): Money\.AmountSpec.fromRational.fails on +Infinity (2 mutations)
  3516. 858.15 s [really-safe-money-gen] coverage (1533/1610): Money\.AmountSpec.add.produces valid amounts (9 mutations)
  3517. 858.64 s [really-safe-money-gen] coverage (1553/1610): Money\.AmountSpec.convert.converts this USD to CHF correctly (22 mutations)
  3518. 861.03 s [really-safe-money-gen] coverage (1530/1610): Money\.AmountSpec.add.fails for maxBound + 1 (8 mutations)
  3519. 863.09 s [really-safe-money-gen] coverage (1537/1610): Money\.AmountSpec.toMinimalQuantisations.produces valid Int64s (0 mutations)
  3520. 863.75 s [really-safe-money-gen] coverage (1529/1610): Money\.AmountSpec.add.is commutative (9 mutations)
  3521. 863.97 s [really-safe-money-gen] coverage (1522/1610): Money\.AmountSpec.fromRational.succeeds on 77\.02 with quantisation factor 100 (19 mutations)
  3522. 864.15 s [really-safe-money-gen] coverage (1519/1610): Money\.AmountSpec.fromRational.fails on really large numbers (19 mutations)
  3523. 864.22 s [really-safe-money-gen] coverage (1562/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (23 mutations)
  3524. 865.00 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)
  3525. 865.57 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)
  3526. 865.69 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)
  3527. 866.30 s [really-safe-money-gen] coverage (1534/1610): Money\.AmountSpec.add.fails for maxBound + maxBound (8 mutations)
  3528. 867.09 s [really-safe-money-gen] coverage (1538/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"s (0 mutations)
  3529. 868.11 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)
  3530. 869.18 s [really-safe-money-gen] coverage (1548/1610): Money\.AmountSpec.rate.produces valid conversion rates (10 mutations)
  3531. 870.27 s [really-safe-money-gen] coverage (1556/1610): Money\.AmountSpec.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  3532. 871.94 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)
  3533. 872.58 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)
  3534. 872.65 s [really-safe-money-gen] coverage (1532/1610): Money\.AmountSpec.add.has a right-identity\: zero (10 mutations)
  3535. 873.71 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)
  3536. 873.80 s [really-safe-money-gen] coverage (1575/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (23 mutations)
  3537. 874.07 s [really-safe-money-gen] coverage (1559/1610): Money\.AmountSpec.subtract.matches what you would get with Integer, if nothing fails (10 mutations)
  3538. 874.27 s [really-safe-money-gen] coverage (1557/1610): Money\.AmountSpec.subtract.fails for 0 - maxBound (9 mutations)
  3539. 875.27 s [really-safe-money-gen] coverage (1555/1610): Money\.AmountSpec.toRatio.produces an invalid Rational with quantisation factor 0 (1 mutations)
  3540. 875.85 s [really-safe-money-gen] coverage (1551/1610): Money\.AmountSpec.zero.is valid (1 mutations)
  3541. 876.35 s [really-safe-money-gen] coverage (1526/1610): Money\.AmountSpec.fromRational.fails on NaN (2 mutations)
  3542. 877.41 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)
  3543. 878.64 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)
  3544. 879.18 s [really-safe-money-gen] coverage (1571/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise:1 (17 mutations)
  3545. 880.19 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)
  3546. 880.20 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)
  3547. 880.25 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)
  3548. 880.31 s [really-safe-money-gen] coverage (1558/1610): Money\.AmountSpec.subtract.fails for 0 - 1 (9 mutations)
  3549. 880.36 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)
  3550. 881.13 s [really-safe-money-gen] coverage (1569/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.produces valid factors (23 mutations)
  3551. 882.15 s [really-safe-money-gen] coverage (1604/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3552. 882.18 s [really-safe-money-gen] coverage (1570/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise (17 mutations)
  3553. 883.32 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)
  3554. 884.11 s [really-safe-money-gen] coverage (1587/1610): Money\.AmountSpec.fromMinimalQuantisations.produces valid amounts (0 mutations)
  3555. 885.49 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)
  3556. 886.15 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)
  3557. 886.66 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)
  3558. 887.27 s [really-safe-money-gen] coverage (1554/1610): Money\.AmountSpec.convert.produces valid amounts (25 mutations)
  3559. 887.85 s [really-safe-money-gen] coverage (1606/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  3560. 889.13 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)
  3561. 891.58 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)
  3562. 892.13 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)
  3563. 892.38 s [really-safe-money-gen] coverage (1601/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3564. 893.55 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)
  3565. 893.57 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)
  3566. 893.58 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)
  3567. 893.81 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)
  3568. 894.05 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)
  3569. 894.25 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)
  3570. 895.82 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)
  3571. 897.13 s [really-safe-money-gen] coverage (1605/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  3572. 897.55 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)
  3573. 897.71 s [really-safe-money-gen] coverage (1588/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"s (1 mutations)
  3574. 898.17 s [really-safe-money-gen] coverage (1593/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"s (1 mutations)
  3575. 898.39 s [really-safe-money-gen] coverage (1592/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"s (1 mutations)
  3576. 898.49 s [really-safe-money-gen] coverage (1600/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  3577. 898.95 s [really-safe-money-gen] coverage (1598/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  3578. 899.07 s [really-safe-money-gen] coverage (1603/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  3579. 899.48 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)
  3580. 899.87 s [really-safe-money-gen] coverage (1610/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  3581. 900.09 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)
  3582. 900.55 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)
  3583. 901.02 s [really-safe-money-gen] coverage (1609/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3584. 901.28 s [really-safe-money-gen] coverage (1597/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  3585. 902.25 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)
  3586. 903.73 s [really-safe-money-gen] coverage (1591/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is symmetric for "valid Currency"s (1 mutations)
  3587. 936.98 s [really-safe-money-gen] coverage (1582/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.produces valid decimal literals (52 mutations)
  3588. 952.36 s [really-safe-money-gen] coverage (1583/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.roundtrips with Amount\.fromDecimalLiteral (74 mutations)
  3589. 953.59 s [really-safe-money-gen] mutation-nix: running mutations
  3590. 963.43 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3591. 963.46 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3592. 963.46 s [really-safe-money-gen] let aa1 = abs a1
  3593. 963.46 s [really-safe-money-gen] aa2 = abs a2
  3594. 963.46 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3595. 963.46 s [really-safe-money-gen] in case (a1, a2) of
  3596. 963.46 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3597. 963.46 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3598. 963.46 s [really-safe-money-gen] - (Negative _, Positive _) -> Nothing
  3599. 963.46 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3600. 963.46 s [really-safe-money-gen]
  3601. 963.46 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3602. 963.46 s [really-safe-money-gen] -- another currency using a conversion rate.
  3603. 963.46 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3604. 963.46 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3605. 963.46 s [really-safe-money-gen] let aa1 = abs a1
  3606. 963.46 s [really-safe-money-gen] aa2 = abs a2
  3607. 963.46 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3608. 963.46 s [really-safe-money-gen] in case (a1, a2) of
  3609. 963.46 s [really-safe-money-gen] - (Positive _, Positive _) -> mr
  3610. 963.46 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3611. 963.46 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3612. 963.47 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3613. 963.47 s [really-safe-money-gen]
  3614. 963.47 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3615. 963.47 s [really-safe-money-gen] -- another currency using a conversion rate.
  3616. 963.47 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
  3617. 963.47 s [really-safe-money-gen] @@ -588,9 +588,8 @@
  3618. 963.47 s [really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
  3619. 963.47 s [really-safe-money-gen] convert r qf1 a cr qf2 =
  3620. 963.47 s [really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
  3621. 963.47 s [really-safe-money-gen] in case a of
  3622. 963.47 s [really-safe-money-gen] Positive _ -> (Positive <$> ma, mr)
  3623. 963.47 s [really-safe-money-gen] - Negative _ -> (Negative <$> ma, mr)
  3624. 963.47 s [really-safe-money-gen]
  3625. 963.47 s [really-safe-money-gen] -- | Format an account of money without a symbol.
  3626. 963.47 s [really-safe-money-gen] --
  3627. 963.47 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3628. 963.47 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3629. 963.47 s [really-safe-money-gen] let aa1 = abs a1
  3630. 963.47 s [really-safe-money-gen] aa2 = abs a2
  3631. 963.47 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3632. 963.47 s [really-safe-money-gen] in case (a1, a2) of
  3633. 963.47 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3634. 963.47 s [really-safe-money-gen] - (Positive _, Negative _) -> Nothing
  3635. 963.47 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3636. 963.47 s [really-safe-money-gen] (Negative _, Negative _) -> mr
  3637. 963.47 s [really-safe-money-gen]
  3638. 963.47 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3639. 963.47 s [really-safe-money-gen] -- another currency using a conversion rate.
  3640. 963.47 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:421:32-33
  3641. 963.47 s [really-safe-money-gen] @@ -418,7 +418,7 @@
  3642. 963.47 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3643. 963.47 s [really-safe-money-gen] multiply factor account =
  3644. 963.47 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3645. 963.47 s [really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
  3646. 963.47 s [really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
  3647. 963.47 s [really-safe-money-gen] (EQ, _) -> const zero
  3648. 963.47 s [really-safe-money-gen] (_, EQ) -> const zero
  3649. 963.47 s [really-safe-money-gen] (GT, GT) -> Positive
  3650. 963.47 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
  3651. 963.47 s [really-safe-money-gen] @@ -550,11 +550,10 @@
  3652. 963.47 s [really-safe-money-gen] let aa1 = abs a1
  3653. 963.47 s [really-safe-money-gen] aa2 = abs a2
  3654. 963.47 s [really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
  3655. 963.47 s [really-safe-money-gen] in case (a1, a2) of
  3656. 963.47 s [really-safe-money-gen] (Positive _, Positive _) -> mr
  3657. 963.47 s [really-safe-money-gen] (Positive _, Negative _) -> Nothing
  3658. 963.47 s [really-safe-money-gen] (Negative _, Positive _) -> Nothing
  3659. 963.47 s [really-safe-money-gen] - (Negative _, Negative _) -> mr
  3660. 963.47 s [really-safe-money-gen]
  3661. 963.47 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  3662. 963.47 s [really-safe-money-gen] -- another currency using a conversion rate.
  3663. 963.47 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3664. 963.47 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3665. 963.47 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3666. 963.48 s [really-safe-money-gen] multiply factor account =
  3667. 963.48 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3668. 963.48 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3669. 963.48 s [really-safe-money-gen] - (EQ, _) -> const zero
  3670. 963.48 s [really-safe-money-gen] (_, EQ) -> const zero
  3671. 963.48 s [really-safe-money-gen] (GT, GT) -> Positive
  3672. 963.48 s [really-safe-money-gen] (GT, LT) -> Negative
  3673. 963.48 s [really-safe-money-gen] (LT, GT) -> Negative
  3674. 963.48 s [really-safe-money-gen] (LT, LT) -> Positive
  3675. 963.48 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3676. 963.48 s [really-safe-money-gen]
  3677. 963.48 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3678. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3679. 963.48 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3680. 963.48 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3681. 963.48 s [really-safe-money-gen] multiply factor account =
  3682. 963.48 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3683. 963.48 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3684. 963.48 s [really-safe-money-gen] (EQ, _) -> const zero
  3685. 963.48 s [really-safe-money-gen] (_, EQ) -> const zero
  3686. 963.48 s [really-safe-money-gen] (GT, GT) -> Positive
  3687. 963.48 s [really-safe-money-gen] (GT, LT) -> Negative
  3688. 963.48 s [really-safe-money-gen] - (LT, GT) -> Negative
  3689. 963.48 s [really-safe-money-gen] (LT, LT) -> Positive
  3690. 963.48 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3691. 963.48 s [really-safe-money-gen]
  3692. 963.48 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3693. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3694. 963.48 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3695. 963.48 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3696. 963.48 s [really-safe-money-gen] multiply factor account =
  3697. 963.48 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3698. 963.48 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3699. 963.48 s [really-safe-money-gen] (EQ, _) -> const zero
  3700. 963.48 s [really-safe-money-gen] (_, EQ) -> const zero
  3701. 963.48 s [really-safe-money-gen] (GT, GT) -> Positive
  3702. 963.48 s [really-safe-money-gen] - (GT, LT) -> Negative
  3703. 963.48 s [really-safe-money-gen] (LT, GT) -> Negative
  3704. 963.48 s [really-safe-money-gen] (LT, LT) -> Positive
  3705. 963.48 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3706. 963.48 s [really-safe-money-gen]
  3707. 963.48 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3708. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3709. 963.48 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3710. 963.48 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3711. 963.48 s [really-safe-money-gen] multiply factor account =
  3712. 963.48 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3713. 963.48 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3714. 963.48 s [really-safe-money-gen] (EQ, _) -> const zero
  3715. 963.48 s [really-safe-money-gen] (_, EQ) -> const zero
  3716. 963.48 s [really-safe-money-gen] - (GT, GT) -> Positive
  3717. 963.48 s [really-safe-money-gen] (GT, LT) -> Negative
  3718. 963.48 s [really-safe-money-gen] (LT, GT) -> Negative
  3719. 963.48 s [really-safe-money-gen] (LT, LT) -> Positive
  3720. 963.48 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3721. 963.48 s [really-safe-money-gen]
  3722. 963.48 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3723. 963.48 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  3724. 963.48 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3725. 963.48 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3726. 963.48 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3727. 963.48 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3728. 963.48 s [really-safe-money-gen] - if a >= zero
  3729. 963.48 s [really-safe-money-gen] + if a < zero
  3730. 963.48 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3731. 963.48 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3732. 963.48 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3733. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3734. 963.48 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3735. 963.48 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3736. 963.48 s [really-safe-money-gen] multiply factor account =
  3737. 963.48 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3738. 963.48 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3739. 963.48 s [really-safe-money-gen] (EQ, _) -> const zero
  3740. 963.48 s [really-safe-money-gen] (_, EQ) -> const zero
  3741. 963.48 s [really-safe-money-gen] (GT, GT) -> Positive
  3742. 963.48 s [really-safe-money-gen] (GT, LT) -> Negative
  3743. 963.48 s [really-safe-money-gen] (LT, GT) -> Negative
  3744. 963.48 s [really-safe-money-gen] - (LT, LT) -> Positive
  3745. 963.48 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3746. 963.48 s [really-safe-money-gen]
  3747. 963.48 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3748. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
  3749. 963.48 s [really-safe-money-gen] @@ -588,9 +588,8 @@
  3750. 963.48 s [really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
  3751. 963.48 s [really-safe-money-gen] convert r qf1 a cr qf2 =
  3752. 963.48 s [really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
  3753. 963.48 s [really-safe-money-gen] in case a of
  3754. 963.48 s [really-safe-money-gen] - Positive _ -> (Positive <$> ma, mr)
  3755. 963.48 s [really-safe-money-gen] Negative _ -> (Negative <$> ma, mr)
  3756. 963.48 s [really-safe-money-gen]
  3757. 963.48 s [really-safe-money-gen] -- | Format an account of money without a symbol.
  3758. 963.48 s [really-safe-money-gen] --
  3759. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
  3760. 963.48 s [really-safe-money-gen] @@ -418,13 +418,12 @@
  3761. 963.48 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  3762. 963.48 s [really-safe-money-gen] multiply factor account =
  3763. 963.48 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3764. 963.48 s [really-safe-money-gen] f = case (compare factor 0, compare account zero) of
  3765. 963.48 s [really-safe-money-gen] (EQ, _) -> const zero
  3766. 963.48 s [really-safe-money-gen] - (_, EQ) -> const zero
  3767. 963.48 s [really-safe-money-gen] (GT, GT) -> Positive
  3768. 963.48 s [really-safe-money-gen] (GT, LT) -> Negative
  3769. 963.48 s [really-safe-money-gen] (LT, GT) -> Negative
  3770. 963.48 s [really-safe-money-gen] (LT, LT) -> Positive
  3771. 963.48 s [really-safe-money-gen] in f <$> Amount.multiply af (abs account)
  3772. 963.48 s [really-safe-money-gen]
  3773. 963.48 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  3774. 963.48 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  3775. 963.48 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3776. 963.48 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3777. 963.48 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3778. 963.48 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3779. 963.48 s [really-safe-money-gen] - if a >= zero
  3780. 963.48 s [really-safe-money-gen] + if a <= zero
  3781. 963.48 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3782. 963.48 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3783. 963.48 s [really-safe-money-gen]
  3784. 963.48 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3785. 963.48 s [really-safe-money-gen] @@ -444,17 +444,16 @@
  3786. 963.49 s [really-safe-money-gen] distribute a f =
  3787. 963.49 s [really-safe-money-gen] let aa = abs a
  3788. 963.49 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3789. 963.49 s [really-safe-money-gen] in case Amount.distribute aa af of
  3790. 963.49 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3791. 963.49 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3792. 963.49 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3793. 963.49 s [really-safe-money-gen] if a >= zero
  3794. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3795. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3796. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3797. 963.49 s [really-safe-money-gen] if a >= zero
  3798. 963.49 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3799. 963.49 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3800. 963.49 s [really-safe-money-gen]
  3801. 963.49 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3802. 963.49 s [really-safe-money-gen]
  3803. 963.49 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  3804. 963.49 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  3805. 963.49 s [really-safe-money-gen] let aa = abs account
  3806. 963.49 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  3807. 963.49 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  3808. 963.49 s [really-safe-money-gen] func ma r = case compare account zero of
  3809. 963.49 s [really-safe-money-gen] - EQ -> (Just zero, r)
  3810. 963.49 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  3811. 963.49 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  3812. 963.49 s [really-safe-money-gen] in func amount actualFraction
  3813. 963.49 s [really-safe-money-gen]
  3814. 963.49 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  3815. 963.49 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3816. 963.49 s [really-safe-money-gen] @@ -444,17 +444,13 @@
  3817. 963.49 s [really-safe-money-gen] distribute a f =
  3818. 963.49 s [really-safe-money-gen] let aa = abs a
  3819. 963.49 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3820. 963.49 s [really-safe-money-gen] in case Amount.distribute aa af of
  3821. 963.49 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3822. 963.49 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3823. 963.49 s [really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
  3824. 963.49 s [really-safe-money-gen] - if a >= zero
  3825. 963.49 s [really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3826. 963.49 s [really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3827. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3828. 963.49 s [really-safe-money-gen] if a >= zero
  3829. 963.49 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3830. 963.49 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3831. 963.49 s [really-safe-money-gen]
  3832. 963.49 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3833. 963.49 s [really-safe-money-gen]
  3834. 963.49 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3835. 963.49 s [really-safe-money-gen] @@ -444,17 +444,13 @@
  3836. 963.49 s [really-safe-money-gen] distribute a f =
  3837. 963.49 s [really-safe-money-gen] let aa = abs a
  3838. 963.49 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3839. 963.49 s [really-safe-money-gen] in case Amount.distribute aa af of
  3840. 963.49 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3841. 963.49 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3842. 963.49 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3843. 963.49 s [really-safe-money-gen] if a >= zero
  3844. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3845. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3846. 963.49 s [really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3847. 963.49 s [really-safe-money-gen] - if a >= zero
  3848. 963.49 s [really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3849. 963.49 s [really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3850. 963.49 s [really-safe-money-gen]
  3851. 963.49 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3852. 963.49 s [really-safe-money-gen]
  3853. 963.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23
  3854. 963.49 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3855. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3856. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3857. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3858. 963.49 s [really-safe-money-gen] - if a >= zero
  3859. 963.49 s [really-safe-money-gen] + if not (a >= zero)
  3860. 963.49 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3861. 963.49 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3862. 963.49 s [really-safe-money-gen]
  3863. 963.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  3864. 963.49 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3865. 963.49 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3866. 963.49 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3867. 963.49 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3868. 963.49 s [really-safe-money-gen] - if a >= zero
  3869. 963.49 s [really-safe-money-gen] + if False
  3870. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3871. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3872. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3873. 963.49 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Account.hs:523:16-25
  3874. 963.49 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  3875. 963.49 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  3876. 963.49 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  3877. 963.49 s [really-safe-money-gen] func ma r = case compare account zero of
  3878. 963.49 s [really-safe-money-gen] - EQ -> (Just zero, r)
  3879. 963.49 s [really-safe-money-gen] + EQ -> (Nothing, r)
  3880. 963.49 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  3881. 963.49 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  3882. 963.49 s [really-safe-money-gen] in func amount actualFraction
  3883. 963.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  3884. 963.49 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3885. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3886. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3887. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3888. 963.49 s [really-safe-money-gen] - if a >= zero
  3889. 963.49 s [really-safe-money-gen] + if a < zero
  3890. 963.49 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3891. 963.49 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3892. 963.49 s [really-safe-money-gen]
  3893. 963.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  3894. 963.49 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3895. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3896. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3897. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3898. 963.49 s [really-safe-money-gen] - if a >= zero
  3899. 963.49 s [really-safe-money-gen] + if False
  3900. 963.49 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3901. 963.49 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3902. 963.49 s [really-safe-money-gen]
  3903. 963.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  3904. 963.49 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3905. 963.49 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3906. 963.49 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3907. 963.49 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3908. 963.49 s [really-safe-money-gen] - if a >= zero
  3909. 963.49 s [really-safe-money-gen] + if True
  3910. 970.55 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3911. 970.57 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3912. 970.57 s [really-safe-money-gen]
  3913. 970.57 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
  3914. 970.57 s [really-safe-money-gen] @@ -444,17 +444,16 @@
  3915. 970.57 s [really-safe-money-gen] distribute a f =
  3916. 970.57 s [really-safe-money-gen] let aa = abs a
  3917. 970.57 s [really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
  3918. 970.57 s [really-safe-money-gen] in case Amount.distribute aa af of
  3919. 970.58 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3920. 970.58 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  3921. 970.58 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3922. 970.58 s [really-safe-money-gen] if a >= zero
  3923. 970.58 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3924. 970.58 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3925. 970.58 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3926. 970.58 s [really-safe-money-gen] if a >= zero
  3927. 970.58 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3928. 970.58 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3929. 970.58 s [really-safe-money-gen]
  3930. 970.58 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  3931. 970.58 s [really-safe-money-gen]
  3932. 970.58 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  3933. 970.58 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3934. 970.58 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3935. 970.58 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3936. 970.58 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3937. 970.58 s [really-safe-money-gen] - if a >= zero
  3938. 970.58 s [really-safe-money-gen] + if a > zero
  3939. 970.58 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3940. 970.59 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3941. 970.59 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3942. 970.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  3943. 970.59 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  3944. 970.59 s [really-safe-money-gen] let aa = abs account
  3945. 970.59 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  3946. 970.59 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  3947. 970.59 s [really-safe-money-gen] func ma r = case compare account zero of
  3948. 970.59 s [really-safe-money-gen] EQ -> (Just zero, r)
  3949. 970.59 s [really-safe-money-gen] - GT -> (Positive <$> ma, r)
  3950. 970.59 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  3951. 970.59 s [really-safe-money-gen] in func amount actualFraction
  3952. 970.59 s [really-safe-money-gen]
  3953. 970.59 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  3954. 970.59 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23
  3955. 970.59 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3956. 970.59 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3957. 970.59 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3958. 970.59 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3959. 970.59 s [really-safe-money-gen] - if a >= zero
  3960. 970.59 s [really-safe-money-gen] + if not (a >= zero)
  3961. 970.59 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3962. 970.59 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3963. 970.59 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3964. 970.59 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18
  3965. 970.59 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  3966. 970.59 s [really-safe-money-gen] fraction rounding account f =
  3967. 970.60 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3968. 970.60 s [really-safe-money-gen] ro =
  3969. 970.60 s [really-safe-money-gen] - if f >= 0
  3970. 970.60 s [really-safe-money-gen] + if f >= 1
  3971. 970.60 s [really-safe-money-gen] then rounding
  3972. 970.60 s [really-safe-money-gen] else case rounding of
  3973. 970.60 s [really-safe-money-gen] RoundUp -> RoundDown
  3974. 970.60 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:451:14-23
  3975. 970.60 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  3976. 970.60 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3977. 970.60 s [really-safe-money-gen] DistributedZero -> DistributedZero
  3978. 970.60 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  3979. 970.60 s [really-safe-money-gen] - if a >= zero
  3980. 970.60 s [really-safe-money-gen] + if a <= zero
  3981. 970.60 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3982. 970.60 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3983. 970.60 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3984. 970.60 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:455:14-23
  3985. 970.60 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  3986. 970.60 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3987. 970.60 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3988. 970.60 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3989. 970.60 s [really-safe-money-gen] - if a >= zero
  3990. 970.60 s [really-safe-money-gen] + if a > zero
  3991. 970.60 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3992. 970.60 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3993. 970.60 s [really-safe-money-gen]
  3994. 970.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
  3995. 970.60 s [really-safe-money-gen] @@ -519,10 +519,9 @@
  3996. 970.60 s [really-safe-money-gen] let aa = abs account
  3997. 970.60 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  3998. 970.60 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  3999. 970.60 s [really-safe-money-gen] func ma r = case compare account zero of
  4000. 970.60 s [really-safe-money-gen] EQ -> (Just zero, r)
  4001. 970.60 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  4002. 970.60 s [really-safe-money-gen] - LT -> (Negative <$> ma, r)
  4003. 970.60 s [really-safe-money-gen] in func amount actualFraction
  4004. 970.60 s [really-safe-money-gen]
  4005. 970.60 s [really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
  4006. 970.60 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4007. 970.60 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4008. 970.60 s [really-safe-money-gen] fraction rounding account f =
  4009. 970.60 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4010. 970.60 s [really-safe-money-gen] ro =
  4011. 970.60 s [really-safe-money-gen] - if f >= 0
  4012. 970.60 s [really-safe-money-gen] + if f <= 0
  4013. 970.60 s [really-safe-money-gen] then rounding
  4014. 970.60 s [really-safe-money-gen] else case rounding of
  4015. 970.61 s [really-safe-money-gen] RoundUp -> RoundDown
  4016. 970.61 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4017. 970.61 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4018. 970.61 s [really-safe-money-gen] ro =
  4019. 970.61 s [really-safe-money-gen] if f >= 0
  4020. 970.61 s [really-safe-money-gen] then rounding
  4021. 970.61 s [really-safe-money-gen] else case rounding of
  4022. 970.61 s [really-safe-money-gen] - RoundUp -> RoundDown
  4023. 970.61 s [really-safe-money-gen] RoundDown -> RoundUp
  4024. 970.61 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4025. 970.61 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4026. 970.61 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4027. 970.61 s [really-safe-money-gen] in if f >= 0
  4028. 970.61 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4029. 970.61 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4030. 970.61 s [really-safe-money-gen] ro =
  4031. 970.61 s [really-safe-money-gen] if f >= 0
  4032. 970.61 s [really-safe-money-gen] then rounding
  4033. 970.61 s [really-safe-money-gen] else case rounding of
  4034. 970.61 s [really-safe-money-gen] RoundUp -> RoundDown
  4035. 970.61 s [really-safe-money-gen] RoundDown -> RoundUp
  4036. 970.61 s [really-safe-money-gen] - RoundNearest -> RoundNearest
  4037. 970.61 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4038. 970.61 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4039. 970.61 s [really-safe-money-gen] in if f >= 0
  4040. 970.61 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
  4041. 970.61 s [really-safe-money-gen] @@ -494,10 +494,9 @@
  4042. 970.61 s [really-safe-money-gen] ro =
  4043. 970.61 s [really-safe-money-gen] if f >= 0
  4044. 970.61 s [really-safe-money-gen] then rounding
  4045. 970.61 s [really-safe-money-gen] else case rounding of
  4046. 970.61 s [really-safe-money-gen] RoundUp -> RoundDown
  4047. 970.61 s [really-safe-money-gen] - RoundDown -> RoundUp
  4048. 970.61 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4049. 970.61 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4050. 970.61 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4051. 970.61 s [really-safe-money-gen] in if f >= 0
  4052. 970.61 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  4053. 970.61 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  4054. 970.61 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  4055. 970.61 s [really-safe-money-gen] DistributedZero -> DistributedZero
  4056. 970.61 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  4057. 970.61 s [really-safe-money-gen] - if a >= zero
  4058. 970.61 s [really-safe-money-gen] + if True
  4059. 970.61 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  4060. 970.61 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  4061. 970.61 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  4062. 970.61 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4063. 970.62 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4064. 970.62 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4065. 970.62 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4066. 970.62 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4067. 970.62 s [really-safe-money-gen] - in if f >= 0
  4068. 970.62 s [really-safe-money-gen] + in if f <= 0
  4069. 970.62 s [really-safe-money-gen] then (ma, r)
  4070. 970.62 s [really-safe-money-gen] else (negate <$> ma, -r)
  4071. 970.62 s [really-safe-money-gen]
  4072. 970.62 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  4073. 970.62 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4074. 975.74 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4075. 975.74 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4076. 975.76 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4077. 975.76 s [really-safe-money-gen] - in if f >= 0
  4078. 975.76 s [really-safe-money-gen] + in if True
  4079. 975.76 s [really-safe-money-gen] then (ma, r)
  4080. 975.76 s [really-safe-money-gen] else (negate <$> ma, -r)
  4081. 975.76 s [really-safe-money-gen]
  4082. 975.76 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4083. 975.76 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4084. 975.76 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4085. 975.76 s [really-safe-money-gen] fromRational quantisationFactor r =
  4086. 975.76 s [really-safe-money-gen] let r' = Prelude.abs r
  4087. 975.76 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4088. 975.76 s [really-safe-money-gen] + f = if r < 0 then Positive else Negative
  4089. 975.76 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4090. 975.76 s [really-safe-money-gen]
  4091. 975.76 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4092. 975.76 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4093. 975.76 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4094. 975.76 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4095. 975.76 s [really-safe-money-gen] fromRational quantisationFactor r =
  4096. 975.77 s [really-safe-money-gen] let r' = Prelude.abs r
  4097. 975.77 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4098. 975.77 s [really-safe-money-gen] + f = if r > 0 then Positive else Negative
  4099. 975.77 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4100. 975.77 s [really-safe-money-gen]
  4101. 975.77 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4102. 975.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  4103. 975.77 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4104. 975.77 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4105. 975.77 s [really-safe-money-gen] fromRational quantisationFactor r =
  4106. 975.77 s [really-safe-money-gen] let r' = Prelude.abs r
  4107. 975.77 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4108. 975.77 s [really-safe-money-gen] + f = if True then Positive else Negative
  4109. 975.77 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4110. 975.77 s [really-safe-money-gen]
  4111. 975.77 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4112. 975.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  4113. 975.77 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4114. 975.77 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4115. 975.77 s [really-safe-money-gen] fromRational quantisationFactor r =
  4116. 975.77 s [really-safe-money-gen] let r' = Prelude.abs r
  4117. 975.77 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4118. 975.77 s [really-safe-money-gen] + f = if False then Positive else Negative
  4119. 975.77 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4120. 975.77 s [really-safe-money-gen]
  4121. 975.77 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4122. 975.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  4123. 975.77 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4124. 975.77 s [really-safe-money-gen] fraction rounding account f =
  4125. 975.77 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4126. 975.77 s [really-safe-money-gen] ro =
  4127. 975.77 s [really-safe-money-gen] - if f >= 0
  4128. 975.77 s [really-safe-money-gen] + if False
  4129. 975.77 s [really-safe-money-gen] then rounding
  4130. 975.77 s [really-safe-money-gen] else case rounding of
  4131. 975.77 s [really-safe-money-gen] RoundUp -> RoundDown
  4132. 975.77 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20
  4133. 975.77 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4134. 975.77 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4135. 975.77 s [really-safe-money-gen] fromRational quantisationFactor r =
  4136. 975.77 s [really-safe-money-gen] let r' = Prelude.abs r
  4137. 975.77 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4138. 975.77 s [really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
  4139. 975.77 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4140. 975.77 s [really-safe-money-gen]
  4141. 975.77 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4142. 975.77 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4143. 975.77 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4144. 975.77 s [really-safe-money-gen] fraction rounding account f =
  4145. 975.77 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4146. 975.77 s [really-safe-money-gen] ro =
  4147. 975.77 s [really-safe-money-gen] - if f >= 0
  4148. 975.77 s [really-safe-money-gen] + if f > 0
  4149. 975.77 s [really-safe-money-gen] then rounding
  4150. 975.77 s [really-safe-money-gen] else case rounding of
  4151. 975.77 s [really-safe-money-gen] RoundUp -> RoundDown
  4152. 975.77 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
  4153. 975.77 s [really-safe-money-gen] @@ -208,9 +208,8 @@
  4154. 975.77 s [really-safe-money-gen] -- (-3) % 20
  4155. 975.77 s [really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
  4156. 975.77 s [really-safe-money-gen] toRational quantisationFactor account =
  4157. 975.77 s [really-safe-money-gen] let f = case account of
  4158. 975.77 s [really-safe-money-gen] Positive _ -> id
  4159. 975.77 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4160. 975.77 s [really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
  4161. 975.78 s [really-safe-money-gen]
  4162. 975.78 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4163. 975.78 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  4164. 975.78 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4165. 975.78 s [really-safe-money-gen] fraction rounding account f =
  4166. 975.78 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4167. 975.78 s [really-safe-money-gen] ro =
  4168. 975.78 s [really-safe-money-gen] - if f >= 0
  4169. 975.78 s [really-safe-money-gen] + if True
  4170. 975.78 s [really-safe-money-gen] then rounding
  4171. 975.78 s [really-safe-money-gen] else case rounding of
  4172. 975.78 s [really-safe-money-gen] RoundUp -> RoundDown
  4173. 975.78 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4174. 975.78 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4175. 975.78 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4176. 975.78 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4177. 975.78 s [really-safe-money-gen] let d' = Prelude.abs d
  4178. 975.78 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4179. 975.78 s [really-safe-money-gen] + f = if d < 0 then Positive else Negative
  4180. 975.78 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4181. 975.78 s [really-safe-money-gen]
  4182. 975.78 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4183. 975.78 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4184. 975.78 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4185. 975.78 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4186. 975.78 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4187. 975.78 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4188. 975.78 s [really-safe-money-gen] - in if f >= 0
  4189. 975.78 s [really-safe-money-gen] + in if f > 0
  4190. 975.78 s [really-safe-money-gen] then (ma, r)
  4191. 975.78 s [really-safe-money-gen] else (negate <$> ma, -r)
  4192. 975.78 s [really-safe-money-gen]
  4193. 975.78 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4194. 975.78 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4195. 975.78 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4196. 975.78 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4197. 975.78 s [really-safe-money-gen] let d' = Prelude.abs d
  4198. 975.78 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4199. 975.78 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  4200. 975.78 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4201. 975.78 s [really-safe-money-gen]
  4202. 975.78 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4203. 975.78 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  4204. 975.78 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4205. 975.78 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4206. 975.78 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4207. 975.78 s [really-safe-money-gen] let d' = Prelude.abs d
  4208. 975.78 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4209. 975.78 s [really-safe-money-gen] + f = if False then Positive else Negative
  4210. 975.78 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4211. 975.78 s [really-safe-money-gen]
  4212. 975.78 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4213. 975.78 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
  4214. 975.78 s [really-safe-money-gen] @@ -168,9 +168,8 @@
  4215. 975.78 s [really-safe-money-gen] -- -0.25
  4216. 975.78 s [really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
  4217. 975.78 s [really-safe-money-gen] toDouble quantisationFactor account =
  4218. 975.78 s [really-safe-money-gen] let f = case account of
  4219. 975.78 s [really-safe-money-gen] - Positive _ -> id
  4220. 975.78 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4221. 975.78 s [really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
  4222. 975.78 s [really-safe-money-gen]
  4223. 975.78 s [really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
  4224. 975.78 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16
  4225. 975.78 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4226. 975.78 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4227. 975.78 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4228. 975.78 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4229. 975.78 s [really-safe-money-gen] - in if f >= 0
  4230. 975.78 s [really-safe-money-gen] + in if not (f >= 0)
  4231. 975.78 s [really-safe-money-gen] then (ma, r)
  4232. 975.78 s [really-safe-money-gen] else (negate <$> ma, -r)
  4233. 975.78 s [really-safe-money-gen]
  4234. 975.78 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
  4235. 975.78 s [really-safe-money-gen] @@ -208,9 +208,8 @@
  4236. 975.78 s [really-safe-money-gen] -- (-3) % 20
  4237. 975.78 s [really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
  4238. 975.78 s [really-safe-money-gen] toRational quantisationFactor account =
  4239. 975.78 s [really-safe-money-gen] let f = case account of
  4240. 975.78 s [really-safe-money-gen] - Positive _ -> id
  4241. 975.78 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4242. 975.78 s [really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
  4243. 975.78 s [really-safe-money-gen]
  4244. 975.78 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4245. 975.78 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
  4246. 975.78 s [really-safe-money-gen] @@ -168,9 +168,8 @@
  4247. 975.78 s [really-safe-money-gen] -- -0.25
  4248. 975.78 s [really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
  4249. 975.78 s [really-safe-money-gen] toDouble quantisationFactor account =
  4250. 975.78 s [really-safe-money-gen] let f = case account of
  4251. 975.78 s [really-safe-money-gen] Positive _ -> id
  4252. 975.78 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4253. 975.78 s [really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
  4254. 975.78 s [really-safe-money-gen]
  4255. 975.78 s [really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
  4256. 980.06 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20
  4257. 980.07 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4258. 980.07 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4259. 980.07 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4260. 980.07 s [really-safe-money-gen] let d' = Prelude.abs d
  4261. 980.07 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4262. 980.07 s [really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
  4263. 980.07 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4264. 980.07 s [really-safe-money-gen]
  4265. 980.07 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4266. 980.07 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4267. 980.07 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4268. 980.07 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4269. 980.07 s [really-safe-money-gen] a :: Integer
  4270. 980.07 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4271. 980.07 s [really-safe-money-gen] - in if a > maxBoundI
  4272. 980.07 s [really-safe-money-gen] + in if a >= maxBoundI
  4273. 980.07 s [really-safe-money-gen] then Nothing
  4274. 980.07 s [really-safe-money-gen] else
  4275. 980.07 s [really-safe-money-gen] let w :: Word64
  4276. 980.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  4277. 980.07 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4278. 980.07 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4279. 980.07 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4280. 980.07 s [really-safe-money-gen] let d' = Prelude.abs d
  4281. 980.07 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4282. 980.07 s [really-safe-money-gen] + f = if True then Positive else Negative
  4283. 980.07 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4284. 980.08 s [really-safe-money-gen]
  4285. 980.08 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4286. 980.08 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:495:12-18
  4287. 980.08 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4288. 980.08 s [really-safe-money-gen] fraction rounding account f =
  4289. 980.08 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4290. 980.08 s [really-safe-money-gen] ro =
  4291. 980.08 s [really-safe-money-gen] - if f >= 0
  4292. 980.08 s [really-safe-money-gen] + if f < 0
  4293. 980.08 s [really-safe-money-gen] then rounding
  4294. 980.08 s [really-safe-money-gen] else case rounding of
  4295. 980.08 s [really-safe-money-gen] RoundUp -> RoundDown
  4296. 980.08 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18
  4297. 980.08 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  4298. 980.08 s [really-safe-money-gen] fraction rounding account f =
  4299. 980.08 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  4300. 980.08 s [really-safe-money-gen] ro =
  4301. 980.08 s [really-safe-money-gen] - if f >= 0
  4302. 980.08 s [really-safe-money-gen] + if not (f >= 0)
  4303. 980.08 s [really-safe-money-gen] then rounding
  4304. 980.08 s [really-safe-money-gen] else case rounding of
  4305. 980.08 s [really-safe-money-gen] RoundUp -> RoundDown
  4306. 980.08 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20
  4307. 980.08 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4308. 980.08 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4309. 980.08 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4310. 980.08 s [really-safe-money-gen] let d' = Prelude.abs d
  4311. 980.08 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4312. 980.08 s [really-safe-money-gen] + f = if d >= 1 then Positive else Negative
  4313. 980.08 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4314. 980.08 s [really-safe-money-gen]
  4315. 980.08 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4316. 980.08 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:197:14-20
  4317. 980.08 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  4318. 980.09 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  4319. 980.09 s [really-safe-money-gen] fromDouble quantisationFactor d =
  4320. 980.09 s [really-safe-money-gen] let d' = Prelude.abs d
  4321. 980.09 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  4322. 980.09 s [really-safe-money-gen] + f = if d <= 0 then Positive else Negative
  4323. 980.09 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  4324. 980.09 s [really-safe-money-gen]
  4325. 980.09 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  4326. 980.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  4327. 980.09 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4328. 980.09 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4329. 980.09 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4330. 980.09 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4331. 980.09 s [really-safe-money-gen] - in if f >= 0
  4332. 980.09 s [really-safe-money-gen] + in if False
  4333. 980.09 s [really-safe-money-gen] then (ma, r)
  4334. 980.09 s [really-safe-money-gen] else (negate <$> ma, -r)
  4335. 980.09 s [really-safe-money-gen]
  4336. 980.09 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:503:10-16
  4337. 980.09 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4338. 980.09 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4339. 980.09 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4340. 980.09 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4341. 980.09 s [really-safe-money-gen] - in if f >= 0
  4342. 980.09 s [really-safe-money-gen] + in if f < 0
  4343. 980.09 s [really-safe-money-gen] then (ma, r)
  4344. 980.09 s [really-safe-money-gen] else (negate <$> ma, -r)
  4345. 980.09 s [really-safe-money-gen]
  4346. 980.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  4347. 980.09 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4348. 980.09 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4349. 980.09 s [really-safe-money-gen] a :: Integer
  4350. 980.09 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4351. 980.09 s [really-safe-money-gen] - in if a > maxBoundI
  4352. 980.10 s [really-safe-money-gen] + in if False
  4353. 980.10 s [really-safe-money-gen] then Nothing
  4354. 980.10 s [really-safe-money-gen] else
  4355. 980.10 s [really-safe-money-gen] let w :: Word64
  4356. 980.10 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20
  4357. 980.10 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4358. 980.10 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4359. 980.10 s [really-safe-money-gen] fromRational quantisationFactor r =
  4360. 980.10 s [really-safe-money-gen] let r' = Prelude.abs r
  4361. 980.10 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4362. 980.10 s [really-safe-money-gen] + f = if r >= 1 then Positive else Negative
  4363. 980.10 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4364. 980.10 s [really-safe-money-gen]
  4365. 980.10 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4366. 980.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
  4367. 980.10 s [really-safe-money-gen] @@ -152,9 +152,8 @@
  4368. 980.10 s [really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
  4369. 980.10 s [really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
  4370. 980.10 s [really-safe-money-gen] toMinimalQuantisations account =
  4371. 980.10 s [really-safe-money-gen] let f = case account of
  4372. 980.10 s [really-safe-money-gen] - Positive _ -> id
  4373. 980.10 s [really-safe-money-gen] Negative _ -> Prelude.negate
  4374. 980.10 s [really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
  4375. 980.10 s [really-safe-money-gen]
  4376. 980.10 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  4377. 980.10 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
  4378. 980.10 s [really-safe-money-gen] @@ -152,9 +152,8 @@
  4379. 980.10 s [really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
  4380. 980.10 s [really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
  4381. 980.10 s [really-safe-money-gen] toMinimalQuantisations account =
  4382. 980.10 s [really-safe-money-gen] let f = case account of
  4383. 980.10 s [really-safe-money-gen] Positive _ -> id
  4384. 980.10 s [really-safe-money-gen] - Negative _ -> Prelude.negate
  4385. 980.10 s [really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
  4386. 980.10 s [really-safe-money-gen]
  4387. 980.10 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  4388. 980.10 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:233:14-20
  4389. 980.11 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  4390. 980.11 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  4391. 980.11 s [really-safe-money-gen] fromRational quantisationFactor r =
  4392. 980.11 s [really-safe-money-gen] let r' = Prelude.abs r
  4393. 980.11 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  4394. 980.11 s [really-safe-money-gen] + f = if r <= 0 then Positive else Negative
  4395. 980.11 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  4396. 980.11 s [really-safe-money-gen]
  4397. 980.11 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  4398. 980.11 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16
  4399. 980.11 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  4400. 980.11 s [really-safe-money-gen] RoundNearest -> RoundNearest
  4401. 980.11 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  4402. 980.11 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  4403. 980.11 s [really-safe-money-gen] - in if f >= 0
  4404. 980.11 s [really-safe-money-gen] + in if f >= 1
  4405. 980.11 s [really-safe-money-gen] then (ma, r)
  4406. 980.11 s [really-safe-money-gen] else (negate <$> ma, -r)
  4407. 980.11 s [really-safe-money-gen]
  4408. 980.11 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4409. 980.11 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4410. 980.11 s [really-safe-money-gen] amount :: Amount
  4411. 980.11 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4412. 980.11 s [really-safe-money-gen] in Just $
  4413. 980.11 s [really-safe-money-gen] - if i >= 0
  4414. 980.11 s [really-safe-money-gen] + if i > 0
  4415. 980.11 s [really-safe-money-gen] then Positive amount
  4416. 980.11 s [really-safe-money-gen] else Negative amount
  4417. 980.11 s [really-safe-money-gen]
  4418. 980.11 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26
  4419. 980.11 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4420. 980.11 s [really-safe-money-gen] amount :: Amount
  4421. 980.11 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4422. 980.11 s [really-safe-money-gen] in Just $
  4423. 980.11 s [really-safe-money-gen] - if i >= 0
  4424. 980.11 s [really-safe-money-gen] + if i >= 1
  4425. 980.11 s [really-safe-money-gen] then Positive amount
  4426. 980.11 s [really-safe-money-gen] else Negative amount
  4427. 980.11 s [really-safe-money-gen]
  4428. 980.12 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4429. 980.12 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4430. 980.12 s [really-safe-money-gen] amount :: Amount
  4431. 980.12 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4432. 980.12 s [really-safe-money-gen] in Just $
  4433. 980.12 s [really-safe-money-gen] - if i >= 0
  4434. 980.12 s [really-safe-money-gen] + if i < 0
  4435. 980.12 s [really-safe-money-gen] then Positive amount
  4436. 980.12 s [really-safe-money-gen] else Negative amount
  4437. 980.12 s [really-safe-money-gen]
  4438. 980.12 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:131:20-26
  4439. 980.12 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4440. 980.12 s [really-safe-money-gen] amount :: Amount
  4441. 980.12 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4442. 980.12 s [really-safe-money-gen] in Just $
  4443. 986.04 s [really-safe-money-gen] - if i >= 0
  4444. 986.04 s [really-safe-money-gen] + if i <= 0
  4445. 986.07 s [really-safe-money-gen] then Positive amount
  4446. 986.07 s [really-safe-money-gen] else Negative amount
  4447. 986.07 s [really-safe-money-gen]
  4448. 986.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  4449. 986.07 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4450. 986.07 s [really-safe-money-gen] amount :: Amount
  4451. 986.07 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4452. 986.07 s [really-safe-money-gen] in Just $
  4453. 986.07 s [really-safe-money-gen] - if i >= 0
  4454. 986.07 s [really-safe-money-gen] + if True
  4455. 986.07 s [really-safe-money-gen] then Positive amount
  4456. 986.07 s [really-safe-money-gen] else Negative amount
  4457. 986.07 s [really-safe-money-gen]
  4458. 986.07 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23
  4459. 986.08 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4460. 986.08 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4461. 986.08 s [really-safe-money-gen] a :: Integer
  4462. 986.08 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4463. 986.08 s [really-safe-money-gen] - in if a > maxBoundI
  4464. 986.08 s [really-safe-money-gen] + in if not (a > maxBoundI)
  4465. 986.08 s [really-safe-money-gen] then Nothing
  4466. 986.08 s [really-safe-money-gen] else
  4467. 986.08 s [really-safe-money-gen] let w :: Word64
  4468. 986.08 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4469. 986.08 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4470. 986.08 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4471. 986.08 s [really-safe-money-gen] a :: Integer
  4472. 986.08 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4473. 986.08 s [really-safe-money-gen] - in if a > maxBoundI
  4474. 986.08 s [really-safe-money-gen] + in if a <= maxBoundI
  4475. 986.08 s [really-safe-money-gen] then Nothing
  4476. 986.08 s [really-safe-money-gen] else
  4477. 986.08 s [really-safe-money-gen] let w :: Word64
  4478. 986.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  4479. 986.08 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4480. 986.08 s [really-safe-money-gen] amount :: Amount
  4481. 986.08 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4482. 986.08 s [really-safe-money-gen] in Just $
  4483. 986.08 s [really-safe-money-gen] - if i >= 0
  4484. 986.08 s [really-safe-money-gen] + if False
  4485. 986.08 s [really-safe-money-gen] then Positive amount
  4486. 986.08 s [really-safe-money-gen] else Negative amount
  4487. 986.08 s [really-safe-money-gen]
  4488. 986.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  4489. 986.08 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4490. 986.08 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4491. 986.08 s [really-safe-money-gen] a :: Integer
  4492. 986.08 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4493. 986.08 s [really-safe-money-gen] - in if a > maxBoundI
  4494. 986.08 s [really-safe-money-gen] + in if True
  4495. 986.08 s [really-safe-money-gen] then Nothing
  4496. 986.09 s [really-safe-money-gen] else
  4497. 986.09 s [really-safe-money-gen] let w :: Word64
  4498. 986.09 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26
  4499. 986.09 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  4500. 986.09 s [really-safe-money-gen] amount :: Amount
  4501. 986.09 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  4502. 986.09 s [really-safe-money-gen] in Just $
  4503. 986.09 s [really-safe-money-gen] - if i >= 0
  4504. 986.09 s [really-safe-money-gen] + if not (i >= 0)
  4505. 986.09 s [really-safe-money-gen] then Positive amount
  4506. 986.09 s [really-safe-money-gen] else Negative amount
  4507. 986.09 s [really-safe-money-gen]
  4508. 986.09 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Account.hs:123:10-23
  4509. 986.09 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  4510. 986.09 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  4511. 986.09 s [really-safe-money-gen] a :: Integer
  4512. 986.09 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  4513. 986.09 s [really-safe-money-gen] - in if a > maxBoundI
  4514. 986.09 s [really-safe-money-gen] + in if a < maxBoundI
  4515. 986.09 s [really-safe-money-gen] then Nothing
  4516. 986.09 s [really-safe-money-gen] else
  4517. 986.09 s [really-safe-money-gen] let w :: Word64
  4518. 986.09 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:341:11-18
  4519. 986.09 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  4520. 986.09 s [really-safe-money-gen] i2 :: Integer
  4521. 986.09 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4522. 986.09 s [really-safe-money-gen] r :: Integer
  4523. 986.09 s [really-safe-money-gen] - r = i1 + i2
  4524. 986.09 s [really-safe-money-gen] + r = i1 * i2
  4525. 986.09 s [really-safe-money-gen] in fromMinimalQuantisations r
  4526. 986.09 s [really-safe-money-gen]
  4527. 986.09 s [really-safe-money-gen] -- | Add a number of accounts of money together.
  4528. 986.09 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:378:11-18
  4529. 986.09 s [really-safe-money-gen] @@ -375,7 +375,7 @@
  4530. 986.09 s [really-safe-money-gen] i2 :: Integer
  4531. 986.09 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4532. 986.09 s [really-safe-money-gen] r :: Integer
  4533. 986.09 s [really-safe-money-gen] - r = i1 - i2
  4534. 986.09 s [really-safe-money-gen] + r = i1 + i2
  4535. 986.09 s [really-safe-money-gen] in fromMinimalQuantisations r
  4536. 986.09 s [really-safe-money-gen]
  4537. 986.09 s [really-safe-money-gen] -- | The absolute value of the account
  4538. 986.09 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  4539. 986.09 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  4540. 986.09 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  4541. 986.09 s [really-safe-money-gen] where
  4542. 986.09 s [really-safe-money-gen] go = \case
  4543. 986.09 s [really-safe-money-gen] - Nothing -> Just True
  4544. 986.09 s [really-safe-money-gen] + Nothing -> Just False
  4545. 986.09 s [really-safe-money-gen] s -> s
  4546. 986.09 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:396:18-27
  4547. 986.09 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  4548. 986.09 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  4549. 986.09 s [really-safe-money-gen] where
  4550. 986.10 s [really-safe-money-gen] go = \case
  4551. 986.10 s [really-safe-money-gen] - Nothing -> Just True
  4552. 986.10 s [really-safe-money-gen] + Nothing -> Nothing
  4553. 986.10 s [really-safe-money-gen] s -> s
  4554. 986.10 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  4555. 986.10 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4556. 986.10 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4557. 986.10 s [really-safe-money-gen] let currentDigits :: Word8
  4558. 986.10 s [really-safe-money-gen] currentDigits = digits dl
  4559. 986.10 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4560. 986.10 s [really-safe-money-gen] + in if wantedDigits < currentDigits
  4561. 986.10 s [really-safe-money-gen] then dl
  4562. 986.10 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4563. 986.10 s [really-safe-money-gen] where
  4564. 986.10 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  4565. 986.10 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4566. 986.10 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4567. 986.10 s [really-safe-money-gen] let currentDigits :: Word8
  4568. 986.10 s [really-safe-money-gen] currentDigits = digits dl
  4569. 986.10 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4570. 986.10 s [really-safe-money-gen] + in if wantedDigits > currentDigits
  4571. 986.10 s [really-safe-money-gen] then dl
  4572. 986.10 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4573. 986.10 s [really-safe-money-gen] where
  4574. 986.10 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:368:10-39
  4575. 986.10 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4576. 986.10 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4577. 986.10 s [really-safe-money-gen] let currentDigits :: Word8
  4578. 986.10 s [really-safe-money-gen] currentDigits = digits dl
  4579. 986.10 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4580. 986.10 s [really-safe-money-gen] + in if wantedDigits >= currentDigits
  4581. 986.10 s [really-safe-money-gen] then dl
  4582. 986.10 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4583. 986.10 s [really-safe-money-gen] where
  4584. 986.10 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  4585. 986.10 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4586. 986.10 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4587. 986.10 s [really-safe-money-gen] let currentDigits :: Word8
  4588. 986.10 s [really-safe-money-gen] currentDigits = digits dl
  4589. 986.10 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4590. 986.10 s [really-safe-money-gen] + in if True
  4591. 986.10 s [really-safe-money-gen] then dl
  4592. 986.10 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4593. 986.10 s [really-safe-money-gen] where
  4594. 986.10 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  4595. 986.10 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4596. 986.11 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4597. 986.11 s [really-safe-money-gen] let currentDigits :: Word8
  4598. 986.11 s [really-safe-money-gen] currentDigits = digits dl
  4599. 986.11 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4600. 986.11 s [really-safe-money-gen] + in if False
  4601. 986.11 s [really-safe-money-gen] then dl
  4602. 986.11 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4603. 986.11 s [really-safe-money-gen] where
  4604. 986.11 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  4605. 986.11 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  4606. 986.11 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  4607. 986.11 s [really-safe-money-gen] let currentDigits :: Word8
  4608. 986.11 s [really-safe-money-gen] currentDigits = digits dl
  4609. 986.11 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  4610. 986.11 s [really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
  4611. 986.11 s [really-safe-money-gen] then dl
  4612. 986.11 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  4613. 986.11 s [really-safe-money-gen] where
  4614. 986.11 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  4615. 986.11 s [really-safe-money-gen] @@ -367,7 +367,7 @@
  4616. 986.11 s [really-safe-money-gen] currentDigits = digits dl
  4617. 986.11 s [really-safe-money-gen] in if wantedDigits <= currentDigits
  4618. 986.11 s [really-safe-money-gen] then dl
  4619. 986.11 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  4620. 986.11 s [really-safe-money-gen] + else increaseDigits (wantedDigits + currentDigits) dl
  4621. 986.11 s [really-safe-money-gen] where
  4622. 986.11 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4623. 986.11 s [really-safe-money-gen] increaseDigits 0 = id
  4624. 986.11 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  4625. 986.11 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4626. 986.11 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4627. 986.11 s [really-safe-money-gen] increaseDigits 0 = id
  4628. 986.11 s [really-safe-money-gen] increaseDigits w = \case
  4629. 992.15 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4630. 992.17 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m + 10) (succ e))
  4631. 992.17 s [really-safe-money-gen]
  4632. 992.17 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4633. 992.17 s [really-safe-money-gen] --
  4634. 992.18 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  4635. 992.18 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4636. 992.18 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4637. 992.18 s [really-safe-money-gen] increaseDigits 0 = id
  4638. 992.18 s [really-safe-money-gen] increaseDigits w = \case
  4639. 992.18 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4640. 992.18 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  4641. 992.18 s [really-safe-money-gen]
  4642. 992.18 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4643. 992.18 s [really-safe-money-gen] --
  4644. 992.18 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:370:30-58
  4645. 992.18 s [really-safe-money-gen] @@ -367,7 +367,7 @@
  4646. 992.18 s [really-safe-money-gen] currentDigits = digits dl
  4647. 992.18 s [really-safe-money-gen] in if wantedDigits <= currentDigits
  4648. 992.18 s [really-safe-money-gen] then dl
  4649. 992.18 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  4650. 992.18 s [really-safe-money-gen] + else increaseDigits (wantedDigits * currentDigits) dl
  4651. 992.18 s [really-safe-money-gen] where
  4652. 992.18 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4653. 992.18 s [really-safe-money-gen] increaseDigits 0 = id
  4654. 992.18 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  4655. 992.18 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4656. 992.18 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4657. 992.18 s [really-safe-money-gen] increaseDigits 0 = id
  4658. 992.18 s [really-safe-money-gen] increaseDigits w = \case
  4659. 992.18 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4660. 992.18 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  4661. 992.18 s [really-safe-money-gen]
  4662. 992.18 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4663. 992.18 s [really-safe-money-gen] --
  4664. 992.18 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:341:11-18
  4665. 992.18 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  4666. 992.19 s [really-safe-money-gen] i2 :: Integer
  4667. 992.19 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4668. 992.19 s [really-safe-money-gen] r :: Integer
  4669. 992.19 s [really-safe-money-gen] - r = i1 + i2
  4670. 992.19 s [really-safe-money-gen] + r = i1 - i2
  4671. 992.19 s [really-safe-money-gen] in fromMinimalQuantisations r
  4672. 992.19 s [really-safe-money-gen]
  4673. 992.19 s [really-safe-money-gen] -- | Add a number of accounts of money together.
  4674. 992.19 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  4675. 992.19 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4676. 992.19 s [really-safe-money-gen] pure $ fromIntegral n
  4677. 992.19 s [really-safe-money-gen]
  4678. 992.19 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4679. 992.19 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4680. 992.19 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  4681. 992.19 s [really-safe-money-gen]
  4682. 992.19 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4683. 992.19 s [really-safe-money-gen] signSignum = \case
  4684. 992.19 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  4685. 992.19 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4686. 992.19 s [really-safe-money-gen] pure $ fromIntegral n
  4687. 992.19 s [really-safe-money-gen]
  4688. 992.19 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4689. 992.19 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4690. 992.19 s [really-safe-money-gen] +numSign a = if a < 0 then Nothing else Just False
  4691. 992.19 s [really-safe-money-gen]
  4692. 992.19 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4693. 992.19 s [really-safe-money-gen] signSignum = \case
  4694. 992.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  4695. 992.19 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4696. 992.19 s [really-safe-money-gen] pure $ fromIntegral n
  4697. 992.19 s [really-safe-money-gen]
  4698. 992.19 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4699. 992.20 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4700. 992.20 s [really-safe-money-gen] +numSign a = if True then Nothing else Just False
  4701. 992.20 s [really-safe-money-gen]
  4702. 992.20 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4703. 992.20 s [really-safe-money-gen] signSignum = \case
  4704. 992.20 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  4705. 992.20 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4706. 992.20 s [really-safe-money-gen] pure $ fromIntegral n
  4707. 992.20 s [really-safe-money-gen]
  4708. 992.20 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4709. 992.20 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4710. 992.20 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  4711. 992.20 s [really-safe-money-gen]
  4712. 992.20 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4713. 992.20 s [really-safe-money-gen] signSignum = \case
  4714. 992.20 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  4715. 992.20 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4716. 992.20 s [really-safe-money-gen] pure $ fromIntegral n
  4717. 992.20 s [really-safe-money-gen]
  4718. 992.20 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4719. 992.20 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4720. 992.20 s [really-safe-money-gen] +numSign a = if False then Nothing else Just False
  4721. 992.20 s [really-safe-money-gen]
  4722. 992.20 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4723. 992.20 s [really-safe-money-gen] signSignum = \case
  4724. 992.20 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  4725. 992.20 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4726. 992.20 s [really-safe-money-gen] pure $ fromIntegral n
  4727. 992.20 s [really-safe-money-gen]
  4728. 992.20 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4729. 992.20 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4730. 992.21 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
  4731. 992.21 s [really-safe-money-gen]
  4732. 992.21 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4733. 992.21 s [really-safe-money-gen] signSignum = \case
  4734. 992.21 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  4735. 992.21 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4736. 992.21 s [really-safe-money-gen] pure $ fromIntegral n
  4737. 992.21 s [really-safe-money-gen]
  4738. 992.21 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4739. 992.21 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4740. 992.21 s [really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
  4741. 992.21 s [really-safe-money-gen]
  4742. 992.21 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4743. 992.21 s [really-safe-money-gen] signSignum = \case
  4744. 992.21 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:337:41-51
  4745. 992.21 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4746. 992.21 s [really-safe-money-gen] pure $ fromIntegral n
  4747. 992.21 s [really-safe-money-gen]
  4748. 992.21 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4749. 992.21 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4750. 992.21 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Nothing
  4751. 992.21 s [really-safe-money-gen]
  4752. 992.21 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4753. 992.21 s [really-safe-money-gen] signSignum = \case
  4754. 992.21 s [really-safe-money-gen] Testing mutation Arith at src/Money/Account.hs:378:11-18
  4755. 992.21 s [really-safe-money-gen] @@ -375,7 +375,7 @@
  4756. 992.21 s [really-safe-money-gen] i2 :: Integer
  4757. 992.21 s [really-safe-money-gen] i2 = toMinimalQuantisations a2
  4758. 992.21 s [really-safe-money-gen] r :: Integer
  4759. 992.21 s [really-safe-money-gen] - r = i1 - i2
  4760. 992.21 s [really-safe-money-gen] + r = i1 * i2
  4761. 992.21 s [really-safe-money-gen] in fromMinimalQuantisations r
  4762. 992.21 s [really-safe-money-gen]
  4763. 992.21 s [really-safe-money-gen] -- | The absolute value of the account
  4764. 992.22 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  4765. 992.22 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  4766. 992.22 s [really-safe-money-gen] pure $ fromIntegral n
  4767. 992.22 s [really-safe-money-gen]
  4768. 992.22 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4769. 992.22 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  4770. 992.22 s [really-safe-money-gen] +numSign a = if a <= 0 then Nothing else Just False
  4771. 992.22 s [really-safe-money-gen]
  4772. 992.22 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4773. 992.22 s [really-safe-money-gen] signSignum = \case
  4774. 992.22 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:375:76-82
  4775. 992.22 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  4776. 992.22 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4777. 992.22 s [really-safe-money-gen] increaseDigits 0 = id
  4778. 992.22 s [really-safe-money-gen] increaseDigits w = \case
  4779. 992.22 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4780. 992.22 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m - 10) (succ e))
  4781. 992.22 s [really-safe-money-gen]
  4782. 992.22 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  4783. 992.22 s [really-safe-money-gen] --
  4784. 992.22 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  4785. 992.22 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4786. 992.22 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4787. 992.22 s [really-safe-money-gen] toInt dl = do
  4788. 992.22 s [really-safe-money-gen] n <- toInteger dl
  4789. 992.22 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4790. 992.22 s [really-safe-money-gen] + guard $ n > fromIntegral (maxBound :: Int)
  4791. 992.22 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4792. 992.22 s [really-safe-money-gen] pure $ fromIntegral n
  4793. 992.22 s [really-safe-money-gen]
  4794. 992.22 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  4795. 992.22 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4796. 992.22 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4797. 992.22 s [really-safe-money-gen] toInt dl = do
  4798. 992.22 s [really-safe-money-gen] n <- toInteger dl
  4799. 992.22 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4800. 992.22 s [really-safe-money-gen] + guard $ False
  4801. 992.22 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4802. 992.23 s [really-safe-money-gen] pure $ fromIntegral n
  4803. 992.23 s [really-safe-money-gen]
  4804. 992.23 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  4805. 992.23 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4806. 992.23 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4807. 992.23 s [really-safe-money-gen] toInt dl = do
  4808. 992.23 s [really-safe-money-gen] n <- toInteger dl
  4809. 992.23 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4810. 992.23 s [really-safe-money-gen] + guard $ n >= fromIntegral (maxBound :: Int)
  4811. 992.23 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4812. 992.23 s [really-safe-money-gen] pure $ fromIntegral n
  4813. 992.23 s [really-safe-money-gen]
  4814. 997.37 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  4815. 997.39 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4816. 997.39 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4817. 997.39 s [really-safe-money-gen] toInt dl = do
  4818. 997.39 s [really-safe-money-gen] n <- toInteger dl
  4819. 997.39 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4820. 997.39 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
  4821. 997.39 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4822. 997.40 s [really-safe-money-gen] pure $ fromIntegral n
  4823. 997.40 s [really-safe-money-gen]
  4824. 997.40 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  4825. 997.40 s [really-safe-money-gen] @@ -312,7 +312,7 @@
  4826. 997.40 s [really-safe-money-gen]
  4827. 997.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  4828. 997.40 s [really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
  4829. 997.40 s [really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  4830. 997.40 s [really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  4831. 997.40 s [really-safe-money-gen]
  4832. 997.40 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
  4833. 997.40 s [really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
  4834. 997.40 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  4835. 997.40 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4836. 997.40 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4837. 997.40 s [really-safe-money-gen] toInt dl = do
  4838. 997.40 s [really-safe-money-gen] n <- toInteger dl
  4839. 997.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4840. 997.40 s [really-safe-money-gen] + guard $ True
  4841. 997.40 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4842. 997.40 s [really-safe-money-gen] pure $ fromIntegral n
  4843. 997.40 s [really-safe-money-gen]
  4844. 997.40 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  4845. 997.40 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4846. 997.40 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4847. 997.40 s [really-safe-money-gen] toWord dl = do
  4848. 997.40 s [really-safe-money-gen] n <- toNatural dl
  4849. 997.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4850. 997.40 s [really-safe-money-gen] + guard $ n >= fromIntegral (maxBound :: Word)
  4851. 997.40 s [really-safe-money-gen] pure $ fromIntegral n
  4852. 997.40 s [really-safe-money-gen]
  4853. 997.40 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4854. 997.40 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  4855. 997.40 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4856. 997.41 s [really-safe-money-gen] toInt dl = do
  4857. 997.41 s [really-safe-money-gen] n <- toInteger dl
  4858. 997.41 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4859. 997.41 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4860. 997.41 s [really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
  4861. 997.41 s [really-safe-money-gen] pure $ fromIntegral n
  4862. 997.41 s [really-safe-money-gen]
  4863. 997.41 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4864. 997.41 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  4865. 997.41 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  4866. 997.41 s [really-safe-money-gen] toInt dl = do
  4867. 997.41 s [really-safe-money-gen] n <- toInteger dl
  4868. 997.41 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4869. 997.41 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4870. 997.41 s [really-safe-money-gen] pure $ fromIntegral n
  4871. 997.41 s [really-safe-money-gen]
  4872. 997.41 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4873. 997.41 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  4874. 997.41 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4875. 997.41 s [really-safe-money-gen] toInt dl = do
  4876. 997.41 s [really-safe-money-gen] n <- toInteger dl
  4877. 997.41 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4878. 997.41 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4879. 997.41 s [really-safe-money-gen] + guard $ n < fromIntegral (minBound :: Int)
  4880. 997.41 s [really-safe-money-gen] pure $ fromIntegral n
  4881. 997.41 s [really-safe-money-gen]
  4882. 997.41 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4883. 997.41 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  4884. 997.41 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4885. 997.41 s [really-safe-money-gen] toInt dl = do
  4886. 997.41 s [really-safe-money-gen] n <- toInteger dl
  4887. 997.41 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4888. 997.41 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4889. 997.41 s [really-safe-money-gen] + guard $ n <= fromIntegral (minBound :: Int)
  4890. 997.41 s [really-safe-money-gen] pure $ fromIntegral n
  4891. 997.41 s [really-safe-money-gen]
  4892. 997.41 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4893. 997.41 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  4894. 997.41 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  4895. 997.41 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4896. 997.41 s [really-safe-money-gen] toInt dl = do
  4897. 997.41 s [really-safe-money-gen] n <- toInteger dl
  4898. 997.41 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4899. 997.41 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  4900. 997.41 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4901. 997.41 s [really-safe-money-gen] pure $ fromIntegral n
  4902. 997.41 s [really-safe-money-gen]
  4903. 997.42 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  4904. 997.42 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4905. 997.42 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4906. 997.42 s [really-safe-money-gen] toWord dl = do
  4907. 997.42 s [really-safe-money-gen] n <- toNatural dl
  4908. 997.42 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4909. 997.42 s [really-safe-money-gen] + guard $ n > fromIntegral (maxBound :: Word)
  4910. 997.42 s [really-safe-money-gen] pure $ fromIntegral n
  4911. 997.42 s [really-safe-money-gen]
  4912. 997.42 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4913. 997.42 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  4914. 997.42 s [really-safe-money-gen] @@ -301,7 +301,7 @@
  4915. 997.42 s [really-safe-money-gen]
  4916. 997.42 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4917. 997.42 s [really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
  4918. 997.42 s [really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
  4919. 997.42 s [really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
  4920. 997.42 s [really-safe-money-gen]
  4921. 997.42 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
  4922. 997.42 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  4923. 997.42 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:299:11-47
  4924. 997.42 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4925. 997.42 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4926. 997.42 s [really-safe-money-gen] toWord dl = do
  4927. 997.42 s [really-safe-money-gen] n <- toNatural dl
  4928. 997.42 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4929. 997.42 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Word)
  4930. 997.42 s [really-safe-money-gen] pure $ fromIntegral n
  4931. 997.42 s [really-safe-money-gen]
  4932. 997.42 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4933. 997.42 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  4934. 997.42 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  4935. 997.42 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  4936. 997.42 s [really-safe-money-gen] toWord dl = do
  4937. 997.42 s [really-safe-money-gen] n <- toNatural dl
  4938. 997.42 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  4939. 997.42 s [really-safe-money-gen] + guard $ True
  4940. 997.42 s [really-safe-money-gen] pure $ fromIntegral n
  4941. 997.42 s [really-safe-money-gen]
  4942. 997.42 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4943. 997.43 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:310:27-33
  4944. 997.43 s [really-safe-money-gen] @@ -307,7 +307,7 @@
  4945. 997.43 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  4946. 997.43 s [really-safe-money-gen] toNatural = \case
  4947. 997.43 s [really-safe-money-gen] DecimalLiteral (Just False) _ _ -> Nothing
  4948. 997.43 s [really-safe-money-gen] - DecimalLiteral _ n 0 -> Just n
  4949. 997.43 s [really-safe-money-gen] + DecimalLiteral _ n 0 -> Nothing
  4950. 997.43 s [really-safe-money-gen] _ -> Nothing
  4951. 997.43 s [really-safe-money-gen]
  4952. 997.43 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  4953. 997.43 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  4954. 997.43 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  4955. 997.43 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  4956. 997.43 s [really-safe-money-gen] toInt dl = do
  4957. 997.43 s [really-safe-money-gen] n <- toInteger dl
  4958. 997.43 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  4959. 997.43 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  4960. 997.43 s [really-safe-money-gen] pure $ fromIntegral n
  4961. 997.43 s [really-safe-money-gen]
  4962. 997.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  4963. 997.43 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4964. 997.43 s [really-safe-money-gen] toInt dl = do
  4965. 997.43 s [really-safe-money-gen] n <- toInteger dl
  4966. 997.43 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4967. 997.43 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4968. 997.43 s [really-safe-money-gen] + guard $ False
  4969. 997.43 s [really-safe-money-gen] pure $ fromIntegral n
  4970. 997.43 s [really-safe-money-gen]
  4971. 997.43 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4972. 997.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  4973. 997.43 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4974. 997.43 s [really-safe-money-gen] toInt dl = do
  4975. 997.43 s [really-safe-money-gen] n <- toInteger dl
  4976. 997.43 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4977. 997.43 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4978. 997.43 s [really-safe-money-gen] + guard $ True
  4979. 997.43 s [really-safe-money-gen] pure $ fromIntegral n
  4980. 997.43 s [really-safe-money-gen]
  4981. 997.43 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4982. 997.43 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:333:11-46
  4983. 997.43 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  4984. 997.43 s [really-safe-money-gen] toInt dl = do
  4985. 997.43 s [really-safe-money-gen] n <- toInteger dl
  4986. 997.43 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  4987. 997.43 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  4988. 997.43 s [really-safe-money-gen] + guard $ n > fromIntegral (minBound :: Int)
  4989. 997.43 s [really-safe-money-gen] pure $ fromIntegral n
  4990. 997.43 s [really-safe-money-gen]
  4991. 997.43 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4992. 997.43 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  4993. 997.43 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  4994. 997.43 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4995. 997.44 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  4996. 997.44 s [really-safe-money-gen] Just False -> Nothing
  4997. 997.44 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  4998. 997.44 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  4999. 997.44 s [really-safe-money-gen]
  5000. 997.44 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5001. 997.44 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5002. 1001.98 s [really-safe-money-gen] Testing mutation RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  5003. 1001.98 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  5004. 1001.98 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5005. 1001.99 s [really-safe-money-gen] toWord dl = do
  5006. 1001.99 s [really-safe-money-gen] n <- toNatural dl
  5007. 1001.99 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5008. 1001.99 s [really-safe-money-gen] pure $ fromIntegral n
  5009. 1001.99 s [really-safe-money-gen]
  5010. 1001.99 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5011. 1001.99 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  5012. 1001.99 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5013. 1001.99 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5014. 1001.99 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5015. 1001.99 s [really-safe-money-gen] Just False -> Nothing
  5016. 1001.99 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5017. 1001.99 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
  5018. 1001.99 s [really-safe-money-gen]
  5019. 1001.99 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5020. 1001.99 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5021. 1001.99 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  5022. 1001.99 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  5023. 1001.99 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  5024. 1001.99 s [really-safe-money-gen] -- Nothing
  5025. 1001.99 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5026. 1001.99 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5027. 1001.99 s [really-safe-money-gen] - Just False -> Nothing
  5028. 1001.99 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  5029. 1001.99 s [really-safe-money-gen]
  5030. 1001.99 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5031. 1001.99 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5032. 1001.99 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  5033. 1001.99 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5034. 1001.99 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5035. 1001.99 s [really-safe-money-gen] -- Nothing
  5036. 1001.99 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5037. 1001.99 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5038. 1001.99 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
  5039. 1001.99 s [really-safe-money-gen] where
  5040. 1001.99 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5041. 1001.99 s [really-safe-money-gen] -- limit
  5042. 1001.99 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  5043. 1001.99 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5044. 1001.99 s [really-safe-money-gen] Ratio Natural ->
  5045. 1001.99 s [really-safe-money-gen] Maybe DecimalLiteral
  5046. 1001.99 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5047. 1001.99 s [really-safe-money-gen] - | d == 0 = Nothing
  5048. 1001.99 s [really-safe-money-gen] + | d == 1 = Nothing
  5049. 1001.99 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5050. 1001.99 s [really-safe-money-gen] where
  5051. 1001.99 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5052. 1002.00 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  5053. 1002.00 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5054. 1002.00 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5055. 1002.00 s [really-safe-money-gen] -- Nothing
  5056. 1002.00 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5057. 1002.00 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5058. 1002.00 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
  5059. 1002.00 s [really-safe-money-gen] where
  5060. 1002.00 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5061. 1002.00 s [really-safe-money-gen] -- limit
  5062. 1002.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  5063. 1002.00 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5064. 1002.00 s [really-safe-money-gen] Ratio Natural ->
  5065. 1002.00 s [really-safe-money-gen] Maybe DecimalLiteral
  5066. 1002.00 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5067. 1002.00 s [really-safe-money-gen] - | d == 0 = Nothing
  5068. 1002.00 s [really-safe-money-gen] + | True = Nothing
  5069. 1002.00 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5070. 1002.00 s [really-safe-money-gen] where
  5071. 1002.00 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5072. 1002.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  5073. 1002.00 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5074. 1002.00 s [really-safe-money-gen] Just (c, e)
  5075. 1002.00 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5076. 1002.00 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5077. 1002.00 s [really-safe-money-gen] - | S.member n ns = Nothing
  5078. 1002.00 s [really-safe-money-gen] + | True = Nothing
  5079. 1002.00 s [really-safe-money-gen] -- Over the limit, stop trying
  5080. 1002.00 s [really-safe-money-gen] | e >= l = Nothing
  5081. 1002.00 s [really-safe-money-gen] | n < d =
  5082. 1002.00 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  5083. 1002.00 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5084. 1002.00 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5085. 1002.00 s [really-safe-money-gen] | S.member n ns = Nothing
  5086. 1002.00 s [really-safe-money-gen] -- Over the limit, stop trying
  5087. 1002.00 s [really-safe-money-gen] - | e >= l = Nothing
  5088. 1002.00 s [really-safe-money-gen] + | e <= l = Nothing
  5089. 1002.00 s [really-safe-money-gen] | n < d =
  5090. 1002.00 s [really-safe-money-gen] let !ns' = S.insert n ns
  5091. 1002.00 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5092. 1002.00 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  5093. 1002.00 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5094. 1002.00 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5095. 1002.00 s [really-safe-money-gen] | S.member n ns = Nothing
  5096. 1002.01 s [really-safe-money-gen] -- Over the limit, stop trying
  5097. 1002.01 s [really-safe-money-gen] - | e >= l = Nothing
  5098. 1002.01 s [really-safe-money-gen] + | e > l = Nothing
  5099. 1002.01 s [really-safe-money-gen] | n < d =
  5100. 1002.01 s [really-safe-money-gen] let !ns' = S.insert n ns
  5101. 1002.01 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5102. 1002.01 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  5103. 1002.01 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5104. 1002.01 s [really-safe-money-gen] | S.member n ns = Nothing
  5105. 1002.01 s [really-safe-money-gen] -- Over the limit, stop trying
  5106. 1002.01 s [really-safe-money-gen] | e >= l = Nothing
  5107. 1002.01 s [really-safe-money-gen] - | n < d =
  5108. 1002.01 s [really-safe-money-gen] + | n <= d =
  5109. 1002.01 s [really-safe-money-gen] let !ns' = S.insert n ns
  5110. 1002.01 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5111. 1002.01 s [really-safe-money-gen] | otherwise =
  5112. 1002.01 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:266:13-19
  5113. 1002.01 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5114. 1002.01 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5115. 1002.01 s [really-safe-money-gen] | S.member n ns = Nothing
  5116. 1002.01 s [really-safe-money-gen] -- Over the limit, stop trying
  5117. 1002.01 s [really-safe-money-gen] - | e >= l = Nothing
  5118. 1002.01 s [really-safe-money-gen] + | e < l = Nothing
  5119. 1002.01 s [really-safe-money-gen] | n < d =
  5120. 1002.01 s [really-safe-money-gen] let !ns' = S.insert n ns
  5121. 1002.01 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5122. 1002.01 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  5123. 1002.01 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5124. 1002.01 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5125. 1002.01 s [really-safe-money-gen] | S.member n ns = Nothing
  5126. 1002.01 s [really-safe-money-gen] -- Over the limit, stop trying
  5127. 1002.01 s [really-safe-money-gen] - | e >= l = Nothing
  5128. 1002.01 s [really-safe-money-gen] + | not (e >= l) = Nothing
  5129. 1002.01 s [really-safe-money-gen] | n < d =
  5130. 1002.01 s [really-safe-money-gen] let !ns' = S.insert n ns
  5131. 1002.01 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5132. 1002.01 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  5133. 1002.01 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5134. 1002.01 s [really-safe-money-gen] | S.member n ns = Nothing
  5135. 1002.01 s [really-safe-money-gen] -- Over the limit, stop trying
  5136. 1002.01 s [really-safe-money-gen] | e >= l = Nothing
  5137. 1002.01 s [really-safe-money-gen] - | n < d =
  5138. 1002.01 s [really-safe-money-gen] + | n >= d =
  5139. 1002.01 s [really-safe-money-gen] let !ns' = S.insert n ns
  5140. 1002.01 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5141. 1002.02 s [really-safe-money-gen] | otherwise =
  5142. 1002.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  5143. 1002.02 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5144. 1002.02 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5145. 1002.02 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5146. 1002.02 s [really-safe-money-gen] Just False -> Nothing
  5147. 1002.02 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5148. 1002.02 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
  5149. 1002.02 s [really-safe-money-gen]
  5150. 1002.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5151. 1002.02 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5152. 1002.02 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  5153. 1002.02 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  5154. 1002.02 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  5155. 1002.02 s [really-safe-money-gen] -- Nothing
  5156. 1002.02 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5157. 1002.02 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5158. 1002.02 s [really-safe-money-gen] Just False -> Nothing
  5159. 1002.02 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5160. 1002.02 s [really-safe-money-gen]
  5161. 1002.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5162. 1002.02 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5163. 1002.02 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  5164. 1002.02 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5165. 1002.02 s [really-safe-money-gen] | e >= l = Nothing
  5166. 1002.02 s [really-safe-money-gen] | n < d =
  5167. 1002.02 s [really-safe-money-gen] let !ns' = S.insert n ns
  5168. 1002.02 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5169. 1002.02 s [really-safe-money-gen] + in longDivWithLimit (c - 10) (succ e) ns' (n * 10)
  5170. 1002.02 s [really-safe-money-gen] | otherwise =
  5171. 1002.02 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5172. 1002.02 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5173. 1002.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  5174. 1002.02 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  5175. 1002.02 s [really-safe-money-gen] num = numerator rational
  5176. 1002.02 s [really-safe-money-gen]
  5177. 1002.02 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  5178. 1002.02 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  5179. 1002.02 s [really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
  5180. 1002.02 s [really-safe-money-gen]
  5181. 1006.87 s [really-safe-money-gen] longDivWithLimit ::
  5182. 1006.87 s [really-safe-money-gen] Natural ->
  5183. 1006.95 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  5184. 1006.95 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5185. 1006.95 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5186. 1006.95 s [really-safe-money-gen] toWord dl = do
  5187. 1006.95 s [really-safe-money-gen] n <- toNatural dl
  5188. 1006.95 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5189. 1006.95 s [really-safe-money-gen] + guard $ False
  5190. 1006.95 s [really-safe-money-gen] pure $ fromIntegral n
  5191. 1006.95 s [really-safe-money-gen]
  5192. 1006.95 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5193. 1006.95 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  5194. 1006.95 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  5195. 1006.95 s [really-safe-money-gen] -- (-3) % 10
  5196. 1006.95 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  5197. 1006.95 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  5198. 1006.95 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  5199. 1006.95 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
  5200. 1006.96 s [really-safe-money-gen]
  5201. 1006.96 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  5202. 1006.96 s [really-safe-money-gen] --
  5203. 1006.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  5204. 1006.96 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  5205. 1006.96 s [really-safe-money-gen] -- (-3) % 10
  5206. 1006.96 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  5207. 1006.96 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  5208. 1006.96 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  5209. 1006.96 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
  5210. 1006.96 s [really-safe-money-gen]
  5211. 1006.96 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  5212. 1006.96 s [really-safe-money-gen] --
  5213. 1006.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  5214. 1006.96 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5215. 1006.96 s [really-safe-money-gen] -- Nothing
  5216. 1006.96 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5217. 1006.96 s [really-safe-money-gen] fromRational (n :% d)
  5218. 1006.96 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5219. 1006.96 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5220. 1006.96 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5221. 1006.96 s [really-safe-money-gen]
  5222. 1006.96 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5223. 1006.96 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  5224. 1006.96 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5225. 1006.96 s [really-safe-money-gen] -- Nothing
  5226. 1006.96 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5227. 1006.96 s [really-safe-money-gen] fromRational (n :% d)
  5228. 1006.96 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5229. 1006.96 s [really-safe-money-gen] + | n <= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5230. 1006.96 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5231. 1006.96 s [really-safe-money-gen]
  5232. 1006.96 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5233. 1006.96 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  5234. 1006.96 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5235. 1006.96 s [really-safe-money-gen] -- Nothing
  5236. 1006.96 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5237. 1006.97 s [really-safe-money-gen] fromRational (n :% d)
  5238. 1006.97 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5239. 1006.97 s [really-safe-money-gen] + | n > 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5240. 1006.97 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5241. 1006.97 s [really-safe-money-gen]
  5242. 1006.97 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5243. 1006.97 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
  5244. 1006.97 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5245. 1006.97 s [really-safe-money-gen] -- Nothing
  5246. 1006.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5247. 1006.97 s [really-safe-money-gen] fromRational (n :% d)
  5248. 1006.97 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5249. 1006.97 s [really-safe-money-gen] + | n >= 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5250. 1006.97 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5251. 1006.97 s [really-safe-money-gen]
  5252. 1006.97 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5253. 1006.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  5254. 1006.97 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5255. 1006.97 s [really-safe-money-gen] -- Nothing
  5256. 1006.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5257. 1006.97 s [really-safe-money-gen] fromRational (n :% d)
  5258. 1006.97 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5259. 1006.97 s [really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5260. 1006.97 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5261. 1006.97 s [really-safe-money-gen]
  5262. 1006.97 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5263. 1006.97 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  5264. 1006.97 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5265. 1006.97 s [really-safe-money-gen] -- Nothing
  5266. 1006.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5267. 1006.97 s [really-safe-money-gen] fromRational (n :% d)
  5268. 1006.97 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5269. 1006.97 s [really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5270. 1006.97 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5271. 1006.97 s [really-safe-money-gen]
  5272. 1006.97 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5273. 1006.97 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  5274. 1006.97 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5275. 1006.97 s [really-safe-money-gen] -- Nothing
  5276. 1006.97 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5277. 1006.97 s [really-safe-money-gen] fromRational (n :% d)
  5278. 1006.97 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5279. 1006.97 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5280. 1006.97 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5281. 1006.97 s [really-safe-money-gen]
  5282. 1006.97 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5283. 1006.97 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:208:57-67
  5284. 1006.98 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  5285. 1006.98 s [really-safe-money-gen] -- Nothing
  5286. 1006.98 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  5287. 1006.98 s [really-safe-money-gen] fromRational (n :% d)
  5288. 1006.98 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5289. 1006.98 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Nothing) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  5290. 1006.98 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  5291. 1006.98 s [really-safe-money-gen]
  5292. 1006.98 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  5293. 1006.98 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  5294. 1006.98 s [really-safe-money-gen] @@ -183,7 +183,6 @@
  5295. 1006.98 s [really-safe-money-gen]
  5296. 1006.98 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  5297. 1006.98 s [really-safe-money-gen] go :: Word8 -> String -> String
  5298. 1006.98 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  5299. 1006.98 s [really-safe-money-gen] go 0 s = '.' : s
  5300. 1006.98 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  5301. 1006.98 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  5302. 1006.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  5303. 1006.98 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5304. 1006.98 s [really-safe-money-gen] | S.member n ns = Nothing
  5305. 1006.98 s [really-safe-money-gen] -- Over the limit, stop trying
  5306. 1006.98 s [really-safe-money-gen] | e >= l = Nothing
  5307. 1006.98 s [really-safe-money-gen] - | n < d =
  5308. 1006.98 s [really-safe-money-gen] + | True =
  5309. 1006.98 s [really-safe-money-gen] let !ns' = S.insert n ns
  5310. 1006.98 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5311. 1006.98 s [really-safe-money-gen] | otherwise =
  5312. 1006.98 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  5313. 1006.98 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5314. 1006.98 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5315. 1006.98 s [really-safe-money-gen] parseDigits f z = do
  5316. 1006.98 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5317. 1006.98 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5318. 1006.98 s [really-safe-money-gen] + let digit = Char.ord c - 1
  5319. 1006.98 s [really-safe-money-gen] case f z digit of
  5320. 1006.98 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5321. 1006.98 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5322. 1006.98 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  5323. 1006.98 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5324. 1006.98 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5325. 1006.98 s [really-safe-money-gen] parseDigits f z = do
  5326. 1006.98 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5327. 1006.98 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5328. 1006.98 s [really-safe-money-gen] + let digit = Char.ord c - -48
  5329. 1006.98 s [really-safe-money-gen] case f z digit of
  5330. 1006.98 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5331. 1006.98 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5332. 1012.56 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  5333. 1012.56 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5334. 1012.58 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5335. 1012.59 s [really-safe-money-gen] parseDigits f z = do
  5336. 1012.59 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5337. 1012.59 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5338. 1012.59 s [really-safe-money-gen] + let digit = Char.ord c + 48
  5339. 1012.59 s [really-safe-money-gen] case f z digit of
  5340. 1012.59 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5341. 1012.59 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5342. 1012.59 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:145:15-30
  5343. 1012.59 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5344. 1012.59 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5345. 1012.59 s [really-safe-money-gen] parseDigits f z = do
  5346. 1012.59 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5347. 1012.59 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5348. 1012.59 s [really-safe-money-gen] + let digit = Char.ord c * 48
  5349. 1012.59 s [really-safe-money-gen] case f z digit of
  5350. 1012.59 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5351. 1012.59 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5352. 1012.59 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  5353. 1012.59 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  5354. 1012.59 s [really-safe-money-gen] where
  5355. 1012.59 s [really-safe-money-gen] go !a [] = return a
  5356. 1012.59 s [really-safe-money-gen] go !a (c : cs)
  5357. 1012.59 s [really-safe-money-gen] - | Char.isDigit c = do
  5358. 1012.59 s [really-safe-money-gen] + | True = do
  5359. 1012.59 s [really-safe-money-gen] _ <- ReadP.get
  5360. 1012.59 s [really-safe-money-gen] let digit = Char.ord c - 48
  5361. 1012.59 s [really-safe-money-gen] case f a digit of
  5362. 1012.59 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  5363. 1012.59 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  5364. 1012.59 s [really-safe-money-gen] where
  5365. 1012.60 s [really-safe-money-gen] go !a [] = return a
  5366. 1012.60 s [really-safe-money-gen] go !a (c : cs)
  5367. 1012.60 s [really-safe-money-gen] - | Char.isDigit c = do
  5368. 1012.60 s [really-safe-money-gen] + | not (Char.isDigit c) = do
  5369. 1012.60 s [really-safe-money-gen] _ <- ReadP.get
  5370. 1012.60 s [really-safe-money-gen] let digit = Char.ord c - 48
  5371. 1012.60 s [really-safe-money-gen] case f a digit of
  5372. 1012.60 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  5373. 1012.60 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5374. 1012.60 s [really-safe-money-gen] go !a (c : cs)
  5375. 1012.60 s [really-safe-money-gen] | Char.isDigit c = do
  5376. 1012.60 s [really-safe-money-gen] _ <- ReadP.get
  5377. 1012.60 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5378. 1012.60 s [really-safe-money-gen] + let digit = Char.ord c - 0
  5379. 1012.60 s [really-safe-money-gen] case f a digit of
  5380. 1012.60 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5381. 1012.60 s [really-safe-money-gen] Just a' -> go a' cs
  5382. 1012.60 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  5383. 1012.60 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5384. 1012.60 s [really-safe-money-gen] go !a (c : cs)
  5385. 1012.60 s [really-safe-money-gen] | Char.isDigit c = do
  5386. 1012.60 s [really-safe-money-gen] _ <- ReadP.get
  5387. 1012.60 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5388. 1012.60 s [really-safe-money-gen] + let digit = Char.ord c - 1
  5389. 1012.60 s [really-safe-money-gen] case f a digit of
  5390. 1012.60 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5391. 1012.60 s [really-safe-money-gen] Just a' -> go a' cs
  5392. 1012.60 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  5393. 1012.60 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5394. 1012.60 s [really-safe-money-gen] go !a (c : cs)
  5395. 1012.60 s [really-safe-money-gen] | Char.isDigit c = do
  5396. 1012.60 s [really-safe-money-gen] _ <- ReadP.get
  5397. 1012.60 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5398. 1012.60 s [really-safe-money-gen] + let digit = Char.ord c - -48
  5399. 1012.60 s [really-safe-money-gen] case f a digit of
  5400. 1012.60 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5401. 1012.60 s [really-safe-money-gen] Just a' -> go a' cs
  5402. 1012.60 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  5403. 1012.60 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5404. 1012.60 s [really-safe-money-gen] go !a (c : cs)
  5405. 1012.60 s [really-safe-money-gen] | Char.isDigit c = do
  5406. 1012.60 s [really-safe-money-gen] _ <- ReadP.get
  5407. 1012.60 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5408. 1012.60 s [really-safe-money-gen] + let digit = Char.ord c + 48
  5409. 1012.60 s [really-safe-money-gen] case f a digit of
  5410. 1012.60 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5411. 1012.60 s [really-safe-money-gen] Just a' -> go a' cs
  5412. 1012.60 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
  5413. 1012.60 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  5414. 1012.61 s [really-safe-money-gen] go !a (c : cs)
  5415. 1012.61 s [really-safe-money-gen] | Char.isDigit c = do
  5416. 1012.61 s [really-safe-money-gen] _ <- ReadP.get
  5417. 1012.61 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5418. 1012.61 s [really-safe-money-gen] + let digit = Char.ord c * 48
  5419. 1012.61 s [really-safe-money-gen] case f a digit of
  5420. 1012.61 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  5421. 1012.61 s [really-safe-money-gen] Just a' -> go a' cs
  5422. 1012.61 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  5423. 1012.61 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5424. 1012.61 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5425. 1012.61 s [really-safe-money-gen]
  5426. 1012.61 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5427. 1012.61 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5428. 1012.61 s [really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
  5429. 1012.61 s [really-safe-money-gen] {-# INLINE step #-}
  5430. 1012.61 s [really-safe-money-gen]
  5431. 1012.61 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5432. 1012.61 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  5433. 1012.61 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5434. 1012.61 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5435. 1012.61 s [really-safe-money-gen]
  5436. 1012.61 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5437. 1012.61 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5438. 1012.61 s [really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
  5439. 1012.61 s [really-safe-money-gen] {-# INLINE step #-}
  5440. 1012.61 s [really-safe-money-gen]
  5441. 1012.61 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5442. 1012.61 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  5443. 1012.61 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5444. 1012.61 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5445. 1012.61 s [really-safe-money-gen]
  5446. 1012.61 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5447. 1012.61 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5448. 1012.61 s [really-safe-money-gen] +step a digit = Just $ a + 10 + fromIntegral digit
  5449. 1012.61 s [really-safe-money-gen] {-# INLINE step #-}
  5450. 1012.61 s [really-safe-money-gen]
  5451. 1012.61 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5452. 1012.61 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-29
  5453. 1012.61 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5454. 1012.61 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5455. 1012.61 s [really-safe-money-gen]
  5456. 1012.61 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5457. 1012.61 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5458. 1012.61 s [really-safe-money-gen] +step a digit = Just $ a - 10 + fromIntegral digit
  5459. 1012.61 s [really-safe-money-gen] {-# INLINE step #-}
  5460. 1012.61 s [really-safe-money-gen]
  5461. 1012.61 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5462. 1012.61 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  5463. 1012.61 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5464. 1012.62 s [really-safe-money-gen] Just (c, e)
  5465. 1012.62 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5466. 1012.62 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5467. 1012.62 s [really-safe-money-gen] - | S.member n ns = Nothing
  5468. 1012.62 s [really-safe-money-gen] + | not (S.member n ns) = Nothing
  5469. 1012.62 s [really-safe-money-gen] -- Over the limit, stop trying
  5470. 1012.62 s [really-safe-money-gen] | e >= l = Nothing
  5471. 1012.62 s [really-safe-money-gen] | n < d =
  5472. 1012.62 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  5473. 1012.62 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5474. 1012.62 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5475. 1012.62 s [really-safe-money-gen]
  5476. 1012.62 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5477. 1012.62 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5478. 1012.62 s [really-safe-money-gen] +step a digit = Just $ a * 10 - fromIntegral digit
  5479. 1012.62 s [really-safe-money-gen] {-# INLINE step #-}
  5480. 1012.62 s [really-safe-money-gen]
  5481. 1012.62 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5482. 1012.62 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  5483. 1012.62 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  5484. 1012.62 s [really-safe-money-gen] -- (-3) % 10
  5485. 1012.62 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  5486. 1012.62 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  5487. 1012.62 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  5488. 1012.62 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
  5489. 1012.62 s [really-safe-money-gen]
  5490. 1012.62 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  5491. 1012.62 s [really-safe-money-gen] --
  5492. 1012.62 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  5493. 1012.62 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5494. 1012.62 s [really-safe-money-gen] | e >= l = Nothing
  5495. 1012.62 s [really-safe-money-gen] | n < d =
  5496. 1012.62 s [really-safe-money-gen] let !ns' = S.insert n ns
  5497. 1012.62 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5498. 1012.62 s [really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  5499. 1012.62 s [really-safe-money-gen] | otherwise =
  5500. 1012.62 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5501. 1012.62 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5502. 1012.62 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  5503. 1012.62 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5504. 1012.62 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5505. 1012.62 s [really-safe-money-gen] -- Nothing
  5506. 1012.62 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5507. 1012.62 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5508. 1012.62 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
  5509. 1012.62 s [really-safe-money-gen] where
  5510. 1012.62 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5511. 1012.63 s [really-safe-money-gen] -- limit
  5512. 1012.63 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  5513. 1012.63 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5514. 1012.63 s [really-safe-money-gen]
  5515. 1012.63 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5516. 1012.63 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5517. 1017.74 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5518. 1017.74 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  5519. 1017.77 s [really-safe-money-gen]
  5520. 1017.77 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5521. 1017.77 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5522. 1017.77 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  5523. 1017.77 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5524. 1017.77 s [really-safe-money-gen]
  5525. 1017.77 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5526. 1017.77 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5527. 1017.77 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5528. 1017.77 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m + 10 + fromIntegral digit, succ e)
  5529. 1017.77 s [really-safe-money-gen]
  5530. 1017.77 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5531. 1017.77 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5532. 1017.77 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  5533. 1017.77 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5534. 1017.77 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5535. 1017.77 s [really-safe-money-gen] toWord dl = do
  5536. 1017.77 s [really-safe-money-gen] n <- toNatural dl
  5537. 1017.77 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5538. 1017.77 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
  5539. 1017.77 s [really-safe-money-gen] pure $ fromIntegral n
  5540. 1017.77 s [really-safe-money-gen]
  5541. 1017.77 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5542. 1017.77 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
  5543. 1017.78 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5544. 1017.78 s [really-safe-money-gen]
  5545. 1017.78 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5546. 1017.78 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5547. 1017.78 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5548. 1017.78 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m - 10 + fromIntegral digit, succ e)
  5549. 1017.78 s [really-safe-money-gen]
  5550. 1017.78 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5551. 1017.78 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5552. 1017.78 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
  5553. 1017.78 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  5554. 1017.78 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5555. 1017.78 s [really-safe-money-gen]
  5556. 1017.78 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5557. 1017.78 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  5558. 1017.78 s [really-safe-money-gen] +step a digit = Just $ a * 10 * fromIntegral digit
  5559. 1017.78 s [really-safe-money-gen] {-# INLINE step #-}
  5560. 1017.78 s [really-safe-money-gen]
  5561. 1017.78 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5562. 1017.78 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  5563. 1017.78 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5564. 1017.78 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5565. 1017.78 s [really-safe-money-gen] | S.member n ns = Nothing
  5566. 1017.78 s [really-safe-money-gen] -- Over the limit, stop trying
  5567. 1017.78 s [really-safe-money-gen] - | e >= l = Nothing
  5568. 1017.78 s [really-safe-money-gen] + | True = Nothing
  5569. 1017.78 s [really-safe-money-gen] | n < d =
  5570. 1017.78 s [really-safe-money-gen] let !ns' = S.insert n ns
  5571. 1017.78 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5572. 1017.78 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  5573. 1017.78 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5574. 1017.78 s [really-safe-money-gen]
  5575. 1017.78 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5576. 1017.78 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5577. 1017.78 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5578. 1017.78 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 10 * fromIntegral digit, succ e)
  5579. 1017.78 s [really-safe-money-gen]
  5580. 1017.78 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5581. 1017.78 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5582. 1017.79 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  5583. 1017.79 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5584. 1017.79 s [really-safe-money-gen]
  5585. 1017.79 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5586. 1017.79 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5587. 1017.79 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5588. 1017.79 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  5589. 1017.79 s [really-safe-money-gen]
  5590. 1017.79 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5591. 1017.79 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5592. 1017.79 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  5593. 1017.79 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5594. 1017.79 s [really-safe-money-gen] | e >= l = Nothing
  5595. 1017.79 s [really-safe-money-gen] | n < d =
  5596. 1017.79 s [really-safe-money-gen] let !ns' = S.insert n ns
  5597. 1017.79 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5598. 1017.79 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n - 10)
  5599. 1017.79 s [really-safe-money-gen] | otherwise =
  5600. 1017.79 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5601. 1017.79 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5602. 1017.79 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  5603. 1017.79 s [really-safe-money-gen] @@ -269,7 +269,7 @@
  5604. 1017.79 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5605. 1017.79 s [really-safe-money-gen] | otherwise =
  5606. 1017.79 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5607. 1017.79 s [really-safe-money-gen] - in longDivWithLimit (c + q) e ns r'
  5608. 1017.79 s [really-safe-money-gen] + in longDivWithLimit (c * q) e ns r'
  5609. 1017.79 s [really-safe-money-gen]
  5610. 1017.79 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Ratio Natural'
  5611. 1017.79 s [really-safe-money-gen] --
  5612. 1017.79 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  5613. 1017.79 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  5614. 1017.79 s [really-safe-money-gen] num = numerator rational
  5615. 1017.79 s [really-safe-money-gen]
  5616. 1017.79 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  5617. 1017.79 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  5618. 1017.79 s [really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
  5619. 1017.79 s [really-safe-money-gen]
  5620. 1017.79 s [really-safe-money-gen] longDivWithLimit ::
  5621. 1017.79 s [really-safe-money-gen] Natural ->
  5622. 1017.79 s [really-safe-money-gen] Testing mutation Cmp at src/Numeric/DecimalLiteral.hs:267:13-18
  5623. 1017.79 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5624. 1017.79 s [really-safe-money-gen] | S.member n ns = Nothing
  5625. 1017.79 s [really-safe-money-gen] -- Over the limit, stop trying
  5626. 1017.79 s [really-safe-money-gen] | e >= l = Nothing
  5627. 1017.79 s [really-safe-money-gen] - | n < d =
  5628. 1017.79 s [really-safe-money-gen] + | n > d =
  5629. 1017.79 s [really-safe-money-gen] let !ns' = S.insert n ns
  5630. 1017.79 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5631. 1017.79 s [really-safe-money-gen] | otherwise =
  5632. 1017.80 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
  5633. 1017.80 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5634. 1017.80 s [really-safe-money-gen]
  5635. 1017.80 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5636. 1017.80 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5637. 1017.80 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5638. 1017.80 s [really-safe-money-gen] +stepFraction (m, e) digit = Nothing
  5639. 1017.80 s [really-safe-money-gen]
  5640. 1017.80 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5641. 1017.80 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5642. 1017.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  5643. 1017.80 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5644. 1017.80 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5645. 1017.80 s [really-safe-money-gen] decimalLiteralP = do
  5646. 1017.80 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5647. 1017.80 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5648. 1017.80 s [really-safe-money-gen] + isSignChar c = False || c == '+'
  5649. 1017.80 s [really-safe-money-gen]
  5650. 1017.80 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5651. 1017.80 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5652. 1017.80 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  5653. 1017.80 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5654. 1017.80 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5655. 1017.80 s [really-safe-money-gen] decimalLiteralP = do
  5656. 1017.80 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5657. 1017.80 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5658. 1017.80 s [really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
  5659. 1017.80 s [really-safe-money-gen]
  5660. 1017.80 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5661. 1017.80 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5662. 1017.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  5663. 1017.80 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5664. 1017.80 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5665. 1017.80 s [really-safe-money-gen] decimalLiteralP = do
  5666. 1017.80 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5667. 1017.80 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5668. 1017.80 s [really-safe-money-gen] + isSignChar c = True || c == '+'
  5669. 1017.80 s [really-safe-money-gen]
  5670. 1017.80 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5671. 1017.80 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5672. 1017.80 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
  5673. 1017.80 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  5674. 1017.80 s [really-safe-money-gen]
  5675. 1017.80 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  5676. 1017.80 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  5677. 1017.81 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  5678. 1017.81 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 10 - fromIntegral digit, succ e)
  5679. 1017.81 s [really-safe-money-gen]
  5680. 1017.81 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  5681. 1017.81 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  5682. 1023.52 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  5683. 1023.52 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  5684. 1023.55 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  5685. 1023.55 s [really-safe-money-gen] parseDigits f z = do
  5686. 1023.55 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  5687. 1023.55 s [really-safe-money-gen] - let digit = Char.ord c - 48
  5688. 1023.55 s [really-safe-money-gen] + let digit = Char.ord c - 0
  5689. 1023.55 s [really-safe-money-gen] case f z digit of
  5690. 1023.55 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  5691. 1023.55 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  5692. 1023.55 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  5693. 1023.55 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5694. 1023.55 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5695. 1023.55 s [really-safe-money-gen] decimalLiteralP = do
  5696. 1023.55 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5697. 1023.55 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5698. 1023.55 s [really-safe-money-gen] + isSignChar c = c == '-' || False
  5699. 1023.56 s [really-safe-money-gen]
  5700. 1023.56 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5701. 1023.56 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5702. 1023.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  5703. 1023.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5704. 1023.56 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5705. 1023.56 s [really-safe-money-gen] decimalLiteralP = do
  5706. 1023.56 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5707. 1023.56 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5708. 1023.56 s [really-safe-money-gen] + isSignChar c = c == '-' || True
  5709. 1023.56 s [really-safe-money-gen]
  5710. 1023.56 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5711. 1023.56 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5712. 1023.56 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:272:37-42
  5713. 1023.56 s [really-safe-money-gen] @@ -269,7 +269,7 @@
  5714. 1023.56 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5715. 1023.56 s [really-safe-money-gen] | otherwise =
  5716. 1023.56 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5717. 1023.56 s [really-safe-money-gen] - in longDivWithLimit (c + q) e ns r'
  5718. 1023.56 s [really-safe-money-gen] + in longDivWithLimit (c - q) e ns r'
  5719. 1023.56 s [really-safe-money-gen]
  5720. 1023.56 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Ratio Natural'
  5721. 1023.56 s [really-safe-money-gen] --
  5722. 1023.56 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  5723. 1023.56 s [really-safe-money-gen] @@ -183,7 +183,6 @@
  5724. 1023.56 s [really-safe-money-gen]
  5725. 1023.56 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  5726. 1023.56 s [really-safe-money-gen] go :: Word8 -> String -> String
  5727. 1023.56 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  5728. 1023.56 s [really-safe-money-gen] go 0 s = '.' : s
  5729. 1023.56 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  5730. 1023.56 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  5731. 1023.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  5732. 1023.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5733. 1023.56 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5734. 1023.56 s [really-safe-money-gen] decimalLiteralP = do
  5735. 1023.56 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5736. 1023.56 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5737. 1023.57 s [really-safe-money-gen] + isSignChar c = False
  5738. 1023.57 s [really-safe-money-gen]
  5739. 1023.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5740. 1023.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5741. 1023.57 s [really-safe-money-gen] Testing mutation LogicOp at src/Numeric/DecimalLiteral.hs:119:22-42
  5742. 1023.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5743. 1023.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5744. 1023.57 s [really-safe-money-gen] decimalLiteralP = do
  5745. 1023.57 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5746. 1023.57 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5747. 1023.57 s [really-safe-money-gen] + isSignChar c = c == '-' && c == '+'
  5748. 1023.57 s [really-safe-money-gen]
  5749. 1023.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5750. 1023.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5751. 1023.57 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  5752. 1023.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5753. 1023.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5754. 1023.57 s [really-safe-money-gen] decimalLiteralP = do
  5755. 1023.57 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5756. 1023.57 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5757. 1023.57 s [really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
  5758. 1023.57 s [really-safe-money-gen]
  5759. 1023.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5760. 1023.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5761. 1023.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  5762. 1023.57 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  5763. 1023.57 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5764. 1023.57 s [really-safe-money-gen] decimalLiteralP = do
  5765. 1023.57 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  5766. 1023.57 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  5767. 1023.57 s [really-safe-money-gen] + isSignChar c = True
  5768. 1023.57 s [really-safe-money-gen]
  5769. 1023.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5770. 1023.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5771. 1023.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  5772. 1023.57 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  5773. 1023.57 s [really-safe-money-gen]
  5774. 1023.57 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5775. 1023.57 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5776. 1023.57 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  5777. 1023.57 s [really-safe-money-gen] + pure $ Just $ True
  5778. 1023.57 s [really-safe-money-gen]
  5779. 1023.57 s [really-safe-money-gen] units <- parseDigits step 0
  5780. 1023.57 s [really-safe-money-gen]
  5781. 1023.57 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  5782. 1023.58 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  5783. 1023.58 s [really-safe-money-gen]
  5784. 1023.58 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  5785. 1023.58 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  5786. 1023.58 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  5787. 1023.58 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  5788. 1023.58 s [really-safe-money-gen] - Just dl -> pure dl
  5789. 1023.58 s [really-safe-money-gen]
  5790. 1023.58 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5791. 1023.58 s [really-safe-money-gen] decimalLiteralP = do
  5792. 1023.58 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  5793. 1023.58 s [really-safe-money-gen] @@ -122,7 +122,7 @@
  5794. 1023.58 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5795. 1023.58 s [really-safe-money-gen] pure $ Just $ signChar == '+'
  5796. 1023.58 s [really-safe-money-gen]
  5797. 1023.58 s [really-safe-money-gen] - units <- parseDigits step 0
  5798. 1023.58 s [really-safe-money-gen] + units <- parseDigits step 1
  5799. 1023.58 s [really-safe-money-gen]
  5800. 1023.58 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  5801. 1023.58 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  5802. 1023.58 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  5803. 1023.58 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  5804. 1023.58 s [really-safe-money-gen]
  5805. 1023.58 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5806. 1023.58 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5807. 1023.58 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  5808. 1023.58 s [really-safe-money-gen] + pure $ Just $ not (signChar == '+')
  5809. 1023.58 s [really-safe-money-gen]
  5810. 1023.58 s [really-safe-money-gen] units <- parseDigits step 0
  5811. 1023.58 s [really-safe-money-gen]
  5812. 1023.58 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  5813. 1023.58 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  5814. 1023.58 s [really-safe-money-gen]
  5815. 1023.58 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  5816. 1023.58 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  5817. 1023.58 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  5818. 1023.58 s [really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  5819. 1023.58 s [really-safe-money-gen] Just dl -> pure dl
  5820. 1023.58 s [really-safe-money-gen]
  5821. 1023.58 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  5822. 1023.58 s [really-safe-money-gen] decimalLiteralP = do
  5823. 1023.58 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  5824. 1023.58 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5825. 1023.58 s [really-safe-money-gen] | S.member n ns = Nothing
  5826. 1023.58 s [really-safe-money-gen] -- Over the limit, stop trying
  5827. 1023.58 s [really-safe-money-gen] | e >= l = Nothing
  5828. 1023.58 s [really-safe-money-gen] - | n < d =
  5829. 1023.58 s [really-safe-money-gen] + | not (n < d) =
  5830. 1023.58 s [really-safe-money-gen] let !ns' = S.insert n ns
  5831. 1023.59 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5832. 1023.59 s [really-safe-money-gen] | otherwise =
  5833. 1023.59 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  5834. 1023.59 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5835. 1023.59 s [really-safe-money-gen] | e >= l = Nothing
  5836. 1023.59 s [really-safe-money-gen] | n < d =
  5837. 1023.59 s [really-safe-money-gen] let !ns' = S.insert n ns
  5838. 1023.59 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5839. 1023.59 s [really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  5840. 1023.59 s [really-safe-money-gen] | otherwise =
  5841. 1023.59 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5842. 1023.59 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5843. 1023.59 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  5844. 1023.59 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  5845. 1023.59 s [really-safe-money-gen]
  5846. 1023.59 s [really-safe-money-gen] units <- parseDigits step 0
  5847. 1023.59 s [really-safe-money-gen]
  5848. 1023.59 s [really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
  5849. 1023.59 s [really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
  5850. 1023.59 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  5851. 1023.59 s [really-safe-money-gen]
  5852. 1023.59 s [really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
  5853. 1023.59 s [really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:261:11-22
  5854. 1023.59 s [really-safe-money-gen] @@ -258,7 +258,7 @@
  5855. 1023.59 s [really-safe-money-gen] Natural ->
  5856. 1023.59 s [really-safe-money-gen] Maybe (Natural, Int)
  5857. 1023.59 s [really-safe-money-gen] longDivWithLimit !c !e _ns 0 =
  5858. 1023.59 s [really-safe-money-gen] - Just (c, e)
  5859. 1023.59 s [really-safe-money-gen] + Nothing
  5860. 1023.59 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5861. 1023.59 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5862. 1023.59 s [really-safe-money-gen] | S.member n ns = Nothing
  5863. 1023.59 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  5864. 1023.59 s [really-safe-money-gen] @@ -127,7 +127,7 @@
  5865. 1023.59 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  5866. 1023.59 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  5867. 1023.59 s [really-safe-money-gen]
  5868. 1023.59 s [really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
  5869. 1026.19 s [really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
  5870. 1026.19 s [really-safe-money-gen]
  5871. 1026.19 s [really-safe-money-gen] pure $ DecimalLiteral mSign m e
  5872. 1026.19 s [really-safe-money-gen]
  5873. 1026.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  5874. 1026.19 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  5875. 1026.19 s [really-safe-money-gen]
  5876. 1026.19 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  5877. 1026.19 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  5878. 1026.19 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  5879. 1026.19 s [really-safe-money-gen] + pure $ Just $ False
  5880. 1026.19 s [really-safe-money-gen]
  5881. 1026.19 s [really-safe-money-gen] units <- parseDigits step 0
  5882. 1026.19 s [really-safe-money-gen]
  5883. 1026.19 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  5884. 1026.19 s [really-safe-money-gen] @@ -83,9 +83,8 @@
  5885. 1026.19 s [really-safe-money-gen] instance NFData DecimalLiteral
  5886. 1026.19 s [really-safe-money-gen]
  5887. 1026.19 s [really-safe-money-gen] instance IsString DecimalLiteral where
  5888. 1026.19 s [really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
  5889. 1026.19 s [really-safe-money-gen] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
  5890. 1026.19 s [really-safe-money-gen] Just dl -> dl
  5891. 1026.20 s [really-safe-money-gen]
  5892. 1026.20 s [really-safe-money-gen] -- | Parse a decimal literal from a string
  5893. 1026.20 s [really-safe-money-gen] --
  5894. 1026.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5895. 1026.20 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5896. 1026.20 s [really-safe-money-gen]
  5897. 1026.20 s [really-safe-money-gen] -- | See 'Account.distribute'
  5898. 1026.20 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5899. 1026.20 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5900. 1026.20 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5901. 1026.20 s [really-safe-money-gen] DistributedZero -> DistributedZero
  5902. 1026.20 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5903. 1026.20 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5904. 1026.20 s [really-safe-money-gen]
  5905. 1026.20 s [really-safe-money-gen] -- | The result of 'distribute'
  5906. 1026.20 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5907. 1026.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5908. 1026.20 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5909. 1026.20 s [really-safe-money-gen]
  5910. 1026.20 s [really-safe-money-gen] -- | See 'Account.distribute'
  5911. 1026.20 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5912. 1026.20 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5913. 1026.20 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5914. 1026.20 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  5915. 1026.20 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5916. 1026.20 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5917. 1026.20 s [really-safe-money-gen]
  5918. 1026.20 s [really-safe-money-gen] -- | The result of 'distribute'
  5919. 1026.20 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5920. 1026.20 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5921. 1026.20 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5922. 1026.20 s [really-safe-money-gen]
  5923. 1026.20 s [really-safe-money-gen] -- | See 'Account.distribute'
  5924. 1026.20 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5925. 1026.20 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5926. 1026.20 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5927. 1026.20 s [really-safe-money-gen] DistributedZero -> DistributedZero
  5928. 1026.20 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5929. 1026.20 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5930. 1026.20 s [really-safe-money-gen]
  5931. 1026.20 s [really-safe-money-gen] -- | The result of 'distribute'
  5932. 1026.20 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5933. 1026.20 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  5934. 1026.20 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5935. 1026.20 s [really-safe-money-gen] Ratio Natural ->
  5936. 1026.20 s [really-safe-money-gen] Maybe DecimalLiteral
  5937. 1026.20 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5938. 1026.20 s [really-safe-money-gen] - | d == 0 = Nothing
  5939. 1026.20 s [really-safe-money-gen] + | not (d == 0) = Nothing
  5940. 1026.20 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5941. 1026.21 s [really-safe-money-gen] where
  5942. 1026.21 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5943. 1026.21 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
  5944. 1026.21 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  5945. 1026.21 s [really-safe-money-gen]
  5946. 1026.21 s [really-safe-money-gen] -- | See 'Account.distribute'
  5947. 1026.21 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  5948. 1026.21 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  5949. 1026.21 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  5950. 1026.21 s [really-safe-money-gen] DistributedZero -> DistributedZero
  5951. 1026.21 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  5952. 1026.21 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  5953. 1026.21 s [really-safe-money-gen]
  5954. 1026.21 s [really-safe-money-gen] -- | The result of 'distribute'
  5955. 1026.21 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  5956. 1026.21 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
  5957. 1026.21 s [really-safe-money-gen] @@ -83,9 +83,8 @@
  5958. 1026.21 s [really-safe-money-gen] instance NFData DecimalLiteral
  5959. 1026.21 s [really-safe-money-gen]
  5960. 1026.21 s [really-safe-money-gen] instance IsString DecimalLiteral where
  5961. 1026.21 s [really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
  5962. 1026.21 s [really-safe-money-gen] Nothing -> error $ "Invalid DecimalLiteral: " <> show s
  5963. 1026.21 s [really-safe-money-gen] - Just dl -> dl
  5964. 1026.21 s [really-safe-money-gen]
  5965. 1026.21 s [really-safe-money-gen] -- | Parse a decimal literal from a string
  5966. 1026.21 s [really-safe-money-gen] --
  5967. 1026.21 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  5968. 1026.21 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  5969. 1026.21 s [really-safe-money-gen]
  5970. 1026.21 s [really-safe-money-gen] -- | One-to-one conversion rate
  5971. 1026.21 s [really-safe-money-gen] oneToOne :: ConversionRate
  5972. 1026.21 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  5973. 1026.21 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  5974. 1026.21 s [really-safe-money-gen]
  5975. 1026.21 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  5976. 1026.21 s [really-safe-money-gen] --
  5977. 1026.21 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  5978. 1026.21 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  5979. 1026.21 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  5980. 1026.21 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  5981. 1026.21 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  5982. 1026.21 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  5983. 1026.21 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
  5984. 1026.21 s [really-safe-money-gen]
  5985. 1026.21 s [really-safe-money-gen] -- | Compose two conversion rates
  5986. 1026.21 s [really-safe-money-gen] --
  5987. 1026.21 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  5988. 1026.21 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  5989. 1026.21 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  5990. 1026.21 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  5991. 1026.22 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  5992. 1026.22 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  5993. 1026.22 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
  5994. 1026.22 s [really-safe-money-gen]
  5995. 1026.22 s [really-safe-money-gen] -- | Compose two conversion rates
  5996. 1026.22 s [really-safe-money-gen] --
  5997. 1026.22 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
  5998. 1026.22 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  5999. 1026.22 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  6000. 1026.22 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  6001. 1026.22 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  6002. 1026.22 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  6003. 1026.22 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  6004. 1026.22 s [really-safe-money-gen]
  6005. 1026.22 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6006. 1026.22 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6007. 1026.22 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  6008. 1026.22 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  6009. 1026.22 s [really-safe-money-gen]
  6010. 1026.22 s [really-safe-money-gen] -- | One-to-one conversion rate
  6011. 1026.22 s [really-safe-money-gen] oneToOne :: ConversionRate
  6012. 1026.22 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  6013. 1026.22 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  6014. 1026.22 s [really-safe-money-gen]
  6015. 1026.22 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  6016. 1026.22 s [really-safe-money-gen] --
  6017. 1026.22 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  6018. 1026.22 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  6019. 1026.22 s [really-safe-money-gen] instance Validity ConversionRate where
  6020. 1026.22 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6021. 1026.22 s [really-safe-money-gen] mconcat
  6022. 1026.22 s [really-safe-money-gen] - [ genericValidate cr,
  6023. 1026.22 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6024. 1026.22 s [really-safe-money-gen] ]
  6025. 1026.22 s [really-safe-money-gen]
  6026. 1026.22 s [really-safe-money-gen] instance NFData ConversionRate
  6027. 1026.22 s [really-safe-money-gen]
  6028. 1026.22 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  6029. 1026.22 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6030. 1026.22 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6031. 1026.22 s [really-safe-money-gen] mconcat
  6032. 1026.22 s [really-safe-money-gen] [ genericValidate cr,
  6033. 1026.22 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6034. 1026.22 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  6035. 1026.22 s [really-safe-money-gen] ]
  6036. 1026.22 s [really-safe-money-gen]
  6037. 1026.22 s [really-safe-money-gen] instance NFData ConversionRate
  6038. 1026.22 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
  6039. 1026.22 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  6040. 1026.22 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6041. 1026.22 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6042. 1026.22 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  6043. 1026.22 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  6044. 1026.22 s [really-safe-money-gen] + cr + fromIntegral qf2 / fromIntegral qf1
  6045. 1026.22 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
  6046. 1026.22 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6047. 1026.22 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6048. 1026.22 s [really-safe-money-gen] mconcat
  6049. 1026.22 s [really-safe-money-gen] [ genericValidate cr,
  6050. 1032.58 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6051. 1032.58 s [really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
  6052. 1032.60 s [really-safe-money-gen] ]
  6053. 1032.60 s [really-safe-money-gen]
  6054. 1032.60 s [really-safe-money-gen] instance NFData ConversionRate
  6055. 1032.60 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  6056. 1032.60 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6057. 1032.61 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6058. 1032.61 s [really-safe-money-gen] decimalLiteralP = do
  6059. 1032.61 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6060. 1032.61 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6061. 1032.61 s [really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
  6062. 1032.61 s [really-safe-money-gen]
  6063. 1032.61 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6064. 1032.61 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6065. 1032.61 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  6066. 1032.61 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6067. 1032.61 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6068. 1032.61 s [really-safe-money-gen] irat <-
  6069. 1032.61 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6070. 1032.61 s [really-safe-money-gen] - in if numerator r == 0
  6071. 1032.61 s [really-safe-money-gen] + in if numerator r == 1
  6072. 1032.61 s [really-safe-money-gen] then Nothing
  6073. 1032.61 s [really-safe-money-gen] else pure r
  6074. 1032.61 s [really-safe-money-gen]
  6075. 1032.61 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  6076. 1032.61 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6077. 1032.61 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6078. 1032.61 s [really-safe-money-gen] -- Nothing
  6079. 1032.61 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6080. 1032.61 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6081. 1032.61 s [really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  6082. 1032.61 s [really-safe-money-gen]
  6083. 1032.61 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6084. 1032.61 s [really-safe-money-gen] --
  6085. 1032.62 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  6086. 1032.62 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6087. 1032.62 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6088. 1032.62 s [really-safe-money-gen] -- Nothing
  6089. 1032.62 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6090. 1032.62 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6091. 1032.62 s [really-safe-money-gen] +fromRational r = if r <= 0 then Nothing else fromRatio (realToFrac r)
  6092. 1032.62 s [really-safe-money-gen]
  6093. 1032.62 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6094. 1032.62 s [really-safe-money-gen] --
  6095. 1032.62 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  6096. 1032.62 s [really-safe-money-gen] @@ -34,9 +34,8 @@
  6097. 1032.62 s [really-safe-money-gen] instance Validity ConversionRate where
  6098. 1032.62 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6099. 1032.62 s [really-safe-money-gen] mconcat
  6100. 1032.62 s [really-safe-money-gen] - [ genericValidate cr,
  6101. 1032.62 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  6102. 1032.62 s [really-safe-money-gen] ]
  6103. 1032.62 s [really-safe-money-gen]
  6104. 1032.62 s [really-safe-money-gen] instance NFData ConversionRate
  6105. 1032.62 s [really-safe-money-gen]
  6106. 1032.62 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  6107. 1032.62 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6108. 1032.62 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6109. 1032.62 s [really-safe-money-gen] -- Nothing
  6110. 1032.62 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6111. 1032.62 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6112. 1032.62 s [really-safe-money-gen] +fromRational r = if r >= 0 then Nothing else fromRatio (realToFrac r)
  6113. 1032.62 s [really-safe-money-gen]
  6114. 1032.62 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6115. 1032.62 s [really-safe-money-gen] --
  6116. 1032.62 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  6117. 1032.62 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6118. 1032.62 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6119. 1032.62 s [really-safe-money-gen] -- Nothing
  6120. 1032.62 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6121. 1032.62 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6122. 1032.62 s [really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  6123. 1032.62 s [really-safe-money-gen]
  6124. 1032.62 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6125. 1032.62 s [really-safe-money-gen] --
  6126. 1032.62 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
  6127. 1032.62 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  6128. 1032.62 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  6129. 1032.62 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  6130. 1032.63 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  6131. 1032.63 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  6132. 1032.63 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 - cr2
  6133. 1032.63 s [really-safe-money-gen]
  6134. 1032.63 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6135. 1032.63 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6136. 1032.63 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  6137. 1032.63 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6138. 1032.63 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6139. 1032.63 s [really-safe-money-gen] mconcat
  6140. 1032.63 s [really-safe-money-gen] [ genericValidate cr,
  6141. 1032.63 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6142. 1032.63 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  6143. 1032.63 s [really-safe-money-gen] ]
  6144. 1032.63 s [really-safe-money-gen]
  6145. 1032.63 s [really-safe-money-gen] instance NFData ConversionRate
  6146. 1032.63 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  6147. 1032.63 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6148. 1032.63 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6149. 1032.63 s [really-safe-money-gen] -- Nothing
  6150. 1032.63 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6151. 1032.63 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6152. 1032.63 s [really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  6153. 1032.63 s [really-safe-money-gen]
  6154. 1032.63 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6155. 1032.63 s [really-safe-money-gen] --
  6156. 1032.63 s [really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
  6157. 1032.63 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6158. 1032.63 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6159. 1032.63 s [really-safe-money-gen] -- Nothing
  6160. 1032.63 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6161. 1032.63 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6162. 1032.63 s [really-safe-money-gen] +fromRational r = if r > 0 then Nothing else fromRatio (realToFrac r)
  6163. 1032.63 s [really-safe-money-gen]
  6164. 1032.63 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6165. 1032.63 s [really-safe-money-gen] --
  6166. 1032.63 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  6167. 1032.63 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6168. 1032.63 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6169. 1032.63 s [really-safe-money-gen] irat <-
  6170. 1032.63 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6171. 1032.63 s [really-safe-money-gen] - in if numerator r == 0
  6172. 1032.63 s [really-safe-money-gen] + in if not (numerator r == 0)
  6173. 1032.63 s [really-safe-money-gen] then Nothing
  6174. 1032.63 s [really-safe-money-gen] else pure r
  6175. 1032.63 s [really-safe-money-gen]
  6176. 1032.63 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  6177. 1032.64 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  6178. 1032.64 s [really-safe-money-gen] else pure r
  6179. 1032.64 s [really-safe-money-gen]
  6180. 1032.64 s [really-safe-money-gen] rat <-
  6181. 1032.64 s [really-safe-money-gen] - let r = 1 / irat
  6182. 1032.64 s [really-safe-money-gen] + let r = 0 / irat
  6183. 1032.64 s [really-safe-money-gen] in if r < 0
  6184. 1032.64 s [really-safe-money-gen] then Nothing
  6185. 1032.64 s [really-safe-money-gen] else Just r
  6186. 1032.64 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  6187. 1032.64 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6188. 1032.64 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6189. 1032.64 s [really-safe-money-gen] irat <-
  6190. 1032.64 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6191. 1032.64 s [really-safe-money-gen] - in if numerator r == 0
  6192. 1032.64 s [really-safe-money-gen] + in if True
  6193. 1032.64 s [really-safe-money-gen] then Nothing
  6194. 1032.64 s [really-safe-money-gen] else pure r
  6195. 1032.64 s [really-safe-money-gen]
  6196. 1032.64 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  6197. 1032.64 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  6198. 1032.64 s [really-safe-money-gen] fromDecimalLiteral dl = do
  6199. 1032.64 s [really-safe-money-gen] irat <-
  6200. 1032.64 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  6201. 1032.64 s [really-safe-money-gen] - in if numerator r == 0
  6202. 1032.64 s [really-safe-money-gen] + in if False
  6203. 1032.64 s [really-safe-money-gen] then Nothing
  6204. 1032.64 s [really-safe-money-gen] else pure r
  6205. 1032.64 s [really-safe-money-gen]
  6206. 1032.64 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  6207. 1032.64 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6208. 1032.64 s [really-safe-money-gen]
  6209. 1032.64 s [really-safe-money-gen] rat <-
  6210. 1032.64 s [really-safe-money-gen] let r = 1 / irat
  6211. 1032.64 s [really-safe-money-gen] - in if r < 0
  6212. 1032.64 s [really-safe-money-gen] + in if r <= 0
  6213. 1032.64 s [really-safe-money-gen] then Nothing
  6214. 1032.64 s [really-safe-money-gen] else Just r
  6215. 1032.64 s [really-safe-money-gen]
  6216. 1032.64 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  6217. 1032.64 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  6218. 1032.64 s [really-safe-money-gen] else pure r
  6219. 1032.64 s [really-safe-money-gen]
  6220. 1032.64 s [really-safe-money-gen] rat <-
  6221. 1032.64 s [really-safe-money-gen] - let r = 1 / irat
  6222. 1032.64 s [really-safe-money-gen] + let r = -1 / irat
  6223. 1032.64 s [really-safe-money-gen] in if r < 0
  6224. 1032.65 s [really-safe-money-gen] then Nothing
  6225. 1032.65 s [really-safe-money-gen] else Just r
  6226. 1032.65 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  6227. 1032.65 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6228. 1032.65 s [really-safe-money-gen]
  6229. 1032.65 s [really-safe-money-gen] rat <-
  6230. 1032.65 s [really-safe-money-gen] let r = 1 / irat
  6231. 1032.65 s [really-safe-money-gen] - in if r < 0
  6232. 1032.65 s [really-safe-money-gen] + in if False
  6233. 1032.65 s [really-safe-money-gen] then Nothing
  6234. 1032.65 s [really-safe-money-gen] else Just r
  6235. 1032.65 s [really-safe-money-gen]
  6236. 1032.65 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  6237. 1032.65 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6238. 1032.65 s [really-safe-money-gen]
  6239. 1032.65 s [really-safe-money-gen] rat <-
  6240. 1032.65 s [really-safe-money-gen] let r = 1 / irat
  6241. 1032.65 s [really-safe-money-gen] - in if r < 0
  6242. 1032.65 s [really-safe-money-gen] + in if not (r < 0)
  6243. 1032.65 s [really-safe-money-gen] then Nothing
  6244. 1032.65 s [really-safe-money-gen] else Just r
  6245. 1032.65 s [really-safe-money-gen]
  6246. 1032.65 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  6247. 1032.65 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6248. 1032.65 s [really-safe-money-gen]
  6249. 1032.65 s [really-safe-money-gen] rat <-
  6250. 1032.65 s [really-safe-money-gen] let r = 1 / irat
  6251. 1032.65 s [really-safe-money-gen] - in if r < 0
  6252. 1032.65 s [really-safe-money-gen] + in if r < 1
  6253. 1032.65 s [really-safe-money-gen] then Nothing
  6254. 1032.65 s [really-safe-money-gen] else Just r
  6255. 1032.65 s [really-safe-money-gen]
  6256. 1040.00 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
  6257. 1040.03 s [really-safe-money-gen] @@ -92,7 +92,7 @@
  6258. 1040.03 s [really-safe-money-gen] let r = 1 / irat
  6259. 1040.03 s [really-safe-money-gen] in if r < 0
  6260. 1040.03 s [really-safe-money-gen] then Nothing
  6261. 1040.03 s [really-safe-money-gen] - else Just r
  6262. 1040.03 s [really-safe-money-gen] + else Nothing
  6263. 1040.03 s [really-safe-money-gen]
  6264. 1040.03 s [really-safe-money-gen] fac <-
  6265. 1040.03 s [really-safe-money-gen] if denominator rat == 1
  6266. 1040.03 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  6267. 1040.03 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6268. 1040.03 s [really-safe-money-gen]
  6269. 1040.03 s [really-safe-money-gen] rat <-
  6270. 1040.03 s [really-safe-money-gen] let r = 1 / irat
  6271. 1040.03 s [really-safe-money-gen] - in if r < 0
  6272. 1040.03 s [really-safe-money-gen] + in if r >= 0
  6273. 1040.03 s [really-safe-money-gen] then Nothing
  6274. 1040.03 s [really-safe-money-gen] else Just r
  6275. 1040.03 s [really-safe-money-gen]
  6276. 1040.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  6277. 1040.03 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6278. 1040.03 s [really-safe-money-gen]
  6279. 1040.03 s [really-safe-money-gen] rat <-
  6280. 1040.03 s [really-safe-money-gen] let r = 1 / irat
  6281. 1040.04 s [really-safe-money-gen] - in if r < 0
  6282. 1040.04 s [really-safe-money-gen] + in if True
  6283. 1040.04 s [really-safe-money-gen] then Nothing
  6284. 1040.04 s [really-safe-money-gen] else Just r
  6285. 1040.04 s [really-safe-money-gen]
  6286. 1040.04 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  6287. 1040.04 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6288. 1040.04 s [really-safe-money-gen] else Just r
  6289. 1040.04 s [really-safe-money-gen]
  6290. 1040.04 s [really-safe-money-gen] fac <-
  6291. 1040.04 s [really-safe-money-gen] - if denominator rat == 1
  6292. 1040.04 s [really-safe-money-gen] + if not (denominator rat == 1)
  6293. 1040.04 s [really-safe-money-gen] then Just (numerator rat)
  6294. 1040.04 s [really-safe-money-gen] else Nothing
  6295. 1040.04 s [really-safe-money-gen]
  6296. 1040.04 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
  6297. 1040.04 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  6298. 1040.04 s [really-safe-money-gen]
  6299. 1040.04 s [really-safe-money-gen] fac <-
  6300. 1040.04 s [really-safe-money-gen] if denominator rat == 1
  6301. 1040.04 s [really-safe-money-gen] - then Just (numerator rat)
  6302. 1040.04 s [really-safe-money-gen] + then Nothing
  6303. 1040.04 s [really-safe-money-gen] else Nothing
  6304. 1040.04 s [really-safe-money-gen]
  6305. 1040.04 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  6306. 1040.04 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  6307. 1040.04 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6308. 1040.04 s [really-safe-money-gen] then Just (numerator rat)
  6309. 1040.04 s [really-safe-money-gen] else Nothing
  6310. 1040.04 s [really-safe-money-gen]
  6311. 1040.04 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6312. 1040.04 s [really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
  6313. 1040.04 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6314. 1040.04 s [really-safe-money-gen] else Nothing
  6315. 1040.04 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  6316. 1040.04 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6317. 1040.04 s [really-safe-money-gen] then Just (numerator rat)
  6318. 1040.04 s [really-safe-money-gen] else Nothing
  6319. 1040.04 s [really-safe-money-gen]
  6320. 1040.04 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6321. 1040.04 s [really-safe-money-gen] + if fac >= fromIntegral (maxBound :: Word32)
  6322. 1040.05 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6323. 1040.05 s [really-safe-money-gen] else Nothing
  6324. 1040.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  6325. 1040.05 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6326. 1040.05 s [really-safe-money-gen] then Just (numerator rat)
  6327. 1040.05 s [really-safe-money-gen] else Nothing
  6328. 1040.05 s [really-safe-money-gen]
  6329. 1040.05 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6330. 1040.05 s [really-safe-money-gen] + if True
  6331. 1040.05 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6332. 1040.05 s [really-safe-money-gen] else Nothing
  6333. 1040.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  6334. 1040.05 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6335. 1040.05 s [really-safe-money-gen] then Just (numerator rat)
  6336. 1040.05 s [really-safe-money-gen] else Nothing
  6337. 1040.05 s [really-safe-money-gen]
  6338. 1040.05 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6339. 1040.05 s [really-safe-money-gen] + if False
  6340. 1040.05 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6341. 1040.05 s [really-safe-money-gen] else Nothing
  6342. 1040.05 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
  6343. 1040.05 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6344. 1040.05 s [really-safe-money-gen] then Just (numerator rat)
  6345. 1040.05 s [really-safe-money-gen] else Nothing
  6346. 1040.05 s [really-safe-money-gen]
  6347. 1040.05 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6348. 1040.05 s [really-safe-money-gen] + if fac > fromIntegral (maxBound :: Word32)
  6349. 1040.05 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6350. 1040.05 s [really-safe-money-gen] else Nothing
  6351. 1040.05 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
  6352. 1040.05 s [really-safe-money-gen] @@ -100,5 +100,5 @@
  6353. 1040.06 s [really-safe-money-gen] else Nothing
  6354. 1040.06 s [really-safe-money-gen]
  6355. 1040.06 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  6356. 1040.06 s [really-safe-money-gen] - then Just (QuantisationFactor (fromIntegral fac))
  6357. 1040.06 s [really-safe-money-gen] + then Nothing
  6358. 1040.06 s [really-safe-money-gen] else Nothing
  6359. 1040.06 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  6360. 1040.06 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  6361. 1040.06 s [really-safe-money-gen] then Just (numerator rat)
  6362. 1040.06 s [really-safe-money-gen] else Nothing
  6363. 1040.06 s [really-safe-money-gen]
  6364. 1040.06 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  6365. 1040.06 s [really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
  6366. 1040.06 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  6367. 1040.06 s [really-safe-money-gen] else Nothing
  6368. 1040.06 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  6369. 1040.06 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  6370. 1040.06 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  6371. 1040.06 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  6372. 1040.06 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  6373. 1040.06 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  6374. 1040.06 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  6375. 1040.06 s [really-safe-money-gen]
  6376. 1040.06 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  6377. 1040.06 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  6378. 1040.06 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  6379. 1040.06 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6380. 1040.06 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6381. 1040.06 s [really-safe-money-gen] mconcat
  6382. 1040.06 s [really-safe-money-gen] [ genericValidate qf,
  6383. 1040.06 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6384. 1040.06 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
  6385. 1040.06 s [really-safe-money-gen] ]
  6386. 1040.06 s [really-safe-money-gen]
  6387. 1040.06 s [really-safe-money-gen] instance NFData QuantisationFactor
  6388. 1040.06 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  6389. 1040.06 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  6390. 1040.07 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  6391. 1040.07 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  6392. 1040.07 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  6393. 1040.07 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  6394. 1040.07 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  6395. 1040.07 s [really-safe-money-gen]
  6396. 1040.07 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  6397. 1040.07 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  6398. 1040.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  6399. 1040.07 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6400. 1040.07 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6401. 1040.07 s [really-safe-money-gen] mconcat
  6402. 1040.07 s [really-safe-money-gen] [ genericValidate qf,
  6403. 1040.07 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6404. 1040.07 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  6405. 1040.07 s [really-safe-money-gen] ]
  6406. 1040.07 s [really-safe-money-gen]
  6407. 1040.07 s [really-safe-money-gen] instance NFData QuantisationFactor
  6408. 1040.07 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  6409. 1040.07 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6410. 1040.07 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6411. 1040.07 s [really-safe-money-gen] mconcat
  6412. 1040.07 s [really-safe-money-gen] [ genericValidate qf,
  6413. 1040.07 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6414. 1040.07 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  6415. 1040.07 s [really-safe-money-gen] ]
  6416. 1040.07 s [really-safe-money-gen]
  6417. 1040.07 s [really-safe-money-gen] instance NFData QuantisationFactor
  6418. 1040.08 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  6419. 1040.08 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  6420. 1040.08 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6421. 1040.08 s [really-safe-money-gen] mconcat
  6422. 1040.08 s [really-safe-money-gen] [ genericValidate qf,
  6423. 1040.08 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6424. 1040.08 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
  6425. 1040.08 s [really-safe-money-gen] ]
  6426. 1040.08 s [really-safe-money-gen]
  6427. 1040.08 s [really-safe-money-gen] instance NFData QuantisationFactor
  6428. 1040.08 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  6429. 1040.08 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  6430. 1040.08 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  6431. 1040.08 s [really-safe-money-gen] mconcat
  6432. 1040.08 s [really-safe-money-gen] [ genericValidate cr,
  6433. 1040.08 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  6434. 1040.08 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
  6435. 1040.08 s [really-safe-money-gen] ]
  6436. 1040.08 s [really-safe-money-gen]
  6437. 1040.08 s [really-safe-money-gen] instance NFData ConversionRate
  6438. 1040.08 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
  6439. 1040.08 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  6440. 1040.08 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  6441. 1040.08 s [really-safe-money-gen] -- Nothing
  6442. 1045.88 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  6443. 1045.88 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  6444. 1045.90 s [really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  6445. 1045.90 s [really-safe-money-gen]
  6446. 1045.90 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  6447. 1045.90 s [really-safe-money-gen] --
  6448. 1045.90 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:59-65
  6449. 1045.91 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6450. 1045.91 s [really-safe-money-gen] | e >= l = Nothing
  6451. 1045.91 s [really-safe-money-gen] | n < d =
  6452. 1045.91 s [really-safe-money-gen] let !ns' = S.insert n ns
  6453. 1045.91 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6454. 1045.91 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n + 10)
  6455. 1045.91 s [really-safe-money-gen] | otherwise =
  6456. 1045.91 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6457. 1045.91 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6458. 1045.91 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  6459. 1045.91 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  6460. 1045.91 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  6461. 1045.91 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  6462. 1045.91 s [really-safe-money-gen] let decimals :: Int
  6463. 1045.91 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  6464. 1045.91 s [really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  6465. 1045.91 s [really-safe-money-gen] in printf "%%0.%df" decimals
  6466. 1045.91 s [really-safe-money-gen]
  6467. 1045.91 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6468. 1045.91 s [really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
  6469. 1045.91 s [really-safe-money-gen] @@ -129,4 +129,4 @@
  6470. 1045.91 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  6471. 1045.91 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  6472. 1045.91 s [really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
  6473. 1045.91 s [really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
  6474. 1045.91 s [really-safe-money-gen] + cr - fromIntegral qf2 / fromIntegral qf1
  6475. 1045.91 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  6476. 1045.91 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6477. 1045.91 s [really-safe-money-gen] else Just r
  6478. 1045.91 s [really-safe-money-gen]
  6479. 1045.91 s [really-safe-money-gen] fac <-
  6480. 1045.91 s [really-safe-money-gen] - if denominator rat == 1
  6481. 1045.91 s [really-safe-money-gen] + if denominator rat == 0
  6482. 1045.91 s [really-safe-money-gen] then Just (numerator rat)
  6483. 1045.92 s [really-safe-money-gen] else Nothing
  6484. 1045.92 s [really-safe-money-gen]
  6485. 1045.92 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  6486. 1045.92 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6487. 1045.92 s [really-safe-money-gen] | e >= l = Nothing
  6488. 1045.92 s [really-safe-money-gen] | n < d =
  6489. 1045.92 s [really-safe-money-gen] let !ns' = S.insert n ns
  6490. 1045.92 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6491. 1045.92 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  6492. 1045.92 s [really-safe-money-gen] | otherwise =
  6493. 1045.92 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6494. 1045.92 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6495. 1045.92 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  6496. 1045.92 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6497. 1045.92 s [really-safe-money-gen] else Just r
  6498. 1045.92 s [really-safe-money-gen]
  6499. 1045.92 s [really-safe-money-gen] fac <-
  6500. 1045.92 s [really-safe-money-gen] - if denominator rat == 1
  6501. 1045.92 s [really-safe-money-gen] + if denominator rat == -1
  6502. 1045.92 s [really-safe-money-gen] then Just (numerator rat)
  6503. 1045.92 s [really-safe-money-gen] else Nothing
  6504. 1045.92 s [really-safe-money-gen]
  6505. 1045.92 s [really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
  6506. 1045.92 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  6507. 1045.92 s [really-safe-money-gen]
  6508. 1045.92 s [really-safe-money-gen] rat <-
  6509. 1045.92 s [really-safe-money-gen] let r = 1 / irat
  6510. 1045.92 s [really-safe-money-gen] - in if r < 0
  6511. 1045.92 s [really-safe-money-gen] + in if r > 0
  6512. 1045.92 s [really-safe-money-gen] then Nothing
  6513. 1045.92 s [really-safe-money-gen] else Just r
  6514. 1045.92 s [really-safe-money-gen]
  6515. 1045.92 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  6516. 1045.92 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6517. 1045.92 s [really-safe-money-gen] | e >= l = Nothing
  6518. 1045.92 s [really-safe-money-gen] | n < d =
  6519. 1045.92 s [really-safe-money-gen] let !ns' = S.insert n ns
  6520. 1045.92 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6521. 1045.92 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  6522. 1045.92 s [really-safe-money-gen] | otherwise =
  6523. 1045.92 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6524. 1045.92 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6525. 1045.93 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:720:6-40
  6526. 1045.93 s [really-safe-money-gen] @@ -717,7 +717,7 @@
  6527. 1045.93 s [really-safe-money-gen] rate _ _ _ (Amount 0) = Nothing
  6528. 1045.93 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6529. 1045.93 s [really-safe-money-gen] ConversionRate.fromRatio $
  6530. 1045.93 s [really-safe-money-gen] - (fromIntegral a2 * fromIntegral qf1)
  6531. 1045.93 s [really-safe-money-gen] + (fromIntegral a2 + fromIntegral qf1)
  6532. 1045.93 s [really-safe-money-gen] % (fromIntegral a1 * fromIntegral qf2)
  6533. 1045.93 s [really-safe-money-gen]
  6534. 1045.93 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6535. 1045.93 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  6536. 1045.93 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  6537. 1045.93 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  6538. 1045.93 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  6539. 1045.93 s [really-safe-money-gen] let decimals :: Int
  6540. 1045.93 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  6541. 1045.93 s [really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  6542. 1045.93 s [really-safe-money-gen] in printf "%%0.%df" decimals
  6543. 1045.93 s [really-safe-money-gen]
  6544. 1045.93 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6545. 1045.93 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  6546. 1045.93 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6547. 1045.93 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6548. 1045.93 s [really-safe-money-gen] smallerChunk :: Amount
  6549. 1045.93 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6550. 1045.93 s [really-safe-money-gen] - in if rest == 0
  6551. 1045.93 s [really-safe-money-gen] + in if True
  6552. 1045.93 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6553. 1045.93 s [really-safe-money-gen] else
  6554. 1045.93 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6555. 1045.93 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19
  6556. 1045.93 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6557. 1045.93 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6558. 1045.93 s [really-safe-money-gen] smallerChunk :: Amount
  6559. 1045.93 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6560. 1045.93 s [really-safe-money-gen] - in if rest == 0
  6561. 1045.93 s [really-safe-money-gen] + in if not (rest == 0)
  6562. 1045.93 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6563. 1045.93 s [really-safe-money-gen] else
  6564. 1045.93 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6565. 1045.93 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  6566. 1045.94 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6567. 1045.94 s [really-safe-money-gen] else Just r
  6568. 1045.94 s [really-safe-money-gen]
  6569. 1045.94 s [really-safe-money-gen] fac <-
  6570. 1045.94 s [really-safe-money-gen] - if denominator rat == 1
  6571. 1045.94 s [really-safe-money-gen] + if False
  6572. 1045.94 s [really-safe-money-gen] then Just (numerator rat)
  6573. 1045.94 s [really-safe-money-gen] else Nothing
  6574. 1045.94 s [really-safe-money-gen]
  6575. 1045.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:720:6-40
  6576. 1045.94 s [really-safe-money-gen] @@ -717,7 +717,7 @@
  6577. 1045.94 s [really-safe-money-gen] rate _ _ _ (Amount 0) = Nothing
  6578. 1045.94 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6579. 1045.94 s [really-safe-money-gen] ConversionRate.fromRatio $
  6580. 1045.94 s [really-safe-money-gen] - (fromIntegral a2 * fromIntegral qf1)
  6581. 1045.94 s [really-safe-money-gen] + (fromIntegral a2 - fromIntegral qf1)
  6582. 1045.94 s [really-safe-money-gen] % (fromIntegral a1 * fromIntegral qf2)
  6583. 1045.94 s [really-safe-money-gen]
  6584. 1045.94 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6585. 1045.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:721:10-44
  6586. 1045.94 s [really-safe-money-gen] @@ -718,7 +718,7 @@
  6587. 1045.94 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6588. 1045.94 s [really-safe-money-gen] ConversionRate.fromRatio $
  6589. 1045.94 s [really-safe-money-gen] (fromIntegral a2 * fromIntegral qf1)
  6590. 1045.94 s [really-safe-money-gen] - % (fromIntegral a1 * fromIntegral qf2)
  6591. 1045.94 s [really-safe-money-gen] + % (fromIntegral a1 - fromIntegral qf2)
  6592. 1045.94 s [really-safe-money-gen]
  6593. 1045.94 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6594. 1045.94 s [really-safe-money-gen] -- another currency using a conversion rate.
  6595. 1045.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  6596. 1045.94 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  6597. 1045.94 s [really-safe-money-gen] else Just r
  6598. 1045.94 s [really-safe-money-gen]
  6599. 1045.94 s [really-safe-money-gen] fac <-
  6600. 1045.94 s [really-safe-money-gen] - if denominator rat == 1
  6601. 1045.94 s [really-safe-money-gen] + if True
  6602. 1045.94 s [really-safe-money-gen] then Just (numerator rat)
  6603. 1045.94 s [really-safe-money-gen] else Nothing
  6604. 1045.95 s [really-safe-money-gen]
  6605. 1045.95 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  6606. 1045.95 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  6607. 1045.95 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  6608. 1045.95 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  6609. 1045.95 s [really-safe-money-gen] let decimals :: Int
  6610. 1045.95 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  6611. 1045.95 s [really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  6612. 1045.95 s [really-safe-money-gen] in printf "%%0.%df" decimals
  6613. 1045.95 s [really-safe-money-gen]
  6614. 1045.95 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6615. 1045.95 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  6616. 1052.95 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  6617. 1052.95 s [really-safe-money-gen] instance Validity QuantisationFactor where
  6618. 1052.95 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6619. 1052.98 s [really-safe-money-gen] mconcat
  6620. 1052.98 s [really-safe-money-gen] - [ genericValidate qf,
  6621. 1052.98 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  6622. 1052.98 s [really-safe-money-gen] ]
  6623. 1052.98 s [really-safe-money-gen]
  6624. 1052.98 s [really-safe-money-gen] instance NFData QuantisationFactor
  6625. 1052.98 s [really-safe-money-gen]
  6626. 1052.98 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  6627. 1052.98 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  6628. 1052.98 s [really-safe-money-gen] instance Validity QuantisationFactor where
  6629. 1052.98 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  6630. 1052.98 s [really-safe-money-gen] mconcat
  6631. 1052.98 s [really-safe-money-gen] - [ genericValidate qf,
  6632. 1052.98 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  6633. 1052.98 s [really-safe-money-gen] ]
  6634. 1052.98 s [really-safe-money-gen]
  6635. 1052.98 s [really-safe-money-gen] instance NFData QuantisationFactor
  6636. 1052.98 s [really-safe-money-gen]
  6637. 1052.98 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
  6638. 1052.98 s [really-safe-money-gen] @@ -540,7 +540,7 @@
  6639. 1052.98 s [really-safe-money-gen] let maxBoundI :: Integer
  6640. 1052.98 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6641. 1052.98 s [really-safe-money-gen] r :: Integer
  6642. 1052.98 s [really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6643. 1052.98 s [really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f + (fromIntegral :: Word64 -> Integer) a
  6644. 1052.98 s [really-safe-money-gen] in if r > maxBoundI
  6645. 1052.99 s [really-safe-money-gen] then Nothing
  6646. 1052.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6647. 1052.99 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  6648. 1052.99 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6649. 1052.99 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6650. 1052.99 s [really-safe-money-gen] r :: Integer
  6651. 1052.99 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6652. 1052.99 s [really-safe-money-gen] - in if r > maxBoundI
  6653. 1052.99 s [really-safe-money-gen] + in if r >= maxBoundI
  6654. 1052.99 s [really-safe-money-gen] then Nothing
  6655. 1052.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6656. 1052.99 s [really-safe-money-gen]
  6657. 1052.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  6658. 1052.99 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6659. 1052.99 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6660. 1052.99 s [really-safe-money-gen] r :: Integer
  6661. 1052.99 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6662. 1052.99 s [really-safe-money-gen] - in if r > maxBoundI
  6663. 1052.99 s [really-safe-money-gen] + in if False
  6664. 1052.99 s [really-safe-money-gen] then Nothing
  6665. 1052.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6666. 1052.99 s [really-safe-money-gen]
  6667. 1052.99 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:546:14-66
  6668. 1052.99 s [really-safe-money-gen] @@ -543,7 +543,7 @@
  6669. 1052.99 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6670. 1052.99 s [really-safe-money-gen] in if r > maxBoundI
  6671. 1052.99 s [really-safe-money-gen] then Nothing
  6672. 1052.99 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6673. 1052.99 s [really-safe-money-gen] + else Nothing
  6674. 1052.99 s [really-safe-money-gen]
  6675. 1052.99 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  6676. 1052.99 s [really-safe-money-gen] --
  6677. 1052.99 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:517:11-18
  6678. 1052.99 s [really-safe-money-gen] @@ -514,7 +514,7 @@
  6679. 1052.99 s [really-safe-money-gen] i2 :: Integer
  6680. 1052.99 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6681. 1052.99 s [really-safe-money-gen] r :: Integer
  6682. 1052.99 s [really-safe-money-gen] - r = i1 - i2
  6683. 1052.99 s [really-safe-money-gen] + r = i1 + i2
  6684. 1052.99 s [really-safe-money-gen] in if r < 0
  6685. 1052.99 s [really-safe-money-gen] then Nothing
  6686. 1052.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6687. 1053.00 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:517:11-18
  6688. 1053.00 s [really-safe-money-gen] @@ -514,7 +514,7 @@
  6689. 1053.00 s [really-safe-money-gen] i2 :: Integer
  6690. 1053.00 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6691. 1053.00 s [really-safe-money-gen] r :: Integer
  6692. 1053.00 s [really-safe-money-gen] - r = i1 - i2
  6693. 1053.00 s [really-safe-money-gen] + r = i1 * i2
  6694. 1053.00 s [really-safe-money-gen] in if r < 0
  6695. 1053.00 s [really-safe-money-gen] then Nothing
  6696. 1053.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6697. 1053.00 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  6698. 1053.00 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6699. 1053.00 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6700. 1053.00 s [really-safe-money-gen] r :: Integer
  6701. 1053.00 s [really-safe-money-gen] r = i1 - i2
  6702. 1053.00 s [really-safe-money-gen] - in if r < 0
  6703. 1053.00 s [really-safe-money-gen] + in if r <= 0
  6704. 1053.00 s [really-safe-money-gen] then Nothing
  6705. 1053.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6706. 1053.00 s [really-safe-money-gen]
  6707. 1053.00 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15
  6708. 1053.00 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6709. 1053.00 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6710. 1053.00 s [really-safe-money-gen] r :: Integer
  6711. 1053.00 s [really-safe-money-gen] r = i1 - i2
  6712. 1053.00 s [really-safe-money-gen] - in if r < 0
  6713. 1053.00 s [really-safe-money-gen] + in if r < 1
  6714. 1053.00 s [really-safe-money-gen] then Nothing
  6715. 1053.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6716. 1053.00 s [really-safe-money-gen]
  6717. 1053.00 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  6718. 1053.00 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6719. 1053.00 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6720. 1053.00 s [really-safe-money-gen] r :: Integer
  6721. 1053.00 s [really-safe-money-gen] r = i1 - i2
  6722. 1053.00 s [really-safe-money-gen] - in if r < 0
  6723. 1053.00 s [really-safe-money-gen] + in if r >= 0
  6724. 1053.00 s [really-safe-money-gen] then Nothing
  6725. 1053.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6726. 1053.00 s [really-safe-money-gen]
  6727. 1053.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  6728. 1053.00 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6729. 1053.00 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6730. 1053.00 s [really-safe-money-gen] r :: Integer
  6731. 1053.00 s [really-safe-money-gen] r = i1 - i2
  6732. 1053.00 s [really-safe-money-gen] - in if r < 0
  6733. 1053.00 s [really-safe-money-gen] + in if True
  6734. 1053.00 s [really-safe-money-gen] then Nothing
  6735. 1053.00 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6736. 1053.00 s [really-safe-money-gen]
  6737. 1053.00 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15
  6738. 1053.00 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6739. 1053.01 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6740. 1053.01 s [really-safe-money-gen] r :: Integer
  6741. 1053.01 s [really-safe-money-gen] r = i1 - i2
  6742. 1053.01 s [really-safe-money-gen] - in if r < 0
  6743. 1053.01 s [really-safe-money-gen] + in if not (r < 0)
  6744. 1053.01 s [really-safe-money-gen] then Nothing
  6745. 1053.01 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6746. 1053.01 s [really-safe-money-gen]
  6747. 1053.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  6748. 1053.01 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6749. 1053.01 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6750. 1053.01 s [really-safe-money-gen] r :: Integer
  6751. 1053.01 s [really-safe-money-gen] r = i1 - i2
  6752. 1053.01 s [really-safe-money-gen] - in if r < 0
  6753. 1053.01 s [really-safe-money-gen] + in if False
  6754. 1053.01 s [really-safe-money-gen] then Nothing
  6755. 1053.01 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6756. 1053.01 s [really-safe-money-gen]
  6757. 1053.01 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:520:14-66
  6758. 1053.01 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  6759. 1053.01 s [really-safe-money-gen] r = i1 - i2
  6760. 1053.01 s [really-safe-money-gen] in if r < 0
  6761. 1053.01 s [really-safe-money-gen] then Nothing
  6762. 1053.01 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6763. 1053.01 s [really-safe-money-gen] + else Nothing
  6764. 1053.01 s [really-safe-money-gen]
  6765. 1053.01 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  6766. 1053.01 s [really-safe-money-gen] --
  6767. 1053.01 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  6768. 1053.01 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6769. 1053.01 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6770. 1053.01 s [really-safe-money-gen] r :: Integer
  6771. 1053.01 s [really-safe-money-gen] r = i1 + i2
  6772. 1053.01 s [really-safe-money-gen] - in if r > maxBoundI
  6773. 1053.01 s [really-safe-money-gen] + in if r < maxBoundI
  6774. 1053.01 s [really-safe-money-gen] then Nothing
  6775. 1053.01 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6776. 1053.01 s [really-safe-money-gen]
  6777. 1053.01 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  6778. 1053.01 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6779. 1053.01 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6780. 1053.01 s [really-safe-money-gen] r :: Integer
  6781. 1053.01 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6782. 1053.01 s [really-safe-money-gen] - in if r > maxBoundI
  6783. 1053.01 s [really-safe-money-gen] + in if r < maxBoundI
  6784. 1053.01 s [really-safe-money-gen] then Nothing
  6785. 1053.01 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6786. 1053.01 s [really-safe-money-gen]
  6787. 1053.01 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:475:11-18
  6788. 1053.01 s [really-safe-money-gen] @@ -472,7 +472,7 @@
  6789. 1053.01 s [really-safe-money-gen] maxBoundI :: Integer
  6790. 1053.01 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6791. 1053.01 s [really-safe-money-gen] r :: Integer
  6792. 1053.01 s [really-safe-money-gen] - r = i1 + i2
  6793. 1053.01 s [really-safe-money-gen] + r = i1 * i2
  6794. 1053.01 s [really-safe-money-gen] in if r > maxBoundI
  6795. 1053.02 s [really-safe-money-gen] then Nothing
  6796. 1053.02 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6797. 1053.02 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:543:11-88
  6798. 1053.02 s [really-safe-money-gen] @@ -540,7 +540,7 @@
  6799. 1053.02 s [really-safe-money-gen] let maxBoundI :: Integer
  6800. 1053.02 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6801. 1053.02 s [really-safe-money-gen] r :: Integer
  6802. 1053.02 s [really-safe-money-gen] - r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6803. 1053.02 s [really-safe-money-gen] + r = (fromIntegral :: Word32 -> Integer) f - (fromIntegral :: Word64 -> Integer) a
  6804. 1053.02 s [really-safe-money-gen] in if r > maxBoundI
  6805. 1053.02 s [really-safe-money-gen] then Nothing
  6806. 1053.02 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6807. 1058.91 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:544:10-23
  6808. 1058.91 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6809. 1058.91 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6810. 1058.93 s [really-safe-money-gen] r :: Integer
  6811. 1058.93 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6812. 1058.93 s [really-safe-money-gen] - in if r > maxBoundI
  6813. 1058.93 s [really-safe-money-gen] + in if r <= maxBoundI
  6814. 1058.93 s [really-safe-money-gen] then Nothing
  6815. 1058.94 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6816. 1058.94 s [really-safe-money-gen]
  6817. 1058.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
  6818. 1058.94 s [really-safe-money-gen] @@ -574,7 +574,7 @@
  6819. 1058.94 s [really-safe-money-gen] numberOfLargerChunks :: Word32
  6820. 1058.94 s [really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  6821. 1058.94 s [really-safe-money-gen] numberOfSmallerChunks :: Word32
  6822. 1058.94 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  6823. 1058.94 s [really-safe-money-gen] + numberOfSmallerChunks = f * numberOfLargerChunks
  6824. 1058.94 s [really-safe-money-gen] largerChunk :: Amount
  6825. 1058.94 s [really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
  6826. 1058.94 s [really-safe-money-gen] in DistributedIntoUnequalChunks
  6827. 1058.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  6828. 1058.94 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6829. 1058.94 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6830. 1058.94 s [really-safe-money-gen] smallerChunk :: Amount
  6831. 1058.94 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6832. 1058.94 s [really-safe-money-gen] - in if rest == 0
  6833. 1058.94 s [really-safe-money-gen] + in if False
  6834. 1058.94 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6835. 1058.94 s [really-safe-money-gen] else
  6836. 1058.94 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6837. 1058.94 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:577:39-63
  6838. 1058.94 s [really-safe-money-gen] @@ -574,7 +574,7 @@
  6839. 1058.94 s [really-safe-money-gen] numberOfLargerChunks :: Word32
  6840. 1058.94 s [really-safe-money-gen] numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  6841. 1058.94 s [really-safe-money-gen] numberOfSmallerChunks :: Word32
  6842. 1058.94 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  6843. 1058.94 s [really-safe-money-gen] + numberOfSmallerChunks = f + numberOfLargerChunks
  6844. 1058.94 s [really-safe-money-gen] largerChunk :: Amount
  6845. 1058.94 s [really-safe-money-gen] largerChunk = Amount $ succ smallerChunkSize
  6846. 1058.94 s [really-safe-money-gen] in DistributedIntoUnequalChunks
  6847. 1058.94 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23
  6848. 1058.94 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6849. 1058.94 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6850. 1058.95 s [really-safe-money-gen] r :: Integer
  6851. 1058.95 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6852. 1058.95 s [really-safe-money-gen] - in if r > maxBoundI
  6853. 1058.95 s [really-safe-money-gen] + in if not (r > maxBoundI)
  6854. 1058.95 s [really-safe-money-gen] then Nothing
  6855. 1058.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6856. 1058.95 s [really-safe-money-gen]
  6857. 1058.95 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:721:10-44
  6858. 1058.95 s [really-safe-money-gen] @@ -718,7 +718,7 @@
  6859. 1058.95 s [really-safe-money-gen] rate (QuantisationFactor qf1) (Amount a1) (QuantisationFactor qf2) (Amount a2) =
  6860. 1058.95 s [really-safe-money-gen] ConversionRate.fromRatio $
  6861. 1058.95 s [really-safe-money-gen] (fromIntegral a2 * fromIntegral qf1)
  6862. 1058.95 s [really-safe-money-gen] - % (fromIntegral a1 * fromIntegral qf2)
  6863. 1058.95 s [really-safe-money-gen] + % (fromIntegral a1 + fromIntegral qf2)
  6864. 1058.95 s [really-safe-money-gen]
  6865. 1058.95 s [really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
  6866. 1058.95 s [really-safe-money-gen] -- another currency using a conversion rate.
  6867. 1058.95 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  6868. 1058.95 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  6869. 1058.95 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  6870. 1058.95 s [really-safe-money-gen] r :: Integer
  6871. 1058.95 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  6872. 1058.95 s [really-safe-money-gen] - in if r > maxBoundI
  6873. 1058.95 s [really-safe-money-gen] + in if True
  6874. 1058.95 s [really-safe-money-gen] then Nothing
  6875. 1058.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6876. 1058.95 s [really-safe-money-gen]
  6877. 1058.95 s [really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:269:37-43
  6878. 1058.95 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  6879. 1058.95 s [really-safe-money-gen] | e >= l = Nothing
  6880. 1058.95 s [really-safe-money-gen] | n < d =
  6881. 1058.95 s [really-safe-money-gen] let !ns' = S.insert n ns
  6882. 1058.95 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6883. 1058.95 s [really-safe-money-gen] + in longDivWithLimit (c + 10) (succ e) ns' (n * 10)
  6884. 1058.95 s [really-safe-money-gen] | otherwise =
  6885. 1058.95 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6886. 1058.95 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6887. 1058.95 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:518:10-15
  6888. 1058.95 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  6889. 1058.95 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  6890. 1058.95 s [really-safe-money-gen] r :: Integer
  6891. 1058.95 s [really-safe-money-gen] r = i1 - i2
  6892. 1058.95 s [really-safe-money-gen] - in if r < 0
  6893. 1058.95 s [really-safe-money-gen] + in if r > 0
  6894. 1058.95 s [really-safe-money-gen] then Nothing
  6895. 1058.95 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6896. 1058.96 s [really-safe-money-gen]
  6897. 1058.96 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19
  6898. 1058.96 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  6899. 1058.96 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  6900. 1058.96 s [really-safe-money-gen] smallerChunk :: Amount
  6901. 1058.96 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  6902. 1058.96 s [really-safe-money-gen] - in if rest == 0
  6903. 1058.96 s [really-safe-money-gen] + in if rest == 1
  6904. 1058.96 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  6905. 1058.96 s [really-safe-money-gen] else
  6906. 1058.96 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  6907. 1058.96 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:475:11-18
  6908. 1058.96 s [really-safe-money-gen] @@ -472,7 +472,7 @@
  6909. 1058.96 s [really-safe-money-gen] maxBoundI :: Integer
  6910. 1058.96 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6911. 1058.96 s [really-safe-money-gen] r :: Integer
  6912. 1058.96 s [really-safe-money-gen] - r = i1 + i2
  6913. 1058.96 s [really-safe-money-gen] + r = i1 - i2
  6914. 1058.96 s [really-safe-money-gen] in if r > maxBoundI
  6915. 1058.96 s [really-safe-money-gen] then Nothing
  6916. 1058.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6917. 1058.96 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  6918. 1058.96 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6919. 1058.96 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6920. 1058.96 s [really-safe-money-gen] r :: Integer
  6921. 1058.96 s [really-safe-money-gen] r = i1 + i2
  6922. 1058.96 s [really-safe-money-gen] - in if r > maxBoundI
  6923. 1058.96 s [really-safe-money-gen] + in if False
  6924. 1058.96 s [really-safe-money-gen] then Nothing
  6925. 1058.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6926. 1058.96 s [really-safe-money-gen]
  6927. 1058.96 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  6928. 1058.96 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6929. 1058.96 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6930. 1058.96 s [really-safe-money-gen] r :: Integer
  6931. 1058.96 s [really-safe-money-gen] r = i1 + i2
  6932. 1058.96 s [really-safe-money-gen] - in if r > maxBoundI
  6933. 1058.96 s [really-safe-money-gen] + in if r >= maxBoundI
  6934. 1058.96 s [really-safe-money-gen] then Nothing
  6935. 1058.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6936. 1058.96 s [really-safe-money-gen]
  6937. 1058.96 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:478:14-66
  6938. 1058.96 s [really-safe-money-gen] @@ -475,7 +475,7 @@
  6939. 1058.96 s [really-safe-money-gen] r = i1 + i2
  6940. 1058.96 s [really-safe-money-gen] in if r > maxBoundI
  6941. 1058.96 s [really-safe-money-gen] then Nothing
  6942. 1058.96 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6943. 1058.96 s [really-safe-money-gen] + else Nothing
  6944. 1058.96 s [really-safe-money-gen]
  6945. 1058.97 s [really-safe-money-gen] -- | Add a number of amounts of money together.
  6946. 1058.97 s [really-safe-money-gen] --
  6947. 1058.97 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23
  6948. 1058.97 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6949. 1058.97 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6950. 1058.97 s [really-safe-money-gen] r :: Integer
  6951. 1058.97 s [really-safe-money-gen] r = i1 + i2
  6952. 1058.97 s [really-safe-money-gen] - in if r > maxBoundI
  6953. 1058.97 s [really-safe-money-gen] + in if not (r > maxBoundI)
  6954. 1058.97 s [really-safe-money-gen] then Nothing
  6955. 1058.97 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6956. 1058.97 s [really-safe-money-gen]
  6957. 1058.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  6958. 1058.97 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6959. 1058.97 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6960. 1058.97 s [really-safe-money-gen] r :: Integer
  6961. 1058.97 s [really-safe-money-gen] r = i1 + i2
  6962. 1058.97 s [really-safe-money-gen] - in if r > maxBoundI
  6963. 1058.97 s [really-safe-money-gen] + in if True
  6964. 1058.97 s [really-safe-money-gen] then Nothing
  6965. 1058.97 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6966. 1058.97 s [really-safe-money-gen]
  6967. 1058.97 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:476:10-23
  6968. 1058.97 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  6969. 1058.97 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  6970. 1058.97 s [really-safe-money-gen] r :: Integer
  6971. 1058.97 s [really-safe-money-gen] r = i1 + i2
  6972. 1058.97 s [really-safe-money-gen] - in if r > maxBoundI
  6973. 1058.97 s [really-safe-money-gen] + in if r <= maxBoundI
  6974. 1058.97 s [really-safe-money-gen] then Nothing
  6975. 1058.97 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6976. 1058.97 s [really-safe-money-gen]
  6977. 1064.27 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10
  6978. 1064.27 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  6979. 1064.29 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  6980. 1064.29 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  6981. 1064.29 s [really-safe-money-gen] | isInvalid r = Nothing
  6982. 1064.29 s [really-safe-money-gen] - | r < 0 = Nothing
  6983. 1064.29 s [really-safe-money-gen] + | r < 1 = Nothing
  6984. 1064.29 s [really-safe-money-gen] | otherwise =
  6985. 1064.29 s [really-safe-money-gen] let resultRational :: Rational
  6986. 1064.29 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  6987. 1064.29 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  6988. 1064.29 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  6989. 1064.29 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  6990. 1064.29 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  6991. 1064.29 s [really-safe-money-gen] | isInvalid r = Nothing
  6992. 1064.29 s [really-safe-money-gen] - | r < 0 = Nothing
  6993. 1064.29 s [really-safe-money-gen] + | r <= 0 = Nothing
  6994. 1064.29 s [really-safe-money-gen] | otherwise =
  6995. 1064.29 s [really-safe-money-gen] let resultRational :: Rational
  6996. 1064.29 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  6997. 1064.29 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  6998. 1064.29 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  6999. 1064.29 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7000. 1064.30 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7001. 1064.30 s [really-safe-money-gen] | isInvalid r = Nothing
  7002. 1064.30 s [really-safe-money-gen] - | r < 0 = Nothing
  7003. 1064.30 s [really-safe-money-gen] + | r > 0 = Nothing
  7004. 1064.30 s [really-safe-money-gen] | otherwise =
  7005. 1064.30 s [really-safe-money-gen] let resultRational :: Rational
  7006. 1064.30 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7007. 1064.30 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:389:5-10
  7008. 1064.30 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7009. 1064.30 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7010. 1064.30 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7011. 1064.30 s [really-safe-money-gen] | isInvalid r = Nothing
  7012. 1064.30 s [really-safe-money-gen] - | r < 0 = Nothing
  7013. 1064.30 s [really-safe-money-gen] + | r >= 0 = Nothing
  7014. 1064.30 s [really-safe-money-gen] | otherwise =
  7015. 1064.30 s [really-safe-money-gen] let resultRational :: Rational
  7016. 1064.30 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7017. 1064.30 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10
  7018. 1064.30 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7019. 1064.30 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7020. 1064.30 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7021. 1064.30 s [really-safe-money-gen] | isInvalid r = Nothing
  7022. 1064.30 s [really-safe-money-gen] - | r < 0 = Nothing
  7023. 1064.30 s [really-safe-money-gen] + | True = Nothing
  7024. 1064.30 s [really-safe-money-gen] | otherwise =
  7025. 1064.30 s [really-safe-money-gen] let resultRational :: Rational
  7026. 1064.30 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7027. 1064.30 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10
  7028. 1064.30 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  7029. 1064.30 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7030. 1064.30 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7031. 1064.30 s [really-safe-money-gen] | isInvalid r = Nothing
  7032. 1064.30 s [really-safe-money-gen] - | r < 0 = Nothing
  7033. 1064.30 s [really-safe-money-gen] + | not (r < 0) = Nothing
  7034. 1064.30 s [really-safe-money-gen] | otherwise =
  7035. 1064.30 s [really-safe-money-gen] let resultRational :: Rational
  7036. 1064.30 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7037. 1064.30 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:392:28-71
  7038. 1064.31 s [really-safe-money-gen] @@ -389,7 +389,7 @@
  7039. 1064.31 s [really-safe-money-gen] | r < 0 = Nothing
  7040. 1064.31 s [really-safe-money-gen] | otherwise =
  7041. 1064.31 s [really-safe-money-gen] let resultRational :: Rational
  7042. 1064.31 s [really-safe-money-gen] - resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7043. 1064.31 s [really-safe-money-gen] + resultRational = r + (fromIntegral :: Word32 -> Rational) qf
  7044. 1064.31 s [really-safe-money-gen] ceiled :: Natural
  7045. 1064.31 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7046. 1064.31 s [really-safe-money-gen] floored :: Natural
  7047. 1064.31 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31
  7048. 1064.31 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  7049. 1064.31 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7050. 1064.31 s [really-safe-money-gen] floored :: Natural
  7051. 1064.31 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7052. 1064.31 s [really-safe-money-gen] - in if ceiled == floored
  7053. 1064.31 s [really-safe-money-gen] + in if not (ceiled == floored)
  7054. 1064.31 s [really-safe-money-gen] then
  7055. 1064.31 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7056. 1064.31 s [really-safe-money-gen] then Nothing
  7057. 1064.31 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  7058. 1064.31 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7059. 1064.31 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7060. 1064.31 s [really-safe-money-gen] in if ceiled == floored
  7061. 1064.31 s [really-safe-money-gen] then
  7062. 1064.31 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7063. 1064.31 s [really-safe-money-gen] + if ceiled <= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7064. 1064.31 s [really-safe-money-gen] then Nothing
  7065. 1064.31 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7066. 1064.31 s [really-safe-money-gen] else Nothing
  7067. 1064.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  7068. 1064.31 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  7069. 1064.31 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7070. 1064.31 s [really-safe-money-gen] floored :: Natural
  7071. 1064.31 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7072. 1064.31 s [really-safe-money-gen] - in if ceiled == floored
  7073. 1064.31 s [really-safe-money-gen] + in if True
  7074. 1064.31 s [really-safe-money-gen] then
  7075. 1064.31 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7076. 1064.31 s [really-safe-money-gen] then Nothing
  7077. 1064.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  7078. 1064.32 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7079. 1064.32 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7080. 1064.32 s [really-safe-money-gen] in if ceiled == floored
  7081. 1064.32 s [really-safe-money-gen] then
  7082. 1064.32 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7083. 1064.32 s [really-safe-money-gen] + if True
  7084. 1064.32 s [really-safe-money-gen] then Nothing
  7085. 1064.32 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7086. 1064.32 s [really-safe-money-gen] else Nothing
  7087. 1064.32 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  7088. 1064.32 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7089. 1064.32 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7090. 1064.32 s [really-safe-money-gen] in if ceiled == floored
  7091. 1064.32 s [really-safe-money-gen] then
  7092. 1064.32 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7093. 1064.32 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7094. 1064.32 s [really-safe-money-gen] then Nothing
  7095. 1064.32 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7096. 1064.32 s [really-safe-money-gen] else Nothing
  7097. 1064.32 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  7098. 1064.32 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  7099. 1064.32 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7100. 1064.32 s [really-safe-money-gen] floored :: Natural
  7101. 1064.32 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7102. 1064.32 s [really-safe-money-gen] - in if ceiled == floored
  7103. 1064.32 s [really-safe-money-gen] + in if False
  7104. 1064.32 s [really-safe-money-gen] then
  7105. 1064.32 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7106. 1064.32 s [really-safe-money-gen] then Nothing
  7107. 1064.32 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:392:28-71
  7108. 1064.32 s [really-safe-money-gen] @@ -389,7 +389,7 @@
  7109. 1064.32 s [really-safe-money-gen] | r < 0 = Nothing
  7110. 1064.32 s [really-safe-money-gen] | otherwise =
  7111. 1064.32 s [really-safe-money-gen] let resultRational :: Rational
  7112. 1064.32 s [really-safe-money-gen] - resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  7113. 1064.32 s [really-safe-money-gen] + resultRational = r - (fromIntegral :: Word32 -> Rational) qf
  7114. 1064.32 s [really-safe-money-gen] ceiled :: Natural
  7115. 1064.32 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  7116. 1064.32 s [really-safe-money-gen] floored :: Natural
  7117. 1064.32 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16
  7118. 1064.32 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  7119. 1064.32 s [really-safe-money-gen] -- Nothing
  7120. 1064.32 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7121. 1064.32 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7122. 1064.32 s [really-safe-money-gen] - | isInvalid r = Nothing
  7123. 1064.32 s [really-safe-money-gen] + | not (isInvalid r) = Nothing
  7124. 1064.32 s [really-safe-money-gen] | r < 0 = Nothing
  7125. 1064.32 s [really-safe-money-gen] | otherwise =
  7126. 1064.32 s [really-safe-money-gen] let resultRational :: Rational
  7127. 1064.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  7128. 1064.33 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7129. 1064.33 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7130. 1064.33 s [really-safe-money-gen] in if ceiled == floored
  7131. 1064.33 s [really-safe-money-gen] then
  7132. 1064.33 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7133. 1071.38 s [really-safe-money-gen] + if False
  7134. 1071.38 s [really-safe-money-gen] then Nothing
  7135. 1071.41 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7136. 1071.41 s [really-safe-money-gen] else Nothing
  7137. 1071.41 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
  7138. 1071.41 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7139. 1071.41 s [really-safe-money-gen] Double ->
  7140. 1071.41 s [really-safe-money-gen] Maybe Amount
  7141. 1071.41 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7142. 1071.41 s [really-safe-money-gen] - | d < 0 = Nothing
  7143. 1071.41 s [really-safe-money-gen] + | d < 1 = Nothing
  7144. 1071.41 s [really-safe-money-gen] | otherwise =
  7145. 1071.41 s [really-safe-money-gen] let resultDouble :: Double
  7146. 1071.41 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7147. 1071.41 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  7148. 1071.41 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7149. 1071.41 s [really-safe-money-gen] Double ->
  7150. 1071.41 s [really-safe-money-gen] Maybe Amount
  7151. 1071.41 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7152. 1071.41 s [really-safe-money-gen] - | d < 0 = Nothing
  7153. 1071.41 s [really-safe-money-gen] + | d > 0 = Nothing
  7154. 1071.41 s [really-safe-money-gen] | otherwise =
  7155. 1071.41 s [really-safe-money-gen] let resultDouble :: Double
  7156. 1071.41 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7157. 1071.41 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
  7158. 1071.41 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7159. 1071.41 s [really-safe-money-gen] Double ->
  7160. 1071.42 s [really-safe-money-gen] Maybe Amount
  7161. 1071.42 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7162. 1071.42 s [really-safe-money-gen] - | d < 0 = Nothing
  7163. 1071.42 s [really-safe-money-gen] + | not (d < 0) = Nothing
  7164. 1071.42 s [really-safe-money-gen] | otherwise =
  7165. 1071.42 s [really-safe-money-gen] let resultDouble :: Double
  7166. 1071.42 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7167. 1071.42 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
  7168. 1071.42 s [really-safe-money-gen] @@ -320,7 +320,7 @@
  7169. 1071.42 s [really-safe-money-gen] | d < 0 = Nothing
  7170. 1071.42 s [really-safe-money-gen] | otherwise =
  7171. 1071.42 s [really-safe-money-gen] let resultDouble :: Double
  7172. 1071.42 s [really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7173. 1071.42 s [really-safe-money-gen] + resultDouble = d + (fromIntegral :: Word32 -> Double) qf
  7174. 1071.42 s [really-safe-money-gen] in go resultDouble
  7175. 1071.42 s [really-safe-money-gen] where
  7176. 1071.42 s [really-safe-money-gen] go resultDouble
  7177. 1071.42 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  7178. 1071.42 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7179. 1071.42 s [really-safe-money-gen] Double ->
  7180. 1071.42 s [really-safe-money-gen] Maybe Amount
  7181. 1071.42 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7182. 1071.42 s [really-safe-money-gen] - | d < 0 = Nothing
  7183. 1071.42 s [really-safe-money-gen] + | d <= 0 = Nothing
  7184. 1071.42 s [really-safe-money-gen] | otherwise =
  7185. 1071.42 s [really-safe-money-gen] let resultDouble :: Double
  7186. 1071.42 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7187. 1071.42 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16
  7188. 1071.42 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  7189. 1071.42 s [really-safe-money-gen] in go resultDouble
  7190. 1071.42 s [really-safe-money-gen] where
  7191. 1071.43 s [really-safe-money-gen] go resultDouble
  7192. 1071.43 s [really-safe-money-gen] - | isNaN d = Nothing
  7193. 1071.43 s [really-safe-money-gen] + | not (isNaN d) = Nothing
  7194. 1071.43 s [really-safe-money-gen] | isInfinite d = Nothing
  7195. 1071.43 s [really-safe-money-gen] | otherwise =
  7196. 1071.43 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7197. 1071.43 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:399:18-83
  7198. 1071.43 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7199. 1071.43 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7200. 1071.43 s [really-safe-money-gen] in if ceiled == floored
  7201. 1071.43 s [really-safe-money-gen] then
  7202. 1071.43 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7203. 1071.43 s [really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7204. 1071.43 s [really-safe-money-gen] then Nothing
  7205. 1071.43 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7206. 1071.43 s [really-safe-money-gen] else Nothing
  7207. 1071.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16
  7208. 1071.43 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  7209. 1071.43 s [really-safe-money-gen] in go resultDouble
  7210. 1071.43 s [really-safe-money-gen] where
  7211. 1071.43 s [really-safe-money-gen] go resultDouble
  7212. 1071.43 s [really-safe-money-gen] - | isNaN d = Nothing
  7213. 1071.43 s [really-safe-money-gen] + | True = Nothing
  7214. 1071.43 s [really-safe-money-gen] | isInfinite d = Nothing
  7215. 1071.43 s [really-safe-money-gen] | otherwise =
  7216. 1071.43 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7217. 1071.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16
  7218. 1071.43 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  7219. 1071.43 s [really-safe-money-gen] -- Nothing
  7220. 1071.43 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  7221. 1071.43 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  7222. 1071.43 s [really-safe-money-gen] - | isInvalid r = Nothing
  7223. 1071.43 s [really-safe-money-gen] + | True = Nothing
  7224. 1071.43 s [really-safe-money-gen] | r < 0 = Nothing
  7225. 1071.43 s [really-safe-money-gen] | otherwise =
  7226. 1071.43 s [really-safe-money-gen] let resultRational :: Rational
  7227. 1071.43 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  7228. 1071.43 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7229. 1071.43 s [really-safe-money-gen] | otherwise =
  7230. 1071.43 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7231. 1071.43 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7232. 1071.43 s [really-safe-money-gen] - if exponent resultDouble > 65
  7233. 1071.43 s [really-safe-money-gen] + if exponent resultDouble > -65
  7234. 1071.43 s [really-safe-money-gen] then Nothing
  7235. 1071.43 s [really-safe-money-gen] else
  7236. 1071.43 s [really-safe-money-gen] let ceiled :: Natural
  7237. 1071.43 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  7238. 1071.43 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7239. 1071.43 s [really-safe-money-gen] | otherwise =
  7240. 1071.43 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7241. 1071.43 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7242. 1071.43 s [really-safe-money-gen] - if exponent resultDouble > 65
  7243. 1071.43 s [really-safe-money-gen] + if exponent resultDouble > 1
  7244. 1071.43 s [really-safe-money-gen] then Nothing
  7245. 1071.43 s [really-safe-money-gen] else
  7246. 1071.44 s [really-safe-money-gen] let ceiled :: Natural
  7247. 1071.44 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21
  7248. 1071.44 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  7249. 1071.44 s [really-safe-money-gen] where
  7250. 1071.44 s [really-safe-money-gen] go resultDouble
  7251. 1071.44 s [really-safe-money-gen] | isNaN d = Nothing
  7252. 1071.44 s [really-safe-money-gen] - | isInfinite d = Nothing
  7253. 1071.44 s [really-safe-money-gen] + | not (isInfinite d) = Nothing
  7254. 1071.44 s [really-safe-money-gen] | otherwise =
  7255. 1071.44 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7256. 1071.44 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7257. 1071.44 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  7258. 1071.44 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7259. 1071.44 s [really-safe-money-gen] | otherwise =
  7260. 1071.44 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7261. 1071.44 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7262. 1071.44 s [really-safe-money-gen] - if exponent resultDouble > 65
  7263. 1071.44 s [really-safe-money-gen] + if exponent resultDouble > 0
  7264. 1071.44 s [really-safe-money-gen] then Nothing
  7265. 1071.44 s [really-safe-money-gen] else
  7266. 1071.44 s [really-safe-money-gen] let ceiled :: Natural
  7267. 1071.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  7268. 1071.44 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7269. 1071.44 s [really-safe-money-gen] | otherwise =
  7270. 1071.44 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7271. 1071.44 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7272. 1071.44 s [really-safe-money-gen] - if exponent resultDouble > 65
  7273. 1071.44 s [really-safe-money-gen] + if exponent resultDouble < 65
  7274. 1071.44 s [really-safe-money-gen] then Nothing
  7275. 1071.44 s [really-safe-money-gen] else
  7276. 1071.44 s [really-safe-money-gen] let ceiled :: Natural
  7277. 1071.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  7278. 1071.44 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7279. 1071.44 s [really-safe-money-gen] | otherwise =
  7280. 1071.44 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7281. 1071.44 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7282. 1071.44 s [really-safe-money-gen] - if exponent resultDouble > 65
  7283. 1071.44 s [really-safe-money-gen] + if exponent resultDouble <= 65
  7284. 1071.44 s [really-safe-money-gen] then Nothing
  7285. 1071.44 s [really-safe-money-gen] else
  7286. 1071.44 s [really-safe-money-gen] let ceiled :: Natural
  7287. 1071.44 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:332:14-40
  7288. 1071.44 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7289. 1071.44 s [really-safe-money-gen] | otherwise =
  7290. 1071.44 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7291. 1071.44 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7292. 1071.44 s [really-safe-money-gen] - if exponent resultDouble > 65
  7293. 1071.45 s [really-safe-money-gen] + if exponent resultDouble >= 65
  7294. 1071.45 s [really-safe-money-gen] then Nothing
  7295. 1071.45 s [really-safe-money-gen] else
  7296. 1071.45 s [really-safe-money-gen] let ceiled :: Natural
  7297. 1071.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21
  7298. 1071.45 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  7299. 1071.45 s [really-safe-money-gen] where
  7300. 1071.45 s [really-safe-money-gen] go resultDouble
  7301. 1071.45 s [really-safe-money-gen] | isNaN d = Nothing
  7302. 1071.45 s [really-safe-money-gen] - | isInfinite d = Nothing
  7303. 1071.45 s [really-safe-money-gen] + | True = Nothing
  7304. 1071.45 s [really-safe-money-gen] | otherwise =
  7305. 1071.45 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7306. 1071.45 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7307. 1071.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10
  7308. 1071.45 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7309. 1071.45 s [really-safe-money-gen] Double ->
  7310. 1071.45 s [really-safe-money-gen] Maybe Amount
  7311. 1071.45 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7312. 1071.45 s [really-safe-money-gen] - | d < 0 = Nothing
  7313. 1071.45 s [really-safe-money-gen] + | True = Nothing
  7314. 1071.45 s [really-safe-money-gen] | otherwise =
  7315. 1076.97 s [really-safe-money-gen] let resultDouble :: Double
  7316. 1076.97 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7317. 1077.00 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:320:5-10
  7318. 1077.00 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  7319. 1077.00 s [really-safe-money-gen] Double ->
  7320. 1077.00 s [really-safe-money-gen] Maybe Amount
  7321. 1077.00 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  7322. 1077.00 s [really-safe-money-gen] - | d < 0 = Nothing
  7323. 1077.00 s [really-safe-money-gen] + | d >= 0 = Nothing
  7324. 1077.00 s [really-safe-money-gen] | otherwise =
  7325. 1077.00 s [really-safe-money-gen] let resultDouble :: Double
  7326. 1077.00 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7327. 1077.00 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83
  7328. 1077.00 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  7329. 1077.00 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  7330. 1077.00 s [really-safe-money-gen] in if ceiled == floored
  7331. 1077.00 s [really-safe-money-gen] then
  7332. 1077.00 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7333. 1077.01 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  7334. 1077.01 s [really-safe-money-gen] then Nothing
  7335. 1077.01 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7336. 1077.01 s [really-safe-money-gen] else Nothing
  7337. 1077.01 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:323:26-67
  7338. 1077.01 s [really-safe-money-gen] @@ -320,7 +320,7 @@
  7339. 1077.01 s [really-safe-money-gen] | d < 0 = Nothing
  7340. 1077.01 s [really-safe-money-gen] | otherwise =
  7341. 1077.01 s [really-safe-money-gen] let resultDouble :: Double
  7342. 1077.01 s [really-safe-money-gen] - resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  7343. 1077.01 s [really-safe-money-gen] + resultDouble = d - (fromIntegral :: Word32 -> Double) qf
  7344. 1077.01 s [really-safe-money-gen] in go resultDouble
  7345. 1077.01 s [really-safe-money-gen] where
  7346. 1077.01 s [really-safe-money-gen] go resultDouble
  7347. 1077.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  7348. 1077.01 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7349. 1077.01 s [really-safe-money-gen] | otherwise =
  7350. 1077.01 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7351. 1077.01 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7352. 1077.01 s [really-safe-money-gen] - if exponent resultDouble > 65
  7353. 1077.01 s [really-safe-money-gen] + if True
  7354. 1077.01 s [really-safe-money-gen] then Nothing
  7355. 1077.01 s [really-safe-money-gen] else
  7356. 1077.01 s [really-safe-money-gen] let ceiled :: Natural
  7357. 1077.01 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40
  7358. 1077.01 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7359. 1077.01 s [really-safe-money-gen] | otherwise =
  7360. 1077.01 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7361. 1077.01 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7362. 1077.01 s [really-safe-money-gen] - if exponent resultDouble > 65
  7363. 1077.01 s [really-safe-money-gen] + if not (exponent resultDouble > 65)
  7364. 1077.01 s [really-safe-money-gen] then Nothing
  7365. 1077.01 s [really-safe-money-gen] else
  7366. 1077.01 s [really-safe-money-gen] let ceiled :: Natural
  7367. 1077.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  7368. 1077.01 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  7369. 1077.01 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  7370. 1077.01 s [really-safe-money-gen] floored :: Natural
  7371. 1077.01 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7372. 1077.01 s [really-safe-money-gen] - in if ceiled == floored
  7373. 1077.01 s [really-safe-money-gen] + in if True
  7374. 1077.02 s [really-safe-money-gen] then
  7375. 1077.02 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7376. 1077.02 s [really-safe-money-gen] then Nothing
  7377. 1077.02 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  7378. 1077.02 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  7379. 1077.02 s [really-safe-money-gen] | otherwise =
  7380. 1077.02 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  7381. 1077.02 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  7382. 1077.02 s [really-safe-money-gen] - if exponent resultDouble > 65
  7383. 1077.02 s [really-safe-money-gen] + if False
  7384. 1077.02 s [really-safe-money-gen] then Nothing
  7385. 1077.02 s [really-safe-money-gen] else
  7386. 1077.02 s [really-safe-money-gen] let ceiled :: Natural
  7387. 1077.02 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  7388. 1077.02 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  7389. 1077.02 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  7390. 1077.02 s [really-safe-money-gen] floored :: Natural
  7391. 1077.02 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7392. 1077.02 s [really-safe-money-gen] - in if ceiled == floored
  7393. 1077.02 s [really-safe-money-gen] + in if False
  7394. 1077.02 s [really-safe-money-gen] then
  7395. 1077.02 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7396. 1077.02 s [really-safe-money-gen] then Nothing
  7397. 1077.02 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  7398. 1077.02 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7399. 1077.02 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7400. 1077.02 s [really-safe-money-gen] in if ceiled == floored
  7401. 1077.02 s [really-safe-money-gen] then
  7402. 1077.02 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7403. 1077.02 s [really-safe-money-gen] + if ceiled <= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7404. 1077.02 s [really-safe-money-gen] then Nothing
  7405. 1077.02 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7406. 1077.02 s [really-safe-money-gen] else Nothing
  7407. 1077.02 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
  7408. 1077.02 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  7409. 1077.02 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  7410. 1077.02 s [really-safe-money-gen] floored :: Natural
  7411. 1077.02 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7412. 1077.02 s [really-safe-money-gen] - in if ceiled == floored
  7413. 1077.02 s [really-safe-money-gen] + in if not (ceiled == floored)
  7414. 1077.02 s [really-safe-money-gen] then
  7415. 1077.02 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7416. 1077.02 s [really-safe-money-gen] then Nothing
  7417. 1077.02 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
  7418. 1077.02 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  7419. 1077.02 s [really-safe-money-gen] let maxBoundI :: Integer
  7420. 1077.02 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7421. 1077.02 s [really-safe-money-gen] r :: Integer
  7422. 1077.03 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7423. 1077.03 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  7424. 1077.03 s [really-safe-money-gen] in if r > maxBoundI
  7425. 1077.03 s [really-safe-money-gen] then Nothing
  7426. 1077.03 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7427. 1077.03 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  7428. 1077.03 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7429. 1077.03 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7430. 1077.03 s [really-safe-money-gen] r :: Integer
  7431. 1077.03 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7432. 1077.03 s [really-safe-money-gen] - in if r > maxBoundI
  7433. 1077.03 s [really-safe-money-gen] + in if r < maxBoundI
  7434. 1077.03 s [really-safe-money-gen] then Nothing
  7435. 1077.03 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7436. 1077.03 s [really-safe-money-gen]
  7437. 1077.03 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  7438. 1077.03 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7439. 1077.03 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7440. 1077.03 s [really-safe-money-gen] r :: Integer
  7441. 1077.03 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7442. 1077.03 s [really-safe-money-gen] - in if r > maxBoundI
  7443. 1077.03 s [really-safe-money-gen] + in if r <= maxBoundI
  7444. 1077.03 s [really-safe-money-gen] then Nothing
  7445. 1077.03 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7446. 1077.03 s [really-safe-money-gen]
  7447. 1077.03 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:495:10-23
  7448. 1077.03 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7449. 1077.03 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7450. 1077.03 s [really-safe-money-gen] r :: Integer
  7451. 1077.03 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7452. 1077.03 s [really-safe-money-gen] - in if r > maxBoundI
  7453. 1077.03 s [really-safe-money-gen] + in if r >= maxBoundI
  7454. 1077.03 s [really-safe-money-gen] then Nothing
  7455. 1077.03 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7456. 1077.03 s [really-safe-money-gen]
  7457. 1077.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  7458. 1077.03 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7459. 1077.03 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7460. 1077.03 s [really-safe-money-gen] r :: Integer
  7461. 1077.03 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7462. 1077.03 s [really-safe-money-gen] - in if r > maxBoundI
  7463. 1077.03 s [really-safe-money-gen] + in if True
  7464. 1077.03 s [really-safe-money-gen] then Nothing
  7465. 1081.49 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7466. 1081.49 s [really-safe-money-gen]
  7467. 1081.49 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  7468. 1081.49 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7469. 1081.50 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7470. 1081.50 s [really-safe-money-gen] in if ceiled == floored
  7471. 1081.50 s [really-safe-money-gen] then
  7472. 1081.50 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7473. 1081.50 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7474. 1081.50 s [really-safe-money-gen] then Nothing
  7475. 1081.50 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7476. 1081.50 s [really-safe-money-gen] else Nothing
  7477. 1081.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
  7478. 1081.50 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7479. 1081.50 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7480. 1081.50 s [really-safe-money-gen] r :: Integer
  7481. 1081.50 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7482. 1081.50 s [really-safe-money-gen] - in if r > maxBoundI
  7483. 1081.50 s [really-safe-money-gen] + in if not (r > maxBoundI)
  7484. 1081.50 s [really-safe-money-gen] then Nothing
  7485. 1081.50 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7486. 1081.50 s [really-safe-money-gen]
  7487. 1081.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  7488. 1081.50 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7489. 1081.50 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7490. 1081.50 s [really-safe-money-gen] r :: Integer
  7491. 1081.50 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7492. 1081.50 s [really-safe-money-gen] - in if r > maxBoundI
  7493. 1081.50 s [really-safe-money-gen] + in if False
  7494. 1081.50 s [really-safe-money-gen] then Nothing
  7495. 1081.50 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7496. 1081.50 s [really-safe-money-gen]
  7497. 1081.50 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
  7498. 1081.50 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  7499. 1081.50 s [really-safe-money-gen] let maxBoundI :: Integer
  7500. 1081.50 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7501. 1081.50 s [really-safe-money-gen] r :: Integer
  7502. 1081.50 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7503. 1081.50 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) * acc) 0 l
  7504. 1081.50 s [really-safe-money-gen] in if r > maxBoundI
  7505. 1081.50 s [really-safe-money-gen] then Nothing
  7506. 1081.51 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7507. 1081.51 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:494:29-94
  7508. 1081.51 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  7509. 1081.51 s [really-safe-money-gen] let maxBoundI :: Integer
  7510. 1081.51 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  7511. 1081.51 s [really-safe-money-gen] r :: Integer
  7512. 1081.51 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7513. 1081.51 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) - acc) 0 l
  7514. 1081.51 s [really-safe-money-gen] in if r > maxBoundI
  7515. 1081.51 s [really-safe-money-gen] then Nothing
  7516. 1081.51 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7517. 1081.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
  7518. 1081.51 s [really-safe-money-gen] @@ -287,7 +287,7 @@
  7519. 1081.51 s [really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  7520. 1081.51 s [really-safe-money-gen] -- 1 % 100
  7521. 1081.51 s [really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  7522. 1081.51 s [really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  7523. 1081.51 s [really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  7524. 1081.51 s [really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
  7525. 1081.51 s [really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  7526. 1081.51 s [really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  7527. 1081.51 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
  7528. 1081.51 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7529. 1081.51 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7530. 1081.51 s [really-safe-money-gen] in if ceiled == floored
  7531. 1081.51 s [really-safe-money-gen] then
  7532. 1081.51 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7533. 1081.51 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  7534. 1081.51 s [really-safe-money-gen] then Nothing
  7535. 1081.51 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7536. 1081.51 s [really-safe-money-gen] else Nothing
  7537. 1081.51 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:660:28-37
  7538. 1081.51 s [really-safe-money-gen] @@ -657,7 +657,7 @@
  7539. 1081.51 s [really-safe-money-gen] Ratio Natural ->
  7540. 1081.51 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  7541. 1081.51 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  7542. 1081.51 s [really-safe-money-gen] -fraction _ (Amount 0) f = (Just zero, f)
  7543. 1081.51 s [really-safe-money-gen] +fraction _ (Amount 0) f = (Nothing, f)
  7544. 1081.52 s [really-safe-money-gen] fraction _ _ 0 = (Just zero, 0)
  7545. 1081.52 s [really-safe-money-gen] fraction r (Amount a) f =
  7546. 1081.52 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7547. 1081.52 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:661:19-28
  7548. 1081.52 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  7549. 1081.52 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  7550. 1081.52 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  7551. 1081.52 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  7552. 1081.52 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  7553. 1081.52 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  7554. 1081.52 s [really-safe-money-gen] fraction r (Amount a) f =
  7555. 1081.52 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7556. 1081.52 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7557. 1081.52 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
  7558. 1081.52 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  7559. 1081.52 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  7560. 1081.52 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  7561. 1081.52 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  7562. 1081.52 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  7563. 1081.52 s [really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
  7564. 1081.52 s [really-safe-money-gen] fraction r (Amount a) f =
  7565. 1081.52 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7566. 1081.52 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7567. 1081.52 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:497:14-66
  7568. 1081.52 s [really-safe-money-gen] @@ -494,7 +494,7 @@
  7569. 1081.52 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  7570. 1081.52 s [really-safe-money-gen] in if r > maxBoundI
  7571. 1081.52 s [really-safe-money-gen] then Nothing
  7572. 1081.52 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7573. 1081.52 s [really-safe-money-gen] + else Nothing
  7574. 1081.52 s [really-safe-money-gen]
  7575. 1081.52 s [really-safe-money-gen] -- | Add two amounts of money.
  7576. 1081.52 s [really-safe-money-gen] --
  7577. 1081.52 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  7578. 1081.52 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  7579. 1081.52 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7580. 1081.52 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  7581. 1081.52 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7582. 1081.53 s [really-safe-money-gen] rounder = case r of
  7583. 1081.53 s [really-safe-money-gen] RoundUp -> ceiling
  7584. 1081.53 s [really-safe-money-gen] - RoundDown -> floor
  7585. 1081.53 s [really-safe-money-gen] RoundNearest -> round
  7586. 1081.53 s [really-safe-money-gen] roundedResult :: Natural
  7587. 1081.53 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7588. 1081.53 s [really-safe-money-gen] actualRate :: Ratio Natural
  7589. 1081.53 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  7590. 1081.53 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  7591. 1081.53 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7592. 1081.53 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  7593. 1081.53 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7594. 1081.53 s [really-safe-money-gen] rounder = case r of
  7595. 1081.53 s [really-safe-money-gen] - RoundUp -> ceiling
  7596. 1081.53 s [really-safe-money-gen] RoundDown -> floor
  7597. 1081.53 s [really-safe-money-gen] RoundNearest -> round
  7598. 1081.53 s [really-safe-money-gen] roundedResult :: Natural
  7599. 1081.53 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7600. 1081.53 s [really-safe-money-gen] actualRate :: Ratio Natural
  7601. 1081.53 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
  7602. 1081.53 s [really-safe-money-gen] @@ -247,7 +247,7 @@
  7603. 1081.53 s [really-safe-money-gen] -- >>> zero
  7604. 1081.53 s [really-safe-money-gen] -- Amount 0
  7605. 1081.53 s [really-safe-money-gen] zero :: Amount
  7606. 1081.53 s [really-safe-money-gen] -zero = Amount 0
  7607. 1081.53 s [really-safe-money-gen] +zero = Amount 1
  7608. 1081.53 s [really-safe-money-gen]
  7609. 1081.53 s [really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
  7610. 1081.53 s [really-safe-money-gen] --
  7611. 1081.53 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  7612. 1081.53 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7613. 1081.53 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7614. 1081.53 s [really-safe-money-gen] in if ceiled == floored
  7615. 1081.53 s [really-safe-money-gen] then
  7616. 1081.53 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7617. 1081.53 s [really-safe-money-gen] + if False
  7618. 1081.53 s [really-safe-money-gen] then Nothing
  7619. 1081.53 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7620. 1081.53 s [really-safe-money-gen] else Nothing
  7621. 1081.53 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  7622. 1087.01 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7623. 1087.04 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7624. 1087.04 s [really-safe-money-gen] in if ceiled == floored
  7625. 1087.04 s [really-safe-money-gen] then
  7626. 1087.04 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7627. 1087.04 s [really-safe-money-gen] + if True
  7628. 1087.04 s [really-safe-money-gen] then Nothing
  7629. 1087.04 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7630. 1087.04 s [really-safe-money-gen] else Nothing
  7631. 1087.04 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:341:26-91
  7632. 1087.04 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  7633. 1087.04 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  7634. 1087.04 s [really-safe-money-gen] in if ceiled == floored
  7635. 1087.04 s [really-safe-money-gen] then
  7636. 1087.04 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7637. 1087.04 s [really-safe-money-gen] + if ceiled < (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  7638. 1087.04 s [really-safe-money-gen] then Nothing
  7639. 1087.04 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  7640. 1087.04 s [really-safe-money-gen] else Nothing
  7641. 1087.04 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
  7642. 1087.04 s [really-safe-money-gen] @@ -665,10 +665,9 @@
  7643. 1087.04 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7644. 1087.04 s [really-safe-money-gen] theoreticalResult = amountAsRatio * f
  7645. 1087.04 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7646. 1087.04 s [really-safe-money-gen] rounder = case r of
  7647. 1087.04 s [really-safe-money-gen] RoundUp -> ceiling
  7648. 1087.04 s [really-safe-money-gen] RoundDown -> floor
  7649. 1087.04 s [really-safe-money-gen] - RoundNearest -> round
  7650. 1087.04 s [really-safe-money-gen] roundedResult :: Natural
  7651. 1087.04 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7652. 1087.04 s [really-safe-money-gen] actualRate :: Ratio Natural
  7653. 1087.04 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  7654. 1087.04 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7655. 1087.04 s [really-safe-money-gen] maxBoundN :: Natural
  7656. 1087.04 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7657. 1087.04 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7658. 1087.04 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7659. 1087.05 s [really-safe-money-gen] + in ( if roundedResult >= maxBoundN
  7660. 1087.05 s [really-safe-money-gen] then Nothing
  7661. 1087.05 s [really-safe-money-gen] else Just result,
  7662. 1087.05 s [really-safe-money-gen] actualRate
  7663. 1087.05 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
  7664. 1087.05 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7665. 1087.05 s [really-safe-money-gen] maxBoundN :: Natural
  7666. 1087.05 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7667. 1087.05 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7668. 1087.05 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7669. 1087.05 s [really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
  7670. 1087.05 s [really-safe-money-gen] then Nothing
  7671. 1087.05 s [really-safe-money-gen] else Just result,
  7672. 1087.05 s [really-safe-money-gen] actualRate
  7673. 1087.05 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
  7674. 1087.05 s [really-safe-money-gen] @@ -759,7 +759,7 @@
  7675. 1087.05 s [really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
  7676. 1087.05 s [really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
  7677. 1087.05 s [really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
  7678. 1087.05 s [really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
  7679. 1087.05 s [really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar - qf1r / qf2r))
  7680. 1087.05 s [really-safe-money-gen]
  7681. 1087.05 s [really-safe-money-gen] -- | Format an amount of money without a symbol.
  7682. 1087.05 s [really-safe-money-gen] --
  7683. 1087.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  7684. 1087.05 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7685. 1087.05 s [really-safe-money-gen]
  7686. 1087.05 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7687. 1087.05 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7688. 1087.05 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7689. 1087.05 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  7690. 1087.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  7691. 1087.05 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7692. 1087.05 s [really-safe-money-gen]
  7693. 1087.05 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7694. 1087.05 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7695. 1087.06 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7696. 1087.06 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  7697. 1087.06 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
  7698. 1087.06 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  7699. 1087.06 s [really-safe-money-gen]
  7700. 1087.06 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7701. 1087.06 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  7702. 1087.06 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  7703. 1087.06 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  7704. 1087.06 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  7705. 1087.06 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7706. 1087.06 s [really-safe-money-gen] case ad of
  7707. 1087.06 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7708. 1087.06 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7709. 1087.06 s [really-safe-money-gen] - a1 > a2
  7710. 1087.06 s [really-safe-money-gen] + a1 <= a2
  7711. 1087.06 s [really-safe-money-gen] _ -> valid
  7712. 1087.06 s [really-safe-money-gen] ]
  7713. 1087.06 s [really-safe-money-gen]
  7714. 1087.06 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  7715. 1087.06 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7716. 1087.06 s [really-safe-money-gen] case ad of
  7717. 1087.06 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7718. 1087.06 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7719. 1087.06 s [really-safe-money-gen] - a1 > a2
  7720. 1087.06 s [really-safe-money-gen] + a1 < a2
  7721. 1087.06 s [really-safe-money-gen] _ -> valid
  7722. 1087.06 s [really-safe-money-gen] ]
  7723. 1087.06 s [really-safe-money-gen]
  7724. 1087.06 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  7725. 1087.06 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7726. 1087.06 s [really-safe-money-gen] maxBoundN :: Natural
  7727. 1087.06 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7728. 1087.06 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7729. 1087.06 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7730. 1087.06 s [really-safe-money-gen] + in ( if roundedResult < maxBoundN
  7731. 1087.06 s [really-safe-money-gen] then Nothing
  7732. 1087.06 s [really-safe-money-gen] else Just result,
  7733. 1087.06 s [really-safe-money-gen] actualRate
  7734. 1087.06 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:607:15-22
  7735. 1087.06 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7736. 1087.06 s [really-safe-money-gen] case ad of
  7737. 1087.06 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7738. 1087.06 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7739. 1087.06 s [really-safe-money-gen] - a1 > a2
  7740. 1087.06 s [really-safe-money-gen] + a1 >= a2
  7741. 1087.06 s [really-safe-money-gen] _ -> valid
  7742. 1087.06 s [really-safe-money-gen] ]
  7743. 1087.06 s [really-safe-money-gen]
  7744. 1087.07 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
  7745. 1087.07 s [really-safe-money-gen] @@ -663,7 +663,7 @@
  7746. 1087.07 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7747. 1087.07 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7748. 1087.07 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7749. 1087.07 s [really-safe-money-gen] - theoreticalResult = amountAsRatio * f
  7750. 1087.07 s [really-safe-money-gen] + theoreticalResult = amountAsRatio + f
  7751. 1087.07 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7752. 1087.07 s [really-safe-money-gen] rounder = case r of
  7753. 1087.07 s [really-safe-money-gen] RoundUp -> ceiling
  7754. 1087.07 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:666:27-44
  7755. 1087.07 s [really-safe-money-gen] @@ -663,7 +663,7 @@
  7756. 1087.07 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  7757. 1087.07 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  7758. 1087.07 s [really-safe-money-gen] theoreticalResult :: Ratio Natural
  7759. 1087.07 s [really-safe-money-gen] - theoreticalResult = amountAsRatio * f
  7760. 1087.07 s [really-safe-money-gen] + theoreticalResult = amountAsRatio - f
  7761. 1087.07 s [really-safe-money-gen] rounder :: Ratio Natural -> Natural
  7762. 1087.07 s [really-safe-money-gen] rounder = case r of
  7763. 1087.07 s [really-safe-money-gen] RoundUp -> ceiling
  7764. 1087.07 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  7765. 1087.07 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  7766. 1087.07 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  7767. 1087.07 s [really-safe-money-gen] validate ad =
  7768. 1087.07 s [really-safe-money-gen] mconcat
  7769. 1087.07 s [really-safe-money-gen] - [ genericValidate ad,
  7770. 1087.07 s [really-safe-money-gen] case ad of
  7771. 1087.07 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7772. 1087.07 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7773. 1087.07 s [really-safe-money-gen] a1 > a2
  7774. 1087.07 s [really-safe-money-gen] _ -> valid
  7775. 1087.07 s [really-safe-money-gen] ]
  7776. 1087.07 s [really-safe-money-gen]
  7777. 1087.07 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7778. 1087.07 s [really-safe-money-gen]
  7779. 1087.07 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:681:12-37
  7780. 1087.07 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  7781. 1087.07 s [really-safe-money-gen] maxBoundN :: Natural
  7782. 1087.07 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7783. 1087.07 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  7784. 1087.07 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  7785. 1087.07 s [really-safe-money-gen] + in ( if roundedResult <= maxBoundN
  7786. 1087.07 s [really-safe-money-gen] then Nothing
  7787. 1087.07 s [really-safe-money-gen] else Just result,
  7788. 1087.07 s [really-safe-money-gen] actualRate
  7789. 1091.79 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  7790. 1091.79 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7791. 1091.79 s [really-safe-money-gen] maxBoundN :: Natural
  7792. 1091.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7793. 1091.79 s [really-safe-money-gen] actualResult =
  7794. 1091.79 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7795. 1091.79 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  7796. 1091.79 s [really-safe-money-gen] then Nothing
  7797. 1091.79 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7798. 1091.79 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7799. 1091.79 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  7800. 1091.79 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7801. 1091.79 s [really-safe-money-gen] maxBoundN :: Natural
  7802. 1091.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7803. 1091.79 s [really-safe-money-gen] actualResult =
  7804. 1091.79 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7805. 1091.80 s [really-safe-money-gen] + if True
  7806. 1091.80 s [really-safe-money-gen] then Nothing
  7807. 1091.80 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7808. 1091.80 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7809. 1091.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  7810. 1091.80 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7811. 1091.80 s [really-safe-money-gen] maxBoundN :: Natural
  7812. 1091.80 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7813. 1091.80 s [really-safe-money-gen] actualResult =
  7814. 1091.80 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7815. 1091.80 s [really-safe-money-gen] + if False
  7816. 1091.80 s [really-safe-money-gen] then Nothing
  7817. 1091.80 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7818. 1091.80 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7819. 1091.80 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  7820. 1091.80 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7821. 1091.80 s [really-safe-money-gen] maxBoundN :: Natural
  7822. 1091.80 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7823. 1091.80 s [really-safe-money-gen] actualResult =
  7824. 1091.80 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7825. 1091.80 s [really-safe-money-gen] + if roundedResult < maxBoundN
  7826. 1091.80 s [really-safe-money-gen] then Nothing
  7827. 1091.80 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7828. 1091.80 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7829. 1091.80 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
  7830. 1091.80 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7831. 1091.80 s [really-safe-money-gen] maxBoundN :: Natural
  7832. 1091.80 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7833. 1091.80 s [really-safe-money-gen] actualResult =
  7834. 1091.80 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7835. 1091.80 s [really-safe-money-gen] + if not (roundedResult > maxBoundN)
  7836. 1091.80 s [really-safe-money-gen] then Nothing
  7837. 1091.81 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7838. 1091.81 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7839. 1091.81 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7840. 1091.81 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7841. 1091.81 s [really-safe-money-gen] fmap
  7842. 1091.81 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7843. 1091.81 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7844. 1091.81 s [really-safe-money-gen] rounder = case r of
  7845. 1091.81 s [really-safe-money-gen] RoundUp -> ceiling
  7846. 1091.81 s [really-safe-money-gen] - RoundDown -> floor
  7847. 1091.81 s [really-safe-money-gen] RoundNearest -> round
  7848. 1091.81 s [really-safe-money-gen] roundedResult :: Natural
  7849. 1091.81 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7850. 1091.81 s [really-safe-money-gen] maxBoundN :: Natural
  7851. 1091.81 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
  7852. 1091.81 s [really-safe-money-gen] @@ -167,7 +167,7 @@
  7853. 1091.81 s [really-safe-money-gen] actualResult =
  7854. 1091.81 s [really-safe-money-gen] if roundedResult > maxBoundN
  7855. 1091.81 s [really-safe-money-gen] then Nothing
  7856. 1091.81 s [really-safe-money-gen] - else Just (fromIntegral roundedResult)
  7857. 1091.81 s [really-safe-money-gen] + else Nothing
  7858. 1091.81 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7859. 1091.81 s [really-safe-money-gen] LT -> RoundedDown
  7860. 1091.81 s [really-safe-money-gen] EQ -> DidNotRound
  7861. 1091.81 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  7862. 1091.81 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  7863. 1091.81 s [really-safe-money-gen] if roundedResult > maxBoundN
  7864. 1091.81 s [really-safe-money-gen] then Nothing
  7865. 1091.81 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7866. 1091.81 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7867. 1091.81 s [really-safe-money-gen] - LT -> RoundedDown
  7868. 1091.81 s [really-safe-money-gen] EQ -> DidNotRound
  7869. 1091.81 s [really-safe-money-gen] GT -> RoundedUp
  7870. 1091.81 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  7871. 1091.81 s [really-safe-money-gen] )
  7872. 1091.81 s [really-safe-money-gen] . Prelude.sum
  7873. 1091.81 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  7874. 1091.81 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  7875. 1091.81 s [really-safe-money-gen] if roundedResult > maxBoundN
  7876. 1091.81 s [really-safe-money-gen] then Nothing
  7877. 1091.81 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7878. 1091.81 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7879. 1091.81 s [really-safe-money-gen] LT -> RoundedDown
  7880. 1091.81 s [really-safe-money-gen] - EQ -> DidNotRound
  7881. 1091.81 s [really-safe-money-gen] GT -> RoundedUp
  7882. 1091.81 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  7883. 1091.81 s [really-safe-money-gen] )
  7884. 1091.81 s [really-safe-money-gen] . Prelude.sum
  7885. 1091.81 s [really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
  7886. 1091.81 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  7887. 1091.81 s [really-safe-money-gen] maxBoundN :: Natural
  7888. 1091.81 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  7889. 1091.81 s [really-safe-money-gen] actualResult =
  7890. 1091.81 s [really-safe-money-gen] - if roundedResult > maxBoundN
  7891. 1091.81 s [really-safe-money-gen] + if roundedResult <= maxBoundN
  7892. 1091.81 s [really-safe-money-gen] then Nothing
  7893. 1091.81 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7894. 1091.81 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7895. 1091.81 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
  7896. 1091.81 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7897. 1091.81 s [really-safe-money-gen] case ad of
  7898. 1091.81 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7899. 1091.81 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7900. 1091.82 s [really-safe-money-gen] - a1 > a2
  7901. 1091.82 s [really-safe-money-gen] + not (a1 > a2)
  7902. 1091.82 s [really-safe-money-gen] _ -> valid
  7903. 1091.82 s [really-safe-money-gen] ]
  7904. 1091.82 s [really-safe-money-gen]
  7905. 1091.82 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
  7906. 1091.82 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  7907. 1091.82 s [really-safe-money-gen] validate ad =
  7908. 1091.82 s [really-safe-money-gen] mconcat
  7909. 1091.82 s [really-safe-money-gen] [ genericValidate ad,
  7910. 1091.82 s [really-safe-money-gen] case ad of
  7911. 1091.82 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  7912. 1091.82 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  7913. 1091.82 s [really-safe-money-gen] - a1 > a2
  7914. 1091.82 s [really-safe-money-gen] _ -> valid
  7915. 1091.82 s [really-safe-money-gen] ]
  7916. 1091.82 s [really-safe-money-gen]
  7917. 1091.82 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7918. 1091.82 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
  7919. 1091.82 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  7920. 1091.82 s [really-safe-money-gen] . traverse
  7921. 1091.82 s [really-safe-money-gen] ( \(currency, a) ->
  7922. 1091.82 s [really-safe-money-gen] ( \(cr, qf2) ->
  7923. 1091.82 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  7924. 1091.82 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) + ConversionRate.conversionFactor qf2 cr qf1
  7925. 1091.82 s [really-safe-money-gen] )
  7926. 1091.82 s [really-safe-money-gen] <$> func currency
  7927. 1091.82 s [really-safe-money-gen] )
  7928. 1091.82 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
  7929. 1091.82 s [really-safe-money-gen] @@ -168,10 +168,9 @@
  7930. 1091.82 s [really-safe-money-gen] if roundedResult > maxBoundN
  7931. 1091.82 s [really-safe-money-gen] then Nothing
  7932. 1091.82 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  7933. 1091.82 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  7934. 1091.82 s [really-safe-money-gen] LT -> RoundedDown
  7935. 1091.82 s [really-safe-money-gen] EQ -> DidNotRound
  7936. 1091.82 s [really-safe-money-gen] - GT -> RoundedUp
  7937. 1091.82 s [really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
  7938. 1091.82 s [really-safe-money-gen] )
  7939. 1091.82 s [really-safe-money-gen] . Prelude.sum
  7940. 1091.82 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  7941. 1091.82 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  7942. 1091.82 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  7943. 1091.82 s [really-safe-money-gen] validate ad =
  7944. 1091.82 s [really-safe-money-gen] mconcat
  7945. 1091.82 s [really-safe-money-gen] - [ genericValidate ad,
  7946. 1091.83 s [really-safe-money-gen] - case ad of
  7947. 1091.83 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  7948. 1091.83 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  7949. 1091.83 s [really-safe-money-gen] - a1 > a2
  7950. 1091.83 s [really-safe-money-gen] - _ -> valid
  7951. 1091.83 s [really-safe-money-gen] ]
  7952. 1091.83 s [really-safe-money-gen]
  7953. 1091.83 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  7954. 1091.83 s [really-safe-money-gen]
  7955. 1091.83 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  7956. 1091.83 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7957. 1091.83 s [really-safe-money-gen] case ad of
  7958. 1095.15 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7959. 1095.15 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7960. 1095.22 s [really-safe-money-gen] - a1 > a2
  7961. 1095.22 s [really-safe-money-gen] + False
  7962. 1095.22 s [really-safe-money-gen] _ -> valid
  7963. 1095.22 s [really-safe-money-gen] ]
  7964. 1095.22 s [really-safe-money-gen]
  7965. 1095.22 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  7966. 1095.22 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  7967. 1095.23 s [really-safe-money-gen] fmap
  7968. 1095.23 s [really-safe-money-gen] ( ( \theoreticalResult ->
  7969. 1095.23 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  7970. 1095.23 s [really-safe-money-gen] rounder = case r of
  7971. 1095.23 s [really-safe-money-gen] RoundUp -> ceiling
  7972. 1095.23 s [really-safe-money-gen] RoundDown -> floor
  7973. 1095.23 s [really-safe-money-gen] - RoundNearest -> round
  7974. 1095.23 s [really-safe-money-gen] roundedResult :: Natural
  7975. 1095.23 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  7976. 1095.23 s [really-safe-money-gen] maxBoundN :: Natural
  7977. 1095.23 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  7978. 1095.23 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  7979. 1095.23 s [really-safe-money-gen] case ad of
  7980. 1095.23 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  7981. 1095.23 s [really-safe-money-gen] declare "The larger chunks are larger" $
  7982. 1095.23 s [really-safe-money-gen] - a1 > a2
  7983. 1095.23 s [really-safe-money-gen] + True
  7984. 1095.23 s [really-safe-money-gen] _ -> valid
  7985. 1095.23 s [really-safe-money-gen] ]
  7986. 1095.23 s [really-safe-money-gen]
  7987. 1095.23 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  7988. 1095.23 s [really-safe-money-gen] @@ -111,14 +111,13 @@
  7989. 1095.23 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  7990. 1095.23 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  7991. 1095.23 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  7992. 1095.23 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  7993. 1095.23 s [really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
  7994. 1095.23 s [really-safe-money-gen] Just a -> do
  7995. 1095.23 s [really-safe-money-gen] r <- Amount.subtract a amount
  7996. 1095.23 s [really-safe-money-gen] Just $
  7997. 1095.23 s [really-safe-money-gen] if r == Amount.zero
  7998. 1095.23 s [really-safe-money-gen] then M.delete currency m
  7999. 1095.23 s [really-safe-money-gen] else M.insert currency r m
  8000. 1095.23 s [really-safe-money-gen]
  8001. 1095.23 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  8002. 1095.23 s [really-safe-money-gen] --
  8003. 1095.23 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
  8004. 1095.23 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8005. 1095.23 s [really-safe-money-gen] Just a -> do
  8006. 1095.23 s [really-safe-money-gen] r <- Amount.subtract a amount
  8007. 1095.23 s [really-safe-money-gen] Just $
  8008. 1095.23 s [really-safe-money-gen] - if r == Amount.zero
  8009. 1095.23 s [really-safe-money-gen] + if not (r == Amount.zero)
  8010. 1095.23 s [really-safe-money-gen] then M.delete currency m
  8011. 1095.23 s [really-safe-money-gen] else M.insert currency r m
  8012. 1095.23 s [really-safe-money-gen]
  8013. 1095.24 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  8014. 1095.24 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8015. 1095.24 s [really-safe-money-gen] Just a -> do
  8016. 1095.24 s [really-safe-money-gen] r <- Amount.subtract a amount
  8017. 1095.24 s [really-safe-money-gen] Just $
  8018. 1095.24 s [really-safe-money-gen] - if r == Amount.zero
  8019. 1095.24 s [really-safe-money-gen] + if False
  8020. 1095.24 s [really-safe-money-gen] then M.delete currency m
  8021. 1095.24 s [really-safe-money-gen] else M.insert currency r m
  8022. 1095.24 s [really-safe-money-gen]
  8023. 1095.24 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  8024. 1095.24 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  8025. 1095.24 s [really-safe-money-gen] Just a -> do
  8026. 1095.24 s [really-safe-money-gen] r <- Amount.subtract a amount
  8027. 1095.24 s [really-safe-money-gen] Just $
  8028. 1095.24 s [really-safe-money-gen] - if r == Amount.zero
  8029. 1095.24 s [really-safe-money-gen] + if True
  8030. 1095.24 s [really-safe-money-gen] then M.delete currency m
  8031. 1095.24 s [really-safe-money-gen] else M.insert currency r m
  8032. 1095.24 s [really-safe-money-gen]
  8033. 1095.24 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
  8034. 1095.24 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  8035. 1095.24 s [really-safe-money-gen]
  8036. 1095.24 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8037. 1095.24 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8038. 1095.24 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  8039. 1095.24 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  8040. 1095.24 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  8041. 1095.24 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8042. 1095.24 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  8043. 1095.24 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
  8044. 1095.24 s [really-safe-money-gen] @@ -111,14 +111,8 @@
  8045. 1095.24 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8046. 1095.24 s [really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
  8047. 1095.24 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  8048. 1095.24 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8049. 1095.24 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  8050. 1095.24 s [really-safe-money-gen] - Just a -> do
  8051. 1095.24 s [really-safe-money-gen] - r <- Amount.subtract a amount
  8052. 1095.24 s [really-safe-money-gen] - Just $
  8053. 1095.24 s [really-safe-money-gen] - if r == Amount.zero
  8054. 1095.24 s [really-safe-money-gen] - then M.delete currency m
  8055. 1095.24 s [really-safe-money-gen] - else M.insert currency r m
  8056. 1095.24 s [really-safe-money-gen]
  8057. 1095.24 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  8058. 1095.24 s [really-safe-money-gen] --
  8059. 1095.24 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
  8060. 1095.24 s [really-safe-money-gen] @@ -96,7 +96,7 @@
  8061. 1095.24 s [really-safe-money-gen]
  8062. 1095.24 s [really-safe-money-gen] -- | Add an 'Amount' to a 'MultiAmount'
  8063. 1095.24 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8064. 1095.24 s [really-safe-money-gen] -addAmount m _ (Amount 0) = Just m
  8065. 1095.24 s [really-safe-money-gen] +addAmount m _ (Amount 0) = Nothing
  8066. 1095.24 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  8067. 1095.24 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8068. 1095.24 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  8069. 1095.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  8070. 1095.25 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  8071. 1095.25 s [really-safe-money-gen] Just a -> do
  8072. 1095.25 s [really-safe-money-gen] r <- Amount.add a amount
  8073. 1095.25 s [really-safe-money-gen] Just $
  8074. 1095.25 s [really-safe-money-gen] - if r == Amount.zero
  8075. 1095.25 s [really-safe-money-gen] + if True
  8076. 1095.25 s [really-safe-money-gen] then M.delete currency m
  8077. 1095.25 s [really-safe-money-gen] else M.insert currency r m
  8078. 1095.25 s [really-safe-money-gen]
  8079. 1095.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  8080. 1095.25 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  8081. 1095.25 s [really-safe-money-gen] Just a -> do
  8082. 1095.25 s [really-safe-money-gen] r <- Amount.add a amount
  8083. 1095.25 s [really-safe-money-gen] Just $
  8084. 1095.25 s [really-safe-money-gen] - if r == Amount.zero
  8085. 1095.25 s [really-safe-money-gen] + if False
  8086. 1095.25 s [really-safe-money-gen] then M.delete currency m
  8087. 1095.25 s [really-safe-money-gen] else M.insert currency r m
  8088. 1095.25 s [really-safe-money-gen]
  8089. 1095.25 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
  8090. 1095.25 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  8091. 1095.25 s [really-safe-money-gen] Just a -> do
  8092. 1095.25 s [really-safe-money-gen] r <- Amount.add a amount
  8093. 1095.25 s [really-safe-money-gen] Just $
  8094. 1095.25 s [really-safe-money-gen] - if r == Amount.zero
  8095. 1095.25 s [really-safe-money-gen] + if not (r == Amount.zero)
  8096. 1095.25 s [really-safe-money-gen] then M.delete currency m
  8097. 1095.25 s [really-safe-money-gen] else M.insert currency r m
  8098. 1095.25 s [really-safe-money-gen]
  8099. 1095.25 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  8100. 1095.25 s [really-safe-money-gen] @@ -98,14 +98,13 @@
  8101. 1095.25 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8102. 1095.25 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  8103. 1095.25 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  8104. 1095.25 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8105. 1095.25 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
  8106. 1095.25 s [really-safe-money-gen] Just a -> do
  8107. 1095.25 s [really-safe-money-gen] r <- Amount.add a amount
  8108. 1095.25 s [really-safe-money-gen] Just $
  8109. 1095.25 s [really-safe-money-gen] if r == Amount.zero
  8110. 1095.25 s [really-safe-money-gen] then M.delete currency m
  8111. 1095.25 s [really-safe-money-gen] else M.insert currency r m
  8112. 1095.25 s [really-safe-money-gen]
  8113. 1095.25 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8114. 1095.25 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8115. 1095.25 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
  8116. 1095.25 s [really-safe-money-gen] @@ -98,14 +98,8 @@
  8117. 1095.25 s [really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8118. 1095.26 s [really-safe-money-gen] addAmount m _ (Amount 0) = Just m
  8119. 1095.26 s [really-safe-money-gen] addAmount (MultiAmount m) currency amount =
  8120. 1095.26 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  8121. 1095.26 s [really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
  8122. 1095.26 s [really-safe-money-gen] - Just a -> do
  8123. 1095.26 s [really-safe-money-gen] - r <- Amount.add a amount
  8124. 1095.26 s [really-safe-money-gen] - Just $
  8125. 1095.26 s [really-safe-money-gen] - if r == Amount.zero
  8126. 1095.26 s [really-safe-money-gen] - then M.delete currency m
  8127. 1095.26 s [really-safe-money-gen] - else M.insert currency r m
  8128. 1095.26 s [really-safe-money-gen]
  8129. 1095.26 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  8130. 1095.26 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  8131. 1095.26 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
  8132. 1095.26 s [really-safe-money-gen] @@ -179,7 +179,7 @@
  8133. 1095.26 s [really-safe-money-gen] . traverse
  8134. 1095.26 s [really-safe-money-gen] ( \(currency, a) ->
  8135. 1095.26 s [really-safe-money-gen] ( \(cr, qf2) ->
  8136. 1095.26 s [really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
  8137. 1095.26 s [really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) - ConversionRate.conversionFactor qf2 cr qf1
  8138. 1095.26 s [really-safe-money-gen] )
  8139. 1095.26 s [really-safe-money-gen] <$> func currency
  8140. 1095.26 s [really-safe-money-gen] )
  8141. 1095.27 s [really-safe-money-gen] Testing mutation Arith at src/Money/Amount.hs:762:40-49
  8142. 1099.57 s [really-safe-money-gen] @@ -759,7 +759,7 @@
  8143. 1099.57 s [really-safe-money-gen] let qf1r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf1)
  8144. 1099.57 s [really-safe-money-gen] qf2r = Prelude.fromIntegral (QuantisationFactor.unQuantisationFactor qf2)
  8145. 1099.57 s [really-safe-money-gen] (ma, ar) = fraction rounding a (ConversionRate.conversionFactor qf1 cr qf2)
  8146. 1099.57 s [really-safe-money-gen] - in (ma, ConversionRate.fromRatio (ar * qf1r / qf2r))
  8147. 1099.57 s [really-safe-money-gen] + in (ma, ConversionRate.fromRatio (ar + qf1r / qf2r))
  8148. 1099.57 s [really-safe-money-gen]
  8149. 1099.57 s [really-safe-money-gen] -- | Format an amount of money without a symbol.
  8150. 1099.57 s [really-safe-money-gen] --
  8151. 1099.57 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  8152. 1099.58 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  8153. 1099.58 s [really-safe-money-gen]
  8154. 1099.58 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  8155. 1099.58 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  8156. 1099.58 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  8157. 1099.58 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount <= zero
  8158. 1099.58 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
  8159. 1099.58 s [really-safe-money-gen] @@ -156,10 +156,9 @@
  8160. 1099.58 s [really-safe-money-gen] fmap
  8161. 1099.58 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8162. 1099.58 s [really-safe-money-gen] let rounder :: Ratio Natural -> Natural
  8163. 1099.58 s [really-safe-money-gen] rounder = case r of
  8164. 1099.58 s [really-safe-money-gen] - RoundUp -> ceiling
  8165. 1099.58 s [really-safe-money-gen] RoundDown -> floor
  8166. 1099.58 s [really-safe-money-gen] RoundNearest -> round
  8167. 1099.58 s [really-safe-money-gen] roundedResult :: Natural
  8168. 1099.58 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8169. 1099.58 s [really-safe-money-gen] maxBoundN :: Natural
  8170. 1099.58 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/Amount.hs:683:16-27
  8171. 1099.58 s [really-safe-money-gen] @@ -680,7 +680,7 @@
  8172. 1099.58 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8173. 1099.58 s [really-safe-money-gen] in ( if roundedResult > maxBoundN
  8174. 1099.58 s [really-safe-money-gen] then Nothing
  8175. 1099.58 s [really-safe-money-gen] - else Just result,
  8176. 1099.58 s [really-safe-money-gen] + else Nothing,
  8177. 1099.58 s [really-safe-money-gen] actualRate
  8178. 1099.58 s [really-safe-money-gen] )
  8179. 1099.58 s [really-safe-money-gen]
  8180. 1099.58 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  8181. 1099.58 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  8182. 1099.58 s [really-safe-money-gen] maxBoundN :: Natural
  8183. 1099.58 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8184. 1099.58 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8185. 1099.58 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  8186. 1099.58 s [really-safe-money-gen] + in ( if True
  8187. 1099.58 s [really-safe-money-gen] then Nothing
  8188. 1099.58 s [really-safe-money-gen] else Just result,
  8189. 1099.58 s [really-safe-money-gen] actualRate
  8190. 1099.58 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  8191. 1099.58 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  8192. 1099.58 s [really-safe-money-gen]
  8193. 1099.59 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  8194. 1099.59 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  8195. 1099.59 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  8196. 1099.59 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount >= zero
  8197. 1099.59 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount.hs:806:79-92
  8198. 1099.59 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  8199. 1099.59 s [really-safe-money-gen]
  8200. 1099.59 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  8201. 1099.59 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  8202. 1099.59 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  8203. 1099.59 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount < zero
  8204. 1099.59 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  8205. 1099.59 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  8206. 1099.59 s [really-safe-money-gen] maxBoundN :: Natural
  8207. 1099.59 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8208. 1099.59 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8209. 1099.59 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  8210. 1099.59 s [really-safe-money-gen] + in ( if False
  8211. 1099.59 s [really-safe-money-gen] then Nothing
  8212. 1099.59 s [really-safe-money-gen] else Just result,
  8213. 1099.59 s [really-safe-money-gen] actualRate
  8214. 1099.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
  8215. 1099.59 s [really-safe-money-gen] @@ -601,11 +601,10 @@
  8216. 1099.59 s [really-safe-money-gen] validate ad =
  8217. 1099.59 s [really-safe-money-gen] mconcat
  8218. 1099.59 s [really-safe-money-gen] [ genericValidate ad,
  8219. 1099.59 s [really-safe-money-gen] case ad of
  8220. 1099.59 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  8221. 1099.59 s [really-safe-money-gen] declare "The larger chunks are larger" $
  8222. 1099.59 s [really-safe-money-gen] a1 > a2
  8223. 1099.59 s [really-safe-money-gen] - _ -> valid
  8224. 1099.59 s [really-safe-money-gen] ]
  8225. 1099.59 s [really-safe-money-gen]
  8226. 1099.59 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  8227. 1099.59 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8228. 1099.59 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8229. 1099.59 s [really-safe-money-gen]
  8230. 1099.59 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8231. 1099.59 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8232. 1099.59 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8233. 1099.59 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8234. 1099.59 s [really-safe-money-gen] - DistributedZero -> DistributedZero
  8235. 1099.59 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8236. 1099.59 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8237. 1099.59 s [really-safe-money-gen]
  8238. 1099.59 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8239. 1099.59 s [really-safe-money-gen]
  8240. 1099.59 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  8241. 1099.59 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  8242. 1099.60 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  8243. 1099.60 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  8244. 1099.60 s [really-safe-money-gen] mconcat
  8245. 1099.60 s [really-safe-money-gen] - [ genericValidate ma,
  8246. 1099.60 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  8247. 1099.60 s [really-safe-money-gen] - declare "The amount is not zero" $
  8248. 1099.60 s [really-safe-money-gen] - a /= Amount.zero
  8249. 1099.60 s [really-safe-money-gen] ]
  8250. 1099.60 s [really-safe-money-gen]
  8251. 1099.60 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8252. 1099.60 s [really-safe-money-gen]
  8253. 1099.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  8254. 1099.60 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  8255. 1099.60 s [really-safe-money-gen] fmap
  8256. 1099.60 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8257. 1099.60 s [really-safe-money-gen] let rounder :: Rational -> Integer
  8258. 1099.60 s [really-safe-money-gen] rounder = case r of
  8259. 1099.60 s [really-safe-money-gen] RoundUp -> ceiling
  8260. 1099.60 s [really-safe-money-gen] - RoundDown -> floor
  8261. 1099.60 s [really-safe-money-gen] RoundNearest -> round
  8262. 1099.60 s [really-safe-money-gen] roundedResult :: Integer
  8263. 1099.60 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8264. 1099.60 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8265. 1099.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  8266. 1099.60 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  8267. 1099.60 s [really-safe-money-gen] fmap
  8268. 1099.60 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8269. 1099.60 s [really-safe-money-gen] let rounder :: Rational -> Integer
  8270. 1099.60 s [really-safe-money-gen] rounder = case r of
  8271. 1099.60 s [really-safe-money-gen] RoundUp -> ceiling
  8272. 1099.60 s [really-safe-money-gen] RoundDown -> floor
  8273. 1099.60 s [really-safe-money-gen] - RoundNearest -> round
  8274. 1099.60 s [really-safe-money-gen] roundedResult :: Integer
  8275. 1099.60 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8276. 1099.60 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8277. 1099.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  8278. 1099.60 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  8279. 1099.60 s [really-safe-money-gen] RoundNearest -> round
  8280. 1099.60 s [really-safe-money-gen] roundedResult :: Integer
  8281. 1099.60 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8282. 1099.60 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8283. 1099.60 s [really-safe-money-gen] LT -> RoundedDown
  8284. 1099.60 s [really-safe-money-gen] - EQ -> DidNotRound
  8285. 1099.60 s [really-safe-money-gen] GT -> RoundedUp
  8286. 1099.60 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  8287. 1099.60 s [really-safe-money-gen] )
  8288. 1099.60 s [really-safe-money-gen] . Prelude.sum
  8289. 1099.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  8290. 1099.60 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  8291. 1099.60 s [really-safe-money-gen] RoundNearest -> round
  8292. 1099.60 s [really-safe-money-gen] roundedResult :: Integer
  8293. 1099.60 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8294. 1099.60 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8295. 1099.60 s [really-safe-money-gen] LT -> RoundedDown
  8296. 1099.60 s [really-safe-money-gen] EQ -> DidNotRound
  8297. 1099.60 s [really-safe-money-gen] - GT -> RoundedUp
  8298. 1099.60 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  8299. 1099.60 s [really-safe-money-gen] )
  8300. 1099.60 s [really-safe-money-gen] . Prelude.sum
  8301. 1099.60 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
  8302. 1099.60 s [really-safe-money-gen] @@ -177,10 +177,9 @@
  8303. 1099.60 s [really-safe-money-gen] RoundNearest -> round
  8304. 1099.60 s [really-safe-money-gen] roundedResult :: Integer
  8305. 1099.60 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8306. 1099.60 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8307. 1099.60 s [really-safe-money-gen] - LT -> RoundedDown
  8308. 1099.60 s [really-safe-money-gen] EQ -> DidNotRound
  8309. 1099.60 s [really-safe-money-gen] GT -> RoundedUp
  8310. 1099.60 s [really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
  8311. 1099.61 s [really-safe-money-gen] )
  8312. 1099.61 s [really-safe-money-gen] . Prelude.sum
  8313. 1099.61 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
  8314. 1099.61 s [really-safe-money-gen] @@ -171,10 +171,9 @@
  8315. 1099.61 s [really-safe-money-gen] fmap
  8316. 1099.61 s [really-safe-money-gen] ( ( \theoreticalResult ->
  8317. 1104.71 s [really-safe-money-gen] let rounder :: Rational -> Integer
  8318. 1104.73 s [really-safe-money-gen] rounder = case r of
  8319. 1104.73 s [really-safe-money-gen] - RoundUp -> ceiling
  8320. 1104.73 s [really-safe-money-gen] RoundDown -> floor
  8321. 1104.73 s [really-safe-money-gen] RoundNearest -> round
  8322. 1104.73 s [really-safe-money-gen] roundedResult :: Integer
  8323. 1104.73 s [really-safe-money-gen] roundedResult = rounder theoreticalResult
  8324. 1104.73 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  8325. 1104.73 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:126:45-51
  8326. 1104.73 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  8327. 1104.73 s [really-safe-money-gen]
  8328. 1104.73 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8329. 1104.74 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8330. 1104.74 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  8331. 1104.74 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  8332. 1104.74 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  8333. 1104.74 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8334. 1104.74 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8335. 1104.74 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8336. 1104.74 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8337. 1104.74 s [really-safe-money-gen]
  8338. 1104.74 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8339. 1104.74 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8340. 1104.74 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8341. 1104.74 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8342. 1104.74 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8343. 1104.74 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8344. 1104.74 s [really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8345. 1104.74 s [really-safe-money-gen]
  8346. 1104.74 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8347. 1104.74 s [really-safe-money-gen]
  8348. 1104.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  8349. 1104.74 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8350. 1104.74 s [really-safe-money-gen] [ genericValidate ma,
  8351. 1104.74 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8352. 1104.74 s [really-safe-money-gen] declare "The amount is not zero" $
  8353. 1104.74 s [really-safe-money-gen] - a /= Amount.zero
  8354. 1104.74 s [really-safe-money-gen] + False
  8355. 1104.74 s [really-safe-money-gen] ]
  8356. 1104.74 s [really-safe-money-gen]
  8357. 1104.74 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8358. 1104.74 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8359. 1104.74 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8360. 1104.74 s [really-safe-money-gen]
  8361. 1104.74 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8362. 1104.74 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8363. 1104.75 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8364. 1104.75 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8365. 1104.75 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8366. 1104.75 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8367. 1104.75 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8368. 1104.75 s [really-safe-money-gen]
  8369. 1104.75 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8370. 1104.75 s [really-safe-money-gen]
  8371. 1104.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  8372. 1104.75 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8373. 1104.75 s [really-safe-money-gen]
  8374. 1104.75 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8375. 1104.75 s [really-safe-money-gen] fromAmount currency amount =
  8376. 1104.75 s [really-safe-money-gen] - if amount == Amount.zero
  8377. 1104.75 s [really-safe-money-gen] + if False
  8378. 1104.75 s [really-safe-money-gen] then zero
  8379. 1104.75 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8380. 1104.75 s [really-safe-money-gen]
  8381. 1104.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  8382. 1104.75 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8383. 1104.75 s [really-safe-money-gen]
  8384. 1104.75 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8385. 1104.75 s [really-safe-money-gen] fromAmount currency amount =
  8386. 1104.75 s [really-safe-money-gen] - if amount == Amount.zero
  8387. 1104.75 s [really-safe-money-gen] + if True
  8388. 1104.75 s [really-safe-money-gen] then zero
  8389. 1104.75 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8390. 1104.75 s [really-safe-money-gen]
  8391. 1104.75 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:127:45-51
  8392. 1104.75 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  8393. 1104.75 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8394. 1104.75 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8395. 1104.75 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  8396. 1104.75 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  8397. 1104.75 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  8398. 1104.75 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8399. 1104.75 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8400. 1104.75 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  8401. 1104.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  8402. 1104.75 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  8403. 1104.76 s [really-safe-money-gen] Just a -> do
  8404. 1104.76 s [really-safe-money-gen] r <- Account.subtract a account
  8405. 1104.76 s [really-safe-money-gen] Just $
  8406. 1104.76 s [really-safe-money-gen] - if r == Account.zero
  8407. 1104.76 s [really-safe-money-gen] + if False
  8408. 1104.76 s [really-safe-money-gen] then M.delete currency m
  8409. 1104.76 s [really-safe-money-gen] else M.insert currency r m
  8410. 1104.76 s [really-safe-money-gen]
  8411. 1104.76 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
  8412. 1104.76 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  8413. 1104.76 s [really-safe-money-gen] Just a -> do
  8414. 1104.76 s [really-safe-money-gen] r <- Account.subtract a account
  8415. 1104.76 s [really-safe-money-gen] Just $
  8416. 1104.76 s [really-safe-money-gen] - if r == Account.zero
  8417. 1104.76 s [really-safe-money-gen] + if not (r == Account.zero)
  8418. 1104.76 s [really-safe-money-gen] then M.delete currency m
  8419. 1104.76 s [really-safe-money-gen] else M.insert currency r m
  8420. 1104.76 s [really-safe-money-gen]
  8421. 1104.76 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  8422. 1104.76 s [really-safe-money-gen] @@ -126,14 +126,8 @@
  8423. 1104.76 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  8424. 1104.76 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  8425. 1104.76 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8426. 1104.76 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8427. 1104.76 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  8428. 1104.76 s [really-safe-money-gen] - Just a -> do
  8429. 1104.76 s [really-safe-money-gen] - r <- Account.subtract a account
  8430. 1104.76 s [really-safe-money-gen] - Just $
  8431. 1104.76 s [really-safe-money-gen] - if r == Account.zero
  8432. 1104.76 s [really-safe-money-gen] - then M.delete currency m
  8433. 1104.76 s [really-safe-money-gen] - else M.insert currency r m
  8434. 1104.76 s [really-safe-money-gen]
  8435. 1104.76 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  8436. 1104.76 s [really-safe-money-gen] --
  8437. 1104.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  8438. 1104.76 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  8439. 1104.76 s [really-safe-money-gen] Just a -> do
  8440. 1104.76 s [really-safe-money-gen] r <- Account.subtract a account
  8441. 1104.76 s [really-safe-money-gen] Just $
  8442. 1104.76 s [really-safe-money-gen] - if r == Account.zero
  8443. 1104.76 s [really-safe-money-gen] + if True
  8444. 1104.76 s [really-safe-money-gen] then M.delete currency m
  8445. 1104.76 s [really-safe-money-gen] else M.insert currency r m
  8446. 1104.76 s [really-safe-money-gen]
  8447. 1104.76 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:113:40-46
  8448. 1104.76 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  8449. 1104.76 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8450. 1104.76 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8451. 1104.76 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  8452. 1104.76 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  8453. 1104.76 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  8454. 1104.76 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8455. 1104.76 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8456. 1104.76 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  8457. 1104.76 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
  8458. 1104.76 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  8459. 1104.76 s [really-safe-money-gen] ( \(currency, a) ->
  8460. 1104.76 s [really-safe-money-gen] ( \(cr, qf2) ->
  8461. 1104.76 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  8462. 1104.76 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  8463. 1104.76 s [really-safe-money-gen] - * toInteger (numerator factor)
  8464. 1104.77 s [really-safe-money-gen] + + toInteger (numerator factor)
  8465. 1104.77 s [really-safe-money-gen] % toInteger (denominator factor)
  8466. 1104.77 s [really-safe-money-gen] )
  8467. 1104.77 s [really-safe-money-gen] <$> func currency
  8468. 1104.77 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
  8469. 1104.77 s [really-safe-money-gen] @@ -126,14 +126,13 @@
  8470. 1104.77 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  8471. 1104.77 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  8472. 1104.77 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  8473. 1104.77 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8474. 1104.77 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
  8475. 1104.77 s [really-safe-money-gen] Just a -> do
  8476. 1104.77 s [really-safe-money-gen] r <- Account.subtract a account
  8477. 1104.77 s [really-safe-money-gen] Just $
  8478. 1104.77 s [really-safe-money-gen] if r == Account.zero
  8479. 1104.77 s [really-safe-money-gen] then M.delete currency m
  8480. 1104.77 s [really-safe-money-gen] else M.insert currency r m
  8481. 1104.77 s [really-safe-money-gen]
  8482. 1104.77 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  8483. 1104.77 s [really-safe-money-gen] --
  8484. 1104.77 s [really-safe-money-gen] Testing mutation Arith at src/Money/MultiAccount.hs:192:19-51
  8485. 1104.77 s [really-safe-money-gen] @@ -189,8 +189,8 @@
  8486. 1104.77 s [really-safe-money-gen] ( \(currency, a) ->
  8487. 1104.77 s [really-safe-money-gen] ( \(cr, qf2) ->
  8488. 1107.98 s [really-safe-money-gen] let factor = ConversionRate.conversionFactor qf2 cr qf1
  8489. 1107.98 s [really-safe-money-gen] in Account.toMinimalQuantisations a
  8490. 1107.98 s [really-safe-money-gen] - * toInteger (numerator factor)
  8491. 1107.98 s [really-safe-money-gen] + - toInteger (numerator factor)
  8492. 1107.98 s [really-safe-money-gen] % toInteger (denominator factor)
  8493. 1107.98 s [really-safe-money-gen] )
  8494. 1107.98 s [really-safe-money-gen] <$> func currency
  8495. 1107.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  8496. 1107.99 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  8497. 1107.99 s [really-safe-money-gen]
  8498. 1107.99 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  8499. 1107.99 s [really-safe-money-gen] fromAccount currency amount =
  8500. 1107.99 s [really-safe-money-gen] - if amount == Account.zero
  8501. 1107.99 s [really-safe-money-gen] + if True
  8502. 1107.99 s [really-safe-money-gen] then zero
  8503. 1107.99 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  8504. 1107.99 s [really-safe-money-gen]
  8505. 1107.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  8506. 1107.99 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  8507. 1107.99 s [really-safe-money-gen]
  8508. 1107.99 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  8509. 1107.99 s [really-safe-money-gen] fromAccount currency amount =
  8510. 1107.99 s [really-safe-money-gen] - if amount == Account.zero
  8511. 1107.99 s [really-safe-money-gen] + if False
  8512. 1107.99 s [really-safe-money-gen] then zero
  8513. 1107.99 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  8514. 1107.99 s [really-safe-money-gen]
  8515. 1107.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  8516. 1107.99 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  8517. 1107.99 s [really-safe-money-gen] [ genericValidate ma,
  8518. 1107.99 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8519. 1107.99 s [really-safe-money-gen] declare "The account is not zero" $
  8520. 1107.99 s [really-safe-money-gen] - a /= Account.zero
  8521. 1107.99 s [really-safe-money-gen] + True
  8522. 1107.99 s [really-safe-money-gen] ]
  8523. 1107.99 s [really-safe-money-gen]
  8524. 1107.99 s [really-safe-money-gen] -- TODO no empty currencies
  8525. 1107.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  8526. 1107.99 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  8527. 1107.99 s [really-safe-money-gen] [ genericValidate ma,
  8528. 1107.99 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8529. 1107.99 s [really-safe-money-gen] declare "The account is not zero" $
  8530. 1107.99 s [really-safe-money-gen] - a /= Account.zero
  8531. 1107.99 s [really-safe-money-gen] + False
  8532. 1107.99 s [really-safe-money-gen] ]
  8533. 1107.99 s [really-safe-money-gen]
  8534. 1107.99 s [really-safe-money-gen] -- TODO no empty currencies
  8535. 1107.99 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
  8536. 1107.99 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  8537. 1107.99 s [really-safe-money-gen] [ genericValidate ma,
  8538. 1107.99 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8539. 1107.99 s [really-safe-money-gen] declare "The account is not zero" $
  8540. 1107.99 s [really-safe-money-gen] - a /= Account.zero
  8541. 1108.00 s [really-safe-money-gen] + not (a /= Account.zero)
  8542. 1108.00 s [really-safe-money-gen] ]
  8543. 1108.00 s [really-safe-money-gen]
  8544. 1108.00 s [really-safe-money-gen] -- TODO no empty currencies
  8545. 1108.00 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
  8546. 1108.00 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  8547. 1108.00 s [really-safe-money-gen]
  8548. 1108.00 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  8549. 1108.00 s [really-safe-money-gen] fromAccount currency amount =
  8550. 1108.00 s [really-safe-money-gen] - if amount == Account.zero
  8551. 1108.00 s [really-safe-money-gen] + if not (amount == Account.zero)
  8552. 1108.00 s [really-safe-money-gen] then zero
  8553. 1108.00 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  8554. 1108.00 s [really-safe-money-gen]
  8555. 1108.00 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  8556. 1108.00 s [really-safe-money-gen] @@ -112,14 +112,8 @@
  8557. 1108.00 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  8558. 1108.00 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  8559. 1108.00 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8560. 1108.00 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8561. 1108.00 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  8562. 1108.00 s [really-safe-money-gen] - Just a -> do
  8563. 1108.00 s [really-safe-money-gen] - r <- Account.add a account
  8564. 1108.00 s [really-safe-money-gen] - Just $
  8565. 1108.00 s [really-safe-money-gen] - if r == Account.zero
  8566. 1108.00 s [really-safe-money-gen] - then M.delete currency m
  8567. 1108.00 s [really-safe-money-gen] - else M.insert currency r m
  8568. 1108.00 s [really-safe-money-gen]
  8569. 1108.00 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8570. 1108.00 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8571. 1108.00 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
  8572. 1108.00 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  8573. 1108.00 s [really-safe-money-gen] Just a -> do
  8574. 1108.00 s [really-safe-money-gen] r <- Account.add a account
  8575. 1108.00 s [really-safe-money-gen] Just $
  8576. 1108.00 s [really-safe-money-gen] - if r == Account.zero
  8577. 1108.00 s [really-safe-money-gen] + if not (r == Account.zero)
  8578. 1108.00 s [really-safe-money-gen] then M.delete currency m
  8579. 1108.00 s [really-safe-money-gen] else M.insert currency r m
  8580. 1108.00 s [really-safe-money-gen]
  8581. 1108.00 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
  8582. 1108.00 s [really-safe-money-gen] @@ -112,14 +112,13 @@
  8583. 1108.00 s [really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
  8584. 1108.00 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  8585. 1108.00 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8586. 1108.00 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8587. 1108.00 s [really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
  8588. 1108.00 s [really-safe-money-gen] Just a -> do
  8589. 1108.00 s [really-safe-money-gen] r <- Account.add a account
  8590. 1108.00 s [really-safe-money-gen] Just $
  8591. 1108.00 s [really-safe-money-gen] if r == Account.zero
  8592. 1108.00 s [really-safe-money-gen] then M.delete currency m
  8593. 1108.00 s [really-safe-money-gen] else M.insert currency r m
  8594. 1108.00 s [really-safe-money-gen]
  8595. 1108.00 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8596. 1108.00 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8597. 1108.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  8598. 1108.00 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  8599. 1108.00 s [really-safe-money-gen] Just a -> do
  8600. 1108.00 s [really-safe-money-gen] r <- Account.add a account
  8601. 1108.00 s [really-safe-money-gen] Just $
  8602. 1108.00 s [really-safe-money-gen] - if r == Account.zero
  8603. 1108.00 s [really-safe-money-gen] + if False
  8604. 1108.00 s [really-safe-money-gen] then M.delete currency m
  8605. 1108.01 s [really-safe-money-gen] else M.insert currency r m
  8606. 1108.01 s [really-safe-money-gen]
  8607. 1108.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  8608. 1108.01 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  8609. 1108.01 s [really-safe-money-gen] Just a -> do
  8610. 1108.01 s [really-safe-money-gen] r <- Account.add a account
  8611. 1108.01 s [really-safe-money-gen] Just $
  8612. 1108.01 s [really-safe-money-gen] - if r == Account.zero
  8613. 1108.01 s [really-safe-money-gen] + if True
  8614. 1108.01 s [really-safe-money-gen] then M.delete currency m
  8615. 1108.01 s [really-safe-money-gen] else M.insert currency r m
  8616. 1108.01 s [really-safe-money-gen]
  8617. 1108.01 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
  8618. 1108.01 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  8619. 1108.01 s [really-safe-money-gen]
  8620. 1108.01 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  8621. 1108.01 s [really-safe-money-gen] fromAmount currency amount =
  8622. 1108.01 s [really-safe-money-gen] - if amount == Amount.zero
  8623. 1108.01 s [really-safe-money-gen] + if not (amount == Amount.zero)
  8624. 1108.01 s [really-safe-money-gen] then zero
  8625. 1108.01 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  8626. 1108.01 s [really-safe-money-gen]
  8627. 1108.01 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  8628. 1108.01 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  8629. 1108.01 s [really-safe-money-gen] codec
  8630. 1108.01 s [really-safe-money-gen] <?> "QuantisationFactor"
  8631. 1108.01 s [really-safe-money-gen] where
  8632. 1108.01 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  8633. 1108.01 s [really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  8634. 1108.01 s [really-safe-money-gen] Just qf -> Right qf
  8635. 1108.01 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8636. 1108.01 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  8637. 1108.01 s [really-safe-money-gen] where
  8638. 1108.01 s [really-safe-money-gen] f :: String -> Either String Amount
  8639. 1108.01 s [really-safe-money-gen] f s = case readMaybe s of
  8640. 1108.01 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8641. 1108.01 s [really-safe-money-gen] Just i ->
  8642. 1108.01 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8643. 1108.01 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8644. 1108.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  8645. 1108.01 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8646. 1108.01 s [really-safe-money-gen] f s = case readMaybe s of
  8647. 1108.01 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8648. 1108.01 s [really-safe-money-gen] Just i ->
  8649. 1108.01 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8650. 1108.01 s [really-safe-money-gen] + if True
  8651. 1108.01 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8652. 1108.01 s [really-safe-money-gen] else
  8653. 1108.01 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8654. 1108.01 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8655. 1108.01 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8656. 1108.01 s [really-safe-money-gen] f s = case readMaybe s of
  8657. 1108.01 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8658. 1108.01 s [really-safe-money-gen] Just i ->
  8659. 1108.01 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8660. 1108.01 s [really-safe-money-gen] + if (i :: Integer) > toInteger (minBound :: Word64)
  8661. 1108.01 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8662. 1108.01 s [really-safe-money-gen] else
  8663. 1108.01 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8664. 1108.01 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  8665. 1108.01 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8666. 1108.01 s [really-safe-money-gen] f s = case readMaybe s of
  8667. 1108.01 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8668. 1108.32 s [really-safe-money-gen] Just i ->
  8669. 1108.32 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8670. 1108.32 s [really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  8671. 1108.32 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8672. 1108.32 s [really-safe-money-gen] else
  8673. 1108.32 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8674. 1108.32 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8675. 1108.32 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  8676. 1108.32 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8677. 1108.33 s [really-safe-money-gen] Just i ->
  8678. 1108.33 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8679. 1108.33 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8680. 1108.33 s [really-safe-money-gen] else
  8681. 1108.33 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8682. 1108.33 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8683. 1108.33 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8684. 1108.33 s [really-safe-money-gen] @@ -44,7 +44,6 @@
  8685. 1108.33 s [really-safe-money-gen] where
  8686. 1108.33 s [really-safe-money-gen] f :: String -> Either String Amount
  8687. 1108.33 s [really-safe-money-gen] f s = case readMaybe s of
  8688. 1108.33 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8689. 1108.33 s [really-safe-money-gen] Just i ->
  8690. 1108.33 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8691. 1108.33 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8692. 1108.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  8693. 1108.33 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8694. 1108.33 s [really-safe-money-gen] f s = case readMaybe s of
  8695. 1108.33 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8696. 1108.33 s [really-safe-money-gen] Just i ->
  8697. 1108.33 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8698. 1108.33 s [really-safe-money-gen] + if False
  8699. 1108.33 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8700. 1108.33 s [really-safe-money-gen] else
  8701. 1108.33 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8702. 1108.33 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
  8703. 1108.33 s [really-safe-money-gen] @@ -38,6 +38,5 @@
  8704. 1108.33 s [really-safe-money-gen] codec
  8705. 1108.33 s [really-safe-money-gen] <?> "QuantisationFactor"
  8706. 1108.33 s [really-safe-money-gen] where
  8707. 1108.33 s [really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
  8708. 1108.33 s [really-safe-money-gen] Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
  8709. 1108.33 s [really-safe-money-gen] - Just qf -> Right qf
  8710. 1108.34 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8711. 1108.34 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8712. 1108.34 s [really-safe-money-gen] f s = case readMaybe s of
  8713. 1108.34 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8714. 1108.34 s [really-safe-money-gen] Just i ->
  8715. 1108.34 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8716. 1108.34 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (minBound :: Word64)
  8717. 1108.34 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8718. 1108.34 s [really-safe-money-gen] else
  8719. 1108.34 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8720. 1108.34 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
  8721. 1108.34 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  8722. 1108.34 s [really-safe-money-gen] f s = case readMaybe s of
  8723. 1108.34 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8724. 1108.34 s [really-safe-money-gen] Just i ->
  8725. 1108.34 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8726. 1108.34 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (minBound :: Word64)
  8727. 1108.34 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8728. 1108.34 s [really-safe-money-gen] else
  8729. 1108.34 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8730. 1108.34 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  8731. 1108.34 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  8732. 1108.34 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  8733. 1108.34 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  8734. 1108.34 s [really-safe-money-gen] mconcat
  8735. 1108.34 s [really-safe-money-gen] - [ genericValidate ma,
  8736. 1108.34 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8737. 1108.34 s [really-safe-money-gen] declare "The account is not zero" $
  8738. 1108.34 s [really-safe-money-gen] a /= Account.zero
  8739. 1108.34 s [really-safe-money-gen] ]
  8740. 1108.34 s [really-safe-money-gen]
  8741. 1108.34 s [really-safe-money-gen] -- TODO no empty currencies
  8742. 1108.34 s [really-safe-money-gen]
  8743. 1108.34 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  8744. 1108.34 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  8745. 1108.34 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  8746. 1108.34 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  8747. 1108.34 s [really-safe-money-gen] mconcat
  8748. 1108.34 s [really-safe-money-gen] - [ genericValidate ma,
  8749. 1108.34 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  8750. 1108.34 s [really-safe-money-gen] - declare "The account is not zero" $
  8751. 1108.34 s [really-safe-money-gen] - a /= Account.zero
  8752. 1108.35 s [really-safe-money-gen] ]
  8753. 1108.35 s [really-safe-money-gen]
  8754. 1108.35 s [really-safe-money-gen] -- TODO no empty currencies
  8755. 1108.35 s [really-safe-money-gen]
  8756. 1108.35 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8757. 1108.35 s [really-safe-money-gen] @@ -47,7 +47,6 @@
  8758. 1108.35 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8759. 1108.35 s [really-safe-money-gen] Just i ->
  8760. 1108.35 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8761. 1108.35 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8762. 1108.35 s [really-safe-money-gen] else
  8763. 1108.35 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8764. 1108.35 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8765. 1108.35 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8766. 1108.35 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8767. 1108.35 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8768. 1108.35 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8769. 1108.35 s [really-safe-money-gen] else
  8770. 1108.35 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8771. 1108.35 s [really-safe-money-gen] + if (i :: Integer) < toInteger (maxBound :: Word64)
  8772. 1108.35 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8773. 1108.35 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8774. 1108.35 s [really-safe-money-gen] g :: Amount -> String
  8775. 1108.35 s [really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAccount.hs:112:40-46
  8776. 1108.35 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  8777. 1108.35 s [really-safe-money-gen]
  8778. 1108.35 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  8779. 1108.35 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  8780. 1108.35 s [really-safe-money-gen] -addAccount m _ (Positive (Amount 0)) = Just m
  8781. 1108.35 s [really-safe-money-gen] +addAccount m _ (Positive (Amount 0)) = Nothing
  8782. 1108.35 s [really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
  8783. 1108.35 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  8784. 1108.35 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  8785. 1108.35 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  8786. 1108.35 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8787. 1108.35 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8788. 1108.35 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8789. 1108.35 s [really-safe-money-gen] else
  8790. 1108.35 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8791. 1108.35 s [really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  8792. 1108.35 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8793. 1108.35 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8794. 1108.35 s [really-safe-money-gen] g :: Amount -> String
  8795. 1108.35 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  8796. 1108.35 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  8797. 1108.35 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  8798. 1108.35 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  8799. 1108.35 s [really-safe-money-gen] mconcat
  8800. 1108.35 s [really-safe-money-gen] - [ genericValidate ma,
  8801. 1108.35 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8802. 1108.35 s [really-safe-money-gen] declare "The amount is not zero" $
  8803. 1108.35 s [really-safe-money-gen] a /= Amount.zero
  8804. 1108.35 s [really-safe-money-gen] ]
  8805. 1108.35 s [really-safe-money-gen]
  8806. 1108.35 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8807. 1108.35 s [really-safe-money-gen]
  8808. 1108.35 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8809. 1108.35 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8810. 1108.35 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8811. 1108.35 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8812. 1108.35 s [really-safe-money-gen] else
  8813. 1108.36 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8814. 1108.36 s [really-safe-money-gen] + if False
  8815. 1108.36 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8816. 1108.36 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8817. 1108.36 s [really-safe-money-gen] g :: Amount -> String
  8818. 1108.36 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
  8819. 1108.36 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8820. 1108.36 s [really-safe-money-gen] [ genericValidate ma,
  8821. 1108.36 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8822. 1108.36 s [really-safe-money-gen] declare "The amount is not zero" $
  8823. 1108.36 s [really-safe-money-gen] - a /= Amount.zero
  8824. 1109.95 s [really-safe-money-gen] + not (a /= Amount.zero)
  8825. 1110.04 s [really-safe-money-gen] ]
  8826. 1110.04 s [really-safe-money-gen]
  8827. 1110.04 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8828. 1110.05 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  8829. 1110.05 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  8830. 1110.05 s [really-safe-money-gen] [ genericValidate ma,
  8831. 1110.05 s [really-safe-money-gen] decorateMap m $ \_ a ->
  8832. 1110.05 s [really-safe-money-gen] declare "The amount is not zero" $
  8833. 1110.05 s [really-safe-money-gen] - a /= Amount.zero
  8834. 1110.05 s [really-safe-money-gen] + True
  8835. 1110.05 s [really-safe-money-gen] ]
  8836. 1110.05 s [really-safe-money-gen]
  8837. 1110.05 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  8838. 1110.05 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
  8839. 1110.05 s [really-safe-money-gen] @@ -212,11 +212,10 @@
  8840. 1110.05 s [really-safe-money-gen]
  8841. 1110.05 s [really-safe-money-gen] -- | See 'Amount.distribute'
  8842. 1110.05 s [really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
  8843. 1110.05 s [really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
  8844. 1110.05 s [really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  8845. 1110.05 s [really-safe-money-gen] DistributedZero -> DistributedZero
  8846. 1110.05 s [really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
  8847. 1110.05 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
  8848. 1110.05 s [really-safe-money-gen]
  8849. 1110.05 s [really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
  8850. 1110.05 s [really-safe-money-gen]
  8851. 1110.05 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  8852. 1110.05 s [really-safe-money-gen] @@ -43,15 +43,14 @@
  8853. 1110.05 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  8854. 1110.05 s [really-safe-money-gen] where
  8855. 1110.06 s [really-safe-money-gen] f :: String -> Either String Amount
  8856. 1110.06 s [really-safe-money-gen] f s = case readMaybe s of
  8857. 1110.06 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8858. 1110.06 s [really-safe-money-gen] Just i ->
  8859. 1110.06 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8860. 1110.06 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8861. 1110.06 s [really-safe-money-gen] else
  8862. 1110.06 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8863. 1110.06 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8864. 1110.06 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8865. 1110.06 s [really-safe-money-gen] g :: Amount -> String
  8866. 1110.06 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8867. 1110.06 s [really-safe-money-gen]
  8868. 1110.06 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  8869. 1110.06 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  8870. 1110.06 s [really-safe-money-gen] <?> "Account"
  8871. 1110.06 s [really-safe-money-gen] where
  8872. 1110.06 s [really-safe-money-gen] f :: Integer -> Either String Account
  8873. 1110.06 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  8874. 1110.06 s [really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
  8875. 1110.06 s [really-safe-money-gen] Just a -> Right a
  8876. 1110.06 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
  8877. 1110.06 s [really-safe-money-gen] @@ -76,6 +76,5 @@
  8878. 1110.06 s [really-safe-money-gen] <?> "Account"
  8879. 1110.06 s [really-safe-money-gen] where
  8880. 1110.06 s [really-safe-money-gen] f :: Integer -> Either String Account
  8881. 1110.06 s [really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
  8882. 1110.06 s [really-safe-money-gen] Nothing -> Left $ "Number did not fit into an account value: " <> show i
  8883. 1110.06 s [really-safe-money-gen] - Just a -> Right a
  8884. 1110.06 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  8885. 1110.06 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  8886. 1110.06 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8887. 1110.06 s [really-safe-money-gen] else
  8888. 1110.06 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8889. 1110.06 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8890. 1110.07 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8891. 1110.07 s [really-safe-money-gen] g :: Amount -> String
  8892. 1110.07 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8893. 1110.07 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8894. 1110.07 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  8895. 1110.07 s [really-safe-money-gen] where
  8896. 1110.07 s [really-safe-money-gen] f :: String -> Either String Account
  8897. 1110.07 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8898. 1110.07 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8899. 1110.07 s [really-safe-money-gen] Just a -> Right a
  8900. 1110.07 s [really-safe-money-gen] g :: Account -> String
  8901. 1110.07 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8902. 1110.07 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
  8903. 1110.07 s [really-safe-money-gen] @@ -43,15 +43,8 @@
  8904. 1110.07 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
  8905. 1110.07 s [really-safe-money-gen] where
  8906. 1110.07 s [really-safe-money-gen] f :: String -> Either String Amount
  8907. 1110.07 s [really-safe-money-gen] f s = case readMaybe s of
  8908. 1110.07 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8909. 1110.07 s [really-safe-money-gen] - Just i ->
  8910. 1110.07 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  8911. 1110.07 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8912. 1110.07 s [really-safe-money-gen] - else
  8913. 1110.07 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8914. 1110.07 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8915. 1110.07 s [really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8916. 1110.07 s [really-safe-money-gen] g :: Amount -> String
  8917. 1110.07 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8918. 1110.07 s [really-safe-money-gen]
  8919. 1110.07 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  8920. 1110.07 s [really-safe-money-gen] @@ -50,7 +50,6 @@
  8921. 1110.07 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8922. 1110.07 s [really-safe-money-gen] else
  8923. 1110.08 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  8924. 1110.08 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8925. 1110.08 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8926. 1110.08 s [really-safe-money-gen] g :: Amount -> String
  8927. 1110.08 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  8928. 1110.08 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8929. 1110.08 s [really-safe-money-gen] @@ -48,7 +48,6 @@
  8930. 1110.08 s [really-safe-money-gen] where
  8931. 1110.08 s [really-safe-money-gen] f :: String -> Either String Account
  8932. 1110.08 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8933. 1110.08 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8934. 1110.08 s [really-safe-money-gen] Just a -> Right a
  8935. 1110.08 s [really-safe-money-gen] g :: Account -> String
  8936. 1110.08 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8937. 1110.08 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  8938. 1110.08 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  8939. 1110.08 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  8940. 1110.08 s [really-safe-money-gen] where
  8941. 1110.08 s [really-safe-money-gen] f :: String -> Either String Account
  8942. 1110.08 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8943. 1110.08 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8944. 1110.08 s [really-safe-money-gen] - Just a -> Right a
  8945. 1110.08 s [really-safe-money-gen] g :: Account -> String
  8946. 1110.08 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8947. 1110.08 s [really-safe-money-gen]
  8948. 1110.08 s [really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
  8949. 1110.08 s [really-safe-money-gen] @@ -47,9 +47,8 @@
  8950. 1110.08 s [really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
  8951. 1110.08 s [really-safe-money-gen] where
  8952. 1110.08 s [really-safe-money-gen] f :: String -> Either String Account
  8953. 1110.08 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8954. 1110.08 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8955. 1110.08 s [really-safe-money-gen] Just a -> Right a
  8956. 1110.08 s [really-safe-money-gen] g :: Account -> String
  8957. 1110.08 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  8958. 1110.08 s [really-safe-money-gen]
  8959. 1110.08 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  8960. 1110.08 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  8961. 1110.08 s [really-safe-money-gen] where
  8962. 1110.08 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8963. 1110.08 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8964. 1110.08 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8965. 1110.08 s [really-safe-money-gen] Just a -> Right a
  8966. 1110.08 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  8967. 1110.08 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  8968. 1110.09 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  8969. 1110.09 s [really-safe-money-gen] where
  8970. 1110.09 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8971. 1110.09 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8972. 1110.09 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8973. 1110.09 s [really-safe-money-gen] Just a -> Right a
  8974. 1110.09 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  8975. 1110.09 s [really-safe-money-gen] @@ -37,5 +37,4 @@
  8976. 1110.09 s [really-safe-money-gen] where
  8977. 1110.09 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  8978. 1110.09 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  8979. 1110.09 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  8980. 1110.09 s [really-safe-money-gen] Just a -> Right a
  8981. 1110.09 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  8982. 1110.09 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8983. 1110.09 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  8984. 1110.09 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8985. 1110.09 s [really-safe-money-gen] else
  8986. 1110.09 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8987. 1110.09 s [really-safe-money-gen] + if (i :: Integer) <= toInteger (maxBound :: Word64)
  8988. 1110.09 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8989. 1110.09 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8990. 1110.09 s [really-safe-money-gen] g :: Amount -> String
  8991. 1110.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8992. 1110.09 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  8993. 1129.02 s [really-safe-money-gen] if (i :: IntegerKilled: 427
  8994. 1129.02 s [really-safe-money-gen] (of which timed out: 0)
  8995. 1129.02 s [really-safe-money-gen] Survived: 57
  8996. 1129.04 s [really-safe-money-gen] Uncovered: 40
  8997. 1129.04 s [really-safe-money-gen]
  8998. 1129.04 s [really-safe-money-gen] Surviving mutations:
  8999. 1129.04 s [really-safe-money-gen]
  9000. 1129.04 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  9001. 1129.04 s [really-safe-money-gen] @@ -63,11 +63,10 @@
  9002. 1129.04 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  9003. 1129.05 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  9004. 1129.05 s [really-safe-money-gen] mconcat
  9005. 1129.05 s [really-safe-money-gen] - [ genericValidate ma,
  9006. 1129.05 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9007. 1129.05 s [really-safe-money-gen] declare "The account is not zero" $
  9008. 1129.05 s [really-safe-money-gen] a /= Account.zero
  9009. 1129.05 s [really-safe-money-gen] ]
  9010. 1129.05 s [really-safe-money-gen]
  9011. 1129.05 s [really-safe-money-gen] -- TODO no empty currencies
  9012. 1129.05 s [really-safe-money-gen]
  9013. 1129.05 s [really-safe-money-gen]
  9014. 1129.05 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  9015. 1129.05 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  9016. 1129.05 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  9017. 1129.05 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  9018. 1129.05 s [really-safe-money-gen] mconcat
  9019. 1129.05 s [really-safe-money-gen] - [ genericValidate ma,
  9020. 1129.05 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  9021. 1129.05 s [really-safe-money-gen] - declare "The account is not zero" $
  9022. 1129.05 s [really-safe-money-gen] - a /= Account.zero
  9023. 1129.05 s [really-safe-money-gen] ]
  9024. 1129.05 s [really-safe-money-gen]
  9025. 1129.05 s [really-safe-money-gen] -- TODO no empty currencies
  9026. 1129.05 s [really-safe-money-gen]
  9027. 1129.05 s [really-safe-money-gen]
  9028. 1129.05 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
  9029. 1129.05 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  9030. 1129.05 s [really-safe-money-gen] [ genericValidate ma,
  9031. 1129.05 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9032. 1129.05 s [really-safe-money-gen] declare "The account is not zero" $
  9033. 1129.05 s [really-safe-money-gen] - a /= Account.zero
  9034. 1129.05 s [really-safe-money-gen] + True
  9035. 1129.05 s [really-safe-money-gen] ]
  9036. 1129.05 s [really-safe-money-gen]
  9037. 1129.05 s [really-safe-money-gen] -- TODO no empty currencies
  9038. 1129.06 s [really-safe-money-gen]
  9039. 1129.06 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
  9040. 1129.06 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  9041. 1129.06 s [really-safe-money-gen]
  9042. 1129.06 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  9043. 1129.06 s [really-safe-money-gen] fromAccount currency amount =
  9044. 1129.06 s [really-safe-money-gen] - if amount == Account.zero
  9045. 1129.06 s [really-safe-money-gen] + if True
  9046. 1129.06 s [really-safe-money-gen] then zero
  9047. 1129.06 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  9048. 1129.06 s [really-safe-money-gen]
  9049. 1129.06 s [really-safe-money-gen]
  9050. 1129.06 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:113:40-46
  9051. 1129.06 s [really-safe-money-gen] @@ -110,7 +110,7 @@
  9052. 1129.06 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9053. 1129.06 s [really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9054. 1129.06 s [really-safe-money-gen] addAccount m _ (Posit) < toInteger (minBound :: Word64)
  9055. 1129.06 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9056. 1129.06 s [really-safe-money-gen] else
  9057. 1129.06 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9058. 1129.06 s [really-safe-money-gen] + if True
  9059. 1129.06 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9060. 1129.06 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9061. 1129.06 s [really-safe-money-gen] g :: Amount -> String
  9062. 1129.06 s [really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
  9063. 1129.06 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  9064. 1129.06 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  9065. 1129.06 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9066. 1129.06 s [really-safe-money-gen] else
  9067. 1129.06 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9068. 1129.06 s [really-safe-money-gen] + if (i :: Integer) >= toInteger (maxBound :: Word64)
  9069. 1129.06 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9070. 1129.06 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9071. 1129.06 s [really-safe-money-gen] g :: Amount -> String
  9072. 1129.06 s [really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
  9073. 1129.06 s [really-safe-money-gen] @@ -36,6 +36,5 @@
  9074. 1129.06 s [really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
  9075. 1129.06 s [really-safe-money-gen] where
  9076. 1129.06 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  9077. 1129.06 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  9078. 1129.06 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9079. 1129.06 s [really-safe-money-gen] - Just a -> Right a
  9080. 1129.06 s [really-safe-money-gen] ive (Amount 0)) = Just m
  9081. 1129.06 s [really-safe-money-gen] -addAccount m _ (Negative (Amount 0)) = Just m
  9082. 1129.06 s [really-safe-money-gen] +addAccount m _ (Negative (Amount 0)) = Nothing
  9083. 1129.06 s [really-safe-money-gen] addAccount (MultiAccount m) currency account =
  9084. 1129.06 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9085. 1129.06 s [really-safe-money-gen] Nothing -> Just $ M.insert currency account m
  9086. 1129.06 s [really-safe-money-gen]
  9087. 1129.06 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:127:45-51
  9088. 1129.06 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  9089. 1129.06 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9090. 1129.07 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9091. 1129.07 s [really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
  9092. 1129.07 s [really-safe-money-gen] -subtractAccount m _ (Negative (Amount 0)) = Just m
  9093. 1129.07 s [really-safe-money-gen] +subtractAccount m _ (Negative (Amount 0)) = Nothing
  9094. 1129.07 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  9095. 1129.07 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9096. 1129.07 s [really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
  9097. 1129.07 s [really-safe-money-gen]
  9098. 1129.07 s [really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:126:45-51
  9099. 1129.07 s [really-safe-money-gen] @@ -123,7 +123,7 @@
  9100. 1129.07 s [really-safe-money-gen]
  9101. 1129.07 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  9102. 1129.07 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  9103. 1129.07 s [really-safe-money-gen] -subtractAccount m _ (Positive (Amount 0)) = Just m
  9104. 1129.07 s [really-safe-money-gen] +subtractAccount m _ (Positive (Amount 0)) = Nothing
  9105. 1129.07 s [really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
  9106. 1129.07 s [really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
  9107. 1129.07 s [really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
  9108. 1129.07 s [really-safe-money-gen]
  9109. 1129.07 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  9110. 1129.07 s [really-safe-money-gen] @@ -60,11 +60,10 @@
  9111. 1129.07 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  9112. 1129.07 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  9113. 1129.07 s [really-safe-money-gen] mconcat
  9114. 1129.07 s [really-safe-money-gen] - [ genericValidate ma,
  9115. 1129.07 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9116. 1129.07 s [really-safe-money-gen] declare "The amount is not zero" $
  9117. 1129.07 s [really-safe-money-gen] a /= Amount.zero
  9118. 1129.07 s [really-safe-money-gen] ]
  9119. 1129.07 s [really-safe-money-gen]
  9120. 1129.07 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9121. 1129.07 s [really-safe-money-gen]
  9122. 1129.07 s [really-safe-money-gen]
  9123. 1129.07 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  9124. 1129.07 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  9125. 1129.07 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  9126. 1129.07 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  9127. 1129.07 s [really-safe-money-gen] mconcat
  9128. 1129.07 s [really-safe-money-gen] - [ genericValidate ma,
  9129. 1129.07 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  9130. 1129.07 s [really-safe-money-gen] - declare "The amount is not zero" $
  9131. 1129.07 s [really-safe-money-gen] - a /= Amount.zero
  9132. 1129.07 s [really-safe-money-gen] ]
  9133. 1129.07 s [really-safe-money-gen]
  9134. 1129.07 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9135. 1129.07 s [really-safe-money-gen]
  9136. 1129.07 s [really-safe-money-gen]
  9137. 1129.07 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
  9138. 1129.07 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  9139. 1129.07 s [really-safe-money-gen] [ genericValidate ma,
  9140. 1129.07 s [really-safe-money-gen] decorateMap m $ \_ a ->
  9141. 1129.07 s [really-safe-money-gen] declare "The amount is not zero" $
  9142. 1129.07 s [really-safe-money-gen] - a /= Amount.zero
  9143. 1129.07 s [really-safe-money-gen] + True
  9144. 1129.07 s [really-safe-money-gen] ]
  9145. 1129.07 s [really-safe-money-gen]
  9146. 1129.07 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  9147. 1129.07 s [really-safe-money-gen]
  9148. 1129.07 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
  9149. 1129.07 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  9150. 1129.07 s [really-safe-money-gen] Just a -> do
  9151. 1129.07 s [really-safe-money-gen] r <- Amount.add a amount
  9152. 1129.07 s [really-safe-money-gen] Just $
  9153. 1129.07 s [really-safe-money-gen] - if r == Amount.zero
  9154. 1129.07 s [really-safe-money-gen] + if False
  9155. 1129.08 s [really-safe-money-gen] then M.delete currency m
  9156. 1129.08 s [really-safe-money-gen] else M.insert currency r m
  9157. 1129.08 s [really-safe-money-gen]
  9158. 1129.08 s [really-safe-money-gen]
  9159. 1129.08 s [really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
  9160. 1129.08 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9161. 1129.08 s [really-safe-money-gen] Just a -> do
  9162. 1129.08 s [really-safe-money-gen] r <- Amount.subtract a amount
  9163. 1129.08 s [really-safe-money-gen] Just $
  9164. 1129.08 s [really-safe-money-gen] - if r == Amount.zero
  9165. 1129.08 s [really-safe-money-gen] + if not (r == Amount.zero)
  9166. 1129.08 s [really-safe-money-gen] then M.delete currency m
  9167. 1129.08 s [really-safe-money-gen] else M.insert currency r m
  9168. 1129.08 s [really-safe-money-gen]
  9169. 1129.08 s [really-safe-money-gen]
  9170. 1129.08 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  9171. 1129.08 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9172. 1129.08 s [really-safe-money-gen] Just a -> do
  9173. 1129.08 s [really-safe-money-gen] r <- Amount.subtract a amount
  9174. 1129.08 s [really-safe-money-gen] Just $
  9175. 1129.08 s [really-safe-money-gen] - if r == Amount.zero
  9176. 1129.08 s [really-safe-money-gen] + if False
  9177. 1129.08 s [really-safe-money-gen] then M.delete currency m
  9178. 1129.08 s [really-safe-money-gen] else M.insert currency r m
  9179. 1129.08 s [really-safe-money-gen]
  9180. 1129.08 s [really-safe-money-gen]
  9181. 1129.08 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  9182. 1129.08 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  9183. 1129.08 s [really-safe-money-gen] Just a -> do
  9184. 1129.08 s [really-safe-money-gen] r <- Amount.subtract a amount
  9185. 1129.08 s [really-safe-money-gen] Just $
  9186. 1129.08 s [really-safe-money-gen] - if r == Amount.zero
  9187. 1129.08 s [really-safe-money-gen] + if True
  9188. 1129.08 s [really-safe-money-gen] then M.delete currency m
  9189. 1129.08 s [really-safe-money-gen] else M.insert currency r m
  9190. 1129.08 s [really-safe-money-gen]
  9191. 1129.08 s [really-safe-money-gen]
  9192. 1129.08 s [really-safe-money-gen] MaybeOp at src/Money/MultiAmount.hs:112:33-39
  9193. 1129.08 s [really-safe-money-gen] @@ -109,7 +109,7 @@
  9194. 1129.08 s [really-safe-money-gen]
  9195. 1129.08 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  9196. 1129.08 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  9197. 1129.08 s [really-safe-money-gen] -subtractAmount m _ (Amount 0) = Just m
  9198. 1129.08 s [really-safe-money-gen] +subtractAmount m _ (Amount 0) = Nothing
  9199. 1129.08 s [really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
  9200. 1129.08 s [really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
  9201. 1129.08 s [really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
  9202. 1129.08 s [really-safe-money-gen]
  9203. 1129.08 s [really-safe-money-gen] Cmp at src/Money/MultiAmount.hs:168:20-45
  9204. 1129.08 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  9205. 1129.08 s [really-safe-money-gen] maxBoundN :: Natural
  9206. 1129.08 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  9207. 1129.08 s [really-safe-money-gen] actualResult =
  9208. 1129.08 s [really-safe-money-gen] - if roundedResult > maxBoundN
  9209. 1129.08 s [really-safe-money-gen] + if roundedResult >= maxBoundN
  9210. 1129.08 s [really-safe-money-gen] then Nothing
  9211. 1129.08 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  9212. 1129.08 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  9213. 1129.08 s [really-safe-money-gen]
  9214. 1129.08 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  9215. 1129.08 s [really-safe-money-gen] @@ -600,13 +600,12 @@
  9216. 1129.08 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9217. 1129.08 s [really-safe-money-gen] validate ad =
  9218. 1129.08 s [really-safe-money-gen] mconcat
  9219. 1129.08 s [really-safe-money-gen] - [ genericValidate ad,
  9220. 1129.08 s [really-safe-money-gen] case ad of
  9221. 1129.08 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9222. 1129.08 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9223. 1129.08 s [really-safe-money-gen] a1 > a2
  9224. 1129.08 s [really-safe-money-gen] _ -> valid
  9225. 1129.08 s [really-safe-money-gen] ]
  9226. 1129.08 s [really-safe-money-gen]
  9227. 1129.08 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9228. 1129.08 s [really-safe-money-gen]
  9229. 1129.08 s [really-safe-money-gen]
  9230. 1129.08 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  9231. 1129.08 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  9232. 1129.08 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9233. 1129.08 s [really-safe-money-gen] validate ad =
  9234. 1129.08 s [really-safe-money-gen] mconcat
  9235. 1129.08 s [really-safe-money-gen] - [ genericValidate ad,
  9236. 1129.08 s [really-safe-money-gen] - case ad of
  9237. 1129.08 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  9238. 1129.08 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  9239. 1129.09 s [really-safe-money-gen] - a1 > a2
  9240. 1129.09 s [really-safe-money-gen] - _ -> valid
  9241. 1129.09 s [really-safe-money-gen] ]
  9242. 1129.09 s [really-safe-money-gen]
  9243. 1129.09 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9244. 1129.09 s [really-safe-money-gen]
  9245. 1129.09 s [really-safe-money-gen]
  9246. 1129.09 s [really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21
  9247. 1129.09 s [really-safe-money-gen] @@ -601,11 +601,8 @@
  9248. 1129.09 s [really-safe-money-gen] validate ad =
  9249. 1129.09 s [really-safe-money-gen] mconcat
  9250. 1129.09 s [really-safe-money-gen] [ genericValidate ad,
  9251. 1129.09 s [really-safe-money-gen] case ad of
  9252. 1129.09 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  9253. 1129.09 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  9254. 1129.09 s [really-safe-money-gen] - a1 > a2
  9255. 1129.09 s [really-safe-money-gen] _ -> valid
  9256. 1129.09 s [really-safe-money-gen] ]
  9257. 1129.09 s [really-safe-money-gen]
  9258. 1129.09 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  9259. 1129.09 s [really-safe-money-gen]
  9260. 1129.09 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
  9261. 1129.09 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9262. 1129.09 s [really-safe-money-gen] case ad of
  9263. 1129.09 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9264. 1129.09 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9265. 1129.09 s [really-safe-money-gen] - a1 > a2
  9266. 1129.09 s [really-safe-money-gen] + True
  9267. 1129.09 s [really-safe-money-gen] _ -> valid
  9268. 1129.09 s [really-safe-money-gen] ]
  9269. 1129.09 s [really-safe-money-gen]
  9270. 1129.09 s [really-safe-money-gen]
  9271. 1129.09 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:607:15-22
  9272. 1129.09 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9273. 1129.09 s [really-safe-money-gen] case ad of
  9274. 1129.09 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9275. 1129.09 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9276. 1129.09 s [really-safe-money-gen] - a1 > a2
  9277. 1129.09 s [really-safe-money-gen] + a1 >= a2
  9278. 1129.09 s [really-safe-money-gen] _ -> valid
  9279. 1129.09 s [really-safe-money-gen] ]
  9280. 1129.09 s [really-safe-money-gen]
  9281. 1129.09 s [really-safe-money-gen]
  9282. 1129.09 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:661:19-28
  9283. 1129.09 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  9284. 1129.09 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  9285. 1129.09 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  9286. 1129.09 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  9287. 1129.09 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  9288. 1129.09 s [really-safe-money-gen] +fraction _ _ 0 = (Nothing, 0)
  9289. 1129.09 s [really-safe-money-gen] fraction r (Amount a) f =
  9290. 1129.09 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  9291. 1129.09 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  9292. 1129.09 s [really-safe-money-gen]
  9293. 1129.09 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:495:10-23
  9294. 1129.09 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  9295. 1129.09 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  9296. 1129.09 s [really-safe-money-gen] r :: Integer
  9297. 1129.09 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  9298. 1129.09 s [really-safe-money-gen] - in if r > maxBoundI
  9299. 1129.09 s [really-safe-money-gen] + in if r >= maxBoundI
  9300. 1129.09 s [really-safe-money-gen] then Nothing
  9301. 1129.09 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9302. 1129.10 s [really-safe-money-gen]
  9303. 1129.10 s [really-safe-money-gen]
  9304. 1129.10 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:341:26-91
  9305. 1129.10 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  9306. 1129.10 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  9307. 1129.10 s [really-safe-money-gen] in if ceiled == floored
  9308. 1129.10 s [really-safe-money-gen] then
  9309. 1129.10 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  9310. 1129.10 s [really-safe-money-gen] + if ceiled >= (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  9311. 1129.10 s [really-safe-money-gen] then Nothing
  9312. 1129.10 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  9313. 1129.10 s [really-safe-money-gen] else Nothing
  9314. 1129.10 s [really-safe-money-gen]
  9315. 1129.10 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
  9316. 1129.10 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9317. 1129.10 s [really-safe-money-gen] | otherwise =
  9318. 1129.10 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9319. 1129.10 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9320. 1129.10 s [really-safe-money-gen] - if exponent resultDouble > 65
  9321. 1129.10 s [really-safe-money-gen] + if False
  9322. 1129.10 s [really-safe-money-gen] then Nothing
  9323. 1129.10 s [really-safe-money-gen] else
  9324. 1129.10 s [really-safe-money-gen] let ceiled :: Natural
  9325. 1129.11 s [really-safe-money-gen]
  9326. 1129.11 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:332:14-40
  9327. 1129.11 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9328. 1129.11 s [really-safe-money-gen] | otherwise =
  9329. 1129.11 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9330. 1129.11 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9331. 1129.11 s [really-safe-money-gen] - if exponent resultDouble > 65
  9332. 1129.11 s [really-safe-money-gen] + if exponent resultDouble >= 65
  9333. 1129.11 s [really-safe-money-gen] then Nothing
  9334. 1129.11 s [really-safe-money-gen] else
  9335. 1129.11 s [really-safe-money-gen] let ceiled :: Natural
  9336. 1129.11 s [really-safe-money-gen]
  9337. 1129.11 s [really-safe-money-gen] MaybeOp at src/Money/Amount.hs:520:14-66
  9338. 1129.11 s [really-safe-money-gen] @@ -517,7 +517,7 @@
  9339. 1129.11 s [really-safe-money-gen] r = i1 - i2
  9340. 1129.11 s [really-safe-money-gen] in if r < 0
  9341. 1129.11 s [really-safe-money-gen] then Nothing
  9342. 1129.11 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9343. 1129.12 s [really-safe-money-gen] + else Nothing
  9344. 1129.12 s [really-safe-money-gen]
  9345. 1129.12 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  9346. 1129.12 s [really-safe-money-gen] --
  9347. 1129.12 s [really-safe-money-gen]
  9348. 1129.12 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
  9349. 1129.12 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9350. 1129.12 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9351. 1129.12 s [really-safe-money-gen] r :: Integer
  9352. 1129.12 s [really-safe-money-gen] r = i1 - i2
  9353. 1129.12 s [really-safe-money-gen] - in if r < 0
  9354. 1129.12 s [really-safe-money-gen] + in if True
  9355. 1129.12 s [really-safe-money-gen] then Nothing
  9356. 1129.12 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9357. 1129.12 s [really-safe-money-gen]
  9358. 1129.12 s [really-safe-money-gen]
  9359. 1129.12 s [really-safe-money-gen] Cmp at src/Money/Amount.hs:518:10-15
  9360. 1129.12 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9361. 1129.12 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9362. 1129.12 s [really-safe-money-gen] r :: Integer
  9363. 1129.12 s [really-safe-money-gen] r = i1 - i2
  9364. 1129.12 s [really-safe-money-gen] - in if r < 0
  9365. 1129.12 s [really-safe-money-gen] + in if r <= 0
  9366. 1129.12 s [really-safe-money-gen] then Nothing
  9367. 1129.12 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9368. 1129.12 s [really-safe-money-gen]
  9369. 1129.12 s [really-safe-money-gen]
  9370. 1129.12 s [really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
  9371. 1129.12 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  9372. 1129.12 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  9373. 1129.12 s [really-safe-money-gen] r :: Integer
  9374. 1129.13 s [really-safe-money-gen] r = i1 - i2
  9375. 1129.13 s [really-safe-money-gen] - in if r < 0
  9376. 1129.13 s [really-safe-money-gen] + in if r < 1
  9377. 1129.13 s [really-safe-money-gen] then Nothing
  9378. 1129.13 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9379. 1129.13 s [really-safe-money-gen]
  9380. 1129.13 s [really-safe-money-gen]
  9381. 1129.13 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  9382. 1129.13 s [really-safe-money-gen] @@ -36,9 +36,8 @@
  9383. 1129.13 s [really-safe-money-gen] instance Validity QuantisationFactor where
  9384. 1129.13 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9385. 1129.13 s [really-safe-money-gen] mconcat
  9386. 1129.13 s [really-safe-money-gen] - [ genericValidate qf,
  9387. 1129.13 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  9388. 1129.13 s [really-safe-money-gen] ]
  9389. 1129.13 s [really-safe-money-gen]
  9390. 1129.13 s [really-safe-money-gen] instance NFData QuantisationFactor
  9391. 1129.13 s [really-safe-money-gen]
  9392. 1129.13 s [really-safe-money-gen]
  9393. 1129.13 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  9394. 1129.13 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  9395. 1129.13 s [really-safe-money-gen] instance Validity QuantisationFactor where
  9396. 1129.13 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9397. 1129.13 s [really-safe-money-gen] mconcat
  9398. 1129.13 s [really-safe-money-gen] - [ genericValidate qf,
  9399. 1129.13 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9400. 1129.13 s [really-safe-money-gen] ]
  9401. 1129.13 s [really-safe-money-gen]
  9402. 1129.13 s [really-safe-money-gen] instance NFData QuantisationFactor
  9403. 1129.13 s [really-safe-money-gen]
  9404. 1129.13 s [really-safe-money-gen]
  9405. 1129.13 s [really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  9406. 1129.13 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  9407. 1129.14 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9408. 1129.14 s [really-safe-money-gen] mconcat
  9409. 1129.14 s [really-safe-money-gen] [ genericValidate qf,
  9410. 1129.14 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9411. 1129.14 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  9412. 1129.14 s [really-safe-money-gen] ]
  9413. 1129.14 s [really-safe-money-gen]
  9414. 1129.14 s [really-safe-money-gen] instance NFData QuantisationFactor
  9415. 1129.14 s [really-safe-money-gen]
  9416. 1129.14 s [really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
  9417. 1129.14 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  9418. 1129.14 s [really-safe-money-gen]
  9419. 1129.14 s [really-safe-money-gen] -- | One-to-one conversion rate
  9420. 1129.14 s [really-safe-money-gen] oneToOne :: ConversionRate
  9421. 1129.14 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  9422. 1129.14 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  9423. 1129.14 s [really-safe-money-gen]
  9424. 1129.14 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  9425. 1129.14 s [really-safe-money-gen] --
  9426. 1129.14 s [really-safe-money-gen]
  9427. 1129.14 s [really-safe-money-gen] Arith at src/Money/ConversionRate.hs:127:70-79
  9428. 1129.14 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  9429. 1129.14 s [really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
  9430. 1129.14 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
  9431. 1129.14 s [really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
  9432. 1129.14 s [really-safe-money-gen] -compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
  9433. 1129.14 s [really-safe-money-gen] +compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
  9434. 1129.14 s [really-safe-money-gen]
  9435. 1129.14 s [really-safe-money-gen] -- | The factor to multiply by when converting currencies.
  9436. 1129.14 s [really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
  9437. 1129.14 s [really-safe-money-gen]
  9438. 1129.14 s [really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115
  9439. 1129.14 s [really-safe-money-gen] @@ -177,11 +177,10 @@
  9440. 1129.14 s [really-safe-money-gen]
  9441. 1129.14 s [really-safe-money-gen] -- | See 'Account.distribute'
  9442. 1129.14 s [really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
  9443. 1129.15 s [really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
  9444. 1129.15 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  9445. 1129.15 s [really-safe-money-gen] DistributedZero -> DistributedZero
  9446. 1129.15 s [really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
  9447. 1129.15 s [really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
  9448. 1129.15 s [really-safe-money-gen]
  9449. 1129.15 s [really-safe-money-gen] -- | The result of 'distribute'
  9450. 1129.15 s [really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
  9451. 1129.15 s [really-safe-money-gen]
  9452. 1129.15 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
  9453. 1129.15 s [really-safe-money-gen] @@ -109,9 +109,8 @@
  9454. 1129.15 s [really-safe-money-gen]
  9455. 1129.15 s [really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
  9456. 1129.15 s [really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
  9457. 1129.15 s [really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
  9458. 1129.15 s [really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
  9459. 1129.15 s [really-safe-money-gen] - Just dl -> pure dl
  9460. 1129.15 s [really-safe-money-gen]
  9461. 1129.15 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  9462. 1129.15 s [really-safe-money-gen] decimalLiteralP = do
  9463. 1129.15 s [really-safe-money-gen]
  9464. 1129.15 s [really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
  9465. 1129.15 s [really-safe-money-gen] @@ -284,9 +284,8 @@
  9466. 1129.15 s [really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
  9467. 1129.15 s [really-safe-money-gen] -- Nothing
  9468. 1129.15 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  9469. 1129.15 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  9470. 1129.15 s [really-safe-money-gen] - Just False -> Nothing
  9471. 1129.15 s [really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
  9472. 1129.15 s [really-safe-money-gen]
  9473. 1129.15 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  9474. 1129.15 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  9475. 1129.15 s [really-safe-money-gen]
  9476. 1129.15 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  9477. 1129.15 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  9478. 1129.15 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  9479. 1129.15 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  9480. 1129.15 s [really-safe-money-gen] Just False -> Nothing
  9481. 1129.15 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  9482. 1129.15 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  9483. 1129.15 s [really-safe-money-gen]
  9484. 1129.15 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  9485. 1129.15 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  9486. 1129.15 s [really-safe-money-gen]
  9487. 1129.15 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
  9488. 1129.16 s [really-safe-money-gen] @@ -296,7 +296,6 @@
  9489. 1129.16 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  9490. 1129.16 s [really-safe-money-gen] toWord dl = do
  9491. 1129.16 s [really-safe-money-gen] n <- toNatural dl
  9492. 1129.16 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  9493. 1129.16 s [really-safe-money-gen] pure $ fromIntegral n
  9494. 1129.16 s [really-safe-money-gen]
  9495. 1129.16 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  9496. 1129.16 s [really-safe-money-gen]
  9497. 1129.16 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  9498. 1129.16 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  9499. 1129.16 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  9500. 1129.16 s [really-safe-money-gen] toWord dl = do
  9501. 1129.16 s [really-safe-money-gen] n <- toNatural dl
  9502. 1129.16 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  9503. 1129.16 s [really-safe-money-gen] + guard $ True
  9504. 1129.16 s [really-safe-money-gen] pure $ fromIntegral n
  9505. 1129.16 s [really-safe-money-gen]
  9506. 1129.16 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  9507. 1129.16 s [really-safe-money-gen]
  9508. 1129.16 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
  9509. 1129.16 s [really-safe-money-gen] @@ -329,7 +329,6 @@
  9510. 1129.16 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9511. 1129.16 s [really-safe-money-gen] toInt dl = do
  9512. 1129.16 s [really-safe-money-gen] n <- toInteger dl
  9513. 1129.16 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9514. 1129.16 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9515. 1129.16 s [really-safe-money-gen] pure $ fromIntegral n
  9516. 1129.16 s [really-safe-money-gen]
  9517. 1129.16 s [really-safe-money-gen]
  9518. 1129.16 s [really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
  9519. 1129.16 s [really-safe-money-gen] @@ -330,7 +330,6 @@
  9520. 1129.16 s [really-safe-money-gen] toInt dl = do
  9521. 1129.16 s [really-safe-money-gen] n <- toInteger dl
  9522. 1129.16 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  9523. 1129.16 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  9524. 1129.16 s [really-safe-money-gen] pure $ fromIntegral n
  9525. 1129.16 s [really-safe-money-gen]
  9526. 1129.16 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9527. 1129.16 s [really-safe-money-gen]
  9528. 1129.16 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  9529. 1129.16 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  9530. 1129.16 s [really-safe-money-gen] toInt dl = do
  9531. 1129.16 s [really-safe-money-gen] n <- toInteger dl
  9532. 1129.16 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  9533. 1129.16 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  9534. 1129.16 s [really-safe-money-gen] + guard $ True
  9535. 1129.16 s [really-safe-money-gen] pure $ fromIntegral n
  9536. 1129.17 s [really-safe-money-gen]
  9537. 1129.17 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9538. 1129.17 s [really-safe-money-gen]
  9539. 1129.17 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  9540. 1129.17 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9541. 1129.17 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9542. 1129.17 s [really-safe-money-gen] toInt dl = do
  9543. 1129.17 s [really-safe-money-gen] n <- toInteger dl
  9544. 1129.17 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9545. 1129.17 s [really-safe-money-gen] + guard $ True
  9546. 1129.17 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9547. 1129.17 s [really-safe-money-gen] pure $ fromIntegral n
  9548. 1129.17 s [really-safe-money-gen]
  9549. 1129.17 s [really-safe-money-gen]
  9550. 1129.17 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
  9551. 1129.17 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9552. 1129.17 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  9553. 1129.17 s [really-safe-money-gen] toInt dl = do
  9554. 1129.17 s [really-safe-money-gen] n <- toInteger dl
  9555. 1129.17 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  9556. 1129.17 s [really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
  9557. 1129.17 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  9558. 1129.17 s [really-safe-money-gen] pure $ fromIntegral n
  9559. 1129.17 s [really-safe-money-gen]
  9560. 1129.17 s [really-safe-money-gen]
  9561. 1129.17 s [really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
  9562. 1129.17 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  9563. 1129.17 s [really-safe-money-gen] pure $ fromIntegral n
  9564. 1129.17 s [really-safe-money-gen]
  9565. 1129.17 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9566. 1129.17 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  9567. 1129.17 s [really-safe-money-gen] +numSign a = if a > 0 then Nothing else Just False
  9568. 1129.17 s [really-safe-money-gen]
  9569. 1129.17 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  9570. 1129.17 s [really-safe-money-gen] signSignum = \case
  9571. 1129.17 s [really-safe-money-gen]
  9572. 1129.17 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  9573. 1129.17 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  9574. 1129.17 s [really-safe-money-gen] pure $ fromIntegral n
  9575. 1129.17 s [really-safe-money-gen]
  9576. 1129.17 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  9577. 1129.17 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  9578. 1129.17 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  9579. 1129.17 s [really-safe-money-gen]
  9580. 1129.18 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  9581. 1129.18 s [really-safe-money-gen] signSignum = \case
  9582. 1129.18 s [really-safe-money-gen]
  9583. 1129.18 s [really-safe-money-gen] Cmp at src/Money/Account.hs:131:20-26
  9584. 1129.18 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  9585. 1129.18 s [really-safe-money-gen] amount :: Amount
  9586. 1129.18 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  9587. 1129.18 s [really-safe-money-gen] in Just $
  9588. 1129.18 s [really-safe-money-gen] - if i >= 0
  9589. 1129.18 s [really-safe-money-gen] + if i > 0
  9590. 1129.18 s [really-safe-money-gen] then Positive amount
  9591. 1129.18 s [really-safe-money-gen] else Negative amount
  9592. 1129.18 s [really-safe-money-gen]
  9593. 1129.18 s [really-safe-money-gen]
  9594. 1129.18 s [really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
  9595. 1129.18 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  9596. 1129.18 s [really-safe-money-gen] amount :: Amount
  9597. 1129.18 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  9598. 1129.18 s [really-safe-money-gen] in Just $
  9599. 1129.18 s [really-safe-money-gen] - if i >= 0
  9600. 1129.18 s [really-safe-money-gen] + if i >= 1
  9601. 1129.18 s [really-safe-money-gen] then Positive amount
  9602. 1129.18 s [really-safe-money-gen] else Negative amount
  9603. 1129.18 s [really-safe-money-gen]
  9604. 1129.18 s [really-safe-money-gen]
  9605. 1129.18 s [really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
  9606. 1129.18 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  9607. 1129.18 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  9608. 1129.18 s [really-safe-money-gen] a :: Integer
  9609. 1129.18 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  9610. 1129.18 s [really-safe-money-gen] - in if a > maxBoundI
  9611. 1129.18 s [really-safe-money-gen] + in if False
  9612. 1129.18 s [really-safe-money-gen] then Nothing
  9613. 1129.18 s [really-safe-money-gen] else
  9614. 1129.18 s [really-safe-money-gen] let w :: Word64
  9615. 1129.18 s [really-safe-money-gen]
  9616. 1129.18 s [really-safe-money-gen] Cmp at src/Money/Account.hs:197:14-20
  9617. 1129.18 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  9618. 1129.18 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  9619. 1129.18 s [really-safe-money-gen] fromDouble quantisationFactor d =
  9620. 1129.18 s [really-safe-money-gen] let d' = Prelude.abs d
  9621. 1129.18 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  9622. 1129.18 s [really-safe-money-gen] + f = if d > 0 then Positive else Negative
  9623. 1129.18 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  9624. 1129.18 s [really-safe-money-gen]
  9625. 1129.18 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  9626. 1129.18 s [really-safe-money-gen]
  9627. 1129.18 s [really-safe-money-gen] Cmp at src/Money/Account.hs:503:10-16
  9628. 1129.18 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  9629. 1129.18 s [really-safe-money-gen] RoundNearest -> RoundNearest
  9630. 1129.18 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  9631. 1129.18 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  9632. 1129.18 s [really-safe-money-gen] - in if f >= 0
  9633. 1129.19 s [really-safe-money-gen] + in if f > 0
  9634. 1129.19 s [really-safe-money-gen] then (ma, r)
  9635. 1129.19 s [really-safe-money-gen] else (negate <$> ma, -r)
  9636. 1129.19 s [really-safe-money-gen]
  9637. 1129.19 s [really-safe-money-gen]
  9638. 1129.19 s [really-safe-money-gen] Cmp at src/Money/Account.hs:495:12-18
  9639. 1129.19 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  9640. 1129.19 s [really-safe-money-gen] fraction rounding account f =
  9641. 1129.19 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  9642. 1129.19 s [really-safe-money-gen] ro =
  9643. 1129.19 s [really-safe-money-gen] - if f >= 0
  9644. 1129.19 s [really-safe-money-gen] + if f > 0
  9645. 1129.19 s [really-safe-money-gen] then rounding
  9646. 1129.19 s [really-safe-money-gen] else case rounding of
  9647. 1129.19 s [really-safe-money-gen] RoundUp -> RoundDown
  9648. 1129.19 s [really-safe-money-gen]
  9649. 1129.19 s [really-safe-money-gen] MaybeOp at src/Money/Account.hs:523:16-25
  9650. 1129.19 s [really-safe-money-gen] @@ -520,7 +520,7 @@
  9651. 1129.19 s [really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
  9652. 1129.19 s [really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
  9653. 1129.19 s [really-safe-money-gen] func ma r = case compare account zero of
  9654. 1129.19 s [really-safe-money-gen] - EQ -> (Just zero, r)
  9655. 1129.19 s [really-safe-money-gen] + EQ -> (Nothing, r)
  9656. 1129.19 s [really-safe-money-gen] GT -> (Positive <$> ma, r)
  9657. 1129.19 s [really-safe-money-gen] LT -> (Negative <$> ma, r)
  9658. 1129.19 s [really-safe-money-gen] in func amount actualFraction
  9659. 1129.19 s [really-safe-money-gen]
  9660. 1129.19 s [really-safe-money-gen] Cmp at src/Money/Account.hs:455:14-23
  9661. 1129.19 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  9662. 1129.19 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  9663. 1129.19 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  9664. 1129.19 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  9665. 1129.19 s [really-safe-money-gen] - if a >= zero
  9666. 1129.19 s [really-safe-money-gen] + if a > zero
  9667. 1129.19 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  9668. 1129.19 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  9669. 1129.19 s [really-safe-money-gen]
  9670. 1129.19 s [really-safe-money-gen]
  9671. 1129.19 s [really-safe-money-gen] Cmp at src/Money/Account.hs:451:14-23
  9672. 1129.19 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  9673. 1129.19 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  9674. 1129.19 s [really-safe-money-gen] DistributedZero -> DistributedZero
  9675. 1129.19 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  9676. 1129.19 s [really-safe-money-gen] - if a >= zero
  9677. 1129.20 s [really-safe-money-gen] + if a > zero
  9678. 1129.20 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  9679. 1129.20 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  9680. 1129.20 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  9681. 1129.20 s [really-safe-money-gen] checkPhase completed in 17 minutes 10 seconds
  9682. 1129.20 s [really-safe-money-gen] Phase: haddockPhase
  9683. 1129.70 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  9684. 1129.70 s [really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
  9685. 1129.71 s [really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
  9686. 1129.71 s [really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
  9687. 1130.53 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
  9688. 1131.03 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
  9689. 1131.06 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
  9690. 1131.09 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
  9691. 1131.11 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
  9692. 1131.16 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
  9693. 1131.18 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
  9694. 1131.20 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
  9695. 1131.23 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
  9696. 1131.30 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
  9697. 1131.33 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
  9698. 1131.34 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
  9699. 1131.38 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
  9700. 1131.47 s [really-safe-money-gen] Haddock coverage:
  9701. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
  9702. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9703. 1131.47 s [really-safe-money-gen] Module header
  9704. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
  9705. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9706. 1131.47 s [really-safe-money-gen] Module header
  9707. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
  9708. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9709. 1131.47 s [really-safe-money-gen] Module header
  9710. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
  9711. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9712. 1131.47 s [really-safe-money-gen] Module header
  9713. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
  9714. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9715. 1131.47 s [really-safe-money-gen] Module header
  9716. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
  9717. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9718. 1131.47 s [really-safe-money-gen] Module header
  9719. 1131.47 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
  9720. 1131.47 s [really-safe-money-gen] Missing documentation for:
  9721. 1131.47 s [really-safe-money-gen] Module header
  9722. 1131.48 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
  9723. 1131.48 s [really-safe-money-gen] Missing documentation for:
  9724. 1131.48 s [really-safe-money-gen] Module header
  9725. 1131.48 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
  9726. 1131.48 s [really-safe-money-gen] Missing documentation for:
  9727. 1131.48 s [really-safe-money-gen] Module header
  9728. 1131.48 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
  9729. 1131.48 s [really-safe-money-gen] Missing documentation for:
  9730. 1131.48 s [really-safe-money-gen] Module header
  9731. 1131.48 s [really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
  9732. 1131.48 s [really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
  9733. 1131.48 s [really-safe-money-gen] Missing documentation for:
  9734. 1131.48 s [really-safe-money-gen] Module header
  9735. 1131.48 s [really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
  9736. 1131.48 s [really-safe-money-gen] Missing documentation for:
  9737. 1131.48 s [really-safe-money-gen] Module header
  9738. 1131.48 s [really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
  9739. 1131.89 s [really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
  9740. 1131.89 s [really-safe-money-gen] - Money.Amount.Amount
  9741. 1131.89 s [really-safe-money-gen] - Money.Amount.Distribution
  9742. 1131.89 s [really-safe-money-gen] - Money.Amount.Rounding
  9743. 1131.89 s [really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
  9744. 1131.89 s [really-safe-money-gen] - Money.Account.Account
  9745. 1131.89 s [really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
  9746. 1131.89 s [really-safe-money-gen] - Money.AccountOf.AccountOf
  9747. 1131.89 s [really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
  9748. 1131.89 s [really-safe-money-gen] - Money.AmountOf.AmountOf
  9749. 1131.89 s [really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
  9750. 1131.89 s [really-safe-money-gen] - Money.ConversionRate.ConversionRate
  9751. 1131.89 s [really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
  9752. 1131.89 s [really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
  9753. 1131.89 s [really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
  9754. 1131.89 s [really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
  9755. 1131.89 s [really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
  9756. 1131.89 s [really-safe-money-gen] - Money.Currency.Currency
  9757. 1131.89 s [really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
  9758. 1131.89 s [really-safe-money-gen] - Money.MultiAmount.MultiAmount
  9759. 1131.89 s [really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
  9760. 1131.89 s [really-safe-money-gen] - Money.MultiAccount.MultiAccount
  9761. 1131.89 s [really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
  9762. 1131.89 s [really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
  9763. 1145.50 s [really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
  9764. 1145.50 s [really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
  9765. 1145.70 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  9766. 1145.74 s [really-safe-money-gen] Phase: installPhase
  9767. 1146.40 s [really-safe-money-gen] Installing library in /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-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
  9768. 1147.46 s [really-safe-money-gen] Phase: fixupPhase
  9769. 1147.51 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0
  9770. 1147.53 s [really-safe-money-gen] shrinking /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-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
  9771. 1147.56 s [really-safe-money-gen] checking for references to /build/ in /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0...
  9772. 1147.62 s [really-safe-money-gen] patching script interpreter paths in /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0
  9773. 1147.63 s [really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0/lib
  9774. 1147.79 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc
  9775. 1147.81 s [really-safe-money-gen] checking for references to /build/ in /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc...
  9776. 1147.86 s [really-safe-money-gen] patching script interpreter paths in /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc
  9777. 1147.87 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report
  9778. 1147.89 s [really-safe-money-gen] checking for references to /build/ in /nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report...
  9779. 1147.94 s [really-safe-money-gen] patching script interpreter paths in /nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report
  9780. 1148.31 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0 /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc
  9781. 1149.32 s [post-build-hook] Pushing 3 paths (196 are already present) using zstd to cache sydtest ⏳
  9782. 1149.32 s [post-build-hook]
  9783. 1149.67 s [post-build-hook] Pushing /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0 (1.52 MiB)
  9784. 1149.80 s [post-build-hook] Pushing /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
  9785. 1149.81 s [post-build-hook] Pushing /nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report (320.23 KiB)
  9786. 1150.78 s [post-build-hook]
  9787. 1150.78 s [post-build-hook] All done.
  9788. 1150.87 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report /nix/store/x22sq5r4758msq0k5lv2i7fdk9hc96vc-really-safe-money-gen-0.0.0.0 /nix/store/yfi2a6q0xvg6pdr7dss86bpdz9c42b1b-really-safe-money-gen-0.0.0.0-doc
  9789. 1150.99 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  9790. 1151.22 s [post-build-hook] copying 1 paths...
  9791. 1151.22 s [post-build-hook] copying path '/nix/store/cspl7dwv0rdbb0jlvfvaapksdd3d5g4x-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
  9792. 1151.70 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  9793. 1151.97 s [post-build-hook] copying 0 paths...
  9794. 1152.05 s Progress: 5 of 6 built