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=remove-case-and-action-operators&rev=6b470f71743a1ef301d61b8e3d30b3d5f0cc67a7#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
  2. 0.08 s warning: ignoring the client-specified setting 'netrc-file', because it is a restricted setting and you are not a trusted user
  3. 0.08 s warning: ignoring the client-specified setting 'post-build-hook', because it is a restricted setting and you are not a trusted user
  4. 0.08 s warning: ignoring untrusted substituter 'https://sydtest.cachix.org', you are not a trusted user.
  5. 0.08 s Run `man nix.conf` for more information on the `substituters` configuration option.
  6. 0.08 s warning: ignoring untrusted substituter 'https://cache.staging.nix-ci.com', you are not a trusted user.
  7. 0.08 s Run `man nix.conf` for more information on the `substituters` configuration option.
  8. 0.08 s warning: ignoring the client-specified setting 'trusted-public-keys', because it is a restricted setting and you are not a trusted user
  9. 0.08 s warning: ignoring untrusted flake configuration setting 'extra-substituters'.
  10. 0.08 s Pass '--accept-flake-config' to trust it
  11. 0.08 s warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
  12. 0.08 s Pass '--accept-flake-config' to trust it
  13. 0.08 s warning: ignoring the client-specified setting 'netrc-file', because it is a restricted setting and you are not a trusted user
  14. 0.08 s warning: ignoring the client-specified setting 'post-build-hook', because it is a restricted setting and you are not a trusted user
  15. 0.08 s warning: ignoring untrusted substituter 'https://sydtest.cachix.org', you are not a trusted user.
  16. 0.08 s Run `man nix.conf` for more information on the `substituters` configuration option.
  17. 0.08 s warning: ignoring untrusted substituter 'https://cache.staging.nix-ci.com', you are not a trusted user.
  18. 0.08 s Run `man nix.conf` for more information on the `substituters` configuration option.
  19. 0.08 s warning: ignoring the client-specified setting 'trusted-public-keys', because it is a restricted setting and you are not a trusted user
  20. 1.46 s
  21. 2.02 s Waiting for lock on autodocodec
  22. 2.08 s Waiting for lock on safe-coloured-text
  23. 2.11 s Building really-safe-money-source
  24. 2.13 s Waiting for lock on genvalidity-criterion-source
  25. 2.14 s Waiting for lock on genvalidity-property-source
  26. 2.14 s Waiting for lock on validity-aeson-0.2.0.5-doc
  27. 2.20 s [really-safe-money-source] Phase: setupCompilerEnvironmentPhase
  28. 2.20 s [really-safe-money-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  29. 2.33 s [really-safe-money-source] Phase: unpackPhase
  30. 2.33 s [really-safe-money-source] unpacking source archive /nix/store/9psbg8rr3pzwi79qc6xvdli07z0n0zaw-really-safe-money
  31. 2.34 s [really-safe-money-source] source root is really-safe-money
  32. 2.35 s [really-safe-money-source] Phase: patchPhase
  33. 2.36 s [really-safe-money-source] Phase: compileBuildDriverPhase
  34. 2.37 s [really-safe-money-source] setupCompileFlags: -package-db=/build/tmp.7fGvkxjQ00/setup-package.conf.d -threaded
  35. 2.42 s [really-safe-money-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.7fGvkxjQ00/Main.o )
  36. 2.46 s [really-safe-money-source] [2 of 2] Linking Setup
  37. 3.70 s [really-safe-money-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  38. 3.71 s [really-safe-money-source] Phase: configurePhase
  39. 3.72 s [really-safe-money-source] configureFlags: --verbose --prefix=/nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/really-safe-money-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.7fGvkxjQ00/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
  40. 3.73 s [really-safe-money-source] Using Parsec parser
  41. 3.73 s [really-safe-money-source] Configuring really-safe-money-0.0.0.0...
  42. 4.23 s [really-safe-money-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  43. 4.23 s [really-safe-money-source] Dependency containers: using containers-0.7
  44. 4.23 s [really-safe-money-source] Dependency deepseq: using deepseq-1.5.0.0
  45. 4.23 s [really-safe-money-source] Dependency validity: using validity-0.12.1.0
  46. 4.23 s [really-safe-money-source] Dependency validity-containers: using validity-containers-0.5.0.5
  47. 4.23 s [really-safe-money-source] Dependency validity-scientific: using validity-scientific-0.2.0.3
  48. 4.23 s [really-safe-money-source] Source component graph: component lib
  49. 4.24 s [really-safe-money-source] Configured component graph:
  50. 4.24 s [really-safe-money-source] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  51. 4.24 s [really-safe-money-source] include base-4.20.2.0-64da
  52. 4.24 s [really-safe-money-source] include containers-0.7-504a
  53. 4.24 s [really-safe-money-source] include deepseq-1.5.0.0-9a2c
  54. 4.24 s [really-safe-money-source] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  55. 4.24 s [really-safe-money-source] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  56. 4.24 s [really-safe-money-source] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  57. 4.24 s [really-safe-money-source] Linked component graph:
  58. 4.24 s [really-safe-money-source] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  59. 4.24 s [really-safe-money-source] include base-4.20.2.0-64da
  60. 4.24 s [really-safe-money-source] include containers-0.7-504a
  61. 4.24 s [really-safe-money-source] include deepseq-1.5.0.0-9a2c
  62. 4.24 s [really-safe-money-source] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  63. 4.24 s [really-safe-money-source] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  64. 4.24 s [really-safe-money-source] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  65. 4.24 s [really-safe-money-source] 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
  66. 4.24 s [really-safe-money-source] Ready component graph:
  67. 4.24 s [really-safe-money-source] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  68. 4.24 s [really-safe-money-source] depends base-4.20.2.0-64da
  69. 4.24 s [really-safe-money-source] depends containers-0.7-504a
  70. 4.24 s [really-safe-money-source] depends deepseq-1.5.0.0-9a2c
  71. 4.24 s [really-safe-money-source] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  72. 4.24 s [really-safe-money-source] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  73. 4.24 s [really-safe-money-source] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  74. 4.24 s [really-safe-money-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  75. 4.24 s [really-safe-money-source] Using compiler: ghc-9.10.3
  76. 4.24 s [really-safe-money-source] Using install prefix:
  77. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0
  78. 4.24 s [really-safe-money-source] Executables installed in:
  79. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/bin
  80. 4.24 s [really-safe-money-source] Libraries installed in:
  81. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-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
  82. 4.24 s [really-safe-money-source] Dynamic Libraries installed in:
  83. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  84. 4.24 s [really-safe-money-source] Private executables installed in:
  85. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  86. 4.24 s [really-safe-money-source] Data files installed in:
  87. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  88. 4.24 s [really-safe-money-source] Documentation installed in: /share/doc/really-safe-money-0.0.0.0
  89. 4.24 s [really-safe-money-source] Configuration files installed in:
  90. 4.24 s [really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/etc
  91. 4.24 s [really-safe-money-source] No alex found
  92. 4.24 s [really-safe-money-source] Using ar found on system at:
  93. 4.24 s [really-safe-money-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  94. 4.24 s [really-safe-money-source] No c2hs found
  95. 4.24 s [really-safe-money-source] No cpphs found
  96. 4.24 s [really-safe-money-source] No doctest found
  97. 4.24 s [really-safe-money-source] Using gcc version 14.3.0 given by user at:
  98. 4.24 s [really-safe-money-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  99. 4.24 s [really-safe-money-source] Using ghc version 9.10.3 found on system at:
  100. 4.24 s [really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  101. 4.24 s [really-safe-money-source] Using ghc-pkg version 9.10.3 found on system at:
  102. 4.24 s [really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  103. 4.24 s [really-safe-money-source] No ghcjs found
  104. 4.24 s [really-safe-money-source] No ghcjs-pkg found
  105. 4.24 s [really-safe-money-source] No greencard found
  106. 4.24 s [really-safe-money-source] Using haddock version 2.31.1 found on system at:
  107. 4.24 s [really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  108. 4.24 s [really-safe-money-source] No happy found
  109. 4.24 s [really-safe-money-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  110. 4.24 s [really-safe-money-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  111. 4.24 s [really-safe-money-source] No hmake found
  112. 4.24 s [really-safe-money-source] Using hpc version 0.69 found on system at:
  113. 4.24 s [really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  114. 4.24 s [really-safe-money-source] Using hsc2hs version 0.68.10 found on system at:
  115. 4.24 s [really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  116. 4.24 s [really-safe-money-source] Using hscolour version 1.25 found on system at:
  117. 4.24 s [really-safe-money-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  118. 4.24 s [really-safe-money-source] No jhc found
  119. 4.24 s [really-safe-money-source] Using ld found on system at:
  120. 4.24 s [really-safe-money-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  121. 4.24 s [really-safe-money-source] No pkg-config found
  122. 4.24 s [really-safe-money-source] Using runghc version 9.10.3 found on system at:
  123. 4.24 s [really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  124. 4.24 s [really-safe-money-source] Using strip version 2.44 found on system at:
  125. 4.24 s [really-safe-money-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  126. 4.24 s [really-safe-money-source] Using tar found on system at:
  127. 4.24 s [really-safe-money-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  128. 4.24 s [really-safe-money-source] No uhc found
  129. 4.40 s [really-safe-money-source] Phase: buildPhase
  130. 4.41 s [really-safe-money-source] Distribution quality warnings:
  131. 4.41 s [really-safe-money-source] [no-category] No 'category' field.
  132. 4.41 s [really-safe-money-source] [no-maintainer] No 'maintainer' field.
  133. 4.41 s [really-safe-money-source] [no-synopsis] No 'synopsis' field.
  134. 4.41 s [really-safe-money-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  135. 4.41 s [really-safe-money-source] you want?
  136. 4.41 s [really-safe-money-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  137. 4.41 s [really-safe-money-source] - containers
  138. 4.41 s [really-safe-money-source] - deepseq
  139. 4.41 s [really-safe-money-source] - validity
  140. 4.41 s [really-safe-money-source] - validity-containers
  141. 4.41 s [really-safe-money-source] - validity-scientific
  142. 4.41 s [really-safe-money-source] Please add them. There is more information at https://pvp.haskell.org/
  143. 4.41 s [really-safe-money-source] Building source dist for really-safe-money-0.0.0.0...
  144. 4.42 s [really-safe-money-source] Source tarball created: dist/really-safe-money-0.0.0.0.tar.gz
  145. 4.43 s [really-safe-money-source] Phase: haddockPhase
  146. 4.43 s [really-safe-money-source] Phase: installPhase
  147. 4.44 s [really-safe-money-source] Phase: fixupPhase
  148. 4.46 s Progress: 1 of 47 built
  149. 7.48 s Waiting for lock on genvalidity-criterion-1.1.0.0-doc
  150. 7.48 s Waiting for lock on genvalidity-property-1.0.0.0-doc
  151. 7.54 s Waiting for lock on safe-coloured-text-layout-0.2.0.1-doc
  152. 7.54 s Waiting for lock on safe-coloured-text-terminfo
  153. 12.50 s Waiting for lock on autodocodec-nix-source
  154. 12.53 s Waiting for lock on autodocodec-schema-source
  155. 17.52 s Waiting for lock on autodocodec-nix
  156. 17.52 s Waiting for lock on autodocodec-schema-0.2.0.1-doc
  157. 22.53 s Waiting for lock on genvalidity-hspec-1.0.0.4-doc
  158. 32.55 s Waiting for lock on autodocodec-yaml-source
  159. 37.58 s Waiting for lock on autodocodec-yaml
  160. 37.61 s Building genvalidity-vector-source
  161. 37.63 s Waiting for lock on genvalidity-containers
  162. 37.63 s Waiting for lock on genvalidity-text-1.0.0.1-doc
  163. 37.64 s Waiting for lock on validity-path-0.4.0.1-doc
  164. 37.75 s [genvalidity-vector-source] Phase: setupCompilerEnvironmentPhase
  165. 37.75 s [genvalidity-vector-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  166. 37.94 s [genvalidity-vector-source] Phase: unpackPhase
  167. 37.94 s [genvalidity-vector-source] unpacking source archive /nix/store/l6zbxrdbn7l981nyhv68xczyp86v3fh5-genvalidity-vector
  168. 37.95 s [genvalidity-vector-source] source root is genvalidity-vector
  169. 37.96 s [genvalidity-vector-source] Phase: patchPhase
  170. 37.97 s [genvalidity-vector-source] Phase: compileBuildDriverPhase
  171. 37.97 s [genvalidity-vector-source] setupCompileFlags: -package-db=/build/tmp.JVno47GlCd/setup-package.conf.d -threaded
  172. 38.02 s [genvalidity-vector-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.JVno47GlCd/Main.o )
  173. 38.06 s [genvalidity-vector-source] [2 of 2] Linking Setup
  174. 39.22 s [genvalidity-vector-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  175. 39.23 s [genvalidity-vector-source] Phase: configurePhase
  176. 39.57 s [genvalidity-vector-source] configureFlags: --verbose --prefix=/nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/genvalidity-vector-1.0.0.0 --with-gcc=gcc --package-db=/build/tmp.JVno47GlCd/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-option=-Wall --ghc-option=-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
  177. 39.58 s [genvalidity-vector-source] Using Parsec parser
  178. 39.58 s [genvalidity-vector-source] Configuring genvalidity-vector-1.0.0.0...
  179. 40.13 s [genvalidity-vector-source] Dependency base <5: using base-4.20.2.0
  180. 40.13 s [genvalidity-vector-source] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
  181. 40.13 s [genvalidity-vector-source] Dependency validity-vector >=0.1: using validity-vector-0.2.0.3
  182. 40.13 s [genvalidity-vector-source] Dependency vector: using vector-0.13.2.0
  183. 40.13 s [genvalidity-vector-source] Dependency base <5: using base-4.20.2.0
  184. 40.13 s [genvalidity-vector-source] Dependency genvalidity-hspec: using genvalidity-hspec-1.0.0.4
  185. 40.14 s [genvalidity-vector-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  186. 40.14 s [genvalidity-vector-source] Dependency hspec: using hspec-2.11.14
  187. 40.14 s [genvalidity-vector-source] Dependency vector: using vector-0.13.2.0
  188. 40.14 s [genvalidity-vector-source] Source component graph:
  189. 40.14 s [genvalidity-vector-source] component lib
  190. 40.14 s [genvalidity-vector-source] component test:genvalidity-vector-test dependency lib
  191. 40.14 s [genvalidity-vector-source] Configured component graph:
  192. 40.14 s [genvalidity-vector-source] component genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  193. 40.14 s [genvalidity-vector-source] include base-4.20.2.0-64da
  194. 40.14 s [genvalidity-vector-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  195. 40.14 s [genvalidity-vector-source] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
  196. 40.14 s [genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  197. 40.14 s [genvalidity-vector-source] component genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
  198. 40.14 s [genvalidity-vector-source] include base-4.20.2.0-64da
  199. 40.14 s [genvalidity-vector-source] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
  200. 40.14 s [genvalidity-vector-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  201. 40.14 s [genvalidity-vector-source] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
  202. 40.14 s [genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  203. 40.14 s [genvalidity-vector-source] Linked component graph:
  204. 40.14 s [genvalidity-vector-source] unit genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  205. 40.14 s [genvalidity-vector-source] include base-4.20.2.0-64da
  206. 40.14 s [genvalidity-vector-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  207. 40.14 s [genvalidity-vector-source] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
  208. 40.14 s [genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  209. 40.14 s [genvalidity-vector-source] Data.GenValidity.Vector=genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi:Data.GenValidity.Vector
  210. 40.14 s [genvalidity-vector-source] unit genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
  211. 40.14 s [genvalidity-vector-source] include base-4.20.2.0-64da
  212. 40.14 s [genvalidity-vector-source] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
  213. 40.14 s [genvalidity-vector-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  214. 40.14 s [genvalidity-vector-source] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
  215. 40.14 s [genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  216. 40.14 s [genvalidity-vector-source] Ready component graph:
  217. 40.14 s [genvalidity-vector-source] definite genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  218. 40.14 s [genvalidity-vector-source] depends base-4.20.2.0-64da
  219. 40.14 s [genvalidity-vector-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  220. 40.14 s [genvalidity-vector-source] depends validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
  221. 40.14 s [genvalidity-vector-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  222. 40.14 s [genvalidity-vector-source] definite genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
  223. 40.14 s [genvalidity-vector-source] depends base-4.20.2.0-64da
  224. 40.14 s [genvalidity-vector-source] depends genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
  225. 40.14 s [genvalidity-vector-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  226. 40.14 s [genvalidity-vector-source] depends hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
  227. 40.14 s [genvalidity-vector-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  228. 40.14 s [genvalidity-vector-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  229. 40.14 s [genvalidity-vector-source] Using compiler: ghc-9.10.3
  230. 40.14 s [genvalidity-vector-source] Using install prefix:
  231. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0
  232. 40.14 s [genvalidity-vector-source] Executables installed in:
  233. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/bin
  234. 40.14 s [genvalidity-vector-source] Libraries installed in:
  235. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  236. 40.14 s [genvalidity-vector-source] Dynamic Libraries installed in:
  237. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  238. 40.14 s [genvalidity-vector-source] Private executables installed in:
  239. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
  240. 40.14 s [genvalidity-vector-source] Data files installed in:
  241. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
  242. 40.14 s [genvalidity-vector-source] Documentation installed in: /share/doc/genvalidity-vector-1.0.0.0
  243. 40.14 s [genvalidity-vector-source] Configuration files installed in:
  244. 40.14 s [genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/etc
  245. 40.14 s [genvalidity-vector-source] No alex found
  246. 40.14 s [genvalidity-vector-source] Using ar found on system at:
  247. 40.14 s [genvalidity-vector-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  248. 40.14 s [genvalidity-vector-source] No c2hs found
  249. 40.14 s [genvalidity-vector-source] No cpphs found
  250. 40.14 s [genvalidity-vector-source] No doctest found
  251. 40.14 s [genvalidity-vector-source] Using gcc version 14.3.0 given by user at:
  252. 40.14 s [genvalidity-vector-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  253. 40.14 s [genvalidity-vector-source] Using ghc version 9.10.3 found on system at:
  254. 40.14 s [genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  255. 40.14 s [genvalidity-vector-source] Using ghc-pkg version 9.10.3 found on system at:
  256. 40.14 s [genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  257. 40.14 s [genvalidity-vector-source] No ghcjs found
  258. 40.14 s [genvalidity-vector-source] No ghcjs-pkg found
  259. 40.14 s [genvalidity-vector-source] No greencard found
  260. 40.14 s [genvalidity-vector-source] Using haddock version 2.31.1 found on system at:
  261. 40.14 s [genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  262. 40.14 s [genvalidity-vector-source] No happy found
  263. 40.14 s [genvalidity-vector-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  264. 40.14 s [genvalidity-vector-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  265. 40.14 s [genvalidity-vector-source] No hmake found
  266. 40.14 s [genvalidity-vector-source] Using hpc version 0.69 found on system at:
  267. 40.14 s [genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  268. 40.14 s [genvalidity-vector-source] Using hsc2hs version 0.68.10 found on system at:
  269. 40.14 s [genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  270. 40.14 s [genvalidity-vector-source] Using hscolour version 1.25 found on system at:
  271. 40.14 s [genvalidity-vector-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  272. 40.14 s [genvalidity-vector-source] No jhc found
  273. 40.14 s [genvalidity-vector-source] Using ld found on system at:
  274. 40.14 s [genvalidity-vector-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  275. 40.14 s [genvalidity-vector-source] No pkg-config found
  276. 40.14 s [genvalidity-vector-source] Using runghc version 9.10.3 found on system at:
  277. 40.14 s [genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  278. 40.14 s [genvalidity-vector-source] Using strip version 2.44 found on system at:
  279. 40.14 s [genvalidity-vector-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  280. 40.14 s [genvalidity-vector-source] Using tar found on system at:
  281. 40.14 s [genvalidity-vector-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  282. 40.14 s [genvalidity-vector-source] No uhc found
  283. 40.36 s [genvalidity-vector-source] Phase: buildPhase
  284. 40.37 s [genvalidity-vector-source] Distribution quality warnings:
  285. 40.37 s [genvalidity-vector-source] [no-description] No 'description' field.
  286. 40.37 s [genvalidity-vector-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  287. 40.37 s [genvalidity-vector-source] - genvalidity
  288. 40.37 s [genvalidity-vector-source] - validity-vector
  289. 40.37 s [genvalidity-vector-source] - vector
  290. 40.37 s [genvalidity-vector-source] Please add them. There is more information at https://pvp.haskell.org/
  291. 40.37 s [genvalidity-vector-source] Building source dist for genvalidity-vector-1.0.0.0...
  292. 40.38 s [genvalidity-vector-source] Source tarball created: dist/genvalidity-vector-1.0.0.0.tar.gz
  293. 40.38 s [genvalidity-vector-source] Phase: checkPhase
  294. 40.39 s [genvalidity-vector-source] Phase: haddockPhase
  295. 40.39 s [genvalidity-vector-source] Phase: installPhase
  296. 40.40 s [genvalidity-vector-source] Phase: fixupPhase
  297. 40.41 s Progress: 2 of 26 built
  298. 40.46 s Building genvalidity-vector
  299. 40.59 s [genvalidity-vector] Phase: setupCompilerEnvironmentPhase
  300. 40.59 s [genvalidity-vector] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  301. 40.79 s [genvalidity-vector] Phase: unpackPhase
  302. 40.80 s [genvalidity-vector] unpacking source archive /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/genvalidity-vector-1.0.0.0.tar.gz
  303. 40.80 s [genvalidity-vector] source root is genvalidity-vector-1.0.0.0
  304. 40.81 s [genvalidity-vector] setting SOURCE_DATE_EPOCH to timestamp 1778687740 of file "genvalidity-vector-1.0.0.0/test/Test/Validity/VectorSpec.hs"
  305. 40.81 s [genvalidity-vector] warning: file "genvalidity-vector-1.0.0.0/test/Test/Validity/VectorSpec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
  306. 40.81 s [genvalidity-vector] Phase: patchPhase
  307. 40.82 s [genvalidity-vector] Phase: compileBuildDriverPhase
  308. 40.82 s [genvalidity-vector] setupCompileFlags: -package-db=/build/tmp.WztCDjo0Qb/setup-package.conf.d -threaded
  309. 40.87 s [genvalidity-vector] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.WztCDjo0Qb/Main.o )
  310. 40.91 s [genvalidity-vector] [2 of 2] Linking Setup
  311. 42.10 s [genvalidity-vector] Phase: updateAutotoolsGnuConfigScriptsPhase
  312. 42.27 s [genvalidity-vector] Phase: configurePhase
  313. 42.35 s [genvalidity-vector] configureFlags: --verbose --prefix=/nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc/share/doc/genvalidity-vector-1.0.0.0 --with-gcc=gcc --package-db=/build/tmp.WztCDjo0Qb/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 --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-option=-Wall --ghc-option=-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
  314. 42.35 s [genvalidity-vector] Using Parsec parser
  315. 42.35 s [genvalidity-vector] Configuring genvalidity-vector-1.0.0.0...
  316. 42.87 s [genvalidity-vector] Dependency base <5: using base-4.20.2.0
  317. 42.91 s [genvalidity-vector] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
  318. 42.91 s [genvalidity-vector] Dependency validity-vector >=0.1: using validity-vector-0.2.0.3
  319. 42.91 s [genvalidity-vector] Dependency vector: using vector-0.13.2.0
  320. 42.91 s [genvalidity-vector] Dependency base <5: using base-4.20.2.0
  321. 42.91 s [genvalidity-vector] Dependency genvalidity-hspec: using genvalidity-hspec-1.0.0.4
  322. 42.92 s [genvalidity-vector] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  323. 42.92 s [genvalidity-vector] Dependency hspec: using hspec-2.11.14
  324. 42.92 s [genvalidity-vector] Dependency vector: using vector-0.13.2.0
  325. 42.92 s [genvalidity-vector] Source component graph:
  326. 42.92 s [genvalidity-vector] component lib
  327. 42.92 s [genvalidity-vector] component test:genvalidity-vector-test dependency lib
  328. 42.92 s [genvalidity-vector] Configured component graph:
  329. 42.92 s [genvalidity-vector] component genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  330. 42.92 s [genvalidity-vector] include base-4.20.2.0-64da
  331. 42.92 s [genvalidity-vector] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  332. 42.92 s [genvalidity-vector] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
  333. 42.92 s [genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  334. 42.92 s [genvalidity-vector] component genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
  335. 42.92 s [genvalidity-vector] include base-4.20.2.0-64da
  336. 42.92 s [genvalidity-vector] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
  337. 42.92 s [genvalidity-vector] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  338. 42.92 s [genvalidity-vector] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
  339. 42.92 s [genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  340. 42.92 s [genvalidity-vector] Linked component graph:
  341. 42.92 s [genvalidity-vector] unit genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  342. 42.92 s [genvalidity-vector] include base-4.20.2.0-64da
  343. 42.92 s [genvalidity-vector] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  344. 42.92 s [genvalidity-vector] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
  345. 42.92 s [genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  346. 42.92 s [genvalidity-vector] Data.GenValidity.Vector=genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi:Data.GenValidity.Vector
  347. 42.92 s [genvalidity-vector] unit genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
  348. 42.92 s [genvalidity-vector] include base-4.20.2.0-64da
  349. 42.92 s [genvalidity-vector] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
  350. 42.92 s [genvalidity-vector] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  351. 42.92 s [genvalidity-vector] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
  352. 42.92 s [genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  353. 42.92 s [genvalidity-vector] Ready component graph:
  354. 42.92 s [genvalidity-vector] definite genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  355. 42.92 s [genvalidity-vector] depends base-4.20.2.0-64da
  356. 42.92 s [genvalidity-vector] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  357. 42.92 s [genvalidity-vector] depends validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
  358. 42.92 s [genvalidity-vector] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  359. 42.92 s [genvalidity-vector] definite genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
  360. 42.92 s [genvalidity-vector] depends base-4.20.2.0-64da
  361. 42.92 s [genvalidity-vector] depends genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
  362. 42.92 s [genvalidity-vector] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  363. 42.92 s [genvalidity-vector] depends hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
  364. 42.92 s [genvalidity-vector] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  365. 42.92 s [genvalidity-vector] Using Cabal-3.12.1.0 compiled by ghc-9.10
  366. 42.92 s [genvalidity-vector] Using compiler: ghc-9.10.3
  367. 42.92 s [genvalidity-vector] Using install prefix:
  368. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0
  369. 42.92 s [genvalidity-vector] Executables installed in:
  370. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/bin
  371. 42.92 s [genvalidity-vector] Libraries installed in:
  372. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  373. 42.92 s [genvalidity-vector] Dynamic Libraries installed in:
  374. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  375. 42.92 s [genvalidity-vector] Private executables installed in:
  376. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
  377. 42.92 s [genvalidity-vector] Data files installed in:
  378. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
  379. 42.92 s [genvalidity-vector] Documentation installed in:
  380. 42.92 s [genvalidity-vector] /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc/share/doc/genvalidity-vector-1.0.0.0
  381. 42.92 s [genvalidity-vector] Configuration files installed in:
  382. 42.92 s [genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/etc
  383. 42.92 s [genvalidity-vector] No alex found
  384. 42.92 s [genvalidity-vector] Using ar found on system at:
  385. 42.92 s [genvalidity-vector] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  386. 42.92 s [genvalidity-vector] No c2hs found
  387. 42.92 s [genvalidity-vector] No cpphs found
  388. 42.92 s [genvalidity-vector] No doctest found
  389. 42.92 s [genvalidity-vector] Using gcc version 14.3.0 given by user at:
  390. 42.92 s [genvalidity-vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  391. 42.92 s [genvalidity-vector] Using ghc version 9.10.3 found on system at:
  392. 42.92 s [genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  393. 42.92 s [genvalidity-vector] Using ghc-pkg version 9.10.3 found on system at:
  394. 42.92 s [genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  395. 42.92 s [genvalidity-vector] No ghcjs found
  396. 42.92 s [genvalidity-vector] No ghcjs-pkg found
  397. 42.92 s [genvalidity-vector] No greencard found
  398. 42.92 s [genvalidity-vector] Using haddock version 2.31.1 found on system at:
  399. 42.92 s [genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  400. 42.92 s [genvalidity-vector] No happy found
  401. 42.92 s [genvalidity-vector] Using haskell-suite found on system at: haskell-suite-dummy-location
  402. 42.92 s [genvalidity-vector] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  403. 42.92 s [genvalidity-vector] No hmake found
  404. 42.92 s [genvalidity-vector] Using hpc version 0.69 found on system at:
  405. 42.92 s [genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  406. 42.92 s [genvalidity-vector] Using hsc2hs version 0.68.10 found on system at:
  407. 42.92 s [genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  408. 42.92 s [genvalidity-vector] Using hscolour version 1.25 found on system at:
  409. 42.92 s [genvalidity-vector] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  410. 42.92 s [genvalidity-vector] No jhc found
  411. 42.92 s [genvalidity-vector] Using ld found on system at:
  412. 42.92 s [genvalidity-vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  413. 42.92 s [genvalidity-vector] No pkg-config found
  414. 42.92 s [genvalidity-vector] Using runghc version 9.10.3 found on system at:
  415. 42.92 s [genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  416. 42.92 s [genvalidity-vector] Using strip version 2.44 found on system at:
  417. 42.92 s [genvalidity-vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  418. 42.92 s [genvalidity-vector] Using tar found on system at:
  419. 42.92 s [genvalidity-vector] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  420. 42.92 s [genvalidity-vector] No uhc found
  421. 43.07 s [genvalidity-vector] Phase: buildPhase
  422. 43.12 s [genvalidity-vector] Preprocessing library for genvalidity-vector-1.0.0.0...
  423. 43.12 s [genvalidity-vector] Building library for genvalidity-vector-1.0.0.0...
  424. 43.20 s [genvalidity-vector] [1 of 2] Compiling Data.GenValidity.Vector ( src/Data/GenValidity/Vector.hs, dist/build/Data/GenValidity/Vector.o, dist/build/Data/GenValidity/Vector.dyn_o )
  425. 43.58 s [genvalidity-vector] [2 of 2] Compiling Paths_genvalidity_vector ( dist/build/autogen/Paths_genvalidity_vector.hs, dist/build/Paths_genvalidity_vector.o, dist/build/Paths_genvalidity_vector.dyn_o )
  426. 43.71 s [genvalidity-vector] [1 of 2] Compiling Data.GenValidity.Vector ( src/Data/GenValidity/Vector.hs, dist/build/Data/GenValidity/Vector.p_o )
  427. 44.34 s [genvalidity-vector] [2 of 2] Compiling Paths_genvalidity_vector ( dist/build/autogen/Paths_genvalidity_vector.hs, dist/build/Paths_genvalidity_vector.p_o )
  428. 45.55 s [genvalidity-vector] Preprocessing test suite 'genvalidity-vector-test' for genvalidity-vector-1.0.0.0...
  429. 45.55 s [genvalidity-vector] Building test suite 'genvalidity-vector-test' for genvalidity-vector-1.0.0.0...
  430. 45.64 s [genvalidity-vector] [1 of 3] Compiling Paths_genvalidity_vector ( dist/build/genvalidity-vector-test/autogen/Paths_genvalidity_vector.hs, dist/build/genvalidity-vector-test/genvalidity-vector-test-tmp/Paths_genvalidity_vector.o )
  431. 45.74 s [genvalidity-vector] [2 of 3] Compiling Test.Validity.VectorSpec ( test/Test/Validity/VectorSpec.hs, dist/build/genvalidity-vector-test/genvalidity-vector-test-tmp/Test/Validity/VectorSpec.o )
  432. 45.74 s [genvalidity-vector] [3 of 3] Compiling Main ( test/Spec.hs, dist/build/genvalidity-vector-test/genvalidity-vector-test-tmp/Main.o )
  433. 45.92 s [genvalidity-vector] [4 of 4] Linking dist/build/genvalidity-vector-test/genvalidity-vector-test
  434. 46.82 s [genvalidity-vector] Phase: checkPhase
  435. 47.03 s [genvalidity-vector] Running 1 test suites...
  436. 47.03 s [genvalidity-vector] Test suite genvalidity-vector-test: RUNNING...
  437. 47.04 s [genvalidity-vector]
  438. 47.04 s [genvalidity-vector] Test.Validity.Vector
  439. 47.04 s [genvalidity-vector] GenValid (Vector Int)
  440. 47.04 s [genvalidity-vector] genValid :: Gen (Vector Int)
  441. 47.04 s [genvalidity-vector] only generates valid '(Vector Int)'s [✔]
  442. 47.04 s [genvalidity-vector] +++ OK, passed 100 tests.
  443. 47.04 s [genvalidity-vector] GenValid (Vector (Ratio Integer))
  444. 47.04 s [genvalidity-vector] genValid :: Gen (Vector (Ratio Integer))
  445. 47.05 s [genvalidity-vector] only generates valid '(Vector (Ratio Integer))'s [✔]
  446. 47.05 s [genvalidity-vector] +++ OK, passed 100 tests.
  447. 47.05 s [genvalidity-vector] GenValid (Vector Int)
  448. 47.05 s [genvalidity-vector] genValid :: Gen (Vector Int)
  449. 47.05 s [genvalidity-vector] only generates valid '(Vector Int)'s [✔]
  450. 47.05 s [genvalidity-vector] +++ OK, passed 100 tests.
  451. 47.05 s [genvalidity-vector]
  452. 47.05 s [genvalidity-vector] Finished in 0.0093 seconds
  453. 47.05 s [genvalidity-vector] 3 examples, 0 failures
  454. 47.05 s [genvalidity-vector] Test suite genvalidity-vector-test: PASS
  455. 47.05 s [genvalidity-vector] Test suite logged to:
  456. 47.05 s [genvalidity-vector] dist/test/genvalidity-vector-1.0.0.0-genvalidity-vector-test.log
  457. 47.05 s [genvalidity-vector] 1 of 1 test suites (1 of 1 test cases) passed.
  458. 47.06 s [genvalidity-vector] Phase: haddockPhase
  459. 47.17 s [genvalidity-vector] Preprocessing library for genvalidity-vector-1.0.0.0...
  460. 47.17 s [genvalidity-vector] Running Haddock on library for genvalidity-vector-1.0.0.0...
  461. 47.17 s [genvalidity-vector] Warning: The documentation for the following packages are not installed. No
  462. 47.17 s [genvalidity-vector] links will be generated to these packages: vector-0.13.2.0
  463. 47.32 s [genvalidity-vector] [1 of 2] Compiling Data.GenValidity.Vector ( src/Data/GenValidity/Vector.hs, nothing )
  464. 47.43 s [genvalidity-vector] [2 of 2] Compiling Paths_genvalidity_vector ( dist/build/autogen/Paths_genvalidity_vector.hs, nothing )
  465. 47.45 s [genvalidity-vector] Haddock coverage:
  466. 47.45 s [genvalidity-vector] 0% ( 0 / 1) in 'Data.GenValidity.Vector'
  467. 47.45 s [genvalidity-vector] Missing documentation for:
  468. 47.45 s [genvalidity-vector] Module header
  469. 47.60 s [genvalidity-vector] Warning: Data.GenValidity.Vector: could not find link destinations for:
  470. 47.60 s [genvalidity-vector] - Data.Vector.Storable.Vector
  471. 47.60 s [genvalidity-vector] - Data.Vector.Vector
  472. 48.61 s Waiting for lock on opt-env-conf-source
  473. 51.09 s [genvalidity-vector] Documentation created: dist/doc/html/genvalidity-vector/,
  474. 51.09 s [genvalidity-vector] dist/doc/html/genvalidity-vector/genvalidity-vector.txt
  475. 51.15 s [genvalidity-vector] Preprocessing test suite 'genvalidity-vector-test' for genvalidity-vector-1.0.0.0...
  476. 51.15 s [genvalidity-vector] Phase: installPhase
  477. 51.20 s [genvalidity-vector] Installing library in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  478. 51.35 s [genvalidity-vector] Phase: fixupPhase
  479. 51.37 s [genvalidity-vector] shrinking RPATHs of ELF executables and libraries in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0
  480. 51.37 s [genvalidity-vector] shrinking /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSgenvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi-ghc9.10.3.so
  481. 51.38 s [genvalidity-vector] checking for references to /build/ in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0...
  482. 51.39 s [genvalidity-vector] patching script interpreter paths in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0
  483. 51.40 s [genvalidity-vector] stripping (with command strip and flags -S -p) in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib
  484. 51.42 s [genvalidity-vector] shrinking RPATHs of ELF executables and libraries in /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc
  485. 51.43 s [genvalidity-vector] checking for references to /build/ in /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc...
  486. 51.44 s [genvalidity-vector] patching script interpreter paths in /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc
  487. 51.50 s Progress: 3 of 25 built
  488. 54.52 s Waiting for lock on opt-env-conf-0.15.0.1-doc
  489. 54.53 s Waiting for lock on genvalidity-path
  490. 69.56 s Waiting for lock on sydtest-mutation-runtime
  491. 89.59 s Waiting for lock on sydtest-source
  492. 89.62 s Building sydtest-mutation-plugin-source
  493. 89.81 s [sydtest-mutation-plugin-source] Phase: setupCompilerEnvironmentPhase
  494. 89.85 s [sydtest-mutation-plugin-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  495. 90.05 s [sydtest-mutation-plugin-source] Phase: unpackPhase
  496. 90.05 s [sydtest-mutation-plugin-source] unpacking source archive /nix/store/n3rsnymzb9bps95bp27qrjl59y7clnq5-sydtest-mutation-plugin
  497. 90.06 s [sydtest-mutation-plugin-source] source root is sydtest-mutation-plugin
  498. 90.07 s [sydtest-mutation-plugin-source] Phase: patchPhase
  499. 90.07 s [sydtest-mutation-plugin-source] Phase: compileBuildDriverPhase
  500. 90.08 s [sydtest-mutation-plugin-source] setupCompileFlags: -package-db=/build/tmp.m6p4BWGVJ2/setup-package.conf.d -threaded
  501. 90.12 s [sydtest-mutation-plugin-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.m6p4BWGVJ2/Main.o )
  502. 90.16 s [sydtest-mutation-plugin-source] [2 of 2] Linking Setup
  503. 91.20 s [sydtest-mutation-plugin-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  504. 91.21 s [sydtest-mutation-plugin-source] Phase: configurePhase
  505. 91.22 s [sydtest-mutation-plugin-source] configureFlags: --verbose --prefix=/nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/sydtest-mutation-plugin-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.m6p4BWGVJ2/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 --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=-Wunused-packages --ghc-options=-Werror --ghc-options=-Wno-deprecations --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
  506. 91.22 s [sydtest-mutation-plugin-source] Using Parsec parser
  507. 91.22 s [sydtest-mutation-plugin-source] Configuring sydtest-mutation-plugin-0.0.0.0...
  508. 91.73 s [sydtest-mutation-plugin-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  509. 91.73 s [sydtest-mutation-plugin-source] Dependency bytestring: using bytestring-0.12.2.0
  510. 91.73 s [sydtest-mutation-plugin-source] Dependency directory: using directory-1.3.8.5
  511. 91.73 s [sydtest-mutation-plugin-source] Dependency filepath: using filepath-1.5.4.0
  512. 91.73 s [sydtest-mutation-plugin-source] Dependency ghc: using ghc-9.10.3
  513. 91.73 s [sydtest-mutation-plugin-source] Dependency ghc-boot: using ghc-boot-9.10.3
  514. 91.73 s [sydtest-mutation-plugin-source] Dependency mtl: using mtl-2.3.1
  515. 91.73 s [sydtest-mutation-plugin-source] Dependency path: using path-0.9.6
  516. 91.73 s [sydtest-mutation-plugin-source] Dependency path-io: using path-io-1.8.2
  517. 91.73 s [sydtest-mutation-plugin-source] Dependency sydtest-mutation-runtime: using sydtest-mutation-runtime-0.0.0.0
  518. 91.73 s [sydtest-mutation-plugin-source] Dependency template-haskell: using template-haskell-2.22.0.0
  519. 91.73 s [sydtest-mutation-plugin-source] Dependency text: using text-2.1.3
  520. 91.73 s [sydtest-mutation-plugin-source] Source component graph: component lib
  521. 91.73 s [sydtest-mutation-plugin-source] Configured component graph:
  522. 91.73 s [sydtest-mutation-plugin-source] component sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  523. 91.73 s [sydtest-mutation-plugin-source] include base-4.20.2.0-64da
  524. 91.73 s [sydtest-mutation-plugin-source] include bytestring-0.12.2.0-262e
  525. 91.73 s [sydtest-mutation-plugin-source] include directory-1.3.8.5-c84a
  526. 91.73 s [sydtest-mutation-plugin-source] include filepath-1.5.4.0-e600
  527. 91.73 s [sydtest-mutation-plugin-source] include ghc-9.10.3-05f6
  528. 91.73 s [sydtest-mutation-plugin-source] include ghc-boot-9.10.3-76c6
  529. 91.73 s [sydtest-mutation-plugin-source] include mtl-2.3.1-b4af
  530. 91.73 s [sydtest-mutation-plugin-source] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
  531. 91.73 s [sydtest-mutation-plugin-source] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
  532. 91.73 s [sydtest-mutation-plugin-source] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
  533. 91.73 s [sydtest-mutation-plugin-source] include template-haskell-2.22.0.0-09e7
  534. 91.73 s [sydtest-mutation-plugin-source] include text-2.1.3-c691
  535. 91.73 s [sydtest-mutation-plugin-source] Linked component graph:
  536. 91.73 s [sydtest-mutation-plugin-source] unit sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  537. 91.73 s [sydtest-mutation-plugin-source] include base-4.20.2.0-64da
  538. 91.73 s [sydtest-mutation-plugin-source] include bytestring-0.12.2.0-262e
  539. 91.73 s [sydtest-mutation-plugin-source] include directory-1.3.8.5-c84a
  540. 91.73 s [sydtest-mutation-plugin-source] include filepath-1.5.4.0-e600
  541. 91.73 s [sydtest-mutation-plugin-source] include ghc-9.10.3-05f6
  542. 91.73 s [sydtest-mutation-plugin-source] include ghc-boot-9.10.3-76c6
  543. 91.73 s [sydtest-mutation-plugin-source] include mtl-2.3.1-b4af
  544. 91.73 s [sydtest-mutation-plugin-source] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
  545. 91.73 s [sydtest-mutation-plugin-source] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
  546. 91.73 s [sydtest-mutation-plugin-source] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
  547. 91.73 s [sydtest-mutation-plugin-source] include template-haskell-2.22.0.0-09e7
  548. 91.73 s [sydtest-mutation-plugin-source] include text-2.1.3-c691
  549. 91.73 s [sydtest-mutation-plugin-source] Test.Syd.Mutation.Plugin=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin,Test.Syd.Mutation.Plugin.Instrument=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Instrument,Test.Syd.Mutation.Plugin.Operator.Arith=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Arith,Test.Syd.Mutation.Plugin.Operator.BoolLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.BoolLit,Test.Syd.Mutation.Plugin.Operator.Cmp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Cmp,Test.Syd.Mutation.Plugin.Operator.CondFlip=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.CondFlip,Test.Syd.Mutation.Plugin.Operator.ConstBool=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ConstBool,Test.Syd.Mutation.Plugin.Operator.IntLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.IntLit,Test.Syd.Mutation.Plugin.Operator.ListLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ListLit,Test.Syd.Mutation.Plugin.Operator.LogicOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.LogicOp,Test.Syd.Mutation.Plugin.Operator.MaybeOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.MaybeOp,Test.Syd.Mutation.Plugin.Operator.Negate=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Negate,Test.Syd.Mutation.Plugin.Operator.Util=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Util,Test.Syd.Mutation.Plugin.Operators=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators,Test.Syd.Mutation.Plugin.Operators.TH=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators.TH,Test.Syd.Mutation.Plugin.Runtime=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Runtime
  550. 91.73 s [sydtest-mutation-plugin-source] Ready component graph:
  551. 91.73 s [sydtest-mutation-plugin-source] definite sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  552. 91.73 s [sydtest-mutation-plugin-source] depends base-4.20.2.0-64da
  553. 91.73 s [sydtest-mutation-plugin-source] depends bytestring-0.12.2.0-262e
  554. 91.73 s [sydtest-mutation-plugin-source] depends directory-1.3.8.5-c84a
  555. 91.73 s [sydtest-mutation-plugin-source] depends filepath-1.5.4.0-e600
  556. 91.73 s [sydtest-mutation-plugin-source] depends ghc-9.10.3-05f6
  557. 91.73 s [sydtest-mutation-plugin-source] depends ghc-boot-9.10.3-76c6
  558. 91.73 s [sydtest-mutation-plugin-source] depends mtl-2.3.1-b4af
  559. 91.73 s [sydtest-mutation-plugin-source] depends path-0.9.6-JuNdYVciddTDWUiQr3NuVx
  560. 91.73 s [sydtest-mutation-plugin-source] depends path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
  561. 91.73 s [sydtest-mutation-plugin-source] depends sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
  562. 91.73 s [sydtest-mutation-plugin-source] depends template-haskell-2.22.0.0-09e7
  563. 91.73 s [sydtest-mutation-plugin-source] depends text-2.1.3-c691
  564. 91.73 s [sydtest-mutation-plugin-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  565. 91.73 s [sydtest-mutation-plugin-source] Using compiler: ghc-9.10.3
  566. 91.73 s [sydtest-mutation-plugin-source] Using install prefix:
  567. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0
  568. 91.73 s [sydtest-mutation-plugin-source] Executables installed in:
  569. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/bin
  570. 91.73 s [sydtest-mutation-plugin-source] Libraries installed in:
  571. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  572. 91.73 s [sydtest-mutation-plugin-source] Dynamic Libraries installed in:
  573. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  574. 91.73 s [sydtest-mutation-plugin-source] Private executables installed in:
  575. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
  576. 91.73 s [sydtest-mutation-plugin-source] Data files installed in:
  577. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
  578. 91.73 s [sydtest-mutation-plugin-source] Documentation installed in: /share/doc/sydtest-mutation-plugin-0.0.0.0
  579. 91.73 s [sydtest-mutation-plugin-source] Configuration files installed in:
  580. 91.73 s [sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/etc
  581. 91.73 s [sydtest-mutation-plugin-source] No alex found
  582. 91.73 s [sydtest-mutation-plugin-source] Using ar found on system at:
  583. 91.73 s [sydtest-mutation-plugin-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  584. 91.73 s [sydtest-mutation-plugin-source] No c2hs found
  585. 91.73 s [sydtest-mutation-plugin-source] No cpphs found
  586. 91.73 s [sydtest-mutation-plugin-source] No doctest found
  587. 91.73 s [sydtest-mutation-plugin-source] Using gcc version 14.3.0 given by user at:
  588. 91.73 s [sydtest-mutation-plugin-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  589. 91.73 s [sydtest-mutation-plugin-source] Using ghc version 9.10.3 found on system at:
  590. 91.73 s [sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  591. 91.73 s [sydtest-mutation-plugin-source] Using ghc-pkg version 9.10.3 found on system at:
  592. 91.73 s [sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  593. 91.73 s [sydtest-mutation-plugin-source] No ghcjs found
  594. 91.73 s [sydtest-mutation-plugin-source] No ghcjs-pkg found
  595. 91.73 s [sydtest-mutation-plugin-source] No greencard found
  596. 91.73 s [sydtest-mutation-plugin-source] Using haddock version 2.31.1 found on system at:
  597. 91.73 s [sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  598. 91.73 s [sydtest-mutation-plugin-source] No happy found
  599. 91.73 s [sydtest-mutation-plugin-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  600. 91.73 s [sydtest-mutation-plugin-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  601. 91.73 s [sydtest-mutation-plugin-source] No hmake found
  602. 91.73 s [sydtest-mutation-plugin-source] Using hpc version 0.69 found on system at:
  603. 91.73 s [sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  604. 91.73 s [sydtest-mutation-plugin-source] Using hsc2hs version 0.68.10 found on system at:
  605. 91.73 s [sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  606. 91.73 s [sydtest-mutation-plugin-source] Using hscolour version 1.25 found on system at:
  607. 91.73 s [sydtest-mutation-plugin-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  608. 91.73 s [sydtest-mutation-plugin-source] No jhc found
  609. 91.73 s [sydtest-mutation-plugin-source] Using ld found on system at:
  610. 91.73 s [sydtest-mutation-plugin-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  611. 91.73 s [sydtest-mutation-plugin-source] No pkg-config found
  612. 91.73 s [sydtest-mutation-plugin-source] Using runghc version 9.10.3 found on system at:
  613. 91.73 s [sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  614. 91.73 s [sydtest-mutation-plugin-source] Using strip version 2.44 found on system at:
  615. 91.73 s [sydtest-mutation-plugin-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  616. 91.73 s [sydtest-mutation-plugin-source] Using tar found on system at:
  617. 91.73 s [sydtest-mutation-plugin-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  618. 91.73 s [sydtest-mutation-plugin-source] No uhc found
  619. 92.01 s [sydtest-mutation-plugin-source] Phase: buildPhase
  620. 92.02 s [sydtest-mutation-plugin-source] Distribution quality errors:
  621. 92.02 s [sydtest-mutation-plugin-source] [no-syn-desc] No 'synopsis' or 'description' field.
  622. 92.02 s [sydtest-mutation-plugin-source] Distribution quality warnings:
  623. 92.02 s [sydtest-mutation-plugin-source] [no-license-file] A 'license-file' is not specified.
  624. 92.02 s [sydtest-mutation-plugin-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  625. 92.02 s [sydtest-mutation-plugin-source] - bytestring
  626. 92.02 s [sydtest-mutation-plugin-source] - directory
  627. 92.02 s [sydtest-mutation-plugin-source] - filepath
  628. 92.02 s [sydtest-mutation-plugin-source] - ghc
  629. 92.02 s [sydtest-mutation-plugin-source] - ghc-boot
  630. 92.02 s [sydtest-mutation-plugin-source] - mtl
  631. 92.02 s [sydtest-mutation-plugin-source] - path
  632. 92.02 s [sydtest-mutation-plugin-source] - path-io
  633. 92.02 s [sydtest-mutation-plugin-source] - sydtest-mutation-runtime
  634. 92.02 s [sydtest-mutation-plugin-source] - template-haskell
  635. 92.02 s [sydtest-mutation-plugin-source] - text
  636. 92.02 s [sydtest-mutation-plugin-source] Please add them. There is more information at https://pvp.haskell.org/
  637. 92.02 s [sydtest-mutation-plugin-source] Note: the public hackage server would reject this package.
  638. 92.02 s [sydtest-mutation-plugin-source] Building source dist for sydtest-mutation-plugin-0.0.0.0...
  639. 92.03 s [sydtest-mutation-plugin-source] Source tarball created: dist/sydtest-mutation-plugin-0.0.0.0.tar.gz
  640. 92.04 s [sydtest-mutation-plugin-source] Phase: checkPhase
  641. 92.04 s [sydtest-mutation-plugin-source] Phase: haddockPhase
  642. 92.04 s [sydtest-mutation-plugin-source] Phase: installPhase
  643. 92.05 s [sydtest-mutation-plugin-source] Phase: fixupPhase
  644. 92.07 s Progress: 4 of 16 built
  645. 92.11 s Building sydtest-mutation-plugin
  646. 92.31 s [sydtest-mutation-plugin] Phase: setupCompilerEnvironmentPhase
  647. 92.32 s [sydtest-mutation-plugin] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  648. 92.55 s [sydtest-mutation-plugin] Phase: unpackPhase
  649. 92.55 s [sydtest-mutation-plugin] unpacking source archive /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/sydtest-mutation-plugin-0.0.0.0.tar.gz
  650. 92.56 s [sydtest-mutation-plugin] source root is sydtest-mutation-plugin-0.0.0.0
  651. 92.56 s [sydtest-mutation-plugin] setting SOURCE_DATE_EPOCH to timestamp 1778687791 of file "sydtest-mutation-plugin-0.0.0.0/sydtest-mutation-plugin.cabal"
  652. 92.56 s [sydtest-mutation-plugin] warning: file "sydtest-mutation-plugin-0.0.0.0/sydtest-mutation-plugin.cabal" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
  653. 92.57 s [sydtest-mutation-plugin] Phase: patchPhase
  654. 92.57 s [sydtest-mutation-plugin] Phase: compileBuildDriverPhase
  655. 92.58 s [sydtest-mutation-plugin] setupCompileFlags: -package-db=/build/tmp.aPsl9Ui4vv/setup-package.conf.d -threaded
  656. 92.62 s [sydtest-mutation-plugin] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.aPsl9Ui4vv/Main.o )
  657. 92.67 s [sydtest-mutation-plugin] [2 of 2] Linking Setup
  658. 93.74 s [sydtest-mutation-plugin] Phase: updateAutotoolsGnuConfigScriptsPhase
  659. 93.75 s [sydtest-mutation-plugin] Phase: configurePhase
  660. 93.75 s [sydtest-mutation-plugin] configureFlags: --verbose --prefix=/nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc/share/doc/sydtest-mutation-plugin-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.aPsl9Ui4vv/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 --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=-Wunused-packages --ghc-options=-Werror --ghc-options=-Wno-deprecations --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
  661. 93.76 s [sydtest-mutation-plugin] Using Parsec parser
  662. 93.76 s [sydtest-mutation-plugin] Configuring sydtest-mutation-plugin-0.0.0.0...
  663. 94.28 s [sydtest-mutation-plugin] Dependency base >=4.7 && <5: using base-4.20.2.0
  664. 94.28 s [sydtest-mutation-plugin] Dependency bytestring: using bytestring-0.12.2.0
  665. 94.28 s [sydtest-mutation-plugin] Dependency directory: using directory-1.3.8.5
  666. 94.28 s [sydtest-mutation-plugin] Dependency filepath: using filepath-1.5.4.0
  667. 94.28 s [sydtest-mutation-plugin] Dependency ghc: using ghc-9.10.3
  668. 94.28 s [sydtest-mutation-plugin] Dependency ghc-boot: using ghc-boot-9.10.3
  669. 94.28 s [sydtest-mutation-plugin] Dependency mtl: using mtl-2.3.1
  670. 94.28 s [sydtest-mutation-plugin] Dependency path: using path-0.9.6
  671. 94.28 s [sydtest-mutation-plugin] Dependency path-io: using path-io-1.8.2
  672. 94.28 s [sydtest-mutation-plugin] Dependency sydtest-mutation-runtime: using sydtest-mutation-runtime-0.0.0.0
  673. 94.28 s [sydtest-mutation-plugin] Dependency template-haskell: using template-haskell-2.22.0.0
  674. 94.28 s [sydtest-mutation-plugin] Dependency text: using text-2.1.3
  675. 94.28 s [sydtest-mutation-plugin] Source component graph: component lib
  676. 94.28 s [sydtest-mutation-plugin] Configured component graph:
  677. 94.28 s [sydtest-mutation-plugin] component sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  678. 94.28 s [sydtest-mutation-plugin] include base-4.20.2.0-64da
  679. 94.28 s [sydtest-mutation-plugin] include bytestring-0.12.2.0-262e
  680. 94.28 s [sydtest-mutation-plugin] include directory-1.3.8.5-c84a
  681. 94.28 s [sydtest-mutation-plugin] include filepath-1.5.4.0-e600
  682. 94.28 s [sydtest-mutation-plugin] include ghc-9.10.3-05f6
  683. 94.28 s [sydtest-mutation-plugin] include ghc-boot-9.10.3-76c6
  684. 94.28 s [sydtest-mutation-plugin] include mtl-2.3.1-b4af
  685. 94.28 s [sydtest-mutation-plugin] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
  686. 94.28 s [sydtest-mutation-plugin] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
  687. 94.28 s [sydtest-mutation-plugin] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
  688. 94.28 s [sydtest-mutation-plugin] include template-haskell-2.22.0.0-09e7
  689. 94.28 s [sydtest-mutation-plugin] include text-2.1.3-c691
  690. 94.28 s [sydtest-mutation-plugin] Linked component graph:
  691. 94.28 s [sydtest-mutation-plugin] unit sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  692. 94.28 s [sydtest-mutation-plugin] include base-4.20.2.0-64da
  693. 94.28 s [sydtest-mutation-plugin] include bytestring-0.12.2.0-262e
  694. 94.28 s [sydtest-mutation-plugin] include directory-1.3.8.5-c84a
  695. 94.28 s [sydtest-mutation-plugin] include filepath-1.5.4.0-e600
  696. 94.28 s [sydtest-mutation-plugin] include ghc-9.10.3-05f6
  697. 94.28 s [sydtest-mutation-plugin] include ghc-boot-9.10.3-76c6
  698. 94.28 s [sydtest-mutation-plugin] include mtl-2.3.1-b4af
  699. 94.28 s [sydtest-mutation-plugin] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
  700. 94.28 s [sydtest-mutation-plugin] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
  701. 94.28 s [sydtest-mutation-plugin] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
  702. 94.28 s [sydtest-mutation-plugin] include template-haskell-2.22.0.0-09e7
  703. 94.28 s [sydtest-mutation-plugin] include text-2.1.3-c691
  704. 94.28 s [sydtest-mutation-plugin] Test.Syd.Mutation.Plugin=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin,Test.Syd.Mutation.Plugin.Instrument=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Instrument,Test.Syd.Mutation.Plugin.Operator.Arith=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Arith,Test.Syd.Mutation.Plugin.Operator.BoolLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.BoolLit,Test.Syd.Mutation.Plugin.Operator.Cmp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Cmp,Test.Syd.Mutation.Plugin.Operator.CondFlip=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.CondFlip,Test.Syd.Mutation.Plugin.Operator.ConstBool=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ConstBool,Test.Syd.Mutation.Plugin.Operator.IntLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.IntLit,Test.Syd.Mutation.Plugin.Operator.ListLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ListLit,Test.Syd.Mutation.Plugin.Operator.LogicOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.LogicOp,Test.Syd.Mutation.Plugin.Operator.MaybeOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.MaybeOp,Test.Syd.Mutation.Plugin.Operator.Negate=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Negate,Test.Syd.Mutation.Plugin.Operator.Util=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Util,Test.Syd.Mutation.Plugin.Operators=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators,Test.Syd.Mutation.Plugin.Operators.TH=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators.TH,Test.Syd.Mutation.Plugin.Runtime=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Runtime
  705. 94.28 s [sydtest-mutation-plugin] Ready component graph:
  706. 94.28 s [sydtest-mutation-plugin] definite sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  707. 94.28 s [sydtest-mutation-plugin] depends base-4.20.2.0-64da
  708. 94.28 s [sydtest-mutation-plugin] depends bytestring-0.12.2.0-262e
  709. 94.28 s [sydtest-mutation-plugin] depends directory-1.3.8.5-c84a
  710. 94.28 s [sydtest-mutation-plugin] depends filepath-1.5.4.0-e600
  711. 94.28 s [sydtest-mutation-plugin] depends ghc-9.10.3-05f6
  712. 94.28 s [sydtest-mutation-plugin] depends ghc-boot-9.10.3-76c6
  713. 94.28 s [sydtest-mutation-plugin] depends mtl-2.3.1-b4af
  714. 94.28 s [sydtest-mutation-plugin] depends path-0.9.6-JuNdYVciddTDWUiQr3NuVx
  715. 94.28 s [sydtest-mutation-plugin] depends path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
  716. 94.28 s [sydtest-mutation-plugin] depends sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
  717. 94.28 s [sydtest-mutation-plugin] depends template-haskell-2.22.0.0-09e7
  718. 94.28 s [sydtest-mutation-plugin] depends text-2.1.3-c691
  719. 94.28 s [sydtest-mutation-plugin] Using Cabal-3.12.1.0 compiled by ghc-9.10
  720. 94.28 s [sydtest-mutation-plugin] Using compiler: ghc-9.10.3
  721. 94.28 s [sydtest-mutation-plugin] Using install prefix:
  722. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0
  723. 94.28 s [sydtest-mutation-plugin] Executables installed in:
  724. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/bin
  725. 94.28 s [sydtest-mutation-plugin] Libraries installed in:
  726. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  727. 94.28 s [sydtest-mutation-plugin] Dynamic Libraries installed in:
  728. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  729. 94.28 s [sydtest-mutation-plugin] Private executables installed in:
  730. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
  731. 94.28 s [sydtest-mutation-plugin] Data files installed in:
  732. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
  733. 94.28 s [sydtest-mutation-plugin] Documentation installed in:
  734. 94.28 s [sydtest-mutation-plugin] /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc/share/doc/sydtest-mutation-plugin-0.0.0.0
  735. 94.28 s [sydtest-mutation-plugin] Configuration files installed in:
  736. 94.28 s [sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/etc
  737. 94.28 s [sydtest-mutation-plugin] No alex found
  738. 94.28 s [sydtest-mutation-plugin] Using ar found on system at:
  739. 94.28 s [sydtest-mutation-plugin] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  740. 94.28 s [sydtest-mutation-plugin] No c2hs found
  741. 94.28 s [sydtest-mutation-plugin] No cpphs found
  742. 94.28 s [sydtest-mutation-plugin] No doctest found
  743. 94.28 s [sydtest-mutation-plugin] Using gcc version 14.3.0 given by user at:
  744. 94.28 s [sydtest-mutation-plugin] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  745. 94.28 s [sydtest-mutation-plugin] Using ghc version 9.10.3 found on system at:
  746. 94.28 s [sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  747. 94.28 s [sydtest-mutation-plugin] Using ghc-pkg version 9.10.3 found on system at:
  748. 94.28 s [sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  749. 94.28 s [sydtest-mutation-plugin] No ghcjs found
  750. 94.28 s [sydtest-mutation-plugin] No ghcjs-pkg found
  751. 94.28 s [sydtest-mutation-plugin] No greencard found
  752. 94.28 s [sydtest-mutation-plugin] Using haddock version 2.31.1 found on system at:
  753. 94.28 s [sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  754. 94.28 s [sydtest-mutation-plugin] No happy found
  755. 94.28 s [sydtest-mutation-plugin] Using haskell-suite found on system at: haskell-suite-dummy-location
  756. 94.28 s [sydtest-mutation-plugin] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  757. 94.28 s [sydtest-mutation-plugin] No hmake found
  758. 94.28 s [sydtest-mutation-plugin] Using hpc version 0.69 found on system at:
  759. 94.28 s [sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  760. 94.28 s [sydtest-mutation-plugin] Using hsc2hs version 0.68.10 found on system at:
  761. 94.28 s [sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  762. 94.28 s [sydtest-mutation-plugin] Using hscolour version 1.25 found on system at:
  763. 94.28 s [sydtest-mutation-plugin] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  764. 94.28 s [sydtest-mutation-plugin] No jhc found
  765. 94.28 s [sydtest-mutation-plugin] Using ld found on system at:
  766. 94.28 s [sydtest-mutation-plugin] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  767. 94.28 s [sydtest-mutation-plugin] No pkg-config found
  768. 94.28 s [sydtest-mutation-plugin] Using runghc version 9.10.3 found on system at:
  769. 94.28 s [sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  770. 94.28 s [sydtest-mutation-plugin] Using strip version 2.44 found on system at:
  771. 94.28 s [sydtest-mutation-plugin] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  772. 94.28 s [sydtest-mutation-plugin] Using tar found on system at:
  773. 94.28 s [sydtest-mutation-plugin] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  774. 94.28 s [sydtest-mutation-plugin] No uhc found
  775. 94.55 s [sydtest-mutation-plugin] Phase: buildPhase
  776. 94.61 s [sydtest-mutation-plugin] Preprocessing library for sydtest-mutation-plugin-0.0.0.0...
  777. 94.61 s Waiting for lock on sydtest
  778. 94.61 s [sydtest-mutation-plugin] Building library for sydtest-mutation-plugin-0.0.0.0...
  779. 94.70 s [sydtest-mutation-plugin] [ 1 of 17] Compiling Paths_sydtest_mutation_plugin ( dist/build/autogen/Paths_sydtest_mutation_plugin.hs, dist/build/Paths_sydtest_mutation_plugin.o, dist/build/Paths_sydtest_mutation_plugin.dyn_o )
  780. 94.88 s [sydtest-mutation-plugin] [ 2 of 17] Compiling Test.Syd.Mutation.Plugin.Instrument ( src/Test/Syd/Mutation/Plugin/Instrument.hs, dist/build/Test/Syd/Mutation/Plugin/Instrument.o, dist/build/Test/Syd/Mutation/Plugin/Instrument.dyn_o )
  781. 96.50 s [sydtest-mutation-plugin] [ 3 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.BoolLit ( src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/BoolLit.o, dist/build/Test/Syd/Mutation/Plugin/Operator/BoolLit.dyn_o )
  782. 96.56 s [sydtest-mutation-plugin] [ 4 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.CondFlip ( src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/CondFlip.o, dist/build/Test/Syd/Mutation/Plugin/Operator/CondFlip.dyn_o )
  783. 96.56 s [sydtest-mutation-plugin] [ 5 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ConstBool ( src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ConstBool.o, dist/build/Test/Syd/Mutation/Plugin/Operator/ConstBool.dyn_o )
  784. 96.57 s [sydtest-mutation-plugin] [ 6 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ListLit ( src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ListLit.o, dist/build/Test/Syd/Mutation/Plugin/Operator/ListLit.dyn_o )
  785. 96.71 s [sydtest-mutation-plugin] [ 7 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.MaybeOp ( src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/MaybeOp.o, dist/build/Test/Syd/Mutation/Plugin/Operator/MaybeOp.dyn_o )
  786. 96.71 s [sydtest-mutation-plugin] [ 8 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Negate ( src/Test/Syd/Mutation/Plugin/Operator/Negate.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Negate.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Negate.dyn_o )
  787. 96.71 s [sydtest-mutation-plugin] [ 9 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Util ( src/Test/Syd/Mutation/Plugin/Operator/Util.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Util.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Util.dyn_o )
  788. 96.71 s [sydtest-mutation-plugin] [10 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.LogicOp ( src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/LogicOp.o, dist/build/Test/Syd/Mutation/Plugin/Operator/LogicOp.dyn_o )
  789. 96.71 s [sydtest-mutation-plugin] [11 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.IntLit ( src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/IntLit.o, dist/build/Test/Syd/Mutation/Plugin/Operator/IntLit.dyn_o )
  790. 96.71 s [sydtest-mutation-plugin] [12 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Cmp ( src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Cmp.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Cmp.dyn_o )
  791. 96.71 s [sydtest-mutation-plugin] [13 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Arith ( src/Test/Syd/Mutation/Plugin/Operator/Arith.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Arith.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Arith.dyn_o )
  792. 96.71 s [sydtest-mutation-plugin] [14 of 17] Compiling Test.Syd.Mutation.Plugin.Operators.TH ( src/Test/Syd/Mutation/Plugin/Operators/TH.hs, dist/build/Test/Syd/Mutation/Plugin/Operators/TH.o, dist/build/Test/Syd/Mutation/Plugin/Operators/TH.dyn_o )
  793. 96.71 s [sydtest-mutation-plugin] [15 of 17] Compiling Test.Syd.Mutation.Plugin.Operators ( src/Test/Syd/Mutation/Plugin/Operators.hs, dist/build/Test/Syd/Mutation/Plugin/Operators.o, dist/build/Test/Syd/Mutation/Plugin/Operators.dyn_o )
  794. 97.54 s [sydtest-mutation-plugin] [16 of 17] Compiling Test.Syd.Mutation.Plugin ( src/Test/Syd/Mutation/Plugin.hs, dist/build/Test/Syd/Mutation/Plugin.o, dist/build/Test/Syd/Mutation/Plugin.dyn_o )
  795. 97.82 s [sydtest-mutation-plugin] [17 of 17] Compiling Test.Syd.Mutation.Plugin.Runtime ( src/Test/Syd/Mutation/Plugin/Runtime.hs, dist/build/Test/Syd/Mutation/Plugin/Runtime.o, dist/build/Test/Syd/Mutation/Plugin/Runtime.dyn_o )
  796. 98.08 s [sydtest-mutation-plugin] [ 1 of 17] Compiling Paths_sydtest_mutation_plugin ( dist/build/autogen/Paths_sydtest_mutation_plugin.hs, dist/build/Paths_sydtest_mutation_plugin.p_o )
  797. 98.38 s [sydtest-mutation-plugin] [ 2 of 17] Compiling Test.Syd.Mutation.Plugin.Instrument ( src/Test/Syd/Mutation/Plugin/Instrument.hs, dist/build/Test/Syd/Mutation/Plugin/Instrument.p_o )
  798. 99.96 s [sydtest-mutation-plugin] [ 3 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.BoolLit ( src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/BoolLit.p_o )
  799. 100.17 s [sydtest-mutation-plugin] [ 4 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.CondFlip ( src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/CondFlip.p_o )
  800. 100.17 s [sydtest-mutation-plugin] [ 5 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ConstBool ( src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ConstBool.p_o )
  801. 100.20 s [sydtest-mutation-plugin] [ 6 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ListLit ( src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ListLit.p_o )
  802. 100.31 s [sydtest-mutation-plugin] [ 7 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.MaybeOp ( src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/MaybeOp.p_o )
  803. 100.31 s [sydtest-mutation-plugin] [ 8 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Negate ( src/Test/Syd/Mutation/Plugin/Operator/Negate.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Negate.p_o )
  804. 100.31 s [sydtest-mutation-plugin] [ 9 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Util ( src/Test/Syd/Mutation/Plugin/Operator/Util.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Util.p_o )
  805. 100.31 s [sydtest-mutation-plugin] [10 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.LogicOp ( src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/LogicOp.p_o )
  806. 100.31 s [sydtest-mutation-plugin] [11 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.IntLit ( src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/IntLit.p_o )
  807. 100.31 s [sydtest-mutation-plugin] [12 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Cmp ( src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Cmp.p_o )
  808. 100.31 s [sydtest-mutation-plugin] [13 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Arith ( src/Test/Syd/Mutation/Plugin/Operator/Arith.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Arith.p_o )
  809. 100.31 s [sydtest-mutation-plugin] [14 of 17] Compiling Test.Syd.Mutation.Plugin.Operators.TH ( src/Test/Syd/Mutation/Plugin/Operators/TH.hs, dist/build/Test/Syd/Mutation/Plugin/Operators/TH.p_o )
  810. 100.31 s [sydtest-mutation-plugin] [15 of 17] Compiling Test.Syd.Mutation.Plugin.Operators ( src/Test/Syd/Mutation/Plugin/Operators.hs, dist/build/Test/Syd/Mutation/Plugin/Operators.p_o )
  811. 101.09 s [sydtest-mutation-plugin] [16 of 17] Compiling Test.Syd.Mutation.Plugin ( src/Test/Syd/Mutation/Plugin.hs, dist/build/Test/Syd/Mutation/Plugin.p_o )
  812. 101.45 s [sydtest-mutation-plugin] [17 of 17] Compiling Test.Syd.Mutation.Plugin.Runtime ( src/Test/Syd/Mutation/Plugin/Runtime.hs, dist/build/Test/Syd/Mutation/Plugin/Runtime.p_o )
  813. 105.56 s [sydtest-mutation-plugin] Phase: checkPhase
  814. 105.60 s [sydtest-mutation-plugin] Package has no test suites.
  815. 105.60 s [sydtest-mutation-plugin] Phase: haddockPhase
  816. 105.73 s [sydtest-mutation-plugin] Preprocessing library for sydtest-mutation-plugin-0.0.0.0...
  817. 105.73 s [sydtest-mutation-plugin] Running Haddock on library for sydtest-mutation-plugin-0.0.0.0...
  818. 105.74 s [sydtest-mutation-plugin] Warning: The documentation for the following packages are not installed. No
  819. 105.74 s [sydtest-mutation-plugin] links will be generated to these packages: path-0.9.6, path-0.9.6,
  820. 105.74 s [sydtest-mutation-plugin] vector-0.13.2.0
  821. 106.05 s [sydtest-mutation-plugin] [ 1 of 17] Compiling Paths_sydtest_mutation_plugin ( dist/build/autogen/Paths_sydtest_mutation_plugin.hs, nothing )
  822. 106.08 s [sydtest-mutation-plugin] [ 2 of 17] Compiling Test.Syd.Mutation.Plugin.Instrument ( src/Test/Syd/Mutation/Plugin/Instrument.hs, /build/ghc1334_0/ghc_4.o, /build/ghc1334_0/ghc_4.dyn_o )
  823. 107.05 s [sydtest-mutation-plugin] [ 3 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.BoolLit ( src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs, /build/ghc1334_0/ghc_8.o, /build/ghc1334_0/ghc_8.dyn_o )
  824. 107.09 s [sydtest-mutation-plugin] [ 4 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.CondFlip ( src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs, /build/ghc1334_0/ghc_12.o, /build/ghc1334_0/ghc_12.dyn_o )
  825. 107.12 s [sydtest-mutation-plugin] [ 5 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ConstBool ( src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs, /build/ghc1334_0/ghc_14.o, /build/ghc1334_0/ghc_14.dyn_o )
  826. 107.17 s [sydtest-mutation-plugin] [ 6 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ListLit ( src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs, /build/ghc1334_0/ghc_18.o, /build/ghc1334_0/ghc_18.dyn_o )
  827. 107.23 s [sydtest-mutation-plugin] [ 7 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.MaybeOp ( src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs, /build/ghc1334_0/ghc_22.o, /build/ghc1334_0/ghc_22.dyn_o )
  828. 107.33 s [sydtest-mutation-plugin] [ 8 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Negate ( src/Test/Syd/Mutation/Plugin/Operator/Negate.hs, /build/ghc1334_0/ghc_24.o, /build/ghc1334_0/ghc_24.dyn_o )
  829. 107.37 s [sydtest-mutation-plugin] [ 9 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Util ( src/Test/Syd/Mutation/Plugin/Operator/Util.hs, /build/ghc1334_0/ghc_26.o, /build/ghc1334_0/ghc_26.dyn_o )
  830. 107.43 s [sydtest-mutation-plugin] [10 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.LogicOp ( src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs, /build/ghc1334_0/ghc_20.o, /build/ghc1334_0/ghc_20.dyn_o )
  831. 107.46 s [sydtest-mutation-plugin] [11 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.IntLit ( src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs, /build/ghc1334_0/ghc_16.o, /build/ghc1334_0/ghc_16.dyn_o )
  832. 107.49 s [sydtest-mutation-plugin] [12 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Cmp ( src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs, /build/ghc1334_0/ghc_10.o, /build/ghc1334_0/ghc_10.dyn_o )
  833. 107.53 s [sydtest-mutation-plugin] [13 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Arith ( src/Test/Syd/Mutation/Plugin/Operator/Arith.hs, /build/ghc1334_0/ghc_6.o, /build/ghc1334_0/ghc_6.dyn_o )
  834. 107.57 s [sydtest-mutation-plugin] [14 of 17] Compiling Test.Syd.Mutation.Plugin.Operators.TH ( src/Test/Syd/Mutation/Plugin/Operators/TH.hs, /build/ghc1334_0/ghc_28.o, /build/ghc1334_0/ghc_28.dyn_o )
  835. 107.65 s [sydtest-mutation-plugin] [15 of 17] Compiling Test.Syd.Mutation.Plugin.Operators ( src/Test/Syd/Mutation/Plugin/Operators.hs, nothing )
  836. 108.43 s [sydtest-mutation-plugin] [16 of 17] Compiling Test.Syd.Mutation.Plugin ( src/Test/Syd/Mutation/Plugin.hs, nothing )
  837. 108.54 s [sydtest-mutation-plugin] [17 of 17] Compiling Test.Syd.Mutation.Plugin.Runtime ( src/Test/Syd/Mutation/Plugin/Runtime.hs, nothing )
  838. 108.55 s [sydtest-mutation-plugin] Haddock coverage:
  839. 108.55 s [sydtest-mutation-plugin] Warning: 'MutationId' is ambiguous. It is defined
  840. 108.55 s [sydtest-mutation-plugin] * in ‘Test.Syd.Mutation.Runtime’
  841. 108.55 s [sydtest-mutation-plugin] * in ‘Test.Syd.Mutation.Runtime’
  842. 108.55 s [sydtest-mutation-plugin] You may be able to disambiguate the identifier by qualifying it or
  843. 108.55 s [sydtest-mutation-plugin] by specifying the type/value namespace explicitly.
  844. 108.55 s [sydtest-mutation-plugin] Defaulting to the one defined in ‘Test.Syd.Mutation.Runtime’
  845. 108.55 s [sydtest-mutation-plugin] Warning: 'ifMutation' is out of scope.
  846. 108.55 s [sydtest-mutation-plugin] If you qualify the identifier, haddock can try to link it anyway.
  847. 108.55 s [sydtest-mutation-plugin] Warning: 'srcTransform' is out of scope.
  848. 108.55 s [sydtest-mutation-plugin] If you qualify the identifier, haddock can try to link it anyway.
  849. 108.55 s [sydtest-mutation-plugin] 37% ( 3 / 8) in 'Test.Syd.Mutation.Plugin.Instrument'
  850. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  851. 108.55 s [sydtest-mutation-plugin] Module header
  852. 108.55 s [sydtest-mutation-plugin] InstrumentEnv (src/Test/Syd/Mutation/Plugin/Instrument.hs:78)
  853. 108.55 s [sydtest-mutation-plugin] InstrM (src/Test/Syd/Mutation/Plugin/Instrument.hs:102)
  854. 108.55 s [sydtest-mutation-plugin] liftTcM (src/Test/Syd/Mutation/Plugin/Instrument.hs:105)
  855. 108.55 s [sydtest-mutation-plugin] instrumentModule (src/Test/Syd/Mutation/Plugin/Instrument.hs:180)
  856. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.BoolLit'
  857. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  858. 108.55 s [sydtest-mutation-plugin] Module header
  859. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs:12)
  860. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.CondFlip'
  861. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  862. 108.55 s [sydtest-mutation-plugin] Module header
  863. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs:11)
  864. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.ConstBool'
  865. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  866. 108.55 s [sydtest-mutation-plugin] Module header
  867. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs:16)
  868. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.ListLit'
  869. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  870. 108.55 s [sydtest-mutation-plugin] Module header
  871. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs:11)
  872. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.MaybeOp'
  873. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  874. 108.55 s [sydtest-mutation-plugin] Module header
  875. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs:13)
  876. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.Negate'
  877. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  878. 108.55 s [sydtest-mutation-plugin] Module header
  879. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/Negate.hs:19)
  880. 108.55 s [sydtest-mutation-plugin] 80% ( 4 / 5) in 'Test.Syd.Mutation.Plugin.Operator.Util'
  881. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  882. 108.55 s [sydtest-mutation-plugin] Module header
  883. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.LogicOp'
  884. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  885. 108.55 s [sydtest-mutation-plugin] Module header
  886. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs:14)
  887. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.IntLit'
  888. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  889. 108.55 s [sydtest-mutation-plugin] Module header
  890. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs:12)
  891. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.Cmp'
  892. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  893. 108.55 s [sydtest-mutation-plugin] Module header
  894. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs:14)
  895. 108.55 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.Arith'
  896. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  897. 108.55 s [sydtest-mutation-plugin] Module header
  898. 108.55 s [sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/Arith.hs:13)
  899. 108.55 s [sydtest-mutation-plugin] 50% ( 1 / 2) in 'Test.Syd.Mutation.Plugin.Operators.TH'
  900. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  901. 108.55 s [sydtest-mutation-plugin] Module header
  902. 108.55 s [sydtest-mutation-plugin] 50% ( 1 / 2) in 'Test.Syd.Mutation.Plugin.Operators'
  903. 108.55 s [sydtest-mutation-plugin] Missing documentation for:
  904. 108.55 s [sydtest-mutation-plugin] allOperators (src/Test/Syd/Mutation/Plugin/Operators.hs:28)
  905. 108.56 s [sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin'
  906. 108.56 s [sydtest-mutation-plugin] Missing documentation for:
  907. 108.56 s [sydtest-mutation-plugin] Module header
  908. 108.56 s [sydtest-mutation-plugin] plugin (src/Test/Syd/Mutation/Plugin.hs:55)
  909. 108.56 s [sydtest-mutation-plugin] 66% ( 2 / 3) in 'Test.Syd.Mutation.Plugin.Runtime'
  910. 108.56 s [sydtest-mutation-plugin] Missing documentation for:
  911. 108.56 s [sydtest-mutation-plugin] Module header
  912. 109.71 s [sydtest-mutation-plugin] Warning: Test.Syd.Mutation.Plugin.Instrument: could not find link destinations for:
  913. 109.71 s [sydtest-mutation-plugin] - Path.Internal.Posix.Path
  914. 109.71 s [sydtest-mutation-plugin] - Path.Posix.File
  915. 109.71 s [sydtest-mutation-plugin] - Path.Posix.Rel
  916. 109.71 s [sydtest-mutation-plugin] - Test.Syd.Mutation.Plugin.Instrument.tryMutateWith
  917. 109.71 s [sydtest-mutation-plugin] Warning: Test.Syd.Mutation.Plugin.Runtime: could not find link destinations for:
  918. 109.71 s [sydtest-mutation-plugin] - Test.Syd.Mutation.Runtime.Rep_MutationId
  919. 118.20 s [sydtest-mutation-plugin] Documentation created: dist/doc/html/sydtest-mutation-plugin/,
  920. 118.22 s [sydtest-mutation-plugin] dist/doc/html/sydtest-mutation-plugin/sydtest-mutation-plugin.txt
  921. 118.26 s [sydtest-mutation-plugin] Phase: installPhase
  922. 118.35 s [sydtest-mutation-plugin] Installing library in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
  923. 118.70 s [sydtest-mutation-plugin] Phase: fixupPhase
  924. 118.72 s [sydtest-mutation-plugin] shrinking RPATHs of ELF executables and libraries in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0
  925. 118.73 s [sydtest-mutation-plugin] shrinking /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSsydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I-ghc9.10.3.so
  926. 118.75 s [sydtest-mutation-plugin] checking for references to /build/ in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0...
  927. 118.78 s [sydtest-mutation-plugin] patching script interpreter paths in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0
  928. 118.78 s [sydtest-mutation-plugin] stripping (with command strip and flags -S -p) in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib
  929. 118.86 s [sydtest-mutation-plugin] shrinking RPATHs of ELF executables and libraries in /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc
  930. 118.87 s [sydtest-mutation-plugin] checking for references to /build/ in /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc...
  931. 118.88 s [sydtest-mutation-plugin] patching script interpreter paths in /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc
  932. 119.01 s Progress: 5 of 15 built
  933. 119.05 s Building really-safe-money
  934. 119.25 s [really-safe-money] Phase: setupCompilerEnvironmentPhase
  935. 119.25 s [really-safe-money] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  936. 119.49 s [really-safe-money] Phase: unpackPhase
  937. 119.49 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
  938. 119.50 s [really-safe-money] source root is really-safe-money-0.0.0.0
  939. 119.50 s [really-safe-money] setting SOURCE_DATE_EPOCH to timestamp 1778687704 of file "really-safe-money-0.0.0.0/src/Numeric/DecimalLiteral.hs"
  940. 119.51 s [really-safe-money] Phase: patchPhase
  941. 119.52 s [really-safe-money] Phase: compileBuildDriverPhase
  942. 119.52 s [really-safe-money] setupCompileFlags: -package-db=/build/tmp.50k2gE7QJ5/setup-package.conf.d -threaded
  943. 119.57 s [really-safe-money] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.50k2gE7QJ5/Main.o )
  944. 119.61 s [really-safe-money] [2 of 2] Linking Setup
  945. 120.72 s [really-safe-money] Phase: updateAutotoolsGnuConfigScriptsPhase
  946. 120.72 s [really-safe-money] Phase: configurePhase
  947. 120.73 s [really-safe-money] configureFlags: --verbose --prefix=/nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.50k2gE7QJ5/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
  948. 120.73 s [really-safe-money] Using Parsec parser
  949. 120.73 s [really-safe-money] Configuring really-safe-money-0.0.0.0...
  950. 121.26 s [really-safe-money] Dependency base >=4.7 && <5: using base-4.20.2.0
  951. 121.26 s [really-safe-money] Dependency containers: using containers-0.7
  952. 121.26 s [really-safe-money] Dependency deepseq: using deepseq-1.5.0.0
  953. 121.26 s [really-safe-money] Dependency validity: using validity-0.12.1.0
  954. 121.26 s [really-safe-money] Dependency validity-containers: using validity-containers-0.5.0.5
  955. 121.26 s [really-safe-money] Dependency validity-scientific: using validity-scientific-0.2.0.3
  956. 121.26 s [really-safe-money] Source component graph: component lib
  957. 121.26 s [really-safe-money] Configured component graph:
  958. 121.26 s [really-safe-money] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  959. 121.26 s [really-safe-money] include base-4.20.2.0-64da
  960. 121.26 s [really-safe-money] include containers-0.7-504a
  961. 121.26 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  962. 121.26 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  963. 121.26 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  964. 121.26 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  965. 121.26 s [really-safe-money] Linked component graph:
  966. 121.26 s [really-safe-money] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  967. 121.26 s [really-safe-money] include base-4.20.2.0-64da
  968. 121.26 s [really-safe-money] include containers-0.7-504a
  969. 121.26 s [really-safe-money] include deepseq-1.5.0.0-9a2c
  970. 121.26 s [really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  971. 121.26 s [really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  972. 121.26 s [really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  973. 121.26 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
  974. 121.26 s [really-safe-money] Ready component graph:
  975. 121.26 s [really-safe-money] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  976. 121.26 s [really-safe-money] depends base-4.20.2.0-64da
  977. 121.26 s [really-safe-money] depends containers-0.7-504a
  978. 121.26 s [really-safe-money] depends deepseq-1.5.0.0-9a2c
  979. 121.26 s [really-safe-money] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
  980. 121.26 s [really-safe-money] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
  981. 121.26 s [really-safe-money] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
  982. 121.26 s [really-safe-money] Using Cabal-3.12.1.0 compiled by ghc-9.10
  983. 121.26 s [really-safe-money] Using compiler: ghc-9.10.3
  984. 121.26 s [really-safe-money] Using install prefix:
  985. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0
  986. 121.26 s [really-safe-money] Executables installed in:
  987. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/bin
  988. 121.26 s [really-safe-money] Libraries installed in:
  989. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-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
  990. 121.26 s [really-safe-money] Dynamic Libraries installed in:
  991. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  992. 121.26 s [really-safe-money] Private executables installed in:
  993. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  994. 121.26 s [really-safe-money] Data files installed in:
  995. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  996. 121.26 s [really-safe-money] Documentation installed in:
  997. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
  998. 121.26 s [really-safe-money] Configuration files installed in:
  999. 121.26 s [really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/etc
  1000. 121.26 s [really-safe-money] No alex found
  1001. 121.26 s [really-safe-money] Using ar found on system at:
  1002. 121.26 s [really-safe-money] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  1003. 121.26 s [really-safe-money] No c2hs found
  1004. 121.26 s [really-safe-money] No cpphs found
  1005. 121.26 s [really-safe-money] No doctest found
  1006. 121.26 s [really-safe-money] Using gcc version 14.3.0 given by user at:
  1007. 121.26 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  1008. 121.26 s [really-safe-money] Using ghc version 9.10.3 found on system at:
  1009. 121.26 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  1010. 121.26 s [really-safe-money] Using ghc-pkg version 9.10.3 found on system at:
  1011. 121.26 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  1012. 121.26 s [really-safe-money] No ghcjs found
  1013. 121.26 s [really-safe-money] No ghcjs-pkg found
  1014. 121.26 s [really-safe-money] No greencard found
  1015. 121.26 s [really-safe-money] Using haddock version 2.31.1 found on system at:
  1016. 121.26 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  1017. 121.26 s [really-safe-money] No happy found
  1018. 121.26 s [really-safe-money] Using haskell-suite found on system at: haskell-suite-dummy-location
  1019. 121.26 s [really-safe-money] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  1020. 121.26 s [really-safe-money] No hmake found
  1021. 121.26 s [really-safe-money] Using hpc version 0.69 found on system at:
  1022. 121.26 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  1023. 121.26 s [really-safe-money] Using hsc2hs version 0.68.10 found on system at:
  1024. 121.26 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  1025. 121.26 s [really-safe-money] Using hscolour version 1.25 found on system at:
  1026. 121.26 s [really-safe-money] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  1027. 121.26 s [really-safe-money] No jhc found
  1028. 121.26 s [really-safe-money] Using ld found on system at:
  1029. 121.26 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  1030. 121.26 s [really-safe-money] No pkg-config found
  1031. 121.26 s [really-safe-money] Using runghc version 9.10.3 found on system at:
  1032. 121.26 s [really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  1033. 121.26 s [really-safe-money] Using strip version 2.44 found on system at:
  1034. 121.26 s [really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  1035. 121.26 s [really-safe-money] Using tar found on system at:
  1036. 121.26 s [really-safe-money] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  1037. 121.26 s [really-safe-money] No uhc found
  1038. 121.41 s [really-safe-money] Phase: buildPhase
  1039. 121.41 s [really-safe-money] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest
  1040. 121.44 s [really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
  1041. 121.45 s [really-safe-money] Building library for really-safe-money-0.0.0.0...
  1042. 121.60 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 )
  1043. 121.86 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  1044. 121.86 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  1045. 121.86 s [really-safe-money] @@ -393,5 +393,5 @@
  1046. 121.86 s [really-safe-money] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  1047. 121.86 s [really-safe-money] where
  1048. 121.86 s [really-safe-money] go = \case
  1049. 121.86 s [really-safe-money] - Nothing -> Just True
  1050. 121.86 s [really-safe-money] + Nothing -> Just False
  1051. 121.86 s [really-safe-money] s -> s
  1052. 121.88 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  1053. 121.88 s [really-safe-money] @@ -365,7 +365,7 @@
  1054. 121.88 s [really-safe-money] setMinimumDigits wantedDigits dl =
  1055. 121.88 s [really-safe-money] let currentDigits :: Word8
  1056. 121.88 s [really-safe-money] currentDigits = digits dl
  1057. 121.88 s [really-safe-money] - in if wantedDigits <= currentDigits
  1058. 121.88 s [really-safe-money] + in if True
  1059. 121.88 s [really-safe-money] then dl
  1060. 121.88 s [really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
  1061. 121.88 s [really-safe-money] where
  1062. 121.88 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  1063. 121.88 s [really-safe-money] @@ -365,7 +365,7 @@
  1064. 121.88 s [really-safe-money] setMinimumDigits wantedDigits dl =
  1065. 121.88 s [really-safe-money] let currentDigits :: Word8
  1066. 121.88 s [really-safe-money] currentDigits = digits dl
  1067. 121.88 s [really-safe-money] - in if wantedDigits <= currentDigits
  1068. 121.88 s [really-safe-money] + in if False
  1069. 121.88 s [really-safe-money] then dl
  1070. 121.88 s [really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
  1071. 121.88 s [really-safe-money] where
  1072. 121.88 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  1073. 121.88 s [really-safe-money] @@ -365,7 +365,7 @@
  1074. 121.88 s [really-safe-money] setMinimumDigits wantedDigits dl =
  1075. 121.88 s [really-safe-money] let currentDigits :: Word8
  1076. 121.88 s [really-safe-money] currentDigits = digits dl
  1077. 121.88 s [really-safe-money] - in if wantedDigits <= currentDigits
  1078. 121.88 s [really-safe-money] + in if not (wantedDigits <= currentDigits)
  1079. 121.88 s [really-safe-money] then dl
  1080. 121.88 s [really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
  1081. 121.88 s [really-safe-money] where
  1082. 121.88 s [really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
  1083. 121.88 s [really-safe-money] @@ -365,9 +365,9 @@
  1084. 121.88 s [really-safe-money] setMinimumDigits wantedDigits dl =
  1085. 121.88 s [really-safe-money] let currentDigits :: Word8
  1086. 121.88 s [really-safe-money] currentDigits = digits dl
  1087. 121.88 s [really-safe-money] - in if wantedDigits <= currentDigits
  1088. 121.88 s [really-safe-money] - then dl
  1089. 121.88 s [really-safe-money] - else increaseDigits (wantedDigits - currentDigits) dl
  1090. 121.88 s [really-safe-money] + in if wantedDigits <= currentDigits
  1091. 121.88 s [really-safe-money] + then dl
  1092. 121.88 s [really-safe-money] + else increaseDigits (wantedDigits - currentDigits) dl
  1093. 121.88 s [really-safe-money] where
  1094. 121.88 s [really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  1095. 121.88 s [really-safe-money] increaseDigits 0 = id
  1096. 121.88 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  1097. 121.88 s [really-safe-money] @@ -372,7 +372,7 @@
  1098. 121.88 s [really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  1099. 121.88 s [really-safe-money] increaseDigits 0 = id
  1100. 121.88 s [really-safe-money] increaseDigits w = \case
  1101. 121.88 s [really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  1102. 121.88 s [really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  1103. 121.88 s [really-safe-money]
  1104. 121.88 s [really-safe-money] -- | Ensures that a positive literal has no sign
  1105. 121.88 s [really-safe-money] --
  1106. 121.88 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  1107. 121.88 s [really-safe-money] @@ -372,7 +372,7 @@
  1108. 121.88 s [really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  1109. 121.88 s [really-safe-money] increaseDigits 0 = id
  1110. 121.88 s [really-safe-money] increaseDigits w = \case
  1111. 121.88 s [really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  1112. 121.88 s [really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  1113. 121.88 s [really-safe-money]
  1114. 121.88 s [really-safe-money] -- | Ensures that a positive literal has no sign
  1115. 121.88 s [really-safe-money] --
  1116. 121.88 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  1117. 121.88 s [really-safe-money] @@ -334,7 +334,7 @@
  1118. 121.88 s [really-safe-money] pure $ fromIntegral n
  1119. 121.88 s [really-safe-money]
  1120. 121.88 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1121. 121.88 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  1122. 121.88 s [really-safe-money] +numSign a = if a >= 1 then Nothing else Just False
  1123. 121.88 s [really-safe-money]
  1124. 121.88 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  1125. 121.88 s [really-safe-money] signSignum = \case
  1126. 121.88 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  1127. 121.88 s [really-safe-money] @@ -334,7 +334,7 @@
  1128. 121.88 s [really-safe-money] pure $ fromIntegral n
  1129. 121.88 s [really-safe-money]
  1130. 121.88 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1131. 121.88 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  1132. 121.88 s [really-safe-money] +numSign a = if True then Nothing else Just False
  1133. 121.88 s [really-safe-money]
  1134. 121.88 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  1135. 121.88 s [really-safe-money] signSignum = \case
  1136. 121.88 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  1137. 121.88 s [really-safe-money] @@ -334,7 +334,7 @@
  1138. 121.88 s [really-safe-money] pure $ fromIntegral n
  1139. 121.88 s [really-safe-money]
  1140. 121.88 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1141. 121.88 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  1142. 121.88 s [really-safe-money] +numSign a = if False then Nothing else Just False
  1143. 121.88 s [really-safe-money]
  1144. 121.88 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  1145. 121.88 s [really-safe-money] signSignum = \case
  1146. 121.88 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  1147. 121.88 s [really-safe-money] @@ -334,7 +334,7 @@
  1148. 121.88 s [really-safe-money] pure $ fromIntegral n
  1149. 121.88 s [really-safe-money]
  1150. 121.88 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1151. 121.88 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  1152. 121.88 s [really-safe-money] +numSign a = if not (a >= 0) then Nothing else Just False
  1153. 121.88 s [really-safe-money]
  1154. 121.88 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  1155. 121.88 s [really-safe-money] signSignum = \case
  1156. 121.88 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  1157. 121.88 s [really-safe-money] @@ -334,7 +334,7 @@
  1158. 121.88 s [really-safe-money] pure $ fromIntegral n
  1159. 121.88 s [really-safe-money]
  1160. 121.88 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1161. 121.88 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  1162. 121.88 s [really-safe-money] +numSign a = if a >= 0 then Nothing else Just True
  1163. 121.88 s [really-safe-money]
  1164. 121.88 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  1165. 121.88 s [really-safe-money] signSignum = \case
  1166. 121.88 s [really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
  1167. 121.88 s [really-safe-money] @@ -334,7 +334,7 @@
  1168. 121.88 s [really-safe-money] pure $ fromIntegral n
  1169. 121.88 s [really-safe-money]
  1170. 121.89 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1171. 121.89 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  1172. 121.89 s [really-safe-money] +numSign a = if a >= 0 then Nothing else Just False
  1173. 121.89 s [really-safe-money]
  1174. 121.89 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  1175. 121.89 s [really-safe-money] signSignum = \case
  1176. 121.89 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  1177. 121.89 s [really-safe-money] @@ -329,7 +329,7 @@
  1178. 121.89 s [really-safe-money] toInt :: DecimalLiteral -> Maybe Int
  1179. 121.89 s [really-safe-money] toInt dl = do
  1180. 121.89 s [really-safe-money] n <- toInteger dl
  1181. 121.89 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
  1182. 121.89 s [really-safe-money] + guard $ True
  1183. 121.89 s [really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
  1184. 121.89 s [really-safe-money] pure $ fromIntegral n
  1185. 121.89 s [really-safe-money]
  1186. 121.89 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  1187. 121.89 s [really-safe-money] @@ -329,7 +329,7 @@
  1188. 121.89 s [really-safe-money] toInt :: DecimalLiteral -> Maybe Int
  1189. 121.89 s [really-safe-money] toInt dl = do
  1190. 121.89 s [really-safe-money] n <- toInteger dl
  1191. 121.89 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
  1192. 121.89 s [really-safe-money] + guard $ False
  1193. 121.89 s [really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
  1194. 121.89 s [really-safe-money] pure $ fromIntegral n
  1195. 121.89 s [really-safe-money]
  1196. 121.89 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  1197. 121.89 s [really-safe-money] @@ -329,7 +329,7 @@
  1198. 121.89 s [really-safe-money] toInt :: DecimalLiteral -> Maybe Int
  1199. 121.89 s [really-safe-money] toInt dl = do
  1200. 121.89 s [really-safe-money] n <- toInteger dl
  1201. 121.89 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
  1202. 121.89 s [really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Int))
  1203. 121.89 s [really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
  1204. 121.89 s [really-safe-money] pure $ fromIntegral n
  1205. 121.89 s [really-safe-money]
  1206. 121.89 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  1207. 121.89 s [really-safe-money] @@ -330,7 +330,7 @@
  1208. 121.89 s [really-safe-money] toInt dl = do
  1209. 121.89 s [really-safe-money] n <- toInteger dl
  1210. 121.89 s [really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
  1211. 121.89 s [really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
  1212. 121.89 s [really-safe-money] + guard $ True
  1213. 121.89 s [really-safe-money] pure $ fromIntegral n
  1214. 121.89 s [really-safe-money]
  1215. 121.89 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1216. 121.89 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  1217. 121.89 s [really-safe-money] @@ -330,7 +330,7 @@
  1218. 121.89 s [really-safe-money] toInt dl = do
  1219. 121.89 s [really-safe-money] n <- toInteger dl
  1220. 121.89 s [really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
  1221. 121.89 s [really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
  1222. 121.89 s [really-safe-money] + guard $ False
  1223. 121.89 s [really-safe-money] pure $ fromIntegral n
  1224. 121.89 s [really-safe-money]
  1225. 121.89 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1226. 121.89 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  1227. 121.89 s [really-safe-money] @@ -330,7 +330,7 @@
  1228. 121.89 s [really-safe-money] toInt dl = do
  1229. 121.89 s [really-safe-money] n <- toInteger dl
  1230. 121.89 s [really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
  1231. 121.89 s [really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
  1232. 121.89 s [really-safe-money] + guard $ not (n >= fromIntegral (minBound :: Int))
  1233. 121.89 s [really-safe-money] pure $ fromIntegral n
  1234. 121.89 s [really-safe-money]
  1235. 121.89 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  1236. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  1237. 121.89 s [really-safe-money] @@ -312,7 +312,7 @@
  1238. 121.89 s [really-safe-money]
  1239. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from an 'Integer'
  1240. 121.89 s [really-safe-money] fromInteger :: Integer -> DecimalLiteral
  1241. 121.89 s [really-safe-money] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  1242. 121.89 s [really-safe-money] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  1243. 121.89 s [really-safe-money]
  1244. 121.89 s [really-safe-money] -- | Turn a 'DecimalLiteral' into an 'Integer'
  1245. 121.89 s [really-safe-money] toInteger :: DecimalLiteral -> Maybe Integer
  1246. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  1247. 121.89 s [really-safe-money] @@ -301,7 +301,7 @@
  1248. 121.89 s [really-safe-money]
  1249. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  1250. 121.89 s [really-safe-money] fromNatural :: Natural -> DecimalLiteral
  1251. 121.89 s [really-safe-money] -fromNatural n = DecimalLiteral Nothing n 0
  1252. 121.89 s [really-safe-money] +fromNatural n = DecimalLiteral Nothing n 1
  1253. 121.89 s [really-safe-money]
  1254. 121.89 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Natural'
  1255. 121.89 s [really-safe-money] toNatural :: DecimalLiteral -> Maybe Natural
  1256. 121.89 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  1257. 121.89 s [really-safe-money] @@ -296,7 +296,7 @@
  1258. 121.89 s [really-safe-money] toWord :: DecimalLiteral -> Maybe Word
  1259. 121.89 s [really-safe-money] toWord dl = do
  1260. 121.89 s [really-safe-money] n <- toNatural dl
  1261. 121.89 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
  1262. 121.89 s [really-safe-money] + guard $ True
  1263. 121.89 s [really-safe-money] pure $ fromIntegral n
  1264. 121.89 s [really-safe-money]
  1265. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  1266. 121.89 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  1267. 121.89 s [really-safe-money] @@ -296,7 +296,7 @@
  1268. 121.89 s [really-safe-money] toWord :: DecimalLiteral -> Maybe Word
  1269. 121.89 s [really-safe-money] toWord dl = do
  1270. 121.89 s [really-safe-money] n <- toNatural dl
  1271. 121.89 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
  1272. 121.89 s [really-safe-money] + guard $ False
  1273. 121.89 s [really-safe-money] pure $ fromIntegral n
  1274. 121.89 s [really-safe-money]
  1275. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  1276. 121.89 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  1277. 121.89 s [really-safe-money] @@ -296,7 +296,7 @@
  1278. 121.89 s [really-safe-money] toWord :: DecimalLiteral -> Maybe Word
  1279. 121.89 s [really-safe-money] toWord dl = do
  1280. 121.89 s [really-safe-money] n <- toNatural dl
  1281. 121.89 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
  1282. 121.89 s [really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Word))
  1283. 121.89 s [really-safe-money] pure $ fromIntegral n
  1284. 121.89 s [really-safe-money]
  1285. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  1286. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  1287. 121.89 s [really-safe-money] @@ -286,7 +286,7 @@
  1288. 121.89 s [really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  1289. 121.89 s [really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
  1290. 121.89 s [really-safe-money] Just False -> Nothing
  1291. 121.89 s [really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
  1292. 121.89 s [really-safe-money] + _ -> Just $ fromIntegral m / (0 ^ e)
  1293. 121.89 s [really-safe-money]
  1294. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
  1295. 121.89 s [really-safe-money] fromWord :: Word -> DecimalLiteral
  1296. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  1297. 121.89 s [really-safe-money] @@ -286,7 +286,7 @@
  1298. 121.89 s [really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  1299. 121.89 s [really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
  1300. 121.89 s [really-safe-money] Just False -> Nothing
  1301. 121.89 s [really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
  1302. 121.89 s [really-safe-money] + _ -> Just $ fromIntegral m / (1 ^ e)
  1303. 121.89 s [really-safe-money]
  1304. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
  1305. 121.89 s [really-safe-money] fromWord :: Word -> DecimalLiteral
  1306. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  1307. 121.89 s [really-safe-money] @@ -286,7 +286,7 @@
  1308. 121.89 s [really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  1309. 121.89 s [really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
  1310. 121.89 s [really-safe-money] Just False -> Nothing
  1311. 121.89 s [really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
  1312. 121.89 s [really-safe-money] + _ -> Just $ fromIntegral m / (-10 ^ e)
  1313. 121.89 s [really-safe-money]
  1314. 121.89 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
  1315. 121.89 s [really-safe-money] fromWord :: Word -> DecimalLiteral
  1316. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  1317. 121.89 s [really-safe-money] @@ -233,7 +233,7 @@
  1318. 121.89 s [really-safe-money] -- >>> fromRatio (1 % 3)
  1319. 121.89 s [really-safe-money] -- Nothing
  1320. 121.89 s [really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  1321. 121.89 s [really-safe-money] -fromRatio = fromRationalRepetendLimited 256
  1322. 121.89 s [really-safe-money] +fromRatio = fromRationalRepetendLimited 0
  1323. 121.89 s [really-safe-money] where
  1324. 121.89 s [really-safe-money] fromRationalRepetendLimited ::
  1325. 121.89 s [really-safe-money] -- limit
  1326. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  1327. 121.89 s [really-safe-money] @@ -233,7 +233,7 @@
  1328. 121.89 s [really-safe-money] -- >>> fromRatio (1 % 3)
  1329. 121.89 s [really-safe-money] -- Nothing
  1330. 121.89 s [really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  1331. 121.89 s [really-safe-money] -fromRatio = fromRationalRepetendLimited 256
  1332. 121.89 s [really-safe-money] +fromRatio = fromRationalRepetendLimited 1
  1333. 121.89 s [really-safe-money] where
  1334. 121.89 s [really-safe-money] fromRationalRepetendLimited ::
  1335. 121.89 s [really-safe-money] -- limit
  1336. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  1337. 121.89 s [really-safe-money] @@ -233,7 +233,7 @@
  1338. 121.89 s [really-safe-money] -- >>> fromRatio (1 % 3)
  1339. 121.89 s [really-safe-money] -- Nothing
  1340. 121.89 s [really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  1341. 121.89 s [really-safe-money] -fromRatio = fromRationalRepetendLimited 256
  1342. 121.89 s [really-safe-money] +fromRatio = fromRationalRepetendLimited -256
  1343. 121.89 s [really-safe-money] where
  1344. 121.89 s [really-safe-money] fromRationalRepetendLimited ::
  1345. 121.89 s [really-safe-money] -- limit
  1346. 121.89 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  1347. 121.89 s [really-safe-money] @@ -241,7 +241,7 @@
  1348. 121.89 s [really-safe-money] Ratio Natural ->
  1349. 121.89 s [really-safe-money] Maybe DecimalLiteral
  1350. 121.89 s [really-safe-money] fromRationalRepetendLimited l rational
  1351. 121.89 s [really-safe-money] - | d == 0 = Nothing
  1352. 121.89 s [really-safe-money] + | d == 1 = Nothing
  1353. 121.89 s [really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
  1354. 121.89 s [really-safe-money] where
  1355. 121.89 s [really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  1356. 121.90 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  1357. 121.90 s [really-safe-money] @@ -241,7 +241,7 @@
  1358. 121.90 s [really-safe-money] Ratio Natural ->
  1359. 121.90 s [really-safe-money] Maybe DecimalLiteral
  1360. 121.90 s [really-safe-money] fromRationalRepetendLimited l rational
  1361. 121.90 s [really-safe-money] - | d == 0 = Nothing
  1362. 121.90 s [really-safe-money] + | True = Nothing
  1363. 121.90 s [really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
  1364. 121.90 s [really-safe-money] where
  1365. 121.90 s [really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  1366. 121.90 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  1367. 121.90 s [really-safe-money] @@ -241,7 +241,7 @@
  1368. 121.90 s [really-safe-money] Ratio Natural ->
  1369. 121.90 s [really-safe-money] Maybe DecimalLiteral
  1370. 121.90 s [really-safe-money] fromRationalRepetendLimited l rational
  1371. 121.90 s [really-safe-money] - | d == 0 = Nothing
  1372. 121.90 s [really-safe-money] + | not (d == 0) = Nothing
  1373. 121.90 s [really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
  1374. 121.90 s [really-safe-money] where
  1375. 121.90 s [really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  1376. 121.90 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  1377. 121.90 s [really-safe-money] @@ -261,7 +261,7 @@
  1378. 121.90 s [really-safe-money] Just (c, e)
  1379. 121.90 s [really-safe-money] longDivWithLimit !c !e ns !n
  1380. 121.90 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  1381. 121.90 s [really-safe-money] - | S.member n ns = Nothing
  1382. 121.90 s [really-safe-money] + | True = Nothing
  1383. 121.90 s [really-safe-money] -- Over the limit, stop trying
  1384. 121.90 s [really-safe-money] | e >= l = Nothing
  1385. 121.90 s [really-safe-money] | n < d =
  1386. 121.90 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  1387. 121.90 s [really-safe-money] @@ -261,7 +261,7 @@
  1388. 121.90 s [really-safe-money] Just (c, e)
  1389. 121.90 s [really-safe-money] longDivWithLimit !c !e ns !n
  1390. 121.90 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  1391. 121.90 s [really-safe-money] - | S.member n ns = Nothing
  1392. 121.90 s [really-safe-money] + | not (S.member n ns) = Nothing
  1393. 121.90 s [really-safe-money] -- Over the limit, stop trying
  1394. 121.90 s [really-safe-money] | e >= l = Nothing
  1395. 121.90 s [really-safe-money] | n < d =
  1396. 121.90 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  1397. 121.90 s [really-safe-money] @@ -263,7 +263,7 @@
  1398. 121.90 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  1399. 121.90 s [really-safe-money] | S.member n ns = Nothing
  1400. 121.90 s [really-safe-money] -- Over the limit, stop trying
  1401. 121.90 s [really-safe-money] - | e >= l = Nothing
  1402. 121.90 s [really-safe-money] + | True = Nothing
  1403. 121.90 s [really-safe-money] | n < d =
  1404. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1405. 121.90 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1406. 121.90 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  1407. 121.90 s [really-safe-money] @@ -263,7 +263,7 @@
  1408. 121.90 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  1409. 121.90 s [really-safe-money] | S.member n ns = Nothing
  1410. 121.90 s [really-safe-money] -- Over the limit, stop trying
  1411. 121.90 s [really-safe-money] - | e >= l = Nothing
  1412. 121.90 s [really-safe-money] + | not (e >= l) = Nothing
  1413. 121.90 s [really-safe-money] | n < d =
  1414. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1415. 121.90 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1416. 121.90 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  1417. 121.90 s [really-safe-money] @@ -264,7 +264,7 @@
  1418. 121.90 s [really-safe-money] | S.member n ns = Nothing
  1419. 121.90 s [really-safe-money] -- Over the limit, stop trying
  1420. 121.90 s [really-safe-money] | e >= l = Nothing
  1421. 121.90 s [really-safe-money] - | n < d =
  1422. 121.90 s [really-safe-money] + | True =
  1423. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1424. 121.90 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1425. 121.90 s [really-safe-money] | otherwise =
  1426. 121.90 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  1427. 121.90 s [really-safe-money] @@ -264,7 +264,7 @@
  1428. 121.90 s [really-safe-money] | S.member n ns = Nothing
  1429. 121.90 s [really-safe-money] -- Over the limit, stop trying
  1430. 121.90 s [really-safe-money] | e >= l = Nothing
  1431. 121.90 s [really-safe-money] - | n < d =
  1432. 121.90 s [really-safe-money] + | not (n < d) =
  1433. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1434. 121.90 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1435. 121.90 s [really-safe-money] | otherwise =
  1436. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  1437. 121.90 s [really-safe-money] @@ -266,7 +266,7 @@
  1438. 121.90 s [really-safe-money] | e >= l = Nothing
  1439. 121.90 s [really-safe-money] | n < d =
  1440. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1441. 121.90 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1442. 121.90 s [really-safe-money] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  1443. 121.90 s [really-safe-money] | otherwise =
  1444. 121.90 s [really-safe-money] let (q, r') = n `quotRem` d
  1445. 121.90 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  1446. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  1447. 121.90 s [really-safe-money] @@ -266,7 +266,7 @@
  1448. 121.90 s [really-safe-money] | e >= l = Nothing
  1449. 121.90 s [really-safe-money] | n < d =
  1450. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1451. 121.90 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1452. 121.90 s [really-safe-money] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  1453. 121.90 s [really-safe-money] | otherwise =
  1454. 121.90 s [really-safe-money] let (q, r') = n `quotRem` d
  1455. 121.90 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  1456. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  1457. 121.90 s [really-safe-money] @@ -266,7 +266,7 @@
  1458. 121.90 s [really-safe-money] | e >= l = Nothing
  1459. 121.90 s [really-safe-money] | n < d =
  1460. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1461. 121.90 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1462. 121.90 s [really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  1463. 121.90 s [really-safe-money] | otherwise =
  1464. 121.90 s [really-safe-money] let (q, r') = n `quotRem` d
  1465. 121.90 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  1466. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  1467. 121.90 s [really-safe-money] @@ -266,7 +266,7 @@
  1468. 121.90 s [really-safe-money] | e >= l = Nothing
  1469. 121.90 s [really-safe-money] | n < d =
  1470. 121.90 s [really-safe-money] let !ns' = S.insert n ns
  1471. 121.90 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  1472. 121.90 s [really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  1473. 121.90 s [really-safe-money] | otherwise =
  1474. 121.90 s [really-safe-money] let (q, r') = n `quotRem` d
  1475. 121.90 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  1476. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  1477. 121.90 s [really-safe-money] @@ -249,7 +249,7 @@
  1478. 121.90 s [really-safe-money] num = numerator rational
  1479. 121.90 s [really-safe-money]
  1480. 121.90 s [really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
  1481. 121.90 s [really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
  1482. 121.90 s [really-safe-money] + longDiv = longDivWithLimit 1 0 S.empty
  1483. 121.90 s [really-safe-money]
  1484. 121.90 s [really-safe-money] longDivWithLimit ::
  1485. 121.90 s [really-safe-money] Natural ->
  1486. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  1487. 121.90 s [really-safe-money] @@ -249,7 +249,7 @@
  1488. 121.90 s [really-safe-money] num = numerator rational
  1489. 121.90 s [really-safe-money]
  1490. 121.90 s [really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
  1491. 121.90 s [really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
  1492. 121.90 s [really-safe-money] + longDiv = longDivWithLimit 0 1 S.empty
  1493. 121.90 s [really-safe-money]
  1494. 121.90 s [really-safe-money] longDivWithLimit ::
  1495. 121.90 s [really-safe-money] Natural ->
  1496. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  1497. 121.90 s [really-safe-money] @@ -220,7 +220,7 @@
  1498. 121.90 s [really-safe-money] -- (-3) % 10
  1499. 121.90 s [really-safe-money] toRational :: DecimalLiteral -> Rational
  1500. 121.90 s [really-safe-money] toRational (DecimalLiteral mSign m e) =
  1501. 121.90 s [really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
  1502. 121.90 s [really-safe-money] + signSignum mSign (fromIntegral m / (0 ^ e))
  1503. 121.90 s [really-safe-money]
  1504. 121.90 s [really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  1505. 121.90 s [really-safe-money] --
  1506. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  1507. 121.90 s [really-safe-money] @@ -220,7 +220,7 @@
  1508. 121.90 s [really-safe-money] -- (-3) % 10
  1509. 121.90 s [really-safe-money] toRational :: DecimalLiteral -> Rational
  1510. 121.90 s [really-safe-money] toRational (DecimalLiteral mSign m e) =
  1511. 121.90 s [really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
  1512. 121.90 s [really-safe-money] + signSignum mSign (fromIntegral m / (1 ^ e))
  1513. 121.90 s [really-safe-money]
  1514. 121.90 s [really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  1515. 121.90 s [really-safe-money] --
  1516. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  1517. 121.90 s [really-safe-money] @@ -220,7 +220,7 @@
  1518. 121.90 s [really-safe-money] -- (-3) % 10
  1519. 121.90 s [really-safe-money] toRational :: DecimalLiteral -> Rational
  1520. 121.90 s [really-safe-money] toRational (DecimalLiteral mSign m e) =
  1521. 121.90 s [really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
  1522. 121.90 s [really-safe-money] + signSignum mSign (fromIntegral m / (-10 ^ e))
  1523. 121.90 s [really-safe-money]
  1524. 121.90 s [really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  1525. 121.90 s [really-safe-money] --
  1526. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  1527. 121.90 s [really-safe-money] @@ -205,7 +205,7 @@
  1528. 121.90 s [really-safe-money] -- Nothing
  1529. 121.90 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  1530. 121.90 s [really-safe-money] fromRational (n :% d)
  1531. 121.90 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1532. 121.90 s [really-safe-money] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1533. 121.90 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  1534. 121.90 s [really-safe-money]
  1535. 121.90 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  1536. 121.90 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  1537. 121.90 s [really-safe-money] @@ -205,7 +205,7 @@
  1538. 121.90 s [really-safe-money] -- Nothing
  1539. 121.90 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  1540. 121.90 s [really-safe-money] fromRational (n :% d)
  1541. 121.90 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1542. 121.90 s [really-safe-money] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1543. 121.90 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  1544. 121.90 s [really-safe-money]
  1545. 121.90 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  1546. 121.90 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  1547. 121.90 s [really-safe-money] @@ -205,7 +205,7 @@
  1548. 121.90 s [really-safe-money] -- Nothing
  1549. 121.90 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  1550. 121.90 s [really-safe-money] fromRational (n :% d)
  1551. 121.90 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1552. 121.90 s [really-safe-money] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1553. 121.90 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  1554. 121.90 s [really-safe-money]
  1555. 121.90 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  1556. 121.90 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  1557. 121.90 s [really-safe-money] @@ -205,7 +205,7 @@
  1558. 121.90 s [really-safe-money] -- Nothing
  1559. 121.90 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  1560. 121.90 s [really-safe-money] fromRational (n :% d)
  1561. 121.90 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1562. 121.90 s [really-safe-money] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  1563. 121.90 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  1564. 121.90 s [really-safe-money]
  1565. 121.90 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  1566. 121.90 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  1567. 121.90 s [really-safe-money] @@ -183,7 +183,7 @@
  1568. 121.90 s [really-safe-money]
  1569. 121.90 s [really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
  1570. 121.90 s [really-safe-money] go :: Word8 -> String -> String
  1571. 121.90 s [really-safe-money] - go 0 [] = ['.', '0']
  1572. 121.90 s [really-safe-money] + go 0 [] = []
  1573. 121.90 s [really-safe-money] go 0 s = '.' : s
  1574. 121.90 s [really-safe-money] go e [] = '0' : go (pred e) []
  1575. 121.90 s [really-safe-money] go e (c : cs) = c : go (pred e) cs
  1576. 121.90 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  1577. 121.90 s [really-safe-money] @@ -183,7 +183,7 @@
  1578. 121.90 s [really-safe-money]
  1579. 121.90 s [really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
  1580. 121.90 s [really-safe-money] go :: Word8 -> String -> String
  1581. 121.90 s [really-safe-money] - go 0 [] = ['.', '0']
  1582. 121.90 s [really-safe-money] + go 0 [] = ['.', '0']
  1583. 121.90 s [really-safe-money] go 0 s = '.' : s
  1584. 121.90 s [really-safe-money] go e [] = '0' : go (pred e) []
  1585. 121.90 s [really-safe-money] go e (c : cs) = c : go (pred e) cs
  1586. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  1587. 121.90 s [really-safe-money] @@ -142,7 +142,7 @@
  1588. 121.90 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  1589. 121.90 s [really-safe-money] parseDigits f z = do
  1590. 121.90 s [really-safe-money] c <- ReadP.satisfy Char.isDigit
  1591. 121.90 s [really-safe-money] - let digit = Char.ord c - 48
  1592. 121.90 s [really-safe-money] + let digit = Char.ord c - 0
  1593. 121.90 s [really-safe-money] case f z digit of
  1594. 121.90 s [really-safe-money] Nothing -> fail "Failed to step the first digit"
  1595. 121.90 s [really-safe-money] Just a -> ReadP.look >>= go a
  1596. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  1597. 121.90 s [really-safe-money] @@ -142,7 +142,7 @@
  1598. 121.90 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  1599. 121.90 s [really-safe-money] parseDigits f z = do
  1600. 121.90 s [really-safe-money] c <- ReadP.satisfy Char.isDigit
  1601. 121.90 s [really-safe-money] - let digit = Char.ord c - 48
  1602. 121.90 s [really-safe-money] + let digit = Char.ord c - 1
  1603. 121.90 s [really-safe-money] case f z digit of
  1604. 121.90 s [really-safe-money] Nothing -> fail "Failed to step the first digit"
  1605. 121.90 s [really-safe-money] Just a -> ReadP.look >>= go a
  1606. 121.90 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  1607. 121.90 s [really-safe-money] @@ -142,7 +142,7 @@
  1608. 121.90 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  1609. 121.90 s [really-safe-money] parseDigits f z = do
  1610. 121.90 s [really-safe-money] c <- ReadP.satisfy Char.isDigit
  1611. 121.90 s [really-safe-money] - let digit = Char.ord c - 48
  1612. 121.90 s [really-safe-money] + let digit = Char.ord c - -48
  1613. 121.90 s [really-safe-money] case f z digit of
  1614. 121.90 s [really-safe-money] Nothing -> fail "Failed to step the first digit"
  1615. 121.90 s [really-safe-money] Just a -> ReadP.look >>= go a
  1616. 121.90 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  1617. 121.90 s [really-safe-money] @@ -149,7 +149,7 @@
  1618. 121.90 s [really-safe-money] where
  1619. 121.90 s [really-safe-money] go !a [] = return a
  1620. 121.90 s [really-safe-money] go !a (c : cs)
  1621. 121.91 s [really-safe-money] - | Char.isDigit c = do
  1622. 121.91 s [really-safe-money] + | True = do
  1623. 121.91 s [really-safe-money] _ <- ReadP.get
  1624. 121.91 s [really-safe-money] let digit = Char.ord c - 48
  1625. 121.91 s [really-safe-money] case f a digit of
  1626. 121.91 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  1627. 121.91 s [really-safe-money] @@ -149,7 +149,7 @@
  1628. 121.91 s [really-safe-money] where
  1629. 121.91 s [really-safe-money] go !a [] = return a
  1630. 121.91 s [really-safe-money] go !a (c : cs)
  1631. 121.91 s [really-safe-money] - | Char.isDigit c = do
  1632. 121.91 s [really-safe-money] + | not (Char.isDigit c) = do
  1633. 121.91 s [really-safe-money] _ <- ReadP.get
  1634. 121.91 s [really-safe-money] let digit = Char.ord c - 48
  1635. 121.91 s [really-safe-money] case f a digit of
  1636. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  1637. 121.91 s [really-safe-money] @@ -151,7 +151,7 @@
  1638. 121.91 s [really-safe-money] go !a (c : cs)
  1639. 121.91 s [really-safe-money] | Char.isDigit c = do
  1640. 121.91 s [really-safe-money] _ <- ReadP.get
  1641. 121.91 s [really-safe-money] - let digit = Char.ord c - 48
  1642. 121.91 s [really-safe-money] + let digit = Char.ord c - 0
  1643. 121.91 s [really-safe-money] case f a digit of
  1644. 121.91 s [really-safe-money] Nothing -> fail "Failed to step the digit"
  1645. 121.91 s [really-safe-money] Just a' -> go a' cs
  1646. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  1647. 121.91 s [really-safe-money] @@ -151,7 +151,7 @@
  1648. 121.91 s [really-safe-money] go !a (c : cs)
  1649. 121.91 s [really-safe-money] | Char.isDigit c = do
  1650. 121.91 s [really-safe-money] _ <- ReadP.get
  1651. 121.91 s [really-safe-money] - let digit = Char.ord c - 48
  1652. 121.91 s [really-safe-money] + let digit = Char.ord c - 1
  1653. 121.91 s [really-safe-money] case f a digit of
  1654. 121.91 s [really-safe-money] Nothing -> fail "Failed to step the digit"
  1655. 121.91 s [really-safe-money] Just a' -> go a' cs
  1656. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  1657. 121.91 s [really-safe-money] @@ -151,7 +151,7 @@
  1658. 121.91 s [really-safe-money] go !a (c : cs)
  1659. 121.91 s [really-safe-money] | Char.isDigit c = do
  1660. 121.91 s [really-safe-money] _ <- ReadP.get
  1661. 121.91 s [really-safe-money] - let digit = Char.ord c - 48
  1662. 121.91 s [really-safe-money] + let digit = Char.ord c - -48
  1663. 121.91 s [really-safe-money] case f a digit of
  1664. 121.91 s [really-safe-money] Nothing -> fail "Failed to step the digit"
  1665. 121.91 s [really-safe-money] Just a' -> go a' cs
  1666. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  1667. 121.91 s [really-safe-money] @@ -136,7 +136,7 @@
  1668. 121.91 s [really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  1669. 121.91 s [really-safe-money]
  1670. 121.91 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  1671. 121.91 s [really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
  1672. 121.91 s [really-safe-money] +step a digit = Just $ a * 0 + fromIntegral digit
  1673. 121.91 s [really-safe-money] {-# INLINE step #-}
  1674. 121.91 s [really-safe-money]
  1675. 121.91 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  1676. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  1677. 121.91 s [really-safe-money] @@ -136,7 +136,7 @@
  1678. 121.91 s [really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  1679. 121.91 s [really-safe-money]
  1680. 121.91 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  1681. 121.91 s [really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
  1682. 121.91 s [really-safe-money] +step a digit = Just $ a * 1 + fromIntegral digit
  1683. 121.91 s [really-safe-money] {-# INLINE step #-}
  1684. 121.91 s [really-safe-money]
  1685. 121.91 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  1686. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  1687. 121.91 s [really-safe-money] @@ -133,7 +133,7 @@
  1688. 121.91 s [really-safe-money]
  1689. 121.91 s [really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  1690. 121.91 s [really-safe-money] stepFraction (_, 255) _ = Nothing
  1691. 121.91 s [really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  1692. 121.91 s [really-safe-money] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  1693. 121.91 s [really-safe-money]
  1694. 121.91 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  1695. 121.91 s [really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
  1696. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  1697. 121.91 s [really-safe-money] @@ -133,7 +133,7 @@
  1698. 121.91 s [really-safe-money]
  1699. 121.91 s [really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  1700. 121.91 s [really-safe-money] stepFraction (_, 255) _ = Nothing
  1701. 121.91 s [really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  1702. 121.91 s [really-safe-money] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  1703. 121.91 s [really-safe-money]
  1704. 121.91 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  1705. 121.91 s [really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
  1706. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  1707. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1708. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1709. 121.91 s [really-safe-money] decimalLiteralP = do
  1710. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1711. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1712. 121.91 s [really-safe-money] + isSignChar c = True || c == '+'
  1713. 121.91 s [really-safe-money]
  1714. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1715. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1716. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  1717. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1718. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1719. 121.91 s [really-safe-money] decimalLiteralP = do
  1720. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1721. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1722. 121.91 s [really-safe-money] + isSignChar c = False || c == '+'
  1723. 121.91 s [really-safe-money]
  1724. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1725. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1726. 121.91 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  1727. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1728. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1729. 121.91 s [really-safe-money] decimalLiteralP = do
  1730. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1731. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1732. 121.91 s [really-safe-money] + isSignChar c = not (c == '-') || c == '+'
  1733. 121.91 s [really-safe-money]
  1734. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1735. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1736. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  1737. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1738. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1739. 121.91 s [really-safe-money] decimalLiteralP = do
  1740. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1741. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1742. 121.91 s [really-safe-money] + isSignChar c = c == '-' || True
  1743. 121.91 s [really-safe-money]
  1744. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1745. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1746. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  1747. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1748. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1749. 121.91 s [really-safe-money] decimalLiteralP = do
  1750. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1751. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1752. 121.91 s [really-safe-money] + isSignChar c = c == '-' || False
  1753. 121.91 s [really-safe-money]
  1754. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1755. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1756. 121.91 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  1757. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1758. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1759. 121.91 s [really-safe-money] decimalLiteralP = do
  1760. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1761. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1762. 121.91 s [really-safe-money] + isSignChar c = c == '-' || not (c == '+')
  1763. 121.91 s [really-safe-money]
  1764. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1765. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1766. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  1767. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1768. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1769. 121.91 s [really-safe-money] decimalLiteralP = do
  1770. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1771. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1772. 121.91 s [really-safe-money] + isSignChar c = True
  1773. 121.91 s [really-safe-money]
  1774. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1775. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1776. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  1777. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1778. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1779. 121.91 s [really-safe-money] decimalLiteralP = do
  1780. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1781. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1782. 121.91 s [really-safe-money] + isSignChar c = False
  1783. 121.91 s [really-safe-money]
  1784. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1785. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1786. 121.91 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  1787. 121.91 s [really-safe-money] @@ -116,7 +116,7 @@
  1788. 121.91 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  1789. 121.91 s [really-safe-money] decimalLiteralP = do
  1790. 121.91 s [really-safe-money] let isSignChar :: Char -> Bool
  1791. 121.91 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  1792. 121.91 s [really-safe-money] + isSignChar c = not (c == '-' || c == '+')
  1793. 121.91 s [really-safe-money]
  1794. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1795. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1796. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  1797. 121.91 s [really-safe-money] @@ -120,7 +120,7 @@
  1798. 121.91 s [really-safe-money]
  1799. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1800. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1801. 121.91 s [really-safe-money] - pure $ Just $ signChar == '+'
  1802. 121.91 s [really-safe-money] + pure $ Just $ True
  1803. 121.91 s [really-safe-money]
  1804. 121.91 s [really-safe-money] units <- parseDigits step 0
  1805. 121.91 s [really-safe-money]
  1806. 121.91 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  1807. 121.91 s [really-safe-money] @@ -120,7 +120,7 @@
  1808. 121.91 s [really-safe-money]
  1809. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1810. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1811. 121.91 s [really-safe-money] - pure $ Just $ signChar == '+'
  1812. 121.91 s [really-safe-money] + pure $ Just $ False
  1813. 121.91 s [really-safe-money]
  1814. 121.91 s [really-safe-money] units <- parseDigits step 0
  1815. 121.91 s [really-safe-money]
  1816. 121.91 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  1817. 121.91 s [really-safe-money] @@ -120,7 +120,7 @@
  1818. 121.91 s [really-safe-money]
  1819. 121.91 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  1820. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1821. 121.91 s [really-safe-money] - pure $ Just $ signChar == '+'
  1822. 121.91 s [really-safe-money] + pure $ Just $ not (signChar == '+')
  1823. 121.91 s [really-safe-money]
  1824. 121.91 s [really-safe-money] units <- parseDigits step 0
  1825. 121.91 s [really-safe-money]
  1826. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  1827. 121.91 s [really-safe-money] @@ -122,7 +122,7 @@
  1828. 121.91 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  1829. 121.91 s [really-safe-money] pure $ Just $ signChar == '+'
  1830. 121.91 s [really-safe-money]
  1831. 121.91 s [really-safe-money] - units <- parseDigits step 0
  1832. 121.91 s [really-safe-money] + units <- parseDigits step 1
  1833. 121.91 s [really-safe-money]
  1834. 121.91 s [really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
  1835. 121.91 s [really-safe-money] _ <- ReadP.satisfy (== '.')
  1836. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  1837. 121.91 s [really-safe-money] @@ -124,7 +124,7 @@
  1838. 121.91 s [really-safe-money]
  1839. 121.91 s [really-safe-money] units <- parseDigits step 0
  1840. 121.91 s [really-safe-money]
  1841. 121.91 s [really-safe-money] - ReadP.option (DecimalLiteral mSign units 0) $ do
  1842. 121.91 s [really-safe-money] + ReadP.option (DecimalLiteral mSign units 1) $ do
  1843. 121.91 s [really-safe-money] _ <- ReadP.satisfy (== '.')
  1844. 121.91 s [really-safe-money]
  1845. 121.91 s [really-safe-money] (m, e) <- parseDigits stepFraction (units, 0)
  1846. 121.91 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  1847. 121.91 s [really-safe-money] @@ -127,7 +127,7 @@
  1848. 121.91 s [really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
  1849. 121.91 s [really-safe-money] _ <- ReadP.satisfy (== '.')
  1850. 121.91 s [really-safe-money]
  1851. 121.91 s [really-safe-money] - (m, e) <- parseDigits stepFraction (units, 0)
  1852. 121.91 s [really-safe-money] + (m, e) <- parseDigits stepFraction (units, 1)
  1853. 121.91 s [really-safe-money]
  1854. 121.91 s [really-safe-money] pure $ DecimalLiteral mSign m e
  1855. 121.91 s [really-safe-money]
  1856. 121.91 s [really-safe-money] added 81 mutations
  1857. 123.04 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 )
  1858. 123.06 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  1859. 123.06 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  1860. 123.06 s [really-safe-money] @@ -84,7 +84,7 @@
  1861. 123.06 s [really-safe-money] fromDecimalLiteral dl = do
  1862. 123.06 s [really-safe-money] irat <-
  1863. 123.06 s [really-safe-money] let r = DecimalLiteral.toRational dl
  1864. 123.06 s [really-safe-money] - in if numerator r == 0
  1865. 123.06 s [really-safe-money] + in if numerator r == 1
  1866. 123.06 s [really-safe-money] then Nothing
  1867. 123.06 s [really-safe-money] else pure r
  1868. 123.06 s [really-safe-money]
  1869. 123.06 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  1870. 123.06 s [really-safe-money] @@ -84,7 +84,7 @@
  1871. 123.06 s [really-safe-money] fromDecimalLiteral dl = do
  1872. 123.06 s [really-safe-money] irat <-
  1873. 123.06 s [really-safe-money] let r = DecimalLiteral.toRational dl
  1874. 123.06 s [really-safe-money] - in if numerator r == 0
  1875. 123.06 s [really-safe-money] + in if True
  1876. 123.06 s [really-safe-money] then Nothing
  1877. 123.06 s [really-safe-money] else pure r
  1878. 123.06 s [really-safe-money]
  1879. 123.06 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  1880. 123.06 s [really-safe-money] @@ -84,7 +84,7 @@
  1881. 123.06 s [really-safe-money] fromDecimalLiteral dl = do
  1882. 123.06 s [really-safe-money] irat <-
  1883. 123.06 s [really-safe-money] let r = DecimalLiteral.toRational dl
  1884. 123.06 s [really-safe-money] - in if numerator r == 0
  1885. 123.06 s [really-safe-money] + in if False
  1886. 123.06 s [really-safe-money] then Nothing
  1887. 123.06 s [really-safe-money] else pure r
  1888. 123.06 s [really-safe-money]
  1889. 123.06 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  1890. 123.06 s [really-safe-money] @@ -84,7 +84,7 @@
  1891. 123.06 s [really-safe-money] fromDecimalLiteral dl = do
  1892. 123.06 s [really-safe-money] irat <-
  1893. 123.06 s [really-safe-money] let r = DecimalLiteral.toRational dl
  1894. 123.06 s [really-safe-money] - in if numerator r == 0
  1895. 123.06 s [really-safe-money] + in if not (numerator r == 0)
  1896. 123.06 s [really-safe-money] then Nothing
  1897. 123.06 s [really-safe-money] else pure r
  1898. 123.06 s [really-safe-money]
  1899. 123.06 s [really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
  1900. 123.06 s [really-safe-money] @@ -84,9 +84,9 @@
  1901. 123.06 s [really-safe-money] fromDecimalLiteral dl = do
  1902. 123.06 s [really-safe-money] irat <-
  1903. 123.06 s [really-safe-money] let r = DecimalLiteral.toRational dl
  1904. 123.06 s [really-safe-money] - in if numerator r == 0
  1905. 123.06 s [really-safe-money] - then Nothing
  1906. 123.06 s [really-safe-money] - else pure r
  1907. 123.06 s [really-safe-money] + in if numerator r == 0
  1908. 123.06 s [really-safe-money] + then Nothing
  1909. 123.06 s [really-safe-money] + else pure r
  1910. 123.06 s [really-safe-money]
  1911. 123.06 s [really-safe-money] rat <-
  1912. 123.06 s [really-safe-money] let r = 1 / irat
  1913. 123.06 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  1914. 123.06 s [really-safe-money] @@ -89,7 +89,7 @@
  1915. 123.06 s [really-safe-money] else pure r
  1916. 123.06 s [really-safe-money]
  1917. 123.06 s [really-safe-money] rat <-
  1918. 123.06 s [really-safe-money] - let r = 1 / irat
  1919. 123.06 s [really-safe-money] + let r = 0 / irat
  1920. 123.06 s [really-safe-money] in if r < 0
  1921. 123.06 s [really-safe-money] then Nothing
  1922. 123.06 s [really-safe-money] else Just r
  1923. 123.06 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  1924. 123.06 s [really-safe-money] @@ -89,7 +89,7 @@
  1925. 123.06 s [really-safe-money] else pure r
  1926. 123.06 s [really-safe-money]
  1927. 123.06 s [really-safe-money] rat <-
  1928. 123.06 s [really-safe-money] - let r = 1 / irat
  1929. 123.06 s [really-safe-money] + let r = -1 / irat
  1930. 123.06 s [really-safe-money] in if r < 0
  1931. 123.06 s [really-safe-money] then Nothing
  1932. 123.06 s [really-safe-money] else Just r
  1933. 123.06 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  1934. 123.06 s [really-safe-money] @@ -90,7 +90,7 @@
  1935. 123.06 s [really-safe-money]
  1936. 123.06 s [really-safe-money] rat <-
  1937. 123.06 s [really-safe-money] let r = 1 / irat
  1938. 123.06 s [really-safe-money] - in if r < 0
  1939. 123.06 s [really-safe-money] + in if r < 1
  1940. 123.06 s [really-safe-money] then Nothing
  1941. 123.06 s [really-safe-money] else Just r
  1942. 123.06 s [really-safe-money]
  1943. 123.06 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  1944. 123.06 s [really-safe-money] @@ -90,7 +90,7 @@
  1945. 123.06 s [really-safe-money]
  1946. 123.06 s [really-safe-money] rat <-
  1947. 123.06 s [really-safe-money] let r = 1 / irat
  1948. 123.06 s [really-safe-money] - in if r < 0
  1949. 123.06 s [really-safe-money] + in if True
  1950. 123.06 s [really-safe-money] then Nothing
  1951. 123.06 s [really-safe-money] else Just r
  1952. 123.06 s [really-safe-money]
  1953. 123.06 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  1954. 123.06 s [really-safe-money] @@ -90,7 +90,7 @@
  1955. 123.06 s [really-safe-money]
  1956. 123.06 s [really-safe-money] rat <-
  1957. 123.06 s [really-safe-money] let r = 1 / irat
  1958. 123.06 s [really-safe-money] - in if r < 0
  1959. 123.06 s [really-safe-money] + in if False
  1960. 123.06 s [really-safe-money] then Nothing
  1961. 123.06 s [really-safe-money] else Just r
  1962. 123.06 s [really-safe-money]
  1963. 123.06 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  1964. 123.06 s [really-safe-money] @@ -90,7 +90,7 @@
  1965. 123.06 s [really-safe-money]
  1966. 123.06 s [really-safe-money] rat <-
  1967. 123.06 s [really-safe-money] let r = 1 / irat
  1968. 123.06 s [really-safe-money] - in if r < 0
  1969. 123.06 s [really-safe-money] + in if not (r < 0)
  1970. 123.06 s [really-safe-money] then Nothing
  1971. 123.06 s [really-safe-money] else Just r
  1972. 123.06 s [really-safe-money]
  1973. 123.06 s [really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
  1974. 123.06 s [really-safe-money] @@ -90,9 +90,9 @@
  1975. 123.06 s [really-safe-money]
  1976. 123.06 s [really-safe-money] rat <-
  1977. 123.06 s [really-safe-money] let r = 1 / irat
  1978. 123.06 s [really-safe-money] - in if r < 0
  1979. 123.06 s [really-safe-money] - then Nothing
  1980. 123.06 s [really-safe-money] - else Just r
  1981. 123.06 s [really-safe-money] + in if r < 0
  1982. 123.06 s [really-safe-money] + then Nothing
  1983. 123.06 s [really-safe-money] + else Just r
  1984. 123.06 s [really-safe-money]
  1985. 123.06 s [really-safe-money] fac <-
  1986. 123.06 s [really-safe-money] if denominator rat == 1
  1987. 123.06 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  1988. 123.06 s [really-safe-money] @@ -95,7 +95,7 @@
  1989. 123.06 s [really-safe-money] else Just r
  1990. 123.06 s [really-safe-money]
  1991. 123.06 s [really-safe-money] fac <-
  1992. 123.06 s [really-safe-money] - if denominator rat == 1
  1993. 123.06 s [really-safe-money] + if denominator rat == 0
  1994. 123.06 s [really-safe-money] then Just (numerator rat)
  1995. 123.06 s [really-safe-money] else Nothing
  1996. 123.06 s [really-safe-money]
  1997. 123.06 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  1998. 123.06 s [really-safe-money] @@ -95,7 +95,7 @@
  1999. 123.06 s [really-safe-money] else Just r
  2000. 123.06 s [really-safe-money]
  2001. 123.06 s [really-safe-money] fac <-
  2002. 123.06 s [really-safe-money] - if denominator rat == 1
  2003. 123.06 s [really-safe-money] + if denominator rat == -1
  2004. 123.06 s [really-safe-money] then Just (numerator rat)
  2005. 123.06 s [really-safe-money] else Nothing
  2006. 123.06 s [really-safe-money]
  2007. 123.06 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  2008. 123.06 s [really-safe-money] @@ -95,7 +95,7 @@
  2009. 123.06 s [really-safe-money] else Just r
  2010. 123.06 s [really-safe-money]
  2011. 123.06 s [really-safe-money] fac <-
  2012. 123.06 s [really-safe-money] - if denominator rat == 1
  2013. 123.06 s [really-safe-money] + if True
  2014. 123.06 s [really-safe-money] then Just (numerator rat)
  2015. 123.06 s [really-safe-money] else Nothing
  2016. 123.06 s [really-safe-money]
  2017. 123.06 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  2018. 123.06 s [really-safe-money] @@ -95,7 +95,7 @@
  2019. 123.06 s [really-safe-money] else Just r
  2020. 123.06 s [really-safe-money]
  2021. 123.06 s [really-safe-money] fac <-
  2022. 123.06 s [really-safe-money] - if denominator rat == 1
  2023. 123.06 s [really-safe-money] + if False
  2024. 123.06 s [really-safe-money] then Just (numerator rat)
  2025. 123.06 s [really-safe-money] else Nothing
  2026. 123.06 s [really-safe-money]
  2027. 123.06 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  2028. 123.06 s [really-safe-money] @@ -95,7 +95,7 @@
  2029. 123.06 s [really-safe-money] else Just r
  2030. 123.06 s [really-safe-money]
  2031. 123.06 s [really-safe-money] fac <-
  2032. 123.06 s [really-safe-money] - if denominator rat == 1
  2033. 123.06 s [really-safe-money] + if not (denominator rat == 1)
  2034. 123.07 s [really-safe-money] then Just (numerator rat)
  2035. 123.07 s [really-safe-money] else Nothing
  2036. 123.07 s [really-safe-money]
  2037. 123.07 s [really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
  2038. 123.07 s [really-safe-money] @@ -95,9 +95,9 @@
  2039. 123.07 s [really-safe-money] else Just r
  2040. 123.07 s [really-safe-money]
  2041. 123.07 s [really-safe-money] fac <-
  2042. 123.07 s [really-safe-money] - if denominator rat == 1
  2043. 123.07 s [really-safe-money] - then Just (numerator rat)
  2044. 123.07 s [really-safe-money] - else Nothing
  2045. 123.07 s [really-safe-money] + if denominator rat == 1
  2046. 123.07 s [really-safe-money] + then Just (numerator rat)
  2047. 123.07 s [really-safe-money] + else Nothing
  2048. 123.07 s [really-safe-money]
  2049. 123.07 s [really-safe-money] if fac <= fromIntegral (maxBound :: Word32)
  2050. 123.07 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  2051. 123.07 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  2052. 123.07 s [really-safe-money] @@ -99,6 +99,6 @@
  2053. 123.07 s [really-safe-money] then Just (numerator rat)
  2054. 123.07 s [really-safe-money] else Nothing
  2055. 123.07 s [really-safe-money]
  2056. 123.07 s [really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
  2057. 123.07 s [really-safe-money] + if True
  2058. 123.07 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  2059. 123.07 s [really-safe-money] else Nothing
  2060. 123.07 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  2061. 123.07 s [really-safe-money] @@ -99,6 +99,6 @@
  2062. 123.07 s [really-safe-money] then Just (numerator rat)
  2063. 123.07 s [really-safe-money] else Nothing
  2064. 123.07 s [really-safe-money]
  2065. 123.07 s [really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
  2066. 123.07 s [really-safe-money] + if False
  2067. 123.07 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  2068. 123.07 s [really-safe-money] else Nothing
  2069. 123.07 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  2070. 123.07 s [really-safe-money] @@ -99,6 +99,6 @@
  2071. 123.07 s [really-safe-money] then Just (numerator rat)
  2072. 123.07 s [really-safe-money] else Nothing
  2073. 123.07 s [really-safe-money]
  2074. 123.07 s [really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
  2075. 123.07 s [really-safe-money] + if not (fac <= fromIntegral (maxBound :: Word32))
  2076. 123.07 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  2077. 123.07 s [really-safe-money] else Nothing
  2078. 123.07 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  2079. 123.07 s [really-safe-money] @@ -64,7 +64,7 @@
  2080. 123.07 s [really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
  2081. 123.07 s [really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  2082. 123.07 s [really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
  2083. 123.07 s [really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  2084. 123.07 s [really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  2085. 123.07 s [really-safe-money]
  2086. 123.07 s [really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  2087. 123.07 s [really-safe-money] -- TODO explain that it's the inverse.
  2088. 123.07 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  2089. 123.07 s [really-safe-money] @@ -64,7 +64,7 @@
  2090. 123.07 s [really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
  2091. 123.07 s [really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  2092. 123.07 s [really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
  2093. 123.07 s [really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  2094. 123.07 s [really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  2095. 123.07 s [really-safe-money]
  2096. 123.07 s [really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  2097. 123.07 s [really-safe-money] -- TODO explain that it's the inverse.
  2098. 123.07 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  2099. 123.07 s [really-safe-money] @@ -37,7 +37,7 @@
  2100. 123.07 s [really-safe-money] validate qf@(QuantisationFactor w) =
  2101. 123.07 s [really-safe-money] mconcat
  2102. 123.07 s [really-safe-money] [ genericValidate qf,
  2103. 123.07 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  2104. 123.07 s [really-safe-money] + declare "The quantisation factor is not zero" $ w /= 1
  2105. 123.07 s [really-safe-money] ]
  2106. 123.07 s [really-safe-money]
  2107. 123.07 s [really-safe-money] instance NFData QuantisationFactor
  2108. 123.07 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  2109. 123.07 s [really-safe-money] @@ -37,7 +37,7 @@
  2110. 123.07 s [really-safe-money] validate qf@(QuantisationFactor w) =
  2111. 123.07 s [really-safe-money] mconcat
  2112. 123.07 s [really-safe-money] [ genericValidate qf,
  2113. 123.07 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  2114. 123.07 s [really-safe-money] + declare "The quantisation factor is not zero" $ True
  2115. 123.07 s [really-safe-money] ]
  2116. 123.07 s [really-safe-money]
  2117. 123.07 s [really-safe-money] instance NFData QuantisationFactor
  2118. 123.07 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  2119. 123.07 s [really-safe-money] @@ -37,7 +37,7 @@
  2120. 123.07 s [really-safe-money] validate qf@(QuantisationFactor w) =
  2121. 123.07 s [really-safe-money] mconcat
  2122. 123.07 s [really-safe-money] [ genericValidate qf,
  2123. 123.07 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  2124. 123.07 s [really-safe-money] + declare "The quantisation factor is not zero" $ False
  2125. 123.07 s [really-safe-money] ]
  2126. 123.07 s [really-safe-money]
  2127. 123.07 s [really-safe-money] instance NFData QuantisationFactor
  2128. 123.07 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  2129. 123.07 s [really-safe-money] @@ -37,7 +37,7 @@
  2130. 123.07 s [really-safe-money] validate qf@(QuantisationFactor w) =
  2131. 123.07 s [really-safe-money] mconcat
  2132. 123.07 s [really-safe-money] [ genericValidate qf,
  2133. 123.07 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  2134. 123.07 s [really-safe-money] + declare "The quantisation factor is not zero" $ not (w /= 0)
  2135. 123.07 s [really-safe-money] ]
  2136. 123.07 s [really-safe-money]
  2137. 123.07 s [really-safe-money] instance NFData QuantisationFactor
  2138. 123.07 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  2139. 123.07 s [really-safe-money] @@ -36,9 +36,7 @@
  2140. 123.07 s [really-safe-money] instance Validity QuantisationFactor where
  2141. 123.07 s [really-safe-money] validate qf@(QuantisationFactor w) =
  2142. 123.07 s [really-safe-money] mconcat
  2143. 123.07 s [really-safe-money] - [ genericValidate qf,
  2144. 123.07 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  2145. 123.07 s [really-safe-money] - ]
  2146. 123.07 s [really-safe-money] + []
  2147. 123.07 s [really-safe-money]
  2148. 123.07 s [really-safe-money] instance NFData QuantisationFactor
  2149. 123.07 s [really-safe-money]
  2150. 123.07 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  2151. 123.07 s [really-safe-money] @@ -36,9 +36,9 @@
  2152. 123.07 s [really-safe-money] instance Validity QuantisationFactor where
  2153. 123.07 s [really-safe-money] validate qf@(QuantisationFactor w) =
  2154. 123.07 s [really-safe-money] mconcat
  2155. 123.07 s [really-safe-money] - [ genericValidate qf,
  2156. 123.07 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  2157. 123.07 s [really-safe-money] - ]
  2158. 123.07 s [really-safe-money] + [ genericValidate qf,
  2159. 123.07 s [really-safe-money] + declare "The quantisation factor is not zero" $ w /= 0
  2160. 123.07 s [really-safe-money] + ]
  2161. 123.07 s [really-safe-money]
  2162. 123.07 s [really-safe-money] instance NFData QuantisationFactor
  2163. 123.07 s [really-safe-money]
  2164. 123.07 s [really-safe-money] added 29 mutations
  2165. 123.31 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 )
  2166. 123.42 s [really-safe-money] mutation: instrumenting Money.Currency
  2167. 123.42 s [really-safe-money] added 0 mutations
  2168. 123.57 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 )
  2169. 123.57 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  2170. 123.57 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  2171. 123.57 s [really-safe-money] @@ -113,7 +113,7 @@
  2172. 123.57 s [really-safe-money] -- >>> invert (ConversionRate (1 % 2))
  2173. 123.57 s [really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
  2174. 123.57 s [really-safe-money] invert :: ConversionRate -> ConversionRate
  2175. 123.57 s [really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
  2176. 123.57 s [really-safe-money] +invert (ConversionRate r) = ConversionRate (0 / r)
  2177. 123.57 s [really-safe-money]
  2178. 123.57 s [really-safe-money] -- | Compose two conversion rates
  2179. 123.57 s [really-safe-money] --
  2180. 123.57 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  2181. 123.57 s [really-safe-money] @@ -113,7 +113,7 @@
  2182. 123.57 s [really-safe-money] -- >>> invert (ConversionRate (1 % 2))
  2183. 123.57 s [really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
  2184. 123.57 s [really-safe-money] invert :: ConversionRate -> ConversionRate
  2185. 123.57 s [really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
  2186. 123.57 s [really-safe-money] +invert (ConversionRate r) = ConversionRate (-1 / r)
  2187. 123.57 s [really-safe-money]
  2188. 123.57 s [really-safe-money] -- | Compose two conversion rates
  2189. 123.57 s [really-safe-money] --
  2190. 123.57 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  2191. 123.57 s [really-safe-money] @@ -106,7 +106,7 @@
  2192. 123.57 s [really-safe-money]
  2193. 123.57 s [really-safe-money] -- | One-to-one conversion rate
  2194. 123.57 s [really-safe-money] oneToOne :: ConversionRate
  2195. 123.57 s [really-safe-money] -oneToOne = ConversionRate 1
  2196. 123.57 s [really-safe-money] +oneToOne = ConversionRate 0
  2197. 123.57 s [really-safe-money]
  2198. 123.57 s [really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
  2199. 123.57 s [really-safe-money] --
  2200. 123.57 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  2201. 123.57 s [really-safe-money] @@ -106,7 +106,7 @@
  2202. 123.57 s [really-safe-money]
  2203. 123.57 s [really-safe-money] -- | One-to-one conversion rate
  2204. 123.57 s [really-safe-money] oneToOne :: ConversionRate
  2205. 123.57 s [really-safe-money] -oneToOne = ConversionRate 1
  2206. 123.57 s [really-safe-money] +oneToOne = ConversionRate -1
  2207. 123.57 s [really-safe-money]
  2208. 123.57 s [really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
  2209. 123.57 s [really-safe-money] --
  2210. 123.57 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  2211. 123.57 s [really-safe-money] @@ -69,7 +69,7 @@
  2212. 123.57 s [really-safe-money] -- >>> fromRational (0 % 1)
  2213. 123.57 s [really-safe-money] -- Nothing
  2214. 123.57 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  2215. 123.57 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  2216. 123.57 s [really-safe-money] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  2217. 123.57 s [really-safe-money]
  2218. 123.57 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  2219. 123.57 s [really-safe-money] --
  2220. 123.57 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  2221. 123.57 s [really-safe-money] @@ -69,7 +69,7 @@
  2222. 123.57 s [really-safe-money] -- >>> fromRational (0 % 1)
  2223. 123.57 s [really-safe-money] -- Nothing
  2224. 123.57 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  2225. 123.57 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  2226. 123.57 s [really-safe-money] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  2227. 123.57 s [really-safe-money]
  2228. 123.57 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  2229. 123.57 s [really-safe-money] --
  2230. 123.57 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  2231. 123.57 s [really-safe-money] @@ -69,7 +69,7 @@
  2232. 123.57 s [really-safe-money] -- >>> fromRational (0 % 1)
  2233. 123.57 s [really-safe-money] -- Nothing
  2234. 123.57 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  2235. 123.58 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  2236. 123.58 s [really-safe-money] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  2237. 123.58 s [really-safe-money]
  2238. 123.58 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  2239. 123.58 s [really-safe-money] --
  2240. 123.58 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  2241. 123.58 s [really-safe-money] @@ -69,7 +69,7 @@
  2242. 123.58 s [really-safe-money] -- >>> fromRational (0 % 1)
  2243. 123.58 s [really-safe-money] -- Nothing
  2244. 123.58 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  2245. 123.58 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  2246. 123.58 s [really-safe-money] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  2247. 123.58 s [really-safe-money]
  2248. 123.58 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  2249. 123.58 s [really-safe-money] --
  2250. 123.58 s [really-safe-money] added mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
  2251. 123.58 s [really-safe-money] @@ -69,7 +69,7 @@
  2252. 123.58 s [really-safe-money] -- >>> fromRational (0 % 1)
  2253. 123.58 s [really-safe-money] -- Nothing
  2254. 123.58 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  2255. 123.58 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  2256. 123.58 s [really-safe-money] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  2257. 123.58 s [really-safe-money]
  2258. 123.58 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  2259. 123.58 s [really-safe-money] --
  2260. 123.58 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  2261. 123.58 s [really-safe-money] @@ -35,7 +35,7 @@
  2262. 123.58 s [really-safe-money] validate cr@(ConversionRate r) =
  2263. 123.58 s [really-safe-money] mconcat
  2264. 123.58 s [really-safe-money] [ genericValidate cr,
  2265. 123.58 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  2266. 123.58 s [really-safe-money] + declare "The rate is nonzero" $ numerator r /= 1
  2267. 123.58 s [really-safe-money] ]
  2268. 123.58 s [really-safe-money]
  2269. 123.58 s [really-safe-money] instance NFData ConversionRate
  2270. 123.58 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  2271. 123.58 s [really-safe-money] @@ -35,7 +35,7 @@
  2272. 123.58 s [really-safe-money] validate cr@(ConversionRate r) =
  2273. 123.58 s [really-safe-money] mconcat
  2274. 123.58 s [really-safe-money] [ genericValidate cr,
  2275. 123.58 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  2276. 123.58 s [really-safe-money] + declare "The rate is nonzero" $ True
  2277. 123.58 s [really-safe-money] ]
  2278. 123.58 s [really-safe-money]
  2279. 123.58 s [really-safe-money] instance NFData ConversionRate
  2280. 123.58 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  2281. 123.58 s [really-safe-money] @@ -35,7 +35,7 @@
  2282. 123.58 s [really-safe-money] validate cr@(ConversionRate r) =
  2283. 123.58 s [really-safe-money] mconcat
  2284. 123.58 s [really-safe-money] [ genericValidate cr,
  2285. 123.58 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  2286. 123.58 s [really-safe-money] + declare "The rate is nonzero" $ False
  2287. 123.58 s [really-safe-money] ]
  2288. 123.58 s [really-safe-money]
  2289. 123.58 s [really-safe-money] instance NFData ConversionRate
  2290. 123.58 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  2291. 123.58 s [really-safe-money] @@ -35,7 +35,7 @@
  2292. 123.58 s [really-safe-money] validate cr@(ConversionRate r) =
  2293. 123.58 s [really-safe-money] mconcat
  2294. 123.58 s [really-safe-money] [ genericValidate cr,
  2295. 123.58 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  2296. 123.58 s [really-safe-money] + declare "The rate is nonzero" $ not (numerator r /= 0)
  2297. 123.58 s [really-safe-money] ]
  2298. 123.58 s [really-safe-money]
  2299. 123.58 s [really-safe-money] instance NFData ConversionRate
  2300. 123.58 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  2301. 123.58 s [really-safe-money] @@ -34,9 +34,7 @@
  2302. 123.58 s [really-safe-money] instance Validity ConversionRate where
  2303. 123.58 s [really-safe-money] validate cr@(ConversionRate r) =
  2304. 123.58 s [really-safe-money] mconcat
  2305. 123.58 s [really-safe-money] - [ genericValidate cr,
  2306. 123.58 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  2307. 123.58 s [really-safe-money] - ]
  2308. 123.58 s [really-safe-money] + []
  2309. 123.58 s [really-safe-money]
  2310. 123.58 s [really-safe-money] instance NFData ConversionRate
  2311. 123.58 s [really-safe-money]
  2312. 123.58 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  2313. 123.58 s [really-safe-money] @@ -34,9 +34,9 @@
  2314. 123.58 s [really-safe-money] instance Validity ConversionRate where
  2315. 123.58 s [really-safe-money] validate cr@(ConversionRate r) =
  2316. 123.58 s [really-safe-money] mconcat
  2317. 123.58 s [really-safe-money] - [ genericValidate cr,
  2318. 123.58 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  2319. 123.58 s [really-safe-money] - ]
  2320. 123.58 s [really-safe-money] + [ genericValidate cr,
  2321. 123.58 s [really-safe-money] + declare "The rate is nonzero" $ numerator r /= 0
  2322. 123.58 s [really-safe-money] + ]
  2323. 123.58 s [really-safe-money]
  2324. 123.58 s [really-safe-money] instance NFData ConversionRate
  2325. 123.58 s [really-safe-money]
  2326. 123.58 s [really-safe-money] added 15 mutations
  2327. 123.77 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 )
  2328. 123.78 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  2329. 123.78 s [really-safe-money] added 0 mutations
  2330. 123.85 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 )
  2331. 123.92 s [really-safe-money] mutation: instrumenting Money.Amount
  2332. 123.92 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  2333. 123.92 s [really-safe-money] @@ -798,7 +798,7 @@
  2334. 123.92 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  2335. 123.92 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
  2336. 123.92 s [really-safe-money] let decimals :: Int
  2337. 123.92 s [really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  2338. 123.92 s [really-safe-money] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  2339. 123.92 s [really-safe-money] in printf "%%0.%df" decimals
  2340. 123.92 s [really-safe-money]
  2341. 123.92 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  2342. 123.92 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  2343. 123.92 s [really-safe-money] @@ -798,7 +798,7 @@
  2344. 123.92 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  2345. 123.92 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
  2346. 123.92 s [really-safe-money] let decimals :: Int
  2347. 123.92 s [really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  2348. 123.92 s [really-safe-money] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  2349. 123.92 s [really-safe-money] in printf "%%0.%df" decimals
  2350. 123.92 s [really-safe-money]
  2351. 123.92 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  2352. 123.92 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  2353. 123.92 s [really-safe-money] @@ -798,7 +798,7 @@
  2354. 123.92 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  2355. 123.92 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
  2356. 123.92 s [really-safe-money] let decimals :: Int
  2357. 123.92 s [really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  2358. 123.92 s [really-safe-money] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  2359. 123.92 s [really-safe-money] in printf "%%0.%df" decimals
  2360. 123.92 s [really-safe-money]
  2361. 123.92 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  2362. 123.92 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  2363. 123.92 s [really-safe-money] @@ -566,7 +566,7 @@
  2364. 123.92 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  2365. 123.92 s [really-safe-money] smallerChunk :: Amount
  2366. 123.92 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  2367. 123.92 s [really-safe-money] - in if rest == 0
  2368. 123.92 s [really-safe-money] + in if rest == 1
  2369. 123.92 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  2370. 123.92 s [really-safe-money] else
  2371. 123.92 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  2372. 123.92 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  2373. 123.92 s [really-safe-money] @@ -566,7 +566,7 @@
  2374. 123.92 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  2375. 123.92 s [really-safe-money] smallerChunk :: Amount
  2376. 123.92 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  2377. 123.92 s [really-safe-money] - in if rest == 0
  2378. 123.92 s [really-safe-money] + in if True
  2379. 123.92 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  2380. 123.92 s [really-safe-money] else
  2381. 123.92 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  2382. 123.92 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  2383. 123.92 s [really-safe-money] @@ -566,7 +566,7 @@
  2384. 123.92 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  2385. 123.92 s [really-safe-money] smallerChunk :: Amount
  2386. 123.92 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  2387. 123.92 s [really-safe-money] - in if rest == 0
  2388. 123.92 s [really-safe-money] + in if False
  2389. 123.92 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  2390. 123.92 s [really-safe-money] else
  2391. 123.92 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  2392. 123.92 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  2393. 123.92 s [really-safe-money] @@ -566,7 +566,7 @@
  2394. 123.92 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  2395. 123.92 s [really-safe-money] smallerChunk :: Amount
  2396. 123.92 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  2397. 123.92 s [really-safe-money] - in if rest == 0
  2398. 123.92 s [really-safe-money] + in if not (rest == 0)
  2399. 123.92 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  2400. 123.92 s [really-safe-money] else
  2401. 123.92 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  2402. 123.92 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:569:7-29
  2403. 123.92 s [really-safe-money] @@ -566,22 +566,22 @@
  2404. 123.92 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  2405. 123.92 s [really-safe-money] smallerChunk :: Amount
  2406. 123.92 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  2407. 123.92 s [really-safe-money] - in if rest == 0
  2408. 123.92 s [really-safe-money] - then DistributedIntoEqualChunks f smallerChunk
  2409. 123.92 s [really-safe-money] - else
  2410. 123.92 s [really-safe-money] - let -- This 'fromIntegral' is theoretically not safe, but it's
  2411. 123.92 s [really-safe-money] - -- necessarily smaller than f so it will fit.
  2412. 123.92 s [really-safe-money] - numberOfLargerChunks :: Word32
  2413. 123.92 s [really-safe-money] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  2414. 123.92 s [really-safe-money] - numberOfSmallerChunks :: Word32
  2415. 123.92 s [really-safe-money] - numberOfSmallerChunks = f - numberOfLargerChunks
  2416. 123.92 s [really-safe-money] - largerChunk :: Amount
  2417. 123.92 s [really-safe-money] - largerChunk = Amount $ succ smallerChunkSize
  2418. 123.92 s [really-safe-money] - in DistributedIntoUnequalChunks
  2419. 123.92 s [really-safe-money] - numberOfLargerChunks
  2420. 123.92 s [really-safe-money] - largerChunk
  2421. 123.92 s [really-safe-money] - numberOfSmallerChunks
  2422. 123.92 s [really-safe-money] - smallerChunk
  2423. 123.92 s [really-safe-money] + in if rest == 0
  2424. 123.92 s [really-safe-money] + then DistributedIntoEqualChunks f smallerChunk
  2425. 123.92 s [really-safe-money] + else
  2426. 123.92 s [really-safe-money] + let -- This 'fromIntegral' is theoretically not safe, but it's
  2427. 123.92 s [really-safe-money] + -- necessarily smaller than f so it will fit.
  2428. 123.92 s [really-safe-money] + numberOfLargerChunks :: Word32
  2429. 123.92 s [really-safe-money] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  2430. 123.92 s [really-safe-money] + numberOfSmallerChunks :: Word32
  2431. 123.92 s [really-safe-money] + numberOfSmallerChunks = f - numberOfLargerChunks
  2432. 123.92 s [really-safe-money] + largerChunk :: Amount
  2433. 123.92 s [really-safe-money] + largerChunk = Amount $ succ smallerChunkSize
  2434. 123.92 s [really-safe-money] + in DistributedIntoUnequalChunks
  2435. 123.92 s [really-safe-money] + numberOfLargerChunks
  2436. 123.92 s [really-safe-money] + largerChunk
  2437. 123.92 s [really-safe-money] + numberOfSmallerChunks
  2438. 123.92 s [really-safe-money] + smallerChunk
  2439. 123.92 s [really-safe-money]
  2440. 123.92 s [really-safe-money] -- | The result of 'distribute'
  2441. 123.92 s [really-safe-money] type AmountDistribution = Distribution Amount
  2442. 123.92 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  2443. 123.92 s [really-safe-money] @@ -541,7 +541,7 @@
  2444. 123.92 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  2445. 123.92 s [really-safe-money] r :: Integer
  2446. 123.92 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  2447. 123.92 s [really-safe-money] - in if r > maxBoundI
  2448. 123.92 s [really-safe-money] + in if True
  2449. 123.92 s [really-safe-money] then Nothing
  2450. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2451. 123.92 s [really-safe-money]
  2452. 123.92 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  2453. 123.92 s [really-safe-money] @@ -541,7 +541,7 @@
  2454. 123.92 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  2455. 123.92 s [really-safe-money] r :: Integer
  2456. 123.92 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  2457. 123.92 s [really-safe-money] - in if r > maxBoundI
  2458. 123.92 s [really-safe-money] + in if False
  2459. 123.92 s [really-safe-money] then Nothing
  2460. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2461. 123.92 s [really-safe-money]
  2462. 123.92 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  2463. 123.92 s [really-safe-money] @@ -541,7 +541,7 @@
  2464. 123.92 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  2465. 123.92 s [really-safe-money] r :: Integer
  2466. 123.92 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  2467. 123.92 s [really-safe-money] - in if r > maxBoundI
  2468. 123.92 s [really-safe-money] + in if not (r > maxBoundI)
  2469. 123.92 s [really-safe-money] then Nothing
  2470. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2471. 123.92 s [really-safe-money]
  2472. 123.92 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:544:7-66
  2473. 123.92 s [really-safe-money] @@ -541,9 +541,9 @@
  2474. 123.92 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  2475. 123.92 s [really-safe-money] r :: Integer
  2476. 123.92 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  2477. 123.92 s [really-safe-money] - in if r > maxBoundI
  2478. 123.92 s [really-safe-money] - then Nothing
  2479. 123.92 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2480. 123.92 s [really-safe-money] + in if r > maxBoundI
  2481. 123.92 s [really-safe-money] + then Nothing
  2482. 123.92 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2483. 123.92 s [really-safe-money]
  2484. 123.92 s [really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  2485. 123.92 s [really-safe-money] --
  2486. 123.92 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  2487. 123.92 s [really-safe-money] @@ -515,7 +515,7 @@
  2488. 123.92 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  2489. 123.92 s [really-safe-money] r :: Integer
  2490. 123.92 s [really-safe-money] r = i1 - i2
  2491. 123.92 s [really-safe-money] - in if r < 0
  2492. 123.92 s [really-safe-money] + in if r < 1
  2493. 123.92 s [really-safe-money] then Nothing
  2494. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2495. 123.92 s [really-safe-money]
  2496. 123.92 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  2497. 123.92 s [really-safe-money] @@ -515,7 +515,7 @@
  2498. 123.92 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  2499. 123.92 s [really-safe-money] r :: Integer
  2500. 123.92 s [really-safe-money] r = i1 - i2
  2501. 123.92 s [really-safe-money] - in if r < 0
  2502. 123.92 s [really-safe-money] + in if True
  2503. 123.92 s [really-safe-money] then Nothing
  2504. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2505. 123.92 s [really-safe-money]
  2506. 123.92 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  2507. 123.92 s [really-safe-money] @@ -515,7 +515,7 @@
  2508. 123.92 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  2509. 123.92 s [really-safe-money] r :: Integer
  2510. 123.92 s [really-safe-money] r = i1 - i2
  2511. 123.92 s [really-safe-money] - in if r < 0
  2512. 123.92 s [really-safe-money] + in if False
  2513. 123.92 s [really-safe-money] then Nothing
  2514. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2515. 123.92 s [really-safe-money]
  2516. 123.92 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  2517. 123.92 s [really-safe-money] @@ -515,7 +515,7 @@
  2518. 123.92 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  2519. 123.92 s [really-safe-money] r :: Integer
  2520. 123.92 s [really-safe-money] r = i1 - i2
  2521. 123.92 s [really-safe-money] - in if r < 0
  2522. 123.92 s [really-safe-money] + in if not (r < 0)
  2523. 123.92 s [really-safe-money] then Nothing
  2524. 123.92 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2525. 123.92 s [really-safe-money]
  2526. 123.92 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:518:7-66
  2527. 123.92 s [really-safe-money] @@ -515,9 +515,9 @@
  2528. 123.92 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  2529. 123.92 s [really-safe-money] r :: Integer
  2530. 123.92 s [really-safe-money] r = i1 - i2
  2531. 123.92 s [really-safe-money] - in if r < 0
  2532. 123.92 s [really-safe-money] - then Nothing
  2533. 123.93 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2534. 123.93 s [really-safe-money] + in if r < 0
  2535. 123.93 s [really-safe-money] + then Nothing
  2536. 123.93 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2537. 123.93 s [really-safe-money]
  2538. 123.93 s [really-safe-money] -- | Multiply an amount of money by an integer scalar
  2539. 123.93 s [really-safe-money] --
  2540. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  2541. 123.93 s [really-safe-money] @@ -473,7 +473,7 @@
  2542. 123.93 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  2543. 123.93 s [really-safe-money] r :: Integer
  2544. 123.93 s [really-safe-money] r = i1 + i2
  2545. 123.93 s [really-safe-money] - in if r > maxBoundI
  2546. 123.93 s [really-safe-money] + in if True
  2547. 123.93 s [really-safe-money] then Nothing
  2548. 123.93 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2549. 123.93 s [really-safe-money]
  2550. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  2551. 123.93 s [really-safe-money] @@ -473,7 +473,7 @@
  2552. 123.93 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  2553. 123.93 s [really-safe-money] r :: Integer
  2554. 123.93 s [really-safe-money] r = i1 + i2
  2555. 123.93 s [really-safe-money] - in if r > maxBoundI
  2556. 123.93 s [really-safe-money] + in if False
  2557. 123.93 s [really-safe-money] then Nothing
  2558. 123.93 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2559. 123.93 s [really-safe-money]
  2560. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  2561. 123.93 s [really-safe-money] @@ -473,7 +473,7 @@
  2562. 123.93 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  2563. 123.93 s [really-safe-money] r :: Integer
  2564. 123.93 s [really-safe-money] r = i1 + i2
  2565. 123.93 s [really-safe-money] - in if r > maxBoundI
  2566. 123.93 s [really-safe-money] + in if not (r > maxBoundI)
  2567. 123.93 s [really-safe-money] then Nothing
  2568. 123.93 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2569. 123.93 s [really-safe-money]
  2570. 123.93 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:476:7-66
  2571. 123.93 s [really-safe-money] @@ -473,9 +473,9 @@
  2572. 123.93 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  2573. 123.93 s [really-safe-money] r :: Integer
  2574. 123.93 s [really-safe-money] r = i1 + i2
  2575. 123.93 s [really-safe-money] - in if r > maxBoundI
  2576. 123.93 s [really-safe-money] - then Nothing
  2577. 123.93 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2578. 123.93 s [really-safe-money] + in if r > maxBoundI
  2579. 123.93 s [really-safe-money] + then Nothing
  2580. 123.93 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  2581. 123.93 s [really-safe-money]
  2582. 123.93 s [really-safe-money] -- | Add a number of amounts of money together.
  2583. 123.93 s [really-safe-money] --
  2584. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  2585. 123.93 s [really-safe-money] @@ -385,7 +385,7 @@
  2586. 123.93 s [really-safe-money] -- Nothing
  2587. 123.93 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  2588. 123.93 s [really-safe-money] fromRational (QuantisationFactor qf) r
  2589. 123.93 s [really-safe-money] - | isInvalid r = Nothing
  2590. 123.93 s [really-safe-money] + | True = Nothing
  2591. 123.93 s [really-safe-money] | r < 0 = Nothing
  2592. 123.93 s [really-safe-money] | otherwise =
  2593. 123.93 s [really-safe-money] let resultRational :: Rational
  2594. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  2595. 123.93 s [really-safe-money] @@ -385,7 +385,7 @@
  2596. 123.93 s [really-safe-money] -- Nothing
  2597. 123.93 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  2598. 123.93 s [really-safe-money] fromRational (QuantisationFactor qf) r
  2599. 123.93 s [really-safe-money] - | isInvalid r = Nothing
  2600. 123.93 s [really-safe-money] + | not (isInvalid r) = Nothing
  2601. 123.93 s [really-safe-money] | r < 0 = Nothing
  2602. 123.93 s [really-safe-money] | otherwise =
  2603. 123.93 s [really-safe-money] let resultRational :: Rational
  2604. 123.93 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  2605. 123.93 s [really-safe-money] @@ -386,7 +386,7 @@
  2606. 123.93 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  2607. 123.93 s [really-safe-money] fromRational (QuantisationFactor qf) r
  2608. 123.93 s [really-safe-money] | isInvalid r = Nothing
  2609. 123.93 s [really-safe-money] - | r < 0 = Nothing
  2610. 123.93 s [really-safe-money] + | r < 1 = Nothing
  2611. 123.93 s [really-safe-money] | otherwise =
  2612. 123.93 s [really-safe-money] let resultRational :: Rational
  2613. 123.93 s [really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  2614. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  2615. 123.93 s [really-safe-money] @@ -386,7 +386,7 @@
  2616. 123.93 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  2617. 123.93 s [really-safe-money] fromRational (QuantisationFactor qf) r
  2618. 123.93 s [really-safe-money] | isInvalid r = Nothing
  2619. 123.93 s [really-safe-money] - | r < 0 = Nothing
  2620. 123.93 s [really-safe-money] + | True = Nothing
  2621. 123.93 s [really-safe-money] | otherwise =
  2622. 123.93 s [really-safe-money] let resultRational :: Rational
  2623. 123.93 s [really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  2624. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  2625. 123.93 s [really-safe-money] @@ -386,7 +386,7 @@
  2626. 123.93 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  2627. 123.93 s [really-safe-money] fromRational (QuantisationFactor qf) r
  2628. 123.93 s [really-safe-money] | isInvalid r = Nothing
  2629. 123.93 s [really-safe-money] - | r < 0 = Nothing
  2630. 123.93 s [really-safe-money] + | not (r < 0) = Nothing
  2631. 123.93 s [really-safe-money] | otherwise =
  2632. 123.93 s [really-safe-money] let resultRational :: Rational
  2633. 123.93 s [really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  2634. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  2635. 123.93 s [really-safe-money] @@ -394,7 +394,7 @@
  2636. 123.93 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  2637. 123.93 s [really-safe-money] floored :: Natural
  2638. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2639. 123.93 s [really-safe-money] - in if ceiled == floored
  2640. 123.93 s [really-safe-money] + in if True
  2641. 123.93 s [really-safe-money] then
  2642. 123.93 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2643. 123.93 s [really-safe-money] then Nothing
  2644. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  2645. 123.93 s [really-safe-money] @@ -394,7 +394,7 @@
  2646. 123.93 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  2647. 123.93 s [really-safe-money] floored :: Natural
  2648. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2649. 123.93 s [really-safe-money] - in if ceiled == floored
  2650. 123.93 s [really-safe-money] + in if False
  2651. 123.93 s [really-safe-money] then
  2652. 123.93 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2653. 123.93 s [really-safe-money] then Nothing
  2654. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  2655. 123.93 s [really-safe-money] @@ -394,7 +394,7 @@
  2656. 123.93 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  2657. 123.93 s [really-safe-money] floored :: Natural
  2658. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2659. 123.93 s [really-safe-money] - in if ceiled == floored
  2660. 123.93 s [really-safe-money] + in if not (ceiled == floored)
  2661. 123.93 s [really-safe-money] then
  2662. 123.93 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2663. 123.93 s [really-safe-money] then Nothing
  2664. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  2665. 123.93 s [really-safe-money] @@ -396,7 +396,7 @@
  2666. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2667. 123.93 s [really-safe-money] in if ceiled == floored
  2668. 123.93 s [really-safe-money] then
  2669. 123.93 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2670. 123.93 s [really-safe-money] + if True
  2671. 123.93 s [really-safe-money] then Nothing
  2672. 123.93 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  2673. 123.93 s [really-safe-money] else Nothing
  2674. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  2675. 123.93 s [really-safe-money] @@ -396,7 +396,7 @@
  2676. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2677. 123.93 s [really-safe-money] in if ceiled == floored
  2678. 123.93 s [really-safe-money] then
  2679. 123.93 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2680. 123.93 s [really-safe-money] + if False
  2681. 123.93 s [really-safe-money] then Nothing
  2682. 123.93 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  2683. 123.93 s [really-safe-money] else Nothing
  2684. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  2685. 123.93 s [really-safe-money] @@ -396,7 +396,7 @@
  2686. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2687. 123.93 s [really-safe-money] in if ceiled == floored
  2688. 123.93 s [really-safe-money] then
  2689. 123.93 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2690. 123.93 s [really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  2691. 123.93 s [really-safe-money] then Nothing
  2692. 123.93 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  2693. 123.93 s [really-safe-money] else Nothing
  2694. 123.93 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:399:15-57
  2695. 123.93 s [really-safe-money] @@ -396,9 +396,9 @@
  2696. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2697. 123.93 s [really-safe-money] in if ceiled == floored
  2698. 123.93 s [really-safe-money] then
  2699. 123.93 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2700. 123.93 s [really-safe-money] - then Nothing
  2701. 123.93 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  2702. 123.93 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2703. 123.93 s [really-safe-money] + then Nothing
  2704. 123.93 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  2705. 123.93 s [really-safe-money] else Nothing
  2706. 123.93 s [really-safe-money]
  2707. 123.93 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  2708. 123.93 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:397:11-25
  2709. 123.93 s [really-safe-money] @@ -394,12 +394,12 @@
  2710. 123.93 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  2711. 123.93 s [really-safe-money] floored :: Natural
  2712. 123.93 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  2713. 123.93 s [really-safe-money] - in if ceiled == floored
  2714. 123.93 s [really-safe-money] - then
  2715. 123.93 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2716. 123.93 s [really-safe-money] - then Nothing
  2717. 123.93 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  2718. 123.93 s [really-safe-money] - else Nothing
  2719. 123.93 s [really-safe-money] + in if ceiled == floored
  2720. 123.93 s [really-safe-money] + then
  2721. 123.93 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2722. 123.93 s [really-safe-money] + then Nothing
  2723. 123.93 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  2724. 123.93 s [really-safe-money] + else Nothing
  2725. 123.93 s [really-safe-money]
  2726. 123.93 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  2727. 123.93 s [really-safe-money] --
  2728. 123.93 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  2729. 123.93 s [really-safe-money] @@ -317,7 +317,7 @@
  2730. 123.93 s [really-safe-money] Double ->
  2731. 123.93 s [really-safe-money] Maybe Amount
  2732. 123.93 s [really-safe-money] fromDouble (QuantisationFactor qf) d
  2733. 123.93 s [really-safe-money] - | d < 0 = Nothing
  2734. 123.93 s [really-safe-money] + | d < 1 = Nothing
  2735. 123.93 s [really-safe-money] | otherwise =
  2736. 123.93 s [really-safe-money] let resultDouble :: Double
  2737. 123.93 s [really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  2738. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  2739. 123.93 s [really-safe-money] @@ -317,7 +317,7 @@
  2740. 123.93 s [really-safe-money] Double ->
  2741. 123.93 s [really-safe-money] Maybe Amount
  2742. 123.93 s [really-safe-money] fromDouble (QuantisationFactor qf) d
  2743. 123.93 s [really-safe-money] - | d < 0 = Nothing
  2744. 123.93 s [really-safe-money] + | True = Nothing
  2745. 123.93 s [really-safe-money] | otherwise =
  2746. 123.93 s [really-safe-money] let resultDouble :: Double
  2747. 123.93 s [really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  2748. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  2749. 123.93 s [really-safe-money] @@ -317,7 +317,7 @@
  2750. 123.93 s [really-safe-money] Double ->
  2751. 123.93 s [really-safe-money] Maybe Amount
  2752. 123.93 s [really-safe-money] fromDouble (QuantisationFactor qf) d
  2753. 123.93 s [really-safe-money] - | d < 0 = Nothing
  2754. 123.93 s [really-safe-money] + | not (d < 0) = Nothing
  2755. 123.93 s [really-safe-money] | otherwise =
  2756. 123.93 s [really-safe-money] let resultDouble :: Double
  2757. 123.93 s [really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  2758. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  2759. 123.93 s [really-safe-money] @@ -324,7 +324,7 @@
  2760. 123.93 s [really-safe-money] in go resultDouble
  2761. 123.93 s [really-safe-money] where
  2762. 123.93 s [really-safe-money] go resultDouble
  2763. 123.93 s [really-safe-money] - | isNaN d = Nothing
  2764. 123.93 s [really-safe-money] + | True = Nothing
  2765. 123.93 s [really-safe-money] | isInfinite d = Nothing
  2766. 123.93 s [really-safe-money] | otherwise =
  2767. 123.93 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2768. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  2769. 123.93 s [really-safe-money] @@ -324,7 +324,7 @@
  2770. 123.93 s [really-safe-money] in go resultDouble
  2771. 123.93 s [really-safe-money] where
  2772. 123.93 s [really-safe-money] go resultDouble
  2773. 123.93 s [really-safe-money] - | isNaN d = Nothing
  2774. 123.93 s [really-safe-money] + | not (isNaN d) = Nothing
  2775. 123.93 s [really-safe-money] | isInfinite d = Nothing
  2776. 123.93 s [really-safe-money] | otherwise =
  2777. 123.93 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2778. 123.93 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  2779. 123.93 s [really-safe-money] @@ -325,7 +325,7 @@
  2780. 123.93 s [really-safe-money] where
  2781. 123.93 s [really-safe-money] go resultDouble
  2782. 123.93 s [really-safe-money] | isNaN d = Nothing
  2783. 123.93 s [really-safe-money] - | isInfinite d = Nothing
  2784. 123.93 s [really-safe-money] + | True = Nothing
  2785. 123.93 s [really-safe-money] | otherwise =
  2786. 123.93 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2787. 123.93 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2788. 123.93 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  2789. 123.93 s [really-safe-money] @@ -325,7 +325,7 @@
  2790. 123.93 s [really-safe-money] where
  2791. 123.93 s [really-safe-money] go resultDouble
  2792. 123.93 s [really-safe-money] | isNaN d = Nothing
  2793. 123.93 s [really-safe-money] - | isInfinite d = Nothing
  2794. 123.93 s [really-safe-money] + | not (isInfinite d) = Nothing
  2795. 123.93 s [really-safe-money] | otherwise =
  2796. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2797. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2798. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  2799. 123.94 s [really-safe-money] @@ -329,7 +329,7 @@
  2800. 123.94 s [really-safe-money] | otherwise =
  2801. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2802. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2803. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2804. 123.94 s [really-safe-money] + if exponent resultDouble > 0
  2805. 123.94 s [really-safe-money] then Nothing
  2806. 123.94 s [really-safe-money] else
  2807. 123.94 s [really-safe-money] let ceiled :: Natural
  2808. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  2809. 123.94 s [really-safe-money] @@ -329,7 +329,7 @@
  2810. 123.94 s [really-safe-money] | otherwise =
  2811. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2812. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2813. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2814. 123.94 s [really-safe-money] + if exponent resultDouble > 1
  2815. 123.94 s [really-safe-money] then Nothing
  2816. 123.94 s [really-safe-money] else
  2817. 123.94 s [really-safe-money] let ceiled :: Natural
  2818. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  2819. 123.94 s [really-safe-money] @@ -329,7 +329,7 @@
  2820. 123.94 s [really-safe-money] | otherwise =
  2821. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2822. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2823. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2824. 123.94 s [really-safe-money] + if exponent resultDouble > -65
  2825. 123.94 s [really-safe-money] then Nothing
  2826. 123.94 s [really-safe-money] else
  2827. 123.94 s [really-safe-money] let ceiled :: Natural
  2828. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  2829. 123.94 s [really-safe-money] @@ -329,7 +329,7 @@
  2830. 123.94 s [really-safe-money] | otherwise =
  2831. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2832. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2833. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2834. 123.94 s [really-safe-money] + if True
  2835. 123.94 s [really-safe-money] then Nothing
  2836. 123.94 s [really-safe-money] else
  2837. 123.94 s [really-safe-money] let ceiled :: Natural
  2838. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  2839. 123.94 s [really-safe-money] @@ -329,7 +329,7 @@
  2840. 123.94 s [really-safe-money] | otherwise =
  2841. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2842. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2843. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2844. 123.94 s [really-safe-money] + if False
  2845. 123.94 s [really-safe-money] then Nothing
  2846. 123.94 s [really-safe-money] else
  2847. 123.94 s [really-safe-money] let ceiled :: Natural
  2848. 123.94 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  2849. 123.94 s [really-safe-money] @@ -329,7 +329,7 @@
  2850. 123.94 s [really-safe-money] | otherwise =
  2851. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2852. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2853. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2854. 123.94 s [really-safe-money] + if not (exponent resultDouble > 65)
  2855. 123.94 s [really-safe-money] then Nothing
  2856. 123.94 s [really-safe-money] else
  2857. 123.94 s [really-safe-money] let ceiled :: Natural
  2858. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  2859. 123.94 s [really-safe-money] @@ -336,7 +336,7 @@
  2860. 123.94 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  2861. 123.94 s [really-safe-money] floored :: Natural
  2862. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2863. 123.94 s [really-safe-money] - in if ceiled == floored
  2864. 123.94 s [really-safe-money] + in if True
  2865. 123.94 s [really-safe-money] then
  2866. 123.94 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2867. 123.94 s [really-safe-money] then Nothing
  2868. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  2869. 123.94 s [really-safe-money] @@ -336,7 +336,7 @@
  2870. 123.94 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  2871. 123.94 s [really-safe-money] floored :: Natural
  2872. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2873. 123.94 s [really-safe-money] - in if ceiled == floored
  2874. 123.94 s [really-safe-money] + in if False
  2875. 123.94 s [really-safe-money] then
  2876. 123.94 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2877. 123.94 s [really-safe-money] then Nothing
  2878. 123.94 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  2879. 123.94 s [really-safe-money] @@ -336,7 +336,7 @@
  2880. 123.94 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  2881. 123.94 s [really-safe-money] floored :: Natural
  2882. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2883. 123.94 s [really-safe-money] - in if ceiled == floored
  2884. 123.94 s [really-safe-money] + in if not (ceiled == floored)
  2885. 123.94 s [really-safe-money] then
  2886. 123.94 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2887. 123.94 s [really-safe-money] then Nothing
  2888. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  2889. 123.94 s [really-safe-money] @@ -338,7 +338,7 @@
  2890. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2891. 123.94 s [really-safe-money] in if ceiled == floored
  2892. 123.94 s [really-safe-money] then
  2893. 123.94 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2894. 123.94 s [really-safe-money] + if True
  2895. 123.94 s [really-safe-money] then Nothing
  2896. 123.94 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  2897. 123.94 s [really-safe-money] else Nothing
  2898. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  2899. 123.94 s [really-safe-money] @@ -338,7 +338,7 @@
  2900. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2901. 123.94 s [really-safe-money] in if ceiled == floored
  2902. 123.94 s [really-safe-money] then
  2903. 123.94 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2904. 123.94 s [really-safe-money] + if False
  2905. 123.94 s [really-safe-money] then Nothing
  2906. 123.94 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  2907. 123.94 s [really-safe-money] else Nothing
  2908. 123.94 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  2909. 123.94 s [really-safe-money] @@ -338,7 +338,7 @@
  2910. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2911. 123.94 s [really-safe-money] in if ceiled == floored
  2912. 123.94 s [really-safe-money] then
  2913. 123.94 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2914. 123.94 s [really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  2915. 123.94 s [really-safe-money] then Nothing
  2916. 123.94 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  2917. 123.94 s [really-safe-money] else Nothing
  2918. 123.94 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:341:23-65
  2919. 123.94 s [really-safe-money] @@ -338,9 +338,9 @@
  2920. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2921. 123.94 s [really-safe-money] in if ceiled == floored
  2922. 123.94 s [really-safe-money] then
  2923. 123.94 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2924. 123.94 s [really-safe-money] - then Nothing
  2925. 123.94 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  2926. 123.94 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2927. 123.94 s [really-safe-money] + then Nothing
  2928. 123.94 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  2929. 123.94 s [really-safe-money] else Nothing
  2930. 123.94 s [really-safe-money]
  2931. 123.94 s [really-safe-money] -- | Turn an amount of money into a 'Double'.
  2932. 123.94 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:339:19-33
  2933. 123.94 s [really-safe-money] @@ -336,12 +336,12 @@
  2934. 123.94 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  2935. 123.94 s [really-safe-money] floored :: Natural
  2936. 123.94 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  2937. 123.94 s [really-safe-money] - in if ceiled == floored
  2938. 123.94 s [really-safe-money] - then
  2939. 123.94 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2940. 123.94 s [really-safe-money] - then Nothing
  2941. 123.94 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  2942. 123.94 s [really-safe-money] - else Nothing
  2943. 123.94 s [really-safe-money] + in if ceiled == floored
  2944. 123.94 s [really-safe-money] + then
  2945. 123.94 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2946. 123.94 s [really-safe-money] + then Nothing
  2947. 123.94 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  2948. 123.94 s [really-safe-money] + else Nothing
  2949. 123.94 s [really-safe-money]
  2950. 123.94 s [really-safe-money] -- | Turn an amount of money into a 'Double'.
  2951. 123.94 s [really-safe-money] --
  2952. 123.94 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:332:11-33
  2953. 123.94 s [really-safe-money] @@ -329,19 +329,19 @@
  2954. 123.94 s [really-safe-money] | otherwise =
  2955. 123.94 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  2956. 123.94 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  2957. 123.94 s [really-safe-money] - if exponent resultDouble > 65
  2958. 123.94 s [really-safe-money] - then Nothing
  2959. 123.94 s [really-safe-money] - else
  2960. 123.94 s [really-safe-money] - let ceiled :: Natural
  2961. 123.94 s [really-safe-money] - ceiled = (ceiling :: Double -> Natural) resultDouble
  2962. 123.94 s [really-safe-money] - floored :: Natural
  2963. 123.94 s [really-safe-money] - floored = (floor :: Double -> Natural) resultDouble
  2964. 123.94 s [really-safe-money] - in if ceiled == floored
  2965. 123.94 s [really-safe-money] - then
  2966. 123.94 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2967. 123.94 s [really-safe-money] - then Nothing
  2968. 123.94 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  2969. 123.94 s [really-safe-money] - else Nothing
  2970. 123.94 s [really-safe-money] + if exponent resultDouble > 65
  2971. 123.94 s [really-safe-money] + then Nothing
  2972. 123.94 s [really-safe-money] + else
  2973. 123.94 s [really-safe-money] + let ceiled :: Natural
  2974. 123.94 s [really-safe-money] + ceiled = (ceiling :: Double -> Natural) resultDouble
  2975. 123.94 s [really-safe-money] + floored :: Natural
  2976. 123.94 s [really-safe-money] + floored = (floor :: Double -> Natural) resultDouble
  2977. 123.94 s [really-safe-money] + in if ceiled == floored
  2978. 123.94 s [really-safe-money] + then
  2979. 123.94 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  2980. 123.94 s [really-safe-money] + then Nothing
  2981. 123.94 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  2982. 123.94 s [really-safe-money] + else Nothing
  2983. 123.94 s [really-safe-money]
  2984. 123.94 s [really-safe-money] -- | Turn an amount of money into a 'Double'.
  2985. 123.94 s [really-safe-money] --
  2986. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  2987. 123.94 s [really-safe-money] @@ -287,7 +287,7 @@
  2988. 123.94 s [really-safe-money] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  2989. 123.94 s [really-safe-money] -- 1 % 100
  2990. 123.94 s [really-safe-money] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  2991. 123.94 s [really-safe-money] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  2992. 123.94 s [really-safe-money] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  2993. 123.94 s [really-safe-money] toRatio (QuantisationFactor quantisationFactor) a =
  2994. 123.94 s [really-safe-money] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  2995. 123.94 s [really-safe-money] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  2996. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  2997. 123.94 s [really-safe-money] @@ -491,7 +491,7 @@
  2998. 123.94 s [really-safe-money] let maxBoundI :: Integer
  2999. 123.94 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  3000. 123.94 s [really-safe-money] r :: Integer
  3001. 123.94 s [really-safe-money] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  3002. 123.94 s [really-safe-money] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  3003. 123.94 s [really-safe-money] in if r > maxBoundI
  3004. 123.94 s [really-safe-money] then Nothing
  3005. 123.94 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  3006. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  3007. 123.94 s [really-safe-money] @@ -492,7 +492,7 @@
  3008. 123.94 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  3009. 123.94 s [really-safe-money] r :: Integer
  3010. 123.94 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  3011. 123.94 s [really-safe-money] - in if r > maxBoundI
  3012. 123.94 s [really-safe-money] + in if True
  3013. 123.94 s [really-safe-money] then Nothing
  3014. 123.94 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  3015. 123.94 s [really-safe-money]
  3016. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  3017. 123.94 s [really-safe-money] @@ -492,7 +492,7 @@
  3018. 123.94 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  3019. 123.94 s [really-safe-money] r :: Integer
  3020. 123.94 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  3021. 123.94 s [really-safe-money] - in if r > maxBoundI
  3022. 123.94 s [really-safe-money] + in if False
  3023. 123.94 s [really-safe-money] then Nothing
  3024. 123.94 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  3025. 123.94 s [really-safe-money]
  3026. 123.94 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  3027. 123.94 s [really-safe-money] @@ -492,7 +492,7 @@
  3028. 123.94 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  3029. 123.94 s [really-safe-money] r :: Integer
  3030. 123.94 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  3031. 123.94 s [really-safe-money] - in if r > maxBoundI
  3032. 123.94 s [really-safe-money] + in if not (r > maxBoundI)
  3033. 123.94 s [really-safe-money] then Nothing
  3034. 123.94 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  3035. 123.94 s [really-safe-money]
  3036. 123.94 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:495:7-66
  3037. 123.94 s [really-safe-money] @@ -492,9 +492,9 @@
  3038. 123.94 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  3039. 123.94 s [really-safe-money] r :: Integer
  3040. 123.94 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  3041. 123.94 s [really-safe-money] - in if r > maxBoundI
  3042. 123.94 s [really-safe-money] - then Nothing
  3043. 123.94 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  3044. 123.94 s [really-safe-money] + in if r > maxBoundI
  3045. 123.94 s [really-safe-money] + then Nothing
  3046. 123.94 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  3047. 123.94 s [really-safe-money]
  3048. 123.94 s [really-safe-money] -- | Add two amounts of money.
  3049. 123.94 s [really-safe-money] --
  3050. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  3051. 123.94 s [really-safe-money] @@ -247,7 +247,7 @@
  3052. 123.94 s [really-safe-money] -- >>> zero
  3053. 123.94 s [really-safe-money] -- Amount 0
  3054. 123.94 s [really-safe-money] zero :: Amount
  3055. 123.94 s [really-safe-money] -zero = Amount 0
  3056. 123.94 s [really-safe-money] +zero = Amount 1
  3057. 123.94 s [really-safe-money]
  3058. 123.94 s [really-safe-money] -- | Turn an amount into a number of minimal quantisations.
  3059. 123.94 s [really-safe-money] --
  3060. 123.94 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  3061. 123.94 s [really-safe-money] @@ -658,7 +658,7 @@
  3062. 123.94 s [really-safe-money] -- | The amount and the real rate that was used, considering the 'Rounding'
  3063. 123.94 s [really-safe-money] (Maybe Amount, Ratio Natural)
  3064. 123.94 s [really-safe-money] fraction _ (Amount 0) f = (Just zero, f)
  3065. 123.94 s [really-safe-money] -fraction _ _ 0 = (Just zero, 0)
  3066. 123.94 s [really-safe-money] +fraction _ _ 0 = (Just zero, 1)
  3067. 123.94 s [really-safe-money] fraction r (Amount a) f =
  3068. 123.94 s [really-safe-money] let amountAsRatio :: Ratio Natural
  3069. 123.94 s [really-safe-money] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  3070. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  3071. 123.94 s [really-safe-money] @@ -678,7 +678,7 @@
  3072. 123.94 s [really-safe-money] maxBoundN :: Natural
  3073. 123.94 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3074. 123.94 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  3075. 123.94 s [really-safe-money] - in ( if roundedResult > maxBoundN
  3076. 123.94 s [really-safe-money] + in ( if True
  3077. 123.94 s [really-safe-money] then Nothing
  3078. 123.94 s [really-safe-money] else Just result,
  3079. 123.94 s [really-safe-money] actualRate
  3080. 123.94 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  3081. 123.94 s [really-safe-money] @@ -678,7 +678,7 @@
  3082. 123.94 s [really-safe-money] maxBoundN :: Natural
  3083. 123.94 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3084. 123.95 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  3085. 123.95 s [really-safe-money] - in ( if roundedResult > maxBoundN
  3086. 123.95 s [really-safe-money] + in ( if False
  3087. 123.95 s [really-safe-money] then Nothing
  3088. 123.95 s [really-safe-money] else Just result,
  3089. 123.95 s [really-safe-money] actualRate
  3090. 123.95 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  3091. 123.95 s [really-safe-money] @@ -678,7 +678,7 @@
  3092. 123.95 s [really-safe-money] maxBoundN :: Natural
  3093. 123.95 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3094. 123.95 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  3095. 123.95 s [really-safe-money] - in ( if roundedResult > maxBoundN
  3096. 123.95 s [really-safe-money] + in ( if not (roundedResult > maxBoundN)
  3097. 123.95 s [really-safe-money] then Nothing
  3098. 123.95 s [really-safe-money] else Just result,
  3099. 123.95 s [really-safe-money] actualRate
  3100. 123.95 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:681:9-27
  3101. 123.95 s [really-safe-money] @@ -678,9 +678,9 @@
  3102. 123.95 s [really-safe-money] maxBoundN :: Natural
  3103. 123.95 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3104. 123.95 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  3105. 123.95 s [really-safe-money] - in ( if roundedResult > maxBoundN
  3106. 123.95 s [really-safe-money] - then Nothing
  3107. 123.95 s [really-safe-money] - else Just result,
  3108. 123.95 s [really-safe-money] + in ( if roundedResult > maxBoundN
  3109. 123.95 s [really-safe-money] + then Nothing
  3110. 123.95 s [really-safe-money] + else Just result,
  3111. 123.95 s [really-safe-money] actualRate
  3112. 123.95 s [really-safe-money] )
  3113. 123.95 s [really-safe-money]
  3114. 123.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  3115. 123.95 s [really-safe-money] @@ -803,4 +803,4 @@
  3116. 123.95 s [really-safe-money]
  3117. 123.95 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  3118. 123.95 s [really-safe-money] validateStrictlyPositive :: Amount -> Validation
  3119. 123.95 s [really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  3120. 123.95 s [really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  3121. 123.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  3122. 123.95 s [really-safe-money] @@ -803,4 +803,4 @@
  3123. 123.95 s [really-safe-money]
  3124. 123.95 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  3125. 123.95 s [really-safe-money] validateStrictlyPositive :: Amount -> Validation
  3126. 123.95 s [really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  3127. 123.95 s [really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  3128. 123.95 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  3129. 123.95 s [really-safe-money] @@ -803,4 +803,4 @@
  3130. 123.95 s [really-safe-money]
  3131. 123.95 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  3132. 123.95 s [really-safe-money] validateStrictlyPositive :: Amount -> Validation
  3133. 123.95 s [really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  3134. 123.95 s [really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  3135. 123.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  3136. 123.95 s [really-safe-money] @@ -604,7 +604,7 @@
  3137. 123.95 s [really-safe-money] case ad of
  3138. 123.95 s [really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
  3139. 123.95 s [really-safe-money] declare "The larger chunks are larger" $
  3140. 123.95 s [really-safe-money] - a1 > a2
  3141. 123.95 s [really-safe-money] + True
  3142. 123.95 s [really-safe-money] _ -> valid
  3143. 123.95 s [really-safe-money] ]
  3144. 123.95 s [really-safe-money]
  3145. 123.95 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  3146. 123.95 s [really-safe-money] @@ -604,7 +604,7 @@
  3147. 123.95 s [really-safe-money] case ad of
  3148. 123.95 s [really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
  3149. 123.95 s [really-safe-money] declare "The larger chunks are larger" $
  3150. 123.95 s [really-safe-money] - a1 > a2
  3151. 123.95 s [really-safe-money] + False
  3152. 123.95 s [really-safe-money] _ -> valid
  3153. 123.95 s [really-safe-money] ]
  3154. 123.95 s [really-safe-money]
  3155. 123.95 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  3156. 123.95 s [really-safe-money] @@ -604,7 +604,7 @@
  3157. 123.95 s [really-safe-money] case ad of
  3158. 123.95 s [really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
  3159. 123.95 s [really-safe-money] declare "The larger chunks are larger" $
  3160. 123.95 s [really-safe-money] - a1 > a2
  3161. 123.95 s [really-safe-money] + not (a1 > a2)
  3162. 123.95 s [really-safe-money] _ -> valid
  3163. 123.95 s [really-safe-money] ]
  3164. 123.95 s [really-safe-money]
  3165. 123.95 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  3166. 123.95 s [really-safe-money] @@ -600,13 +600,7 @@
  3167. 123.95 s [really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  3168. 123.95 s [really-safe-money] validate ad =
  3169. 123.95 s [really-safe-money] mconcat
  3170. 123.95 s [really-safe-money] - [ genericValidate ad,
  3171. 123.95 s [really-safe-money] - case ad of
  3172. 123.95 s [really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  3173. 123.95 s [really-safe-money] - declare "The larger chunks are larger" $
  3174. 123.95 s [really-safe-money] - a1 > a2
  3175. 123.95 s [really-safe-money] - _ -> valid
  3176. 123.95 s [really-safe-money] - ]
  3177. 123.95 s [really-safe-money] + []
  3178. 123.95 s [really-safe-money]
  3179. 123.95 s [really-safe-money] instance (NFData amount) => NFData (Distribution amount)
  3180. 123.95 s [really-safe-money]
  3181. 123.95 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  3182. 123.95 s [really-safe-money] @@ -600,13 +600,13 @@
  3183. 123.95 s [really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  3184. 123.95 s [really-safe-money] validate ad =
  3185. 123.95 s [really-safe-money] mconcat
  3186. 123.95 s [really-safe-money] - [ genericValidate ad,
  3187. 123.95 s [really-safe-money] - case ad of
  3188. 123.95 s [really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  3189. 123.95 s [really-safe-money] - declare "The larger chunks are larger" $
  3190. 123.95 s [really-safe-money] - a1 > a2
  3191. 123.95 s [really-safe-money] - _ -> valid
  3192. 123.95 s [really-safe-money] - ]
  3193. 123.95 s [really-safe-money] + [ genericValidate ad,
  3194. 123.95 s [really-safe-money] + case ad of
  3195. 123.95 s [really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
  3196. 123.95 s [really-safe-money] + declare "The larger chunks are larger" $
  3197. 123.95 s [really-safe-money] + a1 > a2
  3198. 123.95 s [really-safe-money] + _ -> valid
  3199. 123.95 s [really-safe-money] + ]
  3200. 123.95 s [really-safe-money]
  3201. 123.95 s [really-safe-money] instance (NFData amount) => NFData (Distribution amount)
  3202. 123.95 s [really-safe-money]
  3203. 123.95 s [really-safe-money] added 76 mutations
  3204. 125.39 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.o, dist/build/Money/MultiAmount.dyn_o )
  3205. 125.42 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  3206. 125.42 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  3207. 125.42 s [really-safe-money] @@ -165,7 +165,7 @@
  3208. 125.42 s [really-safe-money] maxBoundN :: Natural
  3209. 125.42 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3210. 125.42 s [really-safe-money] actualResult =
  3211. 125.42 s [really-safe-money] - if roundedResult > maxBoundN
  3212. 125.42 s [really-safe-money] + if True
  3213. 125.42 s [really-safe-money] then Nothing
  3214. 125.42 s [really-safe-money] else Just (fromIntegral roundedResult)
  3215. 125.42 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3216. 125.42 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  3217. 125.42 s [really-safe-money] @@ -165,7 +165,7 @@
  3218. 125.42 s [really-safe-money] maxBoundN :: Natural
  3219. 125.42 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3220. 125.42 s [really-safe-money] actualResult =
  3221. 125.42 s [really-safe-money] - if roundedResult > maxBoundN
  3222. 125.42 s [really-safe-money] + if False
  3223. 125.42 s [really-safe-money] then Nothing
  3224. 125.42 s [really-safe-money] else Just (fromIntegral roundedResult)
  3225. 125.42 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3226. 125.42 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  3227. 125.42 s [really-safe-money] @@ -165,7 +165,7 @@
  3228. 125.42 s [really-safe-money] maxBoundN :: Natural
  3229. 125.42 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3230. 125.42 s [really-safe-money] actualResult =
  3231. 125.42 s [really-safe-money] - if roundedResult > maxBoundN
  3232. 125.42 s [really-safe-money] + if not (roundedResult > maxBoundN)
  3233. 125.42 s [really-safe-money] then Nothing
  3234. 125.42 s [really-safe-money] else Just (fromIntegral roundedResult)
  3235. 125.42 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3236. 125.42 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
  3237. 125.42 s [really-safe-money] @@ -165,9 +165,9 @@
  3238. 125.42 s [really-safe-money] maxBoundN :: Natural
  3239. 125.42 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  3240. 125.42 s [really-safe-money] actualResult =
  3241. 125.42 s [really-safe-money] - if roundedResult > maxBoundN
  3242. 125.42 s [really-safe-money] - then Nothing
  3243. 125.42 s [really-safe-money] - else Just (fromIntegral roundedResult)
  3244. 125.42 s [really-safe-money] + if roundedResult > maxBoundN
  3245. 125.42 s [really-safe-money] + then Nothing
  3246. 125.42 s [really-safe-money] + else Just (fromIntegral roundedResult)
  3247. 125.42 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  3248. 125.42 s [really-safe-money] LT -> RoundedDown
  3249. 125.42 s [really-safe-money] EQ -> DidNotRound
  3250. 125.42 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  3251. 125.42 s [really-safe-money] @@ -116,7 +116,7 @@
  3252. 125.42 s [really-safe-money] Just a -> do
  3253. 125.42 s [really-safe-money] r <- Amount.subtract a amount
  3254. 125.42 s [really-safe-money] Just $
  3255. 125.42 s [really-safe-money] - if r == Amount.zero
  3256. 125.42 s [really-safe-money] + if True
  3257. 125.42 s [really-safe-money] then M.delete currency m
  3258. 125.42 s [really-safe-money] else M.insert currency r m
  3259. 125.42 s [really-safe-money]
  3260. 125.42 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  3261. 125.42 s [really-safe-money] @@ -116,7 +116,7 @@
  3262. 125.42 s [really-safe-money] Just a -> do
  3263. 125.42 s [really-safe-money] r <- Amount.subtract a amount
  3264. 125.42 s [really-safe-money] Just $
  3265. 125.42 s [really-safe-money] - if r == Amount.zero
  3266. 125.42 s [really-safe-money] + if False
  3267. 125.42 s [really-safe-money] then M.delete currency m
  3268. 125.43 s [really-safe-money] else M.insert currency r m
  3269. 125.43 s [really-safe-money]
  3270. 125.43 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  3271. 125.43 s [really-safe-money] @@ -116,7 +116,7 @@
  3272. 125.43 s [really-safe-money] Just a -> do
  3273. 125.43 s [really-safe-money] r <- Amount.subtract a amount
  3274. 125.43 s [really-safe-money] Just $
  3275. 125.43 s [really-safe-money] - if r == Amount.zero
  3276. 125.43 s [really-safe-money] + if not (r == Amount.zero)
  3277. 125.43 s [really-safe-money] then M.delete currency m
  3278. 125.43 s [really-safe-money] else M.insert currency r m
  3279. 125.43 s [really-safe-money]
  3280. 125.43 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
  3281. 125.43 s [really-safe-money] @@ -116,9 +116,9 @@
  3282. 125.43 s [really-safe-money] Just a -> do
  3283. 125.43 s [really-safe-money] r <- Amount.subtract a amount
  3284. 125.43 s [really-safe-money] Just $
  3285. 125.43 s [really-safe-money] - if r == Amount.zero
  3286. 125.43 s [really-safe-money] - then M.delete currency m
  3287. 125.43 s [really-safe-money] - else M.insert currency r m
  3288. 125.43 s [really-safe-money] + if r == Amount.zero
  3289. 125.43 s [really-safe-money] + then M.delete currency m
  3290. 125.43 s [really-safe-money] + else M.insert currency r m
  3291. 125.43 s [really-safe-money]
  3292. 125.43 s [really-safe-money] -- | Try to convert every amount to one currency.
  3293. 125.43 s [really-safe-money] --
  3294. 125.43 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  3295. 125.43 s [really-safe-money] @@ -103,7 +103,7 @@
  3296. 125.43 s [really-safe-money] Just a -> do
  3297. 125.43 s [really-safe-money] r <- Amount.add a amount
  3298. 125.43 s [really-safe-money] Just $
  3299. 125.43 s [really-safe-money] - if r == Amount.zero
  3300. 125.43 s [really-safe-money] + if True
  3301. 125.43 s [really-safe-money] then M.delete currency m
  3302. 125.43 s [really-safe-money] else M.insert currency r m
  3303. 125.43 s [really-safe-money]
  3304. 125.43 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  3305. 125.43 s [really-safe-money] @@ -103,7 +103,7 @@
  3306. 125.43 s [really-safe-money] Just a -> do
  3307. 125.43 s [really-safe-money] r <- Amount.add a amount
  3308. 125.43 s [really-safe-money] Just $
  3309. 125.43 s [really-safe-money] - if r == Amount.zero
  3310. 125.43 s [really-safe-money] + if False
  3311. 125.43 s [really-safe-money] then M.delete currency m
  3312. 125.43 s [really-safe-money] else M.insert currency r m
  3313. 125.43 s [really-safe-money]
  3314. 125.43 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  3315. 125.43 s [really-safe-money] @@ -103,7 +103,7 @@
  3316. 125.43 s [really-safe-money] Just a -> do
  3317. 125.43 s [really-safe-money] r <- Amount.add a amount
  3318. 125.43 s [really-safe-money] Just $
  3319. 125.43 s [really-safe-money] - if r == Amount.zero
  3320. 125.43 s [really-safe-money] + if not (r == Amount.zero)
  3321. 125.43 s [really-safe-money] then M.delete currency m
  3322. 125.43 s [really-safe-money] else M.insert currency r m
  3323. 125.43 s [really-safe-money]
  3324. 125.43 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
  3325. 125.43 s [really-safe-money] @@ -103,9 +103,9 @@
  3326. 125.43 s [really-safe-money] Just a -> do
  3327. 125.43 s [really-safe-money] r <- Amount.add a amount
  3328. 125.43 s [really-safe-money] Just $
  3329. 125.43 s [really-safe-money] - if r == Amount.zero
  3330. 125.43 s [really-safe-money] - then M.delete currency m
  3331. 125.43 s [really-safe-money] - else M.insert currency r m
  3332. 125.43 s [really-safe-money] + if r == Amount.zero
  3333. 125.43 s [really-safe-money] + then M.delete currency m
  3334. 125.43 s [really-safe-money] + else M.insert currency r m
  3335. 125.43 s [really-safe-money]
  3336. 125.43 s [really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
  3337. 125.43 s [really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  3338. 125.43 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  3339. 125.43 s [really-safe-money] @@ -70,7 +70,7 @@
  3340. 125.43 s [really-safe-money]
  3341. 125.43 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  3342. 125.43 s [really-safe-money] fromAmount currency amount =
  3343. 125.43 s [really-safe-money] - if amount == Amount.zero
  3344. 125.43 s [really-safe-money] + if True
  3345. 125.43 s [really-safe-money] then zero
  3346. 125.43 s [really-safe-money] else MultiAmount $ M.singleton currency amount
  3347. 125.43 s [really-safe-money]
  3348. 125.43 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  3349. 125.43 s [really-safe-money] @@ -70,7 +70,7 @@
  3350. 125.43 s [really-safe-money]
  3351. 125.43 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  3352. 125.43 s [really-safe-money] fromAmount currency amount =
  3353. 125.43 s [really-safe-money] - if amount == Amount.zero
  3354. 125.43 s [really-safe-money] + if False
  3355. 125.43 s [really-safe-money] then zero
  3356. 125.43 s [really-safe-money] else MultiAmount $ M.singleton currency amount
  3357. 125.43 s [really-safe-money]
  3358. 125.43 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  3359. 125.43 s [really-safe-money] @@ -70,7 +70,7 @@
  3360. 125.43 s [really-safe-money]
  3361. 125.43 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  3362. 125.43 s [really-safe-money] fromAmount currency amount =
  3363. 125.43 s [really-safe-money] - if amount == Amount.zero
  3364. 125.43 s [really-safe-money] + if not (amount == Amount.zero)
  3365. 125.43 s [really-safe-money] then zero
  3366. 125.43 s [really-safe-money] else MultiAmount $ M.singleton currency amount
  3367. 125.43 s [really-safe-money]
  3368. 125.43 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
  3369. 125.43 s [really-safe-money] @@ -70,9 +70,9 @@
  3370. 125.43 s [really-safe-money]
  3371. 125.43 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  3372. 125.43 s [really-safe-money] fromAmount currency amount =
  3373. 125.43 s [really-safe-money] - if amount == Amount.zero
  3374. 125.43 s [really-safe-money] - then zero
  3375. 125.43 s [really-safe-money] - else MultiAmount $ M.singleton currency amount
  3376. 125.43 s [really-safe-money] + if amount == Amount.zero
  3377. 125.43 s [really-safe-money] + then zero
  3378. 125.43 s [really-safe-money] + else MultiAmount $ M.singleton currency amount
  3379. 125.43 s [really-safe-money]
  3380. 125.43 s [really-safe-money] -- | No money of any currency
  3381. 125.43 s [really-safe-money] zero :: MultiAmount currency
  3382. 125.43 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  3383. 125.43 s [really-safe-money] @@ -63,7 +63,7 @@
  3384. 125.43 s [really-safe-money] [ genericValidate ma,
  3385. 125.43 s [really-safe-money] decorateMap m $ \_ a ->
  3386. 125.43 s [really-safe-money] declare "The amount is not zero" $
  3387. 125.43 s [really-safe-money] - a /= Amount.zero
  3388. 125.43 s [really-safe-money] + True
  3389. 125.43 s [really-safe-money] ]
  3390. 125.43 s [really-safe-money]
  3391. 125.43 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  3392. 125.43 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  3393. 125.43 s [really-safe-money] @@ -63,7 +63,7 @@
  3394. 125.43 s [really-safe-money] [ genericValidate ma,
  3395. 125.43 s [really-safe-money] decorateMap m $ \_ a ->
  3396. 125.43 s [really-safe-money] declare "The amount is not zero" $
  3397. 125.43 s [really-safe-money] - a /= Amount.zero
  3398. 125.43 s [really-safe-money] + False
  3399. 125.43 s [really-safe-money] ]
  3400. 125.43 s [really-safe-money]
  3401. 125.43 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  3402. 125.43 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  3403. 125.43 s [really-safe-money] @@ -63,7 +63,7 @@
  3404. 125.43 s [really-safe-money] [ genericValidate ma,
  3405. 125.43 s [really-safe-money] decorateMap m $ \_ a ->
  3406. 125.43 s [really-safe-money] declare "The amount is not zero" $
  3407. 125.43 s [really-safe-money] - a /= Amount.zero
  3408. 125.43 s [really-safe-money] + not (a /= Amount.zero)
  3409. 125.43 s [really-safe-money] ]
  3410. 125.43 s [really-safe-money]
  3411. 125.43 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  3412. 125.43 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  3413. 125.43 s [really-safe-money] @@ -60,11 +60,7 @@
  3414. 125.43 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  3415. 125.43 s [really-safe-money] validate ma@(MultiAmount m) =
  3416. 125.43 s [really-safe-money] mconcat
  3417. 125.43 s [really-safe-money] - [ genericValidate ma,
  3418. 125.43 s [really-safe-money] - decorateMap m $ \_ a ->
  3419. 125.43 s [really-safe-money] - declare "The amount is not zero" $
  3420. 125.43 s [really-safe-money] - a /= Amount.zero
  3421. 125.43 s [really-safe-money] - ]
  3422. 125.43 s [really-safe-money] + []
  3423. 125.43 s [really-safe-money]
  3424. 125.43 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  3425. 125.43 s [really-safe-money]
  3426. 125.43 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  3427. 125.43 s [really-safe-money] @@ -60,11 +60,11 @@
  3428. 125.43 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  3429. 125.43 s [really-safe-money] validate ma@(MultiAmount m) =
  3430. 125.43 s [really-safe-money] mconcat
  3431. 125.43 s [really-safe-money] - [ genericValidate ma,
  3432. 125.43 s [really-safe-money] - decorateMap m $ \_ a ->
  3433. 125.43 s [really-safe-money] - declare "The amount is not zero" $
  3434. 125.43 s [really-safe-money] - a /= Amount.zero
  3435. 125.43 s [really-safe-money] - ]
  3436. 125.43 s [really-safe-money] + [ genericValidate ma,
  3437. 125.43 s [really-safe-money] + decorateMap m $ \_ a ->
  3438. 125.43 s [really-safe-money] + declare "The amount is not zero" $
  3439. 125.43 s [really-safe-money] + a /= Amount.zero
  3440. 125.43 s [really-safe-money] + ]
  3441. 125.43 s [really-safe-money]
  3442. 125.43 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  3443. 125.43 s [really-safe-money]
  3444. 125.43 s [really-safe-money] added 21 mutations
  3445. 126.23 s Building genvalidity-sydtest-source
  3446. 126.23 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 )
  3447. 126.23 s [really-safe-money] mutation: instrumenting Money.AmountOf
  3448. 126.23 s [really-safe-money] added 0 mutations
  3449. 126.42 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 )
  3450. 126.44 s [really-safe-money] mutation: instrumenting Money.Account
  3451. 126.44 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  3452. 126.44 s [really-safe-money] @@ -418,7 +418,7 @@
  3453. 126.44 s [really-safe-money] multiply :: Int32 -> Account -> Maybe Account
  3454. 126.44 s [really-safe-money] multiply factor account =
  3455. 126.44 s [really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  3456. 126.44 s [really-safe-money] - f = case (compare factor 0, compare account zero) of
  3457. 126.44 s [really-safe-money] + f = case (compare factor 1, compare account zero) of
  3458. 126.44 s [really-safe-money] (EQ, _) -> const zero
  3459. 126.44 s [really-safe-money] (_, EQ) -> const zero
  3460. 126.44 s [really-safe-money] (GT, GT) -> Positive
  3461. 126.44 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  3462. 126.44 s [really-safe-money] @@ -448,7 +448,7 @@
  3463. 126.44 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3464. 126.44 s [really-safe-money] DistributedZero -> DistributedZero
  3465. 126.44 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  3466. 126.44 s [really-safe-money] - if a >= zero
  3467. 126.44 s [really-safe-money] + if True
  3468. 126.44 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3469. 126.44 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3470. 126.44 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3471. 126.44 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  3472. 126.44 s [really-safe-money] @@ -448,7 +448,7 @@
  3473. 126.44 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3474. 126.44 s [really-safe-money] DistributedZero -> DistributedZero
  3475. 126.44 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  3476. 126.44 s [really-safe-money] - if a >= zero
  3477. 126.44 s [really-safe-money] + if False
  3478. 126.44 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3479. 126.44 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3480. 126.44 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3481. 126.44 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  3482. 126.44 s [really-safe-money] @@ -448,7 +448,7 @@
  3483. 126.44 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3484. 126.44 s [really-safe-money] DistributedZero -> DistributedZero
  3485. 126.44 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  3486. 126.44 s [really-safe-money] - if a >= zero
  3487. 126.44 s [really-safe-money] + if not (a >= zero)
  3488. 126.44 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3489. 126.44 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3490. 126.44 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3491. 126.44 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:451:11-76
  3492. 126.44 s [really-safe-money] @@ -448,9 +448,9 @@
  3493. 126.44 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  3494. 126.44 s [really-safe-money] DistributedZero -> DistributedZero
  3495. 126.44 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  3496. 126.44 s [really-safe-money] - if a >= zero
  3497. 126.44 s [really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3498. 126.45 s [really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3499. 126.45 s [really-safe-money] + if a >= zero
  3500. 126.45 s [really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3501. 126.45 s [really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3502. 126.45 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3503. 126.45 s [really-safe-money] if a >= zero
  3504. 126.45 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3505. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  3506. 126.45 s [really-safe-money] @@ -452,7 +452,7 @@
  3507. 126.45 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3508. 126.45 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3509. 126.45 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3510. 126.45 s [really-safe-money] - if a >= zero
  3511. 126.45 s [really-safe-money] + if True
  3512. 126.45 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3513. 126.45 s [really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3514. 126.45 s [really-safe-money]
  3515. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  3516. 126.45 s [really-safe-money] @@ -452,7 +452,7 @@
  3517. 126.45 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3518. 126.45 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3519. 126.45 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3520. 126.45 s [really-safe-money] - if a >= zero
  3521. 126.45 s [really-safe-money] + if False
  3522. 126.45 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3523. 126.45 s [really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3524. 126.45 s [really-safe-money]
  3525. 126.45 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  3526. 126.45 s [really-safe-money] @@ -452,7 +452,7 @@
  3527. 126.45 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3528. 126.45 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3529. 126.45 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3530. 126.45 s [really-safe-money] - if a >= zero
  3531. 126.45 s [really-safe-money] + if not (a >= zero)
  3532. 126.45 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3533. 126.45 s [really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3534. 126.45 s [really-safe-money]
  3535. 126.45 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:455:11-136
  3536. 126.45 s [really-safe-money] @@ -452,9 +452,9 @@
  3537. 126.45 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  3538. 126.45 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  3539. 126.45 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  3540. 126.45 s [really-safe-money] - if a >= zero
  3541. 126.45 s [really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3542. 126.45 s [really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3543. 126.45 s [really-safe-money] + if a >= zero
  3544. 126.45 s [really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  3545. 126.45 s [really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  3546. 126.45 s [really-safe-money]
  3547. 126.45 s [really-safe-money] type AccountDistribution = Amount.Distribution Account
  3548. 126.45 s [really-safe-money]
  3549. 126.45 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  3550. 126.45 s [really-safe-money] @@ -492,7 +492,7 @@
  3551. 126.45 s [really-safe-money] fraction rounding account f =
  3552. 126.45 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3553. 126.45 s [really-safe-money] ro =
  3554. 126.45 s [really-safe-money] - if f >= 0
  3555. 126.45 s [really-safe-money] + if f >= 1
  3556. 126.45 s [really-safe-money] then rounding
  3557. 126.45 s [really-safe-money] else case rounding of
  3558. 126.45 s [really-safe-money] RoundUp -> RoundDown
  3559. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  3560. 126.45 s [really-safe-money] @@ -492,7 +492,7 @@
  3561. 126.45 s [really-safe-money] fraction rounding account f =
  3562. 126.45 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3563. 126.45 s [really-safe-money] ro =
  3564. 126.45 s [really-safe-money] - if f >= 0
  3565. 126.45 s [really-safe-money] + if True
  3566. 126.45 s [really-safe-money] then rounding
  3567. 126.45 s [really-safe-money] else case rounding of
  3568. 126.45 s [really-safe-money] RoundUp -> RoundDown
  3569. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  3570. 126.45 s [really-safe-money] @@ -492,7 +492,7 @@
  3571. 126.45 s [really-safe-money] fraction rounding account f =
  3572. 126.45 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3573. 126.45 s [really-safe-money] ro =
  3574. 126.45 s [really-safe-money] - if f >= 0
  3575. 126.45 s [really-safe-money] + if False
  3576. 126.45 s [really-safe-money] then rounding
  3577. 126.45 s [really-safe-money] else case rounding of
  3578. 126.45 s [really-safe-money] RoundUp -> RoundDown
  3579. 126.45 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  3580. 126.45 s [really-safe-money] @@ -492,7 +492,7 @@
  3581. 126.45 s [really-safe-money] fraction rounding account f =
  3582. 126.45 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3583. 126.45 s [really-safe-money] ro =
  3584. 126.45 s [really-safe-money] - if f >= 0
  3585. 126.45 s [really-safe-money] + if not (f >= 0)
  3586. 126.45 s [really-safe-money] then rounding
  3587. 126.45 s [really-safe-money] else case rounding of
  3588. 126.45 s [really-safe-money] RoundUp -> RoundDown
  3589. 126.45 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:495:9-41
  3590. 126.45 s [really-safe-money] @@ -492,12 +492,12 @@
  3591. 126.45 s [really-safe-money] fraction rounding account f =
  3592. 126.45 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  3593. 126.45 s [really-safe-money] ro =
  3594. 126.45 s [really-safe-money] - if f >= 0
  3595. 126.45 s [really-safe-money] - then rounding
  3596. 126.45 s [really-safe-money] - else case rounding of
  3597. 126.45 s [really-safe-money] - RoundUp -> RoundDown
  3598. 126.45 s [really-safe-money] - RoundDown -> RoundUp
  3599. 126.45 s [really-safe-money] - RoundNearest -> RoundNearest
  3600. 126.45 s [really-safe-money] + if f >= 0
  3601. 126.45 s [really-safe-money] + then rounding
  3602. 126.45 s [really-safe-money] + else case rounding of
  3603. 126.45 s [really-safe-money] + RoundUp -> RoundDown
  3604. 126.45 s [really-safe-money] + RoundDown -> RoundUp
  3605. 126.45 s [really-safe-money] + RoundNearest -> RoundNearest
  3606. 126.45 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  3607. 126.45 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  3608. 126.45 s [really-safe-money] in if f >= 0
  3609. 126.45 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  3610. 126.45 s [really-safe-money] @@ -500,7 +500,7 @@
  3611. 126.45 s [really-safe-money] RoundNearest -> RoundNearest
  3612. 126.45 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  3613. 126.45 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  3614. 126.45 s [really-safe-money] - in if f >= 0
  3615. 126.45 s [really-safe-money] + in if f >= 1
  3616. 126.45 s [really-safe-money] then (ma, r)
  3617. 126.45 s [really-safe-money] else (negate <$> ma, -r)
  3618. 126.45 s [really-safe-money]
  3619. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  3620. 126.45 s [really-safe-money] @@ -500,7 +500,7 @@
  3621. 126.45 s [really-safe-money] RoundNearest -> RoundNearest
  3622. 126.45 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  3623. 126.45 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  3624. 126.45 s [really-safe-money] - in if f >= 0
  3625. 126.45 s [really-safe-money] + in if True
  3626. 126.45 s [really-safe-money] then (ma, r)
  3627. 126.45 s [really-safe-money] else (negate <$> ma, -r)
  3628. 126.45 s [really-safe-money]
  3629. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  3630. 126.45 s [really-safe-money] @@ -500,7 +500,7 @@
  3631. 126.45 s [really-safe-money] RoundNearest -> RoundNearest
  3632. 126.45 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  3633. 126.45 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  3634. 126.45 s [really-safe-money] - in if f >= 0
  3635. 126.45 s [really-safe-money] + in if False
  3636. 126.45 s [really-safe-money] then (ma, r)
  3637. 126.45 s [really-safe-money] else (negate <$> ma, -r)
  3638. 126.45 s [really-safe-money]
  3639. 126.45 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  3640. 126.45 s [really-safe-money] @@ -500,7 +500,7 @@
  3641. 126.45 s [really-safe-money] RoundNearest -> RoundNearest
  3642. 126.45 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  3643. 126.45 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  3644. 126.45 s [really-safe-money] - in if f >= 0
  3645. 126.45 s [really-safe-money] + in if not (f >= 0)
  3646. 126.45 s [really-safe-money] then (ma, r)
  3647. 126.45 s [really-safe-money] else (negate <$> ma, -r)
  3648. 126.45 s [really-safe-money]
  3649. 126.45 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:503:7-33
  3650. 126.45 s [really-safe-money] @@ -500,9 +500,9 @@
  3651. 126.45 s [really-safe-money] RoundNearest -> RoundNearest
  3652. 126.45 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  3653. 126.45 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  3654. 126.45 s [really-safe-money] - in if f >= 0
  3655. 126.45 s [really-safe-money] - then (ma, r)
  3656. 126.45 s [really-safe-money] - else (negate <$> ma, -r)
  3657. 126.45 s [really-safe-money] + in if f >= 0
  3658. 126.45 s [really-safe-money] + then (ma, r)
  3659. 126.45 s [really-safe-money] + else (negate <$> ma, -r)
  3660. 126.45 s [really-safe-money]
  3661. 126.45 s [really-safe-money] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
  3662. 126.45 s [really-safe-money] --
  3663. 126.45 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  3664. 126.45 s [really-safe-money] @@ -230,7 +230,7 @@
  3665. 126.45 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  3666. 126.45 s [really-safe-money] fromRational quantisationFactor r =
  3667. 126.45 s [really-safe-money] let r' = Prelude.abs r
  3668. 126.45 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  3669. 126.45 s [really-safe-money] + f = if r >= 1 then Positive else Negative
  3670. 126.45 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  3671. 126.45 s [really-safe-money]
  3672. 126.45 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  3673. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  3674. 126.45 s [really-safe-money] @@ -230,7 +230,7 @@
  3675. 126.45 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  3676. 126.45 s [really-safe-money] fromRational quantisationFactor r =
  3677. 126.45 s [really-safe-money] let r' = Prelude.abs r
  3678. 126.45 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  3679. 126.45 s [really-safe-money] + f = if True then Positive else Negative
  3680. 126.45 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  3681. 126.45 s [really-safe-money]
  3682. 126.45 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  3683. 126.45 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  3684. 126.45 s [really-safe-money] @@ -230,7 +230,7 @@
  3685. 126.45 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  3686. 126.45 s [really-safe-money] fromRational quantisationFactor r =
  3687. 126.45 s [really-safe-money] let r' = Prelude.abs r
  3688. 126.45 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  3689. 126.45 s [really-safe-money] + f = if False then Positive else Negative
  3690. 126.45 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  3691. 126.45 s [really-safe-money]
  3692. 126.45 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  3693. 126.45 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  3694. 126.45 s [really-safe-money] @@ -230,7 +230,7 @@
  3695. 126.45 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  3696. 126.45 s [really-safe-money] fromRational quantisationFactor r =
  3697. 126.45 s [really-safe-money] let r' = Prelude.abs r
  3698. 126.45 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  3699. 126.45 s [really-safe-money] + f = if not (r >= 0) then Positive else Negative
  3700. 126.45 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  3701. 126.45 s [really-safe-money]
  3702. 126.45 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  3703. 126.45 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:233:11-48
  3704. 126.45 s [really-safe-money] @@ -230,7 +230,7 @@
  3705. 126.45 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  3706. 126.45 s [really-safe-money] fromRational quantisationFactor r =
  3707. 126.45 s [really-safe-money] let r' = Prelude.abs r
  3708. 126.45 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  3709. 126.45 s [really-safe-money] + f = if r >= 0 then Positive else Negative
  3710. 126.45 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  3711. 126.45 s [really-safe-money]
  3712. 126.45 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  3713. 126.45 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  3714. 126.45 s [really-safe-money] @@ -194,7 +194,7 @@
  3715. 126.45 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  3716. 126.45 s [really-safe-money] fromDouble quantisationFactor d =
  3717. 126.45 s [really-safe-money] let d' = Prelude.abs d
  3718. 126.45 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  3719. 126.45 s [really-safe-money] + f = if d >= 1 then Positive else Negative
  3720. 126.45 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  3721. 126.46 s [really-safe-money]
  3722. 126.46 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  3723. 126.46 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  3724. 126.46 s [really-safe-money] @@ -194,7 +194,7 @@
  3725. 126.46 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  3726. 126.46 s [really-safe-money] fromDouble quantisationFactor d =
  3727. 126.46 s [really-safe-money] let d' = Prelude.abs d
  3728. 126.46 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  3729. 126.46 s [really-safe-money] + f = if True then Positive else Negative
  3730. 126.46 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  3731. 126.46 s [really-safe-money]
  3732. 126.46 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  3733. 126.46 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  3734. 126.46 s [really-safe-money] @@ -194,7 +194,7 @@
  3735. 126.46 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  3736. 126.46 s [really-safe-money] fromDouble quantisationFactor d =
  3737. 126.46 s [really-safe-money] let d' = Prelude.abs d
  3738. 126.46 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  3739. 126.46 s [really-safe-money] + f = if False then Positive else Negative
  3740. 126.46 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  3741. 126.46 s [really-safe-money]
  3742. 126.46 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  3743. 126.46 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  3744. 126.46 s [really-safe-money] @@ -194,7 +194,7 @@
  3745. 126.46 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  3746. 126.46 s [really-safe-money] fromDouble quantisationFactor d =
  3747. 126.46 s [really-safe-money] let d' = Prelude.abs d
  3748. 126.46 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  3749. 126.46 s [really-safe-money] + f = if not (d >= 0) then Positive else Negative
  3750. 126.46 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  3751. 126.46 s [really-safe-money]
  3752. 126.46 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  3753. 126.46 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:197:11-48
  3754. 126.46 s [really-safe-money] @@ -194,7 +194,7 @@
  3755. 126.46 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  3756. 126.46 s [really-safe-money] fromDouble quantisationFactor d =
  3757. 126.46 s [really-safe-money] let d' = Prelude.abs d
  3758. 126.46 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  3759. 126.46 s [really-safe-money] + f = if d >= 0 then Positive else Negative
  3760. 126.46 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  3761. 126.46 s [really-safe-money]
  3762. 126.46 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  3763. 126.46 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  3764. 126.46 s [really-safe-money] @@ -120,7 +120,7 @@
  3765. 126.46 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  3766. 126.46 s [really-safe-money] a :: Integer
  3767. 126.46 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  3768. 126.46 s [really-safe-money] - in if a > maxBoundI
  3769. 126.46 s [really-safe-money] + in if True
  3770. 126.46 s [really-safe-money] then Nothing
  3771. 126.46 s [really-safe-money] else
  3772. 126.46 s [really-safe-money] let w :: Word64
  3773. 126.46 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  3774. 126.46 s [really-safe-money] @@ -120,7 +120,7 @@
  3775. 126.46 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  3776. 126.46 s [really-safe-money] a :: Integer
  3777. 126.46 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  3778. 126.46 s [really-safe-money] - in if a > maxBoundI
  3779. 126.46 s [really-safe-money] + in if False
  3780. 126.46 s [really-safe-money] then Nothing
  3781. 126.46 s [really-safe-money] else
  3782. 126.46 s [really-safe-money] let w :: Word64
  3783. 126.46 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  3784. 126.46 s [really-safe-money] @@ -120,7 +120,7 @@
  3785. 126.46 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  3786. 126.46 s [really-safe-money] a :: Integer
  3787. 126.46 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  3788. 126.46 s [really-safe-money] - in if a > maxBoundI
  3789. 126.46 s [really-safe-money] + in if not (a > maxBoundI)
  3790. 126.46 s [really-safe-money] then Nothing
  3791. 126.46 s [really-safe-money] else
  3792. 126.46 s [really-safe-money] let w :: Word64
  3793. 126.46 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  3794. 126.46 s [really-safe-money] @@ -128,7 +128,7 @@
  3795. 126.46 s [really-safe-money] amount :: Amount
  3796. 126.46 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  3797. 126.46 s [really-safe-money] in Just $
  3798. 126.46 s [really-safe-money] - if i >= 0
  3799. 126.46 s [really-safe-money] + if i >= 1
  3800. 126.46 s [really-safe-money] then Positive amount
  3801. 126.46 s [really-safe-money] else Negative amount
  3802. 126.46 s [really-safe-money]
  3803. 126.46 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  3804. 126.46 s [really-safe-money] @@ -128,7 +128,7 @@
  3805. 126.46 s [really-safe-money] amount :: Amount
  3806. 126.46 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  3807. 126.46 s [really-safe-money] in Just $
  3808. 126.46 s [really-safe-money] - if i >= 0
  3809. 126.46 s [really-safe-money] + if True
  3810. 126.46 s [really-safe-money] then Positive amount
  3811. 126.46 s [really-safe-money] else Negative amount
  3812. 126.46 s [really-safe-money]
  3813. 126.46 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  3814. 126.46 s [really-safe-money] @@ -128,7 +128,7 @@
  3815. 126.46 s [really-safe-money] amount :: Amount
  3816. 126.46 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  3817. 126.46 s [really-safe-money] in Just $
  3818. 126.46 s [really-safe-money] - if i >= 0
  3819. 126.46 s [really-safe-money] + if False
  3820. 126.46 s [really-safe-money] then Positive amount
  3821. 126.46 s [really-safe-money] else Negative amount
  3822. 126.46 s [really-safe-money]
  3823. 126.46 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  3824. 126.46 s [really-safe-money] @@ -128,7 +128,7 @@
  3825. 126.46 s [really-safe-money] amount :: Amount
  3826. 126.46 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  3827. 126.46 s [really-safe-money] in Just $
  3828. 126.46 s [really-safe-money] - if i >= 0
  3829. 126.46 s [really-safe-money] + if not (i >= 0)
  3830. 126.46 s [really-safe-money] then Positive amount
  3831. 126.46 s [really-safe-money] else Negative amount
  3832. 126.46 s [really-safe-money]
  3833. 126.46 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:131:17-39
  3834. 126.46 s [really-safe-money] @@ -128,9 +128,9 @@
  3835. 126.46 s [really-safe-money] amount :: Amount
  3836. 126.46 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  3837. 126.46 s [really-safe-money] in Just $
  3838. 126.46 s [really-safe-money] - if i >= 0
  3839. 126.46 s [really-safe-money] - then Positive amount
  3840. 126.46 s [really-safe-money] - else Negative amount
  3841. 126.46 s [really-safe-money] + if i >= 0
  3842. 126.46 s [really-safe-money] + then Positive amount
  3843. 126.46 s [really-safe-money] + else Negative amount
  3844. 126.46 s [really-safe-money]
  3845. 126.46 s [really-safe-money] -- | Turn an amount into a positive account
  3846. 126.46 s [really-safe-money] --
  3847. 126.46 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:123:7-39
  3848. 126.46 s [really-safe-money] @@ -120,17 +120,17 @@
  3849. 126.46 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  3850. 126.46 s [really-safe-money] a :: Integer
  3851. 126.46 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  3852. 126.46 s [really-safe-money] - in if a > maxBoundI
  3853. 126.46 s [really-safe-money] - then Nothing
  3854. 126.46 s [really-safe-money] - else
  3855. 126.46 s [really-safe-money] - let w :: Word64
  3856. 126.46 s [really-safe-money] - w = (fromIntegral :: Integer -> Word64) a
  3857. 126.46 s [really-safe-money] - amount :: Amount
  3858. 126.46 s [really-safe-money] - amount = Amount.fromMinimalQuantisations w
  3859. 126.46 s [really-safe-money] - in Just $
  3860. 126.46 s [really-safe-money] - if i >= 0
  3861. 126.46 s [really-safe-money] - then Positive amount
  3862. 126.46 s [really-safe-money] - else Negative amount
  3863. 126.46 s [really-safe-money] + in if a > maxBoundI
  3864. 126.46 s [really-safe-money] + then Nothing
  3865. 126.46 s [really-safe-money] + else
  3866. 126.46 s [really-safe-money] + let w :: Word64
  3867. 126.46 s [really-safe-money] + w = (fromIntegral :: Integer -> Word64) a
  3868. 126.46 s [really-safe-money] + amount :: Amount
  3869. 126.46 s [really-safe-money] + amount = Amount.fromMinimalQuantisations w
  3870. 126.46 s [really-safe-money] + in Just $
  3871. 126.46 s [really-safe-money] + if i >= 0
  3872. 126.46 s [really-safe-money] + then Positive amount
  3873. 126.46 s [really-safe-money] + else Negative amount
  3874. 126.46 s [really-safe-money]
  3875. 126.46 s [really-safe-money] -- | Turn an amount into a positive account
  3876. 126.46 s [really-safe-money] --
  3877. 126.46 s [really-safe-money] added 38 mutations
  3878. 126.59 s [genvalidity-sydtest-source] Phase: setupCompilerEnvironmentPhase
  3879. 126.59 s [genvalidity-sydtest-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  3880. 127.13 s [genvalidity-sydtest-source] Phase: unpackPhase
  3881. 127.13 s [genvalidity-sydtest-source] unpacking source archive /nix/store/dqdpwym3w17fcyylxh144v7wvc1c621z-genvalidity-sydtest
  3882. 127.15 s [genvalidity-sydtest-source] source root is genvalidity-sydtest
  3883. 127.16 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 )
  3884. 127.16 s [genvalidity-sydtest-source] Phase: patchPhase
  3885. 127.17 s [genvalidity-sydtest-source] Phase: compileBuildDriverPhase
  3886. 127.17 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  3887. 127.18 s [genvalidity-sydtest-source] setupCompileFlags: -package-db=/build/tmp.PlWPx7LOCP/setup-package.conf.d -threaded
  3888. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  3889. 127.18 s [really-safe-money] @@ -131,7 +131,7 @@
  3890. 127.18 s [really-safe-money] Just a -> do
  3891. 127.18 s [really-safe-money] r <- Account.subtract a account
  3892. 127.18 s [really-safe-money] Just $
  3893. 127.18 s [really-safe-money] - if r == Account.zero
  3894. 127.18 s [really-safe-money] + if True
  3895. 127.18 s [really-safe-money] then M.delete currency m
  3896. 127.18 s [really-safe-money] else M.insert currency r m
  3897. 127.18 s [really-safe-money]
  3898. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  3899. 127.18 s [really-safe-money] @@ -131,7 +131,7 @@
  3900. 127.18 s [really-safe-money] Just a -> do
  3901. 127.18 s [really-safe-money] r <- Account.subtract a account
  3902. 127.18 s [really-safe-money] Just $
  3903. 127.18 s [really-safe-money] - if r == Account.zero
  3904. 127.18 s [really-safe-money] + if False
  3905. 127.18 s [really-safe-money] then M.delete currency m
  3906. 127.18 s [really-safe-money] else M.insert currency r m
  3907. 127.18 s [really-safe-money]
  3908. 127.18 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  3909. 127.18 s [really-safe-money] @@ -131,7 +131,7 @@
  3910. 127.18 s [really-safe-money] Just a -> do
  3911. 127.18 s [really-safe-money] r <- Account.subtract a account
  3912. 127.18 s [really-safe-money] Just $
  3913. 127.18 s [really-safe-money] - if r == Account.zero
  3914. 127.18 s [really-safe-money] + if not (r == Account.zero)
  3915. 127.18 s [really-safe-money] then M.delete currency m
  3916. 127.18 s [really-safe-money] else M.insert currency r m
  3917. 127.18 s [really-safe-money]
  3918. 127.18 s [really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
  3919. 127.18 s [really-safe-money] @@ -131,9 +131,9 @@
  3920. 127.18 s [really-safe-money] Just a -> do
  3921. 127.18 s [really-safe-money] r <- Account.subtract a account
  3922. 127.18 s [really-safe-money] Just $
  3923. 127.18 s [really-safe-money] - if r == Account.zero
  3924. 127.18 s [really-safe-money] - then M.delete currency m
  3925. 127.18 s [really-safe-money] - else M.insert currency r m
  3926. 127.18 s [really-safe-money] + if r == Account.zero
  3927. 127.18 s [really-safe-money] + then M.delete currency m
  3928. 127.18 s [really-safe-money] + else M.insert currency r m
  3929. 127.18 s [really-safe-money]
  3930. 127.18 s [really-safe-money] -- | Try to convert every account to one currency.
  3931. 127.18 s [really-safe-money] --
  3932. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  3933. 127.18 s [really-safe-money] @@ -117,7 +117,7 @@
  3934. 127.18 s [really-safe-money] Just a -> do
  3935. 127.18 s [really-safe-money] r <- Account.add a account
  3936. 127.18 s [really-safe-money] Just $
  3937. 127.18 s [really-safe-money] - if r == Account.zero
  3938. 127.18 s [really-safe-money] + if True
  3939. 127.18 s [really-safe-money] then M.delete currency m
  3940. 127.18 s [really-safe-money] else M.insert currency r m
  3941. 127.18 s [really-safe-money]
  3942. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  3943. 127.18 s [really-safe-money] @@ -117,7 +117,7 @@
  3944. 127.18 s [really-safe-money] Just a -> do
  3945. 127.18 s [really-safe-money] r <- Account.add a account
  3946. 127.18 s [really-safe-money] Just $
  3947. 127.18 s [really-safe-money] - if r == Account.zero
  3948. 127.18 s [really-safe-money] + if False
  3949. 127.18 s [really-safe-money] then M.delete currency m
  3950. 127.18 s [really-safe-money] else M.insert currency r m
  3951. 127.18 s [really-safe-money]
  3952. 127.18 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  3953. 127.18 s [really-safe-money] @@ -117,7 +117,7 @@
  3954. 127.18 s [really-safe-money] Just a -> do
  3955. 127.18 s [really-safe-money] r <- Account.add a account
  3956. 127.18 s [really-safe-money] Just $
  3957. 127.18 s [really-safe-money] - if r == Account.zero
  3958. 127.18 s [really-safe-money] + if not (r == Account.zero)
  3959. 127.18 s [really-safe-money] then M.delete currency m
  3960. 127.18 s [really-safe-money] else M.insert currency r m
  3961. 127.18 s [really-safe-money]
  3962. 127.18 s [really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
  3963. 127.18 s [really-safe-money] @@ -117,9 +117,9 @@
  3964. 127.18 s [really-safe-money] Just a -> do
  3965. 127.18 s [really-safe-money] r <- Account.add a account
  3966. 127.18 s [really-safe-money] Just $
  3967. 127.18 s [really-safe-money] - if r == Account.zero
  3968. 127.18 s [really-safe-money] - then M.delete currency m
  3969. 127.18 s [really-safe-money] - else M.insert currency r m
  3970. 127.18 s [really-safe-money] + if r == Account.zero
  3971. 127.18 s [really-safe-money] + then M.delete currency m
  3972. 127.18 s [really-safe-money] + else M.insert currency r m
  3973. 127.18 s [really-safe-money]
  3974. 127.18 s [really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
  3975. 127.18 s [really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  3976. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  3977. 127.18 s [really-safe-money] @@ -75,7 +75,7 @@
  3978. 127.18 s [really-safe-money]
  3979. 127.18 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  3980. 127.18 s [really-safe-money] fromAccount currency amount =
  3981. 127.18 s [really-safe-money] - if amount == Account.zero
  3982. 127.18 s [really-safe-money] + if True
  3983. 127.18 s [really-safe-money] then zero
  3984. 127.18 s [really-safe-money] else MultiAccount $ M.singleton currency amount
  3985. 127.18 s [really-safe-money]
  3986. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  3987. 127.18 s [really-safe-money] @@ -75,7 +75,7 @@
  3988. 127.18 s [really-safe-money]
  3989. 127.18 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  3990. 127.18 s [really-safe-money] fromAccount currency amount =
  3991. 127.18 s [really-safe-money] - if amount == Account.zero
  3992. 127.18 s [really-safe-money] + if False
  3993. 127.18 s [really-safe-money] then zero
  3994. 127.18 s [really-safe-money] else MultiAccount $ M.singleton currency amount
  3995. 127.18 s [really-safe-money]
  3996. 127.18 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  3997. 127.18 s [really-safe-money] @@ -75,7 +75,7 @@
  3998. 127.18 s [really-safe-money]
  3999. 127.18 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  4000. 127.18 s [really-safe-money] fromAccount currency amount =
  4001. 127.18 s [really-safe-money] - if amount == Account.zero
  4002. 127.18 s [really-safe-money] + if not (amount == Account.zero)
  4003. 127.18 s [really-safe-money] then zero
  4004. 127.18 s [really-safe-money] else MultiAccount $ M.singleton currency amount
  4005. 127.18 s [really-safe-money]
  4006. 127.18 s [really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
  4007. 127.18 s [really-safe-money] @@ -75,9 +75,9 @@
  4008. 127.18 s [really-safe-money]
  4009. 127.18 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  4010. 127.18 s [really-safe-money] fromAccount currency amount =
  4011. 127.18 s [really-safe-money] - if amount == Account.zero
  4012. 127.18 s [really-safe-money] - then zero
  4013. 127.18 s [really-safe-money] - else MultiAccount $ M.singleton currency amount
  4014. 127.18 s [really-safe-money] + if amount == Account.zero
  4015. 127.18 s [really-safe-money] + then zero
  4016. 127.18 s [really-safe-money] + else MultiAccount $ M.singleton currency amount
  4017. 127.18 s [really-safe-money]
  4018. 127.18 s [really-safe-money] -- | No money of any currency
  4019. 127.18 s [really-safe-money] zero :: MultiAccount currency
  4020. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  4021. 127.18 s [really-safe-money] @@ -66,7 +66,7 @@
  4022. 127.18 s [really-safe-money] [ genericValidate ma,
  4023. 127.18 s [really-safe-money] decorateMap m $ \_ a ->
  4024. 127.18 s [really-safe-money] declare "The account is not zero" $
  4025. 127.18 s [really-safe-money] - a /= Account.zero
  4026. 127.18 s [really-safe-money] + True
  4027. 127.18 s [really-safe-money] ]
  4028. 127.18 s [really-safe-money]
  4029. 127.18 s [really-safe-money] -- TODO no empty currencies
  4030. 127.18 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  4031. 127.18 s [really-safe-money] @@ -66,7 +66,7 @@
  4032. 127.18 s [really-safe-money] [ genericValidate ma,
  4033. 127.18 s [really-safe-money] decorateMap m $ \_ a ->
  4034. 127.18 s [really-safe-money] declare "The account is not zero" $
  4035. 127.18 s [really-safe-money] - a /= Account.zero
  4036. 127.18 s [really-safe-money] + False
  4037. 127.19 s [really-safe-money] ]
  4038. 127.19 s [really-safe-money]
  4039. 127.19 s [really-safe-money] -- TODO no empty currencies
  4040. 127.19 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  4041. 127.19 s [really-safe-money] @@ -66,7 +66,7 @@
  4042. 127.19 s [really-safe-money] [ genericValidate ma,
  4043. 127.19 s [really-safe-money] decorateMap m $ \_ a ->
  4044. 127.19 s [really-safe-money] declare "The account is not zero" $
  4045. 127.19 s [really-safe-money] - a /= Account.zero
  4046. 127.19 s [really-safe-money] + not (a /= Account.zero)
  4047. 127.19 s [really-safe-money] ]
  4048. 127.19 s [really-safe-money]
  4049. 127.19 s [really-safe-money] -- TODO no empty currencies
  4050. 127.19 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  4051. 127.19 s [really-safe-money] @@ -63,11 +63,7 @@
  4052. 127.19 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  4053. 127.19 s [really-safe-money] validate ma@(MultiAccount m) =
  4054. 127.19 s [really-safe-money] mconcat
  4055. 127.19 s [really-safe-money] - [ genericValidate ma,
  4056. 127.19 s [really-safe-money] - decorateMap m $ \_ a ->
  4057. 127.19 s [really-safe-money] - declare "The account is not zero" $
  4058. 127.19 s [really-safe-money] - a /= Account.zero
  4059. 127.19 s [really-safe-money] - ]
  4060. 127.19 s [really-safe-money] + []
  4061. 127.19 s [really-safe-money]
  4062. 127.19 s [really-safe-money] -- TODO no empty currencies
  4063. 127.19 s [really-safe-money]
  4064. 127.19 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  4065. 127.19 s [really-safe-money] @@ -63,11 +63,11 @@
  4066. 127.19 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  4067. 127.19 s [really-safe-money] validate ma@(MultiAccount m) =
  4068. 127.19 s [really-safe-money] mconcat
  4069. 127.19 s [really-safe-money] - [ genericValidate ma,
  4070. 127.19 s [really-safe-money] - decorateMap m $ \_ a ->
  4071. 127.19 s [really-safe-money] - declare "The account is not zero" $
  4072. 127.19 s [really-safe-money] - a /= Account.zero
  4073. 127.19 s [really-safe-money] - ]
  4074. 127.19 s [really-safe-money] + [ genericValidate ma,
  4075. 127.19 s [really-safe-money] + decorateMap m $ \_ a ->
  4076. 127.19 s [really-safe-money] + declare "The account is not zero" $
  4077. 127.19 s [really-safe-money] + a /= Account.zero
  4078. 127.19 s [really-safe-money] + ]
  4079. 127.19 s [really-safe-money]
  4080. 127.19 s [really-safe-money] -- TODO no empty currencies
  4081. 127.19 s [really-safe-money]
  4082. 127.19 s [really-safe-money] added 17 mutations
  4083. 127.25 s [genvalidity-sydtest-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.PlWPx7LOCP/Main.o )
  4084. 127.31 s [genvalidity-sydtest-source] [2 of 2] Linking Setup
  4085. 127.56 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 )
  4086. 127.57 s [really-safe-money] mutation: instrumenting Money.AccountOf
  4087. 127.57 s [really-safe-money] added 0 mutations
  4088. 127.73 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 )
  4089. 128.06 s [really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.p_o )
  4090. 128.36 s [really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
  4091. 128.56 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  4092. 128.56 s [really-safe-money] @@ -393,5 +393,5 @@
  4093. 128.56 s [really-safe-money] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  4094. 128.56 s [really-safe-money] where
  4095. 128.56 s [really-safe-money] go = \case
  4096. 128.56 s [really-safe-money] - Nothing -> Just True
  4097. 128.56 s [really-safe-money] + Nothing -> Just False
  4098. 128.56 s [really-safe-money] s -> s
  4099. 128.56 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  4100. 128.56 s [really-safe-money] @@ -365,7 +365,7 @@
  4101. 128.56 s [really-safe-money] setMinimumDigits wantedDigits dl =
  4102. 128.56 s [really-safe-money] let currentDigits :: Word8
  4103. 128.56 s [really-safe-money] currentDigits = digits dl
  4104. 128.56 s [really-safe-money] - in if wantedDigits <= currentDigits
  4105. 128.57 s [really-safe-money] + in if True
  4106. 128.57 s [really-safe-money] then dl
  4107. 128.57 s [really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
  4108. 128.57 s [really-safe-money] where
  4109. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  4110. 128.57 s [really-safe-money] @@ -365,7 +365,7 @@
  4111. 128.57 s [really-safe-money] setMinimumDigits wantedDigits dl =
  4112. 128.57 s [really-safe-money] let currentDigits :: Word8
  4113. 128.57 s [really-safe-money] currentDigits = digits dl
  4114. 128.57 s [really-safe-money] - in if wantedDigits <= currentDigits
  4115. 128.57 s [really-safe-money] + in if False
  4116. 128.57 s [really-safe-money] then dl
  4117. 128.57 s [really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
  4118. 128.57 s [really-safe-money] where
  4119. 128.57 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  4120. 128.57 s [really-safe-money] @@ -365,7 +365,7 @@
  4121. 128.57 s [really-safe-money] setMinimumDigits wantedDigits dl =
  4122. 128.57 s [really-safe-money] let currentDigits :: Word8
  4123. 128.57 s [really-safe-money] currentDigits = digits dl
  4124. 128.57 s [really-safe-money] - in if wantedDigits <= currentDigits
  4125. 128.57 s [really-safe-money] + in if not (wantedDigits <= currentDigits)
  4126. 128.57 s [really-safe-money] then dl
  4127. 128.57 s [really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
  4128. 128.57 s [really-safe-money] where
  4129. 128.57 s [really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
  4130. 128.57 s [really-safe-money] @@ -365,9 +365,9 @@
  4131. 128.57 s [really-safe-money] setMinimumDigits wantedDigits dl =
  4132. 128.57 s [really-safe-money] let currentDigits :: Word8
  4133. 128.57 s [really-safe-money] currentDigits = digits dl
  4134. 128.57 s [really-safe-money] - in if wantedDigits <= currentDigits
  4135. 128.57 s [really-safe-money] - then dl
  4136. 128.57 s [really-safe-money] - else increaseDigits (wantedDigits - currentDigits) dl
  4137. 128.57 s [really-safe-money] + in if wantedDigits <= currentDigits
  4138. 128.57 s [really-safe-money] + then dl
  4139. 128.57 s [really-safe-money] + else increaseDigits (wantedDigits - currentDigits) dl
  4140. 128.57 s [really-safe-money] where
  4141. 128.57 s [really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4142. 128.57 s [really-safe-money] increaseDigits 0 = id
  4143. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  4144. 128.57 s [really-safe-money] @@ -372,7 +372,7 @@
  4145. 128.57 s [really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4146. 128.57 s [really-safe-money] increaseDigits 0 = id
  4147. 128.57 s [really-safe-money] increaseDigits w = \case
  4148. 128.57 s [really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4149. 128.57 s [really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  4150. 128.57 s [really-safe-money]
  4151. 128.57 s [really-safe-money] -- | Ensures that a positive literal has no sign
  4152. 128.57 s [really-safe-money] --
  4153. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  4154. 128.57 s [really-safe-money] @@ -372,7 +372,7 @@
  4155. 128.57 s [really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  4156. 128.57 s [really-safe-money] increaseDigits 0 = id
  4157. 128.57 s [really-safe-money] increaseDigits w = \case
  4158. 128.57 s [really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  4159. 128.57 s [really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  4160. 128.57 s [really-safe-money]
  4161. 128.57 s [really-safe-money] -- | Ensures that a positive literal has no sign
  4162. 128.57 s [really-safe-money] --
  4163. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  4164. 128.57 s [really-safe-money] @@ -334,7 +334,7 @@
  4165. 128.57 s [really-safe-money] pure $ fromIntegral n
  4166. 128.57 s [really-safe-money]
  4167. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4168. 128.57 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  4169. 128.57 s [really-safe-money] +numSign a = if a >= 1 then Nothing else Just False
  4170. 128.57 s [really-safe-money]
  4171. 128.57 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4172. 128.57 s [really-safe-money] signSignum = \case
  4173. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  4174. 128.57 s [really-safe-money] @@ -334,7 +334,7 @@
  4175. 128.57 s [really-safe-money] pure $ fromIntegral n
  4176. 128.57 s [really-safe-money]
  4177. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4178. 128.57 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  4179. 128.57 s [really-safe-money] +numSign a = if True then Nothing else Just False
  4180. 128.57 s [really-safe-money]
  4181. 128.57 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4182. 128.57 s [really-safe-money] signSignum = \case
  4183. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  4184. 128.57 s [really-safe-money] @@ -334,7 +334,7 @@
  4185. 128.57 s [really-safe-money] pure $ fromIntegral n
  4186. 128.57 s [really-safe-money]
  4187. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4188. 128.57 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  4189. 128.57 s [really-safe-money] +numSign a = if False then Nothing else Just False
  4190. 128.57 s [really-safe-money]
  4191. 128.57 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4192. 128.57 s [really-safe-money] signSignum = \case
  4193. 128.57 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  4194. 128.57 s [really-safe-money] @@ -334,7 +334,7 @@
  4195. 128.57 s [really-safe-money] pure $ fromIntegral n
  4196. 128.57 s [really-safe-money]
  4197. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4198. 128.57 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  4199. 128.57 s [really-safe-money] +numSign a = if not (a >= 0) then Nothing else Just False
  4200. 128.57 s [really-safe-money]
  4201. 128.57 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4202. 128.57 s [really-safe-money] signSignum = \case
  4203. 128.57 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  4204. 128.57 s [really-safe-money] @@ -334,7 +334,7 @@
  4205. 128.57 s [really-safe-money] pure $ fromIntegral n
  4206. 128.57 s [really-safe-money]
  4207. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4208. 128.57 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  4209. 128.57 s [really-safe-money] +numSign a = if a >= 0 then Nothing else Just True
  4210. 128.57 s [really-safe-money]
  4211. 128.57 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4212. 128.57 s [really-safe-money] signSignum = \case
  4213. 128.57 s [really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
  4214. 128.57 s [really-safe-money] @@ -334,7 +334,7 @@
  4215. 128.57 s [really-safe-money] pure $ fromIntegral n
  4216. 128.57 s [really-safe-money]
  4217. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4218. 128.57 s [really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
  4219. 128.57 s [really-safe-money] +numSign a = if a >= 0 then Nothing else Just False
  4220. 128.57 s [really-safe-money]
  4221. 128.57 s [really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  4222. 128.57 s [really-safe-money] signSignum = \case
  4223. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  4224. 128.57 s [really-safe-money] @@ -329,7 +329,7 @@
  4225. 128.57 s [really-safe-money] toInt :: DecimalLiteral -> Maybe Int
  4226. 128.57 s [really-safe-money] toInt dl = do
  4227. 128.57 s [really-safe-money] n <- toInteger dl
  4228. 128.57 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
  4229. 128.57 s [really-safe-money] + guard $ True
  4230. 128.57 s [really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
  4231. 128.57 s [really-safe-money] pure $ fromIntegral n
  4232. 128.57 s [really-safe-money]
  4233. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  4234. 128.57 s [really-safe-money] @@ -329,7 +329,7 @@
  4235. 128.57 s [really-safe-money] toInt :: DecimalLiteral -> Maybe Int
  4236. 128.57 s [really-safe-money] toInt dl = do
  4237. 128.57 s [really-safe-money] n <- toInteger dl
  4238. 128.57 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
  4239. 128.57 s [really-safe-money] + guard $ False
  4240. 128.57 s [really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
  4241. 128.57 s [really-safe-money] pure $ fromIntegral n
  4242. 128.57 s [really-safe-money]
  4243. 128.57 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  4244. 128.57 s [really-safe-money] @@ -329,7 +329,7 @@
  4245. 128.57 s [really-safe-money] toInt :: DecimalLiteral -> Maybe Int
  4246. 128.57 s [really-safe-money] toInt dl = do
  4247. 128.57 s [really-safe-money] n <- toInteger dl
  4248. 128.57 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
  4249. 128.57 s [really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Int))
  4250. 128.57 s [really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
  4251. 128.57 s [really-safe-money] pure $ fromIntegral n
  4252. 128.57 s [really-safe-money]
  4253. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  4254. 128.57 s [really-safe-money] @@ -330,7 +330,7 @@
  4255. 128.57 s [really-safe-money] toInt dl = do
  4256. 128.57 s [really-safe-money] n <- toInteger dl
  4257. 128.57 s [really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
  4258. 128.57 s [really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
  4259. 128.57 s [really-safe-money] + guard $ True
  4260. 128.57 s [really-safe-money] pure $ fromIntegral n
  4261. 128.57 s [really-safe-money]
  4262. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4263. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  4264. 128.57 s [really-safe-money] @@ -330,7 +330,7 @@
  4265. 128.57 s [really-safe-money] toInt dl = do
  4266. 128.57 s [really-safe-money] n <- toInteger dl
  4267. 128.57 s [really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
  4268. 128.57 s [really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
  4269. 128.57 s [really-safe-money] + guard $ False
  4270. 128.57 s [really-safe-money] pure $ fromIntegral n
  4271. 128.57 s [really-safe-money]
  4272. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4273. 128.57 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  4274. 128.57 s [really-safe-money] @@ -330,7 +330,7 @@
  4275. 128.57 s [really-safe-money] toInt dl = do
  4276. 128.57 s [really-safe-money] n <- toInteger dl
  4277. 128.57 s [really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
  4278. 128.57 s [really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
  4279. 128.57 s [really-safe-money] + guard $ not (n >= fromIntegral (minBound :: Int))
  4280. 128.57 s [really-safe-money] pure $ fromIntegral n
  4281. 128.57 s [really-safe-money]
  4282. 128.57 s [really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
  4283. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  4284. 128.57 s [really-safe-money] @@ -312,7 +312,7 @@
  4285. 128.57 s [really-safe-money]
  4286. 128.57 s [really-safe-money] -- | Construct a 'DecimalLiteral' from an 'Integer'
  4287. 128.57 s [really-safe-money] fromInteger :: Integer -> DecimalLiteral
  4288. 128.57 s [really-safe-money] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  4289. 128.57 s [really-safe-money] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  4290. 128.57 s [really-safe-money]
  4291. 128.57 s [really-safe-money] -- | Turn a 'DecimalLiteral' into an 'Integer'
  4292. 128.57 s [really-safe-money] toInteger :: DecimalLiteral -> Maybe Integer
  4293. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  4294. 128.57 s [really-safe-money] @@ -301,7 +301,7 @@
  4295. 128.57 s [really-safe-money]
  4296. 128.57 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4297. 128.57 s [really-safe-money] fromNatural :: Natural -> DecimalLiteral
  4298. 128.57 s [really-safe-money] -fromNatural n = DecimalLiteral Nothing n 0
  4299. 128.57 s [really-safe-money] +fromNatural n = DecimalLiteral Nothing n 1
  4300. 128.57 s [really-safe-money]
  4301. 128.57 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Natural'
  4302. 128.57 s [really-safe-money] toNatural :: DecimalLiteral -> Maybe Natural
  4303. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  4304. 128.57 s [really-safe-money] @@ -296,7 +296,7 @@
  4305. 128.57 s [really-safe-money] toWord :: DecimalLiteral -> Maybe Word
  4306. 128.57 s [really-safe-money] toWord dl = do
  4307. 128.57 s [really-safe-money] n <- toNatural dl
  4308. 128.57 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
  4309. 128.57 s [really-safe-money] + guard $ True
  4310. 128.57 s [really-safe-money] pure $ fromIntegral n
  4311. 128.57 s [really-safe-money]
  4312. 128.57 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4313. 128.57 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  4314. 128.57 s [really-safe-money] @@ -296,7 +296,7 @@
  4315. 128.57 s [really-safe-money] toWord :: DecimalLiteral -> Maybe Word
  4316. 128.57 s [really-safe-money] toWord dl = do
  4317. 128.57 s [really-safe-money] n <- toNatural dl
  4318. 128.57 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
  4319. 128.57 s [really-safe-money] + guard $ False
  4320. 128.57 s [really-safe-money] pure $ fromIntegral n
  4321. 128.57 s [really-safe-money]
  4322. 128.57 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4323. 128.57 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  4324. 128.57 s [really-safe-money] @@ -296,7 +296,7 @@
  4325. 128.57 s [really-safe-money] toWord :: DecimalLiteral -> Maybe Word
  4326. 128.57 s [really-safe-money] toWord dl = do
  4327. 128.57 s [really-safe-money] n <- toNatural dl
  4328. 128.57 s [really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
  4329. 128.57 s [really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Word))
  4330. 128.57 s [really-safe-money] pure $ fromIntegral n
  4331. 128.57 s [really-safe-money]
  4332. 128.57 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
  4333. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  4334. 128.57 s [really-safe-money] @@ -286,7 +286,7 @@
  4335. 128.57 s [really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4336. 128.57 s [really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
  4337. 128.57 s [really-safe-money] Just False -> Nothing
  4338. 128.57 s [really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
  4339. 128.57 s [really-safe-money] + _ -> Just $ fromIntegral m / (0 ^ e)
  4340. 128.57 s [really-safe-money]
  4341. 128.57 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
  4342. 128.57 s [really-safe-money] fromWord :: Word -> DecimalLiteral
  4343. 128.57 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  4344. 128.57 s [really-safe-money] @@ -286,7 +286,7 @@
  4345. 128.57 s [really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4346. 128.58 s [really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
  4347. 128.58 s [really-safe-money] Just False -> Nothing
  4348. 128.58 s [really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
  4349. 128.58 s [really-safe-money] + _ -> Just $ fromIntegral m / (1 ^ e)
  4350. 128.58 s [really-safe-money]
  4351. 128.58 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
  4352. 128.58 s [really-safe-money] fromWord :: Word -> DecimalLiteral
  4353. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  4354. 128.58 s [really-safe-money] @@ -286,7 +286,7 @@
  4355. 128.58 s [really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  4356. 128.58 s [really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
  4357. 128.58 s [really-safe-money] Just False -> Nothing
  4358. 128.58 s [really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
  4359. 128.58 s [really-safe-money] + _ -> Just $ fromIntegral m / (-10 ^ e)
  4360. 128.58 s [really-safe-money]
  4361. 128.58 s [really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
  4362. 128.58 s [really-safe-money] fromWord :: Word -> DecimalLiteral
  4363. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  4364. 128.58 s [really-safe-money] @@ -233,7 +233,7 @@
  4365. 128.58 s [really-safe-money] -- >>> fromRatio (1 % 3)
  4366. 128.58 s [really-safe-money] -- Nothing
  4367. 128.58 s [really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  4368. 128.58 s [really-safe-money] -fromRatio = fromRationalRepetendLimited 256
  4369. 128.58 s [really-safe-money] +fromRatio = fromRationalRepetendLimited 0
  4370. 128.58 s [really-safe-money] where
  4371. 128.58 s [really-safe-money] fromRationalRepetendLimited ::
  4372. 128.58 s [really-safe-money] -- limit
  4373. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  4374. 128.58 s [really-safe-money] @@ -233,7 +233,7 @@
  4375. 128.58 s [really-safe-money] -- >>> fromRatio (1 % 3)
  4376. 128.58 s [really-safe-money] -- Nothing
  4377. 128.58 s [really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  4378. 128.58 s [really-safe-money] -fromRatio = fromRationalRepetendLimited 256
  4379. 128.58 s [really-safe-money] +fromRatio = fromRationalRepetendLimited 1
  4380. 128.58 s [really-safe-money] where
  4381. 128.58 s [really-safe-money] fromRationalRepetendLimited ::
  4382. 128.58 s [really-safe-money] -- limit
  4383. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  4384. 128.58 s [really-safe-money] @@ -233,7 +233,7 @@
  4385. 128.58 s [really-safe-money] -- >>> fromRatio (1 % 3)
  4386. 128.58 s [really-safe-money] -- Nothing
  4387. 128.58 s [really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  4388. 128.58 s [really-safe-money] -fromRatio = fromRationalRepetendLimited 256
  4389. 128.58 s [really-safe-money] +fromRatio = fromRationalRepetendLimited -256
  4390. 128.58 s [really-safe-money] where
  4391. 128.58 s [really-safe-money] fromRationalRepetendLimited ::
  4392. 128.58 s [really-safe-money] -- limit
  4393. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  4394. 128.58 s [really-safe-money] @@ -241,7 +241,7 @@
  4395. 128.58 s [really-safe-money] Ratio Natural ->
  4396. 128.58 s [really-safe-money] Maybe DecimalLiteral
  4397. 128.58 s [really-safe-money] fromRationalRepetendLimited l rational
  4398. 128.58 s [really-safe-money] - | d == 0 = Nothing
  4399. 128.58 s [really-safe-money] + | d == 1 = Nothing
  4400. 128.58 s [really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
  4401. 128.58 s [really-safe-money] where
  4402. 128.58 s [really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  4403. 128.58 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  4404. 128.58 s [really-safe-money] @@ -241,7 +241,7 @@
  4405. 128.58 s [really-safe-money] Ratio Natural ->
  4406. 128.58 s [really-safe-money] Maybe DecimalLiteral
  4407. 128.58 s [really-safe-money] fromRationalRepetendLimited l rational
  4408. 128.58 s [really-safe-money] - | d == 0 = Nothing
  4409. 128.58 s [really-safe-money] + | True = Nothing
  4410. 128.58 s [really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
  4411. 128.58 s [really-safe-money] where
  4412. 128.58 s [really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  4413. 128.58 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  4414. 128.58 s [really-safe-money] @@ -241,7 +241,7 @@
  4415. 128.58 s [really-safe-money] Ratio Natural ->
  4416. 128.58 s [really-safe-money] Maybe DecimalLiteral
  4417. 128.58 s [really-safe-money] fromRationalRepetendLimited l rational
  4418. 128.58 s [really-safe-money] - | d == 0 = Nothing
  4419. 128.58 s [really-safe-money] + | not (d == 0) = Nothing
  4420. 128.58 s [really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
  4421. 128.58 s [really-safe-money] where
  4422. 128.58 s [really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  4423. 128.58 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  4424. 128.58 s [really-safe-money] @@ -261,7 +261,7 @@
  4425. 128.58 s [really-safe-money] Just (c, e)
  4426. 128.58 s [really-safe-money] longDivWithLimit !c !e ns !n
  4427. 128.58 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  4428. 128.58 s [really-safe-money] - | S.member n ns = Nothing
  4429. 128.58 s [really-safe-money] + | True = Nothing
  4430. 128.58 s [really-safe-money] -- Over the limit, stop trying
  4431. 128.58 s [really-safe-money] | e >= l = Nothing
  4432. 128.58 s [really-safe-money] | n < d =
  4433. 128.58 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  4434. 128.58 s [really-safe-money] @@ -261,7 +261,7 @@
  4435. 128.58 s [really-safe-money] Just (c, e)
  4436. 128.58 s [really-safe-money] longDivWithLimit !c !e ns !n
  4437. 128.58 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  4438. 128.58 s [really-safe-money] - | S.member n ns = Nothing
  4439. 128.58 s [really-safe-money] + | not (S.member n ns) = Nothing
  4440. 128.58 s [really-safe-money] -- Over the limit, stop trying
  4441. 128.58 s [really-safe-money] | e >= l = Nothing
  4442. 128.58 s [really-safe-money] | n < d =
  4443. 128.58 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  4444. 128.58 s [really-safe-money] @@ -263,7 +263,7 @@
  4445. 128.58 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  4446. 128.58 s [really-safe-money] | S.member n ns = Nothing
  4447. 128.58 s [really-safe-money] -- Over the limit, stop trying
  4448. 128.58 s [really-safe-money] - | e >= l = Nothing
  4449. 128.58 s [really-safe-money] + | True = Nothing
  4450. 128.58 s [really-safe-money] | n < d =
  4451. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4452. 128.58 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4453. 128.58 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  4454. 128.58 s [really-safe-money] @@ -263,7 +263,7 @@
  4455. 128.58 s [really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
  4456. 128.58 s [really-safe-money] | S.member n ns = Nothing
  4457. 128.58 s [really-safe-money] -- Over the limit, stop trying
  4458. 128.58 s [really-safe-money] - | e >= l = Nothing
  4459. 128.58 s [really-safe-money] + | not (e >= l) = Nothing
  4460. 128.58 s [really-safe-money] | n < d =
  4461. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4462. 128.58 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4463. 128.58 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  4464. 128.58 s [really-safe-money] @@ -264,7 +264,7 @@
  4465. 128.58 s [really-safe-money] | S.member n ns = Nothing
  4466. 128.58 s [really-safe-money] -- Over the limit, stop trying
  4467. 128.58 s [really-safe-money] | e >= l = Nothing
  4468. 128.58 s [really-safe-money] - | n < d =
  4469. 128.58 s [really-safe-money] + | True =
  4470. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4471. 128.58 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4472. 128.58 s [really-safe-money] | otherwise =
  4473. 128.58 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  4474. 128.58 s [really-safe-money] @@ -264,7 +264,7 @@
  4475. 128.58 s [really-safe-money] | S.member n ns = Nothing
  4476. 128.58 s [really-safe-money] -- Over the limit, stop trying
  4477. 128.58 s [really-safe-money] | e >= l = Nothing
  4478. 128.58 s [really-safe-money] - | n < d =
  4479. 128.58 s [really-safe-money] + | not (n < d) =
  4480. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4481. 128.58 s [really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4482. 128.58 s [really-safe-money] | otherwise =
  4483. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  4484. 128.58 s [really-safe-money] @@ -266,7 +266,7 @@
  4485. 128.58 s [really-safe-money] | e >= l = Nothing
  4486. 128.58 s [really-safe-money] | n < d =
  4487. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4488. 128.58 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4489. 128.58 s [really-safe-money] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  4490. 128.58 s [really-safe-money] | otherwise =
  4491. 128.58 s [really-safe-money] let (q, r') = n `quotRem` d
  4492. 128.58 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  4493. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  4494. 128.58 s [really-safe-money] @@ -266,7 +266,7 @@
  4495. 128.58 s [really-safe-money] | e >= l = Nothing
  4496. 128.58 s [really-safe-money] | n < d =
  4497. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4498. 128.58 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4499. 128.58 s [really-safe-money] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  4500. 128.58 s [really-safe-money] | otherwise =
  4501. 128.58 s [really-safe-money] let (q, r') = n `quotRem` d
  4502. 128.58 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  4503. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  4504. 128.58 s [really-safe-money] @@ -266,7 +266,7 @@
  4505. 128.58 s [really-safe-money] | e >= l = Nothing
  4506. 128.58 s [really-safe-money] | n < d =
  4507. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4508. 128.58 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4509. 128.58 s [really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  4510. 128.58 s [really-safe-money] | otherwise =
  4511. 128.58 s [really-safe-money] let (q, r') = n `quotRem` d
  4512. 128.58 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  4513. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  4514. 128.58 s [really-safe-money] @@ -266,7 +266,7 @@
  4515. 128.58 s [really-safe-money] | e >= l = Nothing
  4516. 128.58 s [really-safe-money] | n < d =
  4517. 128.58 s [really-safe-money] let !ns' = S.insert n ns
  4518. 128.58 s [really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  4519. 128.58 s [really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  4520. 128.58 s [really-safe-money] | otherwise =
  4521. 128.58 s [really-safe-money] let (q, r') = n `quotRem` d
  4522. 128.58 s [really-safe-money] in longDivWithLimit (c + q) e ns r'
  4523. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  4524. 128.58 s [really-safe-money] @@ -249,7 +249,7 @@
  4525. 128.58 s [really-safe-money] num = numerator rational
  4526. 128.58 s [really-safe-money]
  4527. 128.58 s [really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
  4528. 128.58 s [really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
  4529. 128.58 s [really-safe-money] + longDiv = longDivWithLimit 1 0 S.empty
  4530. 128.58 s [really-safe-money]
  4531. 128.58 s [really-safe-money] longDivWithLimit ::
  4532. 128.58 s [really-safe-money] Natural ->
  4533. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  4534. 128.58 s [really-safe-money] @@ -249,7 +249,7 @@
  4535. 128.58 s [really-safe-money] num = numerator rational
  4536. 128.58 s [really-safe-money]
  4537. 128.58 s [really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
  4538. 128.58 s [really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
  4539. 128.58 s [really-safe-money] + longDiv = longDivWithLimit 0 1 S.empty
  4540. 128.58 s [really-safe-money]
  4541. 128.58 s [really-safe-money] longDivWithLimit ::
  4542. 128.58 s [really-safe-money] Natural ->
  4543. 128.58 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  4544. 128.58 s [really-safe-money] @@ -220,7 +220,7 @@
  4545. 128.58 s [really-safe-money] -- (-3) % 10
  4546. 128.58 s [really-safe-money] toRational :: DecimalLiteral -> Rational
  4547. 128.58 s [really-safe-money] toRational (DecimalLiteral mSign m e) =
  4548. 128.58 s [really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
  4549. 128.58 s [really-safe-money] + signSignum mSign (fromIntegral m / (0 ^ e))
  4550. 128.58 s [really-safe-money]
  4551. 128.59 s [really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  4552. 128.59 s [really-safe-money] --
  4553. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  4554. 128.59 s [really-safe-money] @@ -220,7 +220,7 @@
  4555. 128.59 s [really-safe-money] -- (-3) % 10
  4556. 128.59 s [really-safe-money] toRational :: DecimalLiteral -> Rational
  4557. 128.59 s [really-safe-money] toRational (DecimalLiteral mSign m e) =
  4558. 128.59 s [really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
  4559. 128.59 s [really-safe-money] + signSignum mSign (fromIntegral m / (1 ^ e))
  4560. 128.59 s [really-safe-money]
  4561. 128.59 s [really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  4562. 128.59 s [really-safe-money] --
  4563. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  4564. 128.59 s [really-safe-money] @@ -220,7 +220,7 @@
  4565. 128.59 s [really-safe-money] -- (-3) % 10
  4566. 128.59 s [really-safe-money] toRational :: DecimalLiteral -> Rational
  4567. 128.59 s [really-safe-money] toRational (DecimalLiteral mSign m e) =
  4568. 128.59 s [really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
  4569. 128.59 s [really-safe-money] + signSignum mSign (fromIntegral m / (-10 ^ e))
  4570. 128.59 s [really-safe-money]
  4571. 128.59 s [really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  4572. 128.59 s [really-safe-money] --
  4573. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  4574. 128.59 s [really-safe-money] @@ -205,7 +205,7 @@
  4575. 128.59 s [really-safe-money] -- Nothing
  4576. 128.59 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  4577. 128.59 s [really-safe-money] fromRational (n :% d)
  4578. 128.59 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4579. 128.59 s [really-safe-money] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4580. 128.59 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  4581. 128.59 s [really-safe-money]
  4582. 128.59 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  4583. 128.59 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  4584. 128.59 s [really-safe-money] @@ -205,7 +205,7 @@
  4585. 128.59 s [really-safe-money] -- Nothing
  4586. 128.59 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  4587. 128.59 s [really-safe-money] fromRational (n :% d)
  4588. 128.59 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4589. 128.59 s [really-safe-money] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4590. 128.59 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  4591. 128.59 s [really-safe-money]
  4592. 128.59 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  4593. 128.59 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  4594. 128.59 s [really-safe-money] @@ -205,7 +205,7 @@
  4595. 128.59 s [really-safe-money] -- Nothing
  4596. 128.59 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  4597. 128.59 s [really-safe-money] fromRational (n :% d)
  4598. 128.59 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4599. 128.59 s [really-safe-money] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4600. 128.59 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  4601. 128.59 s [really-safe-money]
  4602. 128.59 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  4603. 128.59 s [really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  4604. 128.59 s [really-safe-money] @@ -205,7 +205,7 @@
  4605. 128.59 s [really-safe-money] -- Nothing
  4606. 128.59 s [really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
  4607. 128.59 s [really-safe-money] fromRational (n :% d)
  4608. 128.59 s [really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4609. 128.59 s [really-safe-money] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  4610. 128.59 s [really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  4611. 128.59 s [really-safe-money]
  4612. 128.59 s [really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
  4613. 128.59 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  4614. 128.59 s [really-safe-money] @@ -183,7 +183,7 @@
  4615. 128.59 s [really-safe-money]
  4616. 128.59 s [really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
  4617. 128.59 s [really-safe-money] go :: Word8 -> String -> String
  4618. 128.59 s [really-safe-money] - go 0 [] = ['.', '0']
  4619. 128.59 s [really-safe-money] + go 0 [] = []
  4620. 128.59 s [really-safe-money] go 0 s = '.' : s
  4621. 128.59 s [really-safe-money] go e [] = '0' : go (pred e) []
  4622. 128.59 s [really-safe-money] go e (c : cs) = c : go (pred e) cs
  4623. 128.59 s [really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  4624. 128.59 s [really-safe-money] @@ -183,7 +183,7 @@
  4625. 128.59 s [really-safe-money]
  4626. 128.59 s [really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
  4627. 128.59 s [really-safe-money] go :: Word8 -> String -> String
  4628. 128.59 s [really-safe-money] - go 0 [] = ['.', '0']
  4629. 128.59 s [really-safe-money] + go 0 [] = ['.', '0']
  4630. 128.59 s [really-safe-money] go 0 s = '.' : s
  4631. 128.59 s [really-safe-money] go e [] = '0' : go (pred e) []
  4632. 128.59 s [really-safe-money] go e (c : cs) = c : go (pred e) cs
  4633. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  4634. 128.59 s [really-safe-money] @@ -142,7 +142,7 @@
  4635. 128.59 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  4636. 128.59 s [really-safe-money] parseDigits f z = do
  4637. 128.59 s [really-safe-money] c <- ReadP.satisfy Char.isDigit
  4638. 128.59 s [really-safe-money] - let digit = Char.ord c - 48
  4639. 128.59 s [really-safe-money] + let digit = Char.ord c - 0
  4640. 128.59 s [really-safe-money] case f z digit of
  4641. 128.59 s [really-safe-money] Nothing -> fail "Failed to step the first digit"
  4642. 128.59 s [really-safe-money] Just a -> ReadP.look >>= go a
  4643. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  4644. 128.59 s [really-safe-money] @@ -142,7 +142,7 @@
  4645. 128.59 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  4646. 128.59 s [really-safe-money] parseDigits f z = do
  4647. 128.59 s [really-safe-money] c <- ReadP.satisfy Char.isDigit
  4648. 128.59 s [really-safe-money] - let digit = Char.ord c - 48
  4649. 128.59 s [really-safe-money] + let digit = Char.ord c - 1
  4650. 128.59 s [really-safe-money] case f z digit of
  4651. 128.59 s [really-safe-money] Nothing -> fail "Failed to step the first digit"
  4652. 128.59 s [really-safe-money] Just a -> ReadP.look >>= go a
  4653. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  4654. 128.59 s [really-safe-money] @@ -142,7 +142,7 @@
  4655. 128.59 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  4656. 128.59 s [really-safe-money] parseDigits f z = do
  4657. 128.59 s [really-safe-money] c <- ReadP.satisfy Char.isDigit
  4658. 128.59 s [really-safe-money] - let digit = Char.ord c - 48
  4659. 128.59 s [really-safe-money] + let digit = Char.ord c - -48
  4660. 128.59 s [really-safe-money] case f z digit of
  4661. 128.59 s [really-safe-money] Nothing -> fail "Failed to step the first digit"
  4662. 128.59 s [really-safe-money] Just a -> ReadP.look >>= go a
  4663. 128.59 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  4664. 128.59 s [really-safe-money] @@ -149,7 +149,7 @@
  4665. 128.59 s [really-safe-money] where
  4666. 128.59 s [really-safe-money] go !a [] = return a
  4667. 128.59 s [really-safe-money] go !a (c : cs)
  4668. 128.59 s [really-safe-money] - | Char.isDigit c = do
  4669. 128.59 s [really-safe-money] + | True = do
  4670. 128.59 s [really-safe-money] _ <- ReadP.get
  4671. 128.59 s [really-safe-money] let digit = Char.ord c - 48
  4672. 128.59 s [really-safe-money] case f a digit of
  4673. 128.59 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  4674. 128.59 s [really-safe-money] @@ -149,7 +149,7 @@
  4675. 128.59 s [really-safe-money] where
  4676. 128.59 s [really-safe-money] go !a [] = return a
  4677. 128.59 s [really-safe-money] go !a (c : cs)
  4678. 128.59 s [really-safe-money] - | Char.isDigit c = do
  4679. 128.59 s [really-safe-money] + | not (Char.isDigit c) = do
  4680. 128.59 s [really-safe-money] _ <- ReadP.get
  4681. 128.59 s [really-safe-money] let digit = Char.ord c - 48
  4682. 128.59 s [really-safe-money] case f a digit of
  4683. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  4684. 128.59 s [really-safe-money] @@ -151,7 +151,7 @@
  4685. 128.59 s [really-safe-money] go !a (c : cs)
  4686. 128.59 s [really-safe-money] | Char.isDigit c = do
  4687. 128.59 s [really-safe-money] _ <- ReadP.get
  4688. 128.59 s [really-safe-money] - let digit = Char.ord c - 48
  4689. 128.59 s [really-safe-money] + let digit = Char.ord c - 0
  4690. 128.59 s [really-safe-money] case f a digit of
  4691. 128.59 s [really-safe-money] Nothing -> fail "Failed to step the digit"
  4692. 128.59 s [really-safe-money] Just a' -> go a' cs
  4693. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  4694. 128.59 s [really-safe-money] @@ -151,7 +151,7 @@
  4695. 128.59 s [really-safe-money] go !a (c : cs)
  4696. 128.59 s [really-safe-money] | Char.isDigit c = do
  4697. 128.59 s [really-safe-money] _ <- ReadP.get
  4698. 128.59 s [really-safe-money] - let digit = Char.ord c - 48
  4699. 128.59 s [really-safe-money] + let digit = Char.ord c - 1
  4700. 128.59 s [really-safe-money] case f a digit of
  4701. 128.59 s [really-safe-money] Nothing -> fail "Failed to step the digit"
  4702. 128.59 s [really-safe-money] Just a' -> go a' cs
  4703. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  4704. 128.59 s [really-safe-money] @@ -151,7 +151,7 @@
  4705. 128.59 s [really-safe-money] go !a (c : cs)
  4706. 128.59 s [really-safe-money] | Char.isDigit c = do
  4707. 128.59 s [really-safe-money] _ <- ReadP.get
  4708. 128.59 s [really-safe-money] - let digit = Char.ord c - 48
  4709. 128.59 s [really-safe-money] + let digit = Char.ord c - -48
  4710. 128.59 s [really-safe-money] case f a digit of
  4711. 128.59 s [really-safe-money] Nothing -> fail "Failed to step the digit"
  4712. 128.59 s [really-safe-money] Just a' -> go a' cs
  4713. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  4714. 128.59 s [really-safe-money] @@ -136,7 +136,7 @@
  4715. 128.59 s [really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  4716. 128.59 s [really-safe-money]
  4717. 128.59 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  4718. 128.59 s [really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
  4719. 128.59 s [really-safe-money] +step a digit = Just $ a * 0 + fromIntegral digit
  4720. 128.59 s [really-safe-money] {-# INLINE step #-}
  4721. 128.59 s [really-safe-money]
  4722. 128.59 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  4723. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  4724. 128.59 s [really-safe-money] @@ -136,7 +136,7 @@
  4725. 128.59 s [really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  4726. 128.59 s [really-safe-money]
  4727. 128.59 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  4728. 128.59 s [really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
  4729. 128.59 s [really-safe-money] +step a digit = Just $ a * 1 + fromIntegral digit
  4730. 128.59 s [really-safe-money] {-# INLINE step #-}
  4731. 128.59 s [really-safe-money]
  4732. 128.59 s [really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  4733. 128.59 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  4734. 128.60 s [really-safe-money] @@ -133,7 +133,7 @@
  4735. 128.60 s [really-safe-money]
  4736. 128.60 s [really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  4737. 128.60 s [really-safe-money] stepFraction (_, 255) _ = Nothing
  4738. 128.60 s [really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  4739. 128.60 s [really-safe-money] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  4740. 128.60 s [really-safe-money]
  4741. 128.60 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  4742. 128.60 s [really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
  4743. 128.60 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  4744. 128.60 s [really-safe-money] @@ -133,7 +133,7 @@
  4745. 128.60 s [really-safe-money]
  4746. 128.60 s [really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  4747. 128.60 s [really-safe-money] stepFraction (_, 255) _ = Nothing
  4748. 128.60 s [really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  4749. 128.60 s [really-safe-money] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  4750. 128.60 s [really-safe-money]
  4751. 128.60 s [really-safe-money] step :: Natural -> Int -> Maybe Natural
  4752. 128.60 s [really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
  4753. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  4754. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4755. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4756. 128.60 s [really-safe-money] decimalLiteralP = do
  4757. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4758. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4759. 128.60 s [really-safe-money] + isSignChar c = True || c == '+'
  4760. 128.60 s [really-safe-money]
  4761. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4762. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4763. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  4764. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4765. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4766. 128.60 s [really-safe-money] decimalLiteralP = do
  4767. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4768. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4769. 128.60 s [really-safe-money] + isSignChar c = False || c == '+'
  4770. 128.60 s [really-safe-money]
  4771. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4772. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4773. 128.60 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  4774. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4775. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4776. 128.60 s [really-safe-money] decimalLiteralP = do
  4777. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4778. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4779. 128.60 s [really-safe-money] + isSignChar c = not (c == '-') || c == '+'
  4780. 128.60 s [really-safe-money]
  4781. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4782. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4783. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  4784. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4785. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4786. 128.60 s [really-safe-money] decimalLiteralP = do
  4787. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4788. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4789. 128.60 s [really-safe-money] + isSignChar c = c == '-' || True
  4790. 128.60 s [really-safe-money]
  4791. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4792. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4793. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  4794. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4795. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4796. 128.60 s [really-safe-money] decimalLiteralP = do
  4797. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4798. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4799. 128.60 s [really-safe-money] + isSignChar c = c == '-' || False
  4800. 128.60 s [really-safe-money]
  4801. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4802. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4803. 128.60 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  4804. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4805. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4806. 128.60 s [really-safe-money] decimalLiteralP = do
  4807. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4808. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4809. 128.60 s [really-safe-money] + isSignChar c = c == '-' || not (c == '+')
  4810. 128.60 s [really-safe-money]
  4811. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4812. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4813. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  4814. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4815. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4816. 128.60 s [really-safe-money] decimalLiteralP = do
  4817. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4818. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4819. 128.60 s [really-safe-money] + isSignChar c = True
  4820. 128.60 s [really-safe-money]
  4821. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4822. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4823. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  4824. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4825. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4826. 128.60 s [really-safe-money] decimalLiteralP = do
  4827. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4828. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4829. 128.60 s [really-safe-money] + isSignChar c = False
  4830. 128.60 s [really-safe-money]
  4831. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4832. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4833. 128.60 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  4834. 128.60 s [really-safe-money] @@ -116,7 +116,7 @@
  4835. 128.60 s [really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
  4836. 128.60 s [really-safe-money] decimalLiteralP = do
  4837. 128.60 s [really-safe-money] let isSignChar :: Char -> Bool
  4838. 128.60 s [really-safe-money] - isSignChar c = c == '-' || c == '+'
  4839. 128.60 s [really-safe-money] + isSignChar c = not (c == '-' || c == '+')
  4840. 128.60 s [really-safe-money]
  4841. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4842. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4843. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  4844. 128.60 s [really-safe-money] @@ -120,7 +120,7 @@
  4845. 128.60 s [really-safe-money]
  4846. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4847. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4848. 128.60 s [really-safe-money] - pure $ Just $ signChar == '+'
  4849. 128.60 s [really-safe-money] + pure $ Just $ True
  4850. 128.60 s [really-safe-money]
  4851. 128.60 s [really-safe-money] units <- parseDigits step 0
  4852. 128.60 s [really-safe-money]
  4853. 128.60 s [really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  4854. 128.60 s [really-safe-money] @@ -120,7 +120,7 @@
  4855. 128.60 s [really-safe-money]
  4856. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4857. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4858. 128.60 s [really-safe-money] - pure $ Just $ signChar == '+'
  4859. 128.60 s [really-safe-money] + pure $ Just $ False
  4860. 128.60 s [really-safe-money]
  4861. 128.60 s [really-safe-money] units <- parseDigits step 0
  4862. 128.60 s [really-safe-money]
  4863. 128.60 s [really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  4864. 128.60 s [really-safe-money] @@ -120,7 +120,7 @@
  4865. 128.60 s [really-safe-money]
  4866. 128.60 s [really-safe-money] mSign <- ReadP.option Nothing $ do
  4867. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4868. 128.60 s [really-safe-money] - pure $ Just $ signChar == '+'
  4869. 128.60 s [really-safe-money] + pure $ Just $ not (signChar == '+')
  4870. 128.60 s [really-safe-money]
  4871. 128.60 s [really-safe-money] units <- parseDigits step 0
  4872. 128.60 s [really-safe-money]
  4873. 128.60 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  4874. 128.60 s [really-safe-money] @@ -122,7 +122,7 @@
  4875. 128.60 s [really-safe-money] signChar <- ReadP.satisfy isSignChar
  4876. 128.60 s [really-safe-money] pure $ Just $ signChar == '+'
  4877. 128.60 s [really-safe-money]
  4878. 128.60 s [really-safe-money] - units <- parseDigits step 0
  4879. 128.60 s [really-safe-money] + units <- parseDigits step 1
  4880. 128.60 s [really-safe-money]
  4881. 128.60 s [really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
  4882. 128.60 s [really-safe-money] _ <- ReadP.satisfy (== '.')
  4883. 128.60 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  4884. 128.60 s [really-safe-money] @@ -124,7 +124,7 @@
  4885. 128.60 s [really-safe-money]
  4886. 128.60 s [really-safe-money] units <- parseDigits step 0
  4887. 128.60 s [really-safe-money]
  4888. 128.60 s [really-safe-money] - ReadP.option (DecimalLiteral mSign units 0) $ do
  4889. 128.60 s [really-safe-money] + ReadP.option (DecimalLiteral mSign units 1) $ do
  4890. 128.60 s [really-safe-money] _ <- ReadP.satisfy (== '.')
  4891. 128.60 s [really-safe-money]
  4892. 128.60 s [really-safe-money] (m, e) <- parseDigits stepFraction (units, 0)
  4893. 128.60 s [really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  4894. 128.60 s [really-safe-money] @@ -127,7 +127,7 @@
  4895. 128.60 s [really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
  4896. 128.60 s [really-safe-money] _ <- ReadP.satisfy (== '.')
  4897. 128.60 s [really-safe-money]
  4898. 128.60 s [really-safe-money] - (m, e) <- parseDigits stepFraction (units, 0)
  4899. 128.60 s [really-safe-money] + (m, e) <- parseDigits stepFraction (units, 1)
  4900. 128.60 s [really-safe-money]
  4901. 128.60 s [really-safe-money] pure $ DecimalLiteral mSign m e
  4902. 128.60 s [really-safe-money]
  4903. 128.60 s [really-safe-money] added 81 mutations
  4904. 128.61 s [genvalidity-sydtest-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  4905. 128.62 s [genvalidity-sydtest-source] Phase: configurePhase
  4906. 128.63 s [genvalidity-sydtest-source] configureFlags: --verbose --prefix=/nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/genvalidity-sydtest-1.0.1.0 --with-gcc=gcc --package-db=/build/tmp.PlWPx7LOCP/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-option=-Wall --ghc-option=-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
  4907. 128.63 s [genvalidity-sydtest-source] Using Parsec parser
  4908. 128.63 s [genvalidity-sydtest-source] Configuring genvalidity-sydtest-1.0.1.0...
  4909. 129.51 s [genvalidity-sydtest-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  4910. 129.51 s [genvalidity-sydtest-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  4911. 129.51 s [genvalidity-sydtest-source] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
  4912. 129.51 s [genvalidity-sydtest-source] Dependency sydtest: using sydtest-0.23.0.2
  4913. 129.51 s [genvalidity-sydtest-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  4914. 129.51 s [genvalidity-sydtest-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  4915. 129.51 s [genvalidity-sydtest-source] Dependency genvalidity: using genvalidity-1.1.1.0
  4916. 129.51 s [genvalidity-sydtest-source] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  4917. 129.51 s [genvalidity-sydtest-source] Dependency sydtest: using sydtest-0.23.0.2
  4918. 129.51 s [genvalidity-sydtest-source] Source component graph:
  4919. 129.51 s [genvalidity-sydtest-source] component lib
  4920. 129.51 s [genvalidity-sydtest-source] component test:genvalidity-sydtest-test dependency lib
  4921. 129.51 s [genvalidity-sydtest-source] Configured component graph:
  4922. 129.51 s [genvalidity-sydtest-source] component genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4923. 129.51 s [genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  4924. 129.51 s [genvalidity-sydtest-source] include base-4.20.2.0-64da
  4925. 129.51 s [genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  4926. 129.51 s [genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  4927. 129.51 s [genvalidity-sydtest-source] component genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
  4928. 129.51 s [genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  4929. 129.51 s [genvalidity-sydtest-source] include base-4.20.2.0-64da
  4930. 129.51 s [genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  4931. 129.51 s [genvalidity-sydtest-source] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4932. 129.51 s [genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  4933. 129.51 s [genvalidity-sydtest-source] Linked component graph:
  4934. 129.51 s [genvalidity-sydtest-source] unit genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4935. 129.51 s [genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  4936. 129.51 s [genvalidity-sydtest-source] include base-4.20.2.0-64da
  4937. 129.51 s [genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  4938. 129.51 s [genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  4939. 129.51 s [genvalidity-sydtest-source] Test.Syd.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity,Test.Syd.Validity.Applicative=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Applicative,Test.Syd.Validity.Arbitrary=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Arbitrary,Test.Syd.Validity.Eq=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Eq,Test.Syd.Validity.Functions=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions,Test.Syd.Validity.Functions.CanFail=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.CanFail,Test.Syd.Validity.Functions.Equivalence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Equivalence,Test.Syd.Validity.Functions.Idempotence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Idempotence,Test.Syd.Validity.Functions.Inverse=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Inverse,Test.Syd.Validity.Functions.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Validity,Test.Syd.Validity.Functor=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functor,Test.Syd.Validity.GenValidity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity,Test.Syd.Validity.GenValidity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity.Property,Test.Syd.Validity.Monad=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monad,Test.Syd.Validity.Monoid=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monoid,Test.Syd.Validity.Operations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations,Test.Syd.Validity.Operations.Associativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Associativity,Test.Syd.Validity.Operations.Commutativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Commutativity,Test.Syd.Validity.Operations.Identity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Identity,Test.Syd.Validity.Ord=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Ord,Test.Syd.Validity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property,Test.Syd.Validity.Property.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property.Utils,Test.Syd.Validity.Relations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations,Test.Syd.Validity.Relations.Antireflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antireflexivity,Test.Syd.Validity.Relations.Antisymmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antisymmetry,Test.Syd.Validity.Relations.Reflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Reflexivity,Test.Syd.Validity.Relations.Symmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Symmetry,Test.Syd.Validity.Relations.Transitivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Transitivity,Test.Syd.Validity.Show=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Show,Test.Syd.Validity.Shrinking=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking,Test.Syd.Validity.Shrinking.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking.Property,Test.Syd.Validity.Types=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Types,Test.Syd.Validity.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Utils
  4940. 129.51 s [genvalidity-sydtest-source] unit genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
  4941. 129.51 s [genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  4942. 129.51 s [genvalidity-sydtest-source] include base-4.20.2.0-64da
  4943. 129.51 s [genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  4944. 129.51 s [genvalidity-sydtest-source] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4945. 129.51 s [genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  4946. 129.51 s [genvalidity-sydtest-source] Ready component graph:
  4947. 129.51 s [genvalidity-sydtest-source] definite genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4948. 129.51 s [genvalidity-sydtest-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  4949. 129.51 s [genvalidity-sydtest-source] depends base-4.20.2.0-64da
  4950. 129.51 s [genvalidity-sydtest-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  4951. 129.51 s [genvalidity-sydtest-source] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  4952. 129.51 s [genvalidity-sydtest-source] definite genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
  4953. 129.51 s [genvalidity-sydtest-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  4954. 129.51 s [genvalidity-sydtest-source] depends base-4.20.2.0-64da
  4955. 129.51 s [genvalidity-sydtest-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  4956. 129.51 s [genvalidity-sydtest-source] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4957. 129.51 s [genvalidity-sydtest-source] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  4958. 129.51 s [genvalidity-sydtest-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  4959. 129.51 s [genvalidity-sydtest-source] Using compiler: ghc-9.10.3
  4960. 129.51 s [genvalidity-sydtest-source] Using install prefix:
  4961. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0
  4962. 129.51 s [genvalidity-sydtest-source] Executables installed in:
  4963. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/bin
  4964. 129.51 s [genvalidity-sydtest-source] Libraries installed in:
  4965. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  4966. 129.51 s [genvalidity-sydtest-source] Dynamic Libraries installed in:
  4967. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  4968. 129.51 s [genvalidity-sydtest-source] Private executables installed in:
  4969. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
  4970. 129.51 s [genvalidity-sydtest-source] Data files installed in:
  4971. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
  4972. 129.51 s [genvalidity-sydtest-source] Documentation installed in: /share/doc/genvalidity-sydtest-1.0.1.0
  4973. 129.51 s [genvalidity-sydtest-source] Configuration files installed in:
  4974. 129.51 s [genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/etc
  4975. 129.51 s [genvalidity-sydtest-source] No alex found
  4976. 129.51 s [genvalidity-sydtest-source] Using ar found on system at:
  4977. 129.51 s [genvalidity-sydtest-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  4978. 129.51 s [genvalidity-sydtest-source] No c2hs found
  4979. 129.51 s [genvalidity-sydtest-source] No cpphs found
  4980. 129.51 s [genvalidity-sydtest-source] No doctest found
  4981. 129.51 s [genvalidity-sydtest-source] Using gcc version 14.3.0 given by user at:
  4982. 129.51 s [genvalidity-sydtest-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  4983. 129.51 s [genvalidity-sydtest-source] Using ghc version 9.10.3 found on system at:
  4984. 129.51 s [genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  4985. 129.51 s [genvalidity-sydtest-source] Using ghc-pkg version 9.10.3 found on system at:
  4986. 129.51 s [genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  4987. 129.51 s [genvalidity-sydtest-source] No ghcjs found
  4988. 129.51 s [genvalidity-sydtest-source] No ghcjs-pkg found
  4989. 129.51 s [genvalidity-sydtest-source] No greencard found
  4990. 129.51 s [genvalidity-sydtest-source] Using haddock version 2.31.1 found on system at:
  4991. 129.55 s [genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  4992. 129.55 s [genvalidity-sydtest-source] No happy found
  4993. 129.55 s [genvalidity-sydtest-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  4994. 129.55 s [genvalidity-sydtest-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  4995. 129.55 s [genvalidity-sydtest-source] No hmake found
  4996. 129.55 s [genvalidity-sydtest-source] Using hpc version 0.69 found on system at:
  4997. 129.55 s [genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  4998. 129.55 s [genvalidity-sydtest-source] Using hsc2hs version 0.68.10 found on system at:
  4999. 129.55 s [genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  5000. 129.55 s [genvalidity-sydtest-source] Using hscolour version 1.25 found on system at:
  5001. 129.55 s [genvalidity-sydtest-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  5002. 129.55 s [genvalidity-sydtest-source] No jhc found
  5003. 129.55 s [genvalidity-sydtest-source] Using ld found on system at:
  5004. 129.55 s [genvalidity-sydtest-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  5005. 129.55 s [genvalidity-sydtest-source] No pkg-config found
  5006. 129.55 s [genvalidity-sydtest-source] Using runghc version 9.10.3 found on system at:
  5007. 129.55 s [genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  5008. 129.55 s [genvalidity-sydtest-source] Using strip version 2.44 found on system at:
  5009. 129.55 s [genvalidity-sydtest-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  5010. 129.55 s [genvalidity-sydtest-source] Using tar found on system at:
  5011. 129.55 s [genvalidity-sydtest-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  5012. 129.55 s [genvalidity-sydtest-source] No uhc found
  5013. 130.11 s [genvalidity-sydtest-source] Phase: buildPhase
  5014. 130.12 s [genvalidity-sydtest-source] Distribution quality warnings:
  5015. 130.12 s [genvalidity-sydtest-source] [no-description] No 'description' field.
  5016. 130.12 s [genvalidity-sydtest-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  5017. 130.12 s [genvalidity-sydtest-source] - QuickCheck
  5018. 130.12 s [genvalidity-sydtest-source] - genvalidity
  5019. 130.12 s [genvalidity-sydtest-source] - sydtest
  5020. 130.12 s [genvalidity-sydtest-source] Please add them. There is more information at https://pvp.haskell.org/
  5021. 130.12 s [genvalidity-sydtest-source] Building source dist for genvalidity-sydtest-1.0.1.0...
  5022. 130.14 s [genvalidity-sydtest-source] Source tarball created: dist/genvalidity-sydtest-1.0.1.0.tar.gz
  5023. 130.15 s [genvalidity-sydtest-source] Phase: checkPhase
  5024. 130.16 s [genvalidity-sydtest-source] Phase: haddockPhase
  5025. 130.16 s [really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.p_o )
  5026. 130.16 s [genvalidity-sydtest-source] Phase: installPhase
  5027. 130.17 s [genvalidity-sydtest-source] Phase: fixupPhase
  5028. 130.20 s Progress: 6 of 14 built (1 building)
  5029. 130.26 s Building genvalidity-sydtest
  5030. 130.26 s [really-safe-money] mutation: instrumenting Money.QuantisationFactor
  5031. 130.26 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  5032. 130.27 s [really-safe-money] @@ -84,7 +84,7 @@
  5033. 130.27 s [really-safe-money] fromDecimalLiteral dl = do
  5034. 130.27 s [really-safe-money] irat <-
  5035. 130.27 s [really-safe-money] let r = DecimalLiteral.toRational dl
  5036. 130.27 s [really-safe-money] - in if numerator r == 0
  5037. 130.27 s [really-safe-money] + in if numerator r == 1
  5038. 130.27 s [really-safe-money] then Nothing
  5039. 130.27 s [really-safe-money] else pure r
  5040. 130.27 s [really-safe-money]
  5041. 130.27 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  5042. 130.27 s [really-safe-money] @@ -84,7 +84,7 @@
  5043. 130.27 s [really-safe-money] fromDecimalLiteral dl = do
  5044. 130.27 s [really-safe-money] irat <-
  5045. 130.27 s [really-safe-money] let r = DecimalLiteral.toRational dl
  5046. 130.27 s [really-safe-money] - in if numerator r == 0
  5047. 130.27 s [really-safe-money] + in if True
  5048. 130.27 s [really-safe-money] then Nothing
  5049. 130.27 s [really-safe-money] else pure r
  5050. 130.27 s [really-safe-money]
  5051. 130.27 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  5052. 130.27 s [really-safe-money] @@ -84,7 +84,7 @@
  5053. 130.27 s [really-safe-money] fromDecimalLiteral dl = do
  5054. 130.27 s [really-safe-money] irat <-
  5055. 130.27 s [really-safe-money] let r = DecimalLiteral.toRational dl
  5056. 130.27 s [really-safe-money] - in if numerator r == 0
  5057. 130.27 s [really-safe-money] + in if False
  5058. 130.27 s [really-safe-money] then Nothing
  5059. 130.27 s [really-safe-money] else pure r
  5060. 130.27 s [really-safe-money]
  5061. 130.27 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  5062. 130.27 s [really-safe-money] @@ -84,7 +84,7 @@
  5063. 130.27 s [really-safe-money] fromDecimalLiteral dl = do
  5064. 130.27 s [really-safe-money] irat <-
  5065. 130.27 s [really-safe-money] let r = DecimalLiteral.toRational dl
  5066. 130.27 s [really-safe-money] - in if numerator r == 0
  5067. 130.27 s [really-safe-money] + in if not (numerator r == 0)
  5068. 130.27 s [really-safe-money] then Nothing
  5069. 130.27 s [really-safe-money] else pure r
  5070. 130.27 s [really-safe-money]
  5071. 130.27 s [really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
  5072. 130.27 s [really-safe-money] @@ -84,9 +84,9 @@
  5073. 130.27 s [really-safe-money] fromDecimalLiteral dl = do
  5074. 130.27 s [really-safe-money] irat <-
  5075. 130.27 s [really-safe-money] let r = DecimalLiteral.toRational dl
  5076. 130.27 s [really-safe-money] - in if numerator r == 0
  5077. 130.27 s [really-safe-money] - then Nothing
  5078. 130.27 s [really-safe-money] - else pure r
  5079. 130.27 s [really-safe-money] + in if numerator r == 0
  5080. 130.27 s [really-safe-money] + then Nothing
  5081. 130.27 s [really-safe-money] + else pure r
  5082. 130.27 s [really-safe-money]
  5083. 130.27 s [really-safe-money] rat <-
  5084. 130.27 s [really-safe-money] let r = 1 / irat
  5085. 130.27 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  5086. 130.27 s [really-safe-money] @@ -89,7 +89,7 @@
  5087. 130.27 s [really-safe-money] else pure r
  5088. 130.27 s [really-safe-money]
  5089. 130.27 s [really-safe-money] rat <-
  5090. 130.27 s [really-safe-money] - let r = 1 / irat
  5091. 130.27 s [really-safe-money] + let r = 0 / irat
  5092. 130.27 s [really-safe-money] in if r < 0
  5093. 130.27 s [really-safe-money] then Nothing
  5094. 130.27 s [really-safe-money] else Just r
  5095. 130.27 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  5096. 130.27 s [really-safe-money] @@ -89,7 +89,7 @@
  5097. 130.27 s [really-safe-money] else pure r
  5098. 130.27 s [really-safe-money]
  5099. 130.27 s [really-safe-money] rat <-
  5100. 130.27 s [really-safe-money] - let r = 1 / irat
  5101. 130.27 s [really-safe-money] + let r = -1 / irat
  5102. 130.27 s [really-safe-money] in if r < 0
  5103. 130.27 s [really-safe-money] then Nothing
  5104. 130.27 s [really-safe-money] else Just r
  5105. 130.27 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  5106. 130.27 s [really-safe-money] @@ -90,7 +90,7 @@
  5107. 130.27 s [really-safe-money]
  5108. 130.27 s [really-safe-money] rat <-
  5109. 130.27 s [really-safe-money] let r = 1 / irat
  5110. 130.27 s [really-safe-money] - in if r < 0
  5111. 130.27 s [really-safe-money] + in if r < 1
  5112. 130.27 s [really-safe-money] then Nothing
  5113. 130.27 s [really-safe-money] else Just r
  5114. 130.27 s [really-safe-money]
  5115. 130.27 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  5116. 130.27 s [really-safe-money] @@ -90,7 +90,7 @@
  5117. 130.27 s [really-safe-money]
  5118. 130.27 s [really-safe-money] rat <-
  5119. 130.27 s [really-safe-money] let r = 1 / irat
  5120. 130.27 s [really-safe-money] - in if r < 0
  5121. 130.27 s [really-safe-money] + in if True
  5122. 130.27 s [really-safe-money] then Nothing
  5123. 130.27 s [really-safe-money] else Just r
  5124. 130.27 s [really-safe-money]
  5125. 130.27 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  5126. 130.27 s [really-safe-money] @@ -90,7 +90,7 @@
  5127. 130.27 s [really-safe-money]
  5128. 130.27 s [really-safe-money] rat <-
  5129. 130.27 s [really-safe-money] let r = 1 / irat
  5130. 130.27 s [really-safe-money] - in if r < 0
  5131. 130.27 s [really-safe-money] + in if False
  5132. 130.27 s [really-safe-money] then Nothing
  5133. 130.27 s [really-safe-money] else Just r
  5134. 130.27 s [really-safe-money]
  5135. 130.27 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  5136. 130.27 s [really-safe-money] @@ -90,7 +90,7 @@
  5137. 130.27 s [really-safe-money]
  5138. 130.27 s [really-safe-money] rat <-
  5139. 130.27 s [really-safe-money] let r = 1 / irat
  5140. 130.27 s [really-safe-money] - in if r < 0
  5141. 130.27 s [really-safe-money] + in if not (r < 0)
  5142. 130.27 s [really-safe-money] then Nothing
  5143. 130.27 s [really-safe-money] else Just r
  5144. 130.27 s [really-safe-money]
  5145. 130.27 s [really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
  5146. 130.27 s [really-safe-money] @@ -90,9 +90,9 @@
  5147. 130.27 s [really-safe-money]
  5148. 130.27 s [really-safe-money] rat <-
  5149. 130.27 s [really-safe-money] let r = 1 / irat
  5150. 130.27 s [really-safe-money] - in if r < 0
  5151. 130.27 s [really-safe-money] - then Nothing
  5152. 130.27 s [really-safe-money] - else Just r
  5153. 130.27 s [really-safe-money] + in if r < 0
  5154. 130.27 s [really-safe-money] + then Nothing
  5155. 130.27 s [really-safe-money] + else Just r
  5156. 130.27 s [really-safe-money]
  5157. 130.27 s [really-safe-money] fac <-
  5158. 130.27 s [really-safe-money] if denominator rat == 1
  5159. 130.27 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  5160. 130.27 s [really-safe-money] @@ -95,7 +95,7 @@
  5161. 130.27 s [really-safe-money] else Just r
  5162. 130.27 s [really-safe-money]
  5163. 130.27 s [really-safe-money] fac <-
  5164. 130.27 s [really-safe-money] - if denominator rat == 1
  5165. 130.27 s [really-safe-money] + if denominator rat == 0
  5166. 130.27 s [really-safe-money] then Just (numerator rat)
  5167. 130.27 s [really-safe-money] else Nothing
  5168. 130.27 s [really-safe-money]
  5169. 130.27 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  5170. 130.27 s [really-safe-money] @@ -95,7 +95,7 @@
  5171. 130.27 s [really-safe-money] else Just r
  5172. 130.27 s [really-safe-money]
  5173. 130.27 s [really-safe-money] fac <-
  5174. 130.27 s [really-safe-money] - if denominator rat == 1
  5175. 130.27 s [really-safe-money] + if denominator rat == -1
  5176. 130.27 s [really-safe-money] then Just (numerator rat)
  5177. 130.27 s [really-safe-money] else Nothing
  5178. 130.27 s [really-safe-money]
  5179. 130.27 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  5180. 130.27 s [really-safe-money] @@ -95,7 +95,7 @@
  5181. 130.27 s [really-safe-money] else Just r
  5182. 130.28 s [really-safe-money]
  5183. 130.28 s [really-safe-money] fac <-
  5184. 130.28 s [really-safe-money] - if denominator rat == 1
  5185. 130.28 s [really-safe-money] + if True
  5186. 130.28 s [really-safe-money] then Just (numerator rat)
  5187. 130.28 s [really-safe-money] else Nothing
  5188. 130.28 s [really-safe-money]
  5189. 130.28 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  5190. 130.28 s [really-safe-money] @@ -95,7 +95,7 @@
  5191. 130.28 s [really-safe-money] else Just r
  5192. 130.28 s [really-safe-money]
  5193. 130.28 s [really-safe-money] fac <-
  5194. 130.28 s [really-safe-money] - if denominator rat == 1
  5195. 130.28 s [really-safe-money] + if False
  5196. 130.28 s [really-safe-money] then Just (numerator rat)
  5197. 130.28 s [really-safe-money] else Nothing
  5198. 130.28 s [really-safe-money]
  5199. 130.28 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  5200. 130.28 s [really-safe-money] @@ -95,7 +95,7 @@
  5201. 130.28 s [really-safe-money] else Just r
  5202. 130.28 s [really-safe-money]
  5203. 130.28 s [really-safe-money] fac <-
  5204. 130.28 s [really-safe-money] - if denominator rat == 1
  5205. 130.28 s [really-safe-money] + if not (denominator rat == 1)
  5206. 130.28 s [really-safe-money] then Just (numerator rat)
  5207. 130.28 s [really-safe-money] else Nothing
  5208. 130.28 s [really-safe-money]
  5209. 130.28 s [really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
  5210. 130.28 s [really-safe-money] @@ -95,9 +95,9 @@
  5211. 130.28 s [really-safe-money] else Just r
  5212. 130.28 s [really-safe-money]
  5213. 130.28 s [really-safe-money] fac <-
  5214. 130.28 s [really-safe-money] - if denominator rat == 1
  5215. 130.28 s [really-safe-money] - then Just (numerator rat)
  5216. 130.28 s [really-safe-money] - else Nothing
  5217. 130.28 s [really-safe-money] + if denominator rat == 1
  5218. 130.28 s [really-safe-money] + then Just (numerator rat)
  5219. 130.28 s [really-safe-money] + else Nothing
  5220. 130.28 s [really-safe-money]
  5221. 130.28 s [really-safe-money] if fac <= fromIntegral (maxBound :: Word32)
  5222. 130.28 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  5223. 130.28 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  5224. 130.28 s [really-safe-money] @@ -99,6 +99,6 @@
  5225. 130.28 s [really-safe-money] then Just (numerator rat)
  5226. 130.28 s [really-safe-money] else Nothing
  5227. 130.28 s [really-safe-money]
  5228. 130.28 s [really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
  5229. 130.28 s [really-safe-money] + if True
  5230. 130.28 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  5231. 130.28 s [really-safe-money] else Nothing
  5232. 130.28 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  5233. 130.28 s [really-safe-money] @@ -99,6 +99,6 @@
  5234. 130.28 s [really-safe-money] then Just (numerator rat)
  5235. 130.28 s [really-safe-money] else Nothing
  5236. 130.28 s [really-safe-money]
  5237. 130.28 s [really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
  5238. 130.28 s [really-safe-money] + if False
  5239. 130.28 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  5240. 130.28 s [really-safe-money] else Nothing
  5241. 130.28 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  5242. 130.28 s [really-safe-money] @@ -99,6 +99,6 @@
  5243. 130.28 s [really-safe-money] then Just (numerator rat)
  5244. 130.28 s [really-safe-money] else Nothing
  5245. 130.28 s [really-safe-money]
  5246. 130.28 s [really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
  5247. 130.28 s [really-safe-money] + if not (fac <= fromIntegral (maxBound :: Word32))
  5248. 130.28 s [really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
  5249. 130.28 s [really-safe-money] else Nothing
  5250. 130.28 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  5251. 130.28 s [really-safe-money] @@ -64,7 +64,7 @@
  5252. 130.28 s [really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
  5253. 130.28 s [really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  5254. 130.28 s [really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
  5255. 130.28 s [really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  5256. 130.28 s [really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  5257. 130.28 s [really-safe-money]
  5258. 130.28 s [really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  5259. 130.28 s [really-safe-money] -- TODO explain that it's the inverse.
  5260. 130.28 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  5261. 130.28 s [really-safe-money] @@ -64,7 +64,7 @@
  5262. 130.28 s [really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
  5263. 130.28 s [really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  5264. 130.28 s [really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
  5265. 130.28 s [really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  5266. 130.28 s [really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  5267. 130.28 s [really-safe-money]
  5268. 130.28 s [really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  5269. 130.28 s [really-safe-money] -- TODO explain that it's the inverse.
  5270. 130.28 s [really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  5271. 130.28 s [really-safe-money] @@ -37,7 +37,7 @@
  5272. 130.28 s [really-safe-money] validate qf@(QuantisationFactor w) =
  5273. 130.28 s [really-safe-money] mconcat
  5274. 130.28 s [really-safe-money] [ genericValidate qf,
  5275. 130.28 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  5276. 130.28 s [really-safe-money] + declare "The quantisation factor is not zero" $ w /= 1
  5277. 130.28 s [really-safe-money] ]
  5278. 130.28 s [really-safe-money]
  5279. 130.28 s [really-safe-money] instance NFData QuantisationFactor
  5280. 130.28 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  5281. 130.28 s [really-safe-money] @@ -37,7 +37,7 @@
  5282. 130.28 s [really-safe-money] validate qf@(QuantisationFactor w) =
  5283. 130.28 s [really-safe-money] mconcat
  5284. 130.28 s [really-safe-money] [ genericValidate qf,
  5285. 130.28 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  5286. 130.28 s [really-safe-money] + declare "The quantisation factor is not zero" $ True
  5287. 130.28 s [really-safe-money] ]
  5288. 130.28 s [really-safe-money]
  5289. 130.28 s [really-safe-money] instance NFData QuantisationFactor
  5290. 130.28 s [really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  5291. 130.28 s [really-safe-money] @@ -37,7 +37,7 @@
  5292. 130.28 s [really-safe-money] validate qf@(QuantisationFactor w) =
  5293. 130.28 s [really-safe-money] mconcat
  5294. 130.28 s [really-safe-money] [ genericValidate qf,
  5295. 130.28 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  5296. 130.28 s [really-safe-money] + declare "The quantisation factor is not zero" $ False
  5297. 130.28 s [really-safe-money] ]
  5298. 130.28 s [really-safe-money]
  5299. 130.28 s [really-safe-money] instance NFData QuantisationFactor
  5300. 130.28 s [really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  5301. 130.28 s [really-safe-money] @@ -37,7 +37,7 @@
  5302. 130.28 s [really-safe-money] validate qf@(QuantisationFactor w) =
  5303. 130.28 s [really-safe-money] mconcat
  5304. 130.28 s [really-safe-money] [ genericValidate qf,
  5305. 130.28 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  5306. 130.28 s [really-safe-money] + declare "The quantisation factor is not zero" $ not (w /= 0)
  5307. 130.28 s [really-safe-money] ]
  5308. 130.28 s [really-safe-money]
  5309. 130.28 s [really-safe-money] instance NFData QuantisationFactor
  5310. 130.28 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  5311. 130.28 s [really-safe-money] @@ -36,9 +36,7 @@
  5312. 130.28 s [really-safe-money] instance Validity QuantisationFactor where
  5313. 130.28 s [really-safe-money] validate qf@(QuantisationFactor w) =
  5314. 130.28 s [really-safe-money] mconcat
  5315. 130.28 s [really-safe-money] - [ genericValidate qf,
  5316. 130.28 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  5317. 130.28 s [really-safe-money] - ]
  5318. 130.28 s [really-safe-money] + []
  5319. 130.28 s [really-safe-money]
  5320. 130.28 s [really-safe-money] instance NFData QuantisationFactor
  5321. 130.28 s [really-safe-money]
  5322. 130.28 s [really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  5323. 130.28 s [really-safe-money] @@ -36,9 +36,9 @@
  5324. 130.28 s [really-safe-money] instance Validity QuantisationFactor where
  5325. 130.28 s [really-safe-money] validate qf@(QuantisationFactor w) =
  5326. 130.28 s [really-safe-money] mconcat
  5327. 130.28 s [really-safe-money] - [ genericValidate qf,
  5328. 130.28 s [really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
  5329. 130.28 s [really-safe-money] - ]
  5330. 130.28 s [really-safe-money] + [ genericValidate qf,
  5331. 130.28 s [really-safe-money] + declare "The quantisation factor is not zero" $ w /= 0
  5332. 130.28 s [really-safe-money] + ]
  5333. 130.28 s [really-safe-money]
  5334. 130.28 s [really-safe-money] instance NFData QuantisationFactor
  5335. 130.28 s [really-safe-money]
  5336. 130.28 s [really-safe-money] added 29 mutations
  5337. 130.64 s [genvalidity-sydtest] Phase: setupCompilerEnvironmentPhase
  5338. 130.64 s [genvalidity-sydtest] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  5339. 130.68 s [really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.p_o )
  5340. 130.69 s [really-safe-money] mutation: instrumenting Money.Currency
  5341. 130.69 s [really-safe-money] added 0 mutations
  5342. 131.26 s [really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.p_o )
  5343. 131.27 s [genvalidity-sydtest] Phase: unpackPhase
  5344. 131.27 s [really-safe-money] mutation: instrumenting Money.ConversionRate
  5345. 131.27 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  5346. 131.27 s [really-safe-money] @@ -113,7 +113,7 @@
  5347. 131.27 s [really-safe-money] -- >>> invert (ConversionRate (1 % 2))
  5348. 131.27 s [really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
  5349. 131.27 s [really-safe-money] invert :: ConversionRate -> ConversionRate
  5350. 131.27 s [really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
  5351. 131.27 s [really-safe-money] +invert (ConversionRate r) = ConversionRate (0 / r)
  5352. 131.27 s [really-safe-money]
  5353. 131.27 s [really-safe-money] -- | Compose two conversion rates
  5354. 131.27 s [really-safe-money] --
  5355. 131.27 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  5356. 131.27 s [really-safe-money] @@ -113,7 +113,7 @@
  5357. 131.27 s [really-safe-money] -- >>> invert (ConversionRate (1 % 2))
  5358. 131.27 s [really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
  5359. 131.27 s [really-safe-money] invert :: ConversionRate -> ConversionRate
  5360. 131.27 s [really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
  5361. 131.27 s [really-safe-money] +invert (ConversionRate r) = ConversionRate (-1 / r)
  5362. 131.27 s [really-safe-money]
  5363. 131.27 s [really-safe-money] -- | Compose two conversion rates
  5364. 131.27 s [really-safe-money] --
  5365. 131.27 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  5366. 131.27 s [really-safe-money] @@ -106,7 +106,7 @@
  5367. 131.27 s [really-safe-money]
  5368. 131.27 s [really-safe-money] -- | One-to-one conversion rate
  5369. 131.27 s [really-safe-money] oneToOne :: ConversionRate
  5370. 131.27 s [really-safe-money] -oneToOne = ConversionRate 1
  5371. 131.27 s [really-safe-money] +oneToOne = ConversionRate 0
  5372. 131.27 s [really-safe-money]
  5373. 131.27 s [really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
  5374. 131.27 s [really-safe-money] --
  5375. 131.27 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  5376. 131.27 s [really-safe-money] @@ -106,7 +106,7 @@
  5377. 131.27 s [really-safe-money]
  5378. 131.27 s [really-safe-money] -- | One-to-one conversion rate
  5379. 131.27 s [really-safe-money] oneToOne :: ConversionRate
  5380. 131.27 s [really-safe-money] -oneToOne = ConversionRate 1
  5381. 131.27 s [really-safe-money] +oneToOne = ConversionRate -1
  5382. 131.27 s [really-safe-money]
  5383. 131.27 s [really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
  5384. 131.27 s [really-safe-money] --
  5385. 131.27 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  5386. 131.27 s [really-safe-money] @@ -69,7 +69,7 @@
  5387. 131.27 s [really-safe-money] -- >>> fromRational (0 % 1)
  5388. 131.27 s [really-safe-money] -- Nothing
  5389. 131.27 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  5390. 131.27 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  5391. 131.27 s [really-safe-money] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  5392. 131.27 s [really-safe-money]
  5393. 131.27 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  5394. 131.27 s [really-safe-money] --
  5395. 131.27 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  5396. 131.27 s [really-safe-money] @@ -69,7 +69,7 @@
  5397. 131.27 s [really-safe-money] -- >>> fromRational (0 % 1)
  5398. 131.27 s [really-safe-money] -- Nothing
  5399. 131.27 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  5400. 131.27 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  5401. 131.27 s [really-safe-money] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  5402. 131.27 s [really-safe-money]
  5403. 131.27 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  5404. 131.27 s [really-safe-money] --
  5405. 131.27 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  5406. 131.27 s [really-safe-money] @@ -69,7 +69,7 @@
  5407. 131.27 s [really-safe-money] -- >>> fromRational (0 % 1)
  5408. 131.27 s [really-safe-money] -- Nothing
  5409. 131.27 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  5410. 131.27 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  5411. 131.27 s [really-safe-money] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  5412. 131.27 s [really-safe-money]
  5413. 131.27 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  5414. 131.27 s [really-safe-money] --
  5415. 131.27 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
  5416. 131.27 s [really-safe-money] @@ -69,7 +69,7 @@
  5417. 131.27 s [really-safe-money] -- >>> fromRational (0 % 1)
  5418. 131.27 s [really-safe-money] -- Nothing
  5419. 131.27 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  5420. 131.27 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  5421. 131.27 s [really-safe-money] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  5422. 131.27 s [really-safe-money]
  5423. 131.27 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  5424. 131.27 s [really-safe-money] --
  5425. 131.27 s [really-safe-money] added mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
  5426. 131.27 s [really-safe-money] @@ -69,7 +69,7 @@
  5427. 131.27 s [really-safe-money] -- >>> fromRational (0 % 1)
  5428. 131.27 s [really-safe-money] -- Nothing
  5429. 131.27 s [really-safe-money] fromRational :: Rational -> Maybe ConversionRate
  5430. 131.27 s [really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  5431. 131.27 s [really-safe-money] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  5432. 131.27 s [really-safe-money]
  5433. 131.27 s [really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
  5434. 131.27 s [really-safe-money] --
  5435. 131.27 s [really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  5436. 131.27 s [really-safe-money] @@ -35,7 +35,7 @@
  5437. 131.27 s [really-safe-money] validate cr@(ConversionRate r) =
  5438. 131.27 s [really-safe-money] mconcat
  5439. 131.27 s [really-safe-money] [ genericValidate cr,
  5440. 131.27 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  5441. 131.27 s [really-safe-money] + declare "The rate is nonzero" $ numerator r /= 1
  5442. 131.27 s [really-safe-money] ]
  5443. 131.27 s [really-safe-money]
  5444. 131.27 s [really-safe-money] instance NFData ConversionRate
  5445. 131.27 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  5446. 131.27 s [really-safe-money] @@ -35,7 +35,7 @@
  5447. 131.27 s [really-safe-money] validate cr@(ConversionRate r) =
  5448. 131.27 s [really-safe-money] mconcat
  5449. 131.27 s [really-safe-money] [ genericValidate cr,
  5450. 131.27 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  5451. 131.27 s [really-safe-money] + declare "The rate is nonzero" $ True
  5452. 131.28 s [really-safe-money] ]
  5453. 131.28 s [really-safe-money]
  5454. 131.28 s [really-safe-money] instance NFData ConversionRate
  5455. 131.28 s [really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  5456. 131.28 s [really-safe-money] @@ -35,7 +35,7 @@
  5457. 131.28 s [really-safe-money] validate cr@(ConversionRate r) =
  5458. 131.28 s [really-safe-money] mconcat
  5459. 131.28 s [really-safe-money] [ genericValidate cr,
  5460. 131.28 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  5461. 131.28 s [really-safe-money] + declare "The rate is nonzero" $ False
  5462. 131.28 s [really-safe-money] ]
  5463. 131.28 s [really-safe-money]
  5464. 131.28 s [really-safe-money] instance NFData ConversionRate
  5465. 131.28 s [really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
  5466. 131.28 s [really-safe-money] @@ -35,7 +35,7 @@
  5467. 131.28 s [really-safe-money] validate cr@(ConversionRate r) =
  5468. 131.28 s [really-safe-money] mconcat
  5469. 131.28 s [really-safe-money] [ genericValidate cr,
  5470. 131.28 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  5471. 131.28 s [really-safe-money] + declare "The rate is nonzero" $ not (numerator r /= 0)
  5472. 131.28 s [really-safe-money] ]
  5473. 131.28 s [really-safe-money]
  5474. 131.28 s [really-safe-money] instance NFData ConversionRate
  5475. 131.28 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  5476. 131.28 s [really-safe-money] @@ -34,9 +34,7 @@
  5477. 131.28 s [really-safe-money] instance Validity ConversionRate where
  5478. 131.28 s [really-safe-money] validate cr@(ConversionRate r) =
  5479. 131.28 s [really-safe-money] mconcat
  5480. 131.28 s [really-safe-money] - [ genericValidate cr,
  5481. 131.28 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  5482. 131.28 s [really-safe-money] - ]
  5483. 131.28 s [really-safe-money] + []
  5484. 131.28 s [really-safe-money]
  5485. 131.28 s [really-safe-money] instance NFData ConversionRate
  5486. 131.28 s [really-safe-money]
  5487. 131.28 s [really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  5488. 131.28 s [really-safe-money] @@ -34,9 +34,9 @@
  5489. 131.28 s [really-safe-money] instance Validity ConversionRate where
  5490. 131.28 s [really-safe-money] validate cr@(ConversionRate r) =
  5491. 131.28 s [really-safe-money] mconcat
  5492. 131.28 s [really-safe-money] - [ genericValidate cr,
  5493. 131.28 s [really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
  5494. 131.28 s [really-safe-money] - ]
  5495. 131.28 s [really-safe-money] + [ genericValidate cr,
  5496. 131.28 s [really-safe-money] + declare "The rate is nonzero" $ numerator r /= 0
  5497. 131.28 s [really-safe-money] + ]
  5498. 131.28 s [really-safe-money]
  5499. 131.28 s [really-safe-money] instance NFData ConversionRate
  5500. 131.28 s [really-safe-money]
  5501. 131.28 s [really-safe-money] added 15 mutations
  5502. 131.28 s [genvalidity-sydtest] unpacking source archive /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/genvalidity-sydtest-1.0.1.0.tar.gz
  5503. 131.28 s [genvalidity-sydtest] source root is genvalidity-sydtest-1.0.1.0
  5504. 131.29 s [genvalidity-sydtest] setting SOURCE_DATE_EPOCH to timestamp 1778687829 of file "genvalidity-sydtest-1.0.1.0/test/Test/Syd/Validity/ShrinkingSpec.hs"
  5505. 131.29 s [genvalidity-sydtest] warning: file "genvalidity-sydtest-1.0.1.0/test/Test/Syd/Validity/ShrinkingSpec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
  5506. 131.29 s [genvalidity-sydtest] Phase: patchPhase
  5507. 131.31 s [genvalidity-sydtest] Phase: compileBuildDriverPhase
  5508. 131.31 s [genvalidity-sydtest] setupCompileFlags: -package-db=/build/tmp.RricPHhDAb/setup-package.conf.d -threaded
  5509. 131.39 s [genvalidity-sydtest] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.RricPHhDAb/Main.o )
  5510. 131.47 s [genvalidity-sydtest] [2 of 2] Linking Setup
  5511. 131.72 s [really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.p_o )
  5512. 131.73 s [really-safe-money] mutation: instrumenting Money.ConversionRateOf
  5513. 131.73 s [really-safe-money] added 0 mutations
  5514. 131.97 s [really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.p_o )
  5515. 132.08 s [really-safe-money] mutation: instrumenting Money.Amount
  5516. 132.08 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  5517. 132.08 s [really-safe-money] @@ -798,7 +798,7 @@
  5518. 132.08 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  5519. 132.08 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
  5520. 132.09 s [really-safe-money] let decimals :: Int
  5521. 132.09 s [really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  5522. 132.09 s [really-safe-money] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  5523. 132.09 s [really-safe-money] in printf "%%0.%df" decimals
  5524. 132.09 s [really-safe-money]
  5525. 132.09 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  5526. 132.09 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  5527. 132.09 s [really-safe-money] @@ -798,7 +798,7 @@
  5528. 132.09 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  5529. 132.09 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
  5530. 132.09 s [really-safe-money] let decimals :: Int
  5531. 132.09 s [really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  5532. 132.09 s [really-safe-money] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  5533. 132.09 s [really-safe-money] in printf "%%0.%df" decimals
  5534. 132.09 s [really-safe-money]
  5535. 132.09 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  5536. 132.09 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
  5537. 132.09 s [really-safe-money] @@ -798,7 +798,7 @@
  5538. 132.09 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  5539. 132.09 s [really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
  5540. 132.09 s [really-safe-money] let decimals :: Int
  5541. 132.09 s [really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  5542. 132.09 s [really-safe-money] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  5543. 132.09 s [really-safe-money] in printf "%%0.%df" decimals
  5544. 132.09 s [really-safe-money]
  5545. 132.09 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  5546. 132.09 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
  5547. 132.09 s [really-safe-money] @@ -566,7 +566,7 @@
  5548. 132.09 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  5549. 132.09 s [really-safe-money] smallerChunk :: Amount
  5550. 132.09 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  5551. 132.09 s [really-safe-money] - in if rest == 0
  5552. 132.09 s [really-safe-money] + in if rest == 1
  5553. 132.09 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  5554. 132.09 s [really-safe-money] else
  5555. 132.09 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  5556. 132.09 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  5557. 132.09 s [really-safe-money] @@ -566,7 +566,7 @@
  5558. 132.09 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  5559. 132.09 s [really-safe-money] smallerChunk :: Amount
  5560. 132.09 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  5561. 132.09 s [really-safe-money] - in if rest == 0
  5562. 132.09 s [really-safe-money] + in if True
  5563. 132.09 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  5564. 132.09 s [really-safe-money] else
  5565. 132.09 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  5566. 132.09 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
  5567. 132.09 s [really-safe-money] @@ -566,7 +566,7 @@
  5568. 132.09 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  5569. 132.09 s [really-safe-money] smallerChunk :: Amount
  5570. 132.09 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  5571. 132.09 s [really-safe-money] - in if rest == 0
  5572. 132.09 s [really-safe-money] + in if False
  5573. 132.09 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  5574. 132.09 s [really-safe-money] else
  5575. 132.09 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  5576. 132.09 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
  5577. 132.09 s [really-safe-money] @@ -566,7 +566,7 @@
  5578. 132.09 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  5579. 132.09 s [really-safe-money] smallerChunk :: Amount
  5580. 132.09 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  5581. 132.09 s [really-safe-money] - in if rest == 0
  5582. 132.09 s [really-safe-money] + in if not (rest == 0)
  5583. 132.09 s [really-safe-money] then DistributedIntoEqualChunks f smallerChunk
  5584. 132.09 s [really-safe-money] else
  5585. 132.09 s [really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
  5586. 132.09 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:569:7-29
  5587. 132.09 s [really-safe-money] @@ -566,22 +566,22 @@
  5588. 132.09 s [really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  5589. 132.09 s [really-safe-money] smallerChunk :: Amount
  5590. 132.09 s [really-safe-money] smallerChunk = Amount smallerChunkSize
  5591. 132.09 s [really-safe-money] - in if rest == 0
  5592. 132.09 s [really-safe-money] - then DistributedIntoEqualChunks f smallerChunk
  5593. 132.09 s [really-safe-money] - else
  5594. 132.09 s [really-safe-money] - let -- This 'fromIntegral' is theoretically not safe, but it's
  5595. 132.09 s [really-safe-money] - -- necessarily smaller than f so it will fit.
  5596. 132.09 s [really-safe-money] - numberOfLargerChunks :: Word32
  5597. 132.09 s [really-safe-money] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  5598. 132.09 s [really-safe-money] - numberOfSmallerChunks :: Word32
  5599. 132.09 s [really-safe-money] - numberOfSmallerChunks = f - numberOfLargerChunks
  5600. 132.09 s [really-safe-money] - largerChunk :: Amount
  5601. 132.09 s [really-safe-money] - largerChunk = Amount $ succ smallerChunkSize
  5602. 132.09 s [really-safe-money] - in DistributedIntoUnequalChunks
  5603. 132.09 s [really-safe-money] - numberOfLargerChunks
  5604. 132.09 s [really-safe-money] - largerChunk
  5605. 132.09 s [really-safe-money] - numberOfSmallerChunks
  5606. 132.09 s [really-safe-money] - smallerChunk
  5607. 132.09 s [really-safe-money] + in if rest == 0
  5608. 132.09 s [really-safe-money] + then DistributedIntoEqualChunks f smallerChunk
  5609. 132.09 s [really-safe-money] + else
  5610. 132.09 s [really-safe-money] + let -- This 'fromIntegral' is theoretically not safe, but it's
  5611. 132.09 s [really-safe-money] + -- necessarily smaller than f so it will fit.
  5612. 132.09 s [really-safe-money] + numberOfLargerChunks :: Word32
  5613. 132.09 s [really-safe-money] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  5614. 132.09 s [really-safe-money] + numberOfSmallerChunks :: Word32
  5615. 132.09 s [really-safe-money] + numberOfSmallerChunks = f - numberOfLargerChunks
  5616. 132.09 s [really-safe-money] + largerChunk :: Amount
  5617. 132.09 s [really-safe-money] + largerChunk = Amount $ succ smallerChunkSize
  5618. 132.09 s [really-safe-money] + in DistributedIntoUnequalChunks
  5619. 132.09 s [really-safe-money] + numberOfLargerChunks
  5620. 132.09 s [really-safe-money] + largerChunk
  5621. 132.09 s [really-safe-money] + numberOfSmallerChunks
  5622. 132.09 s [really-safe-money] + smallerChunk
  5623. 132.09 s [really-safe-money]
  5624. 132.09 s [really-safe-money] -- | The result of 'distribute'
  5625. 132.09 s [really-safe-money] type AmountDistribution = Distribution Amount
  5626. 132.09 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  5627. 132.09 s [really-safe-money] @@ -541,7 +541,7 @@
  5628. 132.09 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5629. 132.09 s [really-safe-money] r :: Integer
  5630. 132.09 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5631. 132.09 s [really-safe-money] - in if r > maxBoundI
  5632. 132.09 s [really-safe-money] + in if True
  5633. 132.09 s [really-safe-money] then Nothing
  5634. 132.09 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5635. 132.09 s [really-safe-money]
  5636. 132.09 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
  5637. 132.09 s [really-safe-money] @@ -541,7 +541,7 @@
  5638. 132.09 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5639. 132.09 s [really-safe-money] r :: Integer
  5640. 132.09 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5641. 132.09 s [really-safe-money] - in if r > maxBoundI
  5642. 132.09 s [really-safe-money] + in if False
  5643. 132.09 s [really-safe-money] then Nothing
  5644. 132.09 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5645. 132.09 s [really-safe-money]
  5646. 132.09 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
  5647. 132.09 s [really-safe-money] @@ -541,7 +541,7 @@
  5648. 132.09 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5649. 132.09 s [really-safe-money] r :: Integer
  5650. 132.10 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5651. 132.10 s [really-safe-money] - in if r > maxBoundI
  5652. 132.10 s [really-safe-money] + in if not (r > maxBoundI)
  5653. 132.10 s [really-safe-money] then Nothing
  5654. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5655. 132.10 s [really-safe-money]
  5656. 132.10 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:544:7-66
  5657. 132.10 s [really-safe-money] @@ -541,9 +541,9 @@
  5658. 132.10 s [really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  5659. 132.10 s [really-safe-money] r :: Integer
  5660. 132.10 s [really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  5661. 132.10 s [really-safe-money] - in if r > maxBoundI
  5662. 132.10 s [really-safe-money] - then Nothing
  5663. 132.10 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5664. 132.10 s [really-safe-money] + in if r > maxBoundI
  5665. 132.10 s [really-safe-money] + then Nothing
  5666. 132.10 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5667. 132.10 s [really-safe-money]
  5668. 132.10 s [really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  5669. 132.10 s [really-safe-money] --
  5670. 132.10 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
  5671. 132.10 s [really-safe-money] @@ -515,7 +515,7 @@
  5672. 132.10 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  5673. 132.10 s [really-safe-money] r :: Integer
  5674. 132.10 s [really-safe-money] r = i1 - i2
  5675. 132.10 s [really-safe-money] - in if r < 0
  5676. 132.10 s [really-safe-money] + in if r < 1
  5677. 132.10 s [really-safe-money] then Nothing
  5678. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5679. 132.10 s [really-safe-money]
  5680. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  5681. 132.10 s [really-safe-money] @@ -515,7 +515,7 @@
  5682. 132.10 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  5683. 132.10 s [really-safe-money] r :: Integer
  5684. 132.10 s [really-safe-money] r = i1 - i2
  5685. 132.10 s [really-safe-money] - in if r < 0
  5686. 132.10 s [really-safe-money] + in if True
  5687. 132.10 s [really-safe-money] then Nothing
  5688. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5689. 132.10 s [really-safe-money]
  5690. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
  5691. 132.10 s [really-safe-money] @@ -515,7 +515,7 @@
  5692. 132.10 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  5693. 132.10 s [really-safe-money] r :: Integer
  5694. 132.10 s [really-safe-money] r = i1 - i2
  5695. 132.10 s [really-safe-money] - in if r < 0
  5696. 132.10 s [really-safe-money] + in if False
  5697. 132.10 s [really-safe-money] then Nothing
  5698. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5699. 132.10 s [really-safe-money]
  5700. 132.10 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
  5701. 132.10 s [really-safe-money] @@ -515,7 +515,7 @@
  5702. 132.10 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  5703. 132.10 s [really-safe-money] r :: Integer
  5704. 132.10 s [really-safe-money] r = i1 - i2
  5705. 132.10 s [really-safe-money] - in if r < 0
  5706. 132.10 s [really-safe-money] + in if not (r < 0)
  5707. 132.10 s [really-safe-money] then Nothing
  5708. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5709. 132.10 s [really-safe-money]
  5710. 132.10 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:518:7-66
  5711. 132.10 s [really-safe-money] @@ -515,9 +515,9 @@
  5712. 132.10 s [really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
  5713. 132.10 s [really-safe-money] r :: Integer
  5714. 132.10 s [really-safe-money] r = i1 - i2
  5715. 132.10 s [really-safe-money] - in if r < 0
  5716. 132.10 s [really-safe-money] - then Nothing
  5717. 132.10 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5718. 132.10 s [really-safe-money] + in if r < 0
  5719. 132.10 s [really-safe-money] + then Nothing
  5720. 132.10 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5721. 132.10 s [really-safe-money]
  5722. 132.10 s [really-safe-money] -- | Multiply an amount of money by an integer scalar
  5723. 132.10 s [really-safe-money] --
  5724. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  5725. 132.10 s [really-safe-money] @@ -473,7 +473,7 @@
  5726. 132.10 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  5727. 132.10 s [really-safe-money] r :: Integer
  5728. 132.10 s [really-safe-money] r = i1 + i2
  5729. 132.10 s [really-safe-money] - in if r > maxBoundI
  5730. 132.10 s [really-safe-money] + in if True
  5731. 132.10 s [really-safe-money] then Nothing
  5732. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5733. 132.10 s [really-safe-money]
  5734. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
  5735. 132.10 s [really-safe-money] @@ -473,7 +473,7 @@
  5736. 132.10 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  5737. 132.10 s [really-safe-money] r :: Integer
  5738. 132.10 s [really-safe-money] r = i1 + i2
  5739. 132.10 s [really-safe-money] - in if r > maxBoundI
  5740. 132.10 s [really-safe-money] + in if False
  5741. 132.10 s [really-safe-money] then Nothing
  5742. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5743. 132.10 s [really-safe-money]
  5744. 132.10 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
  5745. 132.10 s [really-safe-money] @@ -473,7 +473,7 @@
  5746. 132.10 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  5747. 132.10 s [really-safe-money] r :: Integer
  5748. 132.10 s [really-safe-money] r = i1 + i2
  5749. 132.10 s [really-safe-money] - in if r > maxBoundI
  5750. 132.10 s [really-safe-money] + in if not (r > maxBoundI)
  5751. 132.10 s [really-safe-money] then Nothing
  5752. 132.10 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5753. 132.10 s [really-safe-money]
  5754. 132.10 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:476:7-66
  5755. 132.10 s [really-safe-money] @@ -473,9 +473,9 @@
  5756. 132.10 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  5757. 132.10 s [really-safe-money] r :: Integer
  5758. 132.10 s [really-safe-money] r = i1 + i2
  5759. 132.10 s [really-safe-money] - in if r > maxBoundI
  5760. 132.10 s [really-safe-money] - then Nothing
  5761. 132.10 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5762. 132.10 s [really-safe-money] + in if r > maxBoundI
  5763. 132.10 s [really-safe-money] + then Nothing
  5764. 132.10 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  5765. 132.10 s [really-safe-money]
  5766. 132.10 s [really-safe-money] -- | Add a number of amounts of money together.
  5767. 132.10 s [really-safe-money] --
  5768. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
  5769. 132.10 s [really-safe-money] @@ -385,7 +385,7 @@
  5770. 132.10 s [really-safe-money] -- Nothing
  5771. 132.10 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5772. 132.10 s [really-safe-money] fromRational (QuantisationFactor qf) r
  5773. 132.10 s [really-safe-money] - | isInvalid r = Nothing
  5774. 132.10 s [really-safe-money] + | True = Nothing
  5775. 132.10 s [really-safe-money] | r < 0 = Nothing
  5776. 132.10 s [really-safe-money] | otherwise =
  5777. 132.10 s [really-safe-money] let resultRational :: Rational
  5778. 132.10 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
  5779. 132.10 s [really-safe-money] @@ -385,7 +385,7 @@
  5780. 132.10 s [really-safe-money] -- Nothing
  5781. 132.10 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5782. 132.10 s [really-safe-money] fromRational (QuantisationFactor qf) r
  5783. 132.10 s [really-safe-money] - | isInvalid r = Nothing
  5784. 132.10 s [really-safe-money] + | not (isInvalid r) = Nothing
  5785. 132.10 s [really-safe-money] | r < 0 = Nothing
  5786. 132.10 s [really-safe-money] | otherwise =
  5787. 132.10 s [really-safe-money] let resultRational :: Rational
  5788. 132.10 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
  5789. 132.10 s [really-safe-money] @@ -386,7 +386,7 @@
  5790. 132.10 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5791. 132.10 s [really-safe-money] fromRational (QuantisationFactor qf) r
  5792. 132.10 s [really-safe-money] | isInvalid r = Nothing
  5793. 132.10 s [really-safe-money] - | r < 0 = Nothing
  5794. 132.10 s [really-safe-money] + | r < 1 = Nothing
  5795. 132.10 s [really-safe-money] | otherwise =
  5796. 132.10 s [really-safe-money] let resultRational :: Rational
  5797. 132.10 s [really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5798. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
  5799. 132.10 s [really-safe-money] @@ -386,7 +386,7 @@
  5800. 132.10 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5801. 132.10 s [really-safe-money] fromRational (QuantisationFactor qf) r
  5802. 132.10 s [really-safe-money] | isInvalid r = Nothing
  5803. 132.10 s [really-safe-money] - | r < 0 = Nothing
  5804. 132.10 s [really-safe-money] + | True = Nothing
  5805. 132.10 s [really-safe-money] | otherwise =
  5806. 132.10 s [really-safe-money] let resultRational :: Rational
  5807. 132.10 s [really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5808. 132.10 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
  5809. 132.10 s [really-safe-money] @@ -386,7 +386,7 @@
  5810. 132.10 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  5811. 132.10 s [really-safe-money] fromRational (QuantisationFactor qf) r
  5812. 132.10 s [really-safe-money] | isInvalid r = Nothing
  5813. 132.10 s [really-safe-money] - | r < 0 = Nothing
  5814. 132.10 s [really-safe-money] + | not (r < 0) = Nothing
  5815. 132.10 s [really-safe-money] | otherwise =
  5816. 132.10 s [really-safe-money] let resultRational :: Rational
  5817. 132.10 s [really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  5818. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  5819. 132.10 s [really-safe-money] @@ -394,7 +394,7 @@
  5820. 132.10 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  5821. 132.10 s [really-safe-money] floored :: Natural
  5822. 132.10 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5823. 132.10 s [really-safe-money] - in if ceiled == floored
  5824. 132.10 s [really-safe-money] + in if True
  5825. 132.10 s [really-safe-money] then
  5826. 132.10 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5827. 132.10 s [really-safe-money] then Nothing
  5828. 132.10 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
  5829. 132.10 s [really-safe-money] @@ -394,7 +394,7 @@
  5830. 132.10 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  5831. 132.10 s [really-safe-money] floored :: Natural
  5832. 132.10 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5833. 132.10 s [really-safe-money] - in if ceiled == floored
  5834. 132.11 s [really-safe-money] + in if False
  5835. 132.11 s [really-safe-money] then
  5836. 132.11 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5837. 132.11 s [really-safe-money] then Nothing
  5838. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
  5839. 132.11 s [really-safe-money] @@ -394,7 +394,7 @@
  5840. 132.11 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  5841. 132.11 s [really-safe-money] floored :: Natural
  5842. 132.11 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5843. 132.11 s [really-safe-money] - in if ceiled == floored
  5844. 132.11 s [really-safe-money] + in if not (ceiled == floored)
  5845. 132.11 s [really-safe-money] then
  5846. 132.11 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5847. 132.11 s [really-safe-money] then Nothing
  5848. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  5849. 132.11 s [really-safe-money] @@ -396,7 +396,7 @@
  5850. 132.11 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5851. 132.11 s [really-safe-money] in if ceiled == floored
  5852. 132.11 s [really-safe-money] then
  5853. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5854. 132.11 s [really-safe-money] + if True
  5855. 132.11 s [really-safe-money] then Nothing
  5856. 132.11 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  5857. 132.11 s [really-safe-money] else Nothing
  5858. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
  5859. 132.11 s [really-safe-money] @@ -396,7 +396,7 @@
  5860. 132.11 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5861. 132.11 s [really-safe-money] in if ceiled == floored
  5862. 132.11 s [really-safe-money] then
  5863. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5864. 132.11 s [really-safe-money] + if False
  5865. 132.11 s [really-safe-money] then Nothing
  5866. 132.11 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  5867. 132.11 s [really-safe-money] else Nothing
  5868. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
  5869. 132.11 s [really-safe-money] @@ -396,7 +396,7 @@
  5870. 132.11 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5871. 132.11 s [really-safe-money] in if ceiled == floored
  5872. 132.11 s [really-safe-money] then
  5873. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5874. 132.11 s [really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  5875. 132.11 s [really-safe-money] then Nothing
  5876. 132.11 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  5877. 132.11 s [really-safe-money] else Nothing
  5878. 132.11 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:399:15-57
  5879. 132.11 s [really-safe-money] @@ -396,9 +396,9 @@
  5880. 132.11 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5881. 132.11 s [really-safe-money] in if ceiled == floored
  5882. 132.11 s [really-safe-money] then
  5883. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5884. 132.11 s [really-safe-money] - then Nothing
  5885. 132.11 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  5886. 132.11 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5887. 132.11 s [really-safe-money] + then Nothing
  5888. 132.11 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  5889. 132.11 s [really-safe-money] else Nothing
  5890. 132.11 s [really-safe-money]
  5891. 132.11 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  5892. 132.11 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:397:11-25
  5893. 132.11 s [really-safe-money] @@ -394,12 +394,12 @@
  5894. 132.11 s [really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
  5895. 132.11 s [really-safe-money] floored :: Natural
  5896. 132.11 s [really-safe-money] floored = (floor :: Rational -> Natural) resultRational
  5897. 132.11 s [really-safe-money] - in if ceiled == floored
  5898. 132.11 s [really-safe-money] - then
  5899. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5900. 132.11 s [really-safe-money] - then Nothing
  5901. 132.11 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  5902. 132.11 s [really-safe-money] - else Nothing
  5903. 132.11 s [really-safe-money] + in if ceiled == floored
  5904. 132.11 s [really-safe-money] + then
  5905. 132.11 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  5906. 132.11 s [really-safe-money] + then Nothing
  5907. 132.11 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  5908. 132.11 s [really-safe-money] + else Nothing
  5909. 132.11 s [really-safe-money]
  5910. 132.11 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  5911. 132.11 s [really-safe-money] --
  5912. 132.11 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
  5913. 132.11 s [really-safe-money] @@ -317,7 +317,7 @@
  5914. 132.11 s [really-safe-money] Double ->
  5915. 132.11 s [really-safe-money] Maybe Amount
  5916. 132.11 s [really-safe-money] fromDouble (QuantisationFactor qf) d
  5917. 132.11 s [really-safe-money] - | d < 0 = Nothing
  5918. 132.11 s [really-safe-money] + | d < 1 = Nothing
  5919. 132.11 s [really-safe-money] | otherwise =
  5920. 132.11 s [really-safe-money] let resultDouble :: Double
  5921. 132.11 s [really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5922. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
  5923. 132.11 s [really-safe-money] @@ -317,7 +317,7 @@
  5924. 132.11 s [really-safe-money] Double ->
  5925. 132.11 s [really-safe-money] Maybe Amount
  5926. 132.11 s [really-safe-money] fromDouble (QuantisationFactor qf) d
  5927. 132.11 s [really-safe-money] - | d < 0 = Nothing
  5928. 132.11 s [really-safe-money] + | True = Nothing
  5929. 132.11 s [really-safe-money] | otherwise =
  5930. 132.11 s [really-safe-money] let resultDouble :: Double
  5931. 132.11 s [really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5932. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
  5933. 132.11 s [really-safe-money] @@ -317,7 +317,7 @@
  5934. 132.11 s [really-safe-money] Double ->
  5935. 132.11 s [really-safe-money] Maybe Amount
  5936. 132.11 s [really-safe-money] fromDouble (QuantisationFactor qf) d
  5937. 132.11 s [really-safe-money] - | d < 0 = Nothing
  5938. 132.11 s [really-safe-money] + | not (d < 0) = Nothing
  5939. 132.11 s [really-safe-money] | otherwise =
  5940. 132.11 s [really-safe-money] let resultDouble :: Double
  5941. 132.11 s [really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  5942. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
  5943. 132.11 s [really-safe-money] @@ -324,7 +324,7 @@
  5944. 132.11 s [really-safe-money] in go resultDouble
  5945. 132.11 s [really-safe-money] where
  5946. 132.11 s [really-safe-money] go resultDouble
  5947. 132.11 s [really-safe-money] - | isNaN d = Nothing
  5948. 132.11 s [really-safe-money] + | True = Nothing
  5949. 132.11 s [really-safe-money] | isInfinite d = Nothing
  5950. 132.11 s [really-safe-money] | otherwise =
  5951. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  5952. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
  5953. 132.11 s [really-safe-money] @@ -324,7 +324,7 @@
  5954. 132.11 s [really-safe-money] in go resultDouble
  5955. 132.11 s [really-safe-money] where
  5956. 132.11 s [really-safe-money] go resultDouble
  5957. 132.11 s [really-safe-money] - | isNaN d = Nothing
  5958. 132.11 s [really-safe-money] + | not (isNaN d) = Nothing
  5959. 132.11 s [really-safe-money] | isInfinite d = Nothing
  5960. 132.11 s [really-safe-money] | otherwise =
  5961. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  5962. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
  5963. 132.11 s [really-safe-money] @@ -325,7 +325,7 @@
  5964. 132.11 s [really-safe-money] where
  5965. 132.11 s [really-safe-money] go resultDouble
  5966. 132.11 s [really-safe-money] | isNaN d = Nothing
  5967. 132.11 s [really-safe-money] - | isInfinite d = Nothing
  5968. 132.11 s [really-safe-money] + | True = Nothing
  5969. 132.11 s [really-safe-money] | otherwise =
  5970. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  5971. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  5972. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
  5973. 132.11 s [really-safe-money] @@ -325,7 +325,7 @@
  5974. 132.11 s [really-safe-money] where
  5975. 132.11 s [really-safe-money] go resultDouble
  5976. 132.11 s [really-safe-money] | isNaN d = Nothing
  5977. 132.11 s [really-safe-money] - | isInfinite d = Nothing
  5978. 132.11 s [really-safe-money] + | not (isInfinite d) = Nothing
  5979. 132.11 s [really-safe-money] | otherwise =
  5980. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  5981. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  5982. 132.11 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  5983. 132.11 s [really-safe-money] @@ -329,7 +329,7 @@
  5984. 132.11 s [really-safe-money] | otherwise =
  5985. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  5986. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  5987. 132.11 s [really-safe-money] - if exponent resultDouble > 65
  5988. 132.11 s [really-safe-money] + if exponent resultDouble > 0
  5989. 132.11 s [really-safe-money] then Nothing
  5990. 132.11 s [really-safe-money] else
  5991. 132.11 s [really-safe-money] let ceiled :: Natural
  5992. 132.11 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  5993. 132.11 s [really-safe-money] @@ -329,7 +329,7 @@
  5994. 132.11 s [really-safe-money] | otherwise =
  5995. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  5996. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  5997. 132.11 s [really-safe-money] - if exponent resultDouble > 65
  5998. 132.11 s [really-safe-money] + if exponent resultDouble > 1
  5999. 132.11 s [really-safe-money] then Nothing
  6000. 132.11 s [really-safe-money] else
  6001. 132.11 s [really-safe-money] let ceiled :: Natural
  6002. 132.11 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
  6003. 132.11 s [really-safe-money] @@ -329,7 +329,7 @@
  6004. 132.11 s [really-safe-money] | otherwise =
  6005. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  6006. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  6007. 132.11 s [really-safe-money] - if exponent resultDouble > 65
  6008. 132.11 s [really-safe-money] + if exponent resultDouble > -65
  6009. 132.11 s [really-safe-money] then Nothing
  6010. 132.11 s [really-safe-money] else
  6011. 132.11 s [really-safe-money] let ceiled :: Natural
  6012. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  6013. 132.11 s [really-safe-money] @@ -329,7 +329,7 @@
  6014. 132.11 s [really-safe-money] | otherwise =
  6015. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  6016. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  6017. 132.11 s [really-safe-money] - if exponent resultDouble > 65
  6018. 132.11 s [really-safe-money] + if True
  6019. 132.11 s [really-safe-money] then Nothing
  6020. 132.11 s [really-safe-money] else
  6021. 132.11 s [really-safe-money] let ceiled :: Natural
  6022. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
  6023. 132.11 s [really-safe-money] @@ -329,7 +329,7 @@
  6024. 132.11 s [really-safe-money] | otherwise =
  6025. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  6026. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  6027. 132.11 s [really-safe-money] - if exponent resultDouble > 65
  6028. 132.11 s [really-safe-money] + if False
  6029. 132.11 s [really-safe-money] then Nothing
  6030. 132.11 s [really-safe-money] else
  6031. 132.11 s [really-safe-money] let ceiled :: Natural
  6032. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
  6033. 132.11 s [really-safe-money] @@ -329,7 +329,7 @@
  6034. 132.11 s [really-safe-money] | otherwise =
  6035. 132.11 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  6036. 132.11 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  6037. 132.11 s [really-safe-money] - if exponent resultDouble > 65
  6038. 132.11 s [really-safe-money] + if not (exponent resultDouble > 65)
  6039. 132.11 s [really-safe-money] then Nothing
  6040. 132.11 s [really-safe-money] else
  6041. 132.11 s [really-safe-money] let ceiled :: Natural
  6042. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  6043. 132.11 s [really-safe-money] @@ -336,7 +336,7 @@
  6044. 132.11 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  6045. 132.11 s [really-safe-money] floored :: Natural
  6046. 132.11 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6047. 132.11 s [really-safe-money] - in if ceiled == floored
  6048. 132.11 s [really-safe-money] + in if True
  6049. 132.11 s [really-safe-money] then
  6050. 132.11 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6051. 132.11 s [really-safe-money] then Nothing
  6052. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
  6053. 132.11 s [really-safe-money] @@ -336,7 +336,7 @@
  6054. 132.11 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  6055. 132.11 s [really-safe-money] floored :: Natural
  6056. 132.11 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6057. 132.11 s [really-safe-money] - in if ceiled == floored
  6058. 132.11 s [really-safe-money] + in if False
  6059. 132.11 s [really-safe-money] then
  6060. 132.11 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6061. 132.11 s [really-safe-money] then Nothing
  6062. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
  6063. 132.11 s [really-safe-money] @@ -336,7 +336,7 @@
  6064. 132.11 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  6065. 132.11 s [really-safe-money] floored :: Natural
  6066. 132.11 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6067. 132.11 s [really-safe-money] - in if ceiled == floored
  6068. 132.11 s [really-safe-money] + in if not (ceiled == floored)
  6069. 132.11 s [really-safe-money] then
  6070. 132.11 s [really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6071. 132.11 s [really-safe-money] then Nothing
  6072. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  6073. 132.11 s [really-safe-money] @@ -338,7 +338,7 @@
  6074. 132.11 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6075. 132.11 s [really-safe-money] in if ceiled == floored
  6076. 132.11 s [really-safe-money] then
  6077. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6078. 132.11 s [really-safe-money] + if True
  6079. 132.11 s [really-safe-money] then Nothing
  6080. 132.11 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  6081. 132.11 s [really-safe-money] else Nothing
  6082. 132.11 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
  6083. 132.11 s [really-safe-money] @@ -338,7 +338,7 @@
  6084. 132.11 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6085. 132.11 s [really-safe-money] in if ceiled == floored
  6086. 132.11 s [really-safe-money] then
  6087. 132.11 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6088. 132.11 s [really-safe-money] + if False
  6089. 132.11 s [really-safe-money] then Nothing
  6090. 132.11 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  6091. 132.11 s [really-safe-money] else Nothing
  6092. 132.11 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
  6093. 132.12 s [really-safe-money] @@ -338,7 +338,7 @@
  6094. 132.12 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6095. 132.12 s [really-safe-money] in if ceiled == floored
  6096. 132.12 s [really-safe-money] then
  6097. 132.12 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6098. 132.12 s [really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  6099. 132.12 s [really-safe-money] then Nothing
  6100. 132.12 s [really-safe-money] else Just $ Amount (fromIntegral ceiled)
  6101. 132.12 s [really-safe-money] else Nothing
  6102. 132.12 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:341:23-65
  6103. 132.12 s [really-safe-money] @@ -338,9 +338,9 @@
  6104. 132.12 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6105. 132.12 s [really-safe-money] in if ceiled == floored
  6106. 132.12 s [really-safe-money] then
  6107. 132.12 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6108. 132.12 s [really-safe-money] - then Nothing
  6109. 132.12 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  6110. 132.12 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6111. 132.12 s [really-safe-money] + then Nothing
  6112. 132.12 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  6113. 132.12 s [really-safe-money] else Nothing
  6114. 132.12 s [really-safe-money]
  6115. 132.12 s [really-safe-money] -- | Turn an amount of money into a 'Double'.
  6116. 132.12 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:339:19-33
  6117. 132.12 s [really-safe-money] @@ -336,12 +336,12 @@
  6118. 132.12 s [really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
  6119. 132.12 s [really-safe-money] floored :: Natural
  6120. 132.12 s [really-safe-money] floored = (floor :: Double -> Natural) resultDouble
  6121. 132.12 s [really-safe-money] - in if ceiled == floored
  6122. 132.12 s [really-safe-money] - then
  6123. 132.12 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6124. 132.12 s [really-safe-money] - then Nothing
  6125. 132.12 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  6126. 132.12 s [really-safe-money] - else Nothing
  6127. 132.12 s [really-safe-money] + in if ceiled == floored
  6128. 132.12 s [really-safe-money] + then
  6129. 132.12 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6130. 132.12 s [really-safe-money] + then Nothing
  6131. 132.12 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  6132. 132.12 s [really-safe-money] + else Nothing
  6133. 132.12 s [really-safe-money]
  6134. 132.12 s [really-safe-money] -- | Turn an amount of money into a 'Double'.
  6135. 132.12 s [really-safe-money] --
  6136. 132.12 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:332:11-33
  6137. 132.12 s [really-safe-money] @@ -329,19 +329,19 @@
  6138. 132.12 s [really-safe-money] | otherwise =
  6139. 132.12 s [really-safe-money] -- Shortcut for numbers that are way too big anyway
  6140. 132.12 s [really-safe-money] -- so that we don't have to compute the according 'Natural' values.
  6141. 132.12 s [really-safe-money] - if exponent resultDouble > 65
  6142. 132.12 s [really-safe-money] - then Nothing
  6143. 132.12 s [really-safe-money] - else
  6144. 132.12 s [really-safe-money] - let ceiled :: Natural
  6145. 132.12 s [really-safe-money] - ceiled = (ceiling :: Double -> Natural) resultDouble
  6146. 132.12 s [really-safe-money] - floored :: Natural
  6147. 132.12 s [really-safe-money] - floored = (floor :: Double -> Natural) resultDouble
  6148. 132.12 s [really-safe-money] - in if ceiled == floored
  6149. 132.12 s [really-safe-money] - then
  6150. 132.12 s [really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6151. 132.12 s [really-safe-money] - then Nothing
  6152. 132.12 s [really-safe-money] - else Just $ Amount (fromIntegral ceiled)
  6153. 132.12 s [really-safe-money] - else Nothing
  6154. 132.12 s [really-safe-money] + if exponent resultDouble > 65
  6155. 132.12 s [really-safe-money] + then Nothing
  6156. 132.12 s [really-safe-money] + else
  6157. 132.12 s [really-safe-money] + let ceiled :: Natural
  6158. 132.12 s [really-safe-money] + ceiled = (ceiling :: Double -> Natural) resultDouble
  6159. 132.12 s [really-safe-money] + floored :: Natural
  6160. 132.12 s [really-safe-money] + floored = (floor :: Double -> Natural) resultDouble
  6161. 132.12 s [really-safe-money] + in if ceiled == floored
  6162. 132.12 s [really-safe-money] + then
  6163. 132.12 s [really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  6164. 132.12 s [really-safe-money] + then Nothing
  6165. 132.12 s [really-safe-money] + else Just $ Amount (fromIntegral ceiled)
  6166. 132.12 s [really-safe-money] + else Nothing
  6167. 132.12 s [really-safe-money]
  6168. 132.12 s [really-safe-money] -- | Turn an amount of money into a 'Double'.
  6169. 132.12 s [really-safe-money] --
  6170. 132.12 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
  6171. 132.12 s [really-safe-money] @@ -287,7 +287,7 @@
  6172. 132.12 s [really-safe-money] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  6173. 132.12 s [really-safe-money] -- 1 % 100
  6174. 132.12 s [really-safe-money] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  6175. 132.12 s [really-safe-money] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  6176. 132.12 s [really-safe-money] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  6177. 132.12 s [really-safe-money] toRatio (QuantisationFactor quantisationFactor) a =
  6178. 132.12 s [really-safe-money] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  6179. 132.12 s [really-safe-money] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  6180. 132.12 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
  6181. 132.12 s [really-safe-money] @@ -491,7 +491,7 @@
  6182. 132.12 s [really-safe-money] let maxBoundI :: Integer
  6183. 132.12 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  6184. 132.12 s [really-safe-money] r :: Integer
  6185. 132.12 s [really-safe-money] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  6186. 132.12 s [really-safe-money] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  6187. 132.12 s [really-safe-money] in if r > maxBoundI
  6188. 132.12 s [really-safe-money] then Nothing
  6189. 132.12 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6190. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  6191. 132.12 s [really-safe-money] @@ -492,7 +492,7 @@
  6192. 132.12 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  6193. 132.12 s [really-safe-money] r :: Integer
  6194. 132.12 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  6195. 132.12 s [really-safe-money] - in if r > maxBoundI
  6196. 132.12 s [really-safe-money] + in if True
  6197. 132.12 s [really-safe-money] then Nothing
  6198. 132.12 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6199. 132.12 s [really-safe-money]
  6200. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
  6201. 132.12 s [really-safe-money] @@ -492,7 +492,7 @@
  6202. 132.12 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  6203. 132.12 s [really-safe-money] r :: Integer
  6204. 132.12 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  6205. 132.12 s [really-safe-money] - in if r > maxBoundI
  6206. 132.12 s [really-safe-money] + in if False
  6207. 132.12 s [really-safe-money] then Nothing
  6208. 132.12 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6209. 132.12 s [really-safe-money]
  6210. 132.12 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
  6211. 132.12 s [really-safe-money] @@ -492,7 +492,7 @@
  6212. 132.12 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  6213. 132.12 s [really-safe-money] r :: Integer
  6214. 132.12 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  6215. 132.12 s [really-safe-money] - in if r > maxBoundI
  6216. 132.12 s [really-safe-money] + in if not (r > maxBoundI)
  6217. 132.12 s [really-safe-money] then Nothing
  6218. 132.12 s [really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6219. 132.12 s [really-safe-money]
  6220. 132.12 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:495:7-66
  6221. 132.12 s [really-safe-money] @@ -492,9 +492,9 @@
  6222. 132.12 s [really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
  6223. 132.12 s [really-safe-money] r :: Integer
  6224. 132.12 s [really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  6225. 132.12 s [really-safe-money] - in if r > maxBoundI
  6226. 132.12 s [really-safe-money] - then Nothing
  6227. 132.12 s [really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6228. 132.12 s [really-safe-money] + in if r > maxBoundI
  6229. 132.12 s [really-safe-money] + then Nothing
  6230. 132.12 s [really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  6231. 132.12 s [really-safe-money]
  6232. 132.12 s [really-safe-money] -- | Add two amounts of money.
  6233. 132.12 s [really-safe-money] --
  6234. 132.12 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
  6235. 132.12 s [really-safe-money] @@ -247,7 +247,7 @@
  6236. 132.12 s [really-safe-money] -- >>> zero
  6237. 132.12 s [really-safe-money] -- Amount 0
  6238. 132.12 s [really-safe-money] zero :: Amount
  6239. 132.12 s [really-safe-money] -zero = Amount 0
  6240. 132.12 s [really-safe-money] +zero = Amount 1
  6241. 132.12 s [really-safe-money]
  6242. 132.12 s [really-safe-money] -- | Turn an amount into a number of minimal quantisations.
  6243. 132.12 s [really-safe-money] --
  6244. 132.12 s [really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
  6245. 132.12 s [really-safe-money] @@ -658,7 +658,7 @@
  6246. 132.12 s [really-safe-money] -- | The amount and the real rate that was used, considering the 'Rounding'
  6247. 132.12 s [really-safe-money] (Maybe Amount, Ratio Natural)
  6248. 132.12 s [really-safe-money] fraction _ (Amount 0) f = (Just zero, f)
  6249. 132.12 s [really-safe-money] -fraction _ _ 0 = (Just zero, 0)
  6250. 132.12 s [really-safe-money] +fraction _ _ 0 = (Just zero, 1)
  6251. 132.12 s [really-safe-money] fraction r (Amount a) f =
  6252. 132.12 s [really-safe-money] let amountAsRatio :: Ratio Natural
  6253. 132.12 s [really-safe-money] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  6254. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  6255. 132.12 s [really-safe-money] @@ -678,7 +678,7 @@
  6256. 132.12 s [really-safe-money] maxBoundN :: Natural
  6257. 132.12 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6258. 132.12 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6259. 132.12 s [really-safe-money] - in ( if roundedResult > maxBoundN
  6260. 132.12 s [really-safe-money] + in ( if True
  6261. 132.12 s [really-safe-money] then Nothing
  6262. 132.12 s [really-safe-money] else Just result,
  6263. 132.12 s [really-safe-money] actualRate
  6264. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
  6265. 132.12 s [really-safe-money] @@ -678,7 +678,7 @@
  6266. 132.12 s [really-safe-money] maxBoundN :: Natural
  6267. 132.12 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6268. 132.12 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6269. 132.12 s [really-safe-money] - in ( if roundedResult > maxBoundN
  6270. 132.12 s [really-safe-money] + in ( if False
  6271. 132.12 s [really-safe-money] then Nothing
  6272. 132.12 s [really-safe-money] else Just result,
  6273. 132.12 s [really-safe-money] actualRate
  6274. 132.12 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
  6275. 132.12 s [really-safe-money] @@ -678,7 +678,7 @@
  6276. 132.12 s [really-safe-money] maxBoundN :: Natural
  6277. 132.12 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6278. 132.12 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6279. 132.12 s [really-safe-money] - in ( if roundedResult > maxBoundN
  6280. 132.12 s [really-safe-money] + in ( if not (roundedResult > maxBoundN)
  6281. 132.12 s [really-safe-money] then Nothing
  6282. 132.12 s [really-safe-money] else Just result,
  6283. 132.12 s [really-safe-money] actualRate
  6284. 132.12 s [really-safe-money] added mutation CondFlip at src/Money/Amount.hs:681:9-27
  6285. 132.12 s [really-safe-money] @@ -678,9 +678,9 @@
  6286. 132.12 s [really-safe-money] maxBoundN :: Natural
  6287. 132.12 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6288. 132.12 s [really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  6289. 132.12 s [really-safe-money] - in ( if roundedResult > maxBoundN
  6290. 132.12 s [really-safe-money] - then Nothing
  6291. 132.12 s [really-safe-money] - else Just result,
  6292. 132.12 s [really-safe-money] + in ( if roundedResult > maxBoundN
  6293. 132.12 s [really-safe-money] + then Nothing
  6294. 132.12 s [really-safe-money] + else Just result,
  6295. 132.12 s [really-safe-money] actualRate
  6296. 132.12 s [really-safe-money] )
  6297. 132.12 s [really-safe-money]
  6298. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  6299. 132.12 s [really-safe-money] @@ -803,4 +803,4 @@
  6300. 132.12 s [really-safe-money]
  6301. 132.12 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6302. 132.12 s [really-safe-money] validateStrictlyPositive :: Amount -> Validation
  6303. 132.12 s [really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6304. 132.12 s [really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  6305. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
  6306. 132.12 s [really-safe-money] @@ -803,4 +803,4 @@
  6307. 132.12 s [really-safe-money]
  6308. 132.12 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6309. 132.12 s [really-safe-money] validateStrictlyPositive :: Amount -> Validation
  6310. 132.12 s [really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6311. 132.12 s [really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  6312. 132.12 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
  6313. 132.12 s [really-safe-money] @@ -803,4 +803,4 @@
  6314. 132.12 s [really-safe-money]
  6315. 132.12 s [really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  6316. 132.12 s [really-safe-money] validateStrictlyPositive :: Amount -> Validation
  6317. 132.12 s [really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  6318. 132.12 s [really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  6319. 132.12 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  6320. 132.13 s [really-safe-money] @@ -604,7 +604,7 @@
  6321. 132.13 s [really-safe-money] case ad of
  6322. 132.13 s [really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6323. 132.13 s [really-safe-money] declare "The larger chunks are larger" $
  6324. 132.13 s [really-safe-money] - a1 > a2
  6325. 132.13 s [really-safe-money] + True
  6326. 132.13 s [really-safe-money] _ -> valid
  6327. 132.13 s [really-safe-money] ]
  6328. 132.13 s [really-safe-money]
  6329. 132.13 s [really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
  6330. 132.13 s [really-safe-money] @@ -604,7 +604,7 @@
  6331. 132.13 s [really-safe-money] case ad of
  6332. 132.13 s [really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6333. 132.13 s [really-safe-money] declare "The larger chunks are larger" $
  6334. 132.13 s [really-safe-money] - a1 > a2
  6335. 132.13 s [really-safe-money] + False
  6336. 132.13 s [really-safe-money] _ -> valid
  6337. 132.13 s [really-safe-money] ]
  6338. 132.13 s [really-safe-money]
  6339. 132.13 s [really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
  6340. 132.13 s [really-safe-money] @@ -604,7 +604,7 @@
  6341. 132.13 s [really-safe-money] case ad of
  6342. 132.13 s [really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
  6343. 132.13 s [really-safe-money] declare "The larger chunks are larger" $
  6344. 132.13 s [really-safe-money] - a1 > a2
  6345. 132.13 s [really-safe-money] + not (a1 > a2)
  6346. 132.13 s [really-safe-money] _ -> valid
  6347. 132.13 s [really-safe-money] ]
  6348. 132.13 s [really-safe-money]
  6349. 132.13 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  6350. 132.13 s [really-safe-money] @@ -600,13 +600,7 @@
  6351. 132.13 s [really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  6352. 132.13 s [really-safe-money] validate ad =
  6353. 132.13 s [really-safe-money] mconcat
  6354. 132.13 s [really-safe-money] - [ genericValidate ad,
  6355. 132.13 s [really-safe-money] - case ad of
  6356. 132.13 s [really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  6357. 132.13 s [really-safe-money] - declare "The larger chunks are larger" $
  6358. 132.13 s [really-safe-money] - a1 > a2
  6359. 132.13 s [really-safe-money] - _ -> valid
  6360. 132.13 s [really-safe-money] - ]
  6361. 132.13 s [really-safe-money] + []
  6362. 132.13 s [really-safe-money]
  6363. 132.13 s [really-safe-money] instance (NFData amount) => NFData (Distribution amount)
  6364. 132.13 s [really-safe-money]
  6365. 132.13 s [really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
  6366. 132.13 s [really-safe-money] @@ -600,13 +600,13 @@
  6367. 132.13 s [really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  6368. 132.13 s [really-safe-money] validate ad =
  6369. 132.13 s [really-safe-money] mconcat
  6370. 132.13 s [really-safe-money] - [ genericValidate ad,
  6371. 132.13 s [really-safe-money] - case ad of
  6372. 132.13 s [really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  6373. 132.13 s [really-safe-money] - declare "The larger chunks are larger" $
  6374. 132.13 s [really-safe-money] - a1 > a2
  6375. 132.13 s [really-safe-money] - _ -> valid
  6376. 132.13 s [really-safe-money] - ]
  6377. 132.13 s [really-safe-money] + [ genericValidate ad,
  6378. 132.13 s [really-safe-money] + case ad of
  6379. 132.13 s [really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
  6380. 132.13 s [really-safe-money] + declare "The larger chunks are larger" $
  6381. 132.13 s [really-safe-money] + a1 > a2
  6382. 132.13 s [really-safe-money] + _ -> valid
  6383. 132.13 s [really-safe-money] + ]
  6384. 132.13 s [really-safe-money]
  6385. 132.13 s [really-safe-money] instance (NFData amount) => NFData (Distribution amount)
  6386. 132.13 s [really-safe-money]
  6387. 132.13 s [really-safe-money] added 76 mutations
  6388. 133.21 s [genvalidity-sydtest] Phase: updateAutotoolsGnuConfigScriptsPhase
  6389. 133.23 s [genvalidity-sydtest] Phase: configurePhase
  6390. 133.27 s [genvalidity-sydtest] configureFlags: --verbose --prefix=/nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc/share/doc/genvalidity-sydtest-1.0.1.0 --with-gcc=gcc --package-db=/build/tmp.RricPHhDAb/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 --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-option=-Wall --ghc-option=-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
  6391. 133.28 s [genvalidity-sydtest] Using Parsec parser
  6392. 133.28 s [genvalidity-sydtest] Configuring genvalidity-sydtest-1.0.1.0...
  6393. 134.38 s [genvalidity-sydtest] Dependency QuickCheck: using QuickCheck-2.15.0.1
  6394. 134.58 s [genvalidity-sydtest] Dependency base >=4.7 && <5: using base-4.20.2.0
  6395. 134.58 s [genvalidity-sydtest] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
  6396. 134.58 s [genvalidity-sydtest] Dependency sydtest: using sydtest-0.23.0.2
  6397. 134.58 s [genvalidity-sydtest] Dependency QuickCheck: using QuickCheck-2.15.0.1
  6398. 134.58 s [genvalidity-sydtest] Dependency base >=4.7 && <5: using base-4.20.2.0
  6399. 134.58 s [genvalidity-sydtest] Dependency genvalidity: using genvalidity-1.1.1.0
  6400. 134.58 s [genvalidity-sydtest] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  6401. 134.58 s [genvalidity-sydtest] Dependency sydtest: using sydtest-0.23.0.2
  6402. 134.58 s [genvalidity-sydtest] Source component graph:
  6403. 134.58 s [genvalidity-sydtest] component lib
  6404. 134.58 s [genvalidity-sydtest] component test:genvalidity-sydtest-test dependency lib
  6405. 134.58 s [genvalidity-sydtest] Configured component graph:
  6406. 134.58 s [genvalidity-sydtest] component genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6407. 134.58 s [genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  6408. 134.58 s [genvalidity-sydtest] include base-4.20.2.0-64da
  6409. 134.58 s [genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  6410. 134.58 s [genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  6411. 134.58 s [genvalidity-sydtest] component genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
  6412. 134.58 s [genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  6413. 134.58 s [genvalidity-sydtest] include base-4.20.2.0-64da
  6414. 134.58 s [genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  6415. 134.58 s [genvalidity-sydtest] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6416. 134.58 s [genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  6417. 134.58 s [genvalidity-sydtest] Linked component graph:
  6418. 134.58 s [genvalidity-sydtest] unit genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6419. 134.58 s [genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  6420. 134.58 s [genvalidity-sydtest] include base-4.20.2.0-64da
  6421. 134.58 s [genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  6422. 134.58 s [genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  6423. 134.58 s [genvalidity-sydtest] Test.Syd.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity,Test.Syd.Validity.Applicative=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Applicative,Test.Syd.Validity.Arbitrary=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Arbitrary,Test.Syd.Validity.Eq=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Eq,Test.Syd.Validity.Functions=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions,Test.Syd.Validity.Functions.CanFail=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.CanFail,Test.Syd.Validity.Functions.Equivalence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Equivalence,Test.Syd.Validity.Functions.Idempotence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Idempotence,Test.Syd.Validity.Functions.Inverse=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Inverse,Test.Syd.Validity.Functions.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Validity,Test.Syd.Validity.Functor=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functor,Test.Syd.Validity.GenValidity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity,Test.Syd.Validity.GenValidity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity.Property,Test.Syd.Validity.Monad=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monad,Test.Syd.Validity.Monoid=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monoid,Test.Syd.Validity.Operations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations,Test.Syd.Validity.Operations.Associativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Associativity,Test.Syd.Validity.Operations.Commutativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Commutativity,Test.Syd.Validity.Operations.Identity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Identity,Test.Syd.Validity.Ord=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Ord,Test.Syd.Validity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property,Test.Syd.Validity.Property.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property.Utils,Test.Syd.Validity.Relations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations,Test.Syd.Validity.Relations.Antireflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antireflexivity,Test.Syd.Validity.Relations.Antisymmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antisymmetry,Test.Syd.Validity.Relations.Reflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Reflexivity,Test.Syd.Validity.Relations.Symmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Symmetry,Test.Syd.Validity.Relations.Transitivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Transitivity,Test.Syd.Validity.Show=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Show,Test.Syd.Validity.Shrinking=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking,Test.Syd.Validity.Shrinking.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking.Property,Test.Syd.Validity.Types=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Types,Test.Syd.Validity.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Utils
  6424. 134.58 s [genvalidity-sydtest] unit genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
  6425. 134.58 s [genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  6426. 134.58 s [genvalidity-sydtest] include base-4.20.2.0-64da
  6427. 134.58 s [genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  6428. 134.58 s [genvalidity-sydtest] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6429. 134.58 s [genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  6430. 134.58 s [genvalidity-sydtest] Ready component graph:
  6431. 134.58 s [genvalidity-sydtest] definite genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6432. 134.58 s [genvalidity-sydtest] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  6433. 134.58 s [genvalidity-sydtest] depends base-4.20.2.0-64da
  6434. 134.58 s [genvalidity-sydtest] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  6435. 134.58 s [genvalidity-sydtest] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  6436. 134.58 s [genvalidity-sydtest] definite genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
  6437. 134.58 s [genvalidity-sydtest] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  6438. 134.58 s [genvalidity-sydtest] depends base-4.20.2.0-64da
  6439. 134.58 s [genvalidity-sydtest] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  6440. 134.58 s [genvalidity-sydtest] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6441. 134.58 s [genvalidity-sydtest] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  6442. 134.58 s [genvalidity-sydtest] Using Cabal-3.12.1.0 compiled by ghc-9.10
  6443. 134.58 s [genvalidity-sydtest] Using compiler: ghc-9.10.3
  6444. 134.58 s [genvalidity-sydtest] Using install prefix:
  6445. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0
  6446. 134.58 s [genvalidity-sydtest] Executables installed in:
  6447. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/bin
  6448. 134.58 s [genvalidity-sydtest] Libraries installed in:
  6449. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  6450. 134.58 s [genvalidity-sydtest] Dynamic Libraries installed in:
  6451. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  6452. 134.58 s [genvalidity-sydtest] Private executables installed in:
  6453. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
  6454. 134.58 s [genvalidity-sydtest] Data files installed in:
  6455. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
  6456. 134.58 s [genvalidity-sydtest] Documentation installed in:
  6457. 134.58 s [genvalidity-sydtest] /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc/share/doc/genvalidity-sydtest-1.0.1.0
  6458. 134.58 s [genvalidity-sydtest] Configuration files installed in:
  6459. 134.58 s [genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/etc
  6460. 134.58 s [genvalidity-sydtest] No alex found
  6461. 134.58 s [genvalidity-sydtest] Using ar found on system at:
  6462. 134.58 s [genvalidity-sydtest] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  6463. 134.58 s [genvalidity-sydtest] No c2hs found
  6464. 134.58 s [genvalidity-sydtest] No cpphs found
  6465. 134.58 s [genvalidity-sydtest] No doctest found
  6466. 134.58 s [genvalidity-sydtest] Using gcc version 14.3.0 given by user at:
  6467. 134.58 s [genvalidity-sydtest] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  6468. 134.58 s [genvalidity-sydtest] Using ghc version 9.10.3 found on system at:
  6469. 134.58 s [genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  6470. 134.58 s [genvalidity-sydtest] Using ghc-pkg version 9.10.3 found on system at:
  6471. 134.58 s [genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  6472. 134.58 s [genvalidity-sydtest] No ghcjs found
  6473. 134.58 s [genvalidity-sydtest] No ghcjs-pkg found
  6474. 134.58 s [genvalidity-sydtest] No greencard found
  6475. 134.58 s [genvalidity-sydtest] Using haddock version 2.31.1 found on system at:
  6476. 134.58 s [really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.p_o )
  6477. 134.58 s [really-safe-money] mutation: instrumenting Money.MultiAmount
  6478. 134.58 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  6479. 134.58 s [really-safe-money] @@ -165,7 +165,7 @@
  6480. 134.58 s [really-safe-money] maxBoundN :: Natural
  6481. 134.58 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6482. 134.58 s [really-safe-money] actualResult =
  6483. 134.58 s [really-safe-money] - if roundedResult > maxBoundN
  6484. 134.58 s [really-safe-money] + if True
  6485. 134.58 s [really-safe-money] then Nothing
  6486. 134.58 s [really-safe-money] else Just (fromIntegral roundedResult)
  6487. 134.58 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  6488. 134.58 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  6489. 134.58 s [really-safe-money] @@ -165,7 +165,7 @@
  6490. 134.58 s [really-safe-money] maxBoundN :: Natural
  6491. 134.58 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6492. 134.58 s [really-safe-money] actualResult =
  6493. 134.58 s [really-safe-money] - if roundedResult > maxBoundN
  6494. 134.58 s [really-safe-money] + if False
  6495. 134.58 s [really-safe-money] then Nothing
  6496. 134.58 s [really-safe-money] else Just (fromIntegral roundedResult)
  6497. 134.58 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  6498. 134.58 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
  6499. 134.58 s [really-safe-money] @@ -165,7 +165,7 @@
  6500. 134.58 s [really-safe-money] maxBoundN :: Natural
  6501. 134.58 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6502. 134.58 s [really-safe-money] actualResult =
  6503. 134.58 s [really-safe-money] - if roundedResult > maxBoundN
  6504. 134.58 s [really-safe-money] + if not (roundedResult > maxBoundN)
  6505. 134.59 s [really-safe-money] then Nothing
  6506. 134.59 s [really-safe-money] else Just (fromIntegral roundedResult)
  6507. 134.59 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  6508. 134.59 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
  6509. 134.59 s [really-safe-money] @@ -165,9 +165,9 @@
  6510. 134.59 s [really-safe-money] maxBoundN :: Natural
  6511. 134.59 s [really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
  6512. 134.59 s [really-safe-money] actualResult =
  6513. 134.59 s [really-safe-money] - if roundedResult > maxBoundN
  6514. 134.59 s [really-safe-money] - then Nothing
  6515. 134.59 s [really-safe-money] - else Just (fromIntegral roundedResult)
  6516. 134.59 s [really-safe-money] + if roundedResult > maxBoundN
  6517. 134.59 s [really-safe-money] + then Nothing
  6518. 134.59 s [really-safe-money] + else Just (fromIntegral roundedResult)
  6519. 134.59 s [really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  6520. 134.59 s [really-safe-money] LT -> RoundedDown
  6521. 134.59 s [really-safe-money] EQ -> DidNotRound
  6522. 134.59 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  6523. 134.59 s [really-safe-money] @@ -116,7 +116,7 @@
  6524. 134.59 s [really-safe-money] Just a -> do
  6525. 134.59 s [really-safe-money] r <- Amount.subtract a amount
  6526. 134.59 s [really-safe-money] Just $
  6527. 134.59 s [really-safe-money] - if r == Amount.zero
  6528. 134.59 s [really-safe-money] + if True
  6529. 134.59 s [really-safe-money] then M.delete currency m
  6530. 134.59 s [really-safe-money] else M.insert currency r m
  6531. 134.59 s [really-safe-money]
  6532. 134.59 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  6533. 134.59 s [really-safe-money] @@ -116,7 +116,7 @@
  6534. 134.59 s [really-safe-money] Just a -> do
  6535. 134.59 s [really-safe-money] r <- Amount.subtract a amount
  6536. 134.59 s [really-safe-money] Just $
  6537. 134.59 s [really-safe-money] - if r == Amount.zero
  6538. 134.59 s [really-safe-money] + if False
  6539. 134.59 s [really-safe-money] then M.delete currency m
  6540. 134.59 s [really-safe-money] else M.insert currency r m
  6541. 134.59 s [really-safe-money]
  6542. 134.59 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
  6543. 134.59 s [really-safe-money] @@ -116,7 +116,7 @@
  6544. 134.59 s [really-safe-money] Just a -> do
  6545. 134.59 s [really-safe-money] r <- Amount.subtract a amount
  6546. 134.59 s [really-safe-money] Just $
  6547. 134.59 s [really-safe-money] - if r == Amount.zero
  6548. 134.59 s [really-safe-money] + if not (r == Amount.zero)
  6549. 134.59 s [really-safe-money] then M.delete currency m
  6550. 134.59 s [really-safe-money] else M.insert currency r m
  6551. 134.59 s [really-safe-money]
  6552. 134.59 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
  6553. 134.59 s [really-safe-money] @@ -116,9 +116,9 @@
  6554. 134.59 s [really-safe-money] Just a -> do
  6555. 134.59 s [really-safe-money] r <- Amount.subtract a amount
  6556. 134.59 s [really-safe-money] Just $
  6557. 134.59 s [really-safe-money] - if r == Amount.zero
  6558. 134.59 s [really-safe-money] - then M.delete currency m
  6559. 134.59 s [really-safe-money] - else M.insert currency r m
  6560. 134.59 s [really-safe-money] + if r == Amount.zero
  6561. 134.59 s [really-safe-money] + then M.delete currency m
  6562. 134.59 s [really-safe-money] + else M.insert currency r m
  6563. 134.59 s [really-safe-money]
  6564. 134.59 s [really-safe-money] -- | Try to convert every amount to one currency.
  6565. 134.59 s [really-safe-money] --
  6566. 134.59 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  6567. 134.59 s [really-safe-money] @@ -103,7 +103,7 @@
  6568. 134.59 s [really-safe-money] Just a -> do
  6569. 134.59 s [really-safe-money] r <- Amount.add a amount
  6570. 134.59 s [really-safe-money] Just $
  6571. 134.59 s [really-safe-money] - if r == Amount.zero
  6572. 134.59 s [really-safe-money] + if True
  6573. 134.59 s [really-safe-money] then M.delete currency m
  6574. 134.59 s [really-safe-money] else M.insert currency r m
  6575. 134.59 s [really-safe-money]
  6576. 134.59 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  6577. 134.59 s [really-safe-money] @@ -103,7 +103,7 @@
  6578. 134.59 s [really-safe-money] Just a -> do
  6579. 134.59 s [really-safe-money] r <- Amount.add a amount
  6580. 134.59 s [really-safe-money] Just $
  6581. 134.59 s [really-safe-money] - if r == Amount.zero
  6582. 134.59 s [really-safe-money] + if False
  6583. 134.59 s [really-safe-money] then M.delete currency m
  6584. 134.59 s [really-safe-money] else M.insert currency r m
  6585. 134.59 s [really-safe-money]
  6586. 134.59 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
  6587. 134.59 s [really-safe-money] @@ -103,7 +103,7 @@
  6588. 134.59 s [really-safe-money] Just a -> do
  6589. 134.59 s [really-safe-money] r <- Amount.add a amount
  6590. 134.59 s [really-safe-money] Just $
  6591. 134.59 s [really-safe-money] - if r == Amount.zero
  6592. 134.59 s [really-safe-money] + if not (r == Amount.zero)
  6593. 134.59 s [really-safe-money] then M.delete currency m
  6594. 134.59 s [really-safe-money] else M.insert currency r m
  6595. 134.59 s [really-safe-money]
  6596. 134.59 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
  6597. 134.59 s [really-safe-money] @@ -103,9 +103,9 @@
  6598. 134.59 s [really-safe-money] Just a -> do
  6599. 134.59 s [really-safe-money] r <- Amount.add a amount
  6600. 134.59 s [really-safe-money] Just $
  6601. 134.59 s [really-safe-money] - if r == Amount.zero
  6602. 134.59 s [really-safe-money] - then M.delete currency m
  6603. 134.59 s [really-safe-money] - else M.insert currency r m
  6604. 134.59 s [really-safe-money] + if r == Amount.zero
  6605. 134.59 s [really-safe-money] + then M.delete currency m
  6606. 134.59 s [really-safe-money] + else M.insert currency r m
  6607. 134.59 s [really-safe-money]
  6608. 134.59 s [really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
  6609. 134.59 s [really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  6610. 134.59 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  6611. 134.59 s [really-safe-money] @@ -70,7 +70,7 @@
  6612. 134.59 s [really-safe-money]
  6613. 134.59 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  6614. 134.59 s [really-safe-money] fromAmount currency amount =
  6615. 134.59 s [really-safe-money] - if amount == Amount.zero
  6616. 134.59 s [really-safe-money] + if True
  6617. 134.59 s [really-safe-money] then zero
  6618. 134.59 s [really-safe-money] else MultiAmount $ M.singleton currency amount
  6619. 134.59 s [really-safe-money]
  6620. 134.59 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  6621. 134.59 s [really-safe-money] @@ -70,7 +70,7 @@
  6622. 134.59 s [really-safe-money]
  6623. 134.59 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  6624. 134.59 s [really-safe-money] fromAmount currency amount =
  6625. 134.59 s [really-safe-money] - if amount == Amount.zero
  6626. 134.59 s [really-safe-money] + if False
  6627. 134.59 s [really-safe-money] then zero
  6628. 134.59 s [really-safe-money] else MultiAmount $ M.singleton currency amount
  6629. 134.59 s [really-safe-money]
  6630. 134.59 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
  6631. 134.59 s [really-safe-money] @@ -70,7 +70,7 @@
  6632. 134.59 s [really-safe-money]
  6633. 134.59 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  6634. 134.59 s [really-safe-money] fromAmount currency amount =
  6635. 134.59 s [really-safe-money] - if amount == Amount.zero
  6636. 134.59 s [really-safe-money] + if not (amount == Amount.zero)
  6637. 134.59 s [really-safe-money] then zero
  6638. 134.59 s [really-safe-money] else MultiAmount $ M.singleton currency amount
  6639. 134.59 s [really-safe-money]
  6640. 134.59 s [really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
  6641. 134.59 s [really-safe-money] @@ -70,9 +70,9 @@
  6642. 134.59 s [really-safe-money]
  6643. 134.59 s [really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
  6644. 134.59 s [really-safe-money] fromAmount currency amount =
  6645. 134.59 s [really-safe-money] - if amount == Amount.zero
  6646. 134.59 s [really-safe-money] - then zero
  6647. 134.59 s [really-safe-money] - else MultiAmount $ M.singleton currency amount
  6648. 134.59 s [really-safe-money] + if amount == Amount.zero
  6649. 134.59 s [really-safe-money] + then zero
  6650. 134.59 s [really-safe-money] + else MultiAmount $ M.singleton currency amount
  6651. 134.59 s [really-safe-money]
  6652. 134.59 s [really-safe-money] -- | No money of any currency
  6653. 134.59 s [really-safe-money] zero :: MultiAmount currency
  6654. 134.59 s [genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  6655. 134.59 s [genvalidity-sydtest] No happy found
  6656. 134.59 s [genvalidity-sydtest] Using haskell-suite found on system at: haskell-suite-dummy-location
  6657. 134.59 s [genvalidity-sydtest] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  6658. 134.59 s [genvalidity-sydtest] No hmake found
  6659. 134.59 s [genvalidity-sydtest] Using hpc version 0.69 found on system at:
  6660. 134.59 s [genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  6661. 134.59 s [genvalidity-sydtest] Using hsc2hs version 0.68.10 found on system at:
  6662. 134.59 s [genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  6663. 134.59 s [genvalidity-sydtest] Using hscolour version 1.25 found on system at:
  6664. 134.59 s [genvalidity-sydtest] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  6665. 134.59 s [genvalidity-sydtest] No jhc found
  6666. 134.59 s [genvalidity-sydtest] Using ld found on system at:
  6667. 134.59 s [genvalidity-sydtest] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  6668. 134.59 s [genvalidity-sydtest] No pkg-config found
  6669. 134.59 s [genvalidity-sydtest] Using runghc version 9.10.3 found on system at:
  6670. 134.59 s [genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  6671. 134.59 s [genvalidity-sydtest] Using strip version 2.44 found on system at:
  6672. 134.59 s [genvalidity-sydtest] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  6673. 134.59 s [genvalidity-sydtest] Using tar found on system at:
  6674. 134.60 s [genvalidity-sydtest] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  6675. 134.60 s [genvalidity-sydtest] No uhc found
  6676. 134.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  6677. 134.60 s [really-safe-money] @@ -63,7 +63,7 @@
  6678. 134.60 s [really-safe-money] [ genericValidate ma,
  6679. 134.60 s [really-safe-money] decorateMap m $ \_ a ->
  6680. 134.60 s [really-safe-money] declare "The amount is not zero" $
  6681. 134.60 s [really-safe-money] - a /= Amount.zero
  6682. 134.60 s [really-safe-money] + True
  6683. 134.60 s [really-safe-money] ]
  6684. 134.60 s [really-safe-money]
  6685. 134.60 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  6686. 134.60 s [really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  6687. 134.60 s [really-safe-money] @@ -63,7 +63,7 @@
  6688. 134.60 s [really-safe-money] [ genericValidate ma,
  6689. 134.60 s [really-safe-money] decorateMap m $ \_ a ->
  6690. 134.60 s [really-safe-money] declare "The amount is not zero" $
  6691. 134.60 s [really-safe-money] - a /= Amount.zero
  6692. 134.60 s [really-safe-money] + False
  6693. 134.60 s [really-safe-money] ]
  6694. 134.60 s [really-safe-money]
  6695. 134.60 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  6696. 134.60 s [really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
  6697. 134.60 s [really-safe-money] @@ -63,7 +63,7 @@
  6698. 134.60 s [really-safe-money] [ genericValidate ma,
  6699. 134.60 s [really-safe-money] decorateMap m $ \_ a ->
  6700. 134.60 s [really-safe-money] declare "The amount is not zero" $
  6701. 134.60 s [really-safe-money] - a /= Amount.zero
  6702. 134.60 s [really-safe-money] + not (a /= Amount.zero)
  6703. 134.60 s [really-safe-money] ]
  6704. 134.60 s [really-safe-money]
  6705. 134.60 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  6706. 134.60 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  6707. 134.60 s [really-safe-money] @@ -60,11 +60,7 @@
  6708. 134.60 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  6709. 134.60 s [really-safe-money] validate ma@(MultiAmount m) =
  6710. 134.60 s [really-safe-money] mconcat
  6711. 134.60 s [really-safe-money] - [ genericValidate ma,
  6712. 134.60 s [really-safe-money] - decorateMap m $ \_ a ->
  6713. 134.60 s [really-safe-money] - declare "The amount is not zero" $
  6714. 134.60 s [really-safe-money] - a /= Amount.zero
  6715. 134.60 s [really-safe-money] - ]
  6716. 134.60 s [really-safe-money] + []
  6717. 134.60 s [really-safe-money]
  6718. 134.60 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  6719. 134.60 s [really-safe-money]
  6720. 134.60 s [really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  6721. 134.60 s [really-safe-money] @@ -60,11 +60,11 @@
  6722. 134.60 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  6723. 134.60 s [really-safe-money] validate ma@(MultiAmount m) =
  6724. 134.60 s [really-safe-money] mconcat
  6725. 134.60 s [really-safe-money] - [ genericValidate ma,
  6726. 134.60 s [really-safe-money] - decorateMap m $ \_ a ->
  6727. 134.60 s [really-safe-money] - declare "The amount is not zero" $
  6728. 134.60 s [really-safe-money] - a /= Amount.zero
  6729. 134.60 s [really-safe-money] - ]
  6730. 134.60 s [really-safe-money] + [ genericValidate ma,
  6731. 134.60 s [really-safe-money] + decorateMap m $ \_ a ->
  6732. 134.60 s [really-safe-money] + declare "The amount is not zero" $
  6733. 134.60 s [really-safe-money] + a /= Amount.zero
  6734. 134.60 s [really-safe-money] + ]
  6735. 134.60 s [really-safe-money]
  6736. 134.60 s [really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
  6737. 134.60 s [really-safe-money]
  6738. 134.60 s [really-safe-money] added 21 mutations
  6739. 134.96 s [genvalidity-sydtest] Phase: buildPhase
  6740. 135.14 s [genvalidity-sydtest] Preprocessing library for genvalidity-sydtest-1.0.1.0...
  6741. 135.14 s [genvalidity-sydtest] Building library for genvalidity-sydtest-1.0.1.0...
  6742. 135.39 s [genvalidity-sydtest] [ 1 of 34] Compiling Paths_genvalidity_sydtest ( dist/build/autogen/Paths_genvalidity_sydtest.hs, dist/build/Paths_genvalidity_sydtest.o, dist/build/Paths_genvalidity_sydtest.dyn_o )
  6743. 135.49 s [really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.p_o )
  6744. 135.50 s [really-safe-money] mutation: instrumenting Money.AmountOf
  6745. 135.51 s [really-safe-money] added 0 mutations
  6746. 135.66 s [genvalidity-sydtest] [ 2 of 34] Compiling Test.Syd.Validity.Functions.Idempotence ( src/Test/Syd/Validity/Functions/Idempotence.hs, dist/build/Test/Syd/Validity/Functions/Idempotence.o, dist/build/Test/Syd/Validity/Functions/Idempotence.dyn_o )
  6747. 135.67 s [genvalidity-sydtest] [ 3 of 34] Compiling Test.Syd.Validity.Operations.Associativity ( src/Test/Syd/Validity/Operations/Associativity.hs, dist/build/Test/Syd/Validity/Operations/Associativity.o, dist/build/Test/Syd/Validity/Operations/Associativity.dyn_o )
  6748. 135.82 s [genvalidity-sydtest] [ 4 of 34] Compiling Test.Syd.Validity.Operations.Commutativity ( src/Test/Syd/Validity/Operations/Commutativity.hs, dist/build/Test/Syd/Validity/Operations/Commutativity.o, dist/build/Test/Syd/Validity/Operations/Commutativity.dyn_o )
  6749. 135.82 s [genvalidity-sydtest] [ 5 of 34] Compiling Test.Syd.Validity.Operations.Identity ( src/Test/Syd/Validity/Operations/Identity.hs, dist/build/Test/Syd/Validity/Operations/Identity.o, dist/build/Test/Syd/Validity/Operations/Identity.dyn_o )
  6750. 135.84 s [genvalidity-sydtest] [ 6 of 34] Compiling Test.Syd.Validity.Operations ( src/Test/Syd/Validity/Operations.hs, dist/build/Test/Syd/Validity/Operations.o, dist/build/Test/Syd/Validity/Operations.dyn_o )
  6751. 135.92 s [genvalidity-sydtest] [ 7 of 34] Compiling Test.Syd.Validity.Property.Utils ( src/Test/Syd/Validity/Property/Utils.hs, dist/build/Test/Syd/Validity/Property/Utils.o, dist/build/Test/Syd/Validity/Property/Utils.dyn_o )
  6752. 135.92 s [genvalidity-sydtest] [ 8 of 34] Compiling Test.Syd.Validity.GenValidity.Property ( src/Test/Syd/Validity/GenValidity/Property.hs, dist/build/Test/Syd/Validity/GenValidity/Property.o, dist/build/Test/Syd/Validity/GenValidity/Property.dyn_o )
  6753. 135.92 s [genvalidity-sydtest] [ 9 of 34] Compiling Test.Syd.Validity.Functions.Validity ( src/Test/Syd/Validity/Functions/Validity.hs, dist/build/Test/Syd/Validity/Functions/Validity.o, dist/build/Test/Syd/Validity/Functions/Validity.dyn_o )
  6754. 135.92 s [genvalidity-sydtest] [10 of 34] Compiling Test.Syd.Validity.Relations.Antireflexivity ( src/Test/Syd/Validity/Relations/Antireflexivity.hs, dist/build/Test/Syd/Validity/Relations/Antireflexivity.o, dist/build/Test/Syd/Validity/Relations/Antireflexivity.dyn_o )
  6755. 135.92 s [genvalidity-sydtest] [11 of 34] Compiling Test.Syd.Validity.Relations.Antisymmetry ( src/Test/Syd/Validity/Relations/Antisymmetry.hs, dist/build/Test/Syd/Validity/Relations/Antisymmetry.o, dist/build/Test/Syd/Validity/Relations/Antisymmetry.dyn_o )
  6756. 135.92 s [genvalidity-sydtest] [12 of 34] Compiling Test.Syd.Validity.Relations.Reflexivity ( src/Test/Syd/Validity/Relations/Reflexivity.hs, dist/build/Test/Syd/Validity/Relations/Reflexivity.o, dist/build/Test/Syd/Validity/Relations/Reflexivity.dyn_o )
  6757. 135.92 s [genvalidity-sydtest] [13 of 34] Compiling Test.Syd.Validity.Relations.Symmetry ( src/Test/Syd/Validity/Relations/Symmetry.hs, dist/build/Test/Syd/Validity/Relations/Symmetry.o, dist/build/Test/Syd/Validity/Relations/Symmetry.dyn_o )
  6758. 135.92 s [genvalidity-sydtest] [14 of 34] Compiling Test.Syd.Validity.Relations.Transitivity ( src/Test/Syd/Validity/Relations/Transitivity.hs, dist/build/Test/Syd/Validity/Relations/Transitivity.o, dist/build/Test/Syd/Validity/Relations/Transitivity.dyn_o )
  6759. 135.92 s [genvalidity-sydtest] [15 of 34] Compiling Test.Syd.Validity.Relations ( src/Test/Syd/Validity/Relations.hs, dist/build/Test/Syd/Validity/Relations.o, dist/build/Test/Syd/Validity/Relations.dyn_o )
  6760. 135.93 s [genvalidity-sydtest] [16 of 34] Compiling Test.Syd.Validity.Shrinking.Property ( src/Test/Syd/Validity/Shrinking/Property.hs, dist/build/Test/Syd/Validity/Shrinking/Property.o, dist/build/Test/Syd/Validity/Shrinking/Property.dyn_o )
  6761. 135.93 s [genvalidity-sydtest] [17 of 34] Compiling Test.Syd.Validity.Types ( src/Test/Syd/Validity/Types.hs, dist/build/Test/Syd/Validity/Types.o, dist/build/Test/Syd/Validity/Types.dyn_o )
  6762. 135.93 s [genvalidity-sydtest] [18 of 34] Compiling Test.Syd.Validity.Functions.Inverse ( src/Test/Syd/Validity/Functions/Inverse.hs, dist/build/Test/Syd/Validity/Functions/Inverse.o, dist/build/Test/Syd/Validity/Functions/Inverse.dyn_o )
  6763. 135.93 s [genvalidity-sydtest] [19 of 34] Compiling Test.Syd.Validity.Functions.Equivalence ( src/Test/Syd/Validity/Functions/Equivalence.hs, dist/build/Test/Syd/Validity/Functions/Equivalence.o, dist/build/Test/Syd/Validity/Functions/Equivalence.dyn_o )
  6764. 136.20 s [really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.p_o )
  6765. 136.22 s [really-safe-money] mutation: instrumenting Money.Account
  6766. 136.23 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
  6767. 136.23 s [really-safe-money] @@ -418,7 +418,7 @@
  6768. 136.23 s [really-safe-money] multiply :: Int32 -> Account -> Maybe Account
  6769. 136.23 s [really-safe-money] multiply factor account =
  6770. 136.23 s [really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  6771. 136.23 s [really-safe-money] - f = case (compare factor 0, compare account zero) of
  6772. 136.23 s [really-safe-money] + f = case (compare factor 1, compare account zero) of
  6773. 136.23 s [really-safe-money] (EQ, _) -> const zero
  6774. 136.23 s [really-safe-money] (_, EQ) -> const zero
  6775. 136.23 s [really-safe-money] (GT, GT) -> Positive
  6776. 136.23 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  6777. 136.23 s [really-safe-money] @@ -448,7 +448,7 @@
  6778. 136.23 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  6779. 136.23 s [really-safe-money] DistributedZero -> DistributedZero
  6780. 136.23 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  6781. 136.23 s [really-safe-money] - if a >= zero
  6782. 136.23 s [really-safe-money] + if True
  6783. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6784. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6785. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6786. 136.23 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
  6787. 136.23 s [really-safe-money] @@ -448,7 +448,7 @@
  6788. 136.23 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  6789. 136.23 s [really-safe-money] DistributedZero -> DistributedZero
  6790. 136.23 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  6791. 136.23 s [really-safe-money] - if a >= zero
  6792. 136.23 s [really-safe-money] + if False
  6793. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6794. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6795. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6796. 136.23 s [really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
  6797. 136.23 s [really-safe-money] @@ -448,7 +448,7 @@
  6798. 136.23 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  6799. 136.23 s [really-safe-money] DistributedZero -> DistributedZero
  6800. 136.23 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  6801. 136.23 s [really-safe-money] - if a >= zero
  6802. 136.23 s [really-safe-money] + if not (a >= zero)
  6803. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6804. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6805. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6806. 136.23 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:451:11-76
  6807. 136.23 s [really-safe-money] @@ -448,9 +448,9 @@
  6808. 136.23 s [really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  6809. 136.23 s [really-safe-money] DistributedZero -> DistributedZero
  6810. 136.23 s [really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
  6811. 136.23 s [really-safe-money] - if a >= zero
  6812. 136.23 s [really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6813. 136.23 s [really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6814. 136.23 s [really-safe-money] + if a >= zero
  6815. 136.23 s [really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6816. 136.23 s [really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6817. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6818. 136.23 s [really-safe-money] if a >= zero
  6819. 136.23 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  6820. 136.23 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  6821. 136.23 s [really-safe-money] @@ -452,7 +452,7 @@
  6822. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6823. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6824. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6825. 136.23 s [really-safe-money] - if a >= zero
  6826. 136.23 s [really-safe-money] + if True
  6827. 136.23 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  6828. 136.23 s [really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  6829. 136.23 s [really-safe-money]
  6830. 136.23 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
  6831. 136.23 s [really-safe-money] @@ -452,7 +452,7 @@
  6832. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6833. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6834. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6835. 136.23 s [really-safe-money] - if a >= zero
  6836. 136.23 s [really-safe-money] + if False
  6837. 136.23 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  6838. 136.23 s [really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  6839. 136.23 s [really-safe-money]
  6840. 136.23 s [really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
  6841. 136.23 s [really-safe-money] @@ -452,7 +452,7 @@
  6842. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6843. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6844. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6845. 136.23 s [really-safe-money] - if a >= zero
  6846. 136.23 s [really-safe-money] + if not (a >= zero)
  6847. 136.23 s [really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  6848. 136.23 s [really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  6849. 136.23 s [really-safe-money]
  6850. 136.23 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:455:11-136
  6851. 136.23 s [really-safe-money] @@ -452,9 +452,9 @@
  6852. 136.23 s [really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  6853. 136.23 s [really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  6854. 136.23 s [really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  6855. 136.23 s [really-safe-money] - if a >= zero
  6856. 136.23 s [really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  6857. 136.23 s [really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  6858. 136.23 s [really-safe-money] + if a >= zero
  6859. 136.23 s [really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  6860. 136.23 s [really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  6861. 136.23 s [really-safe-money]
  6862. 136.23 s [really-safe-money] type AccountDistribution = Amount.Distribution Account
  6863. 136.23 s [really-safe-money]
  6864. 136.23 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
  6865. 136.23 s [really-safe-money] @@ -492,7 +492,7 @@
  6866. 136.23 s [really-safe-money] fraction rounding account f =
  6867. 136.23 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  6868. 136.23 s [really-safe-money] ro =
  6869. 136.23 s [really-safe-money] - if f >= 0
  6870. 136.23 s [really-safe-money] + if f >= 1
  6871. 136.23 s [really-safe-money] then rounding
  6872. 136.23 s [really-safe-money] else case rounding of
  6873. 136.23 s [really-safe-money] RoundUp -> RoundDown
  6874. 136.23 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  6875. 136.23 s [really-safe-money] @@ -492,7 +492,7 @@
  6876. 136.23 s [really-safe-money] fraction rounding account f =
  6877. 136.23 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  6878. 136.23 s [really-safe-money] ro =
  6879. 136.23 s [really-safe-money] - if f >= 0
  6880. 136.23 s [really-safe-money] + if True
  6881. 136.23 s [really-safe-money] then rounding
  6882. 136.23 s [really-safe-money] else case rounding of
  6883. 136.23 s [really-safe-money] RoundUp -> RoundDown
  6884. 136.23 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
  6885. 136.23 s [really-safe-money] @@ -492,7 +492,7 @@
  6886. 136.23 s [really-safe-money] fraction rounding account f =
  6887. 136.23 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  6888. 136.23 s [really-safe-money] ro =
  6889. 136.23 s [really-safe-money] - if f >= 0
  6890. 136.23 s [really-safe-money] + if False
  6891. 136.23 s [really-safe-money] then rounding
  6892. 136.24 s [really-safe-money] else case rounding of
  6893. 136.24 s [really-safe-money] RoundUp -> RoundDown
  6894. 136.24 s [really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
  6895. 136.24 s [really-safe-money] @@ -492,7 +492,7 @@
  6896. 136.24 s [really-safe-money] fraction rounding account f =
  6897. 136.24 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  6898. 136.24 s [really-safe-money] ro =
  6899. 136.24 s [really-safe-money] - if f >= 0
  6900. 136.24 s [really-safe-money] + if not (f >= 0)
  6901. 136.24 s [really-safe-money] then rounding
  6902. 136.24 s [really-safe-money] else case rounding of
  6903. 136.24 s [really-safe-money] RoundUp -> RoundDown
  6904. 136.24 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:495:9-41
  6905. 136.24 s [really-safe-money] @@ -492,12 +492,12 @@
  6906. 136.24 s [really-safe-money] fraction rounding account f =
  6907. 136.24 s [really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  6908. 136.24 s [really-safe-money] ro =
  6909. 136.24 s [really-safe-money] - if f >= 0
  6910. 136.24 s [really-safe-money] - then rounding
  6911. 136.24 s [really-safe-money] - else case rounding of
  6912. 136.24 s [really-safe-money] - RoundUp -> RoundDown
  6913. 136.24 s [really-safe-money] - RoundDown -> RoundUp
  6914. 136.24 s [really-safe-money] - RoundNearest -> RoundNearest
  6915. 136.24 s [really-safe-money] + if f >= 0
  6916. 136.24 s [really-safe-money] + then rounding
  6917. 136.24 s [really-safe-money] + else case rounding of
  6918. 136.24 s [really-safe-money] + RoundUp -> RoundDown
  6919. 136.24 s [really-safe-money] + RoundDown -> RoundUp
  6920. 136.24 s [really-safe-money] + RoundNearest -> RoundNearest
  6921. 136.24 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  6922. 136.24 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  6923. 136.24 s [really-safe-money] in if f >= 0
  6924. 136.24 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
  6925. 136.24 s [really-safe-money] @@ -500,7 +500,7 @@
  6926. 136.24 s [really-safe-money] RoundNearest -> RoundNearest
  6927. 136.24 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  6928. 136.24 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  6929. 136.24 s [really-safe-money] - in if f >= 0
  6930. 136.24 s [really-safe-money] + in if f >= 1
  6931. 136.24 s [really-safe-money] then (ma, r)
  6932. 136.24 s [really-safe-money] else (negate <$> ma, -r)
  6933. 136.24 s [really-safe-money]
  6934. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  6935. 136.24 s [really-safe-money] @@ -500,7 +500,7 @@
  6936. 136.24 s [really-safe-money] RoundNearest -> RoundNearest
  6937. 136.24 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  6938. 136.24 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  6939. 136.24 s [really-safe-money] - in if f >= 0
  6940. 136.24 s [really-safe-money] + in if True
  6941. 136.24 s [really-safe-money] then (ma, r)
  6942. 136.24 s [really-safe-money] else (negate <$> ma, -r)
  6943. 136.24 s [really-safe-money]
  6944. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
  6945. 136.24 s [really-safe-money] @@ -500,7 +500,7 @@
  6946. 136.24 s [really-safe-money] RoundNearest -> RoundNearest
  6947. 136.24 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  6948. 136.24 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  6949. 136.24 s [really-safe-money] - in if f >= 0
  6950. 136.24 s [really-safe-money] + in if False
  6951. 136.24 s [really-safe-money] then (ma, r)
  6952. 136.24 s [really-safe-money] else (negate <$> ma, -r)
  6953. 136.24 s [really-safe-money]
  6954. 136.24 s [really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
  6955. 136.24 s [really-safe-money] @@ -500,7 +500,7 @@
  6956. 136.24 s [really-safe-money] RoundNearest -> RoundNearest
  6957. 136.24 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  6958. 136.24 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  6959. 136.24 s [really-safe-money] - in if f >= 0
  6960. 136.24 s [really-safe-money] + in if not (f >= 0)
  6961. 136.24 s [really-safe-money] then (ma, r)
  6962. 136.24 s [really-safe-money] else (negate <$> ma, -r)
  6963. 136.24 s [really-safe-money]
  6964. 136.24 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:503:7-33
  6965. 136.24 s [really-safe-money] @@ -500,9 +500,9 @@
  6966. 136.24 s [really-safe-money] RoundNearest -> RoundNearest
  6967. 136.24 s [really-safe-money] (ma, ar) = fractionRatio ro account af
  6968. 136.24 s [really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
  6969. 136.24 s [really-safe-money] - in if f >= 0
  6970. 136.24 s [really-safe-money] - then (ma, r)
  6971. 136.24 s [really-safe-money] - else (negate <$> ma, -r)
  6972. 136.24 s [really-safe-money] + in if f >= 0
  6973. 136.24 s [really-safe-money] + then (ma, r)
  6974. 136.24 s [really-safe-money] + else (negate <$> ma, -r)
  6975. 136.24 s [really-safe-money]
  6976. 136.24 s [really-safe-money] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
  6977. 136.24 s [really-safe-money] --
  6978. 136.24 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
  6979. 136.24 s [really-safe-money] @@ -230,7 +230,7 @@
  6980. 136.24 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  6981. 136.24 s [really-safe-money] fromRational quantisationFactor r =
  6982. 136.24 s [really-safe-money] let r' = Prelude.abs r
  6983. 136.24 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  6984. 136.24 s [really-safe-money] + f = if r >= 1 then Positive else Negative
  6985. 136.24 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  6986. 136.24 s [really-safe-money]
  6987. 136.24 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  6988. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  6989. 136.24 s [really-safe-money] @@ -230,7 +230,7 @@
  6990. 136.24 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  6991. 136.24 s [really-safe-money] fromRational quantisationFactor r =
  6992. 136.24 s [really-safe-money] let r' = Prelude.abs r
  6993. 136.24 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  6994. 136.24 s [really-safe-money] + f = if True then Positive else Negative
  6995. 136.24 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  6996. 136.24 s [really-safe-money]
  6997. 136.24 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  6998. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
  6999. 136.24 s [really-safe-money] @@ -230,7 +230,7 @@
  7000. 136.24 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7001. 136.24 s [really-safe-money] fromRational quantisationFactor r =
  7002. 136.24 s [really-safe-money] let r' = Prelude.abs r
  7003. 136.24 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  7004. 136.24 s [really-safe-money] + f = if False then Positive else Negative
  7005. 136.24 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  7006. 136.24 s [really-safe-money]
  7007. 136.24 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  7008. 136.24 s [really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
  7009. 136.24 s [really-safe-money] @@ -230,7 +230,7 @@
  7010. 136.24 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7011. 136.24 s [really-safe-money] fromRational quantisationFactor r =
  7012. 136.24 s [really-safe-money] let r' = Prelude.abs r
  7013. 136.24 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  7014. 136.24 s [really-safe-money] + f = if not (r >= 0) then Positive else Negative
  7015. 136.24 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  7016. 136.24 s [really-safe-money]
  7017. 136.24 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  7018. 136.24 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:233:11-48
  7019. 136.24 s [really-safe-money] @@ -230,7 +230,7 @@
  7020. 136.24 s [really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7021. 136.24 s [really-safe-money] fromRational quantisationFactor r =
  7022. 136.24 s [really-safe-money] let r' = Prelude.abs r
  7023. 136.24 s [really-safe-money] - f = if r >= 0 then Positive else Negative
  7024. 136.24 s [really-safe-money] + f = if r >= 0 then Positive else Negative
  7025. 136.24 s [really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
  7026. 136.24 s [really-safe-money]
  7027. 136.24 s [really-safe-money] -- | Turn a 'Rational' into an amount of money.
  7028. 136.24 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
  7029. 136.24 s [really-safe-money] @@ -194,7 +194,7 @@
  7030. 136.24 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7031. 136.24 s [really-safe-money] fromDouble quantisationFactor d =
  7032. 136.24 s [really-safe-money] let d' = Prelude.abs d
  7033. 136.24 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  7034. 136.24 s [really-safe-money] + f = if d >= 1 then Positive else Negative
  7035. 136.24 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  7036. 136.24 s [really-safe-money]
  7037. 136.24 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  7038. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  7039. 136.24 s [really-safe-money] @@ -194,7 +194,7 @@
  7040. 136.24 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7041. 136.24 s [really-safe-money] fromDouble quantisationFactor d =
  7042. 136.24 s [really-safe-money] let d' = Prelude.abs d
  7043. 136.24 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  7044. 136.24 s [really-safe-money] + f = if True then Positive else Negative
  7045. 136.24 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  7046. 136.24 s [really-safe-money]
  7047. 136.24 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  7048. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
  7049. 136.24 s [really-safe-money] @@ -194,7 +194,7 @@
  7050. 136.24 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7051. 136.24 s [really-safe-money] fromDouble quantisationFactor d =
  7052. 136.24 s [really-safe-money] let d' = Prelude.abs d
  7053. 136.24 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  7054. 136.24 s [really-safe-money] + f = if False then Positive else Negative
  7055. 136.24 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  7056. 136.24 s [really-safe-money]
  7057. 136.24 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  7058. 136.24 s [really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
  7059. 136.24 s [really-safe-money] @@ -194,7 +194,7 @@
  7060. 136.24 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7061. 136.24 s [really-safe-money] fromDouble quantisationFactor d =
  7062. 136.24 s [really-safe-money] let d' = Prelude.abs d
  7063. 136.24 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  7064. 136.24 s [really-safe-money] + f = if not (d >= 0) then Positive else Negative
  7065. 136.24 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  7066. 136.24 s [really-safe-money]
  7067. 136.24 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  7068. 136.24 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:197:11-48
  7069. 136.24 s [really-safe-money] @@ -194,7 +194,7 @@
  7070. 136.24 s [really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7071. 136.24 s [really-safe-money] fromDouble quantisationFactor d =
  7072. 136.24 s [really-safe-money] let d' = Prelude.abs d
  7073. 136.24 s [really-safe-money] - f = if d >= 0 then Positive else Negative
  7074. 136.24 s [really-safe-money] + f = if d >= 0 then Positive else Negative
  7075. 136.24 s [really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
  7076. 136.24 s [really-safe-money]
  7077. 136.24 s [really-safe-money] -- | Turn an amount of money into a 'Rational'.
  7078. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  7079. 136.24 s [really-safe-money] @@ -120,7 +120,7 @@
  7080. 136.24 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7081. 136.24 s [really-safe-money] a :: Integer
  7082. 136.24 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  7083. 136.24 s [really-safe-money] - in if a > maxBoundI
  7084. 136.24 s [really-safe-money] + in if True
  7085. 136.24 s [really-safe-money] then Nothing
  7086. 136.24 s [really-safe-money] else
  7087. 136.24 s [really-safe-money] let w :: Word64
  7088. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
  7089. 136.24 s [really-safe-money] @@ -120,7 +120,7 @@
  7090. 136.24 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7091. 136.24 s [really-safe-money] a :: Integer
  7092. 136.24 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  7093. 136.24 s [really-safe-money] - in if a > maxBoundI
  7094. 136.24 s [really-safe-money] + in if False
  7095. 136.24 s [really-safe-money] then Nothing
  7096. 136.24 s [really-safe-money] else
  7097. 136.24 s [really-safe-money] let w :: Word64
  7098. 136.24 s [really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
  7099. 136.24 s [really-safe-money] @@ -120,7 +120,7 @@
  7100. 136.24 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7101. 136.24 s [really-safe-money] a :: Integer
  7102. 136.24 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  7103. 136.24 s [really-safe-money] - in if a > maxBoundI
  7104. 136.24 s [really-safe-money] + in if not (a > maxBoundI)
  7105. 136.24 s [really-safe-money] then Nothing
  7106. 136.24 s [really-safe-money] else
  7107. 136.24 s [really-safe-money] let w :: Word64
  7108. 136.24 s [really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
  7109. 136.24 s [really-safe-money] @@ -128,7 +128,7 @@
  7110. 136.24 s [really-safe-money] amount :: Amount
  7111. 136.24 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  7112. 136.24 s [really-safe-money] in Just $
  7113. 136.24 s [really-safe-money] - if i >= 0
  7114. 136.24 s [really-safe-money] + if i >= 1
  7115. 136.24 s [really-safe-money] then Positive amount
  7116. 136.24 s [really-safe-money] else Negative amount
  7117. 136.24 s [really-safe-money]
  7118. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  7119. 136.24 s [really-safe-money] @@ -128,7 +128,7 @@
  7120. 136.24 s [really-safe-money] amount :: Amount
  7121. 136.24 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  7122. 136.24 s [really-safe-money] in Just $
  7123. 136.24 s [really-safe-money] - if i >= 0
  7124. 136.24 s [really-safe-money] + if True
  7125. 136.24 s [really-safe-money] then Positive amount
  7126. 136.24 s [really-safe-money] else Negative amount
  7127. 136.24 s [really-safe-money]
  7128. 136.24 s [really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
  7129. 136.24 s [really-safe-money] @@ -128,7 +128,7 @@
  7130. 136.24 s [really-safe-money] amount :: Amount
  7131. 136.24 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  7132. 136.24 s [really-safe-money] in Just $
  7133. 136.24 s [really-safe-money] - if i >= 0
  7134. 136.24 s [really-safe-money] + if False
  7135. 136.24 s [really-safe-money] then Positive amount
  7136. 136.24 s [really-safe-money] else Negative amount
  7137. 136.24 s [really-safe-money]
  7138. 136.24 s [really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
  7139. 136.24 s [really-safe-money] @@ -128,7 +128,7 @@
  7140. 136.24 s [really-safe-money] amount :: Amount
  7141. 136.24 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  7142. 136.24 s [really-safe-money] in Just $
  7143. 136.24 s [really-safe-money] - if i >= 0
  7144. 136.24 s [really-safe-money] + if not (i >= 0)
  7145. 136.24 s [really-safe-money] then Positive amount
  7146. 136.24 s [really-safe-money] else Negative amount
  7147. 136.24 s [really-safe-money]
  7148. 136.24 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:131:17-39
  7149. 136.24 s [really-safe-money] @@ -128,9 +128,9 @@
  7150. 136.24 s [really-safe-money] amount :: Amount
  7151. 136.24 s [really-safe-money] amount = Amount.fromMinimalQuantisations w
  7152. 136.24 s [really-safe-money] in Just $
  7153. 136.24 s [really-safe-money] - if i >= 0
  7154. 136.24 s [really-safe-money] - then Positive amount
  7155. 136.24 s [really-safe-money] - else Negative amount
  7156. 136.24 s [really-safe-money] + if i >= 0
  7157. 136.24 s [really-safe-money] + then Positive amount
  7158. 136.24 s [really-safe-money] + else Negative amount
  7159. 136.24 s [really-safe-money]
  7160. 136.24 s [really-safe-money] -- | Turn an amount into a positive account
  7161. 136.24 s [really-safe-money] --
  7162. 136.24 s [really-safe-money] added mutation CondFlip at src/Money/Account.hs:123:7-39
  7163. 136.24 s [really-safe-money] @@ -120,17 +120,17 @@
  7164. 136.24 s [really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7165. 136.24 s [really-safe-money] a :: Integer
  7166. 136.24 s [really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
  7167. 136.24 s [really-safe-money] - in if a > maxBoundI
  7168. 136.24 s [really-safe-money] - then Nothing
  7169. 136.24 s [really-safe-money] - else
  7170. 136.25 s [really-safe-money] - let w :: Word64
  7171. 136.25 s [really-safe-money] - w = (fromIntegral :: Integer -> Word64) a
  7172. 136.25 s [really-safe-money] - amount :: Amount
  7173. 136.25 s [really-safe-money] - amount = Amount.fromMinimalQuantisations w
  7174. 136.25 s [really-safe-money] - in Just $
  7175. 136.25 s [really-safe-money] - if i >= 0
  7176. 136.25 s [really-safe-money] - then Positive amount
  7177. 136.25 s [really-safe-money] - else Negative amount
  7178. 136.25 s [really-safe-money] + in if a > maxBoundI
  7179. 136.25 s [really-safe-money] + then Nothing
  7180. 136.25 s [really-safe-money] + else
  7181. 136.25 s [really-safe-money] + let w :: Word64
  7182. 136.25 s [really-safe-money] + w = (fromIntegral :: Integer -> Word64) a
  7183. 136.25 s [really-safe-money] + amount :: Amount
  7184. 136.25 s [really-safe-money] + amount = Amount.fromMinimalQuantisations w
  7185. 136.25 s [really-safe-money] + in Just $
  7186. 136.25 s [really-safe-money] + if i >= 0
  7187. 136.25 s [really-safe-money] + then Positive amount
  7188. 136.25 s [really-safe-money] + else Negative amount
  7189. 136.25 s [really-safe-money]
  7190. 136.25 s [really-safe-money] -- | Turn an amount into a positive account
  7191. 136.25 s [really-safe-money] --
  7192. 136.25 s [really-safe-money] added 38 mutations
  7193. 136.25 s [genvalidity-sydtest] [20 of 34] Compiling Test.Syd.Validity.Functions.CanFail ( src/Test/Syd/Validity/Functions/CanFail.hs, dist/build/Test/Syd/Validity/Functions/CanFail.o, dist/build/Test/Syd/Validity/Functions/CanFail.dyn_o )
  7194. 136.25 s [genvalidity-sydtest] [21 of 34] Compiling Test.Syd.Validity.Functions ( src/Test/Syd/Validity/Functions.hs, dist/build/Test/Syd/Validity/Functions.o, dist/build/Test/Syd/Validity/Functions.dyn_o )
  7195. 136.40 s [genvalidity-sydtest] [22 of 34] Compiling Test.Syd.Validity.Property ( src/Test/Syd/Validity/Property.hs, dist/build/Test/Syd/Validity/Property.o, dist/build/Test/Syd/Validity/Property.dyn_o )
  7196. 136.63 s [genvalidity-sydtest] [23 of 34] Compiling Test.Syd.Validity.Utils ( src/Test/Syd/Validity/Utils.hs, dist/build/Test/Syd/Validity/Utils.o, dist/build/Test/Syd/Validity/Utils.dyn_o )
  7197. 136.64 s [genvalidity-sydtest] [24 of 34] Compiling Test.Syd.Validity.Shrinking ( src/Test/Syd/Validity/Shrinking.hs, dist/build/Test/Syd/Validity/Shrinking.o, dist/build/Test/Syd/Validity/Shrinking.dyn_o )
  7198. 136.64 s [genvalidity-sydtest] [25 of 34] Compiling Test.Syd.Validity.Show ( src/Test/Syd/Validity/Show.hs, dist/build/Test/Syd/Validity/Show.o, dist/build/Test/Syd/Validity/Show.dyn_o )
  7199. 136.64 s [genvalidity-sydtest] [26 of 34] Compiling Test.Syd.Validity.Ord ( src/Test/Syd/Validity/Ord.hs, dist/build/Test/Syd/Validity/Ord.o, dist/build/Test/Syd/Validity/Ord.dyn_o )
  7200. 136.93 s [genvalidity-sydtest] [27 of 34] Compiling Test.Syd.Validity.Monoid ( src/Test/Syd/Validity/Monoid.hs, dist/build/Test/Syd/Validity/Monoid.o, dist/build/Test/Syd/Validity/Monoid.dyn_o )
  7201. 136.93 s [genvalidity-sydtest] [28 of 34] Compiling Test.Syd.Validity.Monad ( src/Test/Syd/Validity/Monad.hs, dist/build/Test/Syd/Validity/Monad.o, dist/build/Test/Syd/Validity/Monad.dyn_o )
  7202. 137.19 s [genvalidity-sydtest] [29 of 34] Compiling Test.Syd.Validity.GenValidity ( src/Test/Syd/Validity/GenValidity.hs, dist/build/Test/Syd/Validity/GenValidity.o, dist/build/Test/Syd/Validity/GenValidity.dyn_o )
  7203. 137.19 s [genvalidity-sydtest] [30 of 34] Compiling Test.Syd.Validity.Functor ( src/Test/Syd/Validity/Functor.hs, dist/build/Test/Syd/Validity/Functor.o, dist/build/Test/Syd/Validity/Functor.dyn_o )
  7204. 137.19 s [genvalidity-sydtest] [31 of 34] Compiling Test.Syd.Validity.Eq ( src/Test/Syd/Validity/Eq.hs, dist/build/Test/Syd/Validity/Eq.o, dist/build/Test/Syd/Validity/Eq.dyn_o )
  7205. 137.19 s [genvalidity-sydtest] [32 of 34] Compiling Test.Syd.Validity.Arbitrary ( src/Test/Syd/Validity/Arbitrary.hs, dist/build/Test/Syd/Validity/Arbitrary.o, dist/build/Test/Syd/Validity/Arbitrary.dyn_o )
  7206. 137.19 s [genvalidity-sydtest] [33 of 34] Compiling Test.Syd.Validity.Applicative ( src/Test/Syd/Validity/Applicative.hs, dist/build/Test/Syd/Validity/Applicative.o, dist/build/Test/Syd/Validity/Applicative.dyn_o )
  7207. 137.19 s [genvalidity-sydtest] [34 of 34] Compiling Test.Syd.Validity ( src/Test/Syd/Validity.hs, dist/build/Test/Syd/Validity.o, dist/build/Test/Syd/Validity.dyn_o )
  7208. 137.51 s [really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.p_o )
  7209. 137.52 s [really-safe-money] mutation: instrumenting Money.MultiAccount
  7210. 137.52 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  7211. 137.52 s [really-safe-money] @@ -131,7 +131,7 @@
  7212. 137.52 s [really-safe-money] Just a -> do
  7213. 137.52 s [really-safe-money] r <- Account.subtract a account
  7214. 137.52 s [really-safe-money] Just $
  7215. 137.52 s [really-safe-money] - if r == Account.zero
  7216. 137.53 s [really-safe-money] + if True
  7217. 137.53 s [really-safe-money] then M.delete currency m
  7218. 137.53 s [really-safe-money] else M.insert currency r m
  7219. 137.53 s [really-safe-money]
  7220. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  7221. 137.53 s [really-safe-money] @@ -131,7 +131,7 @@
  7222. 137.53 s [really-safe-money] Just a -> do
  7223. 137.53 s [really-safe-money] r <- Account.subtract a account
  7224. 137.53 s [really-safe-money] Just $
  7225. 137.53 s [really-safe-money] - if r == Account.zero
  7226. 137.53 s [really-safe-money] + if False
  7227. 137.53 s [really-safe-money] then M.delete currency m
  7228. 137.53 s [really-safe-money] else M.insert currency r m
  7229. 137.53 s [really-safe-money]
  7230. 137.53 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
  7231. 137.53 s [really-safe-money] @@ -131,7 +131,7 @@
  7232. 137.53 s [really-safe-money] Just a -> do
  7233. 137.53 s [really-safe-money] r <- Account.subtract a account
  7234. 137.53 s [really-safe-money] Just $
  7235. 137.53 s [really-safe-money] - if r == Account.zero
  7236. 137.53 s [really-safe-money] + if not (r == Account.zero)
  7237. 137.53 s [really-safe-money] then M.delete currency m
  7238. 137.53 s [really-safe-money] else M.insert currency r m
  7239. 137.53 s [really-safe-money]
  7240. 137.53 s [really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
  7241. 137.53 s [really-safe-money] @@ -131,9 +131,9 @@
  7242. 137.53 s [really-safe-money] Just a -> do
  7243. 137.53 s [really-safe-money] r <- Account.subtract a account
  7244. 137.53 s [really-safe-money] Just $
  7245. 137.53 s [really-safe-money] - if r == Account.zero
  7246. 137.53 s [really-safe-money] - then M.delete currency m
  7247. 137.53 s [really-safe-money] - else M.insert currency r m
  7248. 137.53 s [really-safe-money] + if r == Account.zero
  7249. 137.53 s [really-safe-money] + then M.delete currency m
  7250. 137.53 s [really-safe-money] + else M.insert currency r m
  7251. 137.53 s [really-safe-money]
  7252. 137.53 s [really-safe-money] -- | Try to convert every account to one currency.
  7253. 137.53 s [really-safe-money] --
  7254. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  7255. 137.53 s [really-safe-money] @@ -117,7 +117,7 @@
  7256. 137.53 s [really-safe-money] Just a -> do
  7257. 137.53 s [really-safe-money] r <- Account.add a account
  7258. 137.53 s [really-safe-money] Just $
  7259. 137.53 s [really-safe-money] - if r == Account.zero
  7260. 137.53 s [really-safe-money] + if True
  7261. 137.53 s [really-safe-money] then M.delete currency m
  7262. 137.53 s [really-safe-money] else M.insert currency r m
  7263. 137.53 s [really-safe-money]
  7264. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  7265. 137.53 s [really-safe-money] @@ -117,7 +117,7 @@
  7266. 137.53 s [really-safe-money] Just a -> do
  7267. 137.53 s [really-safe-money] r <- Account.add a account
  7268. 137.53 s [really-safe-money] Just $
  7269. 137.53 s [really-safe-money] - if r == Account.zero
  7270. 137.53 s [really-safe-money] + if False
  7271. 137.53 s [really-safe-money] then M.delete currency m
  7272. 137.53 s [really-safe-money] else M.insert currency r m
  7273. 137.53 s [really-safe-money]
  7274. 137.53 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
  7275. 137.53 s [really-safe-money] @@ -117,7 +117,7 @@
  7276. 137.53 s [really-safe-money] Just a -> do
  7277. 137.53 s [really-safe-money] r <- Account.add a account
  7278. 137.53 s [really-safe-money] Just $
  7279. 137.53 s [really-safe-money] - if r == Account.zero
  7280. 137.53 s [really-safe-money] + if not (r == Account.zero)
  7281. 137.53 s [really-safe-money] then M.delete currency m
  7282. 137.53 s [really-safe-money] else M.insert currency r m
  7283. 137.53 s [really-safe-money]
  7284. 137.53 s [really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
  7285. 137.53 s [really-safe-money] @@ -117,9 +117,9 @@
  7286. 137.53 s [really-safe-money] Just a -> do
  7287. 137.53 s [really-safe-money] r <- Account.add a account
  7288. 137.53 s [really-safe-money] Just $
  7289. 137.53 s [really-safe-money] - if r == Account.zero
  7290. 137.53 s [really-safe-money] - then M.delete currency m
  7291. 137.53 s [really-safe-money] - else M.insert currency r m
  7292. 137.53 s [really-safe-money] + if r == Account.zero
  7293. 137.53 s [really-safe-money] + then M.delete currency m
  7294. 137.53 s [really-safe-money] + else M.insert currency r m
  7295. 137.53 s [really-safe-money]
  7296. 137.53 s [really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
  7297. 137.53 s [really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  7298. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  7299. 137.53 s [really-safe-money] @@ -75,7 +75,7 @@
  7300. 137.53 s [really-safe-money]
  7301. 137.53 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  7302. 137.53 s [really-safe-money] fromAccount currency amount =
  7303. 137.53 s [really-safe-money] - if amount == Account.zero
  7304. 137.53 s [really-safe-money] + if True
  7305. 137.53 s [really-safe-money] then zero
  7306. 137.53 s [really-safe-money] else MultiAccount $ M.singleton currency amount
  7307. 137.53 s [really-safe-money]
  7308. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  7309. 137.53 s [really-safe-money] @@ -75,7 +75,7 @@
  7310. 137.53 s [really-safe-money]
  7311. 137.53 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  7312. 137.53 s [really-safe-money] fromAccount currency amount =
  7313. 137.53 s [really-safe-money] - if amount == Account.zero
  7314. 137.53 s [really-safe-money] + if False
  7315. 137.53 s [really-safe-money] then zero
  7316. 137.53 s [really-safe-money] else MultiAccount $ M.singleton currency amount
  7317. 137.53 s [really-safe-money]
  7318. 137.53 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
  7319. 137.53 s [really-safe-money] @@ -75,7 +75,7 @@
  7320. 137.53 s [really-safe-money]
  7321. 137.53 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  7322. 137.53 s [really-safe-money] fromAccount currency amount =
  7323. 137.53 s [really-safe-money] - if amount == Account.zero
  7324. 137.53 s [really-safe-money] + if not (amount == Account.zero)
  7325. 137.53 s [really-safe-money] then zero
  7326. 137.53 s [really-safe-money] else MultiAccount $ M.singleton currency amount
  7327. 137.53 s [really-safe-money]
  7328. 137.53 s [really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
  7329. 137.53 s [really-safe-money] @@ -75,9 +75,9 @@
  7330. 137.53 s [really-safe-money]
  7331. 137.53 s [really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
  7332. 137.53 s [really-safe-money] fromAccount currency amount =
  7333. 137.53 s [really-safe-money] - if amount == Account.zero
  7334. 137.53 s [really-safe-money] - then zero
  7335. 137.53 s [really-safe-money] - else MultiAccount $ M.singleton currency amount
  7336. 137.53 s [really-safe-money] + if amount == Account.zero
  7337. 137.53 s [really-safe-money] + then zero
  7338. 137.53 s [really-safe-money] + else MultiAccount $ M.singleton currency amount
  7339. 137.53 s [really-safe-money]
  7340. 137.53 s [really-safe-money] -- | No money of any currency
  7341. 137.53 s [really-safe-money] zero :: MultiAccount currency
  7342. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  7343. 137.53 s [really-safe-money] @@ -66,7 +66,7 @@
  7344. 137.53 s [really-safe-money] [ genericValidate ma,
  7345. 137.53 s [really-safe-money] decorateMap m $ \_ a ->
  7346. 137.53 s [really-safe-money] declare "The account is not zero" $
  7347. 137.53 s [really-safe-money] - a /= Account.zero
  7348. 137.53 s [really-safe-money] + True
  7349. 137.53 s [really-safe-money] ]
  7350. 137.53 s [really-safe-money]
  7351. 137.53 s [really-safe-money] -- TODO no empty currencies
  7352. 137.53 s [really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  7353. 137.53 s [really-safe-money] @@ -66,7 +66,7 @@
  7354. 137.53 s [really-safe-money] [ genericValidate ma,
  7355. 137.53 s [really-safe-money] decorateMap m $ \_ a ->
  7356. 137.54 s [really-safe-money] declare "The account is not zero" $
  7357. 137.54 s [really-safe-money] - a /= Account.zero
  7358. 137.54 s [really-safe-money] + False
  7359. 137.54 s [really-safe-money] ]
  7360. 137.54 s [really-safe-money]
  7361. 137.54 s [really-safe-money] -- TODO no empty currencies
  7362. 137.54 s [really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
  7363. 137.54 s [really-safe-money] @@ -66,7 +66,7 @@
  7364. 137.54 s [really-safe-money] [ genericValidate ma,
  7365. 137.54 s [really-safe-money] decorateMap m $ \_ a ->
  7366. 137.54 s [really-safe-money] declare "The account is not zero" $
  7367. 137.54 s [really-safe-money] - a /= Account.zero
  7368. 137.54 s [really-safe-money] + not (a /= Account.zero)
  7369. 137.54 s [really-safe-money] ]
  7370. 137.54 s [really-safe-money]
  7371. 137.54 s [really-safe-money] -- TODO no empty currencies
  7372. 137.54 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  7373. 137.54 s [really-safe-money] @@ -63,11 +63,7 @@
  7374. 137.54 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  7375. 137.54 s [really-safe-money] validate ma@(MultiAccount m) =
  7376. 137.54 s [really-safe-money] mconcat
  7377. 137.54 s [really-safe-money] - [ genericValidate ma,
  7378. 137.54 s [really-safe-money] - decorateMap m $ \_ a ->
  7379. 137.54 s [really-safe-money] - declare "The account is not zero" $
  7380. 137.54 s [really-safe-money] - a /= Account.zero
  7381. 137.54 s [really-safe-money] - ]
  7382. 137.54 s [really-safe-money] + []
  7383. 137.54 s [really-safe-money]
  7384. 137.54 s [really-safe-money] -- TODO no empty currencies
  7385. 137.54 s [really-safe-money]
  7386. 137.54 s [really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  7387. 137.54 s [really-safe-money] @@ -63,11 +63,11 @@
  7388. 137.54 s [really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  7389. 137.54 s [really-safe-money] validate ma@(MultiAccount m) =
  7390. 137.54 s [really-safe-money] mconcat
  7391. 137.54 s [really-safe-money] - [ genericValidate ma,
  7392. 137.54 s [really-safe-money] - decorateMap m $ \_ a ->
  7393. 137.54 s [really-safe-money] - declare "The account is not zero" $
  7394. 137.54 s [really-safe-money] - a /= Account.zero
  7395. 137.54 s [really-safe-money] - ]
  7396. 137.54 s [really-safe-money] + [ genericValidate ma,
  7397. 137.54 s [really-safe-money] + decorateMap m $ \_ a ->
  7398. 137.54 s [really-safe-money] + declare "The account is not zero" $
  7399. 137.54 s [really-safe-money] + a /= Account.zero
  7400. 137.54 s [really-safe-money] + ]
  7401. 137.54 s [really-safe-money]
  7402. 137.54 s [really-safe-money] -- TODO no empty currencies
  7403. 137.54 s [really-safe-money]
  7404. 137.54 s [really-safe-money] added 17 mutations
  7405. 137.59 s [genvalidity-sydtest] [ 1 of 34] Compiling Paths_genvalidity_sydtest ( dist/build/autogen/Paths_genvalidity_sydtest.hs, dist/build/Paths_genvalidity_sydtest.p_o )
  7406. 137.95 s [genvalidity-sydtest] [ 2 of 34] Compiling Test.Syd.Validity.Functions.Idempotence ( src/Test/Syd/Validity/Functions/Idempotence.hs, dist/build/Test/Syd/Validity/Functions/Idempotence.p_o )
  7407. 138.02 s [genvalidity-sydtest] [ 3 of 34] Compiling Test.Syd.Validity.Operations.Associativity ( src/Test/Syd/Validity/Operations/Associativity.hs, dist/build/Test/Syd/Validity/Operations/Associativity.p_o )
  7408. 138.02 s [genvalidity-sydtest] [ 4 of 34] Compiling Test.Syd.Validity.Operations.Commutativity ( src/Test/Syd/Validity/Operations/Commutativity.hs, dist/build/Test/Syd/Validity/Operations/Commutativity.p_o )
  7409. 138.02 s [genvalidity-sydtest] [ 5 of 34] Compiling Test.Syd.Validity.Operations.Identity ( src/Test/Syd/Validity/Operations/Identity.hs, dist/build/Test/Syd/Validity/Operations/Identity.p_o )
  7410. 138.02 s [genvalidity-sydtest] [ 6 of 34] Compiling Test.Syd.Validity.Operations ( src/Test/Syd/Validity/Operations.hs, dist/build/Test/Syd/Validity/Operations.p_o )
  7411. 138.18 s [really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.p_o )
  7412. 138.19 s [really-safe-money] mutation: instrumenting Money.AccountOf
  7413. 138.19 s [really-safe-money] added 0 mutations
  7414. 138.29 s [genvalidity-sydtest] [ 7 of 34] Compiling Test.Syd.Validity.Property.Utils ( src/Test/Syd/Validity/Property/Utils.hs, dist/build/Test/Syd/Validity/Property/Utils.p_o )
  7415. 138.29 s [genvalidity-sydtest] [ 8 of 34] Compiling Test.Syd.Validity.GenValidity.Property ( src/Test/Syd/Validity/GenValidity/Property.hs, dist/build/Test/Syd/Validity/GenValidity/Property.p_o )
  7416. 138.32 s [genvalidity-sydtest] [ 9 of 34] Compiling Test.Syd.Validity.Functions.Validity ( src/Test/Syd/Validity/Functions/Validity.hs, dist/build/Test/Syd/Validity/Functions/Validity.p_o )
  7417. 138.32 s [genvalidity-sydtest] [10 of 34] Compiling Test.Syd.Validity.Relations.Antireflexivity ( src/Test/Syd/Validity/Relations/Antireflexivity.hs, dist/build/Test/Syd/Validity/Relations/Antireflexivity.p_o )
  7418. 138.32 s [genvalidity-sydtest] [11 of 34] Compiling Test.Syd.Validity.Relations.Antisymmetry ( src/Test/Syd/Validity/Relations/Antisymmetry.hs, dist/build/Test/Syd/Validity/Relations/Antisymmetry.p_o )
  7419. 138.36 s [genvalidity-sydtest] [12 of 34] Compiling Test.Syd.Validity.Relations.Reflexivity ( src/Test/Syd/Validity/Relations/Reflexivity.hs, dist/build/Test/Syd/Validity/Relations/Reflexivity.p_o )
  7420. 138.36 s [genvalidity-sydtest] [13 of 34] Compiling Test.Syd.Validity.Relations.Symmetry ( src/Test/Syd/Validity/Relations/Symmetry.hs, dist/build/Test/Syd/Validity/Relations/Symmetry.p_o )
  7421. 138.36 s [genvalidity-sydtest] [14 of 34] Compiling Test.Syd.Validity.Relations.Transitivity ( src/Test/Syd/Validity/Relations/Transitivity.hs, dist/build/Test/Syd/Validity/Relations/Transitivity.p_o )
  7422. 138.36 s [genvalidity-sydtest] [15 of 34] Compiling Test.Syd.Validity.Relations ( src/Test/Syd/Validity/Relations.hs, dist/build/Test/Syd/Validity/Relations.p_o )
  7423. 138.52 s [genvalidity-sydtest] [16 of 34] Compiling Test.Syd.Validity.Shrinking.Property ( src/Test/Syd/Validity/Shrinking/Property.hs, dist/build/Test/Syd/Validity/Shrinking/Property.p_o )
  7424. 138.52 s [genvalidity-sydtest] [17 of 34] Compiling Test.Syd.Validity.Types ( src/Test/Syd/Validity/Types.hs, dist/build/Test/Syd/Validity/Types.p_o )
  7425. 138.52 s [genvalidity-sydtest] [18 of 34] Compiling Test.Syd.Validity.Functions.Inverse ( src/Test/Syd/Validity/Functions/Inverse.hs, dist/build/Test/Syd/Validity/Functions/Inverse.p_o )
  7426. 138.52 s [genvalidity-sydtest] [19 of 34] Compiling Test.Syd.Validity.Functions.Equivalence ( src/Test/Syd/Validity/Functions/Equivalence.hs, dist/build/Test/Syd/Validity/Functions/Equivalence.p_o )
  7427. 138.52 s [genvalidity-sydtest] [20 of 34] Compiling Test.Syd.Validity.Functions.CanFail ( src/Test/Syd/Validity/Functions/CanFail.hs, dist/build/Test/Syd/Validity/Functions/CanFail.p_o )
  7428. 138.52 s [genvalidity-sydtest] [21 of 34] Compiling Test.Syd.Validity.Functions ( src/Test/Syd/Validity/Functions.hs, dist/build/Test/Syd/Validity/Functions.p_o )
  7429. 138.53 s [genvalidity-sydtest] [22 of 34] Compiling Test.Syd.Validity.Property ( src/Test/Syd/Validity/Property.hs, dist/build/Test/Syd/Validity/Property.p_o )
  7430. 138.95 s [genvalidity-sydtest] [23 of 34] Compiling Test.Syd.Validity.Utils ( src/Test/Syd/Validity/Utils.hs, dist/build/Test/Syd/Validity/Utils.p_o )
  7431. 138.95 s [genvalidity-sydtest] [24 of 34] Compiling Test.Syd.Validity.Shrinking ( src/Test/Syd/Validity/Shrinking.hs, dist/build/Test/Syd/Validity/Shrinking.p_o )
  7432. 138.95 s [genvalidity-sydtest] [25 of 34] Compiling Test.Syd.Validity.Show ( src/Test/Syd/Validity/Show.hs, dist/build/Test/Syd/Validity/Show.p_o )
  7433. 138.95 s [genvalidity-sydtest] [26 of 34] Compiling Test.Syd.Validity.Ord ( src/Test/Syd/Validity/Ord.hs, dist/build/Test/Syd/Validity/Ord.p_o )
  7434. 139.08 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 )
  7435. 139.10 s [genvalidity-sydtest] [27 of 34] Compiling Test.Syd.Validity.Monoid ( src/Test/Syd/Validity/Monoid.hs, dist/build/Test/Syd/Validity/Monoid.p_o )
  7436. 139.10 s [genvalidity-sydtest] [28 of 34] Compiling Test.Syd.Validity.Monad ( src/Test/Syd/Validity/Monad.hs, dist/build/Test/Syd/Validity/Monad.p_o )
  7437. 139.19 s [genvalidity-sydtest] [29 of 34] Compiling Test.Syd.Validity.GenValidity ( src/Test/Syd/Validity/GenValidity.hs, dist/build/Test/Syd/Validity/GenValidity.p_o )
  7438. 139.19 s [genvalidity-sydtest] [30 of 34] Compiling Test.Syd.Validity.Functor ( src/Test/Syd/Validity/Functor.hs, dist/build/Test/Syd/Validity/Functor.p_o )
  7439. 139.19 s [genvalidity-sydtest] [31 of 34] Compiling Test.Syd.Validity.Eq ( src/Test/Syd/Validity/Eq.hs, dist/build/Test/Syd/Validity/Eq.p_o )
  7440. 139.19 s [genvalidity-sydtest] [32 of 34] Compiling Test.Syd.Validity.Arbitrary ( src/Test/Syd/Validity/Arbitrary.hs, dist/build/Test/Syd/Validity/Arbitrary.p_o )
  7441. 139.19 s [genvalidity-sydtest] [33 of 34] Compiling Test.Syd.Validity.Applicative ( src/Test/Syd/Validity/Applicative.hs, dist/build/Test/Syd/Validity/Applicative.p_o )
  7442. 139.30 s [genvalidity-sydtest] [34 of 34] Compiling Test.Syd.Validity ( src/Test/Syd/Validity.hs, dist/build/Test/Syd/Validity.p_o )
  7443. 139.58 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
  7444. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
  7445. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
  7446. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
  7447. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
  7448. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
  7449. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
  7450. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
  7451. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
  7452. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
  7453. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
  7454. 139.69 s [really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
  7455. 140.61 s [really-safe-money] mutation-nix: manifest output at /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest:
  7456. 140.61 s [really-safe-money] total 232
  7457. 140.61 s [really-safe-money] drwxr-xr-x 2 nixbld nixbld 4096 May 13 15:57 .
  7458. 140.61 s [really-safe-money] drwxrwxr-t 238 nobody nixbld 28672 May 13 15:57 ..
  7459. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 26086 May 13 15:57 Money.Account.json
  7460. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AccountOf.json
  7461. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 50656 May 13 15:57 Money.Amount.json
  7462. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AmountOf.json
  7463. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 8599 May 13 15:57 Money.ConversionRate.json
  7464. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.ConversionRateOf.json
  7465. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.Currency.json
  7466. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 9772 May 13 15:57 Money.MultiAccount.json
  7467. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 12786 May 13 15:57 Money.MultiAmount.json
  7468. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 15615 May 13 15:57 Money.QuantisationFactor.json
  7469. 140.61 s [really-safe-money] -rw-r--r-- 1 nixbld nixbld 48143 May 13 15:57 Numeric.DecimalLiteral.json
  7470. 140.62 s [really-safe-money] Phase: haddockPhase
  7471. 140.69 s [really-safe-money] Phase: installPhase
  7472. 140.74 s [really-safe-money] Installing library in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-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
  7473. 141.06 s [really-safe-money] Phase: fixupPhase
  7474. 141.08 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0
  7475. 141.09 s [really-safe-money] shrinking /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-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
  7476. 141.11 s [really-safe-money] checking for references to /build/ in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0...
  7477. 141.14 s [really-safe-money] patching script interpreter paths in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0
  7478. 141.15 s [really-safe-money] stripping (with command strip and flags -S -p) in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib
  7479. 141.31 s [really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest
  7480. 141.31 s [really-safe-money] checking for references to /build/ in /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest...
  7481. 141.32 s [really-safe-money] patching script interpreter paths in /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest
  7482. 141.42 s Progress: 7 of 14 built (1 building)
  7483. 141.47 s Building really-safe-money-autodocodec-source
  7484. 141.52 s Building really-safe-money-gen-source
  7485. 141.70 s [really-safe-money-autodocodec-source] Phase: setupCompilerEnvironmentPhase
  7486. 141.81 s [really-safe-money-autodocodec-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  7487. 141.85 s [really-safe-money-gen-source] Phase: setupCompilerEnvironmentPhase
  7488. 141.85 s [really-safe-money-gen-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  7489. 142.18 s [really-safe-money-autodocodec-source] Phase: unpackPhase
  7490. 142.18 s [really-safe-money-autodocodec-source] unpacking source archive /nix/store/8krpxqimxqvympfqdqxg1jzjg2jrcglb-really-safe-money-autodocodec
  7491. 142.19 s [really-safe-money-autodocodec-source] source root is really-safe-money-autodocodec
  7492. 142.20 s [really-safe-money-autodocodec-source] Phase: patchPhase
  7493. 142.21 s [really-safe-money-autodocodec-source] Phase: compileBuildDriverPhase
  7494. 142.22 s [really-safe-money-autodocodec-source] setupCompileFlags: -package-db=/build/tmp.IIbONzpvMJ/setup-package.conf.d -threaded
  7495. 142.30 s [really-safe-money-autodocodec-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.IIbONzpvMJ/Main.o )
  7496. 142.30 s [really-safe-money-gen-source] Phase: unpackPhase
  7497. 142.31 s [really-safe-money-gen-source] unpacking source archive /nix/store/igm3hbdpcwgfbdx9yjyf6d68w1ifih08-really-safe-money-gen
  7498. 142.32 s [really-safe-money-gen-source] source root is really-safe-money-gen
  7499. 142.33 s [really-safe-money-gen-source] Phase: patchPhase
  7500. 142.35 s [really-safe-money-gen-source] Phase: compileBuildDriverPhase
  7501. 142.35 s [really-safe-money-gen-source] setupCompileFlags: -package-db=/build/tmp.dpvvEeJp2J/setup-package.conf.d -threaded
  7502. 142.37 s [really-safe-money-autodocodec-source] [2 of 2] Linking Setup
  7503. 142.43 s [really-safe-money-gen-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.dpvvEeJp2J/Main.o )
  7504. 142.50 s [really-safe-money-gen-source] [2 of 2] Linking Setup
  7505. 142.88 s [genvalidity-sydtest] Preprocessing test suite 'genvalidity-sydtest-test' for genvalidity-sydtest-1.0.1.0...
  7506. 142.89 s [genvalidity-sydtest] Building test suite 'genvalidity-sydtest-test' for genvalidity-sydtest-1.0.1.0...
  7507. 143.08 s [genvalidity-sydtest] [ 1 of 15] Compiling Paths_genvalidity_sydtest ( dist/build/genvalidity-sydtest-test/autogen/Paths_genvalidity_sydtest.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Paths_genvalidity_sydtest.o )
  7508. 143.35 s [genvalidity-sydtest] [ 2 of 15] Compiling Test.Syd.Validity.ApplicativeSpec ( test/Test/Syd/Validity/ApplicativeSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ApplicativeSpec.o )
  7509. 143.50 s [genvalidity-sydtest] [ 3 of 15] Compiling Test.Syd.Validity.ArbitrarySpec ( test/Test/Syd/Validity/ArbitrarySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ArbitrarySpec.o )
  7510. 143.50 s [genvalidity-sydtest] [ 4 of 15] Compiling Test.Syd.Validity.EqSpec ( test/Test/Syd/Validity/EqSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/EqSpec.o )
  7511. 143.50 s [genvalidity-sydtest] [ 5 of 15] Compiling Test.Syd.Validity.FunctorSpec ( test/Test/Syd/Validity/FunctorSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/FunctorSpec.o )
  7512. 143.50 s [genvalidity-sydtest] [ 6 of 15] Compiling Test.Syd.Validity.GenRelativeValiditySpec ( test/Test/Syd/Validity/GenRelativeValiditySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/GenRelativeValiditySpec.o )
  7513. 143.50 s [genvalidity-sydtest] [ 7 of 15] Compiling Test.Syd.Validity.GenValiditySpec ( test/Test/Syd/Validity/GenValiditySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/GenValiditySpec.o )
  7514. 143.50 s [genvalidity-sydtest] [ 8 of 15] Compiling Test.Syd.Validity.MonadSpec ( test/Test/Syd/Validity/MonadSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/MonadSpec.o )
  7515. 143.62 s [genvalidity-sydtest] [ 9 of 15] Compiling Test.Syd.Validity.MonoidSpec ( test/Test/Syd/Validity/MonoidSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/MonoidSpec.o )
  7516. 143.62 s [genvalidity-sydtest] [10 of 15] Compiling Test.Syd.Validity.Operations.CommutativitySpec ( test/Test/Syd/Validity/Operations/CommutativitySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/Operations/CommutativitySpec.o )
  7517. 143.62 s [genvalidity-sydtest] [11 of 15] Compiling Test.Syd.Validity.OrdSpec ( test/Test/Syd/Validity/OrdSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/OrdSpec.o )
  7518. 143.62 s [genvalidity-sydtest] [12 of 15] Compiling Test.Syd.Validity.RelativeValiditySpec ( test/Test/Syd/Validity/RelativeValiditySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/RelativeValiditySpec.o )
  7519. 143.62 s [genvalidity-sydtest] [13 of 15] Compiling Test.Syd.Validity.ShowSpec ( test/Test/Syd/Validity/ShowSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ShowSpec.o )
  7520. 143.62 s [genvalidity-sydtest] [14 of 15] Compiling Test.Syd.Validity.ShrinkingSpec ( test/Test/Syd/Validity/ShrinkingSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ShrinkingSpec.o )
  7521. 143.62 s [genvalidity-sydtest] [15 of 15] Compiling Main ( test/Spec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Main.o )
  7522. 144.07 s [genvalidity-sydtest] [16 of 16] Linking dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test
  7523. 144.31 s [really-safe-money-autodocodec-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  7524. 144.33 s [really-safe-money-autodocodec-source] Phase: configurePhase
  7525. 144.33 s [really-safe-money-autodocodec-source] configureFlags: --verbose --prefix=/nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-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.IIbONzpvMJ/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
  7526. 144.34 s [really-safe-money-autodocodec-source] Using Parsec parser
  7527. 144.34 s [really-safe-money-autodocodec-source] Configuring really-safe-money-autodocodec-0.0.0.0...
  7528. 144.35 s [really-safe-money-gen-source] Phase: updateAutotoolsGnuConfigScriptsPhase
  7529. 144.36 s [really-safe-money-gen-source] Phase: configurePhase
  7530. 144.37 s [really-safe-money-gen-source] configureFlags: --verbose --prefix=/nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-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.dpvvEeJp2J/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
  7531. 144.38 s [really-safe-money-gen-source] Using Parsec parser
  7532. 144.38 s [really-safe-money-gen-source] Configuring really-safe-money-gen-0.0.0.0...
  7533. 145.17 s [really-safe-money-autodocodec-source] Dependency autodocodec: using autodocodec-0.5.0.0
  7534. 145.22 s [really-safe-money-autodocodec-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  7535. 145.22 s [really-safe-money-autodocodec-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  7536. 145.22 s [really-safe-money-autodocodec-source] Source component graph: component lib
  7537. 145.22 s [really-safe-money-autodocodec-source] Configured component graph:
  7538. 145.22 s [really-safe-money-autodocodec-source] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  7539. 145.22 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  7540. 145.22 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  7541. 145.22 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7542. 145.22 s [really-safe-money-autodocodec-source] Linked component graph:
  7543. 145.22 s [really-safe-money-autodocodec-source] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  7544. 145.22 s [really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  7545. 145.22 s [really-safe-money-autodocodec-source] include base-4.20.2.0-64da
  7546. 145.22 s [really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7547. 145.22 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
  7548. 145.22 s [really-safe-money-autodocodec-source] Ready component graph:
  7549. 145.22 s [really-safe-money-autodocodec-source] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  7550. 145.22 s [really-safe-money-autodocodec-source] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  7551. 145.22 s [really-safe-money-autodocodec-source] depends base-4.20.2.0-64da
  7552. 145.22 s [really-safe-money-autodocodec-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7553. 145.22 s [really-safe-money-autodocodec-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  7554. 145.22 s [really-safe-money-autodocodec-source] Using compiler: ghc-9.10.3
  7555. 145.22 s [really-safe-money-autodocodec-source] Using install prefix:
  7556. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0
  7557. 145.22 s [really-safe-money-autodocodec-source] Executables installed in:
  7558. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/bin
  7559. 145.22 s [really-safe-money-autodocodec-source] Libraries installed in:
  7560. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-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
  7561. 145.22 s [really-safe-money-autodocodec-source] Dynamic Libraries installed in:
  7562. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  7563. 145.22 s [really-safe-money-autodocodec-source] Private executables installed in:
  7564. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-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
  7565. 145.22 s [really-safe-money-autodocodec-source] Data files installed in:
  7566. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-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
  7567. 145.22 s [really-safe-money-autodocodec-source] Documentation installed in: /share/doc/really-safe-money-autodocodec-0.0.0.0
  7568. 145.22 s [really-safe-money-autodocodec-source] Configuration files installed in:
  7569. 145.22 s [really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/etc
  7570. 145.22 s [really-safe-money-autodocodec-source] No alex found
  7571. 145.22 s [really-safe-money-autodocodec-source] Using ar found on system at:
  7572. 145.22 s [really-safe-money-autodocodec-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  7573. 145.22 s [really-safe-money-autodocodec-source] No c2hs found
  7574. 145.22 s [really-safe-money-autodocodec-source] No cpphs found
  7575. 145.22 s [really-safe-money-autodocodec-source] No doctest found
  7576. 145.22 s [really-safe-money-autodocodec-source] Using gcc version 14.3.0 given by user at:
  7577. 145.22 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  7578. 145.22 s [really-safe-money-autodocodec-source] Using ghc version 9.10.3 found on system at:
  7579. 145.22 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  7580. 145.22 s [really-safe-money-autodocodec-source] Using ghc-pkg version 9.10.3 found on system at:
  7581. 145.22 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  7582. 145.22 s [really-safe-money-autodocodec-source] No ghcjs found
  7583. 145.22 s [really-safe-money-autodocodec-source] No ghcjs-pkg found
  7584. 145.22 s [really-safe-money-autodocodec-source] No greencard found
  7585. 145.22 s [really-safe-money-autodocodec-source] Using haddock version 2.31.1 found on system at:
  7586. 145.22 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  7587. 145.22 s [really-safe-money-autodocodec-source] No happy found
  7588. 145.22 s [really-safe-money-autodocodec-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  7589. 145.22 s [really-safe-money-autodocodec-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  7590. 145.22 s [really-safe-money-autodocodec-source] No hmake found
  7591. 145.22 s [really-safe-money-autodocodec-source] Using hpc version 0.69 found on system at:
  7592. 145.22 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  7593. 145.22 s [really-safe-money-autodocodec-source] Using hsc2hs version 0.68.10 found on system at:
  7594. 145.22 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  7595. 145.22 s [really-safe-money-autodocodec-source] Using hscolour version 1.25 found on system at:
  7596. 145.22 s [really-safe-money-autodocodec-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  7597. 145.22 s [really-safe-money-autodocodec-source] No jhc found
  7598. 145.22 s [really-safe-money-autodocodec-source] Using ld found on system at:
  7599. 145.22 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  7600. 145.22 s [really-safe-money-autodocodec-source] No pkg-config found
  7601. 145.22 s [really-safe-money-autodocodec-source] Using runghc version 9.10.3 found on system at:
  7602. 145.22 s [really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  7603. 145.22 s [really-safe-money-autodocodec-source] Using strip version 2.44 found on system at:
  7604. 145.22 s [really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  7605. 145.22 s [really-safe-money-autodocodec-source] Using tar found on system at:
  7606. 145.22 s [really-safe-money-autodocodec-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  7607. 145.22 s [really-safe-money-autodocodec-source] No uhc found
  7608. 145.27 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  7609. 145.27 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  7610. 145.27 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  7611. 145.27 s [really-safe-money-gen-source] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  7612. 145.27 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  7613. 145.27 s [really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
  7614. 145.27 s [really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
  7615. 145.27 s [really-safe-money-gen-source] Dependency criterion: using criterion-1.6.4.0
  7616. 145.27 s [really-safe-money-gen-source] Dependency deepseq: using deepseq-1.5.0.0
  7617. 145.27 s [really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
  7618. 145.27 s [really-safe-money-gen-source] Dependency genvalidity-criterion: using genvalidity-criterion-1.1.0.0
  7619. 145.27 s [really-safe-money-gen-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  7620. 145.27 s [really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
  7621. 145.27 s [really-safe-money-gen-source] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  7622. 145.27 s [really-safe-money-gen-source] Dependency vector: using vector-0.13.2.0
  7623. 145.27 s [really-safe-money-gen-source] Source component graph:
  7624. 145.27 s [really-safe-money-gen-source] component lib
  7625. 145.27 s [really-safe-money-gen-source] component bench:really-safe-money-bench dependency lib
  7626. 145.27 s [really-safe-money-gen-source] Configured component graph:
  7627. 145.27 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  7628. 145.27 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  7629. 145.27 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  7630. 145.27 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  7631. 145.27 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  7632. 145.27 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7633. 145.27 s [really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  7634. 145.27 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  7635. 145.27 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  7636. 145.27 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  7637. 145.27 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  7638. 145.27 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  7639. 145.27 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  7640. 145.27 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  7641. 145.27 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7642. 145.27 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  7643. 145.27 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  7644. 145.27 s [really-safe-money-gen-source] Linked component graph:
  7645. 145.27 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  7646. 145.27 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  7647. 145.27 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  7648. 145.27 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  7649. 145.27 s [really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  7650. 145.27 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7651. 145.27 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
  7652. 145.27 s [really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  7653. 145.27 s [really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  7654. 145.27 s [really-safe-money-gen-source] include base-4.20.2.0-64da
  7655. 145.27 s [really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  7656. 145.27 s [really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
  7657. 145.27 s [really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  7658. 145.27 s [really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  7659. 145.27 s [really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  7660. 145.27 s [really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7661. 145.27 s [really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  7662. 145.27 s [really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  7663. 145.27 s [really-safe-money-gen-source] Ready component graph:
  7664. 145.27 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  7665. 145.27 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  7666. 145.28 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  7667. 145.28 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  7668. 145.28 s [really-safe-money-gen-source] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  7669. 145.28 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7670. 145.28 s [really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
  7671. 145.28 s [really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  7672. 145.28 s [really-safe-money-gen-source] depends base-4.20.2.0-64da
  7673. 145.28 s [really-safe-money-gen-source] depends criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
  7674. 145.28 s [really-safe-money-gen-source] depends deepseq-1.5.0.0-9a2c
  7675. 145.28 s [really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  7676. 145.28 s [really-safe-money-gen-source] depends genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
  7677. 145.28 s [really-safe-money-gen-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  7678. 145.28 s [really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  7679. 145.28 s [really-safe-money-gen-source] depends really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
  7680. 145.28 s [really-safe-money-gen-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  7681. 145.28 s [really-safe-money-gen-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
  7682. 145.28 s [really-safe-money-gen-source] Using compiler: ghc-9.10.3
  7683. 145.28 s [really-safe-money-gen-source] Using install prefix:
  7684. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0
  7685. 145.28 s [really-safe-money-gen-source] Executables installed in:
  7686. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/bin
  7687. 145.28 s [really-safe-money-gen-source] Libraries installed in:
  7688. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-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
  7689. 145.28 s [really-safe-money-gen-source] Dynamic Libraries installed in:
  7690. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  7691. 145.28 s [really-safe-money-gen-source] Private executables installed in:
  7692. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-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
  7693. 145.28 s [really-safe-money-gen-source] Data files installed in:
  7694. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-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
  7695. 145.28 s [really-safe-money-gen-source] Documentation installed in: /share/doc/really-safe-money-gen-0.0.0.0
  7696. 145.28 s [really-safe-money-gen-source] Configuration files installed in:
  7697. 145.28 s [really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/etc
  7698. 145.28 s [really-safe-money-gen-source] No alex found
  7699. 145.28 s [really-safe-money-gen-source] Using ar found on system at:
  7700. 145.28 s [really-safe-money-gen-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  7701. 145.28 s [really-safe-money-gen-source] No c2hs found
  7702. 145.28 s [really-safe-money-gen-source] No cpphs found
  7703. 145.28 s [really-safe-money-gen-source] No doctest found
  7704. 145.28 s [really-safe-money-gen-source] Using gcc version 14.3.0 given by user at:
  7705. 145.28 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  7706. 145.28 s [really-safe-money-gen-source] Using ghc version 9.10.3 found on system at:
  7707. 145.28 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  7708. 145.28 s [really-safe-money-gen-source] Using ghc-pkg version 9.10.3 found on system at:
  7709. 145.28 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  7710. 145.28 s [really-safe-money-gen-source] No ghcjs found
  7711. 145.28 s [really-safe-money-gen-source] No ghcjs-pkg found
  7712. 145.28 s [really-safe-money-gen-source] No greencard found
  7713. 145.28 s [really-safe-money-gen-source] Using haddock version 2.31.1 found on system at:
  7714. 145.28 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  7715. 145.28 s [really-safe-money-gen-source] No happy found
  7716. 145.28 s [really-safe-money-gen-source] Using haskell-suite found on system at: haskell-suite-dummy-location
  7717. 145.28 s [really-safe-money-gen-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  7718. 145.28 s [really-safe-money-gen-source] No hmake found
  7719. 145.28 s [really-safe-money-gen-source] Using hpc version 0.69 found on system at:
  7720. 145.28 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  7721. 145.28 s [really-safe-money-gen-source] Using hsc2hs version 0.68.10 found on system at:
  7722. 145.28 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  7723. 145.28 s [really-safe-money-gen-source] Using hscolour version 1.25 found on system at:
  7724. 145.28 s [really-safe-money-gen-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  7725. 145.28 s [really-safe-money-gen-source] No jhc found
  7726. 145.28 s [really-safe-money-gen-source] Using ld found on system at:
  7727. 145.28 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  7728. 145.28 s [really-safe-money-gen-source] No pkg-config found
  7729. 145.28 s [really-safe-money-gen-source] Using runghc version 9.10.3 found on system at:
  7730. 145.28 s [really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  7731. 145.28 s [really-safe-money-gen-source] Using strip version 2.44 found on system at:
  7732. 145.28 s [really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  7733. 145.28 s [really-safe-money-gen-source] Using tar found on system at:
  7734. 145.28 s [really-safe-money-gen-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  7735. 145.28 s [really-safe-money-gen-source] No uhc found
  7736. 145.57 s [really-safe-money-autodocodec-source] Phase: buildPhase
  7737. 145.58 s [really-safe-money-autodocodec-source] Distribution quality errors:
  7738. 145.58 s [really-safe-money-autodocodec-source] [no-syn-desc] No 'synopsis' or 'description' field.
  7739. 145.58 s [really-safe-money-autodocodec-source] Distribution quality warnings:
  7740. 145.58 s [really-safe-money-autodocodec-source] [no-category] No 'category' field.
  7741. 145.58 s [really-safe-money-autodocodec-source] [no-maintainer] No 'maintainer' field.
  7742. 145.58 s [really-safe-money-autodocodec-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  7743. 145.58 s [really-safe-money-autodocodec-source] you want?
  7744. 145.58 s [really-safe-money-autodocodec-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  7745. 145.58 s [really-safe-money-autodocodec-source] - autodocodec
  7746. 145.58 s [really-safe-money-autodocodec-source] - really-safe-money
  7747. 145.58 s [really-safe-money-autodocodec-source] Please add them. There is more information at https://pvp.haskell.org/
  7748. 145.59 s [really-safe-money-autodocodec-source] Note: the public hackage server would reject this package.
  7749. 145.59 s [really-safe-money-autodocodec-source] Building source dist for really-safe-money-autodocodec-0.0.0.0...
  7750. 145.60 s [really-safe-money-autodocodec-source] Source tarball created: dist/really-safe-money-autodocodec-0.0.0.0.tar.gz
  7751. 145.61 s [really-safe-money-autodocodec-source] Phase: haddockPhase
  7752. 145.61 s [really-safe-money-autodocodec-source] Phase: installPhase
  7753. 145.62 s [really-safe-money-autodocodec-source] Phase: fixupPhase
  7754. 145.65 s Progress: 8 of 13 built (2 building)
  7755. 145.71 s Building really-safe-money-autodocodec
  7756. 145.79 s [really-safe-money-gen-source] Phase: buildPhase
  7757. 145.80 s [really-safe-money-gen-source] Distribution quality errors:
  7758. 145.80 s [really-safe-money-gen-source] [no-syn-desc] No 'synopsis' or 'description' field.
  7759. 145.80 s [really-safe-money-gen-source] Distribution quality warnings:
  7760. 145.80 s [really-safe-money-gen-source] [no-category] No 'category' field.
  7761. 145.80 s [really-safe-money-gen-source] [no-maintainer] No 'maintainer' field.
  7762. 145.80 s [really-safe-money-gen-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
  7763. 145.80 s [really-safe-money-gen-source] you want?
  7764. 145.80 s [really-safe-money-gen-source] [missing-upper-bounds] On library, these packages miss upper bounds:
  7765. 145.80 s [really-safe-money-gen-source] - QuickCheck
  7766. 145.80 s [really-safe-money-gen-source] - genvalidity
  7767. 145.80 s [really-safe-money-gen-source] - genvalidity-containers
  7768. 145.80 s [really-safe-money-gen-source] - really-safe-money
  7769. 145.80 s [really-safe-money-gen-source] Please add them. There is more information at https://pvp.haskell.org/
  7770. 145.80 s [really-safe-money-gen-source] Note: the public hackage server would reject this package.
  7771. 145.80 s [really-safe-money-gen-source] Building source dist for really-safe-money-gen-0.0.0.0...
  7772. 145.82 s [really-safe-money-gen-source] Source tarball created: dist/really-safe-money-gen-0.0.0.0.tar.gz
  7773. 145.83 s [really-safe-money-gen-source] Phase: haddockPhase
  7774. 145.84 s [really-safe-money-gen-source] Phase: installPhase
  7775. 145.85 s [really-safe-money-gen-source] Phase: fixupPhase
  7776. 145.88 s Progress: 9 of 13 built (2 building)
  7777. 145.99 s [really-safe-money-autodocodec] Phase: setupCompilerEnvironmentPhase
  7778. 146.00 s [really-safe-money-autodocodec] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  7779. 146.01 s [genvalidity-sydtest] Phase: checkPhase
  7780. 146.34 s [really-safe-money-autodocodec] Phase: unpackPhase
  7781. 146.34 s [really-safe-money-autodocodec] unpacking source archive /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/really-safe-money-autodocodec-0.0.0.0.tar.gz
  7782. 146.35 s [really-safe-money-autodocodec] source root is really-safe-money-autodocodec-0.0.0.0
  7783. 146.36 s [really-safe-money-autodocodec] setting SOURCE_DATE_EPOCH to timestamp 1778687845 of file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs"
  7784. 146.36 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
  7785. 146.37 s [really-safe-money-autodocodec] Phase: patchPhase
  7786. 146.38 s [really-safe-money-autodocodec] Phase: compileBuildDriverPhase
  7787. 146.38 s [really-safe-money-autodocodec] setupCompileFlags: -package-db=/build/tmp.kORGtIpJJB/setup-package.conf.d -threaded
  7788. 146.44 s [genvalidity-sydtest] Running 1 test suites...
  7789. 146.44 s [genvalidity-sydtest] Test suite genvalidity-sydtest-test: RUNNING...
  7790. 146.45 s [really-safe-money-autodocodec] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.kORGtIpJJB/Main.o )
  7791. 146.50 s [genvalidity-sydtest] Tests:
  7792. 146.50 s [genvalidity-sydtest]
  7793. 146.50 s [genvalidity-sydtest] Test.Syd.Validity.MonoidSpec
  7794. 146.50 s [genvalidity-sydtest] Monoid [Int]
  7795. 146.50 s [genvalidity-sydtest] mappend :: [Int] -> [Int] -> [Int]
  7796. 146.50 s [genvalidity-sydtest] ✓ is an associative operation for "valid :: ([Int],[Int],[Int])" 17.83 ms
  7797. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7798. 146.50 s [genvalidity-sydtest] mempty :: [Int]
  7799. 146.50 s [genvalidity-sydtest] ✓ is the identity for mappend :: [Int] -> [Int] -> [Int] for "valid :: [Int]" 6.34 ms
  7800. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7801. 146.50 s [genvalidity-sydtest] mconcat :: [[Int]] -> [Int]
  7802. 146.50 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "valid :: [[Int]]" 16.95 ms
  7803. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7804. 146.50 s [genvalidity-sydtest] Monoid [Int]
  7805. 146.50 s [genvalidity-sydtest] mconcat :: [[Int]] -> [Int]
  7806. 146.50 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "arbitrary :: [[Int]]" 16.84 ms
  7807. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7808. 146.50 s [genvalidity-sydtest] mempty :: [Int]
  7809. 146.50 s [genvalidity-sydtest] ✓ is the identity for mappend :: [Int] -> [Int] -> [Int] for "arbitrary :: [Int]" 3.94 ms
  7810. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7811. 146.50 s [genvalidity-sydtest] mappend :: [Int] -> [Int] -> [Int]
  7812. 146.50 s [genvalidity-sydtest] ✓ is an associative operation for "arbitrary :: ([Int],[Int],[Int])" 17.81 ms
  7813. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7814. 146.50 s [genvalidity-sydtest] Monoid ([Ratio Integer])
  7815. 146.50 s [genvalidity-sydtest] mappend :: ([Ratio Integer]) -> ([Ratio Integer]) -> ([Ratio Integer])
  7816. 146.50 s [genvalidity-sydtest] ✓ is an associative operation for "valid :: (([Ratio Integer],[Ratio Integer],[Ratio Integer]))" 33.54 ms
  7817. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7818. 146.50 s [genvalidity-sydtest] mempty :: ([Ratio Integer])
  7819. 146.50 s [genvalidity-sydtest] ✓ is the identity for mappend :: ([Ratio Integer]) -> ([Ratio Integer]) -> ([Ratio Integer]) for "valid :: ([Ratio Integer])" 30.08 ms
  7820. 146.50 s [genvalidity-sydtest] passed for all of 100 inputs.
  7821. 146.50 s [genvalidity-sydtest] mconcat :: [([Ratio Integer])] -> ([Ratio Integer])
  7822. 146.50 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "valid :: ([[Ratio Integer]])" 29.96 ms
  7823. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7824. 146.51 s [genvalidity-sydtest] Monoid [Char]
  7825. 146.51 s [genvalidity-sydtest] mappend :: [Char] -> [Char] -> [Char]
  7826. 146.51 s [genvalidity-sydtest] ✓ is an associative operation for "singleton list of 'a' :: ([Char],[Char],[Char])" 0.85 ms
  7827. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7828. 146.51 s [genvalidity-sydtest] mempty :: [Char]
  7829. 146.51 s [genvalidity-sydtest] ✓ is the identity for mappend :: [Char] -> [Char] -> [Char] for "singleton list of 'a' :: [Char]" 1.15 ms
  7830. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7831. 146.51 s [genvalidity-sydtest] mconcat :: [[Char]] -> [Char]
  7832. 146.51 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "singleton list of 'a' :: [[Char]]" 2.88 ms
  7833. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7834. 146.51 s [genvalidity-sydtest] Test.Syd.Validity.OrdSpec
  7835. 146.51 s [genvalidity-sydtest] Ord (Ratio Integer)
  7836. 146.51 s [genvalidity-sydtest] "max :: (Ratio Integer -> Ratio Integer -> Ratio Integer)"
  7837. 146.51 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "valid (Ratio Integer)"'s 25.06 ms
  7838. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7839. 146.51 s [genvalidity-sydtest] (>=) :: (Ratio Integer) -> (Ratio Integer) -> Bool
  7840. 146.51 s [genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 5.15 ms
  7841. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7842. 146.51 s [genvalidity-sydtest] ✓ is antisymmetric for "valid (Ratio Integer)"'s 16.73 ms
  7843. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7844. 146.51 s [genvalidity-sydtest] ✓ is reflexive for "valid (Ratio Integer)"'s 2.06 ms
  7845. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7846. 146.51 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "valid (Ratio Integer)"'s 16.60 ms
  7847. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7848. 146.51 s [genvalidity-sydtest] "min :: (Ratio Integer -> Ratio Integer -> Ratio Integer)"
  7849. 146.51 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "valid (Ratio Integer)"'s 17.22 ms
  7850. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7851. 146.51 s [genvalidity-sydtest] (<=) :: (Ratio Integer) -> (Ratio Integer) -> Bool
  7852. 146.51 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "valid (Ratio Integer)"'s 13.87 ms
  7853. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7854. 146.51 s [genvalidity-sydtest] ✓ is reflexive for "valid (Ratio Integer)"'s 13.93 ms
  7855. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7856. 146.51 s [genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 21.81 ms
  7857. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7858. 146.51 s [genvalidity-sydtest] ✓ is antisymmetric for "valid (Ratio Integer)"'s 16.28 ms
  7859. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7860. 146.51 s [genvalidity-sydtest] (>) :: (Ratio Integer) -> (Ratio Integer) -> Bool
  7861. 146.51 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "valid (Ratio Integer)"'s 16.25 ms
  7862. 146.51 s [genvalidity-sydtest] passed for all of 100 inputs.
  7863. 146.51 s [genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 16.22 ms
  7864. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7865. 146.52 s [genvalidity-sydtest] ✓ is antireflexive for "valid (Ratio Integer)"'s 16.23 ms
  7866. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7867. 146.52 s [genvalidity-sydtest] (<) :: (Ratio Integer) -> (Ratio Integer) -> Bool
  7868. 146.52 s [genvalidity-sydtest] ✓ is antireflexive for "valid (Ratio Integer)"'s 11.99 ms
  7869. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7870. 146.52 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "valid (Ratio Integer)"'s 12.52 ms
  7871. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7872. 146.52 s [genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 14.83 ms
  7873. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7874. 146.52 s [genvalidity-sydtest] Ord Int
  7875. 146.52 s [genvalidity-sydtest] (<=) :: Int -> Int -> Bool
  7876. 146.52 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "arbitrary Int"'s 9.12 ms
  7877. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7878. 146.52 s [genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 9.28 ms
  7879. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7880. 146.52 s [genvalidity-sydtest] ✓ is reflexive for "arbitrary Int"'s 8.72 ms
  7881. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7882. 146.52 s [genvalidity-sydtest] ✓ is antisymmetric for "arbitrary Int"'s 18.53 ms
  7883. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7884. 146.52 s [genvalidity-sydtest] "min :: (Int -> Int -> Int)"
  7885. 146.52 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "arbitrary Int"'s 17.16 ms
  7886. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7887. 146.52 s [genvalidity-sydtest] (>) :: Int -> Int -> Bool
  7888. 146.52 s [genvalidity-sydtest] ✓ is antireflexive for "arbitrary Int"'s 15.41 ms
  7889. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7890. 146.52 s [genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 16.08 ms
  7891. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7892. 146.52 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "arbitrary Int"'s 14.60 ms
  7893. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7894. 146.52 s [genvalidity-sydtest] "max :: (Int -> Int -> Int)"
  7895. 146.52 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "arbitrary Int"'s 14.53 ms
  7896. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7897. 146.52 s [genvalidity-sydtest] (<) :: Int -> Int -> Bool
  7898. 146.52 s [genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 14.14 ms
  7899. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7900. 146.52 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "arbitrary Int"'s 14.10 ms
  7901. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7902. 146.52 s [genvalidity-sydtest] ✓ is antireflexive for "arbitrary Int"'s 13.25 ms
  7903. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7904. 146.52 s [genvalidity-sydtest] (>=) :: Int -> Int -> Bool
  7905. 146.52 s [genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 13.22 ms
  7906. 146.52 s [genvalidity-sydtest] passed for all of 100 inputs.
  7907. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "arbitrary Int"'s 13.19 ms
  7908. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7909. 146.54 s [genvalidity-sydtest] ✓ is reflexive for "arbitrary Int"'s 13.15 ms
  7910. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7911. 146.54 s [genvalidity-sydtest] ✓ is antisymmetric for "arbitrary Int"'s 12.75 ms
  7912. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7913. 146.54 s [genvalidity-sydtest] Ord Int
  7914. 146.54 s [genvalidity-sydtest] (>=) :: Int -> Int -> Bool
  7915. 146.54 s [genvalidity-sydtest] ✓ is antisymmetric for "valid Int"'s 12.29 ms
  7916. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7917. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "valid Int"'s 12.35 ms
  7918. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7919. 146.54 s [genvalidity-sydtest] ✓ is transitive for "valid Int"'s 12.41 ms
  7920. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7921. 146.54 s [genvalidity-sydtest] ✓ is reflexive for "valid Int"'s 12.40 ms
  7922. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7923. 146.54 s [genvalidity-sydtest] "max :: (Int -> Int -> Int)"
  7924. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "valid Int"'s 10.59 ms
  7925. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7926. 146.54 s [genvalidity-sydtest] "min :: (Int -> Int -> Int)"
  7927. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "valid Int"'s 10.60 ms
  7928. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7929. 146.54 s [genvalidity-sydtest] (>) :: Int -> Int -> Bool
  7930. 146.54 s [genvalidity-sydtest] ✓ is antireflexive for "valid Int"'s 10.20 ms
  7931. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7932. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "valid Int"'s 10.58 ms
  7933. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7934. 146.54 s [genvalidity-sydtest] ✓ is transitive for "valid Int"'s 10.20 ms
  7935. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7936. 146.54 s [genvalidity-sydtest] (<) :: Int -> Int -> Bool
  7937. 146.54 s [genvalidity-sydtest] ✓ is antireflexive for "valid Int"'s 10.00 ms
  7938. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7939. 146.54 s [genvalidity-sydtest] ✓ is transitive for "valid Int"'s 5.46 ms
  7940. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7941. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "valid Int"'s 5.63 ms
  7942. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7943. 146.54 s [genvalidity-sydtest] (<=) :: Int -> Int -> Bool
  7944. 146.54 s [genvalidity-sydtest] ✓ is antisymmetric for "valid Int"'s 5.47 ms
  7945. 146.54 s [genvalidity-sydtest] passed for all of 100 inputs.
  7946. 146.54 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "valid Int"'s 2.34 ms
  7947. 146.55 s [genvalidity-sydtest] passed for all of 100 inputs.
  7948. 146.55 s [genvalidity-sydtest] ✓ is transitive for "valid Int"'s 2.23 ms
  7949. 146.55 s [genvalidity-sydtest] passed for all of 100 inputs.
  7950. 146.55 s [genvalidity-sydtest] ✓ is reflexive for "valid Int"'s 1.48 ms
  7951. 146.55 s [genvalidity-sydtest] passed for all of 100 inputs.
  7952. 146.55 s [genvalidity-sydtest] Ord Int
  7953. 146.55 s [genvalidity-sydtest] (>=) :: Int -> Int -> Bool
  7954. 146.55 s [genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.43 ms
  7955. 146.55 s [genvalidity-sydtest] passed for all of 100 inputs.
  7956. 146.55 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "even Int"'s 2.46 ms
  7957. 146.55 s [genvalidity-sydtest] passed for all of 100 inputs.
  7958. 146.55 s [genvalidity-sydtest] ✓ is antisymmetric for "even Int"'s 2.71 ms
  7959. 146.55 s [genvalidity-sydtest] passed for all of 100 inputs.
  7960. 146.55 s [really-safe-money-autodocodec] [2 of 2] Linking Setup
  7961. 146.81 s [genvalidity-sydtest] ✓ is reflexive for "even Int"'s 2.35 ms
  7962. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7963. 146.81 s [genvalidity-sydtest] (<) :: Int -> Int -> Bool
  7964. 146.81 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "even Int"'s 2.37 ms
  7965. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7966. 146.81 s [genvalidity-sydtest] ✓ is antireflexive for "even Int"'s 2.40 ms
  7967. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7968. 146.81 s [genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.63 ms
  7969. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7970. 146.81 s [genvalidity-sydtest] (>) :: Int -> Int -> Bool
  7971. 146.81 s [genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.60 ms
  7972. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7973. 146.81 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "even Int"'s 2.37 ms
  7974. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7975. 146.81 s [genvalidity-sydtest] ✓ is antireflexive for "even Int"'s 2.61 ms
  7976. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7977. 146.81 s [genvalidity-sydtest] "max :: (Int -> Int -> Int)"
  7978. 146.81 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "even Int"'s 2.56 ms
  7979. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7980. 146.81 s [genvalidity-sydtest] "min :: (Int -> Int -> Int)"
  7981. 146.81 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "even Int"'s 2.74 ms
  7982. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7983. 146.81 s [genvalidity-sydtest] (<=) :: Int -> Int -> Bool
  7984. 146.81 s [genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.64 ms
  7985. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7986. 146.81 s [genvalidity-sydtest] ✓ is reflexive for "even Int"'s 2.64 ms
  7987. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7988. 146.81 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "even Int"'s 2.72 ms
  7989. 146.81 s [genvalidity-sydtest] passed for all of 100 inputs.
  7990. 146.82 s [genvalidity-sydtest] ✓ is antisymmetric for "even Int"'s 2.72 ms
  7991. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  7992. 146.82 s [genvalidity-sydtest] Test.Syd.Validity.MonadSpec
  7993. 146.82 s [genvalidity-sydtest] Monad []
  7994. 146.82 s [genvalidity-sydtest] relation with Applicative []
  7995. 146.82 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "[] of ints :: [Int]" 2.42 ms
  7996. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  7997. 146.82 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "[] of ints :: [Int]" and "[] of ints :: [Int]" 24.31 ms
  7998. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  7999. 146.82 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "[] of additions :: ([Int -> Int])" and "[] of ints :: [Int]" 3.16 ms
  8000. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8001. 146.82 s [genvalidity-sydtest] relation with Functor []
  8002. 146.82 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "[] of ints :: [Int]" 3.71 ms
  8003. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8004. 146.82 s [genvalidity-sydtest] (>>=) :: [] a -> (b -> [] a) -> [] b
  8005. 146.82 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "[] of ints :: [Int]" "perturbations using the int :: (Int -> [Int])" and "perturbations using the double the int :: (Int -> [Int])" 319.00 ms
  8006. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8007. 146.82 s [genvalidity-sydtest] return :: a -> [] a and (>>=) :: [] a -> (b -> [] a) -> [] b
  8008. 146.82 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> [Int])" 2.95 ms
  8009. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8010. 146.82 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "[] of ints :: [Int]" 3.94 ms
  8011. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8012. 146.82 s [genvalidity-sydtest] Monad Maybe
  8013. 146.82 s [genvalidity-sydtest] (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
  8014. 146.82 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "Maybe of ints :: (Maybe Int)" "perturbations using the int :: (Int -> Maybe Int)" and "perturbations using the double the int :: (Int -> Maybe Int)" 2.15 ms
  8015. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8016. 146.82 s [genvalidity-sydtest] return :: a -> Maybe a and (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
  8017. 146.82 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "Maybe of ints :: (Maybe Int)" 3.18 ms
  8018. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8019. 146.82 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> Maybe Int)" 3.07 ms
  8020. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8021. 146.82 s [genvalidity-sydtest] relation with Functor Maybe
  8022. 146.82 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "Maybe of ints :: (Maybe Int)" 3.07 ms
  8023. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8024. 146.82 s [genvalidity-sydtest] relation with Applicative Maybe
  8025. 146.82 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "Maybe of additions :: (Maybe (Int -> Int))" and "Maybe of ints :: (Maybe Int)" 2.01 ms
  8026. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8027. 146.82 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "Maybe of ints :: (Maybe Int)" 1.88 ms
  8028. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8029. 146.82 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "Maybe of ints :: (Maybe Int)" and "Maybe of ints :: (Maybe Int)" 2.09 ms
  8030. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8031. 146.82 s [genvalidity-sydtest] Monad Maybe
  8032. 146.82 s [genvalidity-sydtest] (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
  8033. 146.82 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "Maybe of ints :: (Maybe Int)" "perturbations using the int :: (Int -> Maybe Int)" and "perturbations using the double the int :: (Int -> Maybe Int)" 1.95 ms
  8034. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8035. 146.82 s [genvalidity-sydtest] relation with Applicative Maybe
  8036. 146.82 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "Maybe of ints :: (Maybe Int)" 1.88 ms
  8037. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8038. 146.82 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "Maybe of ints :: (Maybe Int)" and "Maybe of ints :: (Maybe Int)" 2.10 ms
  8039. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8040. 146.82 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "Maybe of additions :: (Maybe (Int -> Int))" and "Maybe of ints :: (Maybe Int)" 2.31 ms
  8041. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8042. 146.82 s [genvalidity-sydtest] return :: a -> Maybe a and (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
  8043. 146.82 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "Maybe of ints :: (Maybe Int)" 2.18 ms
  8044. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8045. 146.82 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> Maybe Int)" 2.23 ms
  8046. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8047. 146.82 s [genvalidity-sydtest] relation with Functor Maybe
  8048. 146.82 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "Maybe of ints :: (Maybe Int)" 2.22 ms
  8049. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8050. 146.82 s [genvalidity-sydtest] Monad (Either Int)
  8051. 146.82 s [genvalidity-sydtest] return :: a -> (Either Int) a and (>>=) :: (Either Int) a -> (b -> (Either Int) a) -> (Either Int) b
  8052. 146.82 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "(Either Int) of ints :: (Either Int Int)" 2.26 ms
  8053. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8054. 146.82 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> Either Int Int)" 2.15 ms
  8055. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8056. 146.82 s [genvalidity-sydtest] relation with Applicative (Either Int)
  8057. 146.82 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "(Either Int) of additions :: (Either Int (Int -> Int))" and "(Either Int) of ints :: (Either Int Int)" 2.12 ms
  8058. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8059. 146.82 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "(Either Int) of ints :: (Either Int Int)" 1.99 ms
  8060. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8061. 146.82 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "(Either Int) of ints :: (Either Int Int)" and "(Either Int) of ints :: (Either Int Int)" 2.43 ms
  8062. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8063. 146.82 s [genvalidity-sydtest] (>>=) :: (Either Int) a -> (b -> (Either Int) a) -> (Either Int) b
  8064. 146.82 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "(Either Int) of ints :: (Either Int Int)" "perturbations using the int :: (Int -> Either Int Int)" and "perturbations using the double the int :: (Int -> Either Int Int)" 2.44 ms
  8065. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8066. 146.82 s [genvalidity-sydtest] relation with Functor (Either Int)
  8067. 146.82 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "(Either Int) of ints :: (Either Int Int)" 2.51 ms
  8068. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8069. 146.82 s [genvalidity-sydtest] Monad Maybe
  8070. 146.82 s [genvalidity-sydtest] relation with Functor Maybe
  8071. 146.82 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "appends :: ([Char] -> [Char])" and "Just an ABC :: (Maybe [Char])" 3.00 ms
  8072. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8073. 146.82 s [genvalidity-sydtest] relation with Applicative Maybe
  8074. 146.82 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "Just an ABC :: (Maybe [Char])" 5.59 ms
  8075. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8076. 146.82 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "Just an ABC :: (Maybe [Char])" and "Just an ABC :: (Maybe [Char])" 2.72 ms
  8077. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8078. 146.82 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "append 'a' in Just :: (Maybe ([Char] -> [Char]))" and "Just an ABC :: (Maybe [Char])" 5.50 ms
  8079. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8080. 146.82 s [genvalidity-sydtest] (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
  8081. 146.82 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "Just an ABC :: (Maybe [Char])" "justisation :: ([Char] -> Maybe [Char])" and "justisation :: ([Char] -> Maybe [Char])" 4.86 ms
  8082. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8083. 146.82 s [genvalidity-sydtest] return :: a -> Maybe a and (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
  8084. 146.82 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "Just an ABC :: (Maybe [Char])" 4.84 ms
  8085. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8086. 146.82 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "ABC :: [Char]" and "justisation :: ([Char] -> Maybe [Char])" 4.82 ms
  8087. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8088. 146.82 s [genvalidity-sydtest] Monad []
  8089. 146.82 s [genvalidity-sydtest] (>>=) :: [] a -> (b -> [] a) -> [] b
  8090. 146.82 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "list of fives :: [Int]" "singletonisation :: (Int -> [Int])" and "singletonisation :: (Int -> [Int])" 13.72 ms
  8091. 146.82 s [genvalidity-sydtest] passed for all of 100 inputs.
  8092. 146.82 s [genvalidity-sydtest] return :: a -> [] a and (>>=) :: [] a -> (b -> [] a) -> [] b
  8093. 146.82 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "list of fives :: [Int]" 13.61 ms
  8094. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8095. 146.83 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "four :: Int" and "singletonisation :: (Int -> [Int])" 6.14 ms
  8096. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8097. 146.83 s [genvalidity-sydtest] relation with Applicative []
  8098. 146.83 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "list of fives :: [Int]" 6.11 ms
  8099. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8100. 146.83 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "list of fives :: [Int]" and "list of sixes :: [Int]" 14.53 ms
  8101. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8102. 146.83 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "increment in list :: ([Int -> Int])" and "list of fives :: [Int]" 13.52 ms
  8103. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8104. 146.83 s [genvalidity-sydtest] relation with Functor []
  8105. 146.83 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "factorisations :: (Int -> Int)" and "list of fives :: [Int]" 13.90 ms
  8106. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8107. 146.83 s [genvalidity-sydtest] Monad []
  8108. 146.83 s [genvalidity-sydtest] relation with Functor []
  8109. 146.83 s [genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "[] of ints :: [Int]" 13.42 ms
  8110. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8111. 146.83 s [genvalidity-sydtest] (>>=) :: [] a -> (b -> [] a) -> [] b
  8112. 146.83 s [genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "[] of ints :: [Int]" "perturbations using the int :: (Int -> [Int])" and "perturbations using the double the int :: (Int -> [Int])" 222.18 ms
  8113. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8114. 146.83 s [genvalidity-sydtest] relation with Applicative []
  8115. 146.83 s [genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "[] of ints :: [Int]" and "[] of ints :: [Int]" 15.51 ms
  8116. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8117. 146.83 s [genvalidity-sydtest] ✓ satisfies 'pure = return' for "[] of ints :: [Int]" 13.12 ms
  8118. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8119. 146.83 s [genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "[] of additions :: ([Int -> Int])" and "[] of ints :: [Int]" 13.16 ms
  8120. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8121. 146.83 s [genvalidity-sydtest] return :: a -> [] a and (>>=) :: [] a -> (b -> [] a) -> [] b
  8122. 146.83 s [genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> [Int])" 13.28 ms
  8123. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8124. 146.83 s [genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "[] of ints :: [Int]" 13.14 ms
  8125. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8126. 146.83 s [genvalidity-sydtest] Test.Syd.Validity.EqSpec
  8127. 146.83 s [genvalidity-sydtest] Eq (Ratio Integer)
  8128. 146.83 s [genvalidity-sydtest] (==) :: (Ratio Integer) -> (Ratio Integer) -> Bool
  8129. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "valid (Ratio Integer)"s 13.14 ms
  8130. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8131. 146.83 s [genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"s 13.57 ms
  8132. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8133. 146.83 s [genvalidity-sydtest] ✓ is reflexive for "valid (Ratio Integer)"s 13.16 ms
  8134. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8135. 146.83 s [genvalidity-sydtest] ✓ is symmetric for "valid (Ratio Integer)"s 13.19 ms
  8136. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8137. 146.83 s [genvalidity-sydtest] (/=) :: (Ratio Integer) -> (Ratio Integer) -> Bool
  8138. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "valid (Ratio Integer)"s 13.14 ms
  8139. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8140. 146.83 s [genvalidity-sydtest] ✓ is antireflexive for "valid (Ratio Integer)"s 12.57 ms
  8141. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8142. 146.83 s [genvalidity-sydtest] Eq Int
  8143. 146.83 s [genvalidity-sydtest] (==) :: Int -> Int -> Bool
  8144. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "valid Int"s 12.93 ms
  8145. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8146. 146.83 s [genvalidity-sydtest] ✓ is reflexive for "valid Int"s 11.19 ms
  8147. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8148. 146.83 s [genvalidity-sydtest] ✓ is transitive for "valid Int"s 11.21 ms
  8149. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8150. 146.83 s [genvalidity-sydtest] ✓ is symmetric for "valid Int"s 11.25 ms
  8151. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8152. 146.83 s [genvalidity-sydtest] (/=) :: Int -> Int -> Bool
  8153. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "valid Int"s 11.07 ms
  8154. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8155. 146.83 s [genvalidity-sydtest] ✓ is antireflexive for "valid Int"s 9.83 ms
  8156. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8157. 146.83 s [genvalidity-sydtest] Eq Int
  8158. 146.83 s [genvalidity-sydtest] (==) :: Int -> Int -> Bool
  8159. 146.83 s [genvalidity-sydtest] ✓ is transitive for "arbitrary Int"s 9.81 ms
  8160. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8161. 146.83 s [genvalidity-sydtest] ✓ is symmetric for "arbitrary Int"s 9.86 ms
  8162. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8163. 146.83 s [genvalidity-sydtest] ✓ is reflexive for "arbitrary Int"s 2.47 ms
  8164. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8165. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "arbitrary Int"s 2.42 ms
  8166. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8167. 146.83 s [genvalidity-sydtest] (/=) :: Int -> Int -> Bool
  8168. 146.83 s [genvalidity-sydtest] ✓ is antireflexive for "arbitrary Int"s 2.55 ms
  8169. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8170. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "arbitrary Int"s 2.43 ms
  8171. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8172. 146.83 s [genvalidity-sydtest] Eq Int
  8173. 146.83 s [genvalidity-sydtest] (/=) :: Int -> Int -> Bool
  8174. 146.83 s [genvalidity-sydtest] ✓ is antireflexive for "even Int"s 2.39 ms
  8175. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8176. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "even Int"s 2.47 ms
  8177. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8178. 146.83 s [genvalidity-sydtest] (==) :: Int -> Int -> Bool
  8179. 146.83 s [genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "even Int"s 2.63 ms
  8180. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8181. 146.83 s [genvalidity-sydtest] ✓ is symmetric for "even Int"s 2.38 ms
  8182. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8183. 146.83 s [genvalidity-sydtest] ✓ is reflexive for "even Int"s 2.27 ms
  8184. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8185. 146.83 s [genvalidity-sydtest] ✓ is transitive for "even Int"s 2.04 ms
  8186. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8187. 146.83 s [genvalidity-sydtest] Test.Syd.Validity.ArbitrarySpec
  8188. 146.83 s [genvalidity-sydtest] Arbitrary Int
  8189. 146.83 s [genvalidity-sydtest] arbitrary :: Gen Int
  8190. 146.83 s [genvalidity-sydtest] ✓ only generates valid values 4.41 ms
  8191. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8192. 146.83 s [genvalidity-sydtest] Test.Syd.Validity.Operations.CommutativitySpec
  8193. 146.83 s [genvalidity-sydtest] commutative
  8194. 146.83 s [genvalidity-sydtest] ✓ cross product is not commutative 25.50 ms
  8195. 146.83 s [genvalidity-sydtest] passed for all of 1 inputs.
  8196. 146.83 s [genvalidity-sydtest] ✓ + is commutative 13.75 ms
  8197. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8198. 146.83 s [genvalidity-sydtest] ✓ * is commutative 13.49 ms
  8199. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8200. 146.83 s [genvalidity-sydtest] ✓ - is not commutative 73.57 ms
  8201. 146.83 s [genvalidity-sydtest] passed for all of 1 inputs.
  8202. 146.83 s [genvalidity-sydtest] ✓ dot product is commutative 14.06 ms
  8203. 146.83 s [genvalidity-sydtest] passed for all of 100 inputs.
  8204. 146.83 s [genvalidity-sydtest] Test.Syd.Validity.GenValiditySpec
  8205. 146.83 s [genvalidity-sydtest] GenValid (Ratio Integer)
  8206. 146.84 s [genvalidity-sydtest] genValid :: Gen (Ratio Integer)
  8207. 146.84 s [genvalidity-sydtest] ✓ only generates valid '(Ratio Integer)'s 13.89 ms
  8208. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8209. 146.84 s [genvalidity-sydtest] GenValid (Ratio Integer)
  8210. 146.84 s [genvalidity-sydtest] genValid :: Gen (Ratio Integer)
  8211. 146.84 s [genvalidity-sydtest] ✓ only generates valid '(Ratio Integer)'s 12.88 ms
  8212. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8213. 146.84 s [genvalidity-sydtest] Test.Syd.Validity.ShrinkingSpec
  8214. 146.84 s [genvalidity-sydtest] shrinkValid :: (Int -> [Int])
  8215. 146.84 s [genvalidity-sydtest] ✓ preserves validity 18.12 ms
  8216. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8217. 146.84 s [genvalidity-sydtest] ✓ never shrinks to itself for valid values 18.10 ms
  8218. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8219. 146.84 s [genvalidity-sydtest] shrinkValidPreservesValidOnGenValid
  8220. 146.84 s [genvalidity-sydtest] ✓ [Ordering] 41.64 ms
  8221. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8222. 146.84 s [genvalidity-sydtest] ✓ Ordering 12.71 ms
  8223. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8224. 146.84 s [genvalidity-sydtest] shrinkValid :: (Ratio Int8 -> [Ratio Int8])
  8225. 146.84 s [genvalidity-sydtest] ✓ never shrinks to itself for valid values 23.65 ms
  8226. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8227. 146.84 s [genvalidity-sydtest] ✓ preserves validity 23.75 ms
  8228. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8229. 146.84 s [genvalidity-sydtest] shrinkValidDoesNotShrinkToItself
  8230. 146.84 s [genvalidity-sydtest] ✓ [Int] 162.28 ms
  8231. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8232. 146.84 s [genvalidity-sydtest] ✓ Int 22.09 ms
  8233. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8234. 146.84 s [genvalidity-sydtest] shrinkValidDoesNotShrinkToItself
  8235. 146.84 s [genvalidity-sydtest] ✓ [Ordering] 23.59 ms
  8236. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8237. 146.84 s [genvalidity-sydtest] ✓ Ordering 13.48 ms
  8238. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8239. 146.84 s [genvalidity-sydtest] shrinkValidPreservesValidOnGenValid
  8240. 146.84 s [genvalidity-sydtest] ✓ Ordering 19.40 ms
  8241. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8242. 146.84 s [genvalidity-sydtest] ✓ [Ordering] 51.79 ms
  8243. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8244. 146.84 s [genvalidity-sydtest] Test.Syd.Validity.FunctorSpec
  8245. 146.84 s [genvalidity-sydtest] Functor Maybe
  8246. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> Maybe a -> Maybe b
  8247. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "Just an ABC :: (Maybe [Char])" 's given to "prepends :: ([Char] -> [Char])" and "appends :: ([Char] -> [Char])" 22.07 ms
  8248. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8249. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "Just an ABC :: (Maybe [Char])" 21.79 ms
  8250. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8251. 146.84 s [genvalidity-sydtest] (<$) :: a -> Maybe b -> Maybe a
  8252. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "ABC :: [Char]" and "Just an ABC :: (Maybe [Char])" 19.43 ms
  8253. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8254. 146.84 s [genvalidity-sydtest] Functor []
  8255. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> [] a -> [] b
  8256. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "list of fives :: [Int]" 21.91 ms
  8257. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8258. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "list of fives :: [Int]" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 23.20 ms
  8259. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8260. 146.84 s [genvalidity-sydtest] (<$) :: a -> [] b -> [] a
  8261. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "four :: Int" and "list of fives :: [Int]" 19.66 ms
  8262. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8263. 146.84 s [genvalidity-sydtest] Functor []
  8264. 146.84 s [genvalidity-sydtest] (<$) :: a -> [] b -> [] a
  8265. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "[] of ints :: [Int]" 19.11 ms
  8266. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8267. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> [] a -> [] b
  8268. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "[] of ints :: [Int]" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 16.28 ms
  8269. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8270. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "[] of ints :: [Int]" 13.95 ms
  8271. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8272. 146.84 s [genvalidity-sydtest] Functor (Either Int)
  8273. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> (Either Int) a -> (Either Int) b
  8274. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "(Either Int) of ints :: (Either Int Int)" 15.17 ms
  8275. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8276. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "(Either Int) of ints :: (Either Int Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 15.28 ms
  8277. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8278. 146.84 s [genvalidity-sydtest] (<$) :: a -> (Either Int) b -> (Either Int) a
  8279. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "(Either Int) of ints :: (Either Int Int)" 15.10 ms
  8280. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8281. 146.84 s [genvalidity-sydtest] Functor []
  8282. 146.84 s [genvalidity-sydtest] (<$) :: a -> [] b -> [] a
  8283. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "[] of ints :: [Int]" 19.64 ms
  8284. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8285. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> [] a -> [] b
  8286. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "[] of ints :: [Int]" 14.42 ms
  8287. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8288. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "[] of ints :: [Int]" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 20.44 ms
  8289. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8290. 146.84 s [genvalidity-sydtest] Functor Maybe
  8291. 146.84 s [genvalidity-sydtest] (<$) :: a -> Maybe b -> Maybe a
  8292. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "Maybe of ints :: (Maybe Int)" 17.54 ms
  8293. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8294. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> Maybe a -> Maybe b
  8295. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "Maybe of ints :: (Maybe Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 18.90 ms
  8296. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8297. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "Maybe of ints :: (Maybe Int)" 14.96 ms
  8298. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8299. 146.84 s [genvalidity-sydtest] Functor ((,) Int)
  8300. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> ((,) Int) a -> ((,) Int) b
  8301. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "((,) Int) of ints :: (Int,Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 16.50 ms
  8302. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8303. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "((,) Int) of ints :: (Int,Int)" 10.32 ms
  8304. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8305. 146.84 s [genvalidity-sydtest] (<$) :: a -> ((,) Int) b -> ((,) Int) a
  8306. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "((,) Int) of ints :: (Int,Int)" 13.44 ms
  8307. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8308. 146.84 s [genvalidity-sydtest] Functor Maybe
  8309. 146.84 s [genvalidity-sydtest] (<$) :: a -> Maybe b -> Maybe a
  8310. 146.84 s [genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "Maybe of ints :: (Maybe Int)" 16.23 ms
  8311. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8312. 146.84 s [genvalidity-sydtest] fmap :: (a -> b) -> Maybe a -> Maybe b
  8313. 146.84 s [genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "Maybe of ints :: (Maybe Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 16.24 ms
  8314. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8315. 146.84 s [genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "Maybe of ints :: (Maybe Int)" 17.99 ms
  8316. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8317. 146.84 s [genvalidity-sydtest] Test.Syd.Validity.ShowSpec
  8318. 146.84 s [genvalidity-sydtest] Show (Ratio Integer) and Read (Ratio Integer)
  8319. 146.84 s [genvalidity-sydtest] ✓ are implemented such that read . show == id for arbitrary values 22.59 ms
  8320. 146.84 s [genvalidity-sydtest] passed for all of 100 inputs.
  8321. 146.84 s [genvalidity-sydtest] Show Int and Read Int
  8322. 146.85 s [genvalidity-sydtest] ✓ are implemented such that read . show == id for valid values 17.93 ms
  8323. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8324. 146.85 s [genvalidity-sydtest] Show (Ratio Integer) and Read (Ratio Integer)
  8325. 146.85 s [genvalidity-sydtest] ✓ are implemented such that read . show == id for valid values 22.53 ms
  8326. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8327. 146.85 s [genvalidity-sydtest] Show Int and Read Int
  8328. 146.85 s [genvalidity-sydtest] ✓ are implemented such that read . show == id for even values 22.49 ms
  8329. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8330. 146.85 s [genvalidity-sydtest] Test.Syd.Validity.ApplicativeSpec
  8331. 146.85 s [genvalidity-sydtest] Applicative []
  8332. 146.85 s [genvalidity-sydtest] (*>) :: [] a -> [] b -> [] b
  8333. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "[] of ints :: [Int]" in front of "[] of ints :: Int" 29.77 ms
  8334. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8335. 146.85 s [genvalidity-sydtest] pure :: a -> [] a and (<*>) :: [] (a -> b) -> [] a -> [] b
  8336. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "[] of increments :: ([Int -> Int])" sequenced with "int :: Int" 20.24 ms
  8337. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8338. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "[] of ints :: [Int]" 24.07 ms
  8339. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8340. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "[] of ints :: [Int]" 24.96 ms
  8341. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8342. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "[] of scalings :: ([Int -> Int])" composed with "[] of increments :: ([Int -> Int])" and applied to "[] of ints :: [Int]" 25.46 ms
  8343. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8344. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 24.75 ms
  8345. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8346. 146.85 s [genvalidity-sydtest] (<*) :: [] a -> [] b -> [] a
  8347. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "[] of ints :: Int" behind "[] of ints :: [Int]" 35.86 ms
  8348. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8349. 146.85 s [genvalidity-sydtest] Applicative (Either Int)
  8350. 146.85 s [genvalidity-sydtest] (*>) :: (Either Int) a -> (Either Int) b -> (Either Int) b
  8351. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "(Either Int) of ints :: (Either Int Int)" in front of "(Either Int) of ints :: Int" 20.31 ms
  8352. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8353. 146.85 s [genvalidity-sydtest] (<*) :: (Either Int) a -> (Either Int) b -> (Either Int) a
  8354. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "(Either Int) of ints :: Int" behind "(Either Int) of ints :: (Either Int Int)" 20.32 ms
  8355. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8356. 146.85 s [genvalidity-sydtest] pure :: a -> (Either Int) a and (<*>) :: (Either Int) (a -> b) -> (Either Int) a -> (Either Int) b
  8357. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "(Either Int) of ints :: (Either Int Int)" 18.38 ms
  8358. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8359. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "(Either Int) of ints :: (Either Int Int)" 17.40 ms
  8360. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8361. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "(Either Int) of scalings :: (Either Int (Int -> Int))" composed with "(Either Int) of increments :: (Either Int (Int -> Int))" and applied to "(Either Int) of ints :: (Either Int Int)" 17.87 ms
  8362. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8363. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 15.08 ms
  8364. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8365. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "(Either Int) of increments :: (Either Int (Int -> Int))" sequenced with "int :: Int" 15.28 ms
  8366. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8367. 146.85 s [genvalidity-sydtest] Applicative Maybe
  8368. 146.85 s [genvalidity-sydtest] pure :: a -> Maybe a and (<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b
  8369. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 15.39 ms
  8370. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8371. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "Maybe of increments :: (Maybe (Int -> Int))" sequenced with "int :: Int" 15.21 ms
  8372. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8373. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "Maybe of ints :: (Maybe Int)" 15.39 ms
  8374. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8375. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "Maybe of scalings :: (Maybe (Int -> Int))" composed with "Maybe of increments :: (Maybe (Int -> Int))" and applied to "Maybe of ints :: (Maybe Int)" 12.20 ms
  8376. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8377. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "Maybe of ints :: (Maybe Int)" 16.84 ms
  8378. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8379. 146.85 s [genvalidity-sydtest] (<*) :: Maybe a -> Maybe b -> Maybe a
  8380. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "Maybe of ints :: Int" behind "Maybe of ints :: (Maybe Int)" 16.90 ms
  8381. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8382. 146.85 s [genvalidity-sydtest] (*>) :: Maybe a -> Maybe b -> Maybe b
  8383. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "Maybe of ints :: (Maybe Int)" in front of "Maybe of ints :: Int" 13.93 ms
  8384. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8385. 146.85 s [genvalidity-sydtest] Applicative Maybe
  8386. 146.85 s [genvalidity-sydtest] (<*) :: Maybe a -> Maybe b -> Maybe a
  8387. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "purely Nothing :: [Char]" behind "Just an ABC :: (Maybe [Char])" 13.98 ms
  8388. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8389. 146.85 s [genvalidity-sydtest] (*>) :: Maybe a -> Maybe b -> Maybe b
  8390. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "Just an ABC :: (Maybe [Char])" in front of "purely Nothing :: [Char]" 13.81 ms
  8391. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8392. 146.85 s [genvalidity-sydtest] pure :: a -> Maybe a and (<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b
  8393. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "Just an ABC :: (Maybe [Char])" 12.29 ms
  8394. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8395. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "prepends :: ([Char] -> [Char])" mapped over "Just an ABC :: (Maybe [Char])" 11.75 ms
  8396. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8397. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "prepends :: ([Char] -> [Char])" sequenced with "ABC :: [Char]" 11.74 ms
  8398. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8399. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "appends in a Just :: (Maybe ([Char] -> [Char]))" composed with "prepends in a Just :: (Maybe ([Char] -> [Char]))" and applied to "Just an ABC :: (Maybe [Char])" 11.09 ms
  8400. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8401. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "prepends in a Just :: (Maybe ([Char] -> [Char]))" sequenced with "ABC :: [Char]" 7.85 ms
  8402. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8403. 146.85 s [genvalidity-sydtest] Applicative []
  8404. 146.85 s [genvalidity-sydtest] (*>) :: [] a -> [] b -> [] b
  8405. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "[] of ints :: [Int]" in front of "[] of ints :: Int" 20.95 ms
  8406. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8407. 146.85 s [genvalidity-sydtest] pure :: a -> [] a and (<*>) :: [] (a -> b) -> [] a -> [] b
  8408. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 7.76 ms
  8409. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8410. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "[] of scalings :: ([Int -> Int])" composed with "[] of increments :: ([Int -> Int])" and applied to "[] of ints :: [Int]" 10.84 ms
  8411. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8412. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "[] of ints :: [Int]" 10.79 ms
  8413. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8414. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "[] of ints :: [Int]" 11.27 ms
  8415. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8416. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "[] of increments :: ([Int -> Int])" sequenced with "int :: Int" 11.15 ms
  8417. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8418. 146.85 s [genvalidity-sydtest] (<*) :: [] a -> [] b -> [] a
  8419. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "[] of ints :: Int" behind "[] of ints :: [Int]" 20.25 ms
  8420. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8421. 146.85 s [genvalidity-sydtest] Applicative []
  8422. 146.85 s [genvalidity-sydtest] pure :: a -> [] a and (<*>) :: [] (a -> b) -> [] a -> [] b
  8423. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "four :: Int" 11.07 ms
  8424. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8425. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "increments in a list :: ([Int -> Int])" sequenced with "four :: Int" 10.35 ms
  8426. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8427. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "scalings in a list :: ([Int -> Int])" composed with "increments in a list :: ([Int -> Int])" and applied to "list of fives :: [Int]" 11.16 ms
  8428. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8429. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "list of fives :: [Int]" 10.99 ms
  8430. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8431. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "list of fives :: [Int]" 10.97 ms
  8432. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8433. 146.85 s [genvalidity-sydtest] (<*) :: [] a -> [] b -> [] a
  8434. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "purely empty list :: Int" behind "list of fives :: [Int]" 10.87 ms
  8435. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8436. 146.85 s [genvalidity-sydtest] (*>) :: [] a -> [] b -> [] b
  8437. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "list of fives :: [Int]" in front of "purely empty list :: Int" 7.88 ms
  8438. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8439. 146.85 s [genvalidity-sydtest] Applicative Maybe
  8440. 146.85 s [genvalidity-sydtest] (*>) :: Maybe a -> Maybe b -> Maybe b
  8441. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "Maybe of ints :: (Maybe Int)" in front of "Maybe of ints :: Int" 7.58 ms
  8442. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8443. 146.85 s [genvalidity-sydtest] (<*) :: Maybe a -> Maybe b -> Maybe a
  8444. 146.85 s [genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "Maybe of ints :: Int" behind "Maybe of ints :: (Maybe Int)" 7.37 ms
  8445. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8446. 146.85 s [genvalidity-sydtest] pure :: a -> Maybe a and (<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b
  8447. 146.85 s [genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "Maybe of scalings :: (Maybe (Int -> Int))" composed with "Maybe of increments :: (Maybe (Int -> Int))" and applied to "Maybe of ints :: (Maybe Int)" 6.01 ms
  8448. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8449. 146.85 s [genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "Maybe of ints :: (Maybe Int)" 5.96 ms
  8450. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8451. 146.85 s [genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "Maybe of ints :: (Maybe Int)" 5.73 ms
  8452. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8453. 146.85 s [genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 5.28 ms
  8454. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8455. 146.85 s [genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "Maybe of increments :: (Maybe (Int -> Int))" sequenced with "int :: Int" 5.41 ms
  8456. 146.85 s [genvalidity-sydtest] passed for all of 100 inputs.
  8457. 146.85 s [genvalidity-sydtest]
  8458. 146.85 s [genvalidity-sydtest] Examples: 24402
  8459. 146.85 s [genvalidity-sydtest] Passed: 246
  8460. 146.85 s [genvalidity-sydtest] Failed: 0
  8461. 146.85 s [genvalidity-sydtest] Sum of test runtimes: 3.64 seconds
  8462. 146.85 s [genvalidity-sydtest] Test suite took: 0.37 seconds
  8463. 146.85 s [genvalidity-sydtest]
  8464. 146.85 s [genvalidity-sydtest] Test suite genvalidity-sydtest-test: PASS
  8465. 146.85 s [genvalidity-sydtest] Test suite logged to:
  8466. 146.85 s [genvalidity-sydtest] dist/test/genvalidity-sydtest-1.0.1.0-genvalidity-sydtest-test.log
  8467. 146.85 s [genvalidity-sydtest] 1 of 1 test suites (1 of 1 test cases) passed.
  8468. 146.86 s [genvalidity-sydtest] Phase: haddockPhase
  8469. 147.07 s [genvalidity-sydtest] Preprocessing library for genvalidity-sydtest-1.0.1.0...
  8470. 147.08 s [genvalidity-sydtest] Running Haddock on library for genvalidity-sydtest-1.0.1.0...
  8471. 147.09 s [genvalidity-sydtest] Warning: The documentation for the following packages are not installed. No
  8472. 147.09 s [genvalidity-sydtest] links will be generated to these packages: attoparsec-0.14.4,
  8473. 147.09 s [genvalidity-sydtest] attoparsec-0.14.4, libyaml-clib-0.2.5, path-0.9.6, path-0.9.6, vector-0.13.2.0
  8474. 147.57 s [genvalidity-sydtest] [ 1 of 34] Compiling Paths_genvalidity_sydtest ( dist/build/autogen/Paths_genvalidity_sydtest.hs, nothing )
  8475. 147.63 s [genvalidity-sydtest] [ 2 of 34] Compiling Test.Syd.Validity.Functions.Idempotence ( src/Test/Syd/Validity/Functions/Idempotence.hs, nothing )
  8476. 147.69 s [genvalidity-sydtest] [ 3 of 34] Compiling Test.Syd.Validity.Operations.Associativity ( src/Test/Syd/Validity/Operations/Associativity.hs, nothing )
  8477. 147.71 s [genvalidity-sydtest] [ 4 of 34] Compiling Test.Syd.Validity.Operations.Commutativity ( src/Test/Syd/Validity/Operations/Commutativity.hs, nothing )
  8478. 147.72 s [genvalidity-sydtest] [ 5 of 34] Compiling Test.Syd.Validity.Operations.Identity ( src/Test/Syd/Validity/Operations/Identity.hs, nothing )
  8479. 147.74 s [genvalidity-sydtest] [ 6 of 34] Compiling Test.Syd.Validity.Operations ( src/Test/Syd/Validity/Operations.hs, nothing )
  8480. 147.74 s [genvalidity-sydtest] [ 7 of 34] Compiling Test.Syd.Validity.Property.Utils ( src/Test/Syd/Validity/Property/Utils.hs, nothing )
  8481. 147.76 s [genvalidity-sydtest] [ 8 of 34] Compiling Test.Syd.Validity.GenValidity.Property ( src/Test/Syd/Validity/GenValidity/Property.hs, nothing )
  8482. 147.76 s [genvalidity-sydtest] [ 9 of 34] Compiling Test.Syd.Validity.Functions.Validity ( src/Test/Syd/Validity/Functions/Validity.hs, nothing )
  8483. 147.78 s [genvalidity-sydtest] [10 of 34] Compiling Test.Syd.Validity.Relations.Antireflexivity ( src/Test/Syd/Validity/Relations/Antireflexivity.hs, nothing )
  8484. 147.79 s [genvalidity-sydtest] [11 of 34] Compiling Test.Syd.Validity.Relations.Antisymmetry ( src/Test/Syd/Validity/Relations/Antisymmetry.hs, nothing )
  8485. 147.81 s [genvalidity-sydtest] [12 of 34] Compiling Test.Syd.Validity.Relations.Reflexivity ( src/Test/Syd/Validity/Relations/Reflexivity.hs, nothing )
  8486. 147.81 s [genvalidity-sydtest] [13 of 34] Compiling Test.Syd.Validity.Relations.Symmetry ( src/Test/Syd/Validity/Relations/Symmetry.hs, nothing )
  8487. 147.82 s [genvalidity-sydtest] [14 of 34] Compiling Test.Syd.Validity.Relations.Transitivity ( src/Test/Syd/Validity/Relations/Transitivity.hs, nothing )
  8488. 147.83 s [genvalidity-sydtest] [15 of 34] Compiling Test.Syd.Validity.Relations ( src/Test/Syd/Validity/Relations.hs, nothing )
  8489. 147.84 s [genvalidity-sydtest] [16 of 34] Compiling Test.Syd.Validity.Shrinking.Property ( src/Test/Syd/Validity/Shrinking/Property.hs, nothing )
  8490. 147.97 s [genvalidity-sydtest] [17 of 34] Compiling Test.Syd.Validity.Types ( src/Test/Syd/Validity/Types.hs, nothing )
  8491. 147.98 s [genvalidity-sydtest] [18 of 34] Compiling Test.Syd.Validity.Functions.Inverse ( src/Test/Syd/Validity/Functions/Inverse.hs, nothing )
  8492. 148.00 s [genvalidity-sydtest] [19 of 34] Compiling Test.Syd.Validity.Functions.Equivalence ( src/Test/Syd/Validity/Functions/Equivalence.hs, nothing )
  8493. 148.05 s [genvalidity-sydtest] [20 of 34] Compiling Test.Syd.Validity.Functions.CanFail ( src/Test/Syd/Validity/Functions/CanFail.hs, nothing )
  8494. 148.08 s [genvalidity-sydtest] [21 of 34] Compiling Test.Syd.Validity.Functions ( src/Test/Syd/Validity/Functions.hs, nothing )
  8495. 148.08 s [genvalidity-sydtest] [22 of 34] Compiling Test.Syd.Validity.Property ( src/Test/Syd/Validity/Property.hs, nothing )
  8496. 148.09 s [genvalidity-sydtest] [23 of 34] Compiling Test.Syd.Validity.Utils ( src/Test/Syd/Validity/Utils.hs, nothing )
  8497. 148.10 s [genvalidity-sydtest] [24 of 34] Compiling Test.Syd.Validity.Shrinking ( src/Test/Syd/Validity/Shrinking.hs, nothing )
  8498. 148.12 s [genvalidity-sydtest] [25 of 34] Compiling Test.Syd.Validity.Show ( src/Test/Syd/Validity/Show.hs, nothing )
  8499. 148.14 s [genvalidity-sydtest] [26 of 34] Compiling Test.Syd.Validity.Ord ( src/Test/Syd/Validity/Ord.hs, nothing )
  8500. 148.32 s [really-safe-money-autodocodec] Phase: updateAutotoolsGnuConfigScriptsPhase
  8501. 148.34 s [really-safe-money-autodocodec] Phase: configurePhase
  8502. 148.34 s [genvalidity-sydtest] [27 of 34] Compiling Test.Syd.Validity.Monoid ( src/Test/Syd/Validity/Monoid.hs, nothing )
  8503. 148.34 s [really-safe-money-autodocodec] configureFlags: --verbose --prefix=/nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.kORGtIpJJB/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
  8504. 148.35 s [really-safe-money-autodocodec] Using Parsec parser
  8505. 148.35 s [really-safe-money-autodocodec] Configuring really-safe-money-autodocodec-0.0.0.0...
  8506. 148.36 s [genvalidity-sydtest] [28 of 34] Compiling Test.Syd.Validity.Monad ( src/Test/Syd/Validity/Monad.hs, nothing )
  8507. 148.40 s [genvalidity-sydtest] [29 of 34] Compiling Test.Syd.Validity.GenValidity ( src/Test/Syd/Validity/GenValidity.hs, nothing )
  8508. 148.41 s [genvalidity-sydtest] [30 of 34] Compiling Test.Syd.Validity.Functor ( src/Test/Syd/Validity/Functor.hs, nothing )
  8509. 148.54 s [genvalidity-sydtest] [31 of 34] Compiling Test.Syd.Validity.Eq ( src/Test/Syd/Validity/Eq.hs, nothing )
  8510. 148.56 s [genvalidity-sydtest] [32 of 34] Compiling Test.Syd.Validity.Arbitrary ( src/Test/Syd/Validity/Arbitrary.hs, nothing )
  8511. 148.57 s [genvalidity-sydtest] [33 of 34] Compiling Test.Syd.Validity.Applicative ( src/Test/Syd/Validity/Applicative.hs, nothing )
  8512. 148.63 s [genvalidity-sydtest] [34 of 34] Compiling Test.Syd.Validity ( src/Test/Syd/Validity.hs, nothing )
  8513. 148.64 s [genvalidity-sydtest] Haddock coverage:
  8514. 148.65 s [genvalidity-sydtest] 50% ( 2 / 4) in 'Test.Syd.Validity.Functions.Idempotence'
  8515. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8516. 148.65 s [genvalidity-sydtest] idempotentOnGen (src/Test/Syd/Validity/Functions/Idempotence.hs:17)
  8517. 148.65 s [genvalidity-sydtest] idempotent (src/Test/Syd/Validity/Functions/Idempotence.hs:20)
  8518. 148.65 s [genvalidity-sydtest] 75% ( 3 / 4) in 'Test.Syd.Validity.Operations.Associativity'
  8519. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8520. 148.65 s [genvalidity-sydtest] Module header
  8521. 148.65 s [genvalidity-sydtest] 75% ( 3 / 4) in 'Test.Syd.Validity.Operations.Commutativity'
  8522. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8523. 148.65 s [genvalidity-sydtest] Module header
  8524. 148.65 s [genvalidity-sydtest] 64% ( 9 / 14) in 'Test.Syd.Validity.Operations.Identity'
  8525. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8526. 148.65 s [genvalidity-sydtest] Module header
  8527. 148.65 s [genvalidity-sydtest] leftIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:54)
  8528. 148.65 s [genvalidity-sydtest] leftIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:66)
  8529. 148.65 s [genvalidity-sydtest] rightIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:111)
  8530. 148.65 s [genvalidity-sydtest] rightIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:123)
  8531. 148.65 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Operations'
  8532. 148.65 s [genvalidity-sydtest] 0% ( 0 / 6) in 'Test.Syd.Validity.Property.Utils'
  8533. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8534. 148.65 s [genvalidity-sydtest] Module header
  8535. 148.65 s [genvalidity-sydtest] forAllValid (src/Test/Syd/Validity/Property/Utils.hs:15)
  8536. 148.65 s [genvalidity-sydtest] shouldBeValid (src/Test/Syd/Validity/Property/Utils.hs:24)
  8537. 148.65 s [genvalidity-sydtest] shouldBeInvalid (src/Test/Syd/Validity/Property/Utils.hs:40)
  8538. 148.65 s [genvalidity-sydtest] <==> (src/Test/Syd/Validity/Property/Utils.hs:21)
  8539. 148.65 s [genvalidity-sydtest] ===> (src/Test/Syd/Validity/Property/Utils.hs:18)
  8540. 148.65 s [genvalidity-sydtest] 100% ( 3 / 3) in 'Test.Syd.Validity.GenValidity.Property'
  8541. 148.65 s [genvalidity-sydtest] 40% ( 4 / 10) in 'Test.Syd.Validity.Functions.Validity'
  8542. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8543. 148.65 s [genvalidity-sydtest] producesValidsOnGens2 (src/Test/Syd/Validity/Functions/Validity.hs:51)
  8544. 148.65 s [genvalidity-sydtest] producesValid2 (src/Test/Syd/Validity/Functions/Validity.hs:58)
  8545. 148.65 s [genvalidity-sydtest] producesValidsOnArbitrary2 (src/Test/Syd/Validity/Functions/Validity.hs:64)
  8546. 148.65 s [genvalidity-sydtest] producesValidsOnGens3 (src/Test/Syd/Validity/Functions/Validity.hs:72)
  8547. 148.65 s [genvalidity-sydtest] producesValid3 (src/Test/Syd/Validity/Functions/Validity.hs:87)
  8548. 148.65 s [genvalidity-sydtest] producesValidsOnArbitrary3 (src/Test/Syd/Validity/Functions/Validity.hs:101)
  8549. 148.65 s [genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Antireflexivity'
  8550. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8551. 148.65 s [genvalidity-sydtest] Module header
  8552. 148.65 s [genvalidity-sydtest] antireflexivityOnGen (src/Test/Syd/Validity/Relations/Antireflexivity.hs:32)
  8553. 148.65 s [genvalidity-sydtest] 50% ( 3 / 6) in 'Test.Syd.Validity.Relations.Antisymmetry'
  8554. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8555. 148.65 s [genvalidity-sydtest] Module header
  8556. 148.65 s [genvalidity-sydtest] antisymmetryOnGensWithEquality (src/Test/Syd/Validity/Relations/Antisymmetry.hs:43)
  8557. 148.65 s [genvalidity-sydtest] antisymmetryOnGens (src/Test/Syd/Validity/Relations/Antisymmetry.hs:54)
  8558. 148.65 s [genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Reflexivity'
  8559. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8560. 148.65 s [genvalidity-sydtest] Module header
  8561. 148.65 s [genvalidity-sydtest] reflexivityOnGen (src/Test/Syd/Validity/Relations/Reflexivity.hs:32)
  8562. 148.65 s [genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Symmetry'
  8563. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8564. 148.65 s [genvalidity-sydtest] Module header
  8565. 148.65 s [genvalidity-sydtest] symmetryOnGens (src/Test/Syd/Validity/Relations/Symmetry.hs:34)
  8566. 148.65 s [genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Transitivity'
  8567. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8568. 148.65 s [genvalidity-sydtest] Module header
  8569. 148.65 s [genvalidity-sydtest] transitivityOnGens (src/Test/Syd/Validity/Relations/Transitivity.hs:35)
  8570. 148.65 s [genvalidity-sydtest] 100% ( 6 / 6) in 'Test.Syd.Validity.Relations'
  8571. 148.65 s [genvalidity-sydtest] 100% ( 13 / 13) in 'Test.Syd.Validity.Shrinking.Property'
  8572. 148.65 s [genvalidity-sydtest] 50% ( 1 / 2) in 'Test.Syd.Validity.Types'
  8573. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8574. 148.65 s [genvalidity-sydtest] Module header
  8575. 148.65 s [genvalidity-sydtest] 15% ( 2 / 13) in 'Test.Syd.Validity.Functions.Inverse'
  8576. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8577. 148.65 s [genvalidity-sydtest] inverseFunctionsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:28)
  8578. 148.65 s [genvalidity-sydtest] inverseFunctions (src/Test/Syd/Validity/Functions/Inverse.hs:33)
  8579. 148.65 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:49)
  8580. 148.65 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:60)
  8581. 148.65 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:68)
  8582. 148.65 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:78)
  8583. 148.65 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:89)
  8584. 148.65 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:97)
  8585. 148.65 s [genvalidity-sydtest] inverseFunctionsIfSucceedOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:107)
  8586. 148.65 s [genvalidity-sydtest] inverseFunctionsIfSucceed (src/Test/Syd/Validity/Functions/Inverse.hs:120)
  8587. 148.65 s [genvalidity-sydtest] inverseFunctionsIfSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:128)
  8588. 148.65 s [genvalidity-sydtest] 7% ( 2 / 28) in 'Test.Syd.Validity.Functions.Equivalence'
  8589. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8590. 148.65 s [genvalidity-sydtest] Module header
  8591. 148.65 s [genvalidity-sydtest] equivalentOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:47)
  8592. 148.65 s [genvalidity-sydtest] equivalent (src/Test/Syd/Validity/Functions/Equivalence.hs:54)
  8593. 148.65 s [genvalidity-sydtest] equivalentOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:73)
  8594. 148.65 s [genvalidity-sydtest] equivalent2 (src/Test/Syd/Validity/Functions/Equivalence.hs:81)
  8595. 148.65 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:100)
  8596. 148.65 s [genvalidity-sydtest] equivalentWhenFirstSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:119)
  8597. 148.65 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:111)
  8598. 148.65 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:129)
  8599. 148.65 s [genvalidity-sydtest] equivalentWhenFirstSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:162)
  8600. 148.65 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:147)
  8601. 148.65 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:172)
  8602. 148.65 s [genvalidity-sydtest] equivalentWhenSecondSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:191)
  8603. 148.65 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:183)
  8604. 148.65 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:201)
  8605. 148.65 s [genvalidity-sydtest] equivalentWhenSecondSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:234)
  8606. 148.65 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:219)
  8607. 148.65 s [genvalidity-sydtest] equivalentWhenSucceedOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:244)
  8608. 148.65 s [genvalidity-sydtest] equivalentWhenSucceed (src/Test/Syd/Validity/Functions/Equivalence.hs:258)
  8609. 148.65 s [genvalidity-sydtest] equivalentWhenSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:266)
  8610. 148.65 s [genvalidity-sydtest] equivalentWhenSucceedOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:276)
  8611. 148.65 s [genvalidity-sydtest] equivalentWhenSucceed2 (src/Test/Syd/Validity/Functions/Equivalence.hs:312)
  8612. 148.65 s [genvalidity-sydtest] equivalentWhenSucceedOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:297)
  8613. 148.65 s [genvalidity-sydtest] equivalentOnGens3 (src/Test/Syd/Validity/Functions/Equivalence.hs:322)
  8614. 148.65 s [genvalidity-sydtest] equivalent3 (src/Test/Syd/Validity/Functions/Equivalence.hs:338)
  8615. 148.65 s [genvalidity-sydtest] equivalentOnArbitrary3 (src/Test/Syd/Validity/Functions/Equivalence.hs:353)
  8616. 148.65 s [genvalidity-sydtest] 38% ( 7 / 18) in 'Test.Syd.Validity.Functions.CanFail'
  8617. 148.65 s [genvalidity-sydtest] Missing documentation for:
  8618. 148.65 s [genvalidity-sydtest] Module header
  8619. 148.65 s [genvalidity-sydtest] succeedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:77)
  8620. 148.65 s [genvalidity-sydtest] succeeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:84)
  8621. 148.65 s [genvalidity-sydtest] succeedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:90)
  8622. 148.65 s [genvalidity-sydtest] failsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:100)
  8623. 148.65 s [genvalidity-sydtest] validIfSucceedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:109)
  8624. 148.65 s [genvalidity-sydtest] validIfSucceeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:119)
  8625. 148.66 s [genvalidity-sydtest] validIfSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:125)
  8626. 148.66 s [genvalidity-sydtest] validIfSucceedsOnGens3 (src/Test/Syd/Validity/Functions/CanFail.hs:133)
  8627. 148.66 s [genvalidity-sydtest] validIfSucceeds3 (src/Test/Syd/Validity/Functions/CanFail.hs:152)
  8628. 148.66 s [genvalidity-sydtest] validIfSucceedsOnArbitrary3 (src/Test/Syd/Validity/Functions/CanFail.hs:158)
  8629. 148.66 s [genvalidity-sydtest] 100% ( 6 / 6) in 'Test.Syd.Validity.Functions'
  8630. 148.66 s [genvalidity-sydtest] 54% ( 80 /146) in 'Test.Syd.Validity.Property'
  8631. 148.66 s [genvalidity-sydtest] Missing documentation for:
  8632. 148.66 s [genvalidity-sydtest] Module header
  8633. 148.66 s [genvalidity-sydtest] forAllValid (src/Test/Syd/Validity/Property/Utils.hs:15)
  8634. 148.66 s [genvalidity-sydtest] producesValidsOnGens2 (src/Test/Syd/Validity/Functions/Validity.hs:51)
  8635. 148.66 s [genvalidity-sydtest] producesValid2 (src/Test/Syd/Validity/Functions/Validity.hs:58)
  8636. 148.66 s [genvalidity-sydtest] producesValidsOnArbitrary2 (src/Test/Syd/Validity/Functions/Validity.hs:64)
  8637. 148.66 s [genvalidity-sydtest] producesValidsOnGens3 (src/Test/Syd/Validity/Functions/Validity.hs:72)
  8638. 148.66 s [genvalidity-sydtest] producesValid3 (src/Test/Syd/Validity/Functions/Validity.hs:87)
  8639. 148.66 s [genvalidity-sydtest] producesValidsOnArbitrary3 (src/Test/Syd/Validity/Functions/Validity.hs:101)
  8640. 148.66 s [genvalidity-sydtest] succeedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:77)
  8641. 148.66 s [genvalidity-sydtest] succeeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:84)
  8642. 148.66 s [genvalidity-sydtest] succeedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:90)
  8643. 148.66 s [genvalidity-sydtest] failsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:100)
  8644. 148.66 s [genvalidity-sydtest] validIfSucceedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:109)
  8645. 148.66 s [genvalidity-sydtest] validIfSucceeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:119)
  8646. 148.66 s [genvalidity-sydtest] validIfSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:125)
  8647. 148.66 s [genvalidity-sydtest] validIfSucceedsOnGens3 (src/Test/Syd/Validity/Functions/CanFail.hs:133)
  8648. 148.66 s [genvalidity-sydtest] validIfSucceeds3 (src/Test/Syd/Validity/Functions/CanFail.hs:152)
  8649. 148.66 s [genvalidity-sydtest] validIfSucceedsOnArbitrary3 (src/Test/Syd/Validity/Functions/CanFail.hs:158)
  8650. 148.66 s [genvalidity-sydtest] equivalentOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:47)
  8651. 148.66 s [genvalidity-sydtest] equivalent (src/Test/Syd/Validity/Functions/Equivalence.hs:54)
  8652. 148.66 s [genvalidity-sydtest] equivalentOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:73)
  8653. 148.66 s [genvalidity-sydtest] equivalent2 (src/Test/Syd/Validity/Functions/Equivalence.hs:81)
  8654. 148.66 s [genvalidity-sydtest] equivalentOnGens3 (src/Test/Syd/Validity/Functions/Equivalence.hs:322)
  8655. 148.66 s [genvalidity-sydtest] equivalent3 (src/Test/Syd/Validity/Functions/Equivalence.hs:338)
  8656. 148.66 s [genvalidity-sydtest] equivalentOnArbitrary3 (src/Test/Syd/Validity/Functions/Equivalence.hs:353)
  8657. 148.66 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:100)
  8658. 148.66 s [genvalidity-sydtest] equivalentWhenFirstSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:119)
  8659. 148.66 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:111)
  8660. 148.66 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:129)
  8661. 148.66 s [genvalidity-sydtest] equivalentWhenFirstSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:162)
  8662. 148.66 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:147)
  8663. 148.66 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:172)
  8664. 148.66 s [genvalidity-sydtest] equivalentWhenSecondSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:191)
  8665. 148.66 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:183)
  8666. 148.66 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:201)
  8667. 148.66 s [genvalidity-sydtest] equivalentWhenSecondSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:234)
  8668. 148.66 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:219)
  8669. 148.66 s [genvalidity-sydtest] equivalentWhenSucceedOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:244)
  8670. 148.66 s [genvalidity-sydtest] equivalentWhenSucceed (src/Test/Syd/Validity/Functions/Equivalence.hs:258)
  8671. 148.66 s [genvalidity-sydtest] equivalentWhenSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:266)
  8672. 148.66 s [genvalidity-sydtest] equivalentWhenSucceedOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:276)
  8673. 148.66 s [genvalidity-sydtest] equivalentWhenSucceed2 (src/Test/Syd/Validity/Functions/Equivalence.hs:312)
  8674. 148.66 s [genvalidity-sydtest] equivalentWhenSucceedOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:297)
  8675. 148.66 s [genvalidity-sydtest] inverseFunctionsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:28)
  8676. 148.66 s [genvalidity-sydtest] inverseFunctions (src/Test/Syd/Validity/Functions/Inverse.hs:33)
  8677. 148.66 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:49)
  8678. 148.66 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:60)
  8679. 148.66 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:68)
  8680. 148.66 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:78)
  8681. 148.66 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:89)
  8682. 148.66 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:97)
  8683. 148.66 s [genvalidity-sydtest] inverseFunctionsIfSucceedOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:107)
  8684. 148.66 s [genvalidity-sydtest] inverseFunctionsIfSucceed (src/Test/Syd/Validity/Functions/Inverse.hs:120)
  8685. 148.66 s [genvalidity-sydtest] inverseFunctionsIfSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:128)
  8686. 148.66 s [genvalidity-sydtest] idempotentOnGen (src/Test/Syd/Validity/Functions/Idempotence.hs:17)
  8687. 148.66 s [genvalidity-sydtest] idempotent (src/Test/Syd/Validity/Functions/Idempotence.hs:20)
  8688. 148.66 s [genvalidity-sydtest] reflexivityOnGen (src/Test/Syd/Validity/Relations/Reflexivity.hs:32)
  8689. 148.66 s [genvalidity-sydtest] transitivityOnGens (src/Test/Syd/Validity/Relations/Transitivity.hs:35)
  8690. 148.66 s [genvalidity-sydtest] antisymmetryOnGensWithEquality (src/Test/Syd/Validity/Relations/Antisymmetry.hs:43)
  8691. 148.66 s [genvalidity-sydtest] antisymmetryOnGens (src/Test/Syd/Validity/Relations/Antisymmetry.hs:54)
  8692. 148.66 s [genvalidity-sydtest] antireflexivityOnGen (src/Test/Syd/Validity/Relations/Antireflexivity.hs:32)
  8693. 148.66 s [genvalidity-sydtest] symmetryOnGens (src/Test/Syd/Validity/Relations/Symmetry.hs:34)
  8694. 148.66 s [genvalidity-sydtest] leftIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:54)
  8695. 148.66 s [genvalidity-sydtest] leftIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:66)
  8696. 148.66 s [genvalidity-sydtest] rightIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:111)
  8697. 148.66 s [genvalidity-sydtest] rightIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:123)
  8698. 148.66 s [genvalidity-sydtest] Warning: 'Spec' is out of scope.
  8699. 148.66 s [genvalidity-sydtest] If you qualify the identifier, haddock can try to link it anyway.
  8700. 148.66 s [genvalidity-sydtest] 14% ( 1 / 7) in 'Test.Syd.Validity.Utils'
  8701. 148.66 s [genvalidity-sydtest] Missing documentation for:
  8702. 148.66 s [genvalidity-sydtest] nameOf (src/Test/Syd/Validity/Utils.hs:27)
  8703. 148.66 s [genvalidity-sydtest] genDescr (src/Test/Syd/Validity/Utils.hs:38)
  8704. 148.66 s [genvalidity-sydtest] binRelStr (src/Test/Syd/Validity/Utils.hs:45)
  8705. 148.66 s [genvalidity-sydtest] shouldBeValid (src/Test/Syd/Validity/Property/Utils.hs:24)
  8706. 148.66 s [genvalidity-sydtest] shouldBeInvalid (src/Test/Syd/Validity/Property/Utils.hs:40)
  8707. 148.66 s [genvalidity-sydtest] Anon (src/Test/Syd/Validity/Utils.hs:49)
  8708. 148.66 s [genvalidity-sydtest] 45% ( 5 / 11) in 'Test.Syd.Validity.Shrinking'
  8709. 148.66 s [genvalidity-sydtest] Missing documentation for:
  8710. 148.66 s [genvalidity-sydtest] shrinkValidSpec (src/Test/Syd/Validity/Shrinking.hs:35)
  8711. 148.66 s [genvalidity-sydtest] shrinkValidSpecWithLimit (src/Test/Syd/Validity/Shrinking.hs:48)
  8712. 148.66 s [genvalidity-sydtest] shrinkValidPreservesValidOnGenValid (src/Test/Syd/Validity/Shrinking.hs:66)
  8713. 148.66 s [genvalidity-sydtest] shrinkValidPreservesValidOnGenValidWithLimit (src/Test/Syd/Validity/Shrinking.hs:74)
  8714. 148.66 s [genvalidity-sydtest] shrinkValidDoesNotShrinkToItself (src/Test/Syd/Validity/Shrinking.hs:81)
  8715. 148.66 s [genvalidity-sydtest] shrinkValidDoesNotShrinkToItselfWithLimit (src/Test/Syd/Validity/Shrinking.hs:89)
  8716. 148.66 s [genvalidity-sydtest] 100% ( 7 / 7) in 'Test.Syd.Validity.Show'
  8717. 148.66 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Ord'
  8718. 148.66 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Monoid'
  8719. 148.66 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Monad'
  8720. 148.66 s [genvalidity-sydtest] 100% ( 5 / 5) in 'Test.Syd.Validity.GenValidity'
  8721. 148.66 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Functor'
  8722. 148.66 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Eq'
  8723. 148.66 s [genvalidity-sydtest] 100% ( 3 / 3) in 'Test.Syd.Validity.Arbitrary'
  8724. 148.66 s [genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Applicative'
  8725. 148.66 s [genvalidity-sydtest] Warning: 'Spec' is out of scope.
  8726. 148.66 s [genvalidity-sydtest] If you qualify the identifier, haddock can try to link it anyway.
  8727. 148.67 s [genvalidity-sydtest] 63% (122 /192) in 'Test.Syd.Validity'
  8728. 148.67 s [genvalidity-sydtest] Missing documentation for:
  8729. 148.67 s [genvalidity-sydtest] forAllValid (src/Test/Syd/Validity/Property/Utils.hs:15)
  8730. 148.67 s [genvalidity-sydtest] shouldBeValid (src/Test/Syd/Validity/Property/Utils.hs:24)
  8731. 148.67 s [genvalidity-sydtest] shouldBeInvalid (src/Test/Syd/Validity/Property/Utils.hs:40)
  8732. 148.67 s [genvalidity-sydtest] shrinkValidSpec (src/Test/Syd/Validity/Shrinking.hs:35)
  8733. 148.67 s [genvalidity-sydtest] shrinkValidSpecWithLimit (src/Test/Syd/Validity/Shrinking.hs:48)
  8734. 148.67 s [genvalidity-sydtest] shrinkValidPreservesValidOnGenValid (src/Test/Syd/Validity/Shrinking.hs:66)
  8735. 148.67 s [genvalidity-sydtest] producesValidsOnGens2 (src/Test/Syd/Validity/Functions/Validity.hs:51)
  8736. 148.67 s [genvalidity-sydtest] producesValid2 (src/Test/Syd/Validity/Functions/Validity.hs:58)
  8737. 148.67 s [genvalidity-sydtest] producesValidsOnArbitrary2 (src/Test/Syd/Validity/Functions/Validity.hs:64)
  8738. 148.67 s [genvalidity-sydtest] producesValidsOnGens3 (src/Test/Syd/Validity/Functions/Validity.hs:72)
  8739. 148.67 s [genvalidity-sydtest] producesValid3 (src/Test/Syd/Validity/Functions/Validity.hs:87)
  8740. 148.67 s [genvalidity-sydtest] producesValidsOnArbitrary3 (src/Test/Syd/Validity/Functions/Validity.hs:101)
  8741. 148.67 s [genvalidity-sydtest] succeedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:77)
  8742. 148.67 s [genvalidity-sydtest] succeeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:84)
  8743. 148.67 s [genvalidity-sydtest] succeedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:90)
  8744. 148.67 s [genvalidity-sydtest] failsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:100)
  8745. 148.67 s [genvalidity-sydtest] validIfSucceedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:109)
  8746. 148.67 s [genvalidity-sydtest] validIfSucceeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:119)
  8747. 148.67 s [genvalidity-sydtest] validIfSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:125)
  8748. 148.67 s [genvalidity-sydtest] validIfSucceedsOnGens3 (src/Test/Syd/Validity/Functions/CanFail.hs:133)
  8749. 148.67 s [genvalidity-sydtest] validIfSucceeds3 (src/Test/Syd/Validity/Functions/CanFail.hs:152)
  8750. 148.67 s [genvalidity-sydtest] validIfSucceedsOnArbitrary3 (src/Test/Syd/Validity/Functions/CanFail.hs:158)
  8751. 148.67 s [genvalidity-sydtest] equivalentOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:47)
  8752. 148.67 s [genvalidity-sydtest] equivalent (src/Test/Syd/Validity/Functions/Equivalence.hs:54)
  8753. 148.67 s [genvalidity-sydtest] equivalentOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:73)
  8754. 148.67 s [genvalidity-sydtest] equivalent2 (src/Test/Syd/Validity/Functions/Equivalence.hs:81)
  8755. 148.67 s [genvalidity-sydtest] equivalentOnGens3 (src/Test/Syd/Validity/Functions/Equivalence.hs:322)
  8756. 148.67 s [genvalidity-sydtest] equivalent3 (src/Test/Syd/Validity/Functions/Equivalence.hs:338)
  8757. 148.67 s [genvalidity-sydtest] equivalentOnArbitrary3 (src/Test/Syd/Validity/Functions/Equivalence.hs:353)
  8758. 148.67 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:100)
  8759. 148.67 s [genvalidity-sydtest] equivalentWhenFirstSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:119)
  8760. 148.67 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:111)
  8761. 148.67 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:129)
  8762. 148.67 s [genvalidity-sydtest] equivalentWhenFirstSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:162)
  8763. 148.67 s [genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:147)
  8764. 148.67 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:172)
  8765. 148.67 s [genvalidity-sydtest] equivalentWhenSecondSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:191)
  8766. 148.67 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:183)
  8767. 148.67 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:201)
  8768. 148.67 s [genvalidity-sydtest] equivalentWhenSecondSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:234)
  8769. 148.67 s [genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:219)
  8770. 148.67 s [genvalidity-sydtest] equivalentWhenSucceedOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:244)
  8771. 148.67 s [genvalidity-sydtest] equivalentWhenSucceed (src/Test/Syd/Validity/Functions/Equivalence.hs:258)
  8772. 148.67 s [genvalidity-sydtest] equivalentWhenSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:266)
  8773. 148.67 s [genvalidity-sydtest] equivalentWhenSucceedOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:276)
  8774. 148.67 s [genvalidity-sydtest] equivalentWhenSucceed2 (src/Test/Syd/Validity/Functions/Equivalence.hs:312)
  8775. 148.67 s [genvalidity-sydtest] equivalentWhenSucceedOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:297)
  8776. 148.67 s [genvalidity-sydtest] inverseFunctionsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:28)
  8777. 148.67 s [genvalidity-sydtest] inverseFunctions (src/Test/Syd/Validity/Functions/Inverse.hs:33)
  8778. 148.67 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:49)
  8779. 148.67 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:60)
  8780. 148.67 s [genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:68)
  8781. 148.67 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:78)
  8782. 148.67 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:89)
  8783. 148.67 s [genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:97)
  8784. 148.67 s [genvalidity-sydtest] inverseFunctionsIfSucceedOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:107)
  8785. 148.67 s [genvalidity-sydtest] inverseFunctionsIfSucceed (src/Test/Syd/Validity/Functions/Inverse.hs:120)
  8786. 148.67 s [genvalidity-sydtest] inverseFunctionsIfSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:128)
  8787. 148.67 s [genvalidity-sydtest] idempotentOnGen (src/Test/Syd/Validity/Functions/Idempotence.hs:17)
  8788. 148.67 s [genvalidity-sydtest] idempotent (src/Test/Syd/Validity/Functions/Idempotence.hs:20)
  8789. 148.67 s [genvalidity-sydtest] reflexivityOnGen (src/Test/Syd/Validity/Relations/Reflexivity.hs:32)
  8790. 148.67 s [genvalidity-sydtest] transitivityOnGens (src/Test/Syd/Validity/Relations/Transitivity.hs:35)
  8791. 148.67 s [genvalidity-sydtest] antisymmetryOnGensWithEquality (src/Test/Syd/Validity/Relations/Antisymmetry.hs:43)
  8792. 148.67 s [genvalidity-sydtest] antisymmetryOnGens (src/Test/Syd/Validity/Relations/Antisymmetry.hs:54)
  8793. 148.67 s [genvalidity-sydtest] antireflexivityOnGen (src/Test/Syd/Validity/Relations/Antireflexivity.hs:32)
  8794. 148.67 s [genvalidity-sydtest] symmetryOnGens (src/Test/Syd/Validity/Relations/Symmetry.hs:34)
  8795. 148.67 s [genvalidity-sydtest] leftIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:54)
  8796. 148.67 s [genvalidity-sydtest] leftIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:66)
  8797. 148.67 s [genvalidity-sydtest] rightIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:111)
  8798. 148.67 s [genvalidity-sydtest] rightIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:123)
  8799. 149.11 s [really-safe-money-autodocodec] Dependency autodocodec: using autodocodec-0.5.0.0
  8800. 149.11 s [really-safe-money-autodocodec] Dependency base >=4.7 && <5: using base-4.20.2.0
  8801. 149.11 s [really-safe-money-autodocodec] Dependency really-safe-money: using really-safe-money-0.0.0.0
  8802. 149.11 s [really-safe-money-autodocodec] Source component graph: component lib
  8803. 149.11 s [really-safe-money-autodocodec] Configured component graph:
  8804. 149.11 s [really-safe-money-autodocodec] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  8805. 149.11 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  8806. 149.11 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  8807. 149.11 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  8808. 149.11 s [really-safe-money-autodocodec] Linked component graph:
  8809. 149.11 s [really-safe-money-autodocodec] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  8810. 149.11 s [really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  8811. 149.11 s [really-safe-money-autodocodec] include base-4.20.2.0-64da
  8812. 149.11 s [really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  8813. 149.11 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
  8814. 149.11 s [really-safe-money-autodocodec] Ready component graph:
  8815. 149.11 s [really-safe-money-autodocodec] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
  8816. 149.11 s [really-safe-money-autodocodec] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
  8817. 149.11 s [really-safe-money-autodocodec] depends base-4.20.2.0-64da
  8818. 149.11 s [really-safe-money-autodocodec] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  8819. 149.11 s [really-safe-money-autodocodec] Using Cabal-3.12.1.0 compiled by ghc-9.10
  8820. 149.11 s [really-safe-money-autodocodec] Using compiler: ghc-9.10.3
  8821. 149.11 s [really-safe-money-autodocodec] Using install prefix:
  8822. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0
  8823. 149.11 s [really-safe-money-autodocodec] Executables installed in:
  8824. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/bin
  8825. 149.11 s [really-safe-money-autodocodec] Libraries installed in:
  8826. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-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
  8827. 149.11 s [really-safe-money-autodocodec] Dynamic Libraries installed in:
  8828. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  8829. 149.11 s [really-safe-money-autodocodec] Private executables installed in:
  8830. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-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
  8831. 149.11 s [really-safe-money-autodocodec] Data files installed in:
  8832. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-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
  8833. 149.11 s [really-safe-money-autodocodec] Documentation installed in:
  8834. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-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
  8835. 149.11 s [really-safe-money-autodocodec] Configuration files installed in:
  8836. 149.11 s [really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/etc
  8837. 149.11 s [really-safe-money-autodocodec] No alex found
  8838. 149.11 s [really-safe-money-autodocodec] Using ar found on system at:
  8839. 149.11 s [really-safe-money-autodocodec] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  8840. 149.11 s [really-safe-money-autodocodec] No c2hs found
  8841. 149.11 s [really-safe-money-autodocodec] No cpphs found
  8842. 149.11 s [really-safe-money-autodocodec] No doctest found
  8843. 149.11 s [really-safe-money-autodocodec] Using gcc version 14.3.0 given by user at:
  8844. 149.11 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  8845. 149.11 s [really-safe-money-autodocodec] Using ghc version 9.10.3 found on system at:
  8846. 149.11 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  8847. 149.11 s [really-safe-money-autodocodec] Using ghc-pkg version 9.10.3 found on system at:
  8848. 149.11 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  8849. 149.11 s [really-safe-money-autodocodec] No ghcjs found
  8850. 149.11 s [really-safe-money-autodocodec] No ghcjs-pkg found
  8851. 149.11 s [really-safe-money-autodocodec] No greencard found
  8852. 149.11 s [really-safe-money-autodocodec] Using haddock version 2.31.1 found on system at:
  8853. 149.11 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  8854. 149.11 s [really-safe-money-autodocodec] No happy found
  8855. 149.11 s [really-safe-money-autodocodec] Using haskell-suite found on system at: haskell-suite-dummy-location
  8856. 149.11 s [really-safe-money-autodocodec] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  8857. 149.11 s [really-safe-money-autodocodec] No hmake found
  8858. 149.11 s [really-safe-money-autodocodec] Using hpc version 0.69 found on system at:
  8859. 149.11 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  8860. 149.11 s [really-safe-money-autodocodec] Using hsc2hs version 0.68.10 found on system at:
  8861. 149.11 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  8862. 149.11 s [really-safe-money-autodocodec] Using hscolour version 1.25 found on system at:
  8863. 149.12 s [really-safe-money-autodocodec] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  8864. 149.12 s [really-safe-money-autodocodec] No jhc found
  8865. 149.12 s [really-safe-money-autodocodec] Using ld found on system at:
  8866. 149.12 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  8867. 149.12 s [really-safe-money-autodocodec] No pkg-config found
  8868. 149.12 s [really-safe-money-autodocodec] Using runghc version 9.10.3 found on system at:
  8869. 149.12 s [really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  8870. 149.12 s [really-safe-money-autodocodec] Using strip version 2.44 found on system at:
  8871. 149.12 s [really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  8872. 149.12 s [really-safe-money-autodocodec] Using tar found on system at:
  8873. 149.12 s [really-safe-money-autodocodec] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  8874. 149.12 s [really-safe-money-autodocodec] No uhc found
  8875. 149.38 s [really-safe-money-autodocodec] Phase: buildPhase
  8876. 149.39 s [really-safe-money-autodocodec] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest
  8877. 149.45 s [really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
  8878. 149.45 s [really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
  8879. 149.68 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 )
  8880. 149.79 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  8881. 149.79 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8882. 149.79 s [really-safe-money-autodocodec] @@ -48,7 +48,7 @@
  8883. 149.79 s [really-safe-money-autodocodec] where
  8884. 149.79 s [really-safe-money-autodocodec] f :: String -> Either String Account
  8885. 149.79 s [really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8886. 149.79 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8887. 149.79 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords []
  8888. 149.79 s [really-safe-money-autodocodec] Just a -> Right a
  8889. 149.79 s [really-safe-money-autodocodec] g :: Account -> String
  8890. 149.79 s [really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
  8891. 149.79 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  8892. 149.79 s [really-safe-money-autodocodec] @@ -48,7 +48,7 @@
  8893. 149.79 s [really-safe-money-autodocodec] where
  8894. 149.79 s [really-safe-money-autodocodec] f :: String -> Either String Account
  8895. 149.79 s [really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  8896. 149.79 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8897. 149.79 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  8898. 149.79 s [really-safe-money-autodocodec] Just a -> Right a
  8899. 149.79 s [really-safe-money-autodocodec] g :: Account -> String
  8900. 149.79 s [really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
  8901. 149.79 s [really-safe-money-autodocodec] added 2 mutations
  8902. 150.34 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 )
  8903. 150.51 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  8904. 150.51 s [really-safe-money-autodocodec] added 0 mutations
  8905. 150.51 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 )
  8906. 150.51 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  8907. 150.51 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8908. 150.51 s [really-safe-money-autodocodec] @@ -44,7 +44,7 @@
  8909. 150.51 s [really-safe-money-autodocodec] where
  8910. 150.51 s [really-safe-money-autodocodec] f :: String -> Either String Amount
  8911. 150.51 s [really-safe-money-autodocodec] f s = case readMaybe s of
  8912. 150.51 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8913. 150.51 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords []
  8914. 150.51 s [really-safe-money-autodocodec] Just i ->
  8915. 150.51 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  8916. 150.51 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8917. 150.51 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  8918. 150.51 s [really-safe-money-autodocodec] @@ -44,7 +44,7 @@
  8919. 150.51 s [really-safe-money-autodocodec] where
  8920. 150.51 s [really-safe-money-autodocodec] f :: String -> Either String Amount
  8921. 150.51 s [really-safe-money-autodocodec] f s = case readMaybe s of
  8922. 150.51 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8923. 150.51 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8924. 150.51 s [really-safe-money-autodocodec] Just i ->
  8925. 150.51 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  8926. 150.51 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8927. 150.51 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  8928. 150.51 s [really-safe-money-autodocodec] @@ -46,7 +46,7 @@
  8929. 150.51 s [really-safe-money-autodocodec] f s = case readMaybe s of
  8930. 150.51 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8931. 150.51 s [really-safe-money-autodocodec] Just i ->
  8932. 150.51 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  8933. 150.51 s [really-safe-money-autodocodec] + if True
  8934. 150.51 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8935. 150.51 s [really-safe-money-autodocodec] else
  8936. 150.51 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  8937. 150.51 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  8938. 150.51 s [really-safe-money-autodocodec] @@ -46,7 +46,7 @@
  8939. 150.51 s [really-safe-money-autodocodec] f s = case readMaybe s of
  8940. 150.51 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8941. 150.51 s [really-safe-money-autodocodec] Just i ->
  8942. 150.51 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  8943. 150.51 s [really-safe-money-autodocodec] + if False
  8944. 150.51 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8945. 150.51 s [really-safe-money-autodocodec] else
  8946. 150.51 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  8947. 150.51 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  8948. 150.51 s [really-safe-money-autodocodec] @@ -46,7 +46,7 @@
  8949. 150.51 s [really-safe-money-autodocodec] f s = case readMaybe s of
  8950. 150.51 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8951. 150.51 s [really-safe-money-autodocodec] Just i ->
  8952. 150.51 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  8953. 150.51 s [really-safe-money-autodocodec] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  8954. 150.51 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8955. 150.51 s [really-safe-money-autodocodec] else
  8956. 150.51 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  8957. 150.52 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8958. 150.52 s [really-safe-money-autodocodec] @@ -47,7 +47,7 @@
  8959. 150.52 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8960. 150.52 s [really-safe-money-autodocodec] Just i ->
  8961. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  8962. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8963. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords []
  8964. 150.52 s [really-safe-money-autodocodec] else
  8965. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  8966. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8967. 150.52 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  8968. 150.52 s [really-safe-money-autodocodec] @@ -47,7 +47,7 @@
  8969. 150.52 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  8970. 150.52 s [really-safe-money-autodocodec] Just i ->
  8971. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  8972. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8973. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8974. 150.52 s [really-safe-money-autodocodec] else
  8975. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  8976. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8977. 150.52 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8978. 150.52 s [really-safe-money-autodocodec] @@ -49,7 +49,7 @@
  8979. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  8980. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8981. 150.52 s [really-safe-money-autodocodec] else
  8982. 150.52 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8983. 150.52 s [really-safe-money-autodocodec] + if True
  8984. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8985. 150.52 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8986. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  8987. 150.52 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  8988. 150.52 s [really-safe-money-autodocodec] @@ -49,7 +49,7 @@
  8989. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  8990. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  8991. 150.52 s [really-safe-money-autodocodec] else
  8992. 150.52 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  8993. 150.52 s [really-safe-money-autodocodec] + if False
  8994. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  8995. 150.52 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  8996. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  8997. 150.52 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  8998. 150.52 s [really-safe-money-autodocodec] @@ -49,7 +49,7 @@
  8999. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9000. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9001. 150.52 s [really-safe-money-autodocodec] else
  9002. 150.52 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9003. 150.52 s [really-safe-money-autodocodec] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  9004. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9005. 150.52 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9006. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  9007. 150.52 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  9008. 150.52 s [really-safe-money-autodocodec] @@ -50,7 +50,7 @@
  9009. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9010. 150.52 s [really-safe-money-autodocodec] else
  9011. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9012. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9013. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords []
  9014. 150.52 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9015. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  9016. 150.52 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9017. 150.52 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  9018. 150.52 s [really-safe-money-autodocodec] @@ -50,7 +50,7 @@
  9019. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9020. 150.52 s [really-safe-money-autodocodec] else
  9021. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9022. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9023. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9024. 150.52 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9025. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  9026. 150.52 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9027. 150.52 s [really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
  9028. 150.52 s [really-safe-money-autodocodec] @@ -49,9 +49,9 @@
  9029. 150.52 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9030. 150.52 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9031. 150.52 s [really-safe-money-autodocodec] else
  9032. 150.52 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9033. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9034. 150.52 s [really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9035. 150.52 s [really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
  9036. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9037. 150.52 s [really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9038. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  9039. 150.52 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9040. 150.52 s [really-safe-money-autodocodec]
  9041. 150.52 s [really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
  9042. 150.52 s [really-safe-money-autodocodec] @@ -46,12 +46,12 @@
  9043. 150.52 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9044. 150.52 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9045. 150.52 s [really-safe-money-autodocodec] Just i ->
  9046. 150.52 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  9047. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9048. 150.52 s [really-safe-money-autodocodec] - else
  9049. 150.52 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9050. 150.52 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9051. 150.52 s [really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9052. 150.52 s [really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
  9053. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9054. 150.52 s [really-safe-money-autodocodec] + else
  9055. 150.52 s [really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
  9056. 150.52 s [really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9057. 150.52 s [really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9058. 150.52 s [really-safe-money-autodocodec] g :: Amount -> String
  9059. 150.52 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9060. 150.52 s [really-safe-money-autodocodec]
  9061. 150.52 s [really-safe-money-autodocodec] added 14 mutations
  9062. 150.52 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 )
  9063. 150.52 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  9064. 150.52 s [really-safe-money-autodocodec] added 0 mutations
  9065. 150.55 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 )
  9066. 150.56 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  9067. 150.56 s [really-safe-money-autodocodec] added 0 mutations
  9068. 150.60 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 )
  9069. 150.61 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  9070. 150.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  9071. 150.61 s [really-safe-money-autodocodec] @@ -37,5 +37,5 @@
  9072. 150.61 s [really-safe-money-autodocodec] where
  9073. 150.61 s [really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
  9074. 150.61 s [really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
  9075. 150.61 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9076. 150.61 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords []
  9077. 150.61 s [really-safe-money-autodocodec] Just a -> Right a
  9078. 150.61 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  9079. 150.61 s [really-safe-money-autodocodec] @@ -37,5 +37,5 @@
  9080. 150.61 s [really-safe-money-autodocodec] where
  9081. 150.61 s [really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
  9082. 150.61 s [really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
  9083. 150.61 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9084. 150.61 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9085. 150.61 s [really-safe-money-autodocodec] Just a -> Right a
  9086. 150.61 s [really-safe-money-autodocodec] added 2 mutations
  9087. 150.67 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 )
  9088. 151.00 s [really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.p_o )
  9089. 151.02 s [really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
  9090. 151.02 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  9091. 151.02 s [really-safe-money-autodocodec] @@ -48,7 +48,7 @@
  9092. 151.02 s [really-safe-money-autodocodec] where
  9093. 151.02 s [really-safe-money-autodocodec] f :: String -> Either String Account
  9094. 151.02 s [really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  9095. 151.02 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  9096. 151.02 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords []
  9097. 151.02 s [really-safe-money-autodocodec] Just a -> Right a
  9098. 151.02 s [really-safe-money-autodocodec] g :: Account -> String
  9099. 151.02 s [really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
  9100. 151.02 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  9101. 151.02 s [really-safe-money-autodocodec] @@ -48,7 +48,7 @@
  9102. 151.02 s [really-safe-money-autodocodec] where
  9103. 151.02 s [really-safe-money-autodocodec] f :: String -> Either String Account
  9104. 151.02 s [really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  9105. 151.02 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  9106. 151.02 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  9107. 151.02 s [really-safe-money-autodocodec] Just a -> Right a
  9108. 151.02 s [really-safe-money-autodocodec] g :: Account -> String
  9109. 151.02 s [really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
  9110. 151.02 s [really-safe-money-autodocodec] added 2 mutations
  9111. 151.72 s [really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.p_o )
  9112. 151.73 s [really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
  9113. 151.73 s [really-safe-money-autodocodec] added 0 mutations
  9114. 151.86 s [really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.p_o )
  9115. 151.86 s [really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
  9116. 151.86 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  9117. 151.86 s [really-safe-money-autodocodec] @@ -44,7 +44,7 @@
  9118. 151.86 s [really-safe-money-autodocodec] where
  9119. 151.86 s [really-safe-money-autodocodec] f :: String -> Either String Amount
  9120. 151.86 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9121. 151.86 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9122. 151.86 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords []
  9123. 151.86 s [really-safe-money-autodocodec] Just i ->
  9124. 151.86 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9125. 151.86 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9126. 151.86 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  9127. 151.86 s [really-safe-money-autodocodec] @@ -44,7 +44,7 @@
  9128. 151.86 s [really-safe-money-autodocodec] where
  9129. 151.86 s [really-safe-money-autodocodec] f :: String -> Either String Amount
  9130. 151.86 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9131. 151.86 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9132. 151.86 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9133. 151.86 s [really-safe-money-autodocodec] Just i ->
  9134. 151.86 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9135. 151.86 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9136. 151.86 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  9137. 151.86 s [really-safe-money-autodocodec] @@ -46,7 +46,7 @@
  9138. 151.86 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9139. 151.86 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9140. 151.86 s [really-safe-money-autodocodec] Just i ->
  9141. 151.86 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  9142. 151.86 s [really-safe-money-autodocodec] + if True
  9143. 151.86 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9144. 151.86 s [really-safe-money-autodocodec] else
  9145. 151.86 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9146. 151.86 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  9147. 151.86 s [really-safe-money-autodocodec] @@ -46,7 +46,7 @@
  9148. 151.86 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9149. 151.86 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9150. 151.87 s [really-safe-money-autodocodec] Just i ->
  9151. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  9152. 151.87 s [really-safe-money-autodocodec] + if False
  9153. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9154. 151.87 s [really-safe-money-autodocodec] else
  9155. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9156. 151.87 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  9157. 151.87 s [really-safe-money-autodocodec] @@ -46,7 +46,7 @@
  9158. 151.87 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9159. 151.87 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9160. 151.87 s [really-safe-money-autodocodec] Just i ->
  9161. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  9162. 151.87 s [really-safe-money-autodocodec] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  9163. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9164. 151.87 s [really-safe-money-autodocodec] else
  9165. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9166. 151.87 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  9167. 151.87 s [really-safe-money-autodocodec] @@ -47,7 +47,7 @@
  9168. 151.87 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9169. 151.87 s [really-safe-money-autodocodec] Just i ->
  9170. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9171. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9172. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords []
  9173. 151.87 s [really-safe-money-autodocodec] else
  9174. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9175. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9176. 151.87 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  9177. 151.87 s [really-safe-money-autodocodec] @@ -47,7 +47,7 @@
  9178. 151.87 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9179. 151.87 s [really-safe-money-autodocodec] Just i ->
  9180. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9181. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9182. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9183. 151.87 s [really-safe-money-autodocodec] else
  9184. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9185. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9186. 151.87 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  9187. 151.87 s [really-safe-money-autodocodec] @@ -49,7 +49,7 @@
  9188. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9189. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9190. 151.87 s [really-safe-money-autodocodec] else
  9191. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9192. 151.87 s [really-safe-money-autodocodec] + if True
  9193. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9194. 151.87 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9195. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9196. 151.87 s [really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  9197. 151.87 s [really-safe-money-autodocodec] @@ -49,7 +49,7 @@
  9198. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9199. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9200. 151.87 s [really-safe-money-autodocodec] else
  9201. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9202. 151.87 s [really-safe-money-autodocodec] + if False
  9203. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9204. 151.87 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9205. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9206. 151.87 s [really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  9207. 151.87 s [really-safe-money-autodocodec] @@ -49,7 +49,7 @@
  9208. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9209. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9210. 151.87 s [really-safe-money-autodocodec] else
  9211. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9212. 151.87 s [really-safe-money-autodocodec] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  9213. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9214. 151.87 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9215. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9216. 151.87 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  9217. 151.87 s [really-safe-money-autodocodec] @@ -50,7 +50,7 @@
  9218. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9219. 151.87 s [really-safe-money-autodocodec] else
  9220. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9221. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9222. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords []
  9223. 151.87 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9224. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9225. 151.87 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9226. 151.87 s [really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  9227. 151.87 s [really-safe-money-autodocodec] @@ -50,7 +50,7 @@
  9228. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9229. 151.87 s [really-safe-money-autodocodec] else
  9230. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
  9231. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9232. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9233. 151.87 s [really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9234. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9235. 151.87 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9236. 151.87 s [really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
  9237. 151.87 s [really-safe-money-autodocodec] @@ -49,9 +49,9 @@
  9238. 151.87 s [really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
  9239. 151.87 s [really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9240. 151.87 s [really-safe-money-autodocodec] else
  9241. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9242. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9243. 151.87 s [really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9244. 151.87 s [really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
  9245. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9246. 151.87 s [really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9247. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9248. 151.87 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9249. 151.87 s [really-safe-money-autodocodec]
  9250. 151.87 s [really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
  9251. 151.87 s [really-safe-money-autodocodec] @@ -46,12 +46,12 @@
  9252. 151.87 s [really-safe-money-autodocodec] f s = case readMaybe s of
  9253. 151.87 s [really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  9254. 151.87 s [really-safe-money-autodocodec] Just i ->
  9255. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
  9256. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9257. 151.87 s [really-safe-money-autodocodec] - else
  9258. 151.87 s [really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
  9259. 151.87 s [really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9260. 151.87 s [really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9261. 151.87 s [really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
  9262. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
  9263. 151.87 s [really-safe-money-autodocodec] + else
  9264. 151.87 s [really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
  9265. 151.87 s [really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  9266. 151.87 s [really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  9267. 151.87 s [really-safe-money-autodocodec] g :: Amount -> String
  9268. 151.87 s [really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
  9269. 151.87 s [really-safe-money-autodocodec]
  9270. 151.87 s [really-safe-money-autodocodec] added 14 mutations
  9271. 152.14 s [really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.p_o )
  9272. 152.15 s [really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
  9273. 152.15 s [really-safe-money-autodocodec] added 0 mutations
  9274. 152.27 s [really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.p_o )
  9275. 152.28 s [really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
  9276. 152.28 s [really-safe-money-autodocodec] added 0 mutations
  9277. 152.42 s [really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.p_o )
  9278. 152.42 s [really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
  9279. 152.42 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  9280. 152.42 s [really-safe-money-autodocodec] @@ -37,5 +37,5 @@
  9281. 152.42 s [really-safe-money-autodocodec] where
  9282. 152.42 s [really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
  9283. 152.42 s [really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
  9284. 152.42 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9285. 152.42 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords []
  9286. 152.42 s [really-safe-money-autodocodec] Just a -> Right a
  9287. 152.42 s [really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  9288. 152.42 s [really-safe-money-autodocodec] @@ -37,5 +37,5 @@
  9289. 152.42 s [really-safe-money-autodocodec] where
  9290. 152.42 s [really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
  9291. 152.42 s [really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
  9292. 152.42 s [really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9293. 152.42 s [really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  9294. 152.42 s [really-safe-money-autodocodec] Just a -> Right a
  9295. 152.42 s [really-safe-money-autodocodec] added 2 mutations
  9296. 152.57 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 )
  9297. 152.99 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
  9298. 152.99 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
  9299. 152.99 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
  9300. 152.99 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
  9301. 153.00 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
  9302. 153.00 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
  9303. 153.00 s [really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
  9304. 153.81 s [really-safe-money-autodocodec] mutation-nix: manifest output at /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest:
  9305. 153.81 s [really-safe-money-autodocodec] total 64
  9306. 153.81 s [really-safe-money-autodocodec] drwxr-xr-x 2 nixbld nixbld 4096 May 13 15:57 .
  9307. 153.81 s [really-safe-money-autodocodec] drwxrwxr-t 239 nobody nixbld 28672 May 13 15:57 ..
  9308. 153.81 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1366 May 13 15:57 Money.Account.Codec.json
  9309. 153.81 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AccountOf.Codec.json
  9310. 153.81 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 11479 May 13 15:57 Money.Amount.Codec.json
  9311. 153.81 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AmountOf.Codec.json
  9312. 153.81 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.QuantisationFactor.Codec.json
  9313. 153.81 s [really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1256 May 13 15:57 Numeric.DecimalLiteral.Codec.json
  9314. 153.81 s [really-safe-money-autodocodec] Phase: haddockPhase
  9315. 153.82 s [really-safe-money-autodocodec] Phase: installPhase
  9316. 153.88 s [really-safe-money-autodocodec] Installing library in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-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
  9317. 154.07 s [really-safe-money-autodocodec] Phase: fixupPhase
  9318. 154.09 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0
  9319. 154.09 s [really-safe-money-autodocodec] shrinking /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-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
  9320. 154.11 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0...
  9321. 154.13 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0
  9322. 154.14 s [really-safe-money-autodocodec] stripping (with command strip and flags -S -p) in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib
  9323. 154.18 s [really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest
  9324. 154.19 s [really-safe-money-autodocodec] checking for references to /build/ in /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest...
  9325. 154.20 s [really-safe-money-autodocodec] patching script interpreter paths in /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest
  9326. 154.26 s Progress: 10 of 13 built (1 building)
  9327. 156.16 s [genvalidity-sydtest] Documentation created: dist/doc/html/genvalidity-sydtest/,
  9328. 156.16 s [genvalidity-sydtest] dist/doc/html/genvalidity-sydtest/genvalidity-sydtest.txt
  9329. 156.23 s [genvalidity-sydtest] Preprocessing test suite 'genvalidity-sydtest-test' for genvalidity-sydtest-1.0.1.0...
  9330. 156.23 s [genvalidity-sydtest] Phase: installPhase
  9331. 156.35 s [genvalidity-sydtest] Installing library in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  9332. 156.93 s [genvalidity-sydtest] Phase: fixupPhase
  9333. 156.96 s [genvalidity-sydtest] shrinking RPATHs of ELF executables and libraries in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0
  9334. 156.96 s [genvalidity-sydtest] shrinking /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSgenvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1-ghc9.10.3.so
  9335. 157.01 s [genvalidity-sydtest] checking for references to /build/ in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0...
  9336. 157.06 s [genvalidity-sydtest] patching script interpreter paths in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0
  9337. 157.06 s [genvalidity-sydtest] stripping (with command strip and flags -S -p) in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib
  9338. 157.17 s [genvalidity-sydtest] shrinking RPATHs of ELF executables and libraries in /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc
  9339. 157.19 s [genvalidity-sydtest] checking for references to /build/ in /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc...
  9340. 157.22 s [genvalidity-sydtest] patching script interpreter paths in /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc
  9341. 157.39 s Progress: 11 of 13 built
  9342. 157.45 s Building really-safe-money-gen
  9343. 157.83 s [really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
  9344. 157.84 s [really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  9345. 158.32 s [really-safe-money-gen] Phase: unpackPhase
  9346. 158.32 s [really-safe-money-gen] unpacking source archive /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
  9347. 158.33 s [really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
  9348. 158.34 s [really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778687845 of file "really-safe-money-gen-0.0.0.0/test/Spec.hs"
  9349. 158.34 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
  9350. 158.34 s [really-safe-money-gen] Phase: patchPhase
  9351. 158.35 s [really-safe-money-gen] Phase: compileBuildDriverPhase
  9352. 158.35 s [really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.OqOO6sOrMV/setup-package.conf.d -threaded
  9353. 158.41 s [really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.OqOO6sOrMV/Main.o )
  9354. 158.45 s [really-safe-money-gen] [2 of 2] Linking Setup
  9355. 159.76 s [really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
  9356. 159.77 s [really-safe-money-gen] Phase: configurePhase
  9357. 159.77 s [really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-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.OqOO6sOrMV/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
  9358. 159.78 s [really-safe-money-gen] Using Parsec parser
  9359. 159.78 s [really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
  9360. 160.49 s [really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
  9361. 160.49 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  9362. 160.49 s [really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
  9363. 160.49 s [really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  9364. 160.49 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  9365. 160.49 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  9366. 160.49 s [really-safe-money-gen] Dependency containers: using containers-0.7
  9367. 160.49 s [really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  9368. 160.49 s [really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  9369. 160.49 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  9370. 160.49 s [really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  9371. 160.49 s [really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
  9372. 160.49 s [really-safe-money-gen] Dependency vector: using vector-0.13.2.0
  9373. 160.49 s [really-safe-money-gen] Source component graph:
  9374. 160.49 s [really-safe-money-gen] component lib
  9375. 160.49 s [really-safe-money-gen] component test:really-safe-money-test dependency lib
  9376. 160.49 s [really-safe-money-gen] Configured component graph:
  9377. 160.49 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9378. 160.49 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  9379. 160.49 s [really-safe-money-gen] include base-4.20.2.0-64da
  9380. 160.49 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  9381. 160.49 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  9382. 160.49 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  9383. 160.49 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
  9384. 160.49 s [really-safe-money-gen] include base-4.20.2.0-64da
  9385. 160.49 s [really-safe-money-gen] include containers-0.7-504a
  9386. 160.49 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  9387. 160.49 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  9388. 160.49 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  9389. 160.49 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9390. 160.49 s [really-safe-money-gen] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  9391. 160.49 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  9392. 160.49 s [really-safe-money-gen] Linked component graph:
  9393. 160.49 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9394. 160.49 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  9395. 160.49 s [really-safe-money-gen] include base-4.20.2.0-64da
  9396. 160.49 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  9397. 160.49 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  9398. 160.49 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  9399. 160.49 s [really-safe-money-gen] Money.Account.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Account.Gen,Money.AccountOf.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.AccountOf.Gen,Money.Amount.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Amount.Gen,Money.AmountOf.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.AmountOf.Gen,Money.ConversionRate.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.ConversionRate.Gen,Money.ConversionRateOf.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.ConversionRateOf.Gen,Money.Currency.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Currency.Gen,Money.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Gen,Money.MultiAccount.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.MultiAccount.Gen,Money.MultiAmount.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.MultiAmount.Gen,Money.QuantisationFactor.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.QuantisationFactor.Gen,Numeric.DecimalLiteral.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Numeric.DecimalLiteral.Gen
  9400. 160.49 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
  9401. 160.49 s [really-safe-money-gen] include base-4.20.2.0-64da
  9402. 160.49 s [really-safe-money-gen] include containers-0.7-504a
  9403. 160.49 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  9404. 160.49 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  9405. 160.49 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  9406. 160.49 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9407. 160.49 s [really-safe-money-gen] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  9408. 160.49 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  9409. 160.49 s [really-safe-money-gen] Ready component graph:
  9410. 160.49 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9411. 160.49 s [really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  9412. 160.49 s [really-safe-money-gen] depends base-4.20.2.0-64da
  9413. 160.49 s [really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  9414. 160.49 s [really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  9415. 160.49 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  9416. 160.49 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
  9417. 160.49 s [really-safe-money-gen] depends base-4.20.2.0-64da
  9418. 160.49 s [really-safe-money-gen] depends containers-0.7-504a
  9419. 160.49 s [really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
  9420. 160.49 s [really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  9421. 160.49 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  9422. 160.49 s [really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9423. 160.49 s [really-safe-money-gen] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
  9424. 160.49 s [really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  9425. 160.49 s [really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
  9426. 160.49 s [really-safe-money-gen] Using compiler: ghc-9.10.3
  9427. 160.49 s [really-safe-money-gen] Using install prefix:
  9428. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0
  9429. 160.49 s [really-safe-money-gen] Executables installed in:
  9430. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/bin
  9431. 160.49 s [really-safe-money-gen] Libraries installed in:
  9432. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  9433. 160.49 s [really-safe-money-gen] Dynamic Libraries installed in:
  9434. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  9435. 160.49 s [really-safe-money-gen] Private executables installed in:
  9436. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-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
  9437. 160.49 s [really-safe-money-gen] Data files installed in:
  9438. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-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
  9439. 160.49 s [really-safe-money-gen] Documentation installed in:
  9440. 160.49 s [really-safe-money-gen] /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
  9441. 160.49 s [really-safe-money-gen] Configuration files installed in:
  9442. 160.49 s [really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/etc
  9443. 160.49 s [really-safe-money-gen] No alex found
  9444. 160.49 s [really-safe-money-gen] Using ar found on system at:
  9445. 160.49 s [really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  9446. 160.49 s [really-safe-money-gen] No c2hs found
  9447. 160.49 s [really-safe-money-gen] No cpphs found
  9448. 160.49 s [really-safe-money-gen] No doctest found
  9449. 160.49 s [really-safe-money-gen] Using gcc version 14.3.0 given by user at:
  9450. 160.49 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  9451. 160.49 s [really-safe-money-gen] Using ghc version 9.10.3 found on system at:
  9452. 160.49 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  9453. 160.49 s [really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
  9454. 160.49 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  9455. 160.49 s [really-safe-money-gen] No ghcjs found
  9456. 160.49 s [really-safe-money-gen] No ghcjs-pkg found
  9457. 160.49 s [really-safe-money-gen] No greencard found
  9458. 160.49 s [really-safe-money-gen] Using haddock version 2.31.1 found on system at:
  9459. 160.50 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  9460. 160.50 s [really-safe-money-gen] No happy found
  9461. 160.50 s [really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
  9462. 160.50 s [really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  9463. 160.50 s [really-safe-money-gen] No hmake found
  9464. 160.50 s [really-safe-money-gen] Using hpc version 0.69 found on system at:
  9465. 160.50 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  9466. 160.50 s [really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
  9467. 160.50 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  9468. 160.50 s [really-safe-money-gen] Using hscolour version 1.25 found on system at:
  9469. 160.50 s [really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  9470. 160.50 s [really-safe-money-gen] No jhc found
  9471. 160.50 s [really-safe-money-gen] Using ld found on system at:
  9472. 160.50 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  9473. 160.50 s [really-safe-money-gen] No pkg-config found
  9474. 160.50 s [really-safe-money-gen] Using runghc version 9.10.3 found on system at:
  9475. 160.50 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  9476. 160.50 s [really-safe-money-gen] Using strip version 2.44 found on system at:
  9477. 160.50 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  9478. 160.50 s [really-safe-money-gen] Using tar found on system at:
  9479. 160.50 s [really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  9480. 160.50 s [really-safe-money-gen] No uhc found
  9481. 160.94 s [really-safe-money-gen] Phase: buildPhase
  9482. 161.06 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  9483. 161.06 s [really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
  9484. 161.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 )
  9485. 161.53 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 )
  9486. 161.60 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 )
  9487. 161.65 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 )
  9488. 161.65 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 )
  9489. 161.65 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 )
  9490. 161.65 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 )
  9491. 161.65 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 )
  9492. 161.65 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 )
  9493. 161.65 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 )
  9494. 161.68 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 )
  9495. 161.72 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 )
  9496. 161.72 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 )
  9497. 161.94 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
  9498. 162.42 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
  9499. 162.81 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
  9500. 162.95 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
  9501. 162.95 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
  9502. 162.95 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
  9503. 162.95 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
  9504. 162.95 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
  9505. 162.95 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
  9506. 162.95 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
  9507. 162.99 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
  9508. 163.12 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
  9509. 163.12 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 )
  9510. 164.79 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  9511. 164.79 s [really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  9512. 165.05 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 )
  9513. 168.04 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 )
  9514. 168.25 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 )
  9515. 168.25 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 )
  9516. 168.25 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 )
  9517. 168.25 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 )
  9518. 168.25 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 )
  9519. 168.25 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 )
  9520. 168.25 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 )
  9521. 168.25 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 )
  9522. 168.25 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 )
  9523. 168.25 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 )
  9524. 168.25 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 )
  9525. 168.31 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 )
  9526. 168.67 s [really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
  9527. 170.29 s [really-safe-money-gen] Phase: checkPhase
  9528. 170.30 s [really-safe-money-gen] mutation-nix: collecting coverage for suite really-safe-money-gen
  9529. 172.01 s [really-safe-money-gen] coverage (12/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 5 % 1 into DecimalLiteral Nothing 5 0 (18 mutations)
  9530. 173.04 s [really-safe-money-gen] coverage (17/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 20 4 into rational 1 % 500 (4 mutations)
  9531. 173.27 s [really-safe-money-gen] coverage (27/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 240009 % 20000 into DecimalLiteral Nothing 1200045 5 (22 mutations)
  9532. 173.37 s [really-safe-money-gen] coverage (14/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.renders to valid decimal literals (23 mutations)
  9533. 173.47 s [really-safe-money-gen] coverage (5/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 (18 mutations)
  9534. 173.63 s [really-safe-money-gen] coverage (10/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-1) % 1000 into DecimalLiteral (Just False) 1 3 (21 mutations)
  9535. 173.67 s [really-safe-money-gen] coverage (1/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.renders to valid decimal literals (1 mutations)
  9536. 173.71 s [really-safe-money-gen] coverage (25/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 7 % 1 into DecimalLiteral Nothing 7 0 (18 mutations)
  9537. 173.74 s [really-safe-money-gen] coverage (9/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 50 1 into rational 5 % 1 (4 mutations)
  9538. 173.79 s [really-safe-money-gen] coverage (24/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 1 into DecimalLiteral Nothing 1 0 (18 mutations)
  9539. 173.85 s [really-safe-money-gen] coverage (3/1610): Numeric\.DecimalLiteralSpec.Natural.toNatural.renders to valid naturals (0 mutations)
  9540. 173.88 s [really-safe-money-gen] coverage (2/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.can parse any rendered literal (4 mutations)
  9541. 173.91 s [really-safe-money-gen] coverage (22/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 9 % 100 into DecimalLiteral Nothing 9 2 (20 mutations)
  9542. 173.96 s [really-safe-money-gen] coverage (4/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 9 2 into rational 9 % 100 (4 mutations)
  9543. 173.98 s [really-safe-money-gen] coverage (7/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-6) % 1 into DecimalLiteral (Just False) 6 0 (19 mutations)
  9544. 174.05 s [really-safe-money-gen] coverage (8/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 10 0 into rational 10 % 1 (4 mutations)
  9545. 174.08 s [really-safe-money-gen] coverage (23/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 3 0 into rational (-3) % 1 (4 mutations)
  9546. 174.22 s [really-safe-money-gen] coverage (19/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1 into DecimalLiteral (Just False) 3 0 (19 mutations)
  9547. 174.23 s [really-safe-money-gen] coverage (13/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.can parse any rendered rational (26 mutations)
  9548. 174.23 s [really-safe-money-gen] coverage (6/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 500 into DecimalLiteral Nothing 2 3 (20 mutations)
  9549. 174.28 s [really-safe-money-gen] coverage (11/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-4) % 5 into DecimalLiteral (Just False) 8 1 (21 mutations)
  9550. 174.46 s [really-safe-money-gen] coverage (20/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 7000 3 into rational 7 % 1 (4 mutations)
  9551. 174.46 s [really-safe-money-gen] coverage (28/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 1 3 into rational (-1) % 1000 (4 mutations)
  9552. 174.47 s [really-safe-money-gen] coverage (21/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 2 0 into rational 2 % 1 (4 mutations)
  9553. 174.49 s [really-safe-money-gen] coverage (26/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1 0 into rational 1 % 1 (4 mutations)
  9554. 174.55 s [really-safe-money-gen] coverage (18/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 10 % 1 into DecimalLiteral Nothing 10 0 (18 mutations)
  9555. 174.80 s [really-safe-money-gen] coverage (15/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 600 2 into rational (-6) % 1 (4 mutations)
  9556. 174.81 s [really-safe-money-gen] coverage (16/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 400 0 into rational 400 % 1 (4 mutations)
  9557. 175.73 s [really-safe-money-gen] coverage (29/1610): Numeric\.DecimalLiteralSpec.Rational.toRational.renders to valid rationals (4 mutations)
  9558. 176.76 s [really-safe-money-gen] coverage (30/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1000 into DecimalLiteral (Just False) 3 3 (21 mutations)
  9559. 177.23 s [really-safe-money-gen] coverage (32/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1200045 5 into rational 240009 % 20000 (4 mutations)
  9560. 177.27 s [really-safe-money-gen] coverage (31/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 2 % 1 into DecimalLiteral Nothing 2 0 (18 mutations)
  9561. 177.31 s [really-safe-money-gen] coverage (33/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 8 1 into rational (-4) % 5 (4 mutations)
  9562. 177.31 s [really-safe-money-gen] coverage (34/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 300 5 into rational (-3) % 1000 (4 mutations)
  9563. 177.41 s [really-safe-money-gen] coverage (37/1610): Numeric\.DecimalLiteralSpec.Ratio.toRatio.renders to valid rationals (3 mutations)
  9564. 177.44 s [really-safe-money-gen] coverage (41/1610): Numeric\.DecimalLiteralSpec.GenValid DecimalLiteral.genValid \:\: Gen DecimalLiteral.only generates valid 'DecimalLiteral's (0 mutations)
  9565. 177.46 s [really-safe-money-gen] coverage (35/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.can parse any rendered rational (21 mutations)
  9566. 177.52 s [really-safe-money-gen] coverage (38/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.does not change the value of the literal (9 mutations)
  9567. 177.57 s [really-safe-money-gen] coverage (40/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces values with more than the given number of digits (6 mutations)
  9568. 177.64 s [really-safe-money-gen] coverage (42/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.fails to parse scientific notation (15 mutations)
  9569. 177.66 s [really-safe-money-gen] coverage (39/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces valid literals (6 mutations)
  9570. 177.72 s [really-safe-money-gen] coverage (36/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.renders to valid decimal literals (18 mutations)
  9571. 177.72 s [really-safe-money-gen] coverage (44/1610): Numeric\.DecimalLiteralSpec.setSignOptional.produces valid values (0 mutations)
  9572. 177.79 s [really-safe-money-gen] coverage (43/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.can parse any rendered decimal literal (30 mutations)
  9573. 177.87 s [really-safe-money-gen] coverage (45/1610): Numeric\.DecimalLiteralSpec.Int.toInt.renders to valid words (6 mutations)
  9574. 177.93 s [really-safe-money-gen] coverage (46/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.can parse any rendered literal (13 mutations)
  9575. 178.01 s [really-safe-money-gen] coverage (47/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.renders to valid decimal literals (7 mutations)
  9576. 178.08 s [really-safe-money-gen] coverage (50/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.can parse any rendered literal (4 mutations)
  9577. 178.11 s [really-safe-money-gen] coverage (49/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.renders to valid decimal literals (1 mutations)
  9578. 178.14 s [really-safe-money-gen] coverage (48/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromStringM.does the same as DecimalLiteral\.fromString (9 mutations)
  9579. 178.20 s [really-safe-money-gen] coverage (54/1610): Numeric\.DecimalLiteralSpec.examples.can parse "1" (15 mutations)
  9580. 178.28 s [really-safe-money-gen] coverage (51/1610): Numeric\.DecimalLiteralSpec.Word.toWord.renders to valid words (0 mutations)
  9581. 178.39 s [really-safe-money-gen] coverage (53/1610): Numeric\.DecimalLiteralSpec.examples.can parse "+2" (18 mutations)
  9582. 178.40 s [really-safe-money-gen] coverage (52/1610): Numeric\.DecimalLiteralSpec.toString.can render any decimal literal (2 mutations)
  9583. 178.74 s [really-safe-money-gen] coverage (56/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 50 1 (1 mutations)
  9584. 178.99 s [really-safe-money-gen] coverage (55/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 300 5 (3 mutations)
  9585. 179.60 s [really-safe-money-gen] coverage (57/1610): Numeric\.DecimalLiteralSpec.examples.can parse "400" (22 mutations)
  9586. 180.68 s [really-safe-money-gen] coverage (58/1610): Numeric\.DecimalLiteralSpec.examples.can parse "5\.0" (19 mutations)
  9587. 181.29 s [really-safe-money-gen] coverage (59/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 8 1 (3 mutations)
  9588. 181.32 s [really-safe-money-gen] coverage (60/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 3 (3 mutations)
  9589. 181.35 s [really-safe-money-gen] coverage (62/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 7000 3 (1 mutations)
  9590. 181.36 s [really-safe-money-gen] coverage (63/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 20 4 (3 mutations)
  9591. 181.44 s [really-safe-money-gen] coverage (66/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just True) 2 0 (1 mutations)
  9592. 181.45 s [really-safe-money-gen] coverage (61/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.00300" (22 mutations)
  9593. 181.46 s [really-safe-money-gen] coverage (64/1610): Numeric\.DecimalLiteralSpec.examples.can parse "12\.00045" (24 mutations)
  9594. 181.52 s [really-safe-money-gen] coverage (76/1610): Numeric\.DecimalLiteralSpec.examples.can parse "-3" (15 mutations)
  9595. 181.59 s [really-safe-money-gen] coverage (65/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 0 (1 mutations)
  9596. 181.63 s [really-safe-money-gen] coverage (67/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1200045 5 (1 mutations)
  9597. 181.63 s [really-safe-money-gen] coverage (72/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.8" (17 mutations)
  9598. 181.65 s [really-safe-money-gen] coverage (69/1610): Numeric\.DecimalLiteralSpec.examples.can parse "6\.00" (22 mutations)
  9599. 181.78 s [really-safe-money-gen] coverage (68/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.001" (20 mutations)
  9600. 181.80 s [really-safe-money-gen] coverage (71/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 9 2 (3 mutations)
  9601. 181.93 s [really-safe-money-gen] coverage (70/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 600 2 (1 mutations)
  9602. 181.99 s [really-safe-money-gen] coverage (80/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.renders to valid decimal literals (7 mutations)
  9603. 182.22 s [really-safe-money-gen] coverage (74/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.09" (20 mutations)
  9604. 182.27 s [really-safe-money-gen] coverage (75/1610): Numeric\.DecimalLiteralSpec.examples.can parse "7\.000" (22 mutations)
  9605. 182.27 s [really-safe-money-gen] coverage (82/1610): Numeric\.DecimalLiteralSpec.digits.produces valid numbers of digits (0 mutations)
  9606. 182.28 s [really-safe-money-gen] coverage (73/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 400 0 (1 mutations)
  9607. 182.34 s [really-safe-money-gen] coverage (78/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.0020" (22 mutations)
  9608. 182.38 s [really-safe-money-gen] coverage (77/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just False) 3 0 (1 mutations)
  9609. 182.44 s [really-safe-money-gen] coverage (79/1610): Numeric\.DecimalLiteralSpec.Integer.toInteger.renders to valid words (0 mutations)
  9610. 182.62 s [really-safe-money-gen] coverage (81/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.can parse any rendered literal (7 mutations)
  9611. 182.86 s [really-safe-money-gen] coverage (83/1610): Numeric\.DecimalLiteralSpec.setSignRequired.produces valid values (1 mutations)
  9612. 183.33 s [really-safe-money-gen] coverage (84/1610): Money\.ConversionRateSpec.Rational.toRational.produces valid rationals (0 mutations)
  9613. 184.39 s [really-safe-money-gen] coverage (85/1610): Money\.ConversionRateSpec.Rational.fromRational.roundtrips with toRational (11 mutations)
  9614. 184.55 s [really-safe-money-gen] coverage (88/1610): Money\.ConversionRateSpec.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  9615. 185.21 s [really-safe-money-gen] coverage (90/1610): Money\.ConversionRateSpec.invert.produces valid rates (8 mutations)
  9616. 185.65 s [really-safe-money-gen] coverage (86/1610): Money\.ConversionRateSpec.Rational.fromRational.produces valid conversion rates (11 mutations)
  9617. 185.79 s [really-safe-money-gen] coverage (89/1610): Money\.ConversionRateSpec.Ratio.toRatio.produces valid ratios (0 mutations)
  9618. 185.89 s [really-safe-money-gen] coverage (101/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is symmetric for "valid Account"s (0 mutations)
  9619. 185.89 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 (0 mutations)
  9620. 185.89 s [really-safe-money-gen] coverage (98/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"s (0 mutations)
  9621. 185.91 s [really-safe-money-gen] coverage (87/1610): Money\.ConversionRateSpec.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  9622. 186.02 s [really-safe-money-gen] coverage (95/1610): Money\.ConversionRateSpec.GenValid ConversionRate.genValid \:\: Gen ConversionRate.only generates valid 'ConversionRate's (6 mutations)
  9623. 186.02 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 (0 mutations)
  9624. 186.13 s [really-safe-money-gen] coverage (100/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is transitive for "valid Account"s (0 mutations)
  9625. 186.40 s [really-safe-money-gen] coverage (103/1610): Money\.AccountSpec.Eq.says negative 0 equals positive 0 (1 mutations)
  9626. 186.41 s [really-safe-money-gen] coverage (102/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is reflexive for "valid Account"s (0 mutations)
  9627. 186.44 s [really-safe-money-gen] coverage (108/1610): Money\.AccountSpec.convert.converts this USD to CHF correctly (10 mutations)
  9628. 186.45 s [really-safe-money-gen] coverage (104/1610): Money\.AccountSpec.negate.produces valid amounts (0 mutations)
  9629. 186.48 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 (1 mutations)
  9630. 186.52 s [really-safe-money-gen] coverage (94/1610): Money\.ConversionRateSpec.compose.produces valid rates (6 mutations)
  9631. 186.59 s [really-safe-money-gen] coverage (92/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  9632. 186.65 s [really-safe-money-gen] coverage (109/1610): Money\.AccountSpec.distribute.correctly distributes 5 into 3 (11 mutations)
  9633. 186.73 s [really-safe-money-gen] coverage (110/1610): Money\.AccountSpec.distribute.correctly distributes 3 into 3 (11 mutations)
  9634. 186.94 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 (11 mutations)
  9635. 186.96 s [really-safe-money-gen] coverage (105/1610): Money\.AccountSpec.format.produces valid strings (3 mutations)
  9636. 187.60 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 (1 mutations)
  9637. 187.79 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 (1 mutations)
  9638. 188.80 s [really-safe-money-gen] coverage (107/1610): Money\.AccountSpec.convert.produces valid amounts (11 mutations)
  9639. 188.92 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 (1 mutations)
  9640. 189.18 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 (1 mutations)
  9641. 189.79 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 (1 mutations)
  9642. 189.94 s [really-safe-money-gen] coverage (118/1610): Money\.AccountSpec.distribute.correctly distributes 10 into 4 (11 mutations)
  9643. 190.00 s [really-safe-money-gen] coverage (131/1610): Money\.AccountSpec.rate.computes this USD to CHF rate correctly (6 mutations)
  9644. 190.21 s [really-safe-money-gen] coverage (122/1610): Money\.AccountSpec.fromAmount.produces valid accounts (0 mutations)
  9645. 190.31 s [really-safe-money-gen] coverage (127/1610): Money\.AccountSpec.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
  9646. 190.48 s [really-safe-money-gen] coverage (116/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution Account)"s (1 mutations)
  9647. 190.51 s [really-safe-money-gen] coverage (121/1610): Money\.AccountSpec.abs.produces valid amounts (0 mutations)
  9648. 190.59 s [really-safe-money-gen] coverage (120/1610): Money\.AccountSpec.distribute.produces valid amounts (19 mutations)
  9649. 190.67 s [really-safe-money-gen] coverage (117/1610): Money\.AccountSpec.distribute.produces results that sum up to the greater whole (32 mutations)
  9650. 190.70 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 (0 mutations)
  9651. 190.73 s [really-safe-money-gen] coverage (124/1610): Money\.AccountSpec.fromRational.produces valid rational (18 mutations)
  9652. 190.79 s [really-safe-money-gen] coverage (133/1610): Money\.AccountSpec.toDouble.produces an infinite or NaN Double with quantisation factor 0 (0 mutations)
  9653. 190.79 s [really-safe-money-gen] coverage (132/1610): Money\.AccountSpec.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
  9654. 190.97 s [really-safe-money-gen] coverage (126/1610): Money\.AccountSpec.fromRatio.roundtrips with toRatio (13 mutations)
  9655. 191.04 s [really-safe-money-gen] coverage (136/1610): Money\.AccountSpec.Ord.says -3 is smaller than 2 (0 mutations)
  9656. 191.19 s [really-safe-money-gen] coverage (128/1610): Money\.AccountSpec.fromMinimalQuantisations.produces valid accounts (9 mutations)
  9657. 191.21 s [really-safe-money-gen] coverage (123/1610): Money\.AccountSpec.fromRational.roundtrips with toRational (18 mutations)
  9658. 191.23 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 (0 mutations)
  9659. 191.38 s [really-safe-money-gen] coverage (134/1610): Money\.AccountSpec.Ord.says -6 is greater than -7 (0 mutations)
  9660. 191.48 s [really-safe-money-gen] coverage (129/1610): Money\.AccountSpec.rate.computes a rate that can be used to do a conversion without rounding (10 mutations)
  9661. 191.50 s [really-safe-money-gen] coverage (125/1610): Money\.AccountSpec.fromRatio.produces valid rational (13 mutations)
  9662. 191.58 s [really-safe-money-gen] coverage (130/1610): Money\.AccountSpec.rate.produces valid conversion rates (6 mutations)
  9663. 191.73 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 (0 mutations)
  9664. 192.19 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 (1 mutations)
  9665. 192.26 s [really-safe-money-gen] coverage (141/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (0 mutations)
  9666. 192.68 s [really-safe-money-gen] coverage (139/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
  9667. 193.08 s [really-safe-money-gen] coverage (149/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (0 mutations)
  9668. 193.58 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 (0 mutations)
  9669. 193.76 s [really-safe-money-gen] coverage (152/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
  9670. 193.92 s [really-safe-money-gen] coverage (157/1610): Money\.AccountSpec.sum.fails to sum above maxBound (5 mutations)
  9671. 194.06 s [really-safe-money-gen] coverage (153/1610): Money\.AccountSpec.toRatio.produces valid Ratios when the quantisation factor is nonzero (0 mutations)
  9672. 194.10 s [really-safe-money-gen] coverage (156/1610): Money\.AccountSpec.sum.fails to sum above maxBound even if the result is back below maxBound (5 mutations)
  9673. 194.16 s [really-safe-money-gen] coverage (155/1610): Money\.AccountSpec.sum.produces valid amounts (14 mutations)
  9674. 194.25 s [really-safe-money-gen] coverage (162/1610): Money\.AccountSpec.add.fails for minBound + (-1) (4 mutations)
  9675. 194.34 s [really-safe-money-gen] coverage (154/1610): Money\.AccountSpec.fractionRatio.produces valid amounts (6 mutations)
  9676. 194.43 s [really-safe-money-gen] coverage (163/1610): Money\.AccountSpec.add.fails for minBound + minBound (4 mutations)
  9677. 194.57 s [really-safe-money-gen] coverage (160/1610): Money\.AccountSpec.toMinimalQuantisations.produces valid accounts (0 mutations)
  9678. 194.60 s [really-safe-money-gen] coverage (161/1610): Money\.AccountSpec.add.is commutative (13 mutations)
  9679. 194.63 s [really-safe-money-gen] coverage (164/1610): Money\.AccountSpec.add.produces valid amounts (13 mutations)
  9680. 194.65 s [really-safe-money-gen] coverage (167/1610): Money\.AccountSpec.add.fails for maxBound + maxBound (4 mutations)
  9681. 194.74 s [really-safe-money-gen] coverage (166/1610): Money\.AccountSpec.add.fails for maxBound + 1 (4 mutations)
  9682. 194.78 s [really-safe-money-gen] coverage (135/1610): Money\.AccountSpec.Ord.says 4 is smaller than 5 (0 mutations)
  9683. 194.87 s [really-safe-money-gen] coverage (165/1610): Money\.AccountSpec.add.has a right-identity\: zero (14 mutations)
  9684. 195.07 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 (0 mutations)
  9685. 195.08 s [really-safe-money-gen] coverage (173/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (22 mutations)
  9686. 195.11 s [really-safe-money-gen] coverage (169/1610): Money\.AccountSpec.add.has a left-identity\: zero (14 mutations)
  9687. 195.25 s [really-safe-money-gen] coverage (170/1610): Money\.AccountSpec.add.matches what you would get with Integer, if nothing fails (13 mutations)
  9688. 195.53 s [really-safe-money-gen] coverage (168/1610): Money\.AccountSpec.add.is associative when both succeed (13 mutations)
  9689. 195.64 s [really-safe-money-gen] coverage (146/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
  9690. 195.66 s [really-safe-money-gen] coverage (159/1610): Money\.AccountSpec.sum.matches what you would get with Integer, if nothing fails (14 mutations)
  9691. 195.74 s [really-safe-money-gen] coverage (142/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (0 mutations)
  9692. 196.00 s [really-safe-money-gen] coverage (175/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 200 2 (25 mutations)
  9693. 196.66 s [really-safe-money-gen] coverage (145/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (0 mutations)
  9694. 197.01 s [really-safe-money-gen] coverage (143/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
  9695. 197.22 s [really-safe-money-gen] coverage (178/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 600 2 (25 mutations)
  9696. 197.30 s [really-safe-money-gen] coverage (176/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
  9697. 197.33 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 (0 mutations)
  9698. 197.33 s [really-safe-money-gen] coverage (177/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (25 mutations)
  9699. 197.56 s [really-safe-money-gen] coverage (158/1610): Money\.AccountSpec.sum.correctly sums [1,2,3] to 6 (5 mutations)
  9700. 197.61 s [really-safe-money-gen] coverage (174/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 4 2 (25 mutations)
  9701. 197.64 s [really-safe-money-gen] coverage (150/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (0 mutations)
  9702. 197.65 s [really-safe-money-gen] coverage (148/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (0 mutations)
  9703. 197.75 s [really-safe-money-gen] coverage (180/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (25 mutations)
  9704. 197.80 s [really-safe-money-gen] coverage (179/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
  9705. 197.97 s [really-safe-money-gen] coverage (181/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (27 mutations)
  9706. 198.14 s [really-safe-money-gen] coverage (185/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (23 mutations)
  9707. 198.15 s [really-safe-money-gen] coverage (182/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (25 mutations)
  9708. 198.15 s [really-safe-money-gen] coverage (171/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
  9709. 198.43 s [really-safe-money-gen] coverage (172/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (22 mutations)
  9710. 198.66 s [really-safe-money-gen] coverage (187/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
  9711. 198.67 s [really-safe-money-gen] coverage (189/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just False) 2 0 (23 mutations)
  9712. 198.83 s [really-safe-money-gen] coverage (188/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 20 2 (27 mutations)
  9713. 199.00 s [really-safe-money-gen] coverage (186/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
  9714. 199.08 s [really-safe-money-gen] coverage (190/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
  9715. 199.12 s [really-safe-money-gen] coverage (199/1610): Money\.AccountSpec.fromDouble.roundtrips with toDouble back to double (27 mutations)
  9716. 199.36 s [really-safe-money-gen] coverage (191/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise (13 mutations)
  9717. 199.80 s [really-safe-money-gen] coverage (193/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise:1 (13 mutations)
  9718. 199.92 s [really-safe-money-gen] coverage (192/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.produces valid factors (22 mutations)
  9719. 200.39 s [really-safe-money-gen] coverage (195/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (22 mutations)
  9720. 200.44 s [really-safe-money-gen] coverage (194/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (27 mutations)
  9721. 201.00 s [really-safe-money-gen] coverage (197/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
  9722. 201.24 s [really-safe-money-gen] coverage (220/1610): Money\.AccountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
  9723. 201.46 s [really-safe-money-gen] coverage (196/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
  9724. 201.68 s [really-safe-money-gen] coverage (200/1610): Money\.AccountSpec.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
  9725. 201.77 s [really-safe-money-gen] coverage (201/1610): Money\.AccountSpec.subtract.fails for minBound - 1 (4 mutations)
  9726. 201.82 s [really-safe-money-gen] coverage (198/1610): Money\.AccountSpec.fromDouble.produces valid rational (27 mutations)
  9727. 201.82 s [really-safe-money-gen] coverage (221/1610): Money\.MultiAmountSpec.fromAmount.produces valid amounts (16 mutations)
  9728. 202.09 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)
  9729. 202.31 s [really-safe-money-gen] coverage (223/1610): Money\.MultiAmountSpec.zero.is valid (2 mutations)
  9730. 202.45 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 (12 mutations)
  9731. 202.79 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)
  9732. 202.92 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)
  9733. 202.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)
  9734. 202.98 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)
  9735. 203.11 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)
  9736. 203.18 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)
  9737. 203.47 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)
  9738. 203.83 s [really-safe-money-gen] coverage (208/1610): Money\.AccountSpec.multiply.has an identity\: 1 (6 mutations)
  9739. 203.91 s [really-safe-money-gen] coverage (219/1610): Money\.AccountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  9740. 204.28 s [really-safe-money-gen] coverage (206/1610): Money\.AccountSpec.multiply.produces valid amounts (6 mutations)
  9741. 204.44 s [really-safe-money-gen] coverage (230/1610): Money\.MultiAmountSpec.sum.produces valid amounts (21 mutations)
  9742. 204.80 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 (12 mutations)
  9743. 205.24 s [really-safe-money-gen] coverage (207/1610): Money\.AccountSpec.multiply.succeeds for 3 * 6 (6 mutations)
  9744. 205.36 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)
  9745. 205.49 s [really-safe-money-gen] coverage (204/1610): Money\.AccountSpec.multiply.fails for 3 * minBound (4 mutations)
  9746. 205.65 s [really-safe-money-gen] coverage (203/1610): Money\.AccountSpec.subtract.fails for maxBound - minBound (4 mutations)
  9747. 205.73 s [really-safe-money-gen] coverage (252/1610): Money\.MultiAmountSpec.add.has a left-identity\: zero (2 mutations)
  9748. 205.74 s [really-safe-money-gen] coverage (248/1610): Money\.MultiAmountSpec.convertAll.produces valid results when converting two currencies to one (7 mutations)
  9749. 205.99 s [really-safe-money-gen] coverage (202/1610): Money\.AccountSpec.subtract.fails for minBound - maxBound (4 mutations)
  9750. 206.27 s [really-safe-money-gen] coverage (254/1610): Money\.MultiAmountSpec.add.is commutative (10 mutations)
  9751. 206.54 s [really-safe-money-gen] coverage (205/1610): Money\.AccountSpec.multiply.is absorbed by 0 (6 mutations)
  9752. 206.66 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)
  9753. 207.32 s [really-safe-money-gen] coverage (255/1610): Money\.MultiAmountSpec.addAmount.produces valid amounts (17 mutations)
  9754. 207.36 s [really-safe-money-gen] coverage (209/1610): Money\.AccountSpec.multiply.is distributive with add when both succeed (19 mutations)
  9755. 207.71 s [really-safe-money-gen] coverage (256/1610): Money\.MultiAmountSpec.subtractAmount.produces valid amounts (22 mutations)
  9756. 207.71 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)
  9757. 207.72 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)
  9758. 207.85 s [really-safe-money-gen] coverage (247/1610): Money\.MultiAmountSpec.convertAll.produces the right result in this example (5 mutations)
  9759. 207.96 s [really-safe-money-gen] coverage (251/1610): Money\.MultiAmountSpec.add.has a right-identity\: zero (2 mutations)
  9760. 208.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)
  9761. 208.14 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)
  9762. 208.39 s [really-safe-money-gen] coverage (210/1610): Money\.AccountSpec.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
  9763. 208.83 s [really-safe-money-gen] coverage (253/1610): Money\.MultiAmountSpec.add.is associative when both succeed (10 mutations)
  9764. 208.91 s [really-safe-money-gen] coverage (261/1610): Money\.MultiAmountSpec.lookupAmount.can find an added amount (1 mutations)
  9765. 209.26 s [really-safe-money-gen] coverage (258/1610): Money\.MultiAmountSpec.subtract.produces valid amounts (22 mutations)
  9766. 209.40 s [really-safe-money-gen] coverage (249/1610): Money\.MultiAmountSpec.convertAll.does the same as 'convert' when there is only one amount (13 mutations)
  9767. 210.13 s [really-safe-money-gen] coverage (213/1610): Money\.AccountSpec.fraction.Correctly fractions 101 with 1 % 100 (15 mutations)
  9768. 210.22 s [really-safe-money-gen] coverage (212/1610): Money\.AccountSpec.GenValid Account.genValid \:\: Gen Account.only generates valid 'Account's (0 mutations)
  9769. 210.25 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)
  9770. 210.43 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)
  9771. 210.47 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)
  9772. 210.67 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)
  9773. 210.71 s [really-safe-money-gen] coverage (259/1610): Money\.MultiAmountSpec.subtract.has a right-identity\: zero (2 mutations)
  9774. 211.13 s [really-safe-money-gen] coverage (211/1610): Money\.AccountSpec.multiply.fails for 2 * maxbound (4 mutations)
  9775. 211.13 s [really-safe-money-gen] coverage (216/1610): Money\.AccountSpec.fraction.Correctly fractions 100 with 1 % 100 (15 mutations)
  9776. 211.38 s [really-safe-money-gen] coverage (214/1610): Money\.AccountSpec.fraction.produces valid amounts (16 mutations)
  9777. 211.58 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)
  9778. 211.81 s [really-safe-money-gen] coverage (263/1610): Money\.AccountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (14 mutations)
  9779. 211.87 s [really-safe-money-gen] coverage (215/1610): Money\.AccountSpec.fraction.Produces a result that can be multiplied back (16 mutations)
  9780. 211.90 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 (0 mutations)
  9781. 212.22 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)
  9782. 212.32 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)
  9783. 212.33 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)
  9784. 212.71 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)
  9785. 212.72 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 (0 mutations)
  9786. 212.88 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 (0 mutations)
  9787. 213.10 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)
  9788. 213.23 s [really-safe-money-gen] coverage (262/1610): Money\.AccountOfSpec.USD.sum.produces valid amounts (14 mutations)
  9789. 213.65 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 (0 mutations)
  9790. 213.83 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 (0 mutations)
  9791. 214.01 s [really-safe-money-gen] coverage (250/1610): Money\.MultiAmountSpec.add.produces valid amounts (21 mutations)
  9792. 214.01 s [really-safe-money-gen] coverage (91/1610): Money\.ConversionRateSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  9793. 214.38 s [really-safe-money-gen] coverage (271/1610): Money\.AccountOfSpec.USD.add.is associative when both succeed (13 mutations)
  9794. 215.05 s [really-safe-money-gen] coverage (287/1610): Money\.AccountOfSpec.USD.INR.convert.produces valid amounts (11 mutations)
  9795. 215.17 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 (0 mutations)
  9796. 215.36 s [really-safe-money-gen] coverage (282/1610): Money\.AccountOfSpec.USD.USD.rate.produces valid amounts (6 mutations)
  9797. 215.47 s [really-safe-money-gen] coverage (272/1610): Money\.AccountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (13 mutations)
  9798. 215.50 s [really-safe-money-gen] coverage (260/1610): Money\.MultiAmountSpec.lookupAmount.produces valid amounts (2 mutations)
  9799. 215.53 s [really-safe-money-gen] coverage (286/1610): Money\.AccountOfSpec.USD.INR.rate.produces valid amounts (6 mutations)
  9800. 215.73 s [really-safe-money-gen] coverage (273/1610): Money\.AccountOfSpec.USD.add.produces valid amounts (13 mutations)
  9801. 215.75 s [really-safe-money-gen] coverage (288/1610): Money\.AccountOfSpec.USD.ADA.rate.produces valid amounts (6 mutations)
  9802. 216.14 s [really-safe-money-gen] coverage (289/1610): Money\.AccountOfSpec.USD.ADA.convert.produces valid amounts (11 mutations)
  9803. 216.42 s [really-safe-money-gen] coverage (294/1610): Money\.AccountOfSpec.USD.fraction.Produces a result that can be multiplied back (16 mutations)
  9804. 216.57 s [really-safe-money-gen] coverage (297/1610): Money\.AccountOfSpec.USD.GenValid (AccountOf * USD).genValid \:\: Gen (AccountOf * USD).only generates valid '(AccountOf * USD)'s (0 mutations)
  9805. 216.95 s [really-safe-money-gen] coverage (298/1610): Money\.AccountOfSpec.USD.fromDouble.produces valid rational (27 mutations)
  9806. 216.99 s [really-safe-money-gen] coverage (291/1610): Money\.AccountOfSpec.USD.CHF.rate.produces valid amounts (6 mutations)
  9807. 217.03 s [really-safe-money-gen] coverage (93/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  9808. 217.18 s [really-safe-money-gen] coverage (293/1610): Money\.AccountOfSpec.USD.fraction.produces valid amounts (16 mutations)
  9809. 217.18 s [really-safe-money-gen] coverage (290/1610): Money\.AccountOfSpec.USD.CHF.convert.produces valid amounts (11 mutations)
  9810. 217.20 s [really-safe-money-gen] coverage (285/1610): Money\.AccountOfSpec.USD.BTC.convert.produces valid amounts (11 mutations)
  9811. 217.34 s [really-safe-money-gen] coverage (292/1610): Money\.AccountOfSpec.USD.abs.produces valid amounts (0 mutations)
  9812. 217.39 s [really-safe-money-gen] coverage (284/1610): Money\.AccountOfSpec.USD.BTC.rate.produces valid amounts (6 mutations)
  9813. 217.43 s [really-safe-money-gen] coverage (296/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.produces valid accounts (9 mutations)
  9814. 217.79 s [really-safe-money-gen] coverage (295/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
  9815. 217.79 s [really-safe-money-gen] coverage (277/1610): Money\.AccountOfSpec.USD.toMinimalQuantisations.produces valid accounts (0 mutations)
  9816. 217.92 s [really-safe-money-gen] coverage (280/1610): Money\.AccountOfSpec.USD.negate.produces valid amounts (0 mutations)
  9817. 217.95 s [really-safe-money-gen] coverage (279/1610): Money\.AccountOfSpec.USD.fromAmount.produces valid AccountOfs (0 mutations)
  9818. 218.14 s [really-safe-money-gen] coverage (276/1610): Money\.AccountOfSpec.USD.fromAmountOf.produces valid AccountOfs (0 mutations)
  9819. 218.37 s [really-safe-money-gen] coverage (299/1610): Money\.AccountOfSpec.USD.fromDouble.roundtrips with toDouble (27 mutations)
  9820. 218.95 s [really-safe-money-gen] coverage (278/1610): Money\.AccountOfSpec.USD.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
  9821. 219.47 s [really-safe-money-gen] coverage (274/1610): Money\.AccountOfSpec.USD.add.is commutative (13 mutations)
  9822. 219.85 s [really-safe-money-gen] coverage (275/1610): Money\.AccountOfSpec.USD.add.has a left-identity\: zero (14 mutations)
  9823. 220.03 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 (0 mutations)
  9824. 220.14 s [really-safe-money-gen] coverage (270/1610): Money\.AccountOfSpec.USD.add.has a right-identity\: zero (14 mutations)
  9825. 220.43 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 (0 mutations)
  9826. 220.50 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 (0 mutations)
  9827. 220.80 s [really-safe-money-gen] coverage (281/1610): Money\.AccountOfSpec.USD.USD.convert.produces valid amounts (11 mutations)
  9828. 220.80 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 (0 mutations)
  9829. 220.94 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 (1 mutations)
  9830. 221.41 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 (1 mutations)
  9831. 221.41 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 (0 mutations)
  9832. 221.49 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 (0 mutations)
  9833. 221.50 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 (0 mutations)
  9834. 221.52 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 (0 mutations)
  9835. 221.68 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 (0 mutations)
  9836. 221.92 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 (0 mutations)
  9837. 221.93 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 (0 mutations)
  9838. 222.09 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 (0 mutations)
  9839. 222.31 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 (0 mutations)
  9840. 222.34 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 (0 mutations)
  9841. 222.43 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 (1 mutations)
  9842. 222.43 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 (0 mutations)
  9843. 222.56 s [really-safe-money-gen] coverage (316/1610): Money\.AccountOfSpec.USD.distribute.produces results that sum up to the greater whole (28 mutations)
  9844. 222.72 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 (1 mutations)
  9845. 223.26 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 (1 mutations)
  9846. 223.35 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 (0 mutations)
  9847. 223.89 s [really-safe-money-gen] coverage (332/1610): Money\.AccountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
  9848. 223.91 s [really-safe-money-gen] coverage (329/1610): Money\.AccountOfSpec.USD.multiply.is absorbed by 0 (6 mutations)
  9849. 223.96 s [really-safe-money-gen] coverage (331/1610): Money\.AccountOfSpec.USD.multiply.produces valid amounts (6 mutations)
  9850. 224.26 s [really-safe-money-gen] coverage (334/1610): Money\.AccountOfSpec.USD.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  9851. 224.47 s [really-safe-money-gen] coverage (333/1610): Money\.AccountOfSpec.USD.multiply.is distributive with add when both succeed (19 mutations)
  9852. 224.62 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 (1 mutations)
  9853. 224.71 s [really-safe-money-gen] coverage (327/1610): Money\.AccountOfSpec.USD.fromRational.produces valid rational (18 mutations)
  9854. 224.88 s [really-safe-money-gen] coverage (326/1610): Money\.AccountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
  9855. 224.91 s [really-safe-money-gen] coverage (330/1610): Money\.AccountOfSpec.USD.multiply.has an identity\: 1 (6 mutations)
  9856. 225.01 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 (1 mutations)
  9857. 225.59 s [really-safe-money-gen] coverage (337/1610): Money\.AccountOfSpec.INR.USD.rate.produces valid amounts (6 mutations)
  9858. 225.61 s [really-safe-money-gen] coverage (340/1610): Money\.AccountOfSpec.INR.add.produces valid amounts (13 mutations)
  9859. 225.68 s [really-safe-money-gen] coverage (335/1610): Money\.AccountOfSpec.INR.fromAmount.produces valid AccountOfs (0 mutations)
  9860. 225.68 s [really-safe-money-gen] coverage (342/1610): Money\.AccountOfSpec.INR.add.has a left-identity\: zero (14 mutations)
  9861. 225.70 s [really-safe-money-gen] coverage (339/1610): Money\.AccountOfSpec.INR.abs.produces valid amounts (0 mutations)
  9862. 225.70 s [really-safe-money-gen] coverage (324/1610): Money\.AccountOfSpec.USD.distribute.produces valid amounts (15 mutations)
  9863. 225.79 s [really-safe-money-gen] coverage (336/1610): Money\.AccountOfSpec.INR.USD.convert.produces valid amounts (11 mutations)
  9864. 226.12 s [really-safe-money-gen] coverage (338/1610): Money\.AccountOfSpec.INR.GenValid (AccountOf * INR).genValid \:\: Gen (AccountOf * INR).only generates valid '(AccountOf * INR)'s (0 mutations)
  9865. 226.43 s [really-safe-money-gen] coverage (359/1610): Money\.AccountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (14 mutations)
  9866. 226.46 s [really-safe-money-gen] coverage (343/1610): Money\.AccountOfSpec.INR.add.is commutative (13 mutations)
  9867. 226.49 s [really-safe-money-gen] coverage (341/1610): Money\.AccountOfSpec.INR.add.is associative when both succeed (13 mutations)
  9868. 226.62 s [really-safe-money-gen] coverage (346/1610): Money\.AccountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
  9869. 226.87 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 (1 mutations)
  9870. 226.99 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 (1 mutations)
  9871. 227.40 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 (1 mutations)
  9872. 227.42 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 (1 mutations)
  9873. 227.64 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 (0 mutations)
  9874. 227.67 s [really-safe-money-gen] coverage (349/1610): Money\.AccountOfSpec.INR.distribute.produces results that sum up to the greater whole (28 mutations)
  9875. 227.77 s [really-safe-money-gen] coverage (348/1610): Money\.AccountOfSpec.INR.fraction.Produces a result that can be multiplied back (16 mutations)
  9876. 227.82 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 (1 mutations)
  9877. 228.40 s [really-safe-money-gen] coverage (358/1610): Money\.AccountOfSpec.INR.fromAmountOf.produces valid AccountOfs (0 mutations)
  9878. 228.49 s [really-safe-money-gen] coverage (344/1610): Money\.AccountOfSpec.INR.add.has a right-identity\: zero (14 mutations)
  9879. 228.58 s [really-safe-money-gen] coverage (345/1610): Money\.AccountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (13 mutations)
  9880. 228.58 s [really-safe-money-gen] coverage (325/1610): Money\.AccountOfSpec.USD.format.produces valid strings (3 mutations)
  9881. 228.64 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 (1 mutations)
  9882. 228.87 s [really-safe-money-gen] coverage (347/1610): Money\.AccountOfSpec.INR.fraction.produces valid amounts (16 mutations)
  9883. 229.31 s [really-safe-money-gen] coverage (360/1610): Money\.AccountOfSpec.INR.sum.produces valid amounts (14 mutations)
  9884. 229.53 s [really-safe-money-gen] coverage (386/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
  9885. 229.56 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 (0 mutations)
  9886. 229.57 s [really-safe-money-gen] coverage (389/1610): Money\.AccountOfSpec.INR.fromRational.roundtrips with toRational (18 mutations)
  9887. 229.57 s [really-safe-money-gen] coverage (328/1610): Money\.AccountOfSpec.USD.fromRational.roundtrips with toRational (18 mutations)
  9888. 229.87 s [really-safe-money-gen] coverage (388/1610): Money\.AccountOfSpec.INR.fromRational.produces valid rational (18 mutations)
  9889. 229.88 s [really-safe-money-gen] coverage (390/1610): Money\.AccountOfSpec.INR.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
  9890. 229.89 s [really-safe-money-gen] coverage (387/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.produces valid accounts (9 mutations)
  9891. 230.15 s [really-safe-money-gen] coverage (393/1610): Money\.AccountOfSpec.INR.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  9892. 230.29 s [really-safe-money-gen] coverage (392/1610): Money\.AccountOfSpec.INR.BTC.convert.produces valid amounts (11 mutations)
  9893. 230.40 s [really-safe-money-gen] coverage (391/1610): Money\.AccountOfSpec.INR.BTC.rate.produces valid amounts (6 mutations)
  9894. 230.73 s [really-safe-money-gen] coverage (394/1610): Money\.AccountOfSpec.INR.fromDouble.roundtrips with toDouble (27 mutations)
  9895. 231.03 s [really-safe-money-gen] coverage (395/1610): Money\.AccountOfSpec.INR.fromDouble.produces valid rational (27 mutations)
  9896. 231.26 s [really-safe-money-gen] coverage (396/1610): Money\.AccountOfSpec.INR.ADA.convert.produces valid amounts (11 mutations)
  9897. 231.80 s [really-safe-money-gen] coverage (398/1610): Money\.AccountOfSpec.INR.format.produces valid strings (3 mutations)
  9898. 231.97 s [really-safe-money-gen] coverage (397/1610): Money\.AccountOfSpec.INR.ADA.rate.produces valid amounts (6 mutations)
  9899. 231.97 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 (0 mutations)
  9900. 232.02 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 (0 mutations)
  9901. 232.04 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 (0 mutations)
  9902. 232.12 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 (0 mutations)
  9903. 232.14 s [really-safe-money-gen] coverage (399/1610): Money\.AccountOfSpec.INR.toMinimalQuantisations.produces valid accounts (0 mutations)
  9904. 232.86 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 (0 mutations)
  9905. 232.90 s [really-safe-money-gen] coverage (406/1610): Money\.AccountOfSpec.INR.INR.convert.produces valid amounts (11 mutations)
  9906. 233.20 s [really-safe-money-gen] coverage (407/1610): Money\.AccountOfSpec.INR.INR.rate.produces valid amounts (6 mutations)
  9907. 233.33 s [really-safe-money-gen] coverage (408/1610): Money\.AccountOfSpec.CHF.fromAmount.produces valid AccountOfs (0 mutations)
  9908. 233.42 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 (0 mutations)
  9909. 233.43 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 (0 mutations)
  9910. 233.53 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 (0 mutations)
  9911. 233.70 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 (1 mutations)
  9912. 233.86 s [really-safe-money-gen] coverage (411/1610): Money\.AccountOfSpec.CHF.multiply.produces valid amounts (6 mutations)
  9913. 233.86 s [really-safe-money-gen] coverage (416/1610): Money\.AccountOfSpec.CHF.distribute.produces valid amounts (15 mutations)
  9914. 233.98 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 (0 mutations)
  9915. 234.02 s [really-safe-money-gen] coverage (412/1610): Money\.AccountOfSpec.CHF.multiply.is absorbed by 0 (6 mutations)
  9916. 234.05 s [really-safe-money-gen] coverage (409/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
  9917. 234.07 s [really-safe-money-gen] coverage (410/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.produces valid accounts (9 mutations)
  9918. 234.24 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 (0 mutations)
  9919. 234.40 s [really-safe-money-gen] coverage (413/1610): Money\.AccountOfSpec.CHF.multiply.is distributive with add when both succeed (19 mutations)
  9920. 234.54 s [really-safe-money-gen] coverage (357/1610): Money\.AccountOfSpec.INR.distribute.produces valid amounts (15 mutations)
  9921. 234.63 s [really-safe-money-gen] coverage (414/1610): Money\.AccountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
  9922. 235.66 s [really-safe-money-gen] coverage (184/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.produces valid decimal literals (30 mutations)
  9923. 235.90 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 (1 mutations)
  9924. 236.00 s [really-safe-money-gen] coverage (426/1610): Money\.AccountOfSpec.CHF.sum.produces valid amounts (14 mutations)
  9925. 236.10 s [really-safe-money-gen] coverage (379/1610): Money\.AccountOfSpec.INR.multiply.is distributive with add when both succeed (19 mutations)
  9926. 236.31 s [really-safe-money-gen] coverage (380/1610): Money\.AccountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
  9927. 236.37 s [really-safe-money-gen] coverage (377/1610): Money\.AccountOfSpec.INR.CHF.rate.produces valid amounts (6 mutations)
  9928. 236.42 s [really-safe-money-gen] coverage (415/1610): Money\.AccountOfSpec.CHF.multiply.has an identity\: 1 (6 mutations)
  9929. 236.53 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 (1 mutations)
  9930. 236.74 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 (0 mutations)
  9931. 236.94 s [really-safe-money-gen] coverage (382/1610): Money\.AccountOfSpec.INR.multiply.produces valid amounts (6 mutations)
  9932. 237.47 s [really-safe-money-gen] coverage (378/1610): Money\.AccountOfSpec.INR.CHF.convert.produces valid amounts (11 mutations)
  9933. 237.77 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 (1 mutations)
  9934. 237.81 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 (1 mutations)
  9935. 237.82 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 (0 mutations)
  9936. 237.97 s [really-safe-money-gen] coverage (429/1610): Money\.AccountOfSpec.CHF.USD.rate.produces valid amounts (6 mutations)
  9937. 238.28 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 (0 mutations)
  9938. 238.30 s [really-safe-money-gen] coverage (383/1610): Money\.AccountOfSpec.INR.multiply.has an identity\: 1 (6 mutations)
  9939. 238.33 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 (0 mutations)
  9940. 238.49 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 (0 mutations)
  9941. 238.50 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 (0 mutations)
  9942. 238.92 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 (0 mutations)
  9943. 239.16 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 (0 mutations)
  9944. 239.54 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 (1 mutations)
  9945. 239.55 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 (0 mutations)
  9946. 239.55 s [really-safe-money-gen] coverage (381/1610): Money\.AccountOfSpec.INR.multiply.is absorbed by 0 (6 mutations)
  9947. 239.73 s [really-safe-money-gen] coverage (425/1610): Money\.AccountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (14 mutations)
  9948. 240.07 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 (1 mutations)
  9949. 240.70 s [really-safe-money-gen] coverage (428/1610): Money\.AccountOfSpec.CHF.abs.produces valid amounts (0 mutations)
  9950. 241.24 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 (0 mutations)
  9951. 241.50 s [really-safe-money-gen] coverage (430/1610): Money\.AccountOfSpec.CHF.USD.convert.produces valid amounts (11 mutations)
  9952. 241.50 s [really-safe-money-gen] coverage (431/1610): Money\.AccountOfSpec.CHF.BTC.convert.produces valid amounts (11 mutations)
  9953. 241.58 s [really-safe-money-gen] coverage (432/1610): Money\.AccountOfSpec.CHF.BTC.rate.produces valid amounts (6 mutations)
  9954. 241.74 s [really-safe-money-gen] coverage (435/1610): Money\.AccountOfSpec.CHF.fraction.produces valid amounts (16 mutations)
  9955. 241.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 (0 mutations)
  9956. 241.94 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 (0 mutations)
  9957. 242.06 s [really-safe-money-gen] coverage (183/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.roundtrips with Account\.fromDecimalLiteral (51 mutations)
  9958. 242.10 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 (0 mutations)
  9959. 242.22 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 (0 mutations)
  9960. 242.74 s [really-safe-money-gen] coverage (443/1610): Money\.AccountOfSpec.CHF.fromAmountOf.produces valid AccountOfs (0 mutations)
  9961. 243.01 s [really-safe-money-gen] coverage (444/1610): Money\.AccountOfSpec.CHF.negate.produces valid amounts (0 mutations)
  9962. 243.14 s [really-safe-money-gen] coverage (447/1610): Money\.AccountOfSpec.CHF.fromRational.produces valid rational (18 mutations)
  9963. 243.64 s [really-safe-money-gen] coverage (442/1610): Money\.AccountOfSpec.CHF.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
  9964. 243.64 s [really-safe-money-gen] coverage (448/1610): Money\.AccountOfSpec.CHF.fromRational.roundtrips with toRational (18 mutations)
  9965. 243.65 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 (0 mutations)
  9966. 243.65 s [really-safe-money-gen] coverage (449/1610): Money\.AccountOfSpec.CHF.fromDouble.produces valid rational (27 mutations)
  9967. 243.77 s [really-safe-money-gen] coverage (452/1610): Money\.AccountOfSpec.CHF.ADA.rate.produces valid amounts (6 mutations)
  9968. 243.80 s [really-safe-money-gen] coverage (434/1610): Money\.AccountOfSpec.CHF.fraction.Produces a result that can be multiplied back (16 mutations)
  9969. 243.83 s [really-safe-money-gen] coverage (451/1610): Money\.AccountOfSpec.CHF.ADA.convert.produces valid amounts (11 mutations)
  9970. 244.18 s [really-safe-money-gen] coverage (450/1610): Money\.AccountOfSpec.CHF.fromDouble.roundtrips with toDouble (27 mutations)
  9971. 244.53 s [really-safe-money-gen] coverage (446/1610): Money\.AccountOfSpec.CHF.format.produces valid strings (3 mutations)
  9972. 244.53 s [really-safe-money-gen] coverage (417/1610): Money\.AccountOfSpec.CHF.distribute.produces results that sum up to the greater whole (28 mutations)
  9973. 244.62 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 (0 mutations)
  9974. 244.71 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 (0 mutations)
  9975. 244.75 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 (0 mutations)
  9976. 245.02 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 (1 mutations)
  9977. 245.08 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 (0 mutations)
  9978. 245.69 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 (0 mutations)
  9979. 245.75 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 (0 mutations)
  9980. 245.80 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 (0 mutations)
  9981. 245.91 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 (0 mutations)
  9982. 245.97 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 (0 mutations)
  9983. 246.03 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 (0 mutations)
  9984. 246.30 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 (0 mutations)
  9985. 246.37 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 (0 mutations)
  9986. 246.54 s [really-safe-money-gen] coverage (469/1610): Money\.AccountOfSpec.CHF.GenValid (AccountOf * CHF).genValid \:\: Gen (AccountOf * CHF).only generates valid '(AccountOf * CHF)'s (0 mutations)
  9987. 246.63 s [really-safe-money-gen] coverage (470/1610): Money\.AccountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
  9988. 246.81 s [really-safe-money-gen] coverage (472/1610): Money\.AccountOfSpec.CHF.CHF.convert.produces valid amounts (11 mutations)
  9989. 246.96 s [really-safe-money-gen] coverage (471/1610): Money\.AccountOfSpec.CHF.CHF.rate.produces valid amounts (6 mutations)
  9990. 247.18 s [really-safe-money-gen] coverage (473/1610): Money\.AccountOfSpec.CHF.add.is associative when both succeed (13 mutations)
  9991. 247.62 s [really-safe-money-gen] coverage (477/1610): Money\.AccountOfSpec.CHF.add.is commutative (13 mutations)
  9992. 247.67 s [really-safe-money-gen] coverage (475/1610): Money\.AccountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (13 mutations)
  9993. 247.77 s [really-safe-money-gen] coverage (479/1610): Money\.AccountOfSpec.CHF.INR.convert.produces valid amounts (11 mutations)
  9994. 247.94 s [really-safe-money-gen] coverage (476/1610): Money\.AccountOfSpec.CHF.add.has a right-identity\: zero (14 mutations)
  9995. 247.99 s [really-safe-money-gen] coverage (474/1610): Money\.AccountOfSpec.CHF.add.has a left-identity\: zero (14 mutations)
  9996. 248.14 s [really-safe-money-gen] coverage (478/1610): Money\.AccountOfSpec.CHF.add.produces valid amounts (13 mutations)
  9997. 248.19 s [really-safe-money-gen] coverage (480/1610): Money\.AccountOfSpec.CHF.INR.rate.produces valid amounts (6 mutations)
  9998. 248.40 s [really-safe-money-gen] coverage (482/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
  9999. 248.67 s [really-safe-money-gen] coverage (484/1610): Money\.AccountOfSpec.ADA.fromDouble.roundtrips with toDouble (27 mutations)
  10000. 248.69 s [really-safe-money-gen] coverage (483/1610): Money\.AccountOfSpec.ADA.fromDouble.produces valid rational (27 mutations)
  10001. 248.70 s [really-safe-money-gen] coverage (384/1610): Money\.AccountOfSpec.INR.negate.produces valid amounts (0 mutations)
  10002. 248.96 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 (0 mutations)
  10003. 248.96 s [really-safe-money-gen] coverage (485/1610): Money\.AccountOfSpec.ADA.fromRational.produces valid rational (18 mutations)
  10004. 249.19 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 (1 mutations)
  10005. 249.21 s [really-safe-money-gen] coverage (486/1610): Money\.AccountOfSpec.ADA.fromRational.roundtrips with toRational (18 mutations)
  10006. 249.68 s [really-safe-money-gen] coverage (489/1610): Money\.AccountOfSpec.ADA.fraction.produces valid amounts (16 mutations)
  10007. 249.90 s [really-safe-money-gen] coverage (488/1610): Money\.AccountOfSpec.ADA.fraction.Produces a result that can be multiplied back (16 mutations)
  10008. 250.00 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 (0 mutations)
  10009. 250.01 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 (0 mutations)
  10010. 250.03 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 (0 mutations)
  10011. 250.15 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 (0 mutations)
  10012. 250.45 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 (0 mutations)
  10013. 250.50 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 (0 mutations)
  10014. 250.70 s [really-safe-money-gen] coverage (506/1610): Money\.AccountOfSpec.ADA.fromAmountOf.produces valid AccountOfs (0 mutations)
  10015. 250.89 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 (0 mutations)
  10016. 250.90 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 (0 mutations)
  10017. 251.11 s [really-safe-money-gen] coverage (507/1610): Money\.AccountOfSpec.ADA.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10018. 251.31 s [really-safe-money-gen] coverage (517/1610): Money\.AccountOfSpec.ADA.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
  10019. 251.81 s [really-safe-money-gen] coverage (516/1610): Money\.AccountOfSpec.ADA.distribute.produces results that sum up to the greater whole (28 mutations)
  10020. 251.88 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 (0 mutations)
  10021. 251.94 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 (0 mutations)
  10022. 251.98 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 (1 mutations)
  10023. 252.10 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 (0 mutations)
  10024. 252.11 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 (0 mutations)
  10025. 252.15 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 (1 mutations)
  10026. 252.51 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 (1 mutations)
  10027. 252.56 s [really-safe-money-gen] coverage (515/1610): Money\.AccountOfSpec.ADA.distribute.produces valid amounts (15 mutations)
  10028. 252.58 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 (0 mutations)
  10029. 252.80 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 (1 mutations)
  10030. 253.05 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 (0 mutations)
  10031. 253.10 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 (1 mutations)
  10032. 253.22 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 (0 mutations)
  10033. 253.36 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 (0 mutations)
  10034. 253.80 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 (0 mutations)
  10035. 253.98 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 (1 mutations)
  10036. 254.03 s [really-safe-money-gen] coverage (445/1610): Money\.AccountOfSpec.CHF.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10037. 254.06 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 (0 mutations)
  10038. 254.07 s [really-safe-money-gen] coverage (481/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.produces valid accounts (9 mutations)
  10039. 254.13 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 (1 mutations)
  10040. 254.37 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 (0 mutations)
  10041. 254.46 s [really-safe-money-gen] coverage (535/1610): Money\.AccountOfSpec.ADA.toMinimalQuantisations.produces valid accounts (0 mutations)
  10042. 254.65 s [really-safe-money-gen] coverage (536/1610): Money\.AccountOfSpec.ADA.ADA.convert.produces valid amounts (11 mutations)
  10043. 254.73 s [really-safe-money-gen] coverage (539/1610): Money\.AccountOfSpec.ADA.add.produces valid amounts (13 mutations)
  10044. 255.13 s [really-safe-money-gen] coverage (538/1610): Money\.AccountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (13 mutations)
  10045. 255.36 s [really-safe-money-gen] coverage (537/1610): Money\.AccountOfSpec.ADA.ADA.rate.produces valid amounts (6 mutations)
  10046. 255.47 s [really-safe-money-gen] coverage (540/1610): Money\.AccountOfSpec.ADA.add.is commutative (13 mutations)
  10047. 255.86 s [really-safe-money-gen] coverage (542/1610): Money\.AccountOfSpec.ADA.add.has a left-identity\: zero (14 mutations)
  10048. 255.90 s [really-safe-money-gen] coverage (541/1610): Money\.AccountOfSpec.ADA.add.is associative when both succeed (13 mutations)
  10049. 256.29 s [really-safe-money-gen] coverage (543/1610): Money\.AccountOfSpec.ADA.add.has a right-identity\: zero (14 mutations)
  10050. 256.43 s [really-safe-money-gen] coverage (533/1610): Money\.AccountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (14 mutations)
  10051. 256.53 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 (0 mutations)
  10052. 256.67 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 (1 mutations)
  10053. 256.69 s [really-safe-money-gen] coverage (529/1610): Money\.AccountOfSpec.ADA.CHF.convert.produces valid amounts (11 mutations)
  10054. 257.07 s [really-safe-money-gen] coverage (544/1610): Money\.AccountOfSpec.ADA.GenValid (AccountOf * ADA).genValid \:\: Gen (AccountOf * ADA).only generates valid '(AccountOf * ADA)'s (0 mutations)
  10055. 257.29 s [really-safe-money-gen] coverage (526/1610): Money\.AccountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
  10056. 257.35 s [really-safe-money-gen] coverage (433/1610): Money\.AccountOfSpec.CHF.toMinimalQuantisations.produces valid accounts (0 mutations)
  10057. 257.40 s [really-safe-money-gen] coverage (527/1610): Money\.AccountOfSpec.ADA.negate.produces valid amounts (0 mutations)
  10058. 257.56 s [really-safe-money-gen] coverage (525/1610): Money\.AccountOfSpec.ADA.format.produces valid strings (3 mutations)
  10059. 257.57 s [really-safe-money-gen] coverage (534/1610): Money\.AccountOfSpec.ADA.sum.produces valid amounts (14 mutations)
  10060. 258.18 s [really-safe-money-gen] coverage (528/1610): Money\.AccountOfSpec.ADA.CHF.rate.produces valid amounts (6 mutations)
  10061. 258.28 s [really-safe-money-gen] coverage (550/1610): Money\.AccountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
  10062. 258.60 s [really-safe-money-gen] coverage (532/1610): Money\.AccountOfSpec.ADA.fromAmount.produces valid AccountOfs (0 mutations)
  10063. 258.61 s [really-safe-money-gen] coverage (530/1610): Money\.AccountOfSpec.ADA.INR.rate.produces valid amounts (6 mutations)
  10064. 258.65 s [really-safe-money-gen] coverage (554/1610): Money\.AccountOfSpec.BTC.add.is commutative (13 mutations)
  10065. 258.75 s [really-safe-money-gen] coverage (531/1610): Money\.AccountOfSpec.ADA.INR.convert.produces valid amounts (11 mutations)
  10066. 258.87 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 (0 mutations)
  10067. 258.95 s [really-safe-money-gen] coverage (553/1610): Money\.AccountOfSpec.ADA.USD.rate.produces valid amounts (6 mutations)
  10068. 258.97 s [really-safe-money-gen] coverage (558/1610): Money\.AccountOfSpec.BTC.add.is associative when both succeed (13 mutations)
  10069. 258.99 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 (0 mutations)
  10070. 259.20 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 (0 mutations)
  10071. 259.35 s [really-safe-money-gen] coverage (559/1610): Money\.AccountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (13 mutations)
  10072. 259.66 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 (0 mutations)
  10073. 259.75 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 (0 mutations)
  10074. 259.97 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 (0 mutations)
  10075. 260.11 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 (0 mutations)
  10076. 260.74 s [really-safe-money-gen] coverage (546/1610): Money\.AccountOfSpec.ADA.BTC.rate.produces valid amounts (6 mutations)
  10077. 261.22 s [really-safe-money-gen] coverage (551/1610): Money\.AccountOfSpec.ADA.multiply.is absorbed by 0 (6 mutations)
  10078. 261.27 s [really-safe-money-gen] coverage (555/1610): Money\.AccountOfSpec.BTC.add.produces valid amounts (13 mutations)
  10079. 261.70 s [really-safe-money-gen] coverage (549/1610): Money\.AccountOfSpec.ADA.multiply.has an identity\: 1 (6 mutations)
  10080. 261.87 s [really-safe-money-gen] coverage (557/1610): Money\.AccountOfSpec.BTC.add.has a right-identity\: zero (14 mutations)
  10081. 261.92 s [really-safe-money-gen] coverage (548/1610): Money\.AccountOfSpec.ADA.multiply.is distributive with add when both succeed (19 mutations)
  10082. 262.21 s [really-safe-money-gen] coverage (547/1610): Money\.AccountOfSpec.ADA.multiply.produces valid amounts (6 mutations)
  10083. 262.35 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 (1 mutations)
  10084. 262.49 s [really-safe-money-gen] coverage (545/1610): Money\.AccountOfSpec.ADA.BTC.convert.produces valid amounts (11 mutations)
  10085. 262.87 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 (0 mutations)
  10086. 262.88 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 (0 mutations)
  10087. 262.93 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 (0 mutations)
  10088. 263.45 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 (0 mutations)
  10089. 263.64 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 (0 mutations)
  10090. 263.89 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 (0 mutations)
  10091. 264.24 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 (0 mutations)
  10092. 264.30 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 (0 mutations)
  10093. 264.32 s [really-safe-money-gen] coverage (579/1610): Money\.AccountOfSpec.BTC.distribute.produces results that sum up to the greater whole (28 mutations)
  10094. 264.52 s [really-safe-money-gen] coverage (576/1610): Money\.AccountOfSpec.BTC.BTC.convert.produces valid amounts (11 mutations)
  10095. 264.53 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 (1 mutations)
  10096. 264.56 s [really-safe-money-gen] coverage (578/1610): Money\.AccountOfSpec.BTC.distribute.produces valid amounts (15 mutations)
  10097. 264.56 s [really-safe-money-gen] coverage (577/1610): Money\.AccountOfSpec.BTC.BTC.rate.produces valid amounts (6 mutations)
  10098. 264.60 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 (1 mutations)
  10099. 264.72 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 (1 mutations)
  10100. 264.74 s [really-safe-money-gen] coverage (556/1610): Money\.AccountOfSpec.BTC.add.has a left-identity\: zero (14 mutations)
  10101. 264.92 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 (1 mutations)
  10102. 264.96 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 (0 mutations)
  10103. 265.16 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 (0 mutations)
  10104. 265.33 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 (1 mutations)
  10105. 265.45 s [really-safe-money-gen] coverage (587/1610): Money\.AccountOfSpec.BTC.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
  10106. 265.57 s [really-safe-money-gen] coverage (588/1610): Money\.AccountOfSpec.BTC.negate.produces valid amounts (0 mutations)
  10107. 265.86 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 (1 mutations)
  10108. 265.96 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 (0 mutations)
  10109. 266.32 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 (1 mutations)
  10110. 266.51 s [really-safe-money-gen] coverage (524/1610): Money\.AccountOfSpec.ADA.abs.produces valid amounts (0 mutations)
  10111. 266.52 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 (1 mutations)
  10112. 266.53 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 (0 mutations)
  10113. 266.62 s [really-safe-money-gen] coverage (592/1610): Money\.AccountOfSpec.BTC.multiply.is absorbed by 0 (6 mutations)
  10114. 266.99 s [really-safe-money-gen] coverage (552/1610): Money\.AccountOfSpec.ADA.USD.convert.produces valid amounts (11 mutations)
  10115. 267.39 s [really-safe-money-gen] coverage (594/1610): Money\.AccountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
  10116. 267.43 s [really-safe-money-gen] coverage (591/1610): Money\.AccountOfSpec.BTC.multiply.is distributive with add when both succeed (19 mutations)
  10117. 268.07 s [really-safe-money-gen] coverage (593/1610): Money\.AccountOfSpec.BTC.multiply.has an identity\: 1 (6 mutations)
  10118. 268.18 s [really-safe-money-gen] coverage (590/1610): Money\.AccountOfSpec.BTC.multiply.produces valid amounts (6 mutations)
  10119. 268.57 s [really-safe-money-gen] coverage (589/1610): Money\.AccountOfSpec.BTC.fromAmountOf.produces valid AccountOfs (0 mutations)
  10120. 268.62 s [really-safe-money-gen] coverage (595/1610): Money\.AccountOfSpec.BTC.sum.produces valid amounts (14 mutations)
  10121. 268.72 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 (0 mutations)
  10122. 268.78 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 (0 mutations)
  10123. 268.89 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 (1 mutations)
  10124. 268.93 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 (0 mutations)
  10125. 268.96 s [really-safe-money-gen] coverage (615/1610): Money\.AccountOfSpec.BTC.INR.rate.produces valid amounts (6 mutations)
  10126. 268.98 s [really-safe-money-gen] coverage (612/1610): Money\.AccountOfSpec.BTC.toMinimalQuantisations.produces valid accounts (0 mutations)
  10127. 269.01 s [really-safe-money-gen] coverage (609/1610): Money\.AccountOfSpec.BTC.fromRational.produces valid rational (18 mutations)
  10128. 269.26 s [really-safe-money-gen] coverage (616/1610): Money\.AccountOfSpec.BTC.INR.convert.produces valid amounts (11 mutations)
  10129. 269.28 s [really-safe-money-gen] coverage (613/1610): Money\.AccountOfSpec.BTC.GenValid (AccountOf * BTC).genValid \:\: Gen (AccountOf * BTC).only generates valid '(AccountOf * BTC)'s (0 mutations)
  10130. 269.39 s [really-safe-money-gen] coverage (621/1610): Money\.AccountOfSpec.BTC.CHF.rate.produces valid amounts (6 mutations)
  10131. 269.43 s [really-safe-money-gen] coverage (618/1610): Money\.AccountOfSpec.BTC.fromDouble.produces valid rational (27 mutations)
  10132. 269.70 s [really-safe-money-gen] coverage (623/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
  10133. 269.76 s [really-safe-money-gen] coverage (627/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10134. 269.80 s [really-safe-money-gen] coverage (629/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  10135. 269.85 s [really-safe-money-gen] coverage (625/1610): Money\.AccountOfSpec.BTC.fromAmount.produces valid AccountOfs (0 mutations)
  10136. 270.17 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)
  10137. 270.40 s [really-safe-money-gen] coverage (633/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
  10138. 270.47 s [really-safe-money-gen] coverage (620/1610): Money\.AccountOfSpec.BTC.fraction.Produces a result that can be multiplied back (16 mutations)
  10139. 270.54 s [really-safe-money-gen] coverage (603/1610): Money\.AccountOfSpec.BTC.format.produces valid strings (3 mutations)
  10140. 270.54 s [really-safe-money-gen] coverage (631/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.toRational.produces valid rationals (0 mutations)
  10141. 270.78 s [really-safe-money-gen] coverage (626/1610): Money\.AccountOfSpec.BTC.abs.produces valid amounts (0 mutations)
  10142. 271.15 s [really-safe-money-gen] coverage (619/1610): Money\.AccountOfSpec.BTC.fraction.produces valid amounts (16 mutations)
  10143. 271.41 s [really-safe-money-gen] coverage (622/1610): Money\.AccountOfSpec.BTC.CHF.convert.produces valid amounts (11 mutations)
  10144. 271.46 s [really-safe-money-gen] coverage (608/1610): Money\.AccountOfSpec.BTC.ADA.rate.produces valid amounts (6 mutations)
  10145. 272.05 s [really-safe-money-gen] coverage (614/1610): Money\.AccountOfSpec.BTC.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10146. 272.30 s [really-safe-money-gen] coverage (628/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10147. 272.59 s [really-safe-money-gen] coverage (604/1610): Money\.AccountOfSpec.BTC.USD.convert.produces valid amounts (11 mutations)
  10148. 272.64 s [really-safe-money-gen] coverage (607/1610): Money\.AccountOfSpec.BTC.ADA.convert.produces valid amounts (11 mutations)
  10149. 272.70 s [really-safe-money-gen] coverage (610/1610): Money\.AccountOfSpec.BTC.fromRational.roundtrips with toRational (18 mutations)
  10150. 272.71 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 (0 mutations)
  10151. 272.75 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 (0 mutations)
  10152. 272.79 s [really-safe-money-gen] coverage (606/1610): Money\.AccountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
  10153. 272.83 s [really-safe-money-gen] coverage (605/1610): Money\.AccountOfSpec.BTC.USD.rate.produces valid amounts (6 mutations)
  10154. 272.99 s [really-safe-money-gen] coverage (632/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
  10155. 273.00 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 (0 mutations)
  10156. 273.12 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 (0 mutations)
  10157. 273.16 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 (0 mutations)
  10158. 273.26 s [really-safe-money-gen] coverage (596/1610): Money\.AccountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (14 mutations)
  10159. 273.42 s [really-safe-money-gen] coverage (624/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.produces valid accounts (9 mutations)
  10160. 273.61 s [really-safe-money-gen] coverage (634/1610): Money\.ConversionRateOfSpec.INR.ADA.compose.produces valid rates (6 mutations)
  10161. 273.88 s [really-safe-money-gen] coverage (639/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  10162. 273.94 s [really-safe-money-gen] coverage (638/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10163. 273.94 s [really-safe-money-gen] coverage (640/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10164. 274.09 s [really-safe-money-gen] coverage (636/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10165. 274.34 s [really-safe-money-gen] coverage (641/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10166. 274.40 s [really-safe-money-gen] coverage (642/1610): Money\.ConversionRateOfSpec.INR.BTC.invert.produces valid rates (8 mutations)
  10167. 274.57 s [really-safe-money-gen] coverage (643/1610): Money\.ConversionRateOfSpec.INR.BTC.compose.produces valid rates (6 mutations)
  10168. 274.57 s [really-safe-money-gen] coverage (644/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.toRational.produces valid rationals (0 mutations)
  10169. 274.80 s [really-safe-money-gen] coverage (645/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
  10170. 275.19 s [really-safe-money-gen] coverage (647/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10171. 275.55 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)
  10172. 275.95 s [really-safe-money-gen] coverage (649/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10173. 276.06 s [really-safe-money-gen] coverage (651/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10174. 276.77 s [really-safe-money-gen] coverage (661/1610): Money\.ConversionRateOfSpec.INR.CHF.compose.produces valid rates (6 mutations)
  10175. 276.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 (0 mutations)
  10176. 276.77 s [really-safe-money-gen] coverage (646/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
  10177. 276.78 s [really-safe-money-gen] coverage (652/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10178. 276.78 s [really-safe-money-gen] coverage (617/1610): Money\.AccountOfSpec.BTC.fromDouble.roundtrips with toDouble (27 mutations)
  10179. 276.87 s [really-safe-money-gen] coverage (637/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10180. 277.02 s [really-safe-money-gen] coverage (648/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10181. 277.11 s [really-safe-money-gen] coverage (635/1610): Money\.ConversionRateOfSpec.INR.ADA.invert.produces valid rates (8 mutations)
  10182. 277.14 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)
  10183. 277.18 s [really-safe-money-gen] coverage (660/1610): Money\.ConversionRateOfSpec.INR.CHF.invert.produces valid rates (8 mutations)
  10184. 277.18 s [really-safe-money-gen] coverage (659/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.toRational.produces valid rationals (0 mutations)
  10185. 277.40 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)
  10186. 277.43 s [really-safe-money-gen] coverage (658/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
  10187. 277.57 s [really-safe-money-gen] coverage (656/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10188. 277.69 s [really-safe-money-gen] coverage (664/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.toRational.produces valid rationals (0 mutations)
  10189. 278.01 s [really-safe-money-gen] coverage (669/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10190. 278.01 s [really-safe-money-gen] coverage (668/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10191. 278.10 s [really-safe-money-gen] coverage (666/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
  10192. 278.22 s [really-safe-money-gen] coverage (667/1610): Money\.ConversionRateOfSpec.INR.USD.invert.produces valid rates (8 mutations)
  10193. 278.28 s [really-safe-money-gen] coverage (671/1610): Money\.ConversionRateOfSpec.INR.USD.compose.produces valid rates (6 mutations)
  10194. 278.37 s [really-safe-money-gen] coverage (673/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10195. 278.43 s [really-safe-money-gen] coverage (670/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  10196. 279.12 s [really-safe-money-gen] coverage (675/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.toRational.produces valid rationals (0 mutations)
  10197. 279.12 s [really-safe-money-gen] coverage (672/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10198. 279.12 s [really-safe-money-gen] coverage (674/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10199. 279.42 s [really-safe-money-gen] coverage (676/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
  10200. 280.02 s [really-safe-money-gen] coverage (677/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
  10201. 280.41 s [really-safe-money-gen] coverage (657/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
  10202. 280.94 s [really-safe-money-gen] coverage (682/1610): Money\.ConversionRateOfSpec.INR.INR.compose.produces valid rates (6 mutations)
  10203. 281.29 s [really-safe-money-gen] coverage (655/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10204. 281.34 s [really-safe-money-gen] coverage (665/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
  10205. 281.35 s [really-safe-money-gen] coverage (654/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  10206. 281.47 s [really-safe-money-gen] coverage (687/1610): Money\.ConversionRateOfSpec.ADA.USD.compose.produces valid rates (6 mutations)
  10207. 281.51 s [really-safe-money-gen] coverage (690/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10208. 282.04 s [really-safe-money-gen] coverage (692/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
  10209. 282.15 s [really-safe-money-gen] coverage (688/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  10210. 282.20 s [really-safe-money-gen] coverage (691/1610): Money\.ConversionRateOfSpec.ADA.USD.invert.produces valid rates (8 mutations)
  10211. 282.40 s [really-safe-money-gen] coverage (693/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
  10212. 282.43 s [really-safe-money-gen] coverage (694/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.toRational.produces valid rationals (0 mutations)
  10213. 282.48 s [really-safe-money-gen] coverage (689/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10214. 282.54 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)
  10215. 282.79 s [really-safe-money-gen] coverage (684/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10216. 283.10 s [really-safe-money-gen] coverage (653/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10217. 283.77 s [really-safe-money-gen] coverage (685/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10218. 283.86 s [really-safe-money-gen] coverage (696/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10219. 283.93 s [really-safe-money-gen] coverage (686/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  10220. 284.26 s [really-safe-money-gen] coverage (697/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10221. 284.41 s [really-safe-money-gen] coverage (680/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10222. 284.58 s [really-safe-money-gen] coverage (683/1610): Money\.ConversionRateOfSpec.INR.INR.invert.produces valid rates (8 mutations)
  10223. 284.86 s [really-safe-money-gen] coverage (679/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10224. 285.47 s [really-safe-money-gen] coverage (706/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10225. 285.92 s [really-safe-money-gen] coverage (708/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  10226. 285.96 s [really-safe-money-gen] coverage (702/1610): Money\.ConversionRateOfSpec.ADA.CHF.compose.produces valid rates (6 mutations)
  10227. 285.97 s [really-safe-money-gen] coverage (681/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10228. 286.19 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)
  10229. 286.36 s [really-safe-money-gen] coverage (703/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.toRational.produces valid rationals (0 mutations)
  10230. 286.39 s [really-safe-money-gen] coverage (704/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
  10231. 286.79 s [really-safe-money-gen] coverage (709/1610): Money\.ConversionRateOfSpec.ADA.CHF.GenValid (ConversionRateOf ADA CHF).genValid \:\: Gen (ConversionRateOf ADA CHF).only generates valid '(ConversionRateOf ADA CHF)'s (6 mutations)
  10232. 287.08 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)
  10233. 287.14 s [really-safe-money-gen] coverage (700/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10234. 287.26 s [really-safe-money-gen] coverage (739/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  10235. 287.31 s [really-safe-money-gen] coverage (701/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10236. 287.37 s [really-safe-money-gen] coverage (707/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10237. 287.45 s [really-safe-money-gen] coverage (734/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10238. 287.50 s [really-safe-money-gen] coverage (737/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
  10239. 287.89 s [really-safe-money-gen] coverage (740/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10240. 288.04 s [really-safe-money-gen] coverage (736/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
  10241. 288.15 s [really-safe-money-gen] coverage (741/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10242. 288.43 s [really-safe-money-gen] coverage (738/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.toRational.produces valid rationals (0 mutations)
  10243. 288.95 s [really-safe-money-gen] coverage (742/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10244. 289.24 s [really-safe-money-gen] coverage (743/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10245. 289.28 s [really-safe-money-gen] coverage (745/1610): Money\.ConversionRateOfSpec.ADA.INR.compose.produces valid rates (6 mutations)
  10246. 289.49 s [really-safe-money-gen] coverage (744/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10247. 289.71 s [really-safe-money-gen] coverage (746/1610): Money\.ConversionRateOfSpec.ADA.INR.invert.produces valid rates (8 mutations)
  10248. 289.74 s [really-safe-money-gen] coverage (748/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
  10249. 289.78 s [really-safe-money-gen] coverage (747/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.toRational.produces valid rationals (0 mutations)
  10250. 290.07 s [really-safe-money-gen] coverage (749/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
  10251. 290.26 s [really-safe-money-gen] coverage (751/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10252. 290.36 s [really-safe-money-gen] coverage (750/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10253. 290.77 s [really-safe-money-gen] coverage (765/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10254. 290.79 s [really-safe-money-gen] coverage (754/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10255. 290.84 s [really-safe-money-gen] coverage (753/1610): Money\.ConversionRateOfSpec.CHF.BTC.compose.produces valid rates (6 mutations)
  10256. 290.92 s [really-safe-money-gen] coverage (755/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10257. 290.95 s [really-safe-money-gen] coverage (752/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10258. 291.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)
  10259. 291.11 s [really-safe-money-gen] coverage (757/1610): Money\.ConversionRateOfSpec.CHF.BTC.invert.produces valid rates (8 mutations)
  10260. 291.21 s [really-safe-money-gen] coverage (756/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  10261. 291.40 s [really-safe-money-gen] coverage (759/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10262. 291.67 s [really-safe-money-gen] coverage (764/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10263. 291.67 s [really-safe-money-gen] coverage (762/1610): Money\.ConversionRateOfSpec.CHF.ADA.invert.produces valid rates (8 mutations)
  10264. 291.95 s [really-safe-money-gen] coverage (763/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  10265. 292.00 s [really-safe-money-gen] coverage (761/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10266. 292.00 s [really-safe-money-gen] coverage (766/1610): Money\.ConversionRateOfSpec.CHF.ADA.compose.produces valid rates (6 mutations)
  10267. 292.04 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)
  10268. 292.08 s [really-safe-money-gen] coverage (760/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10269. 292.24 s [really-safe-money-gen] coverage (768/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.toRational.produces valid rationals (0 mutations)
  10270. 292.46 s [really-safe-money-gen] coverage (769/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
  10271. 293.02 s [really-safe-money-gen] coverage (770/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
  10272. 293.28 s [really-safe-money-gen] coverage (771/1610): Money\.ConversionRateOfSpec.CHF.USD.invert.produces valid rates (8 mutations)
  10273. 293.38 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)
  10274. 294.01 s [really-safe-money-gen] coverage (775/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10275. 294.06 s [really-safe-money-gen] coverage (776/1610): Money\.ConversionRateOfSpec.CHF.USD.compose.produces valid rates (6 mutations)
  10276. 294.13 s [really-safe-money-gen] coverage (773/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10277. 294.43 s [really-safe-money-gen] coverage (778/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
  10278. 294.53 s [really-safe-money-gen] coverage (777/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
  10279. 294.55 s [really-safe-money-gen] coverage (774/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10280. 294.81 s [really-safe-money-gen] coverage (779/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.toRational.produces valid rationals (0 mutations)
  10281. 295.08 s [really-safe-money-gen] coverage (782/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  10282. 295.28 s [really-safe-money-gen] coverage (780/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10283. 295.30 s [really-safe-money-gen] coverage (781/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10284. 295.47 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)
  10285. 295.85 s [really-safe-money-gen] coverage (787/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.toRational.produces valid rationals (0 mutations)
  10286. 295.85 s [really-safe-money-gen] coverage (786/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10287. 295.94 s [really-safe-money-gen] coverage (785/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10288. 296.00 s [really-safe-money-gen] coverage (784/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10289. 296.40 s [really-safe-money-gen] coverage (789/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
  10290. 296.40 s [really-safe-money-gen] coverage (790/1610): Money\.ConversionRateOfSpec.CHF.CHF.invert.produces valid rates (8 mutations)
  10291. 296.48 s [really-safe-money-gen] coverage (788/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
  10292. 296.70 s [really-safe-money-gen] coverage (792/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10293. 296.81 s [really-safe-money-gen] coverage (791/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  10294. 296.91 s [really-safe-money-gen] coverage (793/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10295. 296.95 s [really-safe-money-gen] coverage (794/1610): Money\.ConversionRateOfSpec.CHF.CHF.compose.produces valid rates (6 mutations)
  10296. 296.97 s [really-safe-money-gen] coverage (795/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  10297. 297.15 s [really-safe-money-gen] coverage (796/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10298. 297.23 s [really-safe-money-gen] coverage (797/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10299. 297.53 s [really-safe-money-gen] coverage (798/1610): Money\.ConversionRateOfSpec.CHF.INR.compose.produces valid rates (6 mutations)
  10300. 297.99 s [really-safe-money-gen] coverage (799/1610): Money\.ConversionRateOfSpec.CHF.INR.invert.produces valid rates (8 mutations)
  10301. 298.34 s [really-safe-money-gen] coverage (801/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10302. 298.41 s [really-safe-money-gen] coverage (800/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10303. 298.62 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)
  10304. 298.74 s [really-safe-money-gen] coverage (802/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10305. 298.90 s [really-safe-money-gen] coverage (804/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
  10306. 298.97 s [really-safe-money-gen] coverage (805/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
  10307. 299.11 s [really-safe-money-gen] coverage (806/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.toRational.produces valid rationals (0 mutations)
  10308. 299.33 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)
  10309. 299.57 s [really-safe-money-gen] coverage (808/1610): Money\.ConversionRateOfSpec.USD.CHF.invert.produces valid rates (8 mutations)
  10310. 299.77 s [really-safe-money-gen] coverage (810/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10311. 299.79 s [really-safe-money-gen] coverage (809/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10312. 299.98 s [really-safe-money-gen] coverage (814/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
  10313. 300.05 s [really-safe-money-gen] coverage (811/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10314. 300.16 s [really-safe-money-gen] coverage (817/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  10315. 300.17 s [really-safe-money-gen] coverage (813/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
  10316. 300.24 s [really-safe-money-gen] coverage (812/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.toRational.produces valid rationals (0 mutations)
  10317. 300.32 s [really-safe-money-gen] coverage (815/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10318. 300.69 s [really-safe-money-gen] coverage (816/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10319. 300.80 s [really-safe-money-gen] coverage (818/1610): Money\.ConversionRateOfSpec.USD.CHF.compose.produces valid rates (6 mutations)
  10320. 300.84 s [really-safe-money-gen] coverage (819/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  10321. 300.91 s [really-safe-money-gen] coverage (820/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10322. 301.00 s [really-safe-money-gen] coverage (821/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10323. 301.14 s [really-safe-money-gen] coverage (823/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10324. 301.15 s [really-safe-money-gen] coverage (825/1610): Money\.ConversionRateOfSpec.USD.USD.invert.produces valid rates (8 mutations)
  10325. 301.30 s [really-safe-money-gen] coverage (822/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10326. 301.54 s [really-safe-money-gen] coverage (824/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10327. 301.58 s [really-safe-money-gen] coverage (826/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.toRational.produces valid rationals (0 mutations)
  10328. 301.84 s [really-safe-money-gen] coverage (827/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
  10329. 302.27 s [really-safe-money-gen] coverage (828/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
  10330. 302.40 s [really-safe-money-gen] coverage (829/1610): Money\.ConversionRateOfSpec.USD.USD.compose.produces valid rates (6 mutations)
  10331. 302.61 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)
  10332. 302.82 s [really-safe-money-gen] coverage (832/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10333. 302.93 s [really-safe-money-gen] coverage (834/1610): Money\.ConversionRateOfSpec.USD.INR.compose.produces valid rates (6 mutations)
  10334. 302.94 s [really-safe-money-gen] coverage (831/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10335. 303.16 s [really-safe-money-gen] coverage (835/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
  10336. 303.29 s [really-safe-money-gen] coverage (833/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10337. 303.33 s [really-safe-money-gen] coverage (836/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
  10338. 303.37 s [really-safe-money-gen] coverage (837/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.toRational.produces valid rationals (0 mutations)
  10339. 303.65 s [really-safe-money-gen] coverage (839/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10340. 303.65 s [really-safe-money-gen] coverage (838/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  10341. 303.83 s [really-safe-money-gen] coverage (840/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10342. 303.89 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)
  10343. 303.94 s [really-safe-money-gen] coverage (844/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10344. 304.05 s [really-safe-money-gen] coverage (841/1610): Money\.ConversionRateOfSpec.USD.INR.invert.produces valid rates (8 mutations)
  10345. 304.07 s [really-safe-money-gen] coverage (843/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10346. 304.32 s [really-safe-money-gen] coverage (846/1610): Money\.ConversionRateOfSpec.USD.BTC.compose.produces valid rates (6 mutations)
  10347. 304.38 s [really-safe-money-gen] coverage (845/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  10348. 304.59 s [really-safe-money-gen] coverage (847/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.toRational.produces valid rationals (0 mutations)
  10349. 304.62 s [really-safe-money-gen] coverage (848/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
  10350. 304.71 s [really-safe-money-gen] coverage (849/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
  10351. 304.90 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)
  10352. 304.95 s [really-safe-money-gen] coverage (851/1610): Money\.ConversionRateOfSpec.USD.BTC.invert.produces valid rates (8 mutations)
  10353. 305.15 s [really-safe-money-gen] coverage (854/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10354. 305.25 s [really-safe-money-gen] coverage (856/1610): Money\.ConversionRateOfSpec.USD.ADA.compose.produces valid rates (6 mutations)
  10355. 305.30 s [really-safe-money-gen] coverage (852/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10356. 305.43 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)
  10357. 305.56 s [really-safe-money-gen] coverage (853/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10358. 305.71 s [really-safe-money-gen] coverage (857/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10359. 305.88 s [really-safe-money-gen] coverage (858/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10360. 306.14 s [really-safe-money-gen] coverage (860/1610): Money\.ConversionRateOfSpec.USD.ADA.invert.produces valid rates (8 mutations)
  10361. 306.20 s [really-safe-money-gen] coverage (861/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  10362. 306.37 s [really-safe-money-gen] coverage (862/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10363. 306.42 s [really-safe-money-gen] coverage (859/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10364. 306.49 s [really-safe-money-gen] coverage (864/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
  10365. 306.51 s [really-safe-money-gen] coverage (863/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10366. 306.52 s [really-safe-money-gen] coverage (865/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
  10367. 306.82 s [really-safe-money-gen] coverage (866/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.toRational.produces valid rationals (0 mutations)
  10368. 306.92 s [really-safe-money-gen] coverage (867/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  10369. 307.09 s [really-safe-money-gen] coverage (868/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10370. 307.25 s [really-safe-money-gen] coverage (869/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10371. 307.31 s [really-safe-money-gen] coverage (871/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10372. 307.41 s [really-safe-money-gen] coverage (870/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10373. 307.54 s [really-safe-money-gen] coverage (874/1610): Money\.ConversionRateOfSpec.BTC.ADA.invert.produces valid rates (8 mutations)
  10374. 307.56 s [really-safe-money-gen] coverage (872/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10375. 307.66 s [really-safe-money-gen] coverage (873/1610): Money\.ConversionRateOfSpec.BTC.ADA.compose.produces valid rates (6 mutations)
  10376. 307.85 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)
  10377. 307.98 s [really-safe-money-gen] coverage (876/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
  10378. 308.07 s [really-safe-money-gen] coverage (877/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
  10379. 308.22 s [really-safe-money-gen] coverage (878/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.toRational.produces valid rationals (0 mutations)
  10380. 308.33 s [really-safe-money-gen] coverage (879/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.toRational.produces valid rationals (0 mutations)
  10381. 308.40 s [really-safe-money-gen] coverage (880/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
  10382. 308.51 s [really-safe-money-gen] coverage (881/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
  10383. 308.82 s [really-safe-money-gen] coverage (883/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10384. 308.96 s [really-safe-money-gen] coverage (882/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10385. 309.04 s [really-safe-money-gen] coverage (885/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10386. 309.12 s [really-safe-money-gen] coverage (886/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10387. 309.22 s [really-safe-money-gen] coverage (884/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10388. 309.49 s [really-safe-money-gen] coverage (888/1610): Money\.ConversionRateOfSpec.BTC.USD.compose.produces valid rates (6 mutations)
  10389. 309.57 s [really-safe-money-gen] coverage (887/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.toRatio.produces valid ratios (0 mutations)
  10390. 309.78 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)
  10391. 309.78 s [really-safe-money-gen] coverage (889/1610): Money\.ConversionRateOfSpec.BTC.USD.invert.produces valid rates (8 mutations)
  10392. 309.92 s [really-safe-money-gen] coverage (891/1610): Money\.ConversionRateOfSpec.BTC.INR.compose.produces valid rates (6 mutations)
  10393. 309.93 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)
  10394. 310.15 s [really-safe-money-gen] coverage (893/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10395. 310.39 s [really-safe-money-gen] coverage (732/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  10396. 310.57 s [really-safe-money-gen] coverage (724/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10397. 310.59 s [really-safe-money-gen] coverage (730/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
  10398. 310.85 s [really-safe-money-gen] coverage (725/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10399. 310.90 s [really-safe-money-gen] coverage (723/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10400. 310.95 s [really-safe-money-gen] coverage (733/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10401. 311.02 s [really-safe-money-gen] coverage (727/1610): Money\.ConversionRateOfSpec.ADA.BTC.invert.produces valid rates (8 mutations)
  10402. 311.11 s [really-safe-money-gen] coverage (729/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
  10403. 311.40 s [really-safe-money-gen] coverage (698/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10404. 311.56 s [really-safe-money-gen] coverage (699/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10405. 311.62 s [really-safe-money-gen] coverage (716/1610): Money\.ConversionRateOfSpec.ADA.ADA.compose.produces valid rates (6 mutations)
  10406. 311.67 s [really-safe-money-gen] coverage (712/1610): Money\.ConversionRateOfSpec.ADA.ADA.invert.produces valid rates (8 mutations)
  10407. 311.95 s [really-safe-money-gen] coverage (731/1610): Money\.ConversionRateOfSpec.ADA.BTC.compose.produces valid rates (6 mutations)
  10408. 311.95 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)
  10409. 312.08 s [really-safe-money-gen] coverage (720/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10410. 312.12 s [really-safe-money-gen] coverage (722/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10411. 312.46 s [really-safe-money-gen] coverage (717/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.toRational.produces valid rationals (0 mutations)
  10412. 312.64 s [really-safe-money-gen] coverage (719/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
  10413. 312.68 s [really-safe-money-gen] coverage (721/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10414. 312.75 s [really-safe-money-gen] coverage (728/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.toRational.produces valid rationals (0 mutations)
  10415. 312.82 s [really-safe-money-gen] coverage (705/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
  10416. 313.05 s [really-safe-money-gen] coverage (714/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10417. 313.13 s [really-safe-money-gen] coverage (713/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
  10418. 313.35 s [really-safe-money-gen] coverage (710/1610): Money\.ConversionRateOfSpec.ADA.CHF.invert.produces valid rates (8 mutations)
  10419. 313.50 s [really-safe-money-gen] coverage (718/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
  10420. 313.53 s [really-safe-money-gen] coverage (715/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10421. 313.62 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)
  10422. 314.07 s [really-safe-money-gen] coverage (912/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
  10423. 314.07 s [really-safe-money-gen] coverage (905/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10424. 314.15 s [really-safe-money-gen] coverage (916/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.toRational.produces valid rationals (0 mutations)
  10425. 314.27 s [really-safe-money-gen] coverage (914/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.toRational.produces valid rationals (0 mutations)
  10426. 314.38 s [really-safe-money-gen] coverage (903/1610): Money\.ConversionRateOfSpec.BTC.CHF.compose.produces valid rates (6 mutations)
  10427. 314.46 s [really-safe-money-gen] coverage (911/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10428. 314.53 s [really-safe-money-gen] coverage (913/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
  10429. 314.62 s [really-safe-money-gen] coverage (899/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.toRational.produces valid rationals (0 mutations)
  10430. 314.64 s [really-safe-money-gen] coverage (908/1610): Money\.ConversionRateOfSpec.BTC.CHF.invert.produces valid rates (8 mutations)
  10431. 315.01 s [really-safe-money-gen] coverage (915/1610): Money\.ConversionRateOfSpec.BTC.BTC.invert.produces valid rates (8 mutations)
  10432. 315.13 s [really-safe-money-gen] coverage (910/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10433. 315.15 s [really-safe-money-gen] coverage (909/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
  10434. 315.38 s [really-safe-money-gen] coverage (907/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10435. 315.42 s [really-safe-money-gen] coverage (902/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.toRatio.produces valid ratios (0 mutations)
  10436. 315.43 s [really-safe-money-gen] coverage (917/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
  10437. 315.50 s [really-safe-money-gen] coverage (906/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10438. 315.51 s [really-safe-money-gen] coverage (901/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10439. 315.94 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)
  10440. 316.05 s [really-safe-money-gen] coverage (900/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10441. 316.09 s [really-safe-money-gen] coverage (897/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
  10442. 316.10 s [really-safe-money-gen] coverage (919/1610): Money\.ConversionRateOfSpec.BTC.BTC.compose.produces valid rates (6 mutations)
  10443. 316.15 s [really-safe-money-gen] coverage (898/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
  10444. 316.70 s [really-safe-money-gen] coverage (896/1610): Money\.ConversionRateOfSpec.BTC.INR.invert.produces valid rates (8 mutations)
  10445. 316.74 s [really-safe-money-gen] coverage (894/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10446. 316.83 s [really-safe-money-gen] coverage (895/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10447. 316.83 s [really-safe-money-gen] coverage (932/1610): Money\.QuantisationFactorSpec.digits.works on 1 (0 mutations)
  10448. 317.06 s [really-safe-money-gen] coverage (931/1610): Money\.QuantisationFactorSpec.digits.produces valid numbers of digits (0 mutations)
  10449. 317.31 s [really-safe-money-gen] coverage (933/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a non-1 integer (22 mutations)
  10450. 317.45 s [really-safe-money-gen] coverage (928/1610): Money\.QuantisationFactorSpec.digits.works on 10 (0 mutations)
  10451. 317.47 s [really-safe-money-gen] coverage (929/1610): Money\.QuantisationFactorSpec.digits.works on 20 (0 mutations)
  10452. 317.61 s [really-safe-money-gen] coverage (951/1610): Money\.QuantisationFactorSpec.GenValid QuantisationFactor.genValid \:\: Gen QuantisationFactor.only generates valid 'QuantisationFactor's (6 mutations)
  10453. 317.77 s [really-safe-money-gen] coverage (954/1610): Money\.MultiAccountSpec.subtractAmount.adds a non zero amount (1 mutations)
  10454. 317.84 s [really-safe-money-gen] coverage (953/1610): Money\.MultiAccountSpec.subtractAmount.computes this example correctly (15 mutations)
  10455. 317.92 s [really-safe-money-gen] coverage (955/1610): Money\.MultiAccountSpec.subtractAmount.removes a zero amount (14 mutations)
  10456. 318.03 s [really-safe-money-gen] coverage (952/1610): Money\.MultiAccountSpec.subtractAmount.produces valid amounts (30 mutations)
  10457. 318.32 s [really-safe-money-gen] coverage (956/1610): Money\.MultiAccountSpec.add.has a right-identity\: zero (2 mutations)
  10458. 318.64 s [really-safe-money-gen] coverage (957/1610): Money\.MultiAccountSpec.add.is commutative (19 mutations)
  10459. 318.74 s [really-safe-money-gen] coverage (958/1610): Money\.MultiAccountSpec.add.produces valid amounts (30 mutations)
  10460. 318.85 s [really-safe-money-gen] coverage (960/1610): Money\.MultiAccountSpec.add.has a left-identity\: zero (2 mutations)
  10461. 319.05 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 (2 mutations)
  10462. 319.11 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)
  10463. 319.16 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)
  10464. 319.23 s [really-safe-money-gen] coverage (961/1610): Money\.MultiAccountSpec.GenValid (MultiAccount Currency).genValid \:\: Gen (MultiAccount Currency).only generates valid '(MultiAccount Currency)'s (13 mutations)
  10465. 319.30 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)
  10466. 319.45 s [really-safe-money-gen] coverage (959/1610): Money\.MultiAccountSpec.add.is associative when both succeed (19 mutations)
  10467. 319.56 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)
  10468. 319.68 s [really-safe-money-gen] coverage (970/1610): Money\.MultiAccountSpec.zero.is valid (2 mutations)
  10469. 319.70 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 (2 mutations)
  10470. 320.23 s [really-safe-money-gen] coverage (968/1610): Money\.MultiAccountSpec.sum.produces valid amounts (30 mutations)
  10471. 320.33 s [really-safe-money-gen] coverage (971/1610): Money\.MultiAccountSpec.fromAccount.produces valid amounts (16 mutations)
  10472. 320.39 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 (2 mutations)
  10473. 320.47 s [really-safe-money-gen] coverage (972/1610): Money\.MultiAccountSpec.addAccount.produces valid amounts (30 mutations)
  10474. 320.60 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 (2 mutations)
  10475. 320.62 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 (2 mutations)
  10476. 320.89 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 (2 mutations)
  10477. 321.34 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 (2 mutations)
  10478. 321.63 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 (2 mutations)
  10479. 321.66 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 (2 mutations)
  10480. 321.68 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 (2 mutations)
  10481. 322.04 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 (2 mutations)
  10482. 322.13 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 (2 mutations)
  10483. 322.15 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 (2 mutations)
  10484. 322.34 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 (2 mutations)
  10485. 322.80 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 (2 mutations)
  10486. 323.10 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 (2 mutations)
  10487. 323.32 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 (2 mutations)
  10488. 323.38 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 (2 mutations)
  10489. 323.56 s [really-safe-money-gen] coverage (992/1610): Money\.MultiAccountSpec.addAmount.computes this example correctly (10 mutations)
  10490. 323.70 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 (2 mutations)
  10491. 323.74 s [really-safe-money-gen] coverage (993/1610): Money\.MultiAccountSpec.addAmount.adds a non zero amount (1 mutations)
  10492. 323.76 s [really-safe-money-gen] coverage (989/1610): Money\.MultiAccountSpec.subtract.produces valid amounts (30 mutations)
  10493. 323.82 s [really-safe-money-gen] coverage (991/1610): Money\.MultiAccountSpec.addAmount.produces valid amounts (30 mutations)
  10494. 323.85 s [really-safe-money-gen] coverage (990/1610): Money\.MultiAccountSpec.subtract.has a right-identity\: zero (2 mutations)
  10495. 323.90 s [really-safe-money-gen] coverage (994/1610): Money\.MultiAccountSpec.addAmount.removes a zero amount (14 mutations)
  10496. 324.39 s [really-safe-money-gen] coverage (996/1610): Money\.MultiAccountSpec.lookupAccount.can find an added amount (1 mutations)
  10497. 324.63 s [really-safe-money-gen] coverage (995/1610): Money\.MultiAccountSpec.subtractAccount.produces valid amounts (30 mutations)
  10498. 324.76 s [really-safe-money-gen] coverage (1000/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.produces valid Int64s (0 mutations)
  10499. 324.80 s [really-safe-money-gen] coverage (997/1610): Money\.MultiAccountSpec.lookupAccount.produces valid amounts (2 mutations)
  10500. 325.00 s [really-safe-money-gen] coverage (999/1610): Money\.MultiAccountSpec.convertAll.produces the right result in this example (10 mutations)
  10501. 325.09 s [really-safe-money-gen] coverage (1002/1610): Money\.AmountOfSpec.USD.CHF.rate.produces valid amounts (6 mutations)
  10502. 325.18 s [really-safe-money-gen] coverage (998/1610): Money\.MultiAccountSpec.convertAll.produces valid results when converting two currencies to one (12 mutations)
  10503. 325.44 s [really-safe-money-gen] coverage (1003/1610): Money\.AmountOfSpec.USD.CHF.convert.produces valid amounts (11 mutations)
  10504. 325.49 s [really-safe-money-gen] coverage (1001/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  10505. 325.90 s [really-safe-money-gen] coverage (1004/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 1 (13 mutations)
  10506. 326.15 s [really-safe-money-gen] coverage (1005/1610): Money\.AmountOfSpec.USD.fromRatio.roundtrips with toRatio (13 mutations)
  10507. 326.21 s [really-safe-money-gen] coverage (1007/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 77 (13 mutations)
  10508. 326.27 s [really-safe-money-gen] coverage (1006/1610): Money\.AmountOfSpec.USD.fromRatio.produces valid AmountOfs (13 mutations)
  10509. 326.33 s [really-safe-money-gen] coverage (1008/1610): Money\.AmountOfSpec.USD.fromRatio.fails on NaN (2 mutations)
  10510. 326.41 s [really-safe-money-gen] coverage (1009/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 0 (14 mutations)
  10511. 326.54 s [really-safe-money-gen] coverage (1010/1610): Money\.AmountOfSpec.USD.fromRatio.fails on 7\.123 (9 mutations)
  10512. 326.67 s [really-safe-money-gen] coverage (1011/1610): Money\.AmountOfSpec.USD.fromRatio.fails on +Infinity (2 mutations)
  10513. 327.28 s [really-safe-money-gen] coverage (1012/1610): Money\.AmountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (4 mutations)
  10514. 327.40 s [really-safe-money-gen] coverage (1013/1610): Money\.AmountOfSpec.USD.add.has a right-identity\: zero (5 mutations)
  10515. 327.55 s [really-safe-money-gen] coverage (1014/1610): Money\.AmountOfSpec.USD.add.produces valid amounts (4 mutations)
  10516. 327.72 s [really-safe-money-gen] coverage (1018/1610): Money\.AmountOfSpec.USD.fromMinimalQuantisations.produces valid amounts (0 mutations)
  10517. 327.73 s [really-safe-money-gen] coverage (1016/1610): Money\.AmountOfSpec.USD.add.is commutative (4 mutations)
  10518. 327.81 s [really-safe-money-gen] coverage (1021/1610): Money\.AmountOfSpec.USD.fromRational.fails on +Infinity (2 mutations)
  10519. 327.86 s [really-safe-money-gen] coverage (1015/1610): Money\.AmountOfSpec.USD.add.has a left-identity\: zero (5 mutations)
  10520. 328.04 s [really-safe-money-gen] coverage (1022/1610): Money\.AmountOfSpec.USD.fromRational.produces valid Amounts (13 mutations)
  10521. 328.05 s [really-safe-money-gen] coverage (1020/1610): Money\.AmountOfSpec.USD.fromRational.fails on -1 (5 mutations)
  10522. 328.06 s [really-safe-money-gen] coverage (1017/1610): Money\.AmountOfSpec.USD.add.is associative when both succeed (4 mutations)
  10523. 328.18 s [really-safe-money-gen] coverage (1019/1610): Money\.AmountOfSpec.USD.fromRational.roundtrips with toRational (13 mutations)
  10524. 328.54 s [really-safe-money-gen] coverage (1023/1610): Money\.AmountOfSpec.USD.fromRational.fails on NaN (2 mutations)
  10525. 328.63 s [really-safe-money-gen] coverage (1024/1610): Money\.AmountOfSpec.USD.fromRational.fails on -Infinity (2 mutations)
  10526. 328.74 s [really-safe-money-gen] coverage (1026/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 0 (13 mutations)
  10527. 328.77 s [really-safe-money-gen] coverage (1025/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 1 (13 mutations)
  10528. 328.89 s [really-safe-money-gen] coverage (1027/1610): Money\.AmountOfSpec.USD.toRational.produces valid Rationals (0 mutations)
  10529. 329.00 s [really-safe-money-gen] coverage (943/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 10 into DecimalLiteral Nothing 1 1 (22 mutations)
  10530. 329.22 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)
  10531. 329.34 s [really-safe-money-gen] coverage (1029/1610): Money\.AmountOfSpec.USD.zero.is valid (1 mutations)
  10532. 329.38 s [really-safe-money-gen] coverage (942/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 3 into quantisation factor 1000 (25 mutations)
  10533. 329.66 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)
  10534. 329.86 s [really-safe-money-gen] coverage (949/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 2 into quantisation factor 100 (25 mutations)
  10535. 329.88 s [really-safe-money-gen] coverage (948/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1 into DecimalLiteral Nothing 1 0 (20 mutations)
  10536. 329.91 s [really-safe-money-gen] coverage (950/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1000 into DecimalLiteral Nothing 1 3 (22 mutations)
  10537. 329.96 s [really-safe-money-gen] coverage (946/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 20 into DecimalLiteral Nothing 5 2 (22 mutations)
  10538. 329.98 s [really-safe-money-gen] coverage (947/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 5 2 into quantisation factor 20 (25 mutations)
  10539. 330.29 s [really-safe-money-gen] coverage (926/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
  10540. 330.50 s [really-safe-money-gen] coverage (927/1610): Money\.QuantisationFactorSpec.fromWord32.produces valid quantisation factors (6 mutations)
  10541. 330.80 s [really-safe-money-gen] coverage (930/1610): Money\.QuantisationFactorSpec.digits.works on 100 (0 mutations)
  10542. 331.03 s [really-safe-money-gen] coverage (924/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
  10543. 331.07 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)
  10544. 331.29 s [really-safe-money-gen] coverage (921/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
  10545. 331.29 s [really-safe-money-gen] coverage (944/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 2 2 into quantisation factor 50 (25 mutations)
  10546. 331.36 s [really-safe-money-gen] coverage (925/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
  10547. 331.42 s [really-safe-money-gen] coverage (923/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
  10548. 331.46 s [really-safe-money-gen] coverage (1039/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -1 (3 mutations)
  10549. 331.63 s [really-safe-money-gen] coverage (1041/1610): Money\.AmountOfSpec.USD.INR.convert.produces valid amounts (11 mutations)
  10550. 331.68 s [really-safe-money-gen] coverage (1042/1610): Money\.AmountOfSpec.USD.INR.rate.produces valid amounts (6 mutations)
  10551. 331.73 s [really-safe-money-gen] coverage (1040/1610): Money\.AmountOfSpec.USD.fraction.produces valid amounts (6 mutations)
  10552. 332.11 s [really-safe-money-gen] coverage (1044/1610): Money\.AmountOfSpec.USD.USD.convert.produces valid amounts (11 mutations)
  10553. 332.11 s [really-safe-money-gen] coverage (1043/1610): Money\.AmountOfSpec.USD.USD.rate.produces valid amounts (6 mutations)
  10554. 332.22 s [really-safe-money-gen] coverage (1046/1610): Money\.AmountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (5 mutations)
  10555. 332.31 s [really-safe-money-gen] coverage (1045/1610): Money\.AmountOfSpec.USD.sum.produces valid amounts (5 mutations)
  10556. 332.43 s [really-safe-money-gen] coverage (1047/1610): Money\.AmountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
  10557. 332.53 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)
  10558. 332.82 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)
  10559. 332.85 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)
  10560. 332.89 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)
  10561. 333.24 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)
  10562. 333.37 s [really-safe-money-gen] coverage (1031/1610): Money\.AmountOfSpec.USD.BTC.convert.produces valid amounts (11 mutations)
  10563. 333.47 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)
  10564. 333.54 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)
  10565. 333.57 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)
  10566. 333.60 s [really-safe-money-gen] coverage (939/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 1 into quantisation factor 10 (25 mutations)
  10567. 334.22 s [really-safe-money-gen] coverage (1038/1610): Money\.AmountOfSpec.USD.fromDouble.fails on NaN (5 mutations)
  10568. 334.45 s [really-safe-money-gen] coverage (918/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
  10569. 334.48 s [really-safe-money-gen] coverage (934/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render negative fractionals (16 mutations)
  10570. 334.49 s [really-safe-money-gen] coverage (1036/1610): Money\.AmountOfSpec.USD.fromDouble.fails on +Infinity (7 mutations)
  10571. 334.73 s [really-safe-money-gen] coverage (1034/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 0 (22 mutations)
  10572. 334.74 s [really-safe-money-gen] coverage (1035/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 1 (22 mutations)
  10573. 334.82 s [really-safe-money-gen] coverage (1033/1610): Money\.AmountOfSpec.USD.fromDouble.produces valid amounts (22 mutations)
  10574. 334.90 s [really-safe-money-gen] coverage (922/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
  10575. 334.91 s [really-safe-money-gen] coverage (945/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 0 into quantisation factor 1 (25 mutations)
  10576. 335.02 s [really-safe-money-gen] coverage (1037/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -Infinity (3 mutations)
  10577. 335.21 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)
  10578. 335.22 s [really-safe-money-gen] coverage (1032/1610): Money\.AmountOfSpec.USD.BTC.rate.produces valid amounts (6 mutations)
  10579. 335.29 s [really-safe-money-gen] coverage (1065/1610): Money\.AmountOfSpec.USD.format.produces valid strings (3 mutations)
  10580. 335.37 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)
  10581. 335.46 s [really-safe-money-gen] coverage (1064/1610): Money\.AmountOfSpec.USD.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10582. 335.77 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)
  10583. 335.85 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)
  10584. 335.89 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)
  10585. 336.24 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)
  10586. 336.25 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)
  10587. 336.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)
  10588. 336.74 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)
  10589. 336.80 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)
  10590. 336.98 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)
  10591. 337.11 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)
  10592. 337.16 s [really-safe-money-gen] coverage (1081/1610): Money\.AmountOfSpec.USD.ADA.convert.produces valid amounts (11 mutations)
  10593. 337.26 s [really-safe-money-gen] coverage (1082/1610): Money\.AmountOfSpec.USD.ADA.rate.produces valid amounts (6 mutations)
  10594. 337.70 s [really-safe-money-gen] coverage (1074/1610): Money\.AmountOfSpec.USD.distribute.produces results that sum up to the greater whole (14 mutations)
  10595. 337.93 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)
  10596. 337.97 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)
  10597. 338.04 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)
  10598. 338.21 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)
  10599. 338.22 s [really-safe-money-gen] coverage (1089/1610): Money\.AmountOfSpec.ADA.BTC.convert.produces valid amounts (11 mutations)
  10600. 338.22 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)
  10601. 338.40 s [really-safe-money-gen] coverage (1090/1610): Money\.AmountOfSpec.ADA.BTC.rate.produces valid amounts (6 mutations)
  10602. 338.46 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)
  10603. 338.48 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)
  10604. 338.68 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)
  10605. 338.71 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)
  10606. 338.74 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)
  10607. 338.76 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)
  10608. 338.87 s [really-safe-money-gen] coverage (1073/1610): Money\.AmountOfSpec.USD.distribute.produces valid amounts (10 mutations)
  10609. 338.91 s [really-safe-money-gen] coverage (1071/1610): Money\.AmountOfSpec.USD.toDouble.produces valid Doubles (0 mutations)
  10610. 339.30 s [really-safe-money-gen] coverage (1070/1610): Money\.AmountOfSpec.USD.multiply.produces valid amounts (4 mutations)
  10611. 339.37 s [really-safe-money-gen] coverage (1069/1610): Money\.AmountOfSpec.USD.multiply.has an identity\: 1 (4 mutations)
  10612. 339.60 s [really-safe-money-gen] coverage (1067/1610): Money\.AmountOfSpec.USD.multiply.is absorbed by 0 (5 mutations)
  10613. 339.61 s [really-safe-money-gen] coverage (1066/1610): Money\.AmountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
  10614. 339.65 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)
  10615. 339.83 s [really-safe-money-gen] coverage (941/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 50 into DecimalLiteral Nothing 2 2 (22 mutations)
  10616. 340.09 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)
  10617. 340.15 s [really-safe-money-gen] coverage (940/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 100 into DecimalLiteral Nothing 1 2 (22 mutations)
  10618. 340.63 s [really-safe-money-gen] coverage (936/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a 0 (9 mutations)
  10619. 340.69 s [really-safe-money-gen] coverage (1097/1610): Money\.AmountOfSpec.ADA.zero.is valid (1 mutations)
  10620. 340.70 s [really-safe-money-gen] coverage (935/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.produces valid factors (31 mutations)
  10621. 340.99 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)
  10622. 341.01 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)
  10623. 341.05 s [really-safe-money-gen] coverage (1068/1610): Money\.AmountOfSpec.USD.multiply.is distributive with add when both succeed (8 mutations)
  10624. 341.09 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)
  10625. 341.35 s [really-safe-money-gen] coverage (1109/1610): Money\.AmountOfSpec.ADA.fromRational.fails on NaN (2 mutations)
  10626. 341.36 s [really-safe-money-gen] coverage (1100/1610): Money\.AmountOfSpec.ADA.toRational.produces valid Rationals (0 mutations)
  10627. 341.56 s [really-safe-money-gen] coverage (1112/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -1 (5 mutations)
  10628. 341.58 s [really-safe-money-gen] coverage (1122/1610): Money\.AmountOfSpec.ADA.add.has a right-identity\: zero (5 mutations)
  10629. 341.69 s [really-safe-money-gen] coverage (1121/1610): Money\.AmountOfSpec.ADA.add.has a left-identity\: zero (5 mutations)
  10630. 341.79 s [really-safe-money-gen] coverage (1117/1610): Money\.AmountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (5 mutations)
  10631. 341.87 s [really-safe-money-gen] coverage (1119/1610): Money\.AmountOfSpec.ADA.toDouble.produces valid Doubles (0 mutations)
  10632. 341.89 s [really-safe-money-gen] coverage (1116/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 0 (13 mutations)
  10633. 341.89 s [really-safe-money-gen] coverage (1114/1610): Money\.AmountOfSpec.ADA.fromRational.fails on +Infinity (2 mutations)
  10634. 341.94 s [really-safe-money-gen] coverage (1120/1610): Money\.AmountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (4 mutations)
  10635. 342.19 s [really-safe-money-gen] coverage (1118/1610): Money\.AmountOfSpec.ADA.sum.produces valid amounts (5 mutations)
  10636. 342.39 s [really-safe-money-gen] coverage (1113/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -Infinity (2 mutations)
  10637. 342.59 s [really-safe-money-gen] coverage (1115/1610): Money\.AmountOfSpec.ADA.fromRational.produces valid Amounts (13 mutations)
  10638. 342.69 s [really-safe-money-gen] coverage (1111/1610): Money\.AmountOfSpec.ADA.fromRational.roundtrips with toRational (13 mutations)
  10639. 342.73 s [really-safe-money-gen] coverage (1110/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 1 (13 mutations)
  10640. 342.84 s [really-safe-money-gen] coverage (1108/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on 7\.123 (9 mutations)
  10641. 342.99 s [really-safe-money-gen] coverage (1123/1610): Money\.AmountOfSpec.ADA.add.is associative when both succeed (4 mutations)
  10642. 343.41 s [really-safe-money-gen] coverage (1107/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 77 (13 mutations)
  10643. 343.53 s [really-safe-money-gen] coverage (1106/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on NaN (2 mutations)
  10644. 343.87 s [really-safe-money-gen] coverage (1105/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 1 (13 mutations)
  10645. 343.90 s [really-safe-money-gen] coverage (1104/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on +Infinity (2 mutations)
  10646. 344.00 s [really-safe-money-gen] coverage (1103/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 0 (14 mutations)
  10647. 344.18 s [really-safe-money-gen] coverage (1102/1610): Money\.AmountOfSpec.ADA.fromRatio.roundtrips with toRatio (13 mutations)
  10648. 344.29 s [really-safe-money-gen] coverage (1101/1610): Money\.AmountOfSpec.ADA.fromRatio.produces valid AmountOfs (13 mutations)
  10649. 344.43 s [really-safe-money-gen] coverage (1099/1610): Money\.AmountOfSpec.ADA.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10650. 344.43 s [really-safe-money-gen] coverage (1124/1610): Money\.AmountOfSpec.ADA.add.produces valid amounts (4 mutations)
  10651. 344.78 s [really-safe-money-gen] coverage (1125/1610): Money\.AmountOfSpec.ADA.add.is commutative (4 mutations)
  10652. 344.83 s [really-safe-money-gen] coverage (1126/1610): Money\.AmountOfSpec.ADA.USD.rate.produces valid amounts (6 mutations)
  10653. 345.02 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)
  10654. 345.10 s [really-safe-money-gen] coverage (1128/1610): Money\.AmountOfSpec.ADA.fromMinimalQuantisations.produces valid amounts (0 mutations)
  10655. 345.16 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)
  10656. 345.23 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)
  10657. 345.28 s [really-safe-money-gen] coverage (1139/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.produces valid Int64s (0 mutations)
  10658. 345.33 s [really-safe-money-gen] coverage (1141/1610): Money\.AmountOfSpec.ADA.CHF.rate.produces valid amounts (6 mutations)
  10659. 345.44 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)
  10660. 345.65 s [really-safe-money-gen] coverage (1138/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  10661. 345.86 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)
  10662. 345.94 s [really-safe-money-gen] coverage (1142/1610): Money\.AmountOfSpec.ADA.format.produces valid strings (3 mutations)
  10663. 346.24 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)
  10664. 346.33 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)
  10665. 346.61 s [really-safe-money-gen] coverage (1130/1610): Money\.AmountOfSpec.ADA.distribute.produces results that sum up to the greater whole (14 mutations)
  10666. 346.71 s [really-safe-money-gen] coverage (1127/1610): Money\.AmountOfSpec.ADA.USD.convert.produces valid amounts (11 mutations)
  10667. 346.81 s [really-safe-money-gen] coverage (1160/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -1 (3 mutations)
  10668. 347.20 s [really-safe-money-gen] coverage (1161/1610): Money\.AmountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
  10669. 347.57 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)
  10670. 347.58 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)
  10671. 347.74 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)
  10672. 347.99 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)
  10673. 348.42 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)
  10674. 348.43 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)
  10675. 348.55 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)
  10676. 348.59 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)
  10677. 348.68 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)
  10678. 348.69 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)
  10679. 348.85 s [really-safe-money-gen] coverage (1155/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on +Infinity (7 mutations)
  10680. 348.96 s [really-safe-money-gen] coverage (1157/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on NaN (5 mutations)
  10681. 349.34 s [really-safe-money-gen] coverage (1154/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 0 (22 mutations)
  10682. 349.35 s [really-safe-money-gen] coverage (1153/1610): Money\.AmountOfSpec.ADA.multiply.has an identity\: 1 (4 mutations)
  10683. 349.39 s [really-safe-money-gen] coverage (1152/1610): Money\.AmountOfSpec.ADA.multiply.is distributive with add when both succeed (8 mutations)
  10684. 349.66 s [really-safe-money-gen] coverage (1156/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 1 (22 mutations)
  10685. 349.71 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)
  10686. 350.01 s [really-safe-money-gen] coverage (1151/1610): Money\.AmountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
  10687. 350.23 s [really-safe-money-gen] coverage (1150/1610): Money\.AmountOfSpec.ADA.multiply.is absorbed by 0 (5 mutations)
  10688. 350.86 s [really-safe-money-gen] coverage (1148/1610): Money\.AmountOfSpec.ADA.INR.convert.produces valid amounts (11 mutations)
  10689. 350.93 s [really-safe-money-gen] coverage (1159/1610): Money\.AmountOfSpec.ADA.fromDouble.produces valid amounts (22 mutations)
  10690. 351.08 s [really-safe-money-gen] coverage (1149/1610): Money\.AmountOfSpec.ADA.multiply.produces valid amounts (4 mutations)
  10691. 351.11 s [really-safe-money-gen] coverage (1146/1610): Money\.AmountOfSpec.ADA.fraction.produces valid amounts (6 mutations)
  10692. 351.21 s [really-safe-money-gen] coverage (1145/1610): Money\.AmountOfSpec.ADA.ADA.convert.produces valid amounts (11 mutations)
  10693. 351.49 s [really-safe-money-gen] coverage (1147/1610): Money\.AmountOfSpec.ADA.INR.rate.produces valid amounts (6 mutations)
  10694. 351.86 s [really-safe-money-gen] coverage (1158/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -Infinity (3 mutations)
  10695. 351.87 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)
  10696. 351.97 s [really-safe-money-gen] coverage (1144/1610): Money\.AmountOfSpec.ADA.ADA.rate.produces valid amounts (6 mutations)
  10697. 352.24 s [really-safe-money-gen] coverage (1181/1610): Money\.AmountOfSpec.INR.distribute.produces valid amounts (10 mutations)
  10698. 352.61 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)
  10699. 352.62 s [really-safe-money-gen] coverage (1178/1610): Money\.AmountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
  10700. 352.77 s [really-safe-money-gen] coverage (1140/1610): Money\.AmountOfSpec.ADA.CHF.convert.produces valid amounts (11 mutations)
  10701. 353.13 s [really-safe-money-gen] coverage (1179/1610): Money\.AmountOfSpec.INR.toDouble.produces valid Doubles (0 mutations)
  10702. 353.27 s [really-safe-money-gen] coverage (1137/1610): Money\.AmountOfSpec.ADA.distribute.produces valid amounts (10 mutations)
  10703. 353.36 s [really-safe-money-gen] coverage (1180/1610): Money\.AmountOfSpec.INR.distribute.produces results that sum up to the greater whole (14 mutations)
  10704. 353.66 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)
  10705. 353.66 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)
  10706. 353.74 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)
  10707. 353.83 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)
  10708. 353.94 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)
  10709. 354.05 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)
  10710. 354.23 s [really-safe-money-gen] coverage (1190/1610): Money\.AmountOfSpec.INR.fromMinimalQuantisations.produces valid amounts (0 mutations)
  10711. 354.59 s [really-safe-money-gen] coverage (1189/1610): Money\.AmountOfSpec.INR.zero.is valid (1 mutations)
  10712. 354.74 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)
  10713. 355.02 s [really-safe-money-gen] coverage (1193/1610): Money\.AmountOfSpec.INR.ADA.convert.produces valid amounts (11 mutations)
  10714. 355.13 s [really-safe-money-gen] coverage (1191/1610): Money\.AmountOfSpec.INR.fraction.produces valid amounts (6 mutations)
  10715. 355.21 s [really-safe-money-gen] coverage (1192/1610): Money\.AmountOfSpec.INR.ADA.rate.produces valid amounts (6 mutations)
  10716. 355.43 s [really-safe-money-gen] coverage (1200/1610): Money\.AmountOfSpec.INR.fromDouble.produces valid amounts (22 mutations)
  10717. 355.45 s [really-safe-money-gen] coverage (1196/1610): Money\.AmountOfSpec.INR.fromDouble.fails on NaN (5 mutations)
  10718. 355.47 s [really-safe-money-gen] coverage (1197/1610): Money\.AmountOfSpec.INR.fromDouble.fails on +Infinity (7 mutations)
  10719. 355.56 s [really-safe-money-gen] coverage (1194/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -Infinity (3 mutations)
  10720. 355.74 s [really-safe-money-gen] coverage (1195/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 1 (22 mutations)
  10721. 355.85 s [really-safe-money-gen] coverage (1198/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -1 (3 mutations)
  10722. 356.15 s [really-safe-money-gen] coverage (1199/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 0 (22 mutations)
  10723. 356.75 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)
  10724. 356.91 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)
  10725. 357.25 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)
  10726. 357.25 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)
  10727. 357.86 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)
  10728. 357.87 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)
  10729. 358.01 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)
  10730. 358.04 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)
  10731. 358.27 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)
  10732. 358.50 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)
  10733. 358.70 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)
  10734. 358.92 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)
  10735. 359.06 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)
  10736. 359.12 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)
  10737. 359.16 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)
  10738. 359.17 s [really-safe-money-gen] coverage (1217/1610): Money\.AmountOfSpec.INR.CHF.convert.produces valid amounts (11 mutations)
  10739. 359.90 s [really-safe-money-gen] coverage (1219/1610): Money\.AmountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
  10740. 359.90 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)
  10741. 359.97 s [really-safe-money-gen] coverage (1218/1610): Money\.AmountOfSpec.INR.CHF.rate.produces valid amounts (6 mutations)
  10742. 360.19 s [really-safe-money-gen] coverage (1221/1610): Money\.AmountOfSpec.INR.multiply.is absorbed by 0 (5 mutations)
  10743. 360.27 s [really-safe-money-gen] coverage (1224/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  10744. 360.46 s [really-safe-money-gen] coverage (1225/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.produces valid Int64s (0 mutations)
  10745. 360.49 s [really-safe-money-gen] coverage (1223/1610): Money\.AmountOfSpec.INR.multiply.is distributive with add when both succeed (8 mutations)
  10746. 360.55 s [really-safe-money-gen] coverage (1220/1610): Money\.AmountOfSpec.INR.multiply.produces valid amounts (4 mutations)
  10747. 360.82 s [really-safe-money-gen] coverage (1222/1610): Money\.AmountOfSpec.INR.multiply.has an identity\: 1 (4 mutations)
  10748. 361.03 s [really-safe-money-gen] coverage (1226/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 0 (13 mutations)
  10749. 361.28 s [really-safe-money-gen] coverage (1227/1610): Money\.AmountOfSpec.INR.fromRational.fails on -Infinity (2 mutations)
  10750. 361.47 s [really-safe-money-gen] coverage (1228/1610): Money\.AmountOfSpec.INR.fromRational.roundtrips with toRational (13 mutations)
  10751. 361.65 s [really-safe-money-gen] coverage (1229/1610): Money\.AmountOfSpec.INR.fromRational.fails on +Infinity (2 mutations)
  10752. 361.70 s [really-safe-money-gen] coverage (1230/1610): Money\.AmountOfSpec.INR.fromRational.fails on NaN (2 mutations)
  10753. 361.88 s [really-safe-money-gen] coverage (1231/1610): Money\.AmountOfSpec.INR.fromRational.produces valid Amounts (13 mutations)
  10754. 362.08 s [really-safe-money-gen] coverage (1232/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 1 (13 mutations)
  10755. 362.13 s [really-safe-money-gen] coverage (1233/1610): Money\.AmountOfSpec.INR.fromRational.fails on -1 (5 mutations)
  10756. 362.43 s [really-safe-money-gen] coverage (1234/1610): Money\.AmountOfSpec.INR.add.is commutative (4 mutations)
  10757. 362.65 s [really-safe-money-gen] coverage (1235/1610): Money\.AmountOfSpec.INR.add.is associative when both succeed (4 mutations)
  10758. 362.81 s [really-safe-money-gen] coverage (1236/1610): Money\.AmountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (4 mutations)
  10759. 363.00 s [really-safe-money-gen] coverage (1238/1610): Money\.AmountOfSpec.INR.add.has a right-identity\: zero (5 mutations)
  10760. 363.10 s [really-safe-money-gen] coverage (1239/1610): Money\.AmountOfSpec.INR.add.produces valid amounts (4 mutations)
  10761. 363.20 s [really-safe-money-gen] coverage (1240/1610): Money\.AmountOfSpec.INR.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10762. 363.20 s [really-safe-money-gen] coverage (1237/1610): Money\.AmountOfSpec.INR.add.has a left-identity\: zero (5 mutations)
  10763. 363.34 s [really-safe-money-gen] coverage (1242/1610): Money\.AmountOfSpec.INR.toRational.produces valid Rationals (0 mutations)
  10764. 363.41 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)
  10765. 363.91 s [really-safe-money-gen] coverage (1245/1610): Money\.AmountOfSpec.INR.format.produces valid strings (3 mutations)
  10766. 364.00 s [really-safe-money-gen] coverage (1243/1610): Money\.AmountOfSpec.INR.sum.produces valid amounts (5 mutations)
  10767. 364.03 s [really-safe-money-gen] coverage (1244/1610): Money\.AmountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (5 mutations)
  10768. 364.20 s [really-safe-money-gen] coverage (1247/1610): Money\.AmountOfSpec.INR.INR.convert.produces valid amounts (11 mutations)
  10769. 364.26 s [really-safe-money-gen] coverage (1246/1610): Money\.AmountOfSpec.INR.INR.rate.produces valid amounts (6 mutations)
  10770. 364.45 s [really-safe-money-gen] coverage (1248/1610): Money\.AmountOfSpec.INR.BTC.rate.produces valid amounts (6 mutations)
  10771. 364.50 s [really-safe-money-gen] coverage (1250/1610): Money\.AmountOfSpec.INR.fromRatio.fails on NaN (2 mutations)
  10772. 364.56 s [really-safe-money-gen] coverage (1249/1610): Money\.AmountOfSpec.INR.BTC.convert.produces valid amounts (11 mutations)
  10773. 364.77 s [really-safe-money-gen] coverage (1251/1610): Money\.AmountOfSpec.INR.fromRatio.fails on +Infinity (2 mutations)
  10774. 364.98 s [really-safe-money-gen] coverage (1252/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 1 (13 mutations)
  10775. 365.12 s [really-safe-money-gen] coverage (1253/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 0 (14 mutations)
  10776. 365.49 s [really-safe-money-gen] coverage (1254/1610): Money\.AmountOfSpec.INR.fromRatio.roundtrips with toRatio (13 mutations)
  10777. 365.53 s [really-safe-money-gen] coverage (1256/1610): Money\.AmountOfSpec.INR.fromRatio.fails on 7\.123 (9 mutations)
  10778. 365.61 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)
  10779. 365.65 s [really-safe-money-gen] coverage (1255/1610): Money\.AmountOfSpec.INR.fromRatio.produces valid AmountOfs (13 mutations)
  10780. 365.67 s [really-safe-money-gen] coverage (1257/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 77 (13 mutations)
  10781. 365.97 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)
  10782. 366.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)
  10783. 366.57 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)
  10784. 366.87 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)
  10785. 366.95 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)
  10786. 366.95 s [really-safe-money-gen] coverage (1265/1610): Money\.AmountOfSpec.INR.USD.convert.produces valid amounts (11 mutations)
  10787. 367.01 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)
  10788. 367.11 s [really-safe-money-gen] coverage (1266/1610): Money\.AmountOfSpec.INR.USD.rate.produces valid amounts (6 mutations)
  10789. 367.13 s [really-safe-money-gen] coverage (1267/1610): Money\.AmountOfSpec.BTC.format.produces valid strings (3 mutations)
  10790. 367.14 s [really-safe-money-gen] coverage (1268/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  10791. 367.73 s [really-safe-money-gen] coverage (1269/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.produces valid Int64s (0 mutations)
  10792. 367.74 s [really-safe-money-gen] coverage (1271/1610): Money\.AmountOfSpec.BTC.INR.convert.produces valid amounts (11 mutations)
  10793. 367.79 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)
  10794. 367.79 s [really-safe-money-gen] coverage (1270/1610): Money\.AmountOfSpec.BTC.INR.rate.produces valid amounts (6 mutations)
  10795. 367.97 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)
  10796. 368.22 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)
  10797. 368.33 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)
  10798. 368.52 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)
  10799. 368.66 s [really-safe-money-gen] coverage (1276/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC)."min \:\: (AmountOf * BTC -> AmountOf * BTC -> AmountOf * BTC)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * BTC)"'s (0 mutations)
  10800. 368.83 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)
  10801. 369.19 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)
  10802. 369.20 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)
  10803. 369.22 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)
  10804. 369.43 s [really-safe-money-gen] coverage (1281/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC)."max \:\: (AmountOf * BTC -> AmountOf * BTC -> AmountOf * BTC)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * BTC)"'s (0 mutations)
  10805. 369.48 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)
  10806. 369.60 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)
  10807. 370.06 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)
  10808. 370.86 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)
  10809. 371.15 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)
  10810. 371.19 s [really-safe-money-gen] coverage (1288/1610): Money\.AmountOfSpec.BTC.fromRatio.roundtrips with toRatio (13 mutations)
  10811. 371.31 s [really-safe-money-gen] coverage (1290/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 77 (13 mutations)
  10812. 371.46 s [really-safe-money-gen] coverage (1289/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on NaN (2 mutations)
  10813. 371.47 s [really-safe-money-gen] coverage (1291/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 0 (14 mutations)
  10814. 371.89 s [really-safe-money-gen] coverage (1292/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 1 (13 mutations)
  10815. 371.99 s [really-safe-money-gen] coverage (1294/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on +Infinity (2 mutations)
  10816. 372.06 s [really-safe-money-gen] coverage (1293/1610): Money\.AmountOfSpec.BTC.fromRatio.produces valid AmountOfs (13 mutations)
  10817. 372.30 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)
  10818. 372.60 s [really-safe-money-gen] coverage (1297/1610): Money\.AmountOfSpec.BTC.CHF.rate.produces valid amounts (6 mutations)
  10819. 372.67 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)
  10820. 372.73 s [really-safe-money-gen] coverage (1296/1610): Money\.AmountOfSpec.BTC.CHF.convert.produces valid amounts (11 mutations)
  10821. 372.74 s [really-safe-money-gen] coverage (1295/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on 7\.123 (9 mutations)
  10822. 373.16 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)
  10823. 373.20 s [really-safe-money-gen] coverage (1301/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 1 (13 mutations)
  10824. 373.28 s [really-safe-money-gen] coverage (1305/1610): Money\.AmountOfSpec.BTC.fromRational.roundtrips with toRational (13 mutations)
  10825. 373.46 s [really-safe-money-gen] coverage (937/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.roundtrips with fromDecimalLiteral (48 mutations)
  10826. 373.58 s [really-safe-money-gen] coverage (1299/1610): Money\.AmountOfSpec.BTC.fromRational.produces valid Amounts (13 mutations)
  10827. 373.60 s [really-safe-money-gen] coverage (1309/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -1 (3 mutations)
  10828. 373.70 s [really-safe-money-gen] coverage (1298/1610): Money\.AmountOfSpec.BTC.fromRational.fails on NaN (2 mutations)
  10829. 373.86 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)
  10830. 373.92 s [really-safe-money-gen] coverage (1300/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -1 (5 mutations)
  10831. 373.97 s [really-safe-money-gen] coverage (1302/1610): Money\.AmountOfSpec.BTC.fromRational.fails on +Infinity (2 mutations)
  10832. 374.05 s [really-safe-money-gen] coverage (1307/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 1 (22 mutations)
  10833. 374.44 s [really-safe-money-gen] coverage (1308/1610): Money\.AmountOfSpec.BTC.fromDouble.produces valid amounts (22 mutations)
  10834. 374.86 s [really-safe-money-gen] coverage (1306/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on +Infinity (7 mutations)
  10835. 375.17 s [really-safe-money-gen] coverage (1338/1610): Money\.AmountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (5 mutations)
  10836. 375.27 s [really-safe-money-gen] coverage (1304/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 0 (13 mutations)
  10837. 375.36 s [really-safe-money-gen] coverage (1337/1610): Money\.AmountOfSpec.BTC.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10838. 375.37 s [really-safe-money-gen] coverage (1327/1610): Money\.AmountOfSpec.BTC.add.is associative when both succeed (4 mutations)
  10839. 375.53 s [really-safe-money-gen] coverage (1340/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(/=) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
  10840. 375.68 s [really-safe-money-gen] coverage (1339/1610): Money\.AmountOfSpec.BTC.sum.produces valid amounts (5 mutations)
  10841. 375.83 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)
  10842. 375.89 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)
  10843. 376.06 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)
  10844. 376.22 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)
  10845. 376.31 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)
  10846. 376.49 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)
  10847. 376.62 s [really-safe-money-gen] coverage (1346/1610): Money\.AmountOfSpec.BTC.distribute.produces valid amounts (10 mutations)
  10848. 376.71 s [really-safe-money-gen] coverage (1347/1610): Money\.AmountOfSpec.BTC.distribute.produces results that sum up to the greater whole (14 mutations)
  10849. 376.80 s [really-safe-money-gen] coverage (1349/1610): Money\.AmountOfSpec.BTC.toRational.produces valid Rationals (0 mutations)
  10850. 377.05 s [really-safe-money-gen] coverage (1350/1610): Money\.AmountOfSpec.BTC.fraction.produces valid amounts (6 mutations)
  10851. 377.23 s [really-safe-money-gen] coverage (1351/1610): Money\.AmountOfSpec.BTC.multiply.is absorbed by 0 (5 mutations)
  10852. 377.52 s [really-safe-money-gen] coverage (1352/1610): Money\.AmountOfSpec.BTC.multiply.has an identity\: 1 (4 mutations)
  10853. 377.63 s [really-safe-money-gen] coverage (1354/1610): Money\.AmountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
  10854. 377.71 s [really-safe-money-gen] coverage (1355/1610): Money\.AmountOfSpec.BTC.multiply.is distributive with add when both succeed (8 mutations)
  10855. 377.88 s [really-safe-money-gen] coverage (1353/1610): Money\.AmountOfSpec.BTC.multiply.produces valid amounts (4 mutations)
  10856. 377.88 s [really-safe-money-gen] coverage (1356/1610): Money\.AmountOfSpec.CHF.INR.convert.produces valid amounts (11 mutations)
  10857. 377.98 s [really-safe-money-gen] coverage (1357/1610): Money\.AmountOfSpec.CHF.INR.rate.produces valid amounts (6 mutations)
  10858. 378.17 s [really-safe-money-gen] coverage (1359/1610): Money\.AmountOfSpec.CHF.USD.rate.produces valid amounts (6 mutations)
  10859. 378.31 s [really-safe-money-gen] coverage (1358/1610): Money\.AmountOfSpec.CHF.USD.convert.produces valid amounts (11 mutations)
  10860. 378.88 s [really-safe-money-gen] coverage (1360/1610): Money\.AmountOfSpec.CHF.fromMinimalQuantisations.produces valid amounts (0 mutations)
  10861. 379.18 s [really-safe-money-gen] coverage (938/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (24 mutations)
  10862. 379.25 s [really-safe-money-gen] coverage (1361/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 0 (14 mutations)
  10863. 379.56 s [really-safe-money-gen] coverage (1362/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on +Infinity (2 mutations)
  10864. 379.63 s [really-safe-money-gen] coverage (1366/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on 7\.123 (9 mutations)
  10865. 379.67 s [really-safe-money-gen] coverage (1364/1610): Money\.AmountOfSpec.CHF.fromRatio.roundtrips with toRatio (13 mutations)
  10866. 379.72 s [really-safe-money-gen] coverage (1365/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 1 (13 mutations)
  10867. 379.79 s [really-safe-money-gen] coverage (1363/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on NaN (2 mutations)
  10868. 379.89 s [really-safe-money-gen] coverage (1367/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 77 (13 mutations)
  10869. 380.15 s [really-safe-money-gen] coverage (1369/1610): Money\.AmountOfSpec.CHF.fraction.produces valid amounts (6 mutations)
  10870. 380.16 s [really-safe-money-gen] coverage (1374/1610): Money\.AmountOfSpec.CHF.multiply.produces valid amounts (4 mutations)
  10871. 380.24 s [really-safe-money-gen] coverage (1368/1610): Money\.AmountOfSpec.CHF.fromRatio.produces valid AmountOfs (13 mutations)
  10872. 380.37 s [really-safe-money-gen] coverage (1370/1610): Money\.AmountOfSpec.CHF.multiply.has an identity\: 1 (4 mutations)
  10873. 380.57 s [really-safe-money-gen] coverage (1373/1610): Money\.AmountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
  10874. 380.58 s [really-safe-money-gen] coverage (1371/1610): Money\.AmountOfSpec.CHF.multiply.is absorbed by 0 (5 mutations)
  10875. 380.65 s [really-safe-money-gen] coverage (1372/1610): Money\.AmountOfSpec.CHF.multiply.is distributive with add when both succeed (8 mutations)
  10876. 380.82 s [really-safe-money-gen] coverage (1377/1610): Money\.AmountOfSpec.CHF.fromRational.produces valid Amounts (13 mutations)
  10877. 380.95 s [really-safe-money-gen] coverage (1376/1610): Money\.AmountOfSpec.CHF.fromRational.fails on +Infinity (2 mutations)
  10878. 380.98 s [really-safe-money-gen] coverage (1375/1610): Money\.AmountOfSpec.CHF.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  10879. 381.24 s [really-safe-money-gen] coverage (1333/1610): Money\.AmountOfSpec.BTC.toDouble.produces valid Doubles (0 mutations)
  10880. 381.50 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)
  10881. 381.53 s [really-safe-money-gen] coverage (1332/1610): Money\.AmountOfSpec.BTC.BTC.rate.produces valid amounts (6 mutations)
  10882. 381.76 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)
  10883. 381.80 s [really-safe-money-gen] coverage (1336/1610): Money\.AmountOfSpec.BTC.fromMinimalQuantisations.produces valid amounts (0 mutations)
  10884. 381.84 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)
  10885. 381.88 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)
  10886. 382.24 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)
  10887. 382.24 s [really-safe-money-gen] coverage (1330/1610): Money\.AmountOfSpec.BTC.zero.is valid (1 mutations)
  10888. 383.25 s [really-safe-money-gen] coverage (1328/1610): Money\.AmountOfSpec.BTC.ADA.convert.produces valid amounts (11 mutations)
  10889. 383.48 s [really-safe-money-gen] coverage (1326/1610): Money\.AmountOfSpec.BTC.add.produces valid amounts (4 mutations)
  10890. 383.50 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)
  10891. 383.78 s [really-safe-money-gen] coverage (1329/1610): Money\.AmountOfSpec.BTC.ADA.rate.produces valid amounts (6 mutations)
  10892. 383.92 s [really-safe-money-gen] coverage (1314/1610): Money\.AmountOfSpec.BTC.USD.rate.produces valid amounts (6 mutations)
  10893. 384.00 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)
  10894. 384.13 s [really-safe-money-gen] coverage (1303/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -Infinity (2 mutations)
  10895. 384.17 s [really-safe-money-gen] coverage (1312/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on NaN (5 mutations)
  10896. 384.32 s [really-safe-money-gen] coverage (1325/1610): Money\.AmountOfSpec.BTC.add.is commutative (4 mutations)
  10897. 384.70 s [really-safe-money-gen] coverage (1315/1610): Money\.AmountOfSpec.BTC.USD.convert.produces valid amounts (11 mutations)
  10898. 384.80 s [really-safe-money-gen] coverage (1310/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 0 (22 mutations)
  10899. 385.10 s [really-safe-money-gen] coverage (1311/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -Infinity (3 mutations)
  10900. 385.12 s [really-safe-money-gen] coverage (1324/1610): Money\.AmountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (4 mutations)
  10901. 385.20 s [really-safe-money-gen] coverage (1331/1610): Money\.AmountOfSpec.BTC.BTC.convert.produces valid amounts (11 mutations)
  10902. 385.34 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)
  10903. 385.49 s [really-safe-money-gen] coverage (1322/1610): Money\.AmountOfSpec.BTC.add.has a right-identity\: zero (5 mutations)
  10904. 385.59 s [really-safe-money-gen] coverage (1405/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 0 (22 mutations)
  10905. 385.62 s [really-safe-money-gen] coverage (1323/1610): Money\.AmountOfSpec.BTC.add.has a left-identity\: zero (5 mutations)
  10906. 385.73 s [really-safe-money-gen] coverage (1335/1610): Money\.AmountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
  10907. 385.87 s [really-safe-money-gen] coverage (1406/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -1 (3 mutations)
  10908. 386.29 s [really-safe-money-gen] coverage (1408/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -Infinity (3 mutations)
  10909. 386.53 s [really-safe-money-gen] coverage (1407/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on NaN (5 mutations)
  10910. 386.66 s [really-safe-money-gen] coverage (1410/1610): Money\.AmountOfSpec.CHF.ADA.convert.produces valid amounts (11 mutations)
  10911. 386.68 s [really-safe-money-gen] coverage (1411/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.produces valid Int64s (0 mutations)
  10912. 386.78 s [really-safe-money-gen] coverage (1409/1610): Money\.AmountOfSpec.CHF.ADA.rate.produces valid amounts (6 mutations)
  10913. 386.98 s [really-safe-money-gen] coverage (1412/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  10914. 387.07 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)
  10915. 387.08 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)
  10916. 388.04 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)
  10917. 388.06 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)
  10918. 388.30 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)
  10919. 388.37 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)
  10920. 388.69 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)
  10921. 388.81 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)
  10922. 388.85 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)
  10923. 388.99 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)
  10924. 389.09 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)
  10925. 389.37 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)
  10926. 389.55 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)
  10927. 389.64 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)
  10928. 389.71 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)
  10929. 389.78 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)
  10930. 389.82 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)
  10931. 389.89 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)
  10932. 390.05 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)
  10933. 390.11 s [really-safe-money-gen] coverage (1431/1610): Money\.AmountOfSpec.CHF.distribute.produces valid amounts (10 mutations)
  10934. 390.15 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)
  10935. 390.23 s [really-safe-money-gen] coverage (1432/1610): Money\.AmountOfSpec.CHF.distribute.produces results that sum up to the greater whole (14 mutations)
  10936. 390.50 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)
  10937. 390.82 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)
  10938. 390.87 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)
  10939. 390.94 s [really-safe-money-gen] coverage (1439/1610): Money\.AmountOfSpec.CHF.add.is commutative (4 mutations)
  10940. 390.98 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)
  10941. 391.06 s [really-safe-money-gen] coverage (1440/1610): Money\.AmountOfSpec.CHF.add.has a left-identity\: zero (5 mutations)
  10942. 391.17 s [really-safe-money-gen] coverage (1441/1610): Money\.AmountOfSpec.CHF.add.is associative when both succeed (4 mutations)
  10943. 391.19 s [really-safe-money-gen] coverage (1442/1610): Money\.AmountOfSpec.CHF.add.produces valid amounts (4 mutations)
  10944. 391.75 s [really-safe-money-gen] coverage (1443/1610): Money\.AmountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (4 mutations)
  10945. 391.85 s [really-safe-money-gen] coverage (1444/1610): Money\.AmountOfSpec.CHF.add.has a right-identity\: zero (5 mutations)
  10946. 392.36 s [really-safe-money-gen] coverage (1446/1610): Money\.AmountSpec.fraction.Correctly fractions 101 with 1 % 100 (4 mutations)
  10947. 392.56 s [really-safe-money-gen] coverage (1449/1610): Money\.AmountSpec.fraction.Correctly fractions 100 with 1 % 100 (4 mutations)
  10948. 392.80 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 (1 mutations)
  10949. 392.88 s [really-safe-money-gen] coverage (1451/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 1 (3 mutations)
  10950. 393.25 s [really-safe-money-gen] coverage (1452/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 10 (3 mutations)
  10951. 393.32 s [really-safe-money-gen] coverage (1448/1610): Money\.AmountSpec.fraction.produces valid amounts (6 mutations)
  10952. 393.34 s [really-safe-money-gen] coverage (1447/1610): Money\.AmountSpec.fraction.Produces a result that can be multiplied back (6 mutations)
  10953. 393.37 s [really-safe-money-gen] coverage (1455/1610): Money\.AmountSpec.fromRatio.roundtrips with toRatio (13 mutations)
  10954. 393.60 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 (1 mutations)
  10955. 393.97 s [really-safe-money-gen] coverage (1457/1610): Money\.AmountSpec.fromRatio.fails on NaN (2 mutations)
  10956. 394.04 s [really-safe-money-gen] coverage (1454/1610): Money\.AmountSpec.fromRatio.produces valid Amounts (13 mutations)
  10957. 394.09 s [really-safe-money-gen] coverage (1456/1610): Money\.AmountSpec.fromRatio.succeeds on 1 (13 mutations)
  10958. 394.11 s [really-safe-money-gen] coverage (1459/1610): Money\.AmountSpec.fromRatio.succeeds on 77\.02 with quantisation factor 100 (13 mutations)
  10959. 394.13 s [really-safe-money-gen] coverage (1458/1610): Money\.AmountSpec.fromRatio.fails on +Infinity (2 mutations)
  10960. 394.17 s [really-safe-money-gen] coverage (1461/1610): Money\.AmountSpec.fromRatio.fails on 7\.123 with quantisation factor 10 (9 mutations)
  10961. 394.19 s [really-safe-money-gen] coverage (1462/1610): Money\.AmountSpec.distribute.correctly distributes 3 into 3 (6 mutations)
  10962. 394.19 s [really-safe-money-gen] coverage (1453/1610): Money\.AmountSpec.format.produces valid strings (3 mutations)
  10963. 394.32 s [really-safe-money-gen] coverage (1460/1610): Money\.AmountSpec.fromRatio.succeeds on 0 (13 mutations)
  10964. 394.81 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)
  10965. 394.82 s [really-safe-money-gen] coverage (1465/1610): Money\.AmountSpec.distribute.correctly distributes 10 into 4 (6 mutations)
  10966. 394.90 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)
  10967. 394.99 s [really-safe-money-gen] coverage (1463/1610): Money\.AmountSpec.distribute.produces results that sum up to the greater whole (14 mutations)
  10968. 395.14 s [really-safe-money-gen] coverage (1390/1610): Money\.AmountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (5 mutations)
  10969. 395.23 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)
  10970. 395.24 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)
  10971. 395.59 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)
  10972. 395.77 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)
  10973. 396.39 s [really-safe-money-gen] coverage (1402/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 1 (22 mutations)
  10974. 396.51 s [really-safe-money-gen] coverage (1395/1610): Money\.AmountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
  10975. 396.52 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)
  10976. 396.66 s [really-safe-money-gen] coverage (1403/1610): Money\.AmountOfSpec.CHF.fromDouble.produces valid amounts (22 mutations)
  10977. 396.83 s [really-safe-money-gen] coverage (1393/1610): Money\.AmountOfSpec.CHF.BTC.rate.produces valid amounts (6 mutations)
  10978. 396.94 s [really-safe-money-gen] coverage (1382/1610): Money\.AmountOfSpec.CHF.fromRational.roundtrips with toRational (13 mutations)
  10979. 397.17 s [really-safe-money-gen] coverage (1378/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 0 (13 mutations)
  10980. 397.34 s [really-safe-money-gen] coverage (1383/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 1 (13 mutations)
  10981. 397.52 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)
  10982. 397.57 s [really-safe-money-gen] coverage (1381/1610): Money\.AmountOfSpec.CHF.fromRational.fails on NaN (2 mutations)
  10983. 397.92 s [really-safe-money-gen] coverage (1391/1610): Money\.AmountOfSpec.CHF.sum.produces valid amounts (5 mutations)
  10984. 397.95 s [really-safe-money-gen] coverage (1392/1610): Money\.AmountOfSpec.CHF.BTC.convert.produces valid amounts (11 mutations)
  10985. 397.97 s [really-safe-money-gen] coverage (1478/1610): Money\.AmountSpec.sum.correctly sums [1,2,3] to 6 (5 mutations)
  10986. 398.12 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)
  10987. 398.20 s [really-safe-money-gen] coverage (1477/1610): Money\.AmountSpec.sum.fails to sum above maxBound (5 mutations)
  10988. 398.39 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)
  10989. 398.47 s [really-safe-money-gen] coverage (1474/1610): Money\.AmountSpec.distribute.produces valid amounts (10 mutations)
  10990. 398.91 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)
  10991. 398.97 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)
  10992. 398.98 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)
  10993. 399.00 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)
  10994. 399.19 s [really-safe-money-gen] coverage (1467/1610): Money\.AmountSpec.distribute.correctly distributes 5 into 3 (6 mutations)
  10995. 399.40 s [really-safe-money-gen] coverage (1482/1610): Money\.AmountSpec.multiply.is absorbed by 0 (5 mutations)
  10996. 399.43 s [really-safe-money-gen] coverage (1466/1610): Money\.AmountSpec.distribute.GenValid (Distribution Amount).genValid \:\: Gen (Distribution Amount).only generates valid '(Distribution Amount)'s (5 mutations)
  10997. 399.80 s [really-safe-money-gen] coverage (1476/1610): Money\.AmountSpec.sum.matches what you would get with Integer, if nothing fails (5 mutations)
  10998. 399.88 s [really-safe-money-gen] coverage (1404/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on +Infinity (7 mutations)
  10999. 399.96 s [really-safe-money-gen] coverage (1401/1610): Money\.AmountOfSpec.CHF.format.produces valid strings (3 mutations)
  11000. 400.13 s [really-safe-money-gen] coverage (1475/1610): Money\.AmountSpec.sum.produces valid amounts (5 mutations)
  11001. 400.50 s [really-safe-money-gen] coverage (1399/1610): Money\.AmountOfSpec.CHF.CHF.rate.produces valid amounts (6 mutations)
  11002. 400.58 s [really-safe-money-gen] coverage (1398/1610): Money\.AmountOfSpec.CHF.CHF.convert.produces valid amounts (11 mutations)
  11003. 400.77 s [really-safe-money-gen] coverage (1489/1610): Money\.AmountSpec.fromDouble.succeeds on 77\.02 with quantisation factor 100 (22 mutations)
  11004. 400.90 s [really-safe-money-gen] coverage (1485/1610): Money\.AmountSpec.multiply.succeeds for 3 * 6 (4 mutations)
  11005. 400.92 s [really-safe-money-gen] coverage (1487/1610): Money\.AmountSpec.fromDouble.fails on really large numbers (14 mutations)
  11006. 401.30 s [really-safe-money-gen] coverage (1397/1610): Money\.AmountOfSpec.CHF.toRational.produces valid Rationals (0 mutations)
  11007. 401.77 s [really-safe-money-gen] coverage (1396/1610): Money\.AmountOfSpec.CHF.toDouble.produces valid Doubles (0 mutations)
  11008. 401.99 s [really-safe-money-gen] coverage (1379/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -Infinity (2 mutations)
  11009. 402.07 s [really-safe-money-gen] coverage (1484/1610): Money\.AmountSpec.multiply.has an identity\: 1 (4 mutations)
  11010. 402.09 s [really-safe-money-gen] coverage (1483/1610): Money\.AmountSpec.multiply.is distributive with add when both succeed (8 mutations)
  11011. 402.11 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)
  11012. 402.20 s [really-safe-money-gen] coverage (1480/1610): Money\.AmountSpec.multiply.fails for 2 * maxbound (4 mutations)
  11013. 402.31 s [really-safe-money-gen] coverage (1394/1610): Money\.AmountOfSpec.CHF.zero.is valid (1 mutations)
  11014. 402.41 s [really-safe-money-gen] coverage (1481/1610): Money\.AmountSpec.multiply.produces valid amounts (4 mutations)
  11015. 402.60 s [really-safe-money-gen] coverage (1380/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -1 (5 mutations)
  11016. 402.96 s [really-safe-money-gen] coverage (1479/1610): Money\.AmountSpec.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
  11017. 403.02 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)
  11018. 403.17 s [really-safe-money-gen] coverage (1488/1610): Money\.AmountSpec.fromDouble.roundtrips with toDouble, back to double (22 mutations)
  11019. 403.22 s [really-safe-money-gen] coverage (1502/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  11020. 403.27 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)
  11021. 403.43 s [really-safe-money-gen] coverage (1496/1610): Money\.AmountSpec.fromDouble.fails on +Infinity (7 mutations)
  11022. 403.47 s [really-safe-money-gen] coverage (1501/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  11023. 403.56 s [really-safe-money-gen] coverage (1495/1610): Money\.AmountSpec.fromDouble.fails on -Infinity (3 mutations)
  11024. 403.67 s [really-safe-money-gen] coverage (1503/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  11025. 403.95 s [really-safe-money-gen] coverage (1498/1610): Money\.AmountSpec.fromDouble.succeeds on 0 (22 mutations)
  11026. 404.11 s [really-safe-money-gen] coverage (1497/1610): Money\.AmountSpec.fromDouble.succeeds on 1 (22 mutations)
  11027. 404.27 s [really-safe-money-gen] coverage (1491/1610): Money\.AmountSpec.fromDouble.fails on really large numbers:1 (7 mutations)
  11028. 404.27 s [really-safe-money-gen] coverage (1492/1610): Money\.AmountSpec.fromDouble.fails on NaN (5 mutations)
  11029. 404.28 s [really-safe-money-gen] coverage (1499/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  11030. 404.51 s [really-safe-money-gen] coverage (1490/1610): Money\.AmountSpec.fromDouble.produces valid amounts (22 mutations)
  11031. 404.60 s [really-safe-money-gen] coverage (1526/1610): Money\.AmountSpec.fromRational.fails on NaN (2 mutations)
  11032. 404.95 s [really-safe-money-gen] coverage (1532/1610): Money\.AmountSpec.add.has a right-identity\: zero (5 mutations)
  11033. 405.05 s [really-safe-money-gen] coverage (1533/1610): Money\.AmountSpec.add.produces valid amounts (4 mutations)
  11034. 405.20 s [really-safe-money-gen] coverage (1527/1610): Money\.AmountSpec.fromRational.produces valid Amounts (13 mutations)
  11035. 405.42 s [really-safe-money-gen] coverage (1534/1610): Money\.AmountSpec.add.fails for maxBound + maxBound (4 mutations)
  11036. 405.82 s [really-safe-money-gen] coverage (1536/1610): Money\.AmountSpec.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
  11037. 405.83 s [really-safe-money-gen] coverage (1535/1610): Money\.AmountSpec.add.has a left-identity\: zero (5 mutations)
  11038. 405.86 s [really-safe-money-gen] coverage (1537/1610): Money\.AmountSpec.toMinimalQuantisations.produces valid Int64s (0 mutations)
  11039. 405.87 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)
  11040. 405.87 s [really-safe-money-gen] coverage (1538/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"s (0 mutations)
  11041. 406.04 s [really-safe-money-gen] coverage (1508/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  11042. 406.13 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)
  11043. 406.36 s [really-safe-money-gen] coverage (1520/1610): Money\.AmountSpec.fromRational.fails on -Infinity (2 mutations)
  11044. 406.40 s [really-safe-money-gen] coverage (1524/1610): Money\.AmountSpec.fromRational.fails on +Infinity (2 mutations)
  11045. 406.40 s [really-safe-money-gen] coverage (1525/1610): Money\.AmountSpec.fromRational.fails on -1 (5 mutations)
  11046. 406.52 s [really-safe-money-gen] coverage (1531/1610): Money\.AmountSpec.add.matches what you would get with Integer, if nothing fails (4 mutations)
  11047. 406.73 s [really-safe-money-gen] coverage (1523/1610): Money\.AmountSpec.fromRational.fails on 7\.123 with quantisation factor 10 (9 mutations)
  11048. 406.93 s [really-safe-money-gen] coverage (1522/1610): Money\.AmountSpec.fromRational.succeeds on 77\.02 with quantisation factor 100 (13 mutations)
  11049. 406.93 s [really-safe-money-gen] coverage (1521/1610): Money\.AmountSpec.fromRational.succeeds on 1 (13 mutations)
  11050. 407.11 s [really-safe-money-gen] coverage (1550/1610): Money\.AmountSpec.rate.computes this USD to CHF rate correctly (6 mutations)
  11051. 407.14 s [really-safe-money-gen] coverage (1551/1610): Money\.AmountSpec.zero.is valid (1 mutations)
  11052. 407.57 s [really-safe-money-gen] coverage (1553/1610): Money\.AmountSpec.convert.converts this USD to CHF correctly (10 mutations)
  11053. 407.94 s [really-safe-money-gen] coverage (1519/1610): Money\.AmountSpec.fromRational.fails on really large numbers (13 mutations)
  11054. 408.21 s [really-safe-money-gen] coverage (1514/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  11055. 408.41 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 (11 mutations)
  11056. 408.42 s [really-safe-money-gen] coverage (1517/1610): Money\.AmountSpec.fromRational.roundtrips with toRational (13 mutations)
  11057. 408.65 s [really-safe-money-gen] coverage (1518/1610): Money\.AmountSpec.fromRational.succeeds on 0 (13 mutations)
  11058. 408.80 s [really-safe-money-gen] coverage (1530/1610): Money\.AmountSpec.add.fails for maxBound + 1 (4 mutations)
  11059. 409.21 s [really-safe-money-gen] coverage (1556/1610): Money\.AmountSpec.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  11060. 409.25 s [really-safe-money-gen] coverage (1513/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
  11061. 409.36 s [really-safe-money-gen] coverage (1515/1610): Money\.AmountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
  11062. 409.38 s [really-safe-money-gen] coverage (1549/1610): Money\.AmountSpec.rate.computes a rate that can be used to do a conversion without rounding (10 mutations)
  11063. 409.82 s [really-safe-money-gen] coverage (1558/1610): Money\.AmountSpec.subtract.fails for 0 - 1 (5 mutations)
  11064. 409.89 s [really-safe-money-gen] coverage (1511/1610): Money\.AmountSpec.Ord Amount."min \:\: (Amount -> Amount -> Amount)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Amount"'s (0 mutations)
  11065. 409.94 s [really-safe-money-gen] coverage (1494/1610): Money\.AmountSpec.fromDouble.fails on 7\.123 with quantisation factor 10 (18 mutations)
  11066. 410.08 s [really-safe-money-gen] coverage (1509/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
  11067. 410.40 s [really-safe-money-gen] coverage (1557/1610): Money\.AmountSpec.subtract.fails for 0 - maxBound (5 mutations)
  11068. 410.60 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)
  11069. 410.61 s [really-safe-money-gen] coverage (1493/1610): Money\.AmountSpec.fromDouble.fails on -1 (3 mutations)
  11070. 410.74 s [really-safe-money-gen] coverage (1559/1610): Money\.AmountSpec.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
  11071. 410.86 s [really-safe-money-gen] coverage (1563/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 600 2 (25 mutations)
  11072. 410.90 s [really-safe-money-gen] coverage (1566/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
  11073. 411.13 s [really-safe-money-gen] coverage (1564/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
  11074. 411.14 s [really-safe-money-gen] coverage (1562/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (17 mutations)
  11075. 411.15 s [really-safe-money-gen] coverage (1565/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (17 mutations)
  11076. 411.63 s [really-safe-money-gen] coverage (1568/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
  11077. 411.71 s [really-safe-money-gen] coverage (1567/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (27 mutations)
  11078. 411.83 s [really-safe-money-gen] coverage (1561/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (27 mutations)
  11079. 412.20 s [really-safe-money-gen] coverage (1571/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise:1 (13 mutations)
  11080. 412.23 s [really-safe-money-gen] coverage (1560/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
  11081. 412.47 s [really-safe-money-gen] coverage (1570/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise (13 mutations)
  11082. 412.69 s [really-safe-money-gen] coverage (1569/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.produces valid factors (17 mutations)
  11083. 412.90 s [really-safe-money-gen] coverage (1516/1610): Money\.AmountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
  11084. 413.21 s [really-safe-money-gen] coverage (1529/1610): Money\.AmountSpec.add.is commutative (4 mutations)
  11085. 413.27 s [really-safe-money-gen] coverage (1573/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (23 mutations)
  11086. 413.50 s [really-safe-money-gen] coverage (1574/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (25 mutations)
  11087. 413.71 s [really-safe-money-gen] coverage (1572/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 2 0 (23 mutations)
  11088. 413.75 s [really-safe-money-gen] coverage (1528/1610): Money\.AmountSpec.add.is associative when both succeed (4 mutations)
  11089. 413.76 s [really-safe-money-gen] coverage (1575/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
  11090. 413.83 s [really-safe-money-gen] coverage (1576/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (25 mutations)
  11091. 413.88 s [really-safe-money-gen] coverage (1577/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
  11092. 414.02 s [really-safe-money-gen] coverage (1578/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 200 2 (25 mutations)
  11093. 414.30 s [really-safe-money-gen] coverage (1555/1610): Money\.AmountSpec.toRatio.produces an invalid Rational with quantisation factor 0 (1 mutations)
  11094. 414.54 s [really-safe-money-gen] coverage (1579/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
  11095. 414.94 s [really-safe-money-gen] coverage (1547/1610): Money\.AmountSpec.toDouble.produces an infinite Double with quantisation factor 0 (0 mutations)
  11096. 414.97 s [really-safe-money-gen] coverage (1543/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is symmetric for "valid Amount"s (0 mutations)
  11097. 415.13 s [really-safe-money-gen] coverage (1546/1610): Money\.AmountSpec.toDouble.succeeds on 7702 with quantisation factor 100 (0 mutations)
  11098. 415.27 s [really-safe-money-gen] coverage (1545/1610): Money\.AmountSpec.toDouble.produces valid Doubles (0 mutations)
  11099. 415.34 s [really-safe-money-gen] coverage (1544/1610): Money\.AmountSpec.GenValid Amount.genValid \:\: Gen Amount.only generates valid 'Amount's (0 mutations)
  11100. 415.37 s [really-safe-money-gen] coverage (1584/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 20 2 (27 mutations)
  11101. 415.49 s [really-safe-money-gen] coverage (1542/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"s (0 mutations)
  11102. 415.93 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)
  11103. 416.04 s [really-safe-money-gen] coverage (1506/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
  11104. 416.13 s [really-safe-money-gen] coverage (1548/1610): Money\.AmountSpec.rate.produces valid conversion rates (6 mutations)
  11105. 416.23 s [really-safe-money-gen] coverage (1554/1610): Money\.AmountSpec.convert.produces valid amounts (11 mutations)
  11106. 416.26 s [really-safe-money-gen] coverage (1541/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"s (0 mutations)
  11107. 416.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)
  11108. 416.60 s [really-safe-money-gen] coverage (1588/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"s (1 mutations)
  11109. 416.65 s [really-safe-money-gen] coverage (1593/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"s (1 mutations)
  11110. 416.76 s [really-safe-money-gen] coverage (1505/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
  11111. 416.85 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)
  11112. 417.84 s [really-safe-money-gen] coverage (1585/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (17 mutations)
  11113. 417.86 s [really-safe-money-gen] coverage (1603/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  11114. 417.89 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)
  11115. 417.97 s [really-safe-money-gen] coverage (1586/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
  11116. 418.11 s [really-safe-money-gen] coverage (1592/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"s (1 mutations)
  11117. 418.14 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)
  11118. 418.15 s [really-safe-money-gen] coverage (1610/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
  11119. 418.18 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)
  11120. 418.20 s [really-safe-money-gen] coverage (1591/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is symmetric for "valid Currency"s (1 mutations)
  11121. 418.56 s [really-safe-money-gen] coverage (1587/1610): Money\.AmountSpec.fromMinimalQuantisations.produces valid amounts (0 mutations)
  11122. 418.65 s [really-safe-money-gen] coverage (1581/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 4 2 (25 mutations)
  11123. 418.80 s [really-safe-money-gen] coverage (1580/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (25 mutations)
  11124. 418.82 s [really-safe-money-gen] coverage (1606/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  11125. 419.00 s [really-safe-money-gen] coverage (1609/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  11126. 419.00 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)
  11127. 419.14 s [really-safe-money-gen] coverage (1600/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
  11128. 419.34 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)
  11129. 419.37 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)
  11130. 419.45 s [really-safe-money-gen] coverage (1598/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  11131. 419.47 s [really-safe-money-gen] coverage (1601/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  11132. 419.51 s [really-safe-money-gen] coverage (1605/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
  11133. 419.51 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)
  11134. 419.53 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)
  11135. 419.55 s [really-safe-money-gen] coverage (1597/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  11136. 419.57 s [really-safe-money-gen] coverage (1604/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
  11137. 431.96 s [really-safe-money-gen] coverage (1582/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.produces valid decimal literals (29 mutations)
  11138. 435.82 s [really-safe-money-gen] coverage (1583/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.roundtrips with Amount\.fromDecimalLiteral (45 mutations)
  11139. 436.04 s [really-safe-money-gen] mutation-nix: running mutations
  11140. 438.37 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  11141. 438.39 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  11142. 438.39 s [really-safe-money-gen] Just a -> do
  11143. 438.39 s [really-safe-money-gen] r <- Account.subtract a account
  11144. 438.39 s [really-safe-money-gen] Just $
  11145. 438.39 s [really-safe-money-gen] - if r == Account.zero
  11146. 438.39 s [really-safe-money-gen] + if True
  11147. 438.39 s [really-safe-money-gen] then M.delete currency m
  11148. 438.39 s [really-safe-money-gen] else M.insert currency r m
  11149. 438.39 s [really-safe-money-gen]
  11150. 438.39 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
  11151. 438.39 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  11152. 438.40 s [really-safe-money-gen] Just a -> do
  11153. 438.40 s [really-safe-money-gen] r <- Account.subtract a account
  11154. 438.40 s [really-safe-money-gen] Just $
  11155. 438.40 s [really-safe-money-gen] - if r == Account.zero
  11156. 438.40 s [really-safe-money-gen] + if False
  11157. 438.40 s [really-safe-money-gen] then M.delete currency m
  11158. 438.40 s [really-safe-money-gen] else M.insert currency r m
  11159. 438.40 s [really-safe-money-gen]
  11160. 438.40 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
  11161. 438.40 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  11162. 438.40 s [really-safe-money-gen] Just a -> do
  11163. 438.40 s [really-safe-money-gen] r <- Account.subtract a account
  11164. 438.40 s [really-safe-money-gen] Just $
  11165. 438.40 s [really-safe-money-gen] - if r == Account.zero
  11166. 438.40 s [really-safe-money-gen] + if not (r == Account.zero)
  11167. 438.40 s [really-safe-money-gen] then M.delete currency m
  11168. 438.40 s [really-safe-money-gen] else M.insert currency r m
  11169. 438.40 s [really-safe-money-gen]
  11170. 438.40 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
  11171. 438.40 s [really-safe-money-gen] @@ -131,9 +131,9 @@
  11172. 438.40 s [really-safe-money-gen] Just a -> do
  11173. 438.40 s [really-safe-money-gen] r <- Account.subtract a account
  11174. 438.40 s [really-safe-money-gen] Just $
  11175. 438.40 s [really-safe-money-gen] - if r == Account.zero
  11176. 438.40 s [really-safe-money-gen] - then M.delete currency m
  11177. 438.40 s [really-safe-money-gen] - else M.insert currency r m
  11178. 438.40 s [really-safe-money-gen] + if r == Account.zero
  11179. 438.40 s [really-safe-money-gen] + then M.delete currency m
  11180. 438.40 s [really-safe-money-gen] + else M.insert currency r m
  11181. 438.40 s [really-safe-money-gen]
  11182. 438.40 s [really-safe-money-gen] -- | Try to convert every account to one currency.
  11183. 438.40 s [really-safe-money-gen] --
  11184. 438.40 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  11185. 438.40 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  11186. 438.40 s [really-safe-money-gen] Just a -> do
  11187. 438.40 s [really-safe-money-gen] r <- Account.add a account
  11188. 438.40 s [really-safe-money-gen] Just $
  11189. 438.40 s [really-safe-money-gen] - if r == Account.zero
  11190. 438.40 s [really-safe-money-gen] + if True
  11191. 438.40 s [really-safe-money-gen] then M.delete currency m
  11192. 438.40 s [really-safe-money-gen] else M.insert currency r m
  11193. 438.40 s [really-safe-money-gen]
  11194. 438.40 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
  11195. 438.40 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  11196. 438.40 s [really-safe-money-gen] Just a -> do
  11197. 438.40 s [really-safe-money-gen] r <- Account.add a account
  11198. 438.40 s [really-safe-money-gen] Just $
  11199. 438.40 s [really-safe-money-gen] - if r == Account.zero
  11200. 438.40 s [really-safe-money-gen] + if not (r == Account.zero)
  11201. 438.41 s [really-safe-money-gen] then M.delete currency m
  11202. 438.41 s [really-safe-money-gen] else M.insert currency r m
  11203. 438.41 s [really-safe-money-gen]
  11204. 438.41 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  11205. 438.41 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  11206. 438.41 s [really-safe-money-gen]
  11207. 438.41 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  11208. 438.41 s [really-safe-money-gen] fromAccount currency amount =
  11209. 438.41 s [really-safe-money-gen] - if amount == Account.zero
  11210. 438.41 s [really-safe-money-gen] + if False
  11211. 438.41 s [really-safe-money-gen] then zero
  11212. 438.41 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  11213. 438.41 s [really-safe-money-gen]
  11214. 438.41 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
  11215. 438.41 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  11216. 438.41 s [really-safe-money-gen] Just a -> do
  11217. 438.41 s [really-safe-money-gen] r <- Account.add a account
  11218. 438.41 s [really-safe-money-gen] Just $
  11219. 438.41 s [really-safe-money-gen] - if r == Account.zero
  11220. 438.41 s [really-safe-money-gen] + if False
  11221. 438.41 s [really-safe-money-gen] then M.delete currency m
  11222. 438.41 s [really-safe-money-gen] else M.insert currency r m
  11223. 438.41 s [really-safe-money-gen]
  11224. 438.41 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
  11225. 438.41 s [really-safe-money-gen] @@ -117,9 +117,9 @@
  11226. 438.41 s [really-safe-money-gen] Just a -> do
  11227. 438.41 s [really-safe-money-gen] r <- Account.add a account
  11228. 438.41 s [really-safe-money-gen] Just $
  11229. 438.41 s [really-safe-money-gen] - if r == Account.zero
  11230. 438.41 s [really-safe-money-gen] - then M.delete currency m
  11231. 438.41 s [really-safe-money-gen] - else M.insert currency r m
  11232. 438.41 s [really-safe-money-gen] + if r == Account.zero
  11233. 438.41 s [really-safe-money-gen] + then M.delete currency m
  11234. 438.41 s [really-safe-money-gen] + else M.insert currency r m
  11235. 438.41 s [really-safe-money-gen]
  11236. 438.41 s [really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
  11237. 438.41 s [really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
  11238. 438.41 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
  11239. 438.41 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  11240. 438.41 s [really-safe-money-gen]
  11241. 438.41 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  11242. 438.41 s [really-safe-money-gen] fromAccount currency amount =
  11243. 438.41 s [really-safe-money-gen] - if amount == Account.zero
  11244. 438.41 s [really-safe-money-gen] + if True
  11245. 438.41 s [really-safe-money-gen] then zero
  11246. 438.41 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  11247. 438.41 s [really-safe-money-gen]
  11248. 438.41 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  11249. 438.41 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  11250. 438.41 s [really-safe-money-gen] [ genericValidate ma,
  11251. 438.41 s [really-safe-money-gen] decorateMap m $ \_ a ->
  11252. 438.41 s [really-safe-money-gen] declare "The account is not zero" $
  11253. 438.41 s [really-safe-money-gen] - a /= Account.zero
  11254. 438.41 s [really-safe-money-gen] + True
  11255. 438.41 s [really-safe-money-gen] ]
  11256. 438.41 s [really-safe-money-gen]
  11257. 438.41 s [really-safe-money-gen] -- TODO no empty currencies
  11258. 438.41 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
  11259. 438.41 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  11260. 438.41 s [really-safe-money-gen] [ genericValidate ma,
  11261. 438.41 s [really-safe-money-gen] decorateMap m $ \_ a ->
  11262. 438.41 s [really-safe-money-gen] declare "The account is not zero" $
  11263. 438.41 s [really-safe-money-gen] - a /= Account.zero
  11264. 438.41 s [really-safe-money-gen] + False
  11265. 438.41 s [really-safe-money-gen] ]
  11266. 438.42 s [really-safe-money-gen]
  11267. 438.42 s [really-safe-money-gen] -- TODO no empty currencies
  11268. 438.42 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
  11269. 438.42 s [really-safe-money-gen] @@ -75,9 +75,9 @@
  11270. 438.42 s [really-safe-money-gen]
  11271. 438.42 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  11272. 438.42 s [really-safe-money-gen] fromAccount currency amount =
  11273. 438.42 s [really-safe-money-gen] - if amount == Account.zero
  11274. 438.42 s [really-safe-money-gen] - then zero
  11275. 438.42 s [really-safe-money-gen] - else MultiAccount $ M.singleton currency amount
  11276. 438.42 s [really-safe-money-gen] + if amount == Account.zero
  11277. 438.42 s [really-safe-money-gen] + then zero
  11278. 438.42 s [really-safe-money-gen] + else MultiAccount $ M.singleton currency amount
  11279. 438.42 s [really-safe-money-gen]
  11280. 438.42 s [really-safe-money-gen] -- | No money of any currency
  11281. 438.42 s [really-safe-money-gen] zero :: MultiAccount currency
  11282. 438.42 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
  11283. 438.42 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  11284. 438.42 s [really-safe-money-gen] [ genericValidate ma,
  11285. 438.42 s [really-safe-money-gen] decorateMap m $ \_ a ->
  11286. 438.42 s [really-safe-money-gen] declare "The account is not zero" $
  11287. 438.42 s [really-safe-money-gen] - a /= Account.zero
  11288. 438.42 s [really-safe-money-gen] + not (a /= Account.zero)
  11289. 438.42 s [really-safe-money-gen] ]
  11290. 438.42 s [really-safe-money-gen]
  11291. 438.42 s [really-safe-money-gen] -- TODO no empty currencies
  11292. 438.42 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
  11293. 438.42 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  11294. 438.42 s [really-safe-money-gen]
  11295. 438.42 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  11296. 438.42 s [really-safe-money-gen] fromAccount currency amount =
  11297. 438.42 s [really-safe-money-gen] - if amount == Account.zero
  11298. 438.42 s [really-safe-money-gen] + if not (amount == Account.zero)
  11299. 438.42 s [really-safe-money-gen] then zero
  11300. 438.42 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  11301. 438.42 s [really-safe-money-gen]
  11302. 438.42 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  11303. 438.42 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  11304. 438.42 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  11305. 438.42 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  11306. 438.42 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  11307. 438.42 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  11308. 438.42 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
  11309. 438.42 s [really-safe-money-gen]
  11310. 438.42 s [really-safe-money-gen] -- | Compose two conversion rates
  11311. 438.42 s [really-safe-money-gen] --
  11312. 438.42 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  11313. 438.42 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  11314. 438.42 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  11315. 438.42 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  11316. 438.42 s [really-safe-money-gen] mconcat
  11317. 438.42 s [really-safe-money-gen] - [ genericValidate ma,
  11318. 438.42 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  11319. 438.42 s [really-safe-money-gen] - declare "The account is not zero" $
  11320. 438.42 s [really-safe-money-gen] - a /= Account.zero
  11321. 438.42 s [really-safe-money-gen] - ]
  11322. 438.42 s [really-safe-money-gen] + []
  11323. 438.42 s [really-safe-money-gen]
  11324. 438.42 s [really-safe-money-gen] -- TODO no empty currencies
  11325. 438.42 s [really-safe-money-gen]
  11326. 438.42 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
  11327. 438.42 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  11328. 438.42 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  11329. 438.42 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  11330. 438.42 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  11331. 438.42 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  11332. 438.42 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
  11333. 438.42 s [really-safe-money-gen]
  11334. 438.42 s [really-safe-money-gen] -- | Compose two conversion rates
  11335. 438.42 s [really-safe-money-gen] --
  11336. 438.42 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  11337. 438.42 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  11338. 438.42 s [really-safe-money-gen]
  11339. 438.42 s [really-safe-money-gen] -- | One-to-one conversion rate
  11340. 438.42 s [really-safe-money-gen] oneToOne :: ConversionRate
  11341. 438.42 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  11342. 438.42 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  11343. 438.42 s [really-safe-money-gen]
  11344. 438.42 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  11345. 438.42 s [really-safe-money-gen] --
  11346. 438.42 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
  11347. 438.42 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  11348. 438.42 s [really-safe-money-gen]
  11349. 438.42 s [really-safe-money-gen] -- | One-to-one conversion rate
  11350. 438.42 s [really-safe-money-gen] oneToOne :: ConversionRate
  11351. 438.43 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  11352. 438.43 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  11353. 438.43 s [really-safe-money-gen]
  11354. 438.43 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  11355. 438.43 s [really-safe-money-gen] --
  11356. 438.43 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
  11357. 438.43 s [really-safe-money-gen] @@ -63,11 +63,11 @@
  11358. 438.43 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  11359. 438.43 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  11360. 438.43 s [really-safe-money-gen] mconcat
  11361. 438.43 s [really-safe-money-gen] - [ genericValidate ma,
  11362. 438.43 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  11363. 438.43 s [really-safe-money-gen] - declare "The account is not zero" $
  11364. 438.43 s [really-safe-money-gen] - a /= Account.zero
  11365. 438.43 s [really-safe-money-gen] - ]
  11366. 438.43 s [really-safe-money-gen] + [ genericValidate ma,
  11367. 438.43 s [really-safe-money-gen] + decorateMap m $ \_ a ->
  11368. 438.43 s [really-safe-money-gen] + declare "The account is not zero" $
  11369. 438.43 s [really-safe-money-gen] + a /= Account.zero
  11370. 438.43 s [really-safe-money-gen] + ]
  11371. 438.43 s [really-safe-money-gen]
  11372. 438.43 s [really-safe-money-gen] -- TODO no empty currencies
  11373. 438.43 s [really-safe-money-gen]
  11374. 438.43 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
  11375. 438.43 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  11376. 438.43 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  11377. 438.43 s [really-safe-money-gen] -- Nothing
  11378. 438.43 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  11379. 438.43 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11380. 438.43 s [really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  11381. 438.43 s [really-safe-money-gen]
  11382. 438.43 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  11383. 438.43 s [really-safe-money-gen] --
  11384. 438.43 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
  11385. 438.43 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  11386. 438.43 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  11387. 438.43 s [really-safe-money-gen] -- Nothing
  11388. 438.43 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  11389. 438.43 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11390. 438.43 s [really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  11391. 438.43 s [really-safe-money-gen]
  11392. 438.43 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  11393. 438.43 s [really-safe-money-gen] --
  11394. 438.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  11395. 438.43 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  11396. 438.43 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  11397. 438.43 s [really-safe-money-gen] -- Nothing
  11398. 438.43 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  11399. 438.43 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11400. 438.43 s [really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  11401. 438.43 s [really-safe-money-gen]
  11402. 441.52 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  11403. 441.52 s [really-safe-money-gen] --
  11404. 441.52 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
  11405. 441.52 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  11406. 441.52 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  11407. 441.52 s [really-safe-money-gen] mconcat
  11408. 441.52 s [really-safe-money-gen] [ genericValidate cr,
  11409. 441.52 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  11410. 441.52 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
  11411. 441.52 s [really-safe-money-gen] ]
  11412. 441.52 s [really-safe-money-gen]
  11413. 441.52 s [really-safe-money-gen] instance NFData ConversionRate
  11414. 441.52 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
  11415. 441.52 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  11416. 441.52 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  11417. 441.52 s [really-safe-money-gen] -- Nothing
  11418. 441.52 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  11419. 441.52 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11420. 441.52 s [really-safe-money-gen] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11421. 441.52 s [really-safe-money-gen]
  11422. 441.52 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  11423. 441.52 s [really-safe-money-gen] --
  11424. 441.52 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  11425. 441.52 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  11426. 441.52 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  11427. 441.52 s [really-safe-money-gen] mconcat
  11428. 441.52 s [really-safe-money-gen] [ genericValidate cr,
  11429. 441.52 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  11430. 441.52 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  11431. 441.52 s [really-safe-money-gen] ]
  11432. 441.52 s [really-safe-money-gen]
  11433. 441.53 s [really-safe-money-gen] instance NFData ConversionRate
  11434. 441.53 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
  11435. 441.53 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  11436. 441.53 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  11437. 441.53 s [really-safe-money-gen] -- Nothing
  11438. 441.53 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  11439. 441.53 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  11440. 441.53 s [really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  11441. 441.53 s [really-safe-money-gen]
  11442. 441.53 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  11443. 441.53 s [really-safe-money-gen] --
  11444. 441.53 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
  11445. 441.53 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  11446. 441.53 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  11447. 441.53 s [really-safe-money-gen] mconcat
  11448. 441.53 s [really-safe-money-gen] [ genericValidate cr,
  11449. 441.53 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  11450. 441.53 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  11451. 441.53 s [really-safe-money-gen] ]
  11452. 441.53 s [really-safe-money-gen]
  11453. 441.53 s [really-safe-money-gen] instance NFData ConversionRate
  11454. 441.53 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
  11455. 441.53 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  11456. 441.53 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  11457. 441.53 s [really-safe-money-gen] mconcat
  11458. 441.53 s [really-safe-money-gen] [ genericValidate cr,
  11459. 441.53 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  11460. 441.53 s [really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
  11461. 441.53 s [really-safe-money-gen] ]
  11462. 441.53 s [really-safe-money-gen]
  11463. 441.53 s [really-safe-money-gen] instance NFData ConversionRate
  11464. 441.53 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  11465. 441.53 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  11466. 441.53 s [really-safe-money-gen] instance Validity ConversionRate where
  11467. 441.53 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  11468. 441.53 s [really-safe-money-gen] mconcat
  11469. 441.53 s [really-safe-money-gen] - [ genericValidate cr,
  11470. 441.53 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  11471. 441.53 s [really-safe-money-gen] - ]
  11472. 441.53 s [really-safe-money-gen] + []
  11473. 441.53 s [really-safe-money-gen]
  11474. 441.53 s [really-safe-money-gen] instance NFData ConversionRate
  11475. 441.53 s [really-safe-money-gen]
  11476. 441.53 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
  11477. 441.53 s [really-safe-money-gen] @@ -34,9 +34,9 @@
  11478. 441.53 s [really-safe-money-gen] instance Validity ConversionRate where
  11479. 441.53 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  11480. 441.53 s [really-safe-money-gen] mconcat
  11481. 441.54 s [really-safe-money-gen] - [ genericValidate cr,
  11482. 441.54 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  11483. 441.54 s [really-safe-money-gen] - ]
  11484. 441.54 s [really-safe-money-gen] + [ genericValidate cr,
  11485. 441.54 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 0
  11486. 441.54 s [really-safe-money-gen] + ]
  11487. 441.54 s [really-safe-money-gen]
  11488. 441.54 s [really-safe-money-gen] instance NFData ConversionRate
  11489. 441.54 s [really-safe-money-gen]
  11490. 441.54 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  11491. 441.54 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  11492. 441.54 s [really-safe-money-gen] maxBoundN :: Natural
  11493. 441.54 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  11494. 441.54 s [really-safe-money-gen] actualResult =
  11495. 441.54 s [really-safe-money-gen] - if roundedResult > maxBoundN
  11496. 441.54 s [really-safe-money-gen] + if True
  11497. 441.54 s [really-safe-money-gen] then Nothing
  11498. 441.54 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  11499. 441.54 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  11500. 441.54 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
  11501. 441.54 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  11502. 441.54 s [really-safe-money-gen] maxBoundN :: Natural
  11503. 441.54 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  11504. 441.54 s [really-safe-money-gen] actualResult =
  11505. 441.54 s [really-safe-money-gen] - if roundedResult > maxBoundN
  11506. 441.54 s [really-safe-money-gen] + if not (roundedResult > maxBoundN)
  11507. 441.54 s [really-safe-money-gen] then Nothing
  11508. 441.54 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  11509. 441.54 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  11510. 441.54 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
  11511. 441.54 s [really-safe-money-gen] @@ -165,9 +165,9 @@
  11512. 441.54 s [really-safe-money-gen] maxBoundN :: Natural
  11513. 441.54 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  11514. 441.54 s [really-safe-money-gen] actualResult =
  11515. 441.54 s [really-safe-money-gen] - if roundedResult > maxBoundN
  11516. 441.54 s [really-safe-money-gen] - then Nothing
  11517. 441.54 s [really-safe-money-gen] - else Just (fromIntegral roundedResult)
  11518. 441.54 s [really-safe-money-gen] + if roundedResult > maxBoundN
  11519. 441.54 s [really-safe-money-gen] + then Nothing
  11520. 441.54 s [really-safe-money-gen] + else Just (fromIntegral roundedResult)
  11521. 441.54 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  11522. 441.54 s [really-safe-money-gen] LT -> RoundedDown
  11523. 441.54 s [really-safe-money-gen] EQ -> DidNotRound
  11524. 441.54 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
  11525. 441.54 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  11526. 441.54 s [really-safe-money-gen] maxBoundN :: Natural
  11527. 441.54 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  11528. 441.54 s [really-safe-money-gen] actualResult =
  11529. 441.54 s [really-safe-money-gen] - if roundedResult > maxBoundN
  11530. 441.54 s [really-safe-money-gen] + if False
  11531. 441.54 s [really-safe-money-gen] then Nothing
  11532. 441.54 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  11533. 441.54 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  11534. 441.54 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  11535. 441.54 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  11536. 441.54 s [really-safe-money-gen] Just a -> do
  11537. 441.54 s [really-safe-money-gen] r <- Amount.subtract a amount
  11538. 441.54 s [really-safe-money-gen] Just $
  11539. 441.55 s [really-safe-money-gen] - if r == Amount.zero
  11540. 441.55 s [really-safe-money-gen] + if True
  11541. 441.55 s [really-safe-money-gen] then M.delete currency m
  11542. 441.55 s [really-safe-money-gen] else M.insert currency r m
  11543. 441.55 s [really-safe-money-gen]
  11544. 441.55 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
  11545. 441.55 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  11546. 441.55 s [really-safe-money-gen] Just a -> do
  11547. 441.55 s [really-safe-money-gen] r <- Amount.subtract a amount
  11548. 441.55 s [really-safe-money-gen] Just $
  11549. 441.55 s [really-safe-money-gen] - if r == Amount.zero
  11550. 441.55 s [really-safe-money-gen] + if False
  11551. 441.55 s [really-safe-money-gen] then M.delete currency m
  11552. 441.55 s [really-safe-money-gen] else M.insert currency r m
  11553. 441.55 s [really-safe-money-gen]
  11554. 441.55 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
  11555. 441.55 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  11556. 441.55 s [really-safe-money-gen] Just a -> do
  11557. 441.55 s [really-safe-money-gen] r <- Amount.subtract a amount
  11558. 441.55 s [really-safe-money-gen] Just $
  11559. 441.55 s [really-safe-money-gen] - if r == Amount.zero
  11560. 441.55 s [really-safe-money-gen] + if not (r == Amount.zero)
  11561. 441.55 s [really-safe-money-gen] then M.delete currency m
  11562. 441.55 s [really-safe-money-gen] else M.insert currency r m
  11563. 441.55 s [really-safe-money-gen]
  11564. 441.55 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
  11565. 441.55 s [really-safe-money-gen] @@ -116,9 +116,9 @@
  11566. 441.55 s [really-safe-money-gen] Just a -> do
  11567. 441.55 s [really-safe-money-gen] r <- Amount.subtract a amount
  11568. 441.55 s [really-safe-money-gen] Just $
  11569. 441.55 s [really-safe-money-gen] - if r == Amount.zero
  11570. 441.55 s [really-safe-money-gen] - then M.delete currency m
  11571. 441.55 s [really-safe-money-gen] - else M.insert currency r m
  11572. 441.55 s [really-safe-money-gen] + if r == Amount.zero
  11573. 441.55 s [really-safe-money-gen] + then M.delete currency m
  11574. 441.55 s [really-safe-money-gen] + else M.insert currency r m
  11575. 441.55 s [really-safe-money-gen]
  11576. 441.55 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  11577. 441.55 s [really-safe-money-gen] --
  11578. 441.55 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  11579. 441.55 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  11580. 441.55 s [really-safe-money-gen] Just a -> do
  11581. 441.55 s [really-safe-money-gen] r <- Amount.add a amount
  11582. 441.55 s [really-safe-money-gen] Just $
  11583. 441.55 s [really-safe-money-gen] - if r == Amount.zero
  11584. 441.55 s [really-safe-money-gen] + if True
  11585. 441.55 s [really-safe-money-gen] then M.delete currency m
  11586. 441.55 s [really-safe-money-gen] else M.insert currency r m
  11587. 441.55 s [really-safe-money-gen]
  11588. 441.55 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
  11589. 441.55 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  11590. 441.55 s [really-safe-money-gen] Just a -> do
  11591. 441.55 s [really-safe-money-gen] r <- Amount.add a amount
  11592. 441.55 s [really-safe-money-gen] Just $
  11593. 441.55 s [really-safe-money-gen] - if r == Amount.zero
  11594. 441.55 s [really-safe-money-gen] + if False
  11595. 441.55 s [really-safe-money-gen] then M.delete currency m
  11596. 441.55 s [really-safe-money-gen] else M.insert currency r m
  11597. 441.55 s [really-safe-money-gen]
  11598. 441.55 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
  11599. 441.55 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  11600. 441.55 s [really-safe-money-gen] Just a -> do
  11601. 441.55 s [really-safe-money-gen] r <- Amount.add a amount
  11602. 441.55 s [really-safe-money-gen] Just $
  11603. 441.56 s [really-safe-money-gen] - if r == Amount.zero
  11604. 441.56 s [really-safe-money-gen] + if not (r == Amount.zero)
  11605. 441.56 s [really-safe-money-gen] then M.delete currency m
  11606. 441.56 s [really-safe-money-gen] else M.insert currency r m
  11607. 441.56 s [really-safe-money-gen]
  11608. 441.56 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
  11609. 441.56 s [really-safe-money-gen] @@ -103,9 +103,9 @@
  11610. 441.56 s [really-safe-money-gen] Just a -> do
  11611. 441.56 s [really-safe-money-gen] r <- Amount.add a amount
  11612. 441.56 s [really-safe-money-gen] Just $
  11613. 441.56 s [really-safe-money-gen] - if r == Amount.zero
  11614. 441.56 s [really-safe-money-gen] - then M.delete currency m
  11615. 441.56 s [really-safe-money-gen] - else M.insert currency r m
  11616. 441.56 s [really-safe-money-gen] + if r == Amount.zero
  11617. 441.56 s [really-safe-money-gen] + then M.delete currency m
  11618. 441.56 s [really-safe-money-gen] + else M.insert currency r m
  11619. 441.56 s [really-safe-money-gen]
  11620. 441.56 s [really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
  11621. 441.56 s [really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
  11622. 441.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  11623. 441.56 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  11624. 441.56 s [really-safe-money-gen]
  11625. 441.56 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  11626. 441.56 s [really-safe-money-gen] fromAmount currency amount =
  11627. 441.56 s [really-safe-money-gen] - if amount == Amount.zero
  11628. 441.56 s [really-safe-money-gen] + if True
  11629. 441.56 s [really-safe-money-gen] then zero
  11630. 441.56 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  11631. 441.56 s [really-safe-money-gen]
  11632. 441.56 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
  11633. 441.56 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  11634. 441.56 s [really-safe-money-gen]
  11635. 441.56 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  11636. 441.56 s [really-safe-money-gen] fromAmount currency amount =
  11637. 441.56 s [really-safe-money-gen] - if amount == Amount.zero
  11638. 441.56 s [really-safe-money-gen] + if not (amount == Amount.zero)
  11639. 441.56 s [really-safe-money-gen] then zero
  11640. 441.56 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  11641. 441.56 s [really-safe-money-gen]
  11642. 441.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  11643. 441.56 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  11644. 441.56 s [really-safe-money-gen] [ genericValidate ma,
  11645. 441.56 s [really-safe-money-gen] decorateMap m $ \_ a ->
  11646. 441.56 s [really-safe-money-gen] declare "The amount is not zero" $
  11647. 441.56 s [really-safe-money-gen] - a /= Amount.zero
  11648. 444.56 s [really-safe-money-gen] + True
  11649. 444.56 s [really-safe-money-gen] ]
  11650. 444.56 s [really-safe-money-gen]
  11651. 444.56 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  11652. 444.65 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
  11653. 444.65 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  11654. 444.65 s [really-safe-money-gen] [ genericValidate ma,
  11655. 444.65 s [really-safe-money-gen] decorateMap m $ \_ a ->
  11656. 444.65 s [really-safe-money-gen] declare "The amount is not zero" $
  11657. 444.65 s [really-safe-money-gen] - a /= Amount.zero
  11658. 444.65 s [really-safe-money-gen] + False
  11659. 444.65 s [really-safe-money-gen] ]
  11660. 444.65 s [really-safe-money-gen]
  11661. 444.65 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  11662. 444.65 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
  11663. 444.65 s [really-safe-money-gen] @@ -70,9 +70,9 @@
  11664. 444.65 s [really-safe-money-gen]
  11665. 444.65 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  11666. 444.65 s [really-safe-money-gen] fromAmount currency amount =
  11667. 444.65 s [really-safe-money-gen] - if amount == Amount.zero
  11668. 444.65 s [really-safe-money-gen] - then zero
  11669. 444.65 s [really-safe-money-gen] - else MultiAmount $ M.singleton currency amount
  11670. 444.65 s [really-safe-money-gen] + if amount == Amount.zero
  11671. 444.65 s [really-safe-money-gen] + then zero
  11672. 444.65 s [really-safe-money-gen] + else MultiAmount $ M.singleton currency amount
  11673. 444.66 s [really-safe-money-gen]
  11674. 444.66 s [really-safe-money-gen] -- | No money of any currency
  11675. 444.66 s [really-safe-money-gen] zero :: MultiAmount currency
  11676. 444.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
  11677. 444.66 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  11678. 444.66 s [really-safe-money-gen]
  11679. 444.66 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  11680. 444.66 s [really-safe-money-gen] fromAmount currency amount =
  11681. 444.66 s [really-safe-money-gen] - if amount == Amount.zero
  11682. 444.66 s [really-safe-money-gen] + if False
  11683. 444.66 s [really-safe-money-gen] then zero
  11684. 444.66 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  11685. 444.66 s [really-safe-money-gen]
  11686. 444.66 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  11687. 444.66 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  11688. 444.66 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  11689. 444.66 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  11690. 444.66 s [really-safe-money-gen] mconcat
  11691. 444.66 s [really-safe-money-gen] - [ genericValidate ma,
  11692. 444.66 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  11693. 444.66 s [really-safe-money-gen] - declare "The amount is not zero" $
  11694. 444.66 s [really-safe-money-gen] - a /= Amount.zero
  11695. 444.66 s [really-safe-money-gen] - ]
  11696. 444.66 s [really-safe-money-gen] + []
  11697. 444.66 s [really-safe-money-gen]
  11698. 444.66 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  11699. 444.66 s [really-safe-money-gen]
  11700. 444.66 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
  11701. 444.66 s [really-safe-money-gen] @@ -60,11 +60,11 @@
  11702. 444.66 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  11703. 444.66 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  11704. 444.66 s [really-safe-money-gen] mconcat
  11705. 444.66 s [really-safe-money-gen] - [ genericValidate ma,
  11706. 444.66 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  11707. 444.66 s [really-safe-money-gen] - declare "The amount is not zero" $
  11708. 444.66 s [really-safe-money-gen] - a /= Amount.zero
  11709. 444.66 s [really-safe-money-gen] - ]
  11710. 444.66 s [really-safe-money-gen] + [ genericValidate ma,
  11711. 444.66 s [really-safe-money-gen] + decorateMap m $ \_ a ->
  11712. 444.66 s [really-safe-money-gen] + declare "The amount is not zero" $
  11713. 444.66 s [really-safe-money-gen] + a /= Amount.zero
  11714. 444.66 s [really-safe-money-gen] + ]
  11715. 444.66 s [really-safe-money-gen]
  11716. 444.66 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  11717. 444.66 s [really-safe-money-gen]
  11718. 444.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  11719. 444.66 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  11720. 444.66 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  11721. 444.66 s [really-safe-money-gen] let currentDigits :: Word8
  11722. 444.66 s [really-safe-money-gen] currentDigits = digits dl
  11723. 444.66 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  11724. 444.66 s [really-safe-money-gen] + in if True
  11725. 444.66 s [really-safe-money-gen] then dl
  11726. 444.66 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  11727. 444.66 s [really-safe-money-gen] where
  11728. 444.66 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
  11729. 444.66 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  11730. 444.66 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  11731. 444.66 s [really-safe-money-gen] where
  11732. 444.66 s [really-safe-money-gen] go = \case
  11733. 444.66 s [really-safe-money-gen] - Nothing -> Just True
  11734. 444.66 s [really-safe-money-gen] + Nothing -> Just False
  11735. 444.66 s [really-safe-money-gen] s -> s
  11736. 444.66 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
  11737. 444.66 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  11738. 444.66 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  11739. 444.66 s [really-safe-money-gen] let currentDigits :: Word8
  11740. 444.66 s [really-safe-money-gen] currentDigits = digits dl
  11741. 444.66 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  11742. 444.66 s [really-safe-money-gen] + in if False
  11743. 444.66 s [really-safe-money-gen] then dl
  11744. 444.66 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  11745. 444.66 s [really-safe-money-gen] where
  11746. 444.66 s [really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
  11747. 444.66 s [really-safe-money-gen] @@ -365,9 +365,9 @@
  11748. 444.66 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  11749. 444.66 s [really-safe-money-gen] let currentDigits :: Word8
  11750. 444.66 s [really-safe-money-gen] currentDigits = digits dl
  11751. 444.66 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  11752. 444.66 s [really-safe-money-gen] - then dl
  11753. 444.66 s [really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
  11754. 444.66 s [really-safe-money-gen] + in if wantedDigits <= currentDigits
  11755. 444.66 s [really-safe-money-gen] + then dl
  11756. 444.66 s [really-safe-money-gen] + else increaseDigits (wantedDigits - currentDigits) dl
  11757. 444.66 s [really-safe-money-gen] where
  11758. 444.66 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  11759. 444.66 s [really-safe-money-gen] increaseDigits 0 = id
  11760. 444.66 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  11761. 444.66 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  11762. 444.66 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  11763. 444.66 s [really-safe-money-gen] increaseDigits 0 = id
  11764. 444.66 s [really-safe-money-gen] increaseDigits w = \case
  11765. 444.67 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  11766. 444.67 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  11767. 444.67 s [really-safe-money-gen]
  11768. 444.67 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  11769. 444.67 s [really-safe-money-gen] --
  11770. 444.67 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
  11771. 444.67 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  11772. 444.67 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  11773. 444.67 s [really-safe-money-gen] increaseDigits 0 = id
  11774. 444.67 s [really-safe-money-gen] increaseDigits w = \case
  11775. 444.67 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  11776. 444.67 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  11777. 444.67 s [really-safe-money-gen]
  11778. 444.67 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  11779. 444.67 s [really-safe-money-gen] --
  11780. 444.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  11781. 444.67 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  11782. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11783. 444.67 s [really-safe-money-gen]
  11784. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11785. 444.67 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  11786. 444.67 s [really-safe-money-gen] +numSign a = if True then Nothing else Just False
  11787. 444.67 s [really-safe-money-gen]
  11788. 444.67 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  11789. 444.67 s [really-safe-money-gen] signSignum = \case
  11790. 444.67 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
  11791. 444.67 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  11792. 444.67 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  11793. 444.67 s [really-safe-money-gen] let currentDigits :: Word8
  11794. 444.67 s [really-safe-money-gen] currentDigits = digits dl
  11795. 444.67 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  11796. 444.67 s [really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
  11797. 444.67 s [really-safe-money-gen] then dl
  11798. 444.67 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  11799. 444.67 s [really-safe-money-gen] where
  11800. 444.67 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  11801. 444.67 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  11802. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11803. 444.67 s [really-safe-money-gen]
  11804. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11805. 444.67 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  11806. 444.67 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  11807. 444.67 s [really-safe-money-gen]
  11808. 444.67 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  11809. 444.67 s [really-safe-money-gen] signSignum = \case
  11810. 444.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
  11811. 444.67 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  11812. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11813. 444.67 s [really-safe-money-gen]
  11814. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11815. 444.67 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  11816. 444.67 s [really-safe-money-gen] +numSign a = if False then Nothing else Just False
  11817. 444.67 s [really-safe-money-gen]
  11818. 444.67 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  11819. 444.67 s [really-safe-money-gen] signSignum = \case
  11820. 444.67 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
  11821. 444.67 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  11822. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11823. 444.67 s [really-safe-money-gen]
  11824. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11825. 444.67 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  11826. 444.67 s [really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
  11827. 444.67 s [really-safe-money-gen]
  11828. 444.67 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  11829. 444.67 s [really-safe-money-gen] signSignum = \case
  11830. 444.67 s [really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
  11831. 444.67 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  11832. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11833. 444.67 s [really-safe-money-gen]
  11834. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11835. 444.67 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  11836. 444.67 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just False
  11837. 444.67 s [really-safe-money-gen]
  11838. 444.67 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  11839. 444.67 s [really-safe-money-gen] signSignum = \case
  11840. 444.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  11841. 444.67 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  11842. 444.67 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  11843. 444.67 s [really-safe-money-gen] toInt dl = do
  11844. 444.67 s [really-safe-money-gen] n <- toInteger dl
  11845. 444.67 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  11846. 444.67 s [really-safe-money-gen] + guard $ True
  11847. 444.67 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  11848. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11849. 444.67 s [really-safe-money-gen]
  11850. 444.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  11851. 444.67 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  11852. 444.67 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  11853. 444.67 s [really-safe-money-gen] toInt dl = do
  11854. 444.67 s [really-safe-money-gen] n <- toInteger dl
  11855. 444.67 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  11856. 444.67 s [really-safe-money-gen] + guard $ False
  11857. 444.67 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  11858. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11859. 444.67 s [really-safe-money-gen]
  11860. 444.67 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
  11861. 444.67 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  11862. 444.67 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  11863. 444.67 s [really-safe-money-gen] toInt dl = do
  11864. 444.67 s [really-safe-money-gen] n <- toInteger dl
  11865. 444.67 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  11866. 444.67 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
  11867. 444.67 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  11868. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11869. 444.67 s [really-safe-money-gen]
  11870. 444.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  11871. 444.67 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  11872. 444.67 s [really-safe-money-gen] toInt dl = do
  11873. 444.67 s [really-safe-money-gen] n <- toInteger dl
  11874. 444.67 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  11875. 444.67 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  11876. 444.67 s [really-safe-money-gen] + guard $ False
  11877. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11878. 444.67 s [really-safe-money-gen]
  11879. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11880. 444.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  11881. 444.67 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  11882. 444.67 s [really-safe-money-gen] toInt dl = do
  11883. 444.67 s [really-safe-money-gen] n <- toInteger dl
  11884. 444.67 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  11885. 444.67 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  11886. 444.67 s [really-safe-money-gen] + guard $ True
  11887. 444.67 s [really-safe-money-gen] pure $ fromIntegral n
  11888. 444.67 s [really-safe-money-gen]
  11889. 444.67 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11890. 444.68 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
  11891. 444.68 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  11892. 444.68 s [really-safe-money-gen] toInt dl = do
  11893. 444.68 s [really-safe-money-gen] n <- toInteger dl
  11894. 446.01 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  11895. 446.01 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  11896. 446.01 s [really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
  11897. 446.01 s [really-safe-money-gen] pure $ fromIntegral n
  11898. 446.01 s [really-safe-money-gen]
  11899. 446.01 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  11900. 446.01 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
  11901. 446.01 s [really-safe-money-gen] @@ -312,7 +312,7 @@
  11902. 446.01 s [really-safe-money-gen]
  11903. 446.01 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  11904. 446.01 s [really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
  11905. 446.01 s [really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  11906. 446.01 s [really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  11907. 446.01 s [really-safe-money-gen]
  11908. 446.01 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
  11909. 446.01 s [really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
  11910. 446.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  11911. 446.01 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  11912. 446.01 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  11913. 446.01 s [really-safe-money-gen] toWord dl = do
  11914. 446.01 s [really-safe-money-gen] n <- toNatural dl
  11915. 446.01 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  11916. 446.01 s [really-safe-money-gen] + guard $ True
  11917. 446.01 s [really-safe-money-gen] pure $ fromIntegral n
  11918. 446.01 s [really-safe-money-gen]
  11919. 446.01 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  11920. 446.01 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
  11921. 446.01 s [really-safe-money-gen] @@ -301,7 +301,7 @@
  11922. 446.01 s [really-safe-money-gen]
  11923. 446.01 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  11924. 446.01 s [really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
  11925. 446.01 s [really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
  11926. 446.01 s [really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
  11927. 446.01 s [really-safe-money-gen]
  11928. 446.01 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
  11929. 446.01 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  11930. 446.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  11931. 446.01 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  11932. 446.01 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  11933. 446.01 s [really-safe-money-gen] toWord dl = do
  11934. 446.02 s [really-safe-money-gen] n <- toNatural dl
  11935. 446.02 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  11936. 446.02 s [really-safe-money-gen] + guard $ False
  11937. 446.02 s [really-safe-money-gen] pure $ fromIntegral n
  11938. 446.02 s [really-safe-money-gen]
  11939. 446.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  11940. 446.02 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
  11941. 446.02 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  11942. 446.02 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  11943. 446.02 s [really-safe-money-gen] toWord dl = do
  11944. 446.02 s [really-safe-money-gen] n <- toNatural dl
  11945. 446.02 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  11946. 446.02 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
  11947. 446.02 s [really-safe-money-gen] pure $ fromIntegral n
  11948. 446.02 s [really-safe-money-gen]
  11949. 446.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  11950. 446.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  11951. 446.02 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  11952. 446.02 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  11953. 446.02 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  11954. 446.02 s [really-safe-money-gen] Just False -> Nothing
  11955. 446.02 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  11956. 446.02 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
  11957. 446.02 s [really-safe-money-gen]
  11958. 446.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  11959. 446.02 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  11960. 446.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  11961. 446.02 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  11962. 446.02 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  11963. 446.02 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  11964. 446.02 s [really-safe-money-gen] Just False -> Nothing
  11965. 446.02 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  11966. 446.02 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  11967. 446.02 s [really-safe-money-gen]
  11968. 446.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  11969. 446.02 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  11970. 446.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  11971. 446.02 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  11972. 446.02 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  11973. 446.02 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  11974. 446.02 s [really-safe-money-gen] Just False -> Nothing
  11975. 446.02 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  11976. 446.02 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
  11977. 446.02 s [really-safe-money-gen]
  11978. 446.02 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  11979. 446.02 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  11980. 446.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  11981. 446.02 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  11982. 446.02 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  11983. 446.02 s [really-safe-money-gen] -- Nothing
  11984. 446.02 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  11985. 446.02 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  11986. 446.02 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
  11987. 446.02 s [really-safe-money-gen] where
  11988. 446.02 s [really-safe-money-gen] fromRationalRepetendLimited ::
  11989. 446.02 s [really-safe-money-gen] -- limit
  11990. 446.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  11991. 446.02 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  11992. 446.02 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  11993. 446.02 s [really-safe-money-gen] -- Nothing
  11994. 446.02 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  11995. 446.02 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  11996. 446.02 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
  11997. 446.02 s [really-safe-money-gen] where
  11998. 446.02 s [really-safe-money-gen] fromRationalRepetendLimited ::
  11999. 446.03 s [really-safe-money-gen] -- limit
  12000. 446.03 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
  12001. 446.03 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  12002. 446.03 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  12003. 446.03 s [really-safe-money-gen] -- Nothing
  12004. 446.03 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  12005. 446.03 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  12006. 446.03 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
  12007. 446.03 s [really-safe-money-gen] where
  12008. 446.03 s [really-safe-money-gen] fromRationalRepetendLimited ::
  12009. 446.03 s [really-safe-money-gen] -- limit
  12010. 446.03 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
  12011. 446.03 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  12012. 446.03 s [really-safe-money-gen] Ratio Natural ->
  12013. 446.03 s [really-safe-money-gen] Maybe DecimalLiteral
  12014. 446.03 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  12015. 446.03 s [really-safe-money-gen] - | d == 0 = Nothing
  12016. 446.03 s [really-safe-money-gen] + | d == 1 = Nothing
  12017. 446.03 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  12018. 446.03 s [really-safe-money-gen] where
  12019. 446.03 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  12020. 446.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
  12021. 446.03 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  12022. 446.03 s [really-safe-money-gen] Ratio Natural ->
  12023. 446.03 s [really-safe-money-gen] Maybe DecimalLiteral
  12024. 446.03 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  12025. 446.03 s [really-safe-money-gen] - | d == 0 = Nothing
  12026. 446.03 s [really-safe-money-gen] + | True = Nothing
  12027. 446.03 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  12028. 446.03 s [really-safe-money-gen] where
  12029. 446.03 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  12030. 446.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
  12031. 446.03 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  12032. 446.03 s [really-safe-money-gen] Just (c, e)
  12033. 446.03 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  12034. 446.03 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  12035. 446.03 s [really-safe-money-gen] - | S.member n ns = Nothing
  12036. 446.03 s [really-safe-money-gen] + | True = Nothing
  12037. 446.03 s [really-safe-money-gen] -- Over the limit, stop trying
  12038. 446.03 s [really-safe-money-gen] | e >= l = Nothing
  12039. 446.03 s [really-safe-money-gen] | n < d =
  12040. 446.03 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
  12041. 446.03 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  12042. 446.03 s [really-safe-money-gen] Just (c, e)
  12043. 446.03 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  12044. 446.03 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  12045. 446.03 s [really-safe-money-gen] - | S.member n ns = Nothing
  12046. 446.03 s [really-safe-money-gen] + | not (S.member n ns) = Nothing
  12047. 446.03 s [really-safe-money-gen] -- Over the limit, stop trying
  12048. 446.03 s [really-safe-money-gen] | e >= l = Nothing
  12049. 446.03 s [really-safe-money-gen] | n < d =
  12050. 446.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
  12051. 446.03 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  12052. 446.03 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  12053. 446.03 s [really-safe-money-gen] | S.member n ns = Nothing
  12054. 446.03 s [really-safe-money-gen] -- Over the limit, stop trying
  12055. 446.03 s [really-safe-money-gen] - | e >= l = Nothing
  12056. 446.03 s [really-safe-money-gen] + | True = Nothing
  12057. 446.03 s [really-safe-money-gen] | n < d =
  12058. 446.03 s [really-safe-money-gen] let !ns' = S.insert n ns
  12059. 446.03 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12060. 446.03 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
  12061. 446.03 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  12062. 446.03 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  12063. 446.03 s [really-safe-money-gen] | S.member n ns = Nothing
  12064. 446.03 s [really-safe-money-gen] -- Over the limit, stop trying
  12065. 446.03 s [really-safe-money-gen] - | e >= l = Nothing
  12066. 446.03 s [really-safe-money-gen] + | not (e >= l) = Nothing
  12067. 446.03 s [really-safe-money-gen] | n < d =
  12068. 446.03 s [really-safe-money-gen] let !ns' = S.insert n ns
  12069. 446.03 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12070. 446.03 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
  12071. 446.03 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  12072. 446.03 s [really-safe-money-gen] | S.member n ns = Nothing
  12073. 446.03 s [really-safe-money-gen] -- Over the limit, stop trying
  12074. 446.04 s [really-safe-money-gen] | e >= l = Nothing
  12075. 446.04 s [really-safe-money-gen] - | n < d =
  12076. 446.04 s [really-safe-money-gen] + | True =
  12077. 446.04 s [really-safe-money-gen] let !ns' = S.insert n ns
  12078. 446.04 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12079. 446.04 s [really-safe-money-gen] | otherwise =
  12080. 446.04 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
  12081. 446.04 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  12082. 446.04 s [really-safe-money-gen] | S.member n ns = Nothing
  12083. 446.04 s [really-safe-money-gen] -- Over the limit, stop trying
  12084. 446.04 s [really-safe-money-gen] | e >= l = Nothing
  12085. 446.04 s [really-safe-money-gen] - | n < d =
  12086. 446.04 s [really-safe-money-gen] + | not (n < d) =
  12087. 446.04 s [really-safe-money-gen] let !ns' = S.insert n ns
  12088. 446.04 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12089. 446.04 s [really-safe-money-gen] | otherwise =
  12090. 446.04 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
  12091. 446.04 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  12092. 446.04 s [really-safe-money-gen] Ratio Natural ->
  12093. 446.04 s [really-safe-money-gen] Maybe DecimalLiteral
  12094. 446.04 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  12095. 446.04 s [really-safe-money-gen] - | d == 0 = Nothing
  12096. 446.04 s [really-safe-money-gen] + | not (d == 0) = Nothing
  12097. 446.04 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  12098. 446.04 s [really-safe-money-gen] where
  12099. 446.04 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  12100. 446.04 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  12101. 446.04 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  12102. 446.04 s [really-safe-money-gen] | e >= l = Nothing
  12103. 446.04 s [really-safe-money-gen] | n < d =
  12104. 446.04 s [really-safe-money-gen] let !ns' = S.insert n ns
  12105. 446.04 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12106. 446.04 s [really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  12107. 446.04 s [really-safe-money-gen] | otherwise =
  12108. 446.04 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  12109. 446.04 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  12110. 446.04 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
  12111. 446.04 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  12112. 446.04 s [really-safe-money-gen] | e >= l = Nothing
  12113. 448.13 s [really-safe-money-gen] | n < d =
  12114. 448.13 s [really-safe-money-gen] let !ns' = S.insert n ns
  12115. 448.13 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12116. 448.13 s [really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  12117. 448.13 s [really-safe-money-gen] | otherwise =
  12118. 448.13 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  12119. 448.13 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  12120. 448.13 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
  12121. 448.13 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  12122. 448.13 s [really-safe-money-gen] [ genericValidate ma,
  12123. 448.13 s [really-safe-money-gen] decorateMap m $ \_ a ->
  12124. 448.13 s [really-safe-money-gen] declare "The amount is not zero" $
  12125. 448.13 s [really-safe-money-gen] - a /= Amount.zero
  12126. 448.14 s [really-safe-money-gen] + not (a /= Amount.zero)
  12127. 448.14 s [really-safe-money-gen] ]
  12128. 448.14 s [really-safe-money-gen]
  12129. 448.14 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  12130. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  12131. 448.14 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  12132. 448.14 s [really-safe-money-gen] | e >= l = Nothing
  12133. 448.14 s [really-safe-money-gen] | n < d =
  12134. 448.14 s [really-safe-money-gen] let !ns' = S.insert n ns
  12135. 448.14 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12136. 448.14 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  12137. 448.14 s [really-safe-money-gen] | otherwise =
  12138. 448.14 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  12139. 448.14 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  12140. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
  12141. 448.14 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  12142. 448.14 s [really-safe-money-gen] | e >= l = Nothing
  12143. 448.14 s [really-safe-money-gen] | n < d =
  12144. 448.14 s [really-safe-money-gen] let !ns' = S.insert n ns
  12145. 448.14 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  12146. 448.14 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  12147. 448.14 s [really-safe-money-gen] | otherwise =
  12148. 448.14 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  12149. 448.14 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  12150. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
  12151. 448.14 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  12152. 448.14 s [really-safe-money-gen] num = numerator rational
  12153. 448.14 s [really-safe-money-gen]
  12154. 448.14 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  12155. 448.14 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  12156. 448.14 s [really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
  12157. 448.14 s [really-safe-money-gen]
  12158. 448.14 s [really-safe-money-gen] longDivWithLimit ::
  12159. 448.14 s [really-safe-money-gen] Natural ->
  12160. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
  12161. 448.14 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  12162. 448.14 s [really-safe-money-gen] num = numerator rational
  12163. 448.14 s [really-safe-money-gen]
  12164. 448.14 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  12165. 448.14 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  12166. 448.14 s [really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
  12167. 448.14 s [really-safe-money-gen]
  12168. 448.14 s [really-safe-money-gen] longDivWithLimit ::
  12169. 448.14 s [really-safe-money-gen] Natural ->
  12170. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  12171. 448.14 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  12172. 448.14 s [really-safe-money-gen] -- (-3) % 10
  12173. 448.14 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  12174. 448.14 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  12175. 448.14 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  12176. 448.14 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
  12177. 448.14 s [really-safe-money-gen]
  12178. 448.14 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  12179. 448.14 s [really-safe-money-gen] --
  12180. 448.14 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
  12181. 448.14 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  12182. 448.14 s [really-safe-money-gen] pure $ fromIntegral n
  12183. 448.14 s [really-safe-money-gen]
  12184. 448.14 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  12185. 448.14 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  12186. 448.14 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
  12187. 448.14 s [really-safe-money-gen]
  12188. 448.14 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  12189. 448.14 s [really-safe-money-gen] signSignum = \case
  12190. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  12191. 448.14 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  12192. 448.14 s [really-safe-money-gen] -- (-3) % 10
  12193. 448.14 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  12194. 448.14 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  12195. 448.14 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  12196. 448.14 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
  12197. 448.14 s [really-safe-money-gen]
  12198. 448.14 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  12199. 448.14 s [really-safe-money-gen] --
  12200. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
  12201. 448.14 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  12202. 448.14 s [really-safe-money-gen] -- (-3) % 10
  12203. 448.14 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  12204. 448.14 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  12205. 448.14 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  12206. 448.14 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
  12207. 448.14 s [really-safe-money-gen]
  12208. 448.14 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  12209. 448.14 s [really-safe-money-gen] --
  12210. 448.14 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  12211. 448.14 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  12212. 448.14 s [really-safe-money-gen] -- Nothing
  12213. 448.14 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  12214. 448.14 s [really-safe-money-gen] fromRational (n :% d)
  12215. 448.15 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12216. 448.15 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12217. 448.15 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  12218. 448.15 s [really-safe-money-gen]
  12219. 448.15 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  12220. 448.15 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
  12221. 448.15 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  12222. 448.15 s [really-safe-money-gen] -- Nothing
  12223. 448.15 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  12224. 448.15 s [really-safe-money-gen] fromRational (n :% d)
  12225. 448.15 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12226. 448.15 s [really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12227. 448.15 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  12228. 448.15 s [really-safe-money-gen]
  12229. 448.15 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  12230. 448.15 s [really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
  12231. 448.15 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  12232. 448.15 s [really-safe-money-gen] -- Nothing
  12233. 448.15 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  12234. 448.15 s [really-safe-money-gen] fromRational (n :% d)
  12235. 448.15 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12236. 448.15 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12237. 448.15 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  12238. 448.15 s [really-safe-money-gen]
  12239. 448.15 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  12240. 448.15 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  12241. 448.15 s [really-safe-money-gen] @@ -183,7 +183,7 @@
  12242. 448.15 s [really-safe-money-gen]
  12243. 448.15 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  12244. 448.15 s [really-safe-money-gen] go :: Word8 -> String -> String
  12245. 448.15 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  12246. 448.15 s [really-safe-money-gen] + go 0 [] = []
  12247. 448.15 s [really-safe-money-gen] go 0 s = '.' : s
  12248. 448.15 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  12249. 448.15 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  12250. 448.15 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
  12251. 448.15 s [really-safe-money-gen] @@ -183,7 +183,7 @@
  12252. 448.15 s [really-safe-money-gen]
  12253. 448.15 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  12254. 448.15 s [really-safe-money-gen] go :: Word8 -> String -> String
  12255. 448.15 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  12256. 448.15 s [really-safe-money-gen] + go 0 [] = ['.', '0']
  12257. 448.15 s [really-safe-money-gen] go 0 s = '.' : s
  12258. 448.15 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  12259. 448.15 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  12260. 448.15 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  12261. 448.15 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  12262. 448.15 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  12263. 448.15 s [really-safe-money-gen] parseDigits f z = do
  12264. 448.15 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  12265. 448.15 s [really-safe-money-gen] - let digit = Char.ord c - 48
  12266. 448.15 s [really-safe-money-gen] + let digit = Char.ord c - 0
  12267. 448.15 s [really-safe-money-gen] case f z digit of
  12268. 448.15 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  12269. 448.15 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  12270. 448.15 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  12271. 448.15 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  12272. 448.15 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  12273. 448.15 s [really-safe-money-gen] parseDigits f z = do
  12274. 448.15 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  12275. 448.15 s [really-safe-money-gen] - let digit = Char.ord c - 48
  12276. 448.15 s [really-safe-money-gen] + let digit = Char.ord c - 1
  12277. 448.15 s [really-safe-money-gen] case f z digit of
  12278. 448.15 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  12279. 448.15 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  12280. 448.15 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
  12281. 448.15 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  12282. 448.15 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  12283. 448.15 s [really-safe-money-gen] parseDigits f z = do
  12284. 448.15 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  12285. 448.15 s [really-safe-money-gen] - let digit = Char.ord c - 48
  12286. 448.15 s [really-safe-money-gen] + let digit = Char.ord c - -48
  12287. 448.15 s [really-safe-money-gen] case f z digit of
  12288. 448.15 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  12289. 448.15 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  12290. 448.15 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
  12291. 448.15 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  12292. 448.15 s [really-safe-money-gen] where
  12293. 448.15 s [really-safe-money-gen] go !a [] = return a
  12294. 448.15 s [really-safe-money-gen] go !a (c : cs)
  12295. 448.15 s [really-safe-money-gen] - | Char.isDigit c = do
  12296. 448.15 s [really-safe-money-gen] + | True = do
  12297. 448.15 s [really-safe-money-gen] _ <- ReadP.get
  12298. 448.15 s [really-safe-money-gen] let digit = Char.ord c - 48
  12299. 448.15 s [really-safe-money-gen] case f a digit of
  12300. 448.15 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
  12301. 448.15 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  12302. 448.15 s [really-safe-money-gen] where
  12303. 448.15 s [really-safe-money-gen] go !a [] = return a
  12304. 448.15 s [really-safe-money-gen] go !a (c : cs)
  12305. 448.15 s [really-safe-money-gen] - | Char.isDigit c = do
  12306. 448.15 s [really-safe-money-gen] + | not (Char.isDigit c) = do
  12307. 448.15 s [really-safe-money-gen] _ <- ReadP.get
  12308. 448.15 s [really-safe-money-gen] let digit = Char.ord c - 48
  12309. 448.15 s [really-safe-money-gen] case f a digit of
  12310. 448.15 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  12311. 448.15 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  12312. 448.15 s [really-safe-money-gen] go !a (c : cs)
  12313. 448.15 s [really-safe-money-gen] | Char.isDigit c = do
  12314. 448.15 s [really-safe-money-gen] _ <- ReadP.get
  12315. 448.15 s [really-safe-money-gen] - let digit = Char.ord c - 48
  12316. 448.15 s [really-safe-money-gen] + let digit = Char.ord c - 0
  12317. 448.15 s [really-safe-money-gen] case f a digit of
  12318. 448.15 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  12319. 448.15 s [really-safe-money-gen] Just a' -> go a' cs
  12320. 448.15 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  12321. 448.15 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  12322. 448.15 s [really-safe-money-gen] go !a (c : cs)
  12323. 448.15 s [really-safe-money-gen] | Char.isDigit c = do
  12324. 448.15 s [really-safe-money-gen] _ <- ReadP.get
  12325. 448.15 s [really-safe-money-gen] - let digit = Char.ord c - 48
  12326. 448.15 s [really-safe-money-gen] + let digit = Char.ord c - 1
  12327. 448.15 s [really-safe-money-gen] case f a digit of
  12328. 448.15 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  12329. 448.15 s [really-safe-money-gen] Just a' -> go a' cs
  12330. 449.85 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
  12331. 449.86 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  12332. 449.95 s [really-safe-money-gen] -- Nothing
  12333. 449.95 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  12334. 449.95 s [really-safe-money-gen] fromRational (n :% d)
  12335. 449.95 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12336. 449.95 s [really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  12337. 449.95 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  12338. 449.95 s [really-safe-money-gen]
  12339. 449.95 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  12340. 449.95 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
  12341. 449.95 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  12342. 449.95 s [really-safe-money-gen] go !a (c : cs)
  12343. 449.95 s [really-safe-money-gen] | Char.isDigit c = do
  12344. 449.95 s [really-safe-money-gen] _ <- ReadP.get
  12345. 449.96 s [really-safe-money-gen] - let digit = Char.ord c - 48
  12346. 449.96 s [really-safe-money-gen] + let digit = Char.ord c - -48
  12347. 449.96 s [really-safe-money-gen] case f a digit of
  12348. 449.96 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  12349. 449.96 s [really-safe-money-gen] Just a' -> go a' cs
  12350. 449.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  12351. 449.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  12352. 449.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  12353. 449.96 s [really-safe-money-gen]
  12354. 449.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  12355. 449.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  12356. 449.96 s [really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
  12357. 449.96 s [really-safe-money-gen] {-# INLINE step #-}
  12358. 449.96 s [really-safe-money-gen]
  12359. 449.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  12360. 449.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  12361. 449.96 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  12362. 449.96 s [really-safe-money-gen]
  12363. 449.96 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  12364. 449.96 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  12365. 449.96 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  12366. 449.96 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  12367. 449.96 s [really-safe-money-gen]
  12368. 449.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  12369. 449.96 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  12370. 449.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
  12371. 449.96 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  12372. 449.96 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  12373. 449.96 s [really-safe-money-gen]
  12374. 449.96 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  12375. 449.96 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  12376. 449.96 s [really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
  12377. 449.96 s [really-safe-money-gen] {-# INLINE step #-}
  12378. 449.96 s [really-safe-money-gen]
  12379. 449.96 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  12380. 449.96 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
  12381. 449.96 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  12382. 449.96 s [really-safe-money-gen]
  12383. 449.96 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  12384. 449.96 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  12385. 449.97 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  12386. 449.97 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  12387. 449.97 s [really-safe-money-gen]
  12388. 449.97 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  12389. 449.97 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  12390. 449.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  12391. 449.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12392. 449.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12393. 449.97 s [really-safe-money-gen] decimalLiteralP = do
  12394. 449.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12395. 449.97 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12396. 449.97 s [really-safe-money-gen] + isSignChar c = False || c == '+'
  12397. 449.97 s [really-safe-money-gen]
  12398. 449.97 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12399. 449.97 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12400. 449.97 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
  12401. 449.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12402. 449.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12403. 449.97 s [really-safe-money-gen] decimalLiteralP = do
  12404. 449.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12405. 449.97 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12406. 449.97 s [really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
  12407. 449.97 s [really-safe-money-gen]
  12408. 449.97 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12409. 449.97 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12410. 449.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
  12411. 449.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12412. 449.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12413. 449.97 s [really-safe-money-gen] decimalLiteralP = do
  12414. 449.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12415. 449.97 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12416. 449.97 s [really-safe-money-gen] + isSignChar c = True || c == '+'
  12417. 449.97 s [really-safe-money-gen]
  12418. 449.97 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12419. 449.97 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12420. 449.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  12421. 449.97 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12422. 449.97 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12423. 449.97 s [really-safe-money-gen] decimalLiteralP = do
  12424. 449.97 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12425. 449.98 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12426. 449.98 s [really-safe-money-gen] + isSignChar c = c == '-' || True
  12427. 449.98 s [really-safe-money-gen]
  12428. 449.98 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12429. 449.98 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12430. 449.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
  12431. 449.98 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12432. 449.98 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12433. 449.98 s [really-safe-money-gen] decimalLiteralP = do
  12434. 449.98 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12435. 449.98 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12436. 449.98 s [really-safe-money-gen] + isSignChar c = c == '-' || False
  12437. 449.98 s [really-safe-money-gen]
  12438. 449.98 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12439. 449.98 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12440. 449.98 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
  12441. 449.98 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12442. 449.98 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12443. 449.98 s [really-safe-money-gen] decimalLiteralP = do
  12444. 449.98 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12445. 449.98 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12446. 449.98 s [really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
  12447. 449.98 s [really-safe-money-gen]
  12448. 449.98 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12449. 449.98 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12450. 449.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  12451. 449.98 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12452. 449.98 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12453. 449.98 s [really-safe-money-gen] decimalLiteralP = do
  12454. 449.98 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12455. 449.98 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12456. 449.98 s [really-safe-money-gen] + isSignChar c = True
  12457. 449.98 s [really-safe-money-gen]
  12458. 449.98 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12459. 449.98 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12460. 449.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
  12461. 449.98 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12462. 449.98 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12463. 449.98 s [really-safe-money-gen] decimalLiteralP = do
  12464. 449.98 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12465. 449.98 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12466. 449.98 s [really-safe-money-gen] + isSignChar c = False
  12467. 449.98 s [really-safe-money-gen]
  12468. 449.98 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12469. 449.98 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12470. 449.98 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
  12471. 449.98 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  12472. 449.98 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  12473. 449.98 s [really-safe-money-gen] decimalLiteralP = do
  12474. 449.98 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  12475. 449.98 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  12476. 449.98 s [really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
  12477. 449.99 s [really-safe-money-gen]
  12478. 449.99 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12479. 449.99 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12480. 449.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  12481. 449.99 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  12482. 449.99 s [really-safe-money-gen]
  12483. 449.99 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12484. 449.99 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12485. 449.99 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  12486. 449.99 s [really-safe-money-gen] + pure $ Just $ True
  12487. 449.99 s [really-safe-money-gen]
  12488. 449.99 s [really-safe-money-gen] units <- parseDigits step 0
  12489. 449.99 s [really-safe-money-gen]
  12490. 449.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
  12491. 449.99 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  12492. 449.99 s [really-safe-money-gen]
  12493. 449.99 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12494. 449.99 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12495. 449.99 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  12496. 449.99 s [really-safe-money-gen] + pure $ Just $ False
  12497. 449.99 s [really-safe-money-gen]
  12498. 449.99 s [really-safe-money-gen] units <- parseDigits step 0
  12499. 449.99 s [really-safe-money-gen]
  12500. 449.99 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
  12501. 449.99 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  12502. 449.99 s [really-safe-money-gen]
  12503. 449.99 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  12504. 449.99 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12505. 449.99 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  12506. 449.99 s [really-safe-money-gen] + pure $ Just $ not (signChar == '+')
  12507. 449.99 s [really-safe-money-gen]
  12508. 449.99 s [really-safe-money-gen] units <- parseDigits step 0
  12509. 449.99 s [really-safe-money-gen]
  12510. 449.99 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
  12511. 449.99 s [really-safe-money-gen] @@ -122,7 +122,7 @@
  12512. 449.99 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  12513. 449.99 s [really-safe-money-gen] pure $ Just $ signChar == '+'
  12514. 449.99 s [really-safe-money-gen]
  12515. 449.99 s [really-safe-money-gen] - units <- parseDigits step 0
  12516. 449.99 s [really-safe-money-gen] + units <- parseDigits step 1
  12517. 449.99 s [really-safe-money-gen]
  12518. 449.99 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  12519. 449.99 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  12520. 449.99 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
  12521. 449.99 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  12522. 449.99 s [really-safe-money-gen]
  12523. 449.99 s [really-safe-money-gen] units <- parseDigits step 0
  12524. 449.99 s [really-safe-money-gen]
  12525. 449.99 s [really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
  12526. 449.99 s [really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
  12527. 449.99 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  12528. 449.99 s [really-safe-money-gen]
  12529. 449.99 s [really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
  12530. 449.99 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
  12531. 449.99 s [really-safe-money-gen] @@ -127,7 +127,7 @@
  12532. 449.99 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  12533. 449.99 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  12534. 449.99 s [really-safe-money-gen]
  12535. 449.99 s [really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
  12536. 449.99 s [really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
  12537. 449.99 s [really-safe-money-gen]
  12538. 449.99 s [really-safe-money-gen] pure $ DecimalLiteral mSign m e
  12539. 449.99 s [really-safe-money-gen]
  12540. 449.99 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  12541. 449.99 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  12542. 449.99 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  12543. 449.99 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  12544. 449.99 s [really-safe-money-gen] let decimals :: Int
  12545. 449.99 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  12546. 449.99 s [really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  12547. 449.99 s [really-safe-money-gen] in printf "%%0.%df" decimals
  12548. 449.99 s [really-safe-money-gen]
  12549. 449.99 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  12550. 449.99 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  12551. 449.99 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  12552. 449.99 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  12553. 449.99 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  12554. 449.99 s [really-safe-money-gen] let decimals :: Int
  12555. 450.00 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  12556. 451.44 s [really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  12557. 451.44 s [really-safe-money-gen] in printf "%%0.%df" decimals
  12558. 451.44 s [really-safe-money-gen]
  12559. 451.44 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  12560. 451.44 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
  12561. 451.44 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  12562. 451.44 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  12563. 451.44 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  12564. 451.44 s [really-safe-money-gen] let decimals :: Int
  12565. 451.44 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  12566. 451.44 s [really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  12567. 451.44 s [really-safe-money-gen] in printf "%%0.%df" decimals
  12568. 451.44 s [really-safe-money-gen]
  12569. 451.44 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  12570. 451.44 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19
  12571. 451.44 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  12572. 451.44 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  12573. 451.44 s [really-safe-money-gen] smallerChunk :: Amount
  12574. 451.44 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  12575. 451.44 s [really-safe-money-gen] - in if rest == 0
  12576. 451.44 s [really-safe-money-gen] + in if rest == 1
  12577. 451.44 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  12578. 451.44 s [really-safe-money-gen] else
  12579. 451.44 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  12580. 451.44 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  12581. 451.44 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  12582. 451.44 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  12583. 451.44 s [really-safe-money-gen] smallerChunk :: Amount
  12584. 451.44 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  12585. 451.44 s [really-safe-money-gen] - in if rest == 0
  12586. 451.44 s [really-safe-money-gen] + in if True
  12587. 451.44 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  12588. 451.44 s [really-safe-money-gen] else
  12589. 451.44 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  12590. 451.44 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
  12591. 451.44 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  12592. 451.44 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  12593. 451.44 s [really-safe-money-gen] smallerChunk :: Amount
  12594. 451.44 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  12595. 451.44 s [really-safe-money-gen] - in if rest == 0
  12596. 451.44 s [really-safe-money-gen] + in if False
  12597. 451.44 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  12598. 451.44 s [really-safe-money-gen] else
  12599. 451.44 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  12600. 451.45 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19
  12601. 451.45 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  12602. 451.45 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  12603. 451.45 s [really-safe-money-gen] smallerChunk :: Amount
  12604. 451.45 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  12605. 451.45 s [really-safe-money-gen] - in if rest == 0
  12606. 451.45 s [really-safe-money-gen] + in if not (rest == 0)
  12607. 451.45 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  12608. 451.45 s [really-safe-money-gen] else
  12609. 451.45 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  12610. 451.45 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:569:7-29
  12611. 451.45 s [really-safe-money-gen] @@ -566,22 +566,22 @@
  12612. 451.45 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  12613. 451.45 s [really-safe-money-gen] smallerChunk :: Amount
  12614. 451.45 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  12615. 451.45 s [really-safe-money-gen] - in if rest == 0
  12616. 451.45 s [really-safe-money-gen] - then DistributedIntoEqualChunks f smallerChunk
  12617. 451.45 s [really-safe-money-gen] - else
  12618. 451.45 s [really-safe-money-gen] - let -- This 'fromIntegral' is theoretically not safe, but it's
  12619. 451.45 s [really-safe-money-gen] - -- necessarily smaller than f so it will fit.
  12620. 451.45 s [really-safe-money-gen] - numberOfLargerChunks :: Word32
  12621. 451.45 s [really-safe-money-gen] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  12622. 451.45 s [really-safe-money-gen] - numberOfSmallerChunks :: Word32
  12623. 451.45 s [really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
  12624. 451.45 s [really-safe-money-gen] - largerChunk :: Amount
  12625. 451.45 s [really-safe-money-gen] - largerChunk = Amount $ succ smallerChunkSize
  12626. 451.45 s [really-safe-money-gen] - in DistributedIntoUnequalChunks
  12627. 451.45 s [really-safe-money-gen] - numberOfLargerChunks
  12628. 451.45 s [really-safe-money-gen] - largerChunk
  12629. 451.45 s [really-safe-money-gen] - numberOfSmallerChunks
  12630. 451.45 s [really-safe-money-gen] - smallerChunk
  12631. 451.45 s [really-safe-money-gen] + in if rest == 0
  12632. 451.45 s [really-safe-money-gen] + then DistributedIntoEqualChunks f smallerChunk
  12633. 451.45 s [really-safe-money-gen] + else
  12634. 451.45 s [really-safe-money-gen] + let -- This 'fromIntegral' is theoretically not safe, but it's
  12635. 451.45 s [really-safe-money-gen] + -- necessarily smaller than f so it will fit.
  12636. 451.45 s [really-safe-money-gen] + numberOfLargerChunks :: Word32
  12637. 451.45 s [really-safe-money-gen] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
  12638. 451.45 s [really-safe-money-gen] + numberOfSmallerChunks :: Word32
  12639. 451.45 s [really-safe-money-gen] + numberOfSmallerChunks = f - numberOfLargerChunks
  12640. 451.45 s [really-safe-money-gen] + largerChunk :: Amount
  12641. 451.45 s [really-safe-money-gen] + largerChunk = Amount $ succ smallerChunkSize
  12642. 451.45 s [really-safe-money-gen] + in DistributedIntoUnequalChunks
  12643. 451.45 s [really-safe-money-gen] + numberOfLargerChunks
  12644. 451.45 s [really-safe-money-gen] + largerChunk
  12645. 451.45 s [really-safe-money-gen] + numberOfSmallerChunks
  12646. 451.45 s [really-safe-money-gen] + smallerChunk
  12647. 451.45 s [really-safe-money-gen]
  12648. 451.45 s [really-safe-money-gen] -- | The result of 'distribute'
  12649. 451.45 s [really-safe-money-gen] type AmountDistribution = Distribution Amount
  12650. 451.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  12651. 451.45 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  12652. 451.45 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  12653. 451.45 s [really-safe-money-gen] r :: Integer
  12654. 451.45 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  12655. 451.45 s [really-safe-money-gen] - in if r > maxBoundI
  12656. 451.45 s [really-safe-money-gen] + in if True
  12657. 451.45 s [really-safe-money-gen] then Nothing
  12658. 451.45 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12659. 451.45 s [really-safe-money-gen]
  12660. 451.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
  12661. 451.45 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  12662. 451.45 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  12663. 451.45 s [really-safe-money-gen] r :: Integer
  12664. 451.45 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  12665. 451.45 s [really-safe-money-gen] - in if r > maxBoundI
  12666. 451.45 s [really-safe-money-gen] + in if False
  12667. 451.45 s [really-safe-money-gen] then Nothing
  12668. 451.46 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12669. 451.46 s [really-safe-money-gen]
  12670. 451.46 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23
  12671. 451.46 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  12672. 451.46 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  12673. 451.46 s [really-safe-money-gen] r :: Integer
  12674. 451.46 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  12675. 451.46 s [really-safe-money-gen] - in if r > maxBoundI
  12676. 451.46 s [really-safe-money-gen] + in if not (r > maxBoundI)
  12677. 451.46 s [really-safe-money-gen] then Nothing
  12678. 451.46 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12679. 451.46 s [really-safe-money-gen]
  12680. 451.46 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:544:7-66
  12681. 451.46 s [really-safe-money-gen] @@ -541,9 +541,9 @@
  12682. 451.46 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  12683. 451.46 s [really-safe-money-gen] r :: Integer
  12684. 451.46 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  12685. 451.46 s [really-safe-money-gen] - in if r > maxBoundI
  12686. 451.46 s [really-safe-money-gen] - then Nothing
  12687. 451.46 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12688. 451.46 s [really-safe-money-gen] + in if r > maxBoundI
  12689. 451.46 s [really-safe-money-gen] + then Nothing
  12690. 451.46 s [really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12691. 451.46 s [really-safe-money-gen]
  12692. 451.46 s [really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
  12693. 451.46 s [really-safe-money-gen] --
  12694. 451.46 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15
  12695. 451.46 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  12696. 451.46 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  12697. 451.46 s [really-safe-money-gen] r :: Integer
  12698. 451.46 s [really-safe-money-gen] r = i1 - i2
  12699. 451.46 s [really-safe-money-gen] - in if r < 0
  12700. 451.46 s [really-safe-money-gen] + in if r < 1
  12701. 451.46 s [really-safe-money-gen] then Nothing
  12702. 451.46 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12703. 451.46 s [really-safe-money-gen]
  12704. 451.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  12705. 451.46 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  12706. 451.46 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  12707. 451.46 s [really-safe-money-gen] r :: Integer
  12708. 451.46 s [really-safe-money-gen] r = i1 - i2
  12709. 451.46 s [really-safe-money-gen] - in if r < 0
  12710. 451.46 s [really-safe-money-gen] + in if True
  12711. 451.46 s [really-safe-money-gen] then Nothing
  12712. 451.46 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12713. 451.46 s [really-safe-money-gen]
  12714. 451.46 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
  12715. 451.46 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  12716. 451.46 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  12717. 451.46 s [really-safe-money-gen] r :: Integer
  12718. 451.46 s [really-safe-money-gen] r = i1 - i2
  12719. 451.46 s [really-safe-money-gen] - in if r < 0
  12720. 451.46 s [really-safe-money-gen] + in if False
  12721. 451.46 s [really-safe-money-gen] then Nothing
  12722. 451.46 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12723. 451.46 s [really-safe-money-gen]
  12724. 451.46 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15
  12725. 451.46 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  12726. 451.46 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  12727. 451.46 s [really-safe-money-gen] r :: Integer
  12728. 451.46 s [really-safe-money-gen] r = i1 - i2
  12729. 451.46 s [really-safe-money-gen] - in if r < 0
  12730. 451.46 s [really-safe-money-gen] + in if not (r < 0)
  12731. 451.46 s [really-safe-money-gen] then Nothing
  12732. 451.46 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12733. 451.46 s [really-safe-money-gen]
  12734. 451.46 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:518:7-66
  12735. 451.46 s [really-safe-money-gen] @@ -515,9 +515,9 @@
  12736. 451.46 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  12737. 451.46 s [really-safe-money-gen] r :: Integer
  12738. 451.46 s [really-safe-money-gen] r = i1 - i2
  12739. 451.46 s [really-safe-money-gen] - in if r < 0
  12740. 451.46 s [really-safe-money-gen] - then Nothing
  12741. 451.47 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12742. 451.47 s [really-safe-money-gen] + in if r < 0
  12743. 451.47 s [really-safe-money-gen] + then Nothing
  12744. 451.47 s [really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12745. 451.47 s [really-safe-money-gen]
  12746. 451.47 s [really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
  12747. 451.47 s [really-safe-money-gen] --
  12748. 451.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  12749. 451.47 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  12750. 451.47 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  12751. 451.47 s [really-safe-money-gen] r :: Integer
  12752. 451.47 s [really-safe-money-gen] r = i1 + i2
  12753. 451.47 s [really-safe-money-gen] - in if r > maxBoundI
  12754. 451.47 s [really-safe-money-gen] + in if True
  12755. 451.47 s [really-safe-money-gen] then Nothing
  12756. 451.47 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12757. 451.47 s [really-safe-money-gen]
  12758. 451.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
  12759. 451.47 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  12760. 451.47 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  12761. 451.47 s [really-safe-money-gen] r :: Integer
  12762. 451.47 s [really-safe-money-gen] r = i1 + i2
  12763. 451.47 s [really-safe-money-gen] - in if r > maxBoundI
  12764. 451.47 s [really-safe-money-gen] + in if False
  12765. 451.47 s [really-safe-money-gen] then Nothing
  12766. 451.47 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12767. 451.47 s [really-safe-money-gen]
  12768. 451.47 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23
  12769. 451.47 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  12770. 454.47 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  12771. 454.47 s [really-safe-money-gen] r :: Integer
  12772. 454.47 s [really-safe-money-gen] r = i1 + i2
  12773. 454.47 s [really-safe-money-gen] - in if r > maxBoundI
  12774. 454.47 s [really-safe-money-gen] + in if not (r > maxBoundI)
  12775. 454.47 s [really-safe-money-gen] then Nothing
  12776. 454.47 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12777. 454.47 s [really-safe-money-gen]
  12778. 454.47 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:476:7-66
  12779. 454.47 s [really-safe-money-gen] @@ -473,9 +473,9 @@
  12780. 454.47 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  12781. 454.47 s [really-safe-money-gen] r :: Integer
  12782. 454.47 s [really-safe-money-gen] r = i1 + i2
  12783. 454.47 s [really-safe-money-gen] - in if r > maxBoundI
  12784. 454.47 s [really-safe-money-gen] - then Nothing
  12785. 454.47 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12786. 454.47 s [really-safe-money-gen] + in if r > maxBoundI
  12787. 454.47 s [really-safe-money-gen] + then Nothing
  12788. 454.47 s [really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  12789. 454.47 s [really-safe-money-gen]
  12790. 454.47 s [really-safe-money-gen] -- | Add a number of amounts of money together.
  12791. 454.47 s [really-safe-money-gen] --
  12792. 454.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16
  12793. 454.47 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  12794. 454.47 s [really-safe-money-gen] -- Nothing
  12795. 454.47 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  12796. 454.48 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  12797. 454.48 s [really-safe-money-gen] - | isInvalid r = Nothing
  12798. 454.48 s [really-safe-money-gen] + | True = Nothing
  12799. 454.48 s [really-safe-money-gen] | r < 0 = Nothing
  12800. 454.48 s [really-safe-money-gen] | otherwise =
  12801. 454.48 s [really-safe-money-gen] let resultRational :: Rational
  12802. 454.48 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16
  12803. 454.48 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  12804. 454.48 s [really-safe-money-gen] -- Nothing
  12805. 454.48 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  12806. 454.48 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  12807. 454.48 s [really-safe-money-gen] - | isInvalid r = Nothing
  12808. 454.48 s [really-safe-money-gen] + | not (isInvalid r) = Nothing
  12809. 454.48 s [really-safe-money-gen] | r < 0 = Nothing
  12810. 454.48 s [really-safe-money-gen] | otherwise =
  12811. 454.48 s [really-safe-money-gen] let resultRational :: Rational
  12812. 454.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10
  12813. 454.48 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  12814. 454.48 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  12815. 454.48 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  12816. 454.48 s [really-safe-money-gen] | isInvalid r = Nothing
  12817. 454.48 s [really-safe-money-gen] - | r < 0 = Nothing
  12818. 454.48 s [really-safe-money-gen] + | True = Nothing
  12819. 454.48 s [really-safe-money-gen] | otherwise =
  12820. 454.48 s [really-safe-money-gen] let resultRational :: Rational
  12821. 454.48 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  12822. 454.48 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10
  12823. 454.48 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  12824. 454.48 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  12825. 454.48 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  12826. 454.48 s [really-safe-money-gen] | isInvalid r = Nothing
  12827. 454.48 s [really-safe-money-gen] - | r < 0 = Nothing
  12828. 454.48 s [really-safe-money-gen] + | not (r < 0) = Nothing
  12829. 454.48 s [really-safe-money-gen] | otherwise =
  12830. 454.48 s [really-safe-money-gen] let resultRational :: Rational
  12831. 454.48 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  12832. 454.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  12833. 454.48 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  12834. 454.48 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  12835. 454.48 s [really-safe-money-gen] floored :: Natural
  12836. 454.48 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12837. 454.48 s [really-safe-money-gen] - in if ceiled == floored
  12838. 454.48 s [really-safe-money-gen] + in if True
  12839. 454.48 s [really-safe-money-gen] then
  12840. 454.48 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12841. 454.48 s [really-safe-money-gen] then Nothing
  12842. 454.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
  12843. 454.48 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  12844. 454.48 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  12845. 454.48 s [really-safe-money-gen] floored :: Natural
  12846. 454.48 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12847. 454.49 s [really-safe-money-gen] - in if ceiled == floored
  12848. 454.49 s [really-safe-money-gen] + in if False
  12849. 454.49 s [really-safe-money-gen] then
  12850. 454.49 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12851. 454.49 s [really-safe-money-gen] then Nothing
  12852. 454.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31
  12853. 454.49 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  12854. 454.49 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  12855. 454.49 s [really-safe-money-gen] floored :: Natural
  12856. 454.49 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12857. 454.49 s [really-safe-money-gen] - in if ceiled == floored
  12858. 454.49 s [really-safe-money-gen] + in if not (ceiled == floored)
  12859. 454.49 s [really-safe-money-gen] then
  12860. 454.49 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12861. 454.49 s [really-safe-money-gen] then Nothing
  12862. 454.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  12863. 454.49 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  12864. 454.49 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12865. 454.49 s [really-safe-money-gen] in if ceiled == floored
  12866. 454.49 s [really-safe-money-gen] then
  12867. 454.49 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12868. 454.49 s [really-safe-money-gen] + if True
  12869. 454.49 s [really-safe-money-gen] then Nothing
  12870. 454.49 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  12871. 454.49 s [really-safe-money-gen] else Nothing
  12872. 454.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
  12873. 454.49 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  12874. 454.49 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12875. 454.49 s [really-safe-money-gen] in if ceiled == floored
  12876. 454.49 s [really-safe-money-gen] then
  12877. 454.49 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12878. 454.49 s [really-safe-money-gen] + if False
  12879. 454.49 s [really-safe-money-gen] then Nothing
  12880. 454.49 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  12881. 454.49 s [really-safe-money-gen] else Nothing
  12882. 454.49 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83
  12883. 454.49 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  12884. 454.49 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12885. 454.49 s [really-safe-money-gen] in if ceiled == floored
  12886. 454.49 s [really-safe-money-gen] then
  12887. 454.49 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12888. 454.49 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  12889. 454.49 s [really-safe-money-gen] then Nothing
  12890. 454.49 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  12891. 454.49 s [really-safe-money-gen] else Nothing
  12892. 454.49 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10
  12893. 454.49 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  12894. 454.49 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  12895. 454.49 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  12896. 454.49 s [really-safe-money-gen] | isInvalid r = Nothing
  12897. 454.49 s [really-safe-money-gen] - | r < 0 = Nothing
  12898. 454.49 s [really-safe-money-gen] + | r < 1 = Nothing
  12899. 454.49 s [really-safe-money-gen] | otherwise =
  12900. 454.49 s [really-safe-money-gen] let resultRational :: Rational
  12901. 454.49 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  12902. 454.49 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:397:11-25
  12903. 454.49 s [really-safe-money-gen] @@ -394,12 +394,12 @@
  12904. 454.49 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  12905. 454.49 s [really-safe-money-gen] floored :: Natural
  12906. 454.49 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12907. 454.49 s [really-safe-money-gen] - in if ceiled == floored
  12908. 454.49 s [really-safe-money-gen] - then
  12909. 454.49 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12910. 454.49 s [really-safe-money-gen] - then Nothing
  12911. 454.49 s [really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
  12912. 454.49 s [really-safe-money-gen] - else Nothing
  12913. 454.49 s [really-safe-money-gen] + in if ceiled == floored
  12914. 454.49 s [really-safe-money-gen] + then
  12915. 454.49 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12916. 454.49 s [really-safe-money-gen] + then Nothing
  12917. 454.49 s [really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
  12918. 454.49 s [really-safe-money-gen] + else Nothing
  12919. 454.50 s [really-safe-money-gen]
  12920. 454.50 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  12921. 454.50 s [really-safe-money-gen] --
  12922. 454.50 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:399:15-57
  12923. 454.50 s [really-safe-money-gen] @@ -396,9 +396,9 @@
  12924. 454.50 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  12925. 454.50 s [really-safe-money-gen] in if ceiled == floored
  12926. 454.50 s [really-safe-money-gen] then
  12927. 454.50 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12928. 454.50 s [really-safe-money-gen] - then Nothing
  12929. 454.50 s [really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
  12930. 454.50 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  12931. 454.50 s [really-safe-money-gen] + then Nothing
  12932. 454.50 s [really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
  12933. 454.50 s [really-safe-money-gen] else Nothing
  12934. 454.50 s [really-safe-money-gen]
  12935. 454.50 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  12936. 454.50 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
  12937. 454.50 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  12938. 454.50 s [really-safe-money-gen] Double ->
  12939. 454.50 s [really-safe-money-gen] Maybe Amount
  12940. 454.50 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  12941. 454.50 s [really-safe-money-gen] - | d < 0 = Nothing
  12942. 454.50 s [really-safe-money-gen] + | d < 1 = Nothing
  12943. 454.50 s [really-safe-money-gen] | otherwise =
  12944. 454.50 s [really-safe-money-gen] let resultDouble :: Double
  12945. 454.50 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  12946. 454.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16
  12947. 454.50 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  12948. 454.50 s [really-safe-money-gen] in go resultDouble
  12949. 454.50 s [really-safe-money-gen] where
  12950. 454.50 s [really-safe-money-gen] go resultDouble
  12951. 454.50 s [really-safe-money-gen] - | isNaN d = Nothing
  12952. 454.50 s [really-safe-money-gen] + | True = Nothing
  12953. 454.50 s [really-safe-money-gen] | isInfinite d = Nothing
  12954. 454.50 s [really-safe-money-gen] | otherwise =
  12955. 454.50 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  12956. 454.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16
  12957. 454.50 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  12958. 454.50 s [really-safe-money-gen] in go resultDouble
  12959. 454.50 s [really-safe-money-gen] where
  12960. 454.50 s [really-safe-money-gen] go resultDouble
  12961. 454.50 s [really-safe-money-gen] - | isNaN d = Nothing
  12962. 454.50 s [really-safe-money-gen] + | not (isNaN d) = Nothing
  12963. 454.50 s [really-safe-money-gen] | isInfinite d = Nothing
  12964. 454.50 s [really-safe-money-gen] | otherwise =
  12965. 454.50 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  12966. 454.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21
  12967. 454.50 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  12968. 454.50 s [really-safe-money-gen] where
  12969. 454.50 s [really-safe-money-gen] go resultDouble
  12970. 454.50 s [really-safe-money-gen] | isNaN d = Nothing
  12971. 454.50 s [really-safe-money-gen] - | isInfinite d = Nothing
  12972. 454.50 s [really-safe-money-gen] + | True = Nothing
  12973. 454.50 s [really-safe-money-gen] | otherwise =
  12974. 454.50 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  12975. 454.50 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  12976. 454.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21
  12977. 454.50 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  12978. 454.50 s [really-safe-money-gen] where
  12979. 454.50 s [really-safe-money-gen] go resultDouble
  12980. 454.50 s [really-safe-money-gen] | isNaN d = Nothing
  12981. 454.50 s [really-safe-money-gen] - | isInfinite d = Nothing
  12982. 454.50 s [really-safe-money-gen] + | not (isInfinite d) = Nothing
  12983. 454.50 s [really-safe-money-gen] | otherwise =
  12984. 454.50 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  12985. 454.50 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  12986. 454.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10
  12987. 454.50 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  12988. 454.50 s [really-safe-money-gen] Double ->
  12989. 456.87 s [really-safe-money-gen] Maybe Amount
  12990. 456.87 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  12991. 456.87 s [really-safe-money-gen] - | d < 0 = Nothing
  12992. 456.98 s [really-safe-money-gen] + | True = Nothing
  12993. 456.98 s [really-safe-money-gen] | otherwise =
  12994. 456.98 s [really-safe-money-gen] let resultDouble :: Double
  12995. 456.98 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  12996. 456.98 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
  12997. 456.98 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  12998. 456.98 s [really-safe-money-gen] Double ->
  12999. 456.98 s [really-safe-money-gen] Maybe Amount
  13000. 456.98 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  13001. 456.98 s [really-safe-money-gen] - | d < 0 = Nothing
  13002. 456.98 s [really-safe-money-gen] + | not (d < 0) = Nothing
  13003. 456.98 s [really-safe-money-gen] | otherwise =
  13004. 456.98 s [really-safe-money-gen] let resultDouble :: Double
  13005. 456.98 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  13006. 456.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  13007. 456.98 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  13008. 456.98 s [really-safe-money-gen] | otherwise =
  13009. 456.98 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13010. 456.98 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13011. 456.98 s [really-safe-money-gen] - if exponent resultDouble > 65
  13012. 456.98 s [really-safe-money-gen] + if exponent resultDouble > 0
  13013. 456.98 s [really-safe-money-gen] then Nothing
  13014. 456.98 s [really-safe-money-gen] else
  13015. 456.98 s [really-safe-money-gen] let ceiled :: Natural
  13016. 456.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  13017. 456.98 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  13018. 456.98 s [really-safe-money-gen] | otherwise =
  13019. 456.98 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13020. 456.98 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13021. 456.98 s [really-safe-money-gen] - if exponent resultDouble > 65
  13022. 456.98 s [really-safe-money-gen] + if exponent resultDouble > 1
  13023. 456.98 s [really-safe-money-gen] then Nothing
  13024. 456.98 s [really-safe-money-gen] else
  13025. 456.98 s [really-safe-money-gen] let ceiled :: Natural
  13026. 456.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
  13027. 456.98 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  13028. 456.99 s [really-safe-money-gen] | otherwise =
  13029. 456.99 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13030. 456.99 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13031. 456.99 s [really-safe-money-gen] - if exponent resultDouble > 65
  13032. 456.99 s [really-safe-money-gen] + if exponent resultDouble > -65
  13033. 456.99 s [really-safe-money-gen] then Nothing
  13034. 456.99 s [really-safe-money-gen] else
  13035. 456.99 s [really-safe-money-gen] let ceiled :: Natural
  13036. 456.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  13037. 456.99 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  13038. 456.99 s [really-safe-money-gen] | otherwise =
  13039. 456.99 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13040. 456.99 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13041. 456.99 s [really-safe-money-gen] - if exponent resultDouble > 65
  13042. 456.99 s [really-safe-money-gen] + if True
  13043. 456.99 s [really-safe-money-gen] then Nothing
  13044. 456.99 s [really-safe-money-gen] else
  13045. 456.99 s [really-safe-money-gen] let ceiled :: Natural
  13046. 456.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
  13047. 456.99 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  13048. 456.99 s [really-safe-money-gen] | otherwise =
  13049. 456.99 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13050. 456.99 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13051. 456.99 s [really-safe-money-gen] - if exponent resultDouble > 65
  13052. 456.99 s [really-safe-money-gen] + if False
  13053. 456.99 s [really-safe-money-gen] then Nothing
  13054. 456.99 s [really-safe-money-gen] else
  13055. 456.99 s [really-safe-money-gen] let ceiled :: Natural
  13056. 456.99 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40
  13057. 456.99 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  13058. 456.99 s [really-safe-money-gen] | otherwise =
  13059. 456.99 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13060. 456.99 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13061. 456.99 s [really-safe-money-gen] - if exponent resultDouble > 65
  13062. 456.99 s [really-safe-money-gen] + if not (exponent resultDouble > 65)
  13063. 456.99 s [really-safe-money-gen] then Nothing
  13064. 456.99 s [really-safe-money-gen] else
  13065. 456.99 s [really-safe-money-gen] let ceiled :: Natural
  13066. 456.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  13067. 456.99 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  13068. 456.99 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  13069. 456.99 s [really-safe-money-gen] floored :: Natural
  13070. 456.99 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13071. 456.99 s [really-safe-money-gen] - in if ceiled == floored
  13072. 456.99 s [really-safe-money-gen] + in if False
  13073. 456.99 s [really-safe-money-gen] then
  13074. 456.99 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13075. 456.99 s [really-safe-money-gen] then Nothing
  13076. 456.99 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
  13077. 456.99 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  13078. 456.99 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  13079. 456.99 s [really-safe-money-gen] floored :: Natural
  13080. 456.99 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13081. 456.99 s [really-safe-money-gen] - in if ceiled == floored
  13082. 456.99 s [really-safe-money-gen] + in if not (ceiled == floored)
  13083. 456.99 s [really-safe-money-gen] then
  13084. 456.99 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13085. 456.99 s [really-safe-money-gen] then Nothing
  13086. 456.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
  13087. 456.99 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  13088. 456.99 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  13089. 456.99 s [really-safe-money-gen] floored :: Natural
  13090. 456.99 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13091. 456.99 s [really-safe-money-gen] - in if ceiled == floored
  13092. 456.99 s [really-safe-money-gen] + in if True
  13093. 456.99 s [really-safe-money-gen] then
  13094. 456.99 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13095. 456.99 s [really-safe-money-gen] then Nothing
  13096. 456.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  13097. 456.99 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  13098. 456.99 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13099. 456.99 s [really-safe-money-gen] in if ceiled == floored
  13100. 456.99 s [really-safe-money-gen] then
  13101. 456.99 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13102. 457.00 s [really-safe-money-gen] + if True
  13103. 457.00 s [really-safe-money-gen] then Nothing
  13104. 457.00 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  13105. 457.00 s [really-safe-money-gen] else Nothing
  13106. 457.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
  13107. 457.00 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  13108. 457.00 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13109. 457.00 s [really-safe-money-gen] in if ceiled == floored
  13110. 457.00 s [really-safe-money-gen] then
  13111. 457.00 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13112. 457.00 s [really-safe-money-gen] + if False
  13113. 457.00 s [really-safe-money-gen] then Nothing
  13114. 457.00 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  13115. 457.00 s [really-safe-money-gen] else Nothing
  13116. 457.00 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
  13117. 457.00 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  13118. 457.00 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13119. 457.00 s [really-safe-money-gen] in if ceiled == floored
  13120. 457.00 s [really-safe-money-gen] then
  13121. 457.00 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13122. 457.00 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  13123. 457.00 s [really-safe-money-gen] then Nothing
  13124. 457.00 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  13125. 457.00 s [really-safe-money-gen] else Nothing
  13126. 457.00 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:341:23-65
  13127. 457.00 s [really-safe-money-gen] @@ -338,9 +338,9 @@
  13128. 457.00 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13129. 457.00 s [really-safe-money-gen] in if ceiled == floored
  13130. 457.00 s [really-safe-money-gen] then
  13131. 457.00 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13132. 457.00 s [really-safe-money-gen] - then Nothing
  13133. 457.00 s [really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
  13134. 457.00 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13135. 457.00 s [really-safe-money-gen] + then Nothing
  13136. 457.00 s [really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
  13137. 457.00 s [really-safe-money-gen] else Nothing
  13138. 457.00 s [really-safe-money-gen]
  13139. 457.00 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  13140. 457.00 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:339:19-33
  13141. 457.00 s [really-safe-money-gen] @@ -336,12 +336,12 @@
  13142. 457.00 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  13143. 457.00 s [really-safe-money-gen] floored :: Natural
  13144. 457.00 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  13145. 457.00 s [really-safe-money-gen] - in if ceiled == floored
  13146. 457.00 s [really-safe-money-gen] - then
  13147. 457.00 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13148. 457.00 s [really-safe-money-gen] - then Nothing
  13149. 457.00 s [really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
  13150. 457.00 s [really-safe-money-gen] - else Nothing
  13151. 457.00 s [really-safe-money-gen] + in if ceiled == floored
  13152. 457.00 s [really-safe-money-gen] + then
  13153. 457.00 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13154. 457.00 s [really-safe-money-gen] + then Nothing
  13155. 457.00 s [really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
  13156. 457.00 s [really-safe-money-gen] + else Nothing
  13157. 457.00 s [really-safe-money-gen]
  13158. 457.00 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  13159. 457.00 s [really-safe-money-gen] --
  13160. 457.00 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:332:11-33
  13161. 457.00 s [really-safe-money-gen] @@ -329,19 +329,19 @@
  13162. 457.00 s [really-safe-money-gen] | otherwise =
  13163. 457.00 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  13164. 457.00 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  13165. 457.00 s [really-safe-money-gen] - if exponent resultDouble > 65
  13166. 457.00 s [really-safe-money-gen] - then Nothing
  13167. 457.00 s [really-safe-money-gen] - else
  13168. 457.00 s [really-safe-money-gen] - let ceiled :: Natural
  13169. 457.00 s [really-safe-money-gen] - ceiled = (ceiling :: Double -> Natural) resultDouble
  13170. 457.00 s [really-safe-money-gen] - floored :: Natural
  13171. 457.00 s [really-safe-money-gen] - floored = (floor :: Double -> Natural) resultDouble
  13172. 457.00 s [really-safe-money-gen] - in if ceiled == floored
  13173. 457.00 s [really-safe-money-gen] - then
  13174. 457.00 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13175. 458.71 s [really-safe-money-gen] - then Nothing
  13176. 458.71 s [really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
  13177. 458.71 s [really-safe-money-gen] - else Nothing
  13178. 458.71 s [really-safe-money-gen] + if exponent resultDouble > 65
  13179. 458.71 s [really-safe-money-gen] + then Nothing
  13180. 458.71 s [really-safe-money-gen] + else
  13181. 458.71 s [really-safe-money-gen] + let ceiled :: Natural
  13182. 458.71 s [really-safe-money-gen] + ceiled = (ceiling :: Double -> Natural) resultDouble
  13183. 458.71 s [really-safe-money-gen] + floored :: Natural
  13184. 458.71 s [really-safe-money-gen] + floored = (floor :: Double -> Natural) resultDouble
  13185. 458.71 s [really-safe-money-gen] + in if ceiled == floored
  13186. 458.71 s [really-safe-money-gen] + then
  13187. 458.71 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  13188. 458.71 s [really-safe-money-gen] + then Nothing
  13189. 458.71 s [really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
  13190. 458.71 s [really-safe-money-gen] + else Nothing
  13191. 458.71 s [really-safe-money-gen]
  13192. 458.71 s [really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
  13193. 458.71 s [really-safe-money-gen] --
  13194. 458.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
  13195. 458.71 s [really-safe-money-gen] @@ -287,7 +287,7 @@
  13196. 458.71 s [really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  13197. 458.71 s [really-safe-money-gen] -- 1 % 100
  13198. 458.71 s [really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  13199. 458.71 s [really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  13200. 458.71 s [really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  13201. 458.71 s [really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
  13202. 458.71 s [really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  13203. 458.71 s [really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  13204. 458.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
  13205. 458.71 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  13206. 458.71 s [really-safe-money-gen] let maxBoundI :: Integer
  13207. 458.71 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  13208. 458.71 s [really-safe-money-gen] r :: Integer
  13209. 458.71 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  13210. 458.71 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  13211. 458.71 s [really-safe-money-gen] in if r > maxBoundI
  13212. 458.71 s [really-safe-money-gen] then Nothing
  13213. 458.71 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  13214. 458.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  13215. 458.71 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  13216. 458.71 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  13217. 458.71 s [really-safe-money-gen] r :: Integer
  13218. 458.71 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  13219. 458.71 s [really-safe-money-gen] - in if r > maxBoundI
  13220. 458.71 s [really-safe-money-gen] + in if False
  13221. 458.71 s [really-safe-money-gen] then Nothing
  13222. 458.72 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  13223. 458.72 s [really-safe-money-gen]
  13224. 458.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
  13225. 458.72 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  13226. 458.72 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  13227. 458.72 s [really-safe-money-gen] r :: Integer
  13228. 458.72 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  13229. 458.72 s [really-safe-money-gen] - in if r > maxBoundI
  13230. 458.72 s [really-safe-money-gen] + in if not (r > maxBoundI)
  13231. 458.72 s [really-safe-money-gen] then Nothing
  13232. 458.72 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  13233. 458.72 s [really-safe-money-gen]
  13234. 458.72 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:495:7-66
  13235. 458.72 s [really-safe-money-gen] @@ -492,9 +492,9 @@
  13236. 458.72 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  13237. 458.72 s [really-safe-money-gen] r :: Integer
  13238. 458.72 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  13239. 458.72 s [really-safe-money-gen] - in if r > maxBoundI
  13240. 458.72 s [really-safe-money-gen] - then Nothing
  13241. 458.72 s [really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
  13242. 458.72 s [really-safe-money-gen] + in if r > maxBoundI
  13243. 458.72 s [really-safe-money-gen] + then Nothing
  13244. 458.72 s [really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
  13245. 458.72 s [really-safe-money-gen]
  13246. 458.72 s [really-safe-money-gen] -- | Add two amounts of money.
  13247. 458.72 s [really-safe-money-gen] --
  13248. 458.72 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
  13249. 458.72 s [really-safe-money-gen] @@ -247,7 +247,7 @@
  13250. 458.72 s [really-safe-money-gen] -- >>> zero
  13251. 458.72 s [really-safe-money-gen] -- Amount 0
  13252. 458.72 s [really-safe-money-gen] zero :: Amount
  13253. 458.72 s [really-safe-money-gen] -zero = Amount 0
  13254. 458.72 s [really-safe-money-gen] +zero = Amount 1
  13255. 458.72 s [really-safe-money-gen]
  13256. 458.72 s [really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
  13257. 458.72 s [really-safe-money-gen] --
  13258. 458.72 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
  13259. 458.72 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  13260. 458.72 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  13261. 458.72 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  13262. 458.72 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  13263. 458.72 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  13264. 458.72 s [really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
  13265. 458.72 s [really-safe-money-gen] fraction r (Amount a) f =
  13266. 458.72 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  13267. 458.72 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  13268. 458.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  13269. 458.72 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  13270. 458.72 s [really-safe-money-gen] maxBoundN :: Natural
  13271. 458.72 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  13272. 458.72 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  13273. 458.72 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  13274. 458.72 s [really-safe-money-gen] + in ( if True
  13275. 458.72 s [really-safe-money-gen] then Nothing
  13276. 458.72 s [really-safe-money-gen] else Just result,
  13277. 458.72 s [really-safe-money-gen] actualRate
  13278. 458.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
  13279. 458.72 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  13280. 458.72 s [really-safe-money-gen] maxBoundN :: Natural
  13281. 458.72 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  13282. 458.72 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  13283. 458.72 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  13284. 458.72 s [really-safe-money-gen] + in ( if False
  13285. 458.72 s [really-safe-money-gen] then Nothing
  13286. 458.72 s [really-safe-money-gen] else Just result,
  13287. 458.72 s [really-safe-money-gen] actualRate
  13288. 458.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
  13289. 458.72 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  13290. 458.72 s [really-safe-money-gen] maxBoundN :: Natural
  13291. 458.72 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  13292. 458.72 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  13293. 458.72 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  13294. 458.72 s [really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
  13295. 458.72 s [really-safe-money-gen] then Nothing
  13296. 458.72 s [really-safe-money-gen] else Just result,
  13297. 458.72 s [really-safe-money-gen] actualRate
  13298. 458.72 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:681:9-27
  13299. 458.72 s [really-safe-money-gen] @@ -678,9 +678,9 @@
  13300. 458.72 s [really-safe-money-gen] maxBoundN :: Natural
  13301. 458.72 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  13302. 458.72 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  13303. 458.72 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  13304. 458.72 s [really-safe-money-gen] - then Nothing
  13305. 458.72 s [really-safe-money-gen] - else Just result,
  13306. 458.72 s [really-safe-money-gen] + in ( if roundedResult > maxBoundN
  13307. 458.72 s [really-safe-money-gen] + then Nothing
  13308. 458.72 s [really-safe-money-gen] + else Just result,
  13309. 458.72 s [really-safe-money-gen] actualRate
  13310. 458.72 s [really-safe-money-gen] )
  13311. 458.72 s [really-safe-money-gen]
  13312. 458.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  13313. 458.72 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  13314. 458.72 s [really-safe-money-gen]
  13315. 458.72 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  13316. 458.72 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  13317. 458.72 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  13318. 458.72 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  13319. 458.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
  13320. 458.72 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  13321. 458.72 s [really-safe-money-gen]
  13322. 458.72 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  13323. 458.72 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  13324. 458.72 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  13325. 458.72 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  13326. 458.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
  13327. 458.72 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  13328. 458.72 s [really-safe-money-gen]
  13329. 458.72 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  13330. 458.72 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  13331. 458.72 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  13332. 458.72 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  13333. 458.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  13334. 458.72 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  13335. 458.72 s [really-safe-money-gen] case ad of
  13336. 458.72 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  13337. 458.72 s [really-safe-money-gen] declare "The larger chunks are larger" $
  13338. 458.72 s [really-safe-money-gen] - a1 > a2
  13339. 458.73 s [really-safe-money-gen] + True
  13340. 458.73 s [really-safe-money-gen] _ -> valid
  13341. 458.73 s [really-safe-money-gen] ]
  13342. 458.73 s [really-safe-money-gen]
  13343. 458.73 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
  13344. 458.73 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  13345. 458.73 s [really-safe-money-gen] case ad of
  13346. 458.73 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  13347. 458.73 s [really-safe-money-gen] declare "The larger chunks are larger" $
  13348. 458.73 s [really-safe-money-gen] - a1 > a2
  13349. 458.73 s [really-safe-money-gen] + False
  13350. 458.73 s [really-safe-money-gen] _ -> valid
  13351. 458.73 s [really-safe-money-gen] ]
  13352. 458.73 s [really-safe-money-gen]
  13353. 458.73 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
  13354. 458.73 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  13355. 458.73 s [really-safe-money-gen] case ad of
  13356. 458.73 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  13357. 458.73 s [really-safe-money-gen] declare "The larger chunks are larger" $
  13358. 458.73 s [really-safe-money-gen] - a1 > a2
  13359. 458.73 s [really-safe-money-gen] + not (a1 > a2)
  13360. 458.73 s [really-safe-money-gen] _ -> valid
  13361. 458.73 s [really-safe-money-gen] ]
  13362. 458.73 s [really-safe-money-gen]
  13363. 458.73 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  13364. 458.73 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  13365. 458.73 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  13366. 458.73 s [really-safe-money-gen] validate ad =
  13367. 458.73 s [really-safe-money-gen] mconcat
  13368. 458.73 s [really-safe-money-gen] - [ genericValidate ad,
  13369. 458.73 s [really-safe-money-gen] - case ad of
  13370. 458.73 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  13371. 458.73 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  13372. 458.73 s [really-safe-money-gen] - a1 > a2
  13373. 458.73 s [really-safe-money-gen] - _ -> valid
  13374. 458.73 s [really-safe-money-gen] - ]
  13375. 458.73 s [really-safe-money-gen] + []
  13376. 458.73 s [really-safe-money-gen]
  13377. 458.73 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  13378. 458.73 s [really-safe-money-gen]
  13379. 458.73 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
  13380. 458.73 s [really-safe-money-gen] @@ -600,13 +600,13 @@
  13381. 458.73 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  13382. 458.73 s [really-safe-money-gen] validate ad =
  13383. 458.73 s [really-safe-money-gen] mconcat
  13384. 458.73 s [really-safe-money-gen] - [ genericValidate ad,
  13385. 458.73 s [really-safe-money-gen] - case ad of
  13386. 458.73 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  13387. 458.73 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  13388. 458.73 s [really-safe-money-gen] - a1 > a2
  13389. 458.73 s [really-safe-money-gen] - _ -> valid
  13390. 458.73 s [really-safe-money-gen] - ]
  13391. 461.71 s [really-safe-money-gen] + [ genericValidate ad,
  13392. 461.71 s [really-safe-money-gen] + case ad of
  13393. 461.71 s [really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
  13394. 461.71 s [really-safe-money-gen] + declare "The larger chunks are larger" $
  13395. 461.71 s [really-safe-money-gen] + a1 > a2
  13396. 461.71 s [really-safe-money-gen] + _ -> valid
  13397. 461.71 s [really-safe-money-gen] + ]
  13398. 461.71 s [really-safe-money-gen]
  13399. 461.71 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  13400. 461.71 s [really-safe-money-gen]
  13401. 461.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
  13402. 461.71 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  13403. 461.72 s [really-safe-money-gen] fromDecimalLiteral dl = do
  13404. 461.72 s [really-safe-money-gen] irat <-
  13405. 461.72 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  13406. 461.72 s [really-safe-money-gen] - in if numerator r == 0
  13407. 461.72 s [really-safe-money-gen] + in if numerator r == 1
  13408. 461.72 s [really-safe-money-gen] then Nothing
  13409. 461.72 s [really-safe-money-gen] else pure r
  13410. 461.72 s [really-safe-money-gen]
  13411. 461.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  13412. 461.72 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  13413. 461.72 s [really-safe-money-gen] fromDecimalLiteral dl = do
  13414. 461.72 s [really-safe-money-gen] irat <-
  13415. 461.72 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  13416. 461.72 s [really-safe-money-gen] - in if numerator r == 0
  13417. 461.72 s [really-safe-money-gen] + in if True
  13418. 461.72 s [really-safe-money-gen] then Nothing
  13419. 461.72 s [really-safe-money-gen] else pure r
  13420. 461.72 s [really-safe-money-gen]
  13421. 461.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
  13422. 461.72 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  13423. 461.72 s [really-safe-money-gen] fromDecimalLiteral dl = do
  13424. 461.72 s [really-safe-money-gen] irat <-
  13425. 461.72 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  13426. 461.72 s [really-safe-money-gen] - in if numerator r == 0
  13427. 461.72 s [really-safe-money-gen] + in if False
  13428. 461.72 s [really-safe-money-gen] then Nothing
  13429. 461.72 s [really-safe-money-gen] else pure r
  13430. 461.72 s [really-safe-money-gen]
  13431. 461.72 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  13432. 461.72 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  13433. 461.72 s [really-safe-money-gen] else pure r
  13434. 461.72 s [really-safe-money-gen]
  13435. 461.72 s [really-safe-money-gen] rat <-
  13436. 461.72 s [really-safe-money-gen] - let r = 1 / irat
  13437. 461.72 s [really-safe-money-gen] + let r = 0 / irat
  13438. 461.72 s [really-safe-money-gen] in if r < 0
  13439. 461.72 s [really-safe-money-gen] then Nothing
  13440. 461.72 s [really-safe-money-gen] else Just r
  13441. 461.72 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
  13442. 461.72 s [really-safe-money-gen] @@ -84,9 +84,9 @@
  13443. 461.72 s [really-safe-money-gen] fromDecimalLiteral dl = do
  13444. 461.72 s [really-safe-money-gen] irat <-
  13445. 461.72 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  13446. 461.72 s [really-safe-money-gen] - in if numerator r == 0
  13447. 461.72 s [really-safe-money-gen] - then Nothing
  13448. 461.72 s [really-safe-money-gen] - else pure r
  13449. 461.72 s [really-safe-money-gen] + in if numerator r == 0
  13450. 461.72 s [really-safe-money-gen] + then Nothing
  13451. 461.72 s [really-safe-money-gen] + else pure r
  13452. 461.72 s [really-safe-money-gen]
  13453. 461.72 s [really-safe-money-gen] rat <-
  13454. 461.72 s [really-safe-money-gen] let r = 1 / irat
  13455. 461.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
  13456. 461.72 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  13457. 461.72 s [really-safe-money-gen] fromDecimalLiteral dl = do
  13458. 461.72 s [really-safe-money-gen] irat <-
  13459. 461.72 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  13460. 461.72 s [really-safe-money-gen] - in if numerator r == 0
  13461. 461.72 s [really-safe-money-gen] + in if not (numerator r == 0)
  13462. 461.72 s [really-safe-money-gen] then Nothing
  13463. 461.72 s [really-safe-money-gen] else pure r
  13464. 461.72 s [really-safe-money-gen]
  13465. 461.72 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
  13466. 461.72 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  13467. 461.72 s [really-safe-money-gen]
  13468. 461.72 s [really-safe-money-gen] rat <-
  13469. 461.73 s [really-safe-money-gen] let r = 1 / irat
  13470. 461.73 s [really-safe-money-gen] - in if r < 0
  13471. 461.73 s [really-safe-money-gen] + in if r < 1
  13472. 461.73 s [really-safe-money-gen] then Nothing
  13473. 461.73 s [really-safe-money-gen] else Just r
  13474. 461.73 s [really-safe-money-gen]
  13475. 461.73 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  13476. 461.73 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  13477. 461.73 s [really-safe-money-gen]
  13478. 461.73 s [really-safe-money-gen] rat <-
  13479. 461.73 s [really-safe-money-gen] let r = 1 / irat
  13480. 461.73 s [really-safe-money-gen] - in if r < 0
  13481. 461.73 s [really-safe-money-gen] + in if True
  13482. 461.73 s [really-safe-money-gen] then Nothing
  13483. 461.73 s [really-safe-money-gen] else Just r
  13484. 461.73 s [really-safe-money-gen]
  13485. 461.73 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
  13486. 461.73 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  13487. 461.73 s [really-safe-money-gen]
  13488. 461.73 s [really-safe-money-gen] rat <-
  13489. 461.73 s [really-safe-money-gen] let r = 1 / irat
  13490. 461.73 s [really-safe-money-gen] - in if r < 0
  13491. 461.73 s [really-safe-money-gen] + in if not (r < 0)
  13492. 461.73 s [really-safe-money-gen] then Nothing
  13493. 461.73 s [really-safe-money-gen] else Just r
  13494. 461.73 s [really-safe-money-gen]
  13495. 461.73 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
  13496. 461.73 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  13497. 461.73 s [really-safe-money-gen]
  13498. 461.73 s [really-safe-money-gen] rat <-
  13499. 461.73 s [really-safe-money-gen] let r = 1 / irat
  13500. 461.73 s [really-safe-money-gen] - in if r < 0
  13501. 461.73 s [really-safe-money-gen] + in if False
  13502. 461.73 s [really-safe-money-gen] then Nothing
  13503. 461.73 s [really-safe-money-gen] else Just r
  13504. 461.73 s [really-safe-money-gen]
  13505. 461.73 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
  13506. 461.73 s [really-safe-money-gen] @@ -90,9 +90,9 @@
  13507. 461.73 s [really-safe-money-gen]
  13508. 461.73 s [really-safe-money-gen] rat <-
  13509. 461.73 s [really-safe-money-gen] let r = 1 / irat
  13510. 461.73 s [really-safe-money-gen] - in if r < 0
  13511. 461.73 s [really-safe-money-gen] - then Nothing
  13512. 461.73 s [really-safe-money-gen] - else Just r
  13513. 461.73 s [really-safe-money-gen] + in if r < 0
  13514. 461.73 s [really-safe-money-gen] + then Nothing
  13515. 461.73 s [really-safe-money-gen] + else Just r
  13516. 461.73 s [really-safe-money-gen]
  13517. 461.73 s [really-safe-money-gen] fac <-
  13518. 461.73 s [really-safe-money-gen] if denominator rat == 1
  13519. 461.73 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  13520. 461.73 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  13521. 461.73 s [really-safe-money-gen] else Just r
  13522. 461.73 s [really-safe-money-gen]
  13523. 461.73 s [really-safe-money-gen] fac <-
  13524. 461.73 s [really-safe-money-gen] - if denominator rat == 1
  13525. 461.73 s [really-safe-money-gen] + if denominator rat == 0
  13526. 461.73 s [really-safe-money-gen] then Just (numerator rat)
  13527. 461.73 s [really-safe-money-gen] else Nothing
  13528. 461.73 s [really-safe-money-gen]
  13529. 461.73 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
  13530. 461.73 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  13531. 461.73 s [really-safe-money-gen] else Just r
  13532. 461.73 s [really-safe-money-gen]
  13533. 461.73 s [really-safe-money-gen] fac <-
  13534. 461.73 s [really-safe-money-gen] - if denominator rat == 1
  13535. 461.73 s [really-safe-money-gen] + if denominator rat == -1
  13536. 461.73 s [really-safe-money-gen] then Just (numerator rat)
  13537. 461.73 s [really-safe-money-gen] else Nothing
  13538. 461.73 s [really-safe-money-gen]
  13539. 461.73 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  13540. 461.73 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  13541. 461.73 s [really-safe-money-gen] else Just r
  13542. 461.73 s [really-safe-money-gen]
  13543. 461.73 s [really-safe-money-gen] fac <-
  13544. 461.73 s [really-safe-money-gen] - if denominator rat == 1
  13545. 461.73 s [really-safe-money-gen] + if False
  13546. 461.73 s [really-safe-money-gen] then Just (numerator rat)
  13547. 461.73 s [really-safe-money-gen] else Nothing
  13548. 461.73 s [really-safe-money-gen]
  13549. 461.73 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
  13550. 461.73 s [really-safe-money-gen] @@ -95,9 +95,9 @@
  13551. 461.73 s [really-safe-money-gen] else Just r
  13552. 461.73 s [really-safe-money-gen]
  13553. 461.73 s [really-safe-money-gen] fac <-
  13554. 461.73 s [really-safe-money-gen] - if denominator rat == 1
  13555. 461.73 s [really-safe-money-gen] - then Just (numerator rat)
  13556. 461.73 s [really-safe-money-gen] - else Nothing
  13557. 461.73 s [really-safe-money-gen] + if denominator rat == 1
  13558. 461.73 s [really-safe-money-gen] + then Just (numerator rat)
  13559. 461.73 s [really-safe-money-gen] + else Nothing
  13560. 461.73 s [really-safe-money-gen]
  13561. 461.73 s [really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
  13562. 461.73 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  13563. 461.73 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
  13564. 461.73 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  13565. 461.74 s [really-safe-money-gen] else Just r
  13566. 461.74 s [really-safe-money-gen]
  13567. 461.74 s [really-safe-money-gen] fac <-
  13568. 461.74 s [really-safe-money-gen] - if denominator rat == 1
  13569. 461.74 s [really-safe-money-gen] + if not (denominator rat == 1)
  13570. 461.74 s [really-safe-money-gen] then Just (numerator rat)
  13571. 461.74 s [really-safe-money-gen] else Nothing
  13572. 461.74 s [really-safe-money-gen]
  13573. 461.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  13574. 461.74 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  13575. 461.74 s [really-safe-money-gen] then Just (numerator rat)
  13576. 461.74 s [really-safe-money-gen] else Nothing
  13577. 461.74 s [really-safe-money-gen]
  13578. 461.74 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  13579. 461.74 s [really-safe-money-gen] + if True
  13580. 461.74 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  13581. 461.74 s [really-safe-money-gen] else Nothing
  13582. 461.74 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
  13583. 461.74 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  13584. 461.74 s [really-safe-money-gen] else pure r
  13585. 461.74 s [really-safe-money-gen]
  13586. 461.74 s [really-safe-money-gen] rat <-
  13587. 461.74 s [really-safe-money-gen] - let r = 1 / irat
  13588. 461.74 s [really-safe-money-gen] + let r = -1 / irat
  13589. 461.74 s [really-safe-money-gen] in if r < 0
  13590. 461.74 s [really-safe-money-gen] then Nothing
  13591. 461.74 s [really-safe-money-gen] else Just r
  13592. 461.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
  13593. 461.74 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  13594. 461.74 s [really-safe-money-gen] then Just (numerator rat)
  13595. 461.74 s [really-safe-money-gen] else Nothing
  13596. 461.74 s [really-safe-money-gen]
  13597. 461.74 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  13598. 461.74 s [really-safe-money-gen] + if False
  13599. 461.74 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  13600. 461.74 s [really-safe-money-gen] else Nothing
  13601. 461.74 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
  13602. 461.74 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  13603. 461.74 s [really-safe-money-gen] then Just (numerator rat)
  13604. 461.74 s [really-safe-money-gen] else Nothing
  13605. 461.74 s [really-safe-money-gen]
  13606. 461.74 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  13607. 461.74 s [really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
  13608. 461.74 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  13609. 461.74 s [really-safe-money-gen] else Nothing
  13610. 461.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
  13611. 461.74 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  13612. 461.74 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  13613. 461.74 s [really-safe-money-gen] r :: Integer
  13614. 461.74 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  13615. 461.74 s [really-safe-money-gen] - in if r > maxBoundI
  13616. 461.74 s [really-safe-money-gen] + in if True
  13617. 461.74 s [really-safe-money-gen] then Nothing
  13618. 461.74 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  13619. 461.74 s [really-safe-money-gen]
  13620. 461.74 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  13621. 461.74 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  13622. 461.74 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  13623. 461.74 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  13624. 461.74 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  13625. 461.74 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  13626. 461.74 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  13627. 461.74 s [really-safe-money-gen]
  13628. 461.74 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  13629. 461.74 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  13630. 461.74 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
  13631. 461.74 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  13632. 461.74 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  13633. 461.74 s [really-safe-money-gen] mconcat
  13634. 461.74 s [really-safe-money-gen] [ genericValidate qf,
  13635. 461.74 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  13636. 461.74 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
  13637. 461.74 s [really-safe-money-gen] ]
  13638. 461.74 s [really-safe-money-gen]
  13639. 461.74 s [really-safe-money-gen] instance NFData QuantisationFactor
  13640. 461.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  13641. 461.74 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  13642. 461.74 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  13643. 461.74 s [really-safe-money-gen] mconcat
  13644. 461.74 s [really-safe-money-gen] [ genericValidate qf,
  13645. 461.74 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  13646. 461.74 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  13647. 461.74 s [really-safe-money-gen] ]
  13648. 461.74 s [really-safe-money-gen]
  13649. 461.74 s [really-safe-money-gen] instance NFData QuantisationFactor
  13650. 461.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
  13651. 461.74 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  13652. 461.74 s [really-safe-money-gen] else Just r
  13653. 461.74 s [really-safe-money-gen]
  13654. 461.74 s [really-safe-money-gen] fac <-
  13655. 461.74 s [really-safe-money-gen] - if denominator rat == 1
  13656. 461.74 s [really-safe-money-gen] + if True
  13657. 461.74 s [really-safe-money-gen] then Just (numerator rat)
  13658. 461.74 s [really-safe-money-gen] else Nothing
  13659. 461.74 s [really-safe-money-gen]
  13660. 461.74 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
  13661. 461.74 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  13662. 461.74 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  13663. 461.74 s [really-safe-money-gen] mconcat
  13664. 461.75 s [really-safe-money-gen] [ genericValidate qf,
  13665. 461.75 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  13666. 461.75 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
  13667. 461.75 s [really-safe-money-gen] ]
  13668. 461.75 s [really-safe-money-gen]
  13669. 461.75 s [really-safe-money-gen] instance NFData QuantisationFactor
  13670. 461.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  13671. 461.75 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  13672. 461.75 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  13673. 461.75 s [really-safe-money-gen] mconcat
  13674. 461.75 s [really-safe-money-gen] [ genericValidate qf,
  13675. 461.75 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  13676. 461.75 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  13677. 461.75 s [really-safe-money-gen] ]
  13678. 461.75 s [really-safe-money-gen]
  13679. 461.75 s [really-safe-money-gen] instance NFData QuantisationFactor
  13680. 461.75 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
  13681. 461.75 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  13682. 461.75 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  13683. 463.60 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  13684. 463.69 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  13685. 463.69 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  13686. 463.69 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  13687. 463.69 s [really-safe-money-gen]
  13688. 463.69 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  13689. 463.69 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  13690. 463.69 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  13691. 463.69 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  13692. 463.69 s [really-safe-money-gen] instance Validity QuantisationFactor where
  13693. 463.69 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  13694. 463.69 s [really-safe-money-gen] mconcat
  13695. 463.69 s [really-safe-money-gen] - [ genericValidate qf,
  13696. 463.69 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  13697. 463.69 s [really-safe-money-gen] - ]
  13698. 463.69 s [really-safe-money-gen] + []
  13699. 463.69 s [really-safe-money-gen]
  13700. 463.69 s [really-safe-money-gen] instance NFData QuantisationFactor
  13701. 463.69 s [really-safe-money-gen]
  13702. 463.69 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  13703. 463.69 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  13704. 463.69 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  13705. 463.69 s [really-safe-money-gen] DistributedZero -> DistributedZero
  13706. 463.69 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  13707. 463.69 s [really-safe-money-gen] - if a >= zero
  13708. 463.69 s [really-safe-money-gen] + if False
  13709. 463.69 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13710. 463.69 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13711. 463.69 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13712. 463.69 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:421:32-33
  13713. 463.69 s [really-safe-money-gen] @@ -418,7 +418,7 @@
  13714. 463.69 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  13715. 463.69 s [really-safe-money-gen] multiply factor account =
  13716. 463.69 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  13717. 463.69 s [really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
  13718. 463.69 s [really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
  13719. 463.69 s [really-safe-money-gen] (EQ, _) -> const zero
  13720. 463.69 s [really-safe-money-gen] (_, EQ) -> const zero
  13721. 463.69 s [really-safe-money-gen] (GT, GT) -> Positive
  13722. 463.69 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  13723. 463.69 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  13724. 463.69 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13725. 463.69 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13726. 463.69 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13727. 463.69 s [really-safe-money-gen] - if a >= zero
  13728. 463.69 s [really-safe-money-gen] + if False
  13729. 463.69 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  13730. 463.70 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  13731. 463.70 s [really-safe-money-gen]
  13732. 463.70 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  13733. 463.70 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  13734. 463.70 s [really-safe-money-gen] fraction rounding account f =
  13735. 463.70 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  13736. 463.70 s [really-safe-money-gen] ro =
  13737. 463.70 s [really-safe-money-gen] - if f >= 0
  13738. 463.70 s [really-safe-money-gen] + if False
  13739. 463.70 s [really-safe-money-gen] then rounding
  13740. 463.70 s [really-safe-money-gen] else case rounding of
  13741. 463.70 s [really-safe-money-gen] RoundUp -> RoundDown
  13742. 463.70 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
  13743. 463.70 s [really-safe-money-gen] @@ -36,9 +36,9 @@
  13744. 463.70 s [really-safe-money-gen] instance Validity QuantisationFactor where
  13745. 463.70 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  13746. 463.70 s [really-safe-money-gen] mconcat
  13747. 463.70 s [really-safe-money-gen] - [ genericValidate qf,
  13748. 463.70 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  13749. 463.70 s [really-safe-money-gen] - ]
  13750. 463.70 s [really-safe-money-gen] + [ genericValidate qf,
  13751. 463.70 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 0
  13752. 463.70 s [really-safe-money-gen] + ]
  13753. 463.70 s [really-safe-money-gen]
  13754. 463.70 s [really-safe-money-gen] instance NFData QuantisationFactor
  13755. 463.70 s [really-safe-money-gen]
  13756. 463.70 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
  13757. 463.70 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  13758. 463.70 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  13759. 463.70 s [really-safe-money-gen] DistributedZero -> DistributedZero
  13760. 463.70 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  13761. 463.70 s [really-safe-money-gen] - if a >= zero
  13762. 463.70 s [really-safe-money-gen] + if True
  13763. 463.70 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13764. 463.70 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13765. 463.70 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13766. 463.70 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23
  13767. 463.70 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  13768. 463.70 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  13769. 463.70 s [really-safe-money-gen] DistributedZero -> DistributedZero
  13770. 463.70 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  13771. 463.70 s [really-safe-money-gen] - if a >= zero
  13772. 463.70 s [really-safe-money-gen] + if not (a >= zero)
  13773. 463.70 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13774. 463.70 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13775. 463.70 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13776. 463.70 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23
  13777. 463.70 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  13778. 463.70 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13779. 463.70 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13780. 463.70 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13781. 463.70 s [really-safe-money-gen] - if a >= zero
  13782. 463.70 s [really-safe-money-gen] + if not (a >= zero)
  13783. 463.70 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  13784. 463.70 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  13785. 463.70 s [really-safe-money-gen]
  13786. 463.70 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:451:11-76
  13787. 463.70 s [really-safe-money-gen] @@ -448,9 +448,9 @@
  13788. 463.70 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  13789. 463.70 s [really-safe-money-gen] DistributedZero -> DistributedZero
  13790. 463.70 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  13791. 463.70 s [really-safe-money-gen] - if a >= zero
  13792. 463.70 s [really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13793. 463.70 s [really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13794. 463.70 s [really-safe-money-gen] + if a >= zero
  13795. 463.70 s [really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13796. 463.70 s [really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13797. 463.70 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13798. 463.70 s [really-safe-money-gen] if a >= zero
  13799. 463.70 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  13800. 463.70 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
  13801. 463.70 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  13802. 463.70 s [really-safe-money-gen] fraction rounding account f =
  13803. 463.70 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  13804. 463.70 s [really-safe-money-gen] ro =
  13805. 463.70 s [really-safe-money-gen] - if f >= 0
  13806. 463.70 s [really-safe-money-gen] + if True
  13807. 463.70 s [really-safe-money-gen] then rounding
  13808. 463.70 s [really-safe-money-gen] else case rounding of
  13809. 463.70 s [really-safe-money-gen] RoundUp -> RoundDown
  13810. 463.70 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:495:9-41
  13811. 463.70 s [really-safe-money-gen] @@ -492,12 +492,12 @@
  13812. 463.70 s [really-safe-money-gen] fraction rounding account f =
  13813. 463.70 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  13814. 463.70 s [really-safe-money-gen] ro =
  13815. 463.70 s [really-safe-money-gen] - if f >= 0
  13816. 463.70 s [really-safe-money-gen] - then rounding
  13817. 463.70 s [really-safe-money-gen] - else case rounding of
  13818. 463.70 s [really-safe-money-gen] - RoundUp -> RoundDown
  13819. 463.70 s [really-safe-money-gen] - RoundDown -> RoundUp
  13820. 463.70 s [really-safe-money-gen] - RoundNearest -> RoundNearest
  13821. 463.70 s [really-safe-money-gen] + if f >= 0
  13822. 463.70 s [really-safe-money-gen] + then rounding
  13823. 463.71 s [really-safe-money-gen] + else case rounding of
  13824. 463.71 s [really-safe-money-gen] + RoundUp -> RoundDown
  13825. 463.71 s [really-safe-money-gen] + RoundDown -> RoundUp
  13826. 463.71 s [really-safe-money-gen] + RoundNearest -> RoundNearest
  13827. 463.71 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  13828. 463.71 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  13829. 463.71 s [really-safe-money-gen] in if f >= 0
  13830. 463.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16
  13831. 463.71 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  13832. 463.71 s [really-safe-money-gen] RoundNearest -> RoundNearest
  13833. 463.71 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  13834. 463.71 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  13835. 463.71 s [really-safe-money-gen] - in if f >= 0
  13836. 463.71 s [really-safe-money-gen] + in if f >= 1
  13837. 463.71 s [really-safe-money-gen] then (ma, r)
  13838. 463.71 s [really-safe-money-gen] else (negate <$> ma, -r)
  13839. 463.71 s [really-safe-money-gen]
  13840. 463.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  13841. 463.71 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  13842. 463.71 s [really-safe-money-gen] RoundNearest -> RoundNearest
  13843. 463.71 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  13844. 463.71 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  13845. 463.71 s [really-safe-money-gen] - in if f >= 0
  13846. 463.71 s [really-safe-money-gen] + in if True
  13847. 463.71 s [really-safe-money-gen] then (ma, r)
  13848. 463.71 s [really-safe-money-gen] else (negate <$> ma, -r)
  13849. 463.71 s [really-safe-money-gen]
  13850. 463.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
  13851. 463.71 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  13852. 463.71 s [really-safe-money-gen] RoundNearest -> RoundNearest
  13853. 463.71 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  13854. 463.71 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  13855. 463.71 s [really-safe-money-gen] - in if f >= 0
  13856. 463.71 s [really-safe-money-gen] + in if False
  13857. 463.71 s [really-safe-money-gen] then (ma, r)
  13858. 463.71 s [really-safe-money-gen] else (negate <$> ma, -r)
  13859. 463.71 s [really-safe-money-gen]
  13860. 463.71 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16
  13861. 463.71 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  13862. 463.71 s [really-safe-money-gen] RoundNearest -> RoundNearest
  13863. 463.71 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  13864. 463.71 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  13865. 463.71 s [really-safe-money-gen] - in if f >= 0
  13866. 463.71 s [really-safe-money-gen] + in if not (f >= 0)
  13867. 463.71 s [really-safe-money-gen] then (ma, r)
  13868. 463.71 s [really-safe-money-gen] else (negate <$> ma, -r)
  13869. 463.71 s [really-safe-money-gen]
  13870. 463.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  13871. 466.28 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  13872. 466.28 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  13873. 466.28 s [really-safe-money-gen] fromRational quantisationFactor r =
  13874. 466.28 s [really-safe-money-gen] let r' = Prelude.abs r
  13875. 466.28 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  13876. 466.28 s [really-safe-money-gen] + f = if True then Positive else Negative
  13877. 466.28 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  13878. 466.28 s [really-safe-money-gen]
  13879. 466.28 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  13880. 466.28 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:233:11-48
  13881. 466.28 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  13882. 466.28 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  13883. 466.28 s [really-safe-money-gen] fromRational quantisationFactor r =
  13884. 466.28 s [really-safe-money-gen] let r' = Prelude.abs r
  13885. 466.28 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  13886. 466.28 s [really-safe-money-gen] + f = if r >= 0 then Positive else Negative
  13887. 466.28 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  13888. 466.28 s [really-safe-money-gen]
  13889. 466.28 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  13890. 466.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  13891. 466.28 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  13892. 466.28 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  13893. 466.28 s [really-safe-money-gen] a :: Integer
  13894. 466.28 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  13895. 466.28 s [really-safe-money-gen] - in if a > maxBoundI
  13896. 466.28 s [really-safe-money-gen] + in if True
  13897. 466.28 s [really-safe-money-gen] then Nothing
  13898. 466.28 s [really-safe-money-gen] else
  13899. 466.28 s [really-safe-money-gen] let w :: Word64
  13900. 466.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  13901. 466.28 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  13902. 466.28 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  13903. 466.28 s [really-safe-money-gen] fromDouble quantisationFactor d =
  13904. 466.28 s [really-safe-money-gen] let d' = Prelude.abs d
  13905. 466.28 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  13906. 466.28 s [really-safe-money-gen] + f = if True then Positive else Negative
  13907. 466.28 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  13908. 466.28 s [really-safe-money-gen]
  13909. 466.28 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  13910. 466.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
  13911. 466.28 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  13912. 466.28 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  13913. 466.28 s [really-safe-money-gen] fromDouble quantisationFactor d =
  13914. 466.28 s [really-safe-money-gen] let d' = Prelude.abs d
  13915. 466.28 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  13916. 466.28 s [really-safe-money-gen] + f = if False then Positive else Negative
  13917. 466.28 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  13918. 466.28 s [really-safe-money-gen]
  13919. 466.28 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  13920. 466.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
  13921. 466.28 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  13922. 466.28 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13923. 466.28 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13924. 466.28 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13925. 466.28 s [really-safe-money-gen] - if a >= zero
  13926. 466.28 s [really-safe-money-gen] + if True
  13927. 466.28 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  13928. 466.28 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  13929. 466.29 s [really-safe-money-gen]
  13930. 466.29 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20
  13931. 466.29 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  13932. 466.29 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  13933. 466.29 s [really-safe-money-gen] fromRational quantisationFactor r =
  13934. 466.29 s [really-safe-money-gen] let r' = Prelude.abs r
  13935. 466.29 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  13936. 466.29 s [really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
  13937. 466.29 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  13938. 466.29 s [really-safe-money-gen]
  13939. 466.29 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  13940. 466.29 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:503:7-33
  13941. 466.29 s [really-safe-money-gen] @@ -500,9 +500,9 @@
  13942. 466.29 s [really-safe-money-gen] RoundNearest -> RoundNearest
  13943. 466.29 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  13944. 466.29 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  13945. 466.29 s [really-safe-money-gen] - in if f >= 0
  13946. 466.29 s [really-safe-money-gen] - then (ma, r)
  13947. 466.29 s [really-safe-money-gen] - else (negate <$> ma, -r)
  13948. 466.29 s [really-safe-money-gen] + in if f >= 0
  13949. 466.29 s [really-safe-money-gen] + then (ma, r)
  13950. 466.29 s [really-safe-money-gen] + else (negate <$> ma, -r)
  13951. 466.29 s [really-safe-money-gen]
  13952. 466.29 s [really-safe-money-gen] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
  13953. 466.29 s [really-safe-money-gen] --
  13954. 466.29 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18
  13955. 466.29 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  13956. 466.29 s [really-safe-money-gen] fraction rounding account f =
  13957. 466.29 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  13958. 466.29 s [really-safe-money-gen] ro =
  13959. 466.29 s [really-safe-money-gen] - if f >= 0
  13960. 466.29 s [really-safe-money-gen] + if not (f >= 0)
  13961. 466.29 s [really-safe-money-gen] then rounding
  13962. 466.29 s [really-safe-money-gen] else case rounding of
  13963. 466.29 s [really-safe-money-gen] RoundUp -> RoundDown
  13964. 466.29 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20
  13965. 466.29 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  13966. 466.29 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  13967. 466.29 s [really-safe-money-gen] fromRational quantisationFactor r =
  13968. 466.29 s [really-safe-money-gen] let r' = Prelude.abs r
  13969. 466.29 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  13970. 466.29 s [really-safe-money-gen] + f = if r >= 1 then Positive else Negative
  13971. 466.29 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  13972. 466.29 s [really-safe-money-gen]
  13973. 466.29 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  13974. 466.29 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:455:11-136
  13975. 466.29 s [really-safe-money-gen] @@ -452,9 +452,9 @@
  13976. 466.29 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  13977. 466.29 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  13978. 466.29 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  13979. 466.29 s [really-safe-money-gen] - if a >= zero
  13980. 466.29 s [really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  13981. 466.29 s [really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  13982. 466.29 s [really-safe-money-gen] + if a >= zero
  13983. 466.29 s [really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  13984. 466.29 s [really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  13985. 466.29 s [really-safe-money-gen]
  13986. 466.29 s [really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
  13987. 466.29 s [really-safe-money-gen]
  13988. 466.29 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20
  13989. 466.29 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  13990. 466.29 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  13991. 466.29 s [really-safe-money-gen] fromDouble quantisationFactor d =
  13992. 466.29 s [really-safe-money-gen] let d' = Prelude.abs d
  13993. 466.29 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  13994. 466.29 s [really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
  13995. 466.29 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  13996. 466.29 s [really-safe-money-gen]
  13997. 466.29 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  13998. 466.29 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:197:11-48
  13999. 466.29 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  14000. 466.29 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  14001. 466.29 s [really-safe-money-gen] fromDouble quantisationFactor d =
  14002. 466.29 s [really-safe-money-gen] let d' = Prelude.abs d
  14003. 466.29 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  14004. 466.29 s [really-safe-money-gen] + f = if d >= 0 then Positive else Negative
  14005. 466.29 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  14006. 466.29 s [really-safe-money-gen]
  14007. 466.29 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  14008. 466.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
  14009. 466.29 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  14010. 466.29 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  14011. 466.29 s [really-safe-money-gen] a :: Integer
  14012. 466.29 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  14013. 466.29 s [really-safe-money-gen] - in if a > maxBoundI
  14014. 466.29 s [really-safe-money-gen] + in if False
  14015. 466.29 s [really-safe-money-gen] then Nothing
  14016. 466.29 s [really-safe-money-gen] else
  14017. 466.29 s [really-safe-money-gen] let w :: Word64
  14018. 466.29 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  14019. 466.29 s [really-safe-money-gen] @@ -44,7 +44,7 @@
  14020. 466.29 s [really-safe-money-gen] where
  14021. 466.29 s [really-safe-money-gen] f :: String -> Either String Amount
  14022. 466.29 s [really-safe-money-gen] f s = case readMaybe s of
  14023. 466.29 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14024. 466.29 s [really-safe-money-gen] + Nothing -> Left $ unwords []
  14025. 466.29 s [really-safe-money-gen] Just i ->
  14026. 466.29 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14027. 466.29 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14028. 466.29 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23
  14029. 466.29 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  14030. 466.29 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  14031. 466.29 s [really-safe-money-gen] a :: Integer
  14032. 466.29 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  14033. 466.29 s [really-safe-money-gen] - in if a > maxBoundI
  14034. 466.29 s [really-safe-money-gen] + in if not (a > maxBoundI)
  14035. 466.29 s [really-safe-money-gen] then Nothing
  14036. 466.29 s [really-safe-money-gen] else
  14037. 466.29 s [really-safe-money-gen] let w :: Word64
  14038. 466.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  14039. 466.29 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  14040. 466.29 s [really-safe-money-gen] amount :: Amount
  14041. 466.29 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  14042. 466.29 s [really-safe-money-gen] in Just $
  14043. 466.29 s [really-safe-money-gen] - if i >= 0
  14044. 466.29 s [really-safe-money-gen] + if True
  14045. 466.29 s [really-safe-money-gen] then Positive amount
  14046. 466.29 s [really-safe-money-gen] else Negative amount
  14047. 466.29 s [really-safe-money-gen]
  14048. 466.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
  14049. 466.29 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  14050. 466.29 s [really-safe-money-gen] amount :: Amount
  14051. 466.29 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  14052. 466.29 s [really-safe-money-gen] in Just $
  14053. 466.29 s [really-safe-money-gen] - if i >= 0
  14054. 466.29 s [really-safe-money-gen] + if False
  14055. 466.29 s [really-safe-money-gen] then Positive amount
  14056. 466.29 s [really-safe-money-gen] else Negative amount
  14057. 466.30 s [really-safe-money-gen]
  14058. 466.30 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:131:17-39
  14059. 466.30 s [really-safe-money-gen] @@ -128,9 +128,9 @@
  14060. 466.30 s [really-safe-money-gen] amount :: Amount
  14061. 466.30 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  14062. 466.30 s [really-safe-money-gen] in Just $
  14063. 466.30 s [really-safe-money-gen] - if i >= 0
  14064. 466.30 s [really-safe-money-gen] - then Positive amount
  14065. 466.30 s [really-safe-money-gen] - else Negative amount
  14066. 466.30 s [really-safe-money-gen] + if i >= 0
  14067. 466.30 s [really-safe-money-gen] + then Positive amount
  14068. 466.30 s [really-safe-money-gen] + else Negative amount
  14069. 466.30 s [really-safe-money-gen]
  14070. 466.49 s [really-safe-money-gen] -- | Turn an amount into a positive account
  14071. 466.49 s [really-safe-money-gen] --
  14072. 466.49 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:123:7-39
  14073. 466.49 s [really-safe-money-gen] @@ -120,17 +120,17 @@
  14074. 466.49 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  14075. 466.49 s [really-safe-money-gen] a :: Integer
  14076. 466.49 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  14077. 466.49 s [really-safe-money-gen] - in if a > maxBoundI
  14078. 466.49 s [really-safe-money-gen] - then Nothing
  14079. 466.49 s [really-safe-money-gen] - else
  14080. 466.49 s [really-safe-money-gen] - let w :: Word64
  14081. 466.49 s [really-safe-money-gen] - w = (fromIntegral :: Integer -> Word64) a
  14082. 466.49 s [really-safe-money-gen] - amount :: Amount
  14083. 466.49 s [really-safe-money-gen] - amount = Amount.fromMinimalQuantisations w
  14084. 466.49 s [really-safe-money-gen] - in Just $
  14085. 466.49 s [really-safe-money-gen] - if i >= 0
  14086. 466.49 s [really-safe-money-gen] - then Positive amount
  14087. 466.49 s [really-safe-money-gen] - else Negative amount
  14088. 466.49 s [really-safe-money-gen] + in if a > maxBoundI
  14089. 466.49 s [really-safe-money-gen] + then Nothing
  14090. 466.49 s [really-safe-money-gen] + else
  14091. 466.49 s [really-safe-money-gen] + let w :: Word64
  14092. 466.49 s [really-safe-money-gen] + w = (fromIntegral :: Integer -> Word64) a
  14093. 466.49 s [really-safe-money-gen] + amount :: Amount
  14094. 466.49 s [really-safe-money-gen] + amount = Amount.fromMinimalQuantisations w
  14095. 466.49 s [really-safe-money-gen] + in Just $
  14096. 466.49 s [really-safe-money-gen] + if i >= 0
  14097. 466.49 s [really-safe-money-gen] + then Positive amount
  14098. 466.49 s [really-safe-money-gen] + else Negative amount
  14099. 466.49 s [really-safe-money-gen]
  14100. 466.49 s [really-safe-money-gen] -- | Turn an amount into a positive account
  14101. 466.49 s [really-safe-money-gen] --
  14102. 466.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
  14103. 466.49 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  14104. 466.49 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  14105. 466.49 s [really-safe-money-gen] fromRational quantisationFactor r =
  14106. 466.49 s [really-safe-money-gen] let r' = Prelude.abs r
  14107. 466.49 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  14108. 466.49 s [really-safe-money-gen] + f = if False then Positive else Negative
  14109. 466.49 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  14110. 466.49 s [really-safe-money-gen]
  14111. 466.50 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  14112. 466.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  14113. 466.50 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  14114. 466.50 s [really-safe-money-gen] f s = case readMaybe s of
  14115. 466.50 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14116. 466.50 s [really-safe-money-gen] Just i ->
  14117. 466.50 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  14118. 466.50 s [really-safe-money-gen] + if False
  14119. 466.50 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14120. 466.50 s [really-safe-money-gen] else
  14121. 466.50 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14122. 466.50 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
  14123. 466.50 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  14124. 466.50 s [really-safe-money-gen] f s = case readMaybe s of
  14125. 466.50 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14126. 466.50 s [really-safe-money-gen] Just i ->
  14127. 466.50 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  14128. 466.50 s [really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
  14129. 466.50 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14130. 466.50 s [really-safe-money-gen] else
  14131. 466.50 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14132. 466.50 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  14133. 466.50 s [really-safe-money-gen] @@ -50,7 +50,7 @@
  14134. 466.50 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14135. 466.50 s [really-safe-money-gen] else
  14136. 466.50 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14137. 466.50 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14138. 466.50 s [really-safe-money-gen] + then Left $ unwords []
  14139. 466.50 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14140. 466.50 s [really-safe-money-gen] g :: Amount -> String
  14141. 466.50 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  14142. 466.50 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
  14143. 466.50 s [really-safe-money-gen] @@ -50,7 +50,7 @@
  14144. 466.50 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14145. 466.50 s [really-safe-money-gen] else
  14146. 466.50 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14147. 466.50 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14148. 466.50 s [really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14149. 466.50 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14150. 466.50 s [really-safe-money-gen] g :: Amount -> String
  14151. 466.50 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  14152. 466.50 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
  14153. 466.50 s [really-safe-money-gen] @@ -46,12 +46,12 @@
  14154. 466.50 s [really-safe-money-gen] f s = case readMaybe s of
  14155. 466.50 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14156. 466.50 s [really-safe-money-gen] Just i ->
  14157. 466.50 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  14158. 466.50 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14159. 466.50 s [really-safe-money-gen] - else
  14160. 466.50 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  14161. 466.50 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14162. 466.50 s [really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14163. 466.50 s [really-safe-money-gen] + if (i :: Integer) < toInteger (minBound :: Word64)
  14164. 466.50 s [really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14165. 466.50 s [really-safe-money-gen] + else
  14166. 466.50 s [really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
  14167. 466.50 s [really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14168. 466.51 s [really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14169. 466.51 s [really-safe-money-gen] g :: Amount -> String
  14170. 466.51 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  14171. 466.51 s [really-safe-money-gen]
  14172. 466.51 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  14173. 466.51 s [really-safe-money-gen] @@ -47,7 +47,7 @@
  14174. 466.51 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14175. 466.51 s [really-safe-money-gen] Just i ->
  14176. 466.51 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14177. 466.51 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14178. 466.51 s [really-safe-money-gen] + then Left $ unwords []
  14179. 466.51 s [really-safe-money-gen] else
  14180. 466.51 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14181. 466.51 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14182. 466.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  14183. 466.51 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  14184. 466.51 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14185. 466.51 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14186. 466.51 s [really-safe-money-gen] else
  14187. 466.51 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  14188. 466.51 s [really-safe-money-gen] + if False
  14189. 466.51 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14190. 466.51 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14191. 466.51 s [really-safe-money-gen] g :: Amount -> String
  14192. 466.51 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  14193. 466.51 s [really-safe-money-gen] @@ -48,7 +48,7 @@
  14194. 466.51 s [really-safe-money-gen] where
  14195. 466.51 s [really-safe-money-gen] f :: String -> Either String Account
  14196. 466.51 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  14197. 466.51 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  14198. 466.51 s [really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  14199. 466.51 s [really-safe-money-gen] Just a -> Right a
  14200. 466.51 s [really-safe-money-gen] g :: Account -> String
  14201. 466.51 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  14202. 466.51 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
  14203. 466.51 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  14204. 466.51 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14205. 466.51 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14206. 466.51 s [really-safe-money-gen] else
  14207. 466.51 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  14208. 466.51 s [really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
  14209. 466.51 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14210. 466.51 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14211. 466.51 s [really-safe-money-gen] g :: Amount -> String
  14212. 466.51 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
  14213. 466.51 s [really-safe-money-gen] @@ -49,9 +49,9 @@
  14214. 466.51 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14215. 466.51 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14216. 466.51 s [really-safe-money-gen] else
  14217. 466.51 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  14218. 466.51 s [really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14219. 466.51 s [really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14220. 466.51 s [really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
  14221. 466.51 s [really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14222. 466.51 s [really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14223. 466.51 s [really-safe-money-gen] g :: Amount -> String
  14224. 466.51 s [really-safe-money-gen] g = show . Amount.toMinimalQuantisations
  14225. 466.51 s [really-safe-money-gen]
  14226. 466.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
  14227. 466.51 s [really-safe-money-gen] @@ -46,7 +46,7 @@
  14228. 466.51 s [really-safe-money-gen] f s = case readMaybe s of
  14229. 466.51 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14230. 466.51 s [really-safe-money-gen] Just i ->
  14231. 466.51 s [really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
  14232. 466.51 s [really-safe-money-gen] + if True
  14233. 466.51 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14234. 466.51 s [really-safe-money-gen] else
  14235. 466.51 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14236. 466.51 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  14237. 466.51 s [really-safe-money-gen] @@ -37,5 +37,5 @@
  14238. 466.51 s [really-safe-money-gen] where
  14239. 466.51 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  14240. 466.51 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  14241. 514.56 s [really-safe-money-gen] - Nothing -> Left $ unwords ["CouKilled: 240
  14242. 514.57 s [really-safe-money-gen] Survived: 34
  14243. 514.57 s [really-safe-money-gen] Uncovered: 21
  14244. 514.57 s [really-safe-money-gen]
  14245. 514.57 s [really-safe-money-gen] Surviving mutations:
  14246. 514.57 s [really-safe-money-gen]
  14247. 514.57 s [really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
  14248. 514.57 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  14249. 514.57 s [really-safe-money-gen] amount :: Amount
  14250. 514.57 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  14251. 514.57 s [really-safe-money-gen] in Just $
  14252. 514.57 s [really-safe-money-gen] - if i >= 0
  14253. 514.57 s [really-safe-money-gen] + if i >= 1
  14254. 514.57 s [really-safe-money-gen] then Positive amount
  14255. 514.57 s [really-safe-money-gen] else Negative amount
  14256. 514.57 s [really-safe-money-gen]
  14257. 514.57 s [really-safe-money-gen]
  14258. 514.57 s [really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
  14259. 514.57 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  14260. 514.57 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  14261. 514.57 s [really-safe-money-gen] a :: Integer
  14262. 514.58 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  14263. 514.58 s [really-safe-money-gen] - in if a > maxBoundI
  14264. 514.58 s [really-safe-money-gen] + in if False
  14265. 514.58 s [really-safe-money-gen] then Nothing
  14266. 514.58 s [really-safe-money-gen] else
  14267. 514.58 s [really-safe-money-gen] let w :: Word64
  14268. 514.58 s [really-safe-money-gen]
  14269. 514.58 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  14270. 514.58 s [really-safe-money-gen] @@ -36,9 +36,9 @@
  14271. 514.58 s [really-safe-money-gen] instance Validity QuantisationFactor where
  14272. 514.58 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  14273. 514.58 s [really-safe-money-gen] mconcat
  14274. 514.58 s [really-safe-money-gen] - [ genericValidate qf,
  14275. 514.58 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  14276. 514.58 s [really-safe-money-gen] - ]
  14277. 514.58 s [really-safe-money-gen] + [ genericValidate qf,
  14278. 514.58 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 0
  14279. 514.58 s [really-safe-money-gen] + ]
  14280. 514.58 s [really-safe-money-gen]
  14281. 514.58 s [really-safe-money-gen] instance NFData QuantisationFactor
  14282. 514.58 s [really-safe-money-gen]
  14283. 514.58 s [really-safe-money-gen]
  14284. 514.58 s [really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
  14285. 514.58 s [really-safe-money-gen] @@ -36,9 +36,7 @@
  14286. 514.58 s [really-safe-money-gen] instance Validity QuantisationFactor where
  14287. 514.58 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  14288. 514.58 s [really-safe-money-gen] mconcat
  14289. 514.58 s [really-safe-money-gen] - [ genericValidate qf,
  14290. 514.58 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  14291. 514.58 s [really-safe-money-gen] - ]
  14292. 514.58 s [really-safe-money-gen] + []
  14293. 514.58 s [really-safe-money-gen]
  14294. 514.58 s [really-safe-money-gen] instance NFData QuantisationFactor
  14295. 514.58 s [really-safe-money-gen]
  14296. 514.58 s [really-safe-money-gen]
  14297. 514.58 s [really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
  14298. 514.58 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  14299. 514.58 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  14300. 514.58 s [really-safe-money-gen] mconcat
  14301. 514.58 s [really-safe-money-gen] [ genericValidate qf,
  14302. 514.58 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  14303. 514.58 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  14304. 514.58 s [really-safe-money-gen] ]
  14305. 514.58 s [really-safe-money-gen]
  14306. 514.58 s [really-safe-money-gen] instance NFData QuantisationFactor
  14307. 514.58 s [really-safe-money-gen]
  14308. 514.58 s [really-safe-money-gen] IntLit at src/Money/QuantisationFactor.hs:93:16-17
  14309. 514.58 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  14310. 514.58 s [really-safe-money-gen]
  14311. 514.58 s [really-safe-money-gen] rat <-
  14312. 514.58 s [really-safe-money-gen] let r = 1 / irat
  14313. 514.58 s [really-safe-money-gen] - in if r < 0
  14314. 514.58 s [really-safe-money-gen] + in if r < 1
  14315. 514.58 s [really-safe-money-gen] then Nothing
  14316. 514.58 s [really-safe-money-gen] else Just r
  14317. 514.58 s [really-safe-money-gen]
  14318. 514.58 s [really-safe-money-gen]
  14319. 514.58 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  14320. 514.58 s [really-safe-money-gen] @@ -600,13 +600,13 @@
  14321. 514.58 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  14322. 514.58 s [really-safe-money-gen] validate ad =
  14323. 514.58 s [really-safe-money-gen] mconcat
  14324. 514.58 s [really-safe-money-gen] - [ genericValidate ad,
  14325. 514.58 s [really-safe-money-gen] - case ad of
  14326. 514.58 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  14327. 514.58 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  14328. 514.58 s [really-safe-money-gen] - a1 > a2
  14329. 514.58 s [really-safe-money-gen] - _ -> valid
  14330. 514.58 s [really-safe-money-gen] - ]
  14331. 514.58 s [really-safe-money-gen] + [ genericValidate ad,
  14332. 514.58 s [really-safe-money-gen] + case ad of
  14333. 514.58 s [really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
  14334. 514.58 s [really-safe-money-gen] + declare "The larger chunks are larger" $
  14335. 514.58 s [really-safe-money-gen] + a1 > a2
  14336. 514.58 s [really-safe-money-gen] + _ -> valid
  14337. 514.58 s [really-safe-money-gen] + ]
  14338. 514.58 s [really-safe-money-gen]
  14339. 514.58 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  14340. 514.58 s [really-safe-money-gen]
  14341. 514.58 s [really-safe-money-gen]
  14342. 514.58 s [really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
  14343. 514.58 s [really-safe-money-gen] @@ -600,13 +600,7 @@
  14344. 514.58 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  14345. 514.58 s [really-safe-money-gen] validate ad =
  14346. 514.58 s [really-safe-money-gen] mconcat
  14347. 514.58 s [really-safe-money-gen] - [ genericValidate ad,
  14348. 514.58 s [really-safe-money-gen] - case ad of
  14349. 514.58 s [really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
  14350. 514.58 s [really-safe-money-gen] - declare "The larger chunks are larger" $
  14351. 514.58 s [really-safe-money-gen] - a1 > a2
  14352. 514.58 s [really-safe-money-gen] - _ -> valid
  14353. 514.58 s [really-safe-money-gen] - ]
  14354. 514.58 s [really-safe-money-gen] + []
  14355. 514.58 s [really-safe-money-gen]
  14356. 514.58 s [really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
  14357. 514.58 s [really-safe-money-gen]
  14358. 514.58 s [really-safe-money-gen]
  14359. 514.58 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
  14360. 514.58 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  14361. 514.58 s [really-safe-money-gen] case ad of
  14362. 514.58 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  14363. 514.58 s [really-safe-money-gen] declare "The larger chunks are larger" $
  14364. 514.58 s [really-safe-money-gen] - a1 > a2
  14365. 514.58 s [really-safe-money-gen] + True
  14366. 514.58 s [really-safe-money-gen] _ -> valid
  14367. 514.58 s [really-safe-money-gen] ]
  14368. 514.58 s [really-safe-money-gen]
  14369. 514.58 s [really-safe-money-gen]
  14370. 514.58 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
  14371. 514.58 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  14372. 514.58 s [really-safe-money-gen] | otherwise =
  14373. 514.58 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  14374. 514.58 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  14375. 514.58 s [really-safe-money-gen] - if exponent resultDouble > 65
  14376. 514.58 s [really-safe-money-gen] + if False
  14377. 514.58 s [really-safe-money-gen] then Nothing
  14378. 514.58 s [really-safe-money-gen] else
  14379. 514.58 s [really-safe-money-gen] let ceiled :: Natural
  14380. 514.58 s [really-safe-money-gen]
  14381. 514.58 s [really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
  14382. 514.58 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  14383. 514.58 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  14384. 514.58 s [really-safe-money-gen] r :: Integer
  14385. 514.58 s [really-safe-money-gen] r = i1 - i2
  14386. 514.58 s [really-safe-money-gen] - in if r < 0
  14387. 514.58 s [really-safe-money-gen] + in if True
  14388. 514.58 s [really-safe-money-gen] then Nothing
  14389. 514.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  14390. 514.58 s [really-safe-money-gen]
  14391. 514.58 s [really-safe-money-gen]
  14392. 514.58 s [really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
  14393. 514.58 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  14394. 514.58 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  14395. 514.58 s [really-safe-money-gen] r :: Integer
  14396. 514.58 s [really-safe-money-gen] r = i1 - i2
  14397. 514.58 s [really-safe-money-gen] - in if r < 0
  14398. 514.58 s [really-safe-money-gen] + in if r < 1
  14399. 514.58 s [really-safe-money-gen] then Nothing
  14400. 514.58 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  14401. 514.58 s [really-safe-money-gen]
  14402. 514.58 s [really-safe-money-gen]
  14403. 514.58 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
  14404. 514.58 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  14405. 514.58 s [really-safe-money-gen] -- Nothing
  14406. 514.58 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  14407. 514.58 s [really-safe-money-gen] fromRational (n :% d)
  14408. 514.58 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  14409. 514.58 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  14410. 514.58 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  14411. 514.58 s [really-safe-money-gen]
  14412. 514.58 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  14413. 514.58 s [really-safe-money-gen]
  14414. 514.58 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
  14415. 514.58 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  14416. 514.58 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  14417. 514.58 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  14418. 514.58 s [really-safe-money-gen] Just False -> Nothing
  14419. 514.58 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  14420. 514.58 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  14421. 514.58 s [really-safe-money-gen]
  14422. 514.58 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  14423. 514.58 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  14424. 514.58 s [really-safe-money-gen]
  14425. 514.58 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
  14426. 514.58 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  14427. 514.58 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  14428. 514.58 s [really-safe-money-gen] toWord dl = do
  14429. 514.58 s [really-safe-money-gen] n <- toNatural dl
  14430. 514.58 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  14431. 514.58 s [really-safe-money-gen] + guard $ True
  14432. 514.58 s [really-safe-money-gen] pure $ fromIntegral n
  14433. 514.58 s [really-safe-money-gen]
  14434. 514.58 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  14435. 514.58 s [really-safe-money-gen]
  14436. 514.58 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
  14437. 514.58 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  14438. 514.58 s [really-safe-money-gen] toInt dl = do
  14439. 514.58 s [really-safe-money-gen] n <- toInteger dl
  14440. 514.58 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  14441. 514.58 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  14442. 514.58 s [really-safe-money-gen] + guard $ True
  14443. 514.58 s [really-safe-money-gen] pure $ fromIntegral n
  14444. 514.58 s [really-safe-money-gen]
  14445. 514.58 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  14446. 514.58 s [really-safe-money-gen]
  14447. 514.58 s [really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
  14448. 514.58 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  14449. 514.58 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  14450. 514.58 s [really-safe-money-gen] toInt dl = do
  14451. 514.58 s [really-safe-money-gen] n <- toInteger dl
  14452. 514.58 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  14453. 514.58 s [really-safe-money-gen] + guard $ True
  14454. 514.58 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  14455. 514.58 s [really-safe-money-gen] pure $ fromIntegral n
  14456. 514.58 s [really-safe-money-gen]
  14457. 514.58 s [really-safe-money-gen]
  14458. 514.58 s [really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
  14459. 514.58 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  14460. 514.58 s [really-safe-money-gen] pure $ fromIntegral n
  14461. 514.58 s [really-safe-money-gen]
  14462. 514.58 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  14463. 514.58 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  14464. 514.58 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  14465. 514.58 s [really-safe-money-gen]
  14466. 514.58 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  14467. 514.58 s [really-safe-money-gen] signSignum = \case
  14468. 514.58 s [really-safe-money-gen]
  14469. 514.58 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  14470. 514.58 s [really-safe-money-gen] @@ -60,11 +60,11 @@
  14471. 514.58 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  14472. 514.58 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  14473. 514.58 s [really-safe-money-gen] mconcat
  14474. 514.58 s [really-safe-money-gen] - [ genericValidate ma,
  14475. 514.58 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  14476. 514.58 s [really-safe-money-gen] - declare "The amount is not zero" $
  14477. 514.58 s [really-safe-money-gen] - a /= Amount.zero
  14478. 514.58 s [really-safe-money-gen] - ]
  14479. 514.58 s [really-safe-money-gen] + [ genericValidate ma,
  14480. 514.58 s [really-safe-money-gen] + decorateMap m $ \_ a ->
  14481. 514.58 s [really-safe-money-gen] + declare "The amount is not zero" $
  14482. 514.58 s [really-safe-money-gen] + a /= Amount.zero
  14483. 514.58 s [really-safe-money-gen] + ]
  14484. 514.58 s [really-safe-money-gen]
  14485. 514.58 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  14486. 514.58 s [really-safe-money-gen]
  14487. 514.58 s [really-safe-money-gen]
  14488. 514.58 s [really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
  14489. 514.58 s [really-safe-money-gen] @@ -60,11 +60,7 @@
  14490. 514.58 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  14491. 514.58 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  14492. 514.58 s [really-safe-money-gen] mconcat
  14493. 514.58 s [really-safe-money-gen] - [ genericValidate ma,
  14494. 514.58 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  14495. 514.58 s [really-safe-money-gen] - declare "The amount is not zero" $
  14496. 514.58 s [really-safe-money-gen] - a /= Amount.zero
  14497. 514.58 s [really-safe-money-gen] - ]
  14498. 514.58 s [really-safe-money-gen] + []
  14499. 514.58 s [really-safe-money-gen]
  14500. 514.58 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  14501. 514.58 s [really-safe-money-gen]
  14502. 514.58 s [really-safe-money-gen]
  14503. 514.59 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
  14504. 514.59 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  14505. 514.59 s [really-safe-money-gen] [ genericValidate ma,
  14506. 514.59 s [really-safe-money-gen] decorateMap m $ \_ a ->
  14507. 514.59 s [really-safe-money-gen] declare "The amount is not zero" $
  14508. 514.59 s [really-safe-money-gen] - a /= Amount.zero
  14509. 514.59 s [really-safe-money-gen] + True
  14510. 514.59 s [really-safe-money-gen] ]
  14511. 514.59 s [really-safe-money-gen]
  14512. 514.59 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  14513. 514.59 s [really-safe-money-gen]
  14514. 514.59 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
  14515. 514.59 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  14516. 514.59 s [really-safe-money-gen] Just a -> do
  14517. 514.59 s [really-safe-money-gen] r <- Amount.add a amount
  14518. 514.59 s [really-safe-money-gen] Just $
  14519. 514.59 s [really-safe-money-gen] - if r == Amount.zero
  14520. 514.59 s [really-safe-money-gen] + if False
  14521. 514.59 s [really-safe-money-gen] then M.delete currency m
  14522. 514.59 s [really-safe-money-gen] else M.insert currency r m
  14523. 514.59 s [really-safe-money-gen]
  14524. 514.59 s [really-safe-money-gen]
  14525. 514.59 s [really-safe-money-gen] CondFlip at src/Money/MultiAmount.hs:119:9-37
  14526. 514.59 s [really-safe-money-gen] @@ -116,9 +116,9 @@
  14527. 514.59 s [really-safe-money-gen] Just a -> do
  14528. 514.59 s [really-safe-money-gen] r <- Amount.subtract a amount
  14529. 514.59 s [really-safe-money-gen] Just $
  14530. 514.59 s [really-safe-money-gen] - if r == Amount.zero
  14531. 514.59 s [really-safe-money-gen] - then M.delete currency m
  14532. 514.59 s [really-safe-money-gen] - else M.insert currency r m
  14533. 514.59 s [really-safe-money-gen] + if r == Amount.zero
  14534. 514.59 s [really-safe-money-gen] + then M.delete currency m
  14535. 514.59 s [really-safe-money-gen] + else M.insert currency r m
  14536. 514.59 s [really-safe-money-gen] ld not read string as a DecimalLiteral:", s]
  14537. 514.59 s [really-safe-money-gen] + Nothing -> Left $ unwords []
  14538. 514.59 s [really-safe-money-gen] Just a -> Right a
  14539. 514.59 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
  14540. 514.59 s [really-safe-money-gen] @@ -37,5 +37,5 @@
  14541. 514.59 s [really-safe-money-gen] where
  14542. 514.59 s [really-safe-money-gen] f :: String -> Either String DecimalLiteral
  14543. 514.59 s [really-safe-money-gen] f s = case DecimalLiteral.fromString s of
  14544. 514.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  14545. 514.59 s [really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
  14546. 514.59 s [really-safe-money-gen] Just a -> Right a
  14547. 514.59 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
  14548. 514.59 s [really-safe-money-gen] @@ -48,7 +48,7 @@
  14549. 514.59 s [really-safe-money-gen] where
  14550. 514.59 s [really-safe-money-gen] f :: String -> Either String Account
  14551. 514.59 s [really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
  14552. 514.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
  14553. 514.59 s [really-safe-money-gen] + Nothing -> Left $ unwords []
  14554. 514.59 s [really-safe-money-gen] Just a -> Right a
  14555. 514.59 s [really-safe-money-gen] g :: Account -> String
  14556. 514.59 s [really-safe-money-gen] g = show . Account.toMinimalQuantisations
  14557. 514.59 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
  14558. 514.59 s [really-safe-money-gen] @@ -44,7 +44,7 @@
  14559. 514.59 s [really-safe-money-gen] where
  14560. 514.59 s [really-safe-money-gen] f :: String -> Either String Amount
  14561. 514.59 s [really-safe-money-gen] f s = case readMaybe s of
  14562. 514.59 s [really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14563. 514.59 s [really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14564. 514.59 s [really-safe-money-gen] Just i ->
  14565. 514.59 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14566. 514.59 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14567. 514.59 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26
  14568. 514.59 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  14569. 514.59 s [really-safe-money-gen] amount :: Amount
  14570. 514.59 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  14571. 514.59 s [really-safe-money-gen] in Just $
  14572. 514.59 s [really-safe-money-gen] - if i >= 0
  14573. 514.59 s [really-safe-money-gen] + if not (i >= 0)
  14574. 514.59 s [really-safe-money-gen] then Positive amount
  14575. 514.59 s [really-safe-money-gen] else Negative amount
  14576. 514.59 s [really-safe-money-gen]
  14577. 514.59 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
  14578. 514.59 s [really-safe-money-gen] @@ -47,7 +47,7 @@
  14579. 514.59 s [really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
  14580. 514.59 s [really-safe-money-gen] Just i ->
  14581. 514.59 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14582. 514.59 s [really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14583. 514.59 s [really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14584. 514.59 s [really-safe-money-gen] else
  14585. 514.59 s [really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
  14586. 514.59 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14587. 514.59 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26
  14588. 514.59 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  14589. 514.59 s [really-safe-money-gen] amount :: Amount
  14590. 514.59 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  14591. 514.59 s [really-safe-money-gen] in Just $
  14592. 514.59 s [really-safe-money-gen] - if i >= 0
  14593. 514.59 s [really-safe-money-gen] + if i >= 1
  14594. 514.59 s [really-safe-money-gen] then Positive amount
  14595. 514.59 s [really-safe-money-gen] else Negative amount
  14596. 514.59 s [really-safe-money-gen]
  14597. 514.59 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
  14598. 514.59 s [really-safe-money-gen] @@ -49,7 +49,7 @@
  14599. 514.59 s [really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
  14600. 514.59 s [really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
  14601. 514.59 s [really-safe-money-gen] else
  14602. 514.59 s [really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
  14603. 514.59 s [really-safe-money-gen] + if True
  14604. 514.59 s [really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
  14605. 514.59 s [really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
  14606. 514.59 s [really-safe-money-gen] g :: Amount -> String
  14607. 514.59 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18
  14608. 514.59 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  14609. 514.59 s [really-safe-money-gen] fraction rounding account f =
  14610. 514.59 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  14611. 514.59 s [really-safe-money-gen] ro =
  14612. 514.59 s [really-safe-money-gen] - if f >= 0
  14613. 514.59 s [really-safe-money-gen] + if f >= 1
  14614. 514.59 s [really-safe-money-gen] then rounding
  14615. 514.59 s [really-safe-money-gen] else case rounding of
  14616. 514.59 s [really-safe-money-gen] RoundUp -> RoundDown
  14617. 514.59 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20
  14618. 514.59 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  14619. 514.59 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  14620. 514.59 s [really-safe-money-gen] fromDouble quantisationFactor d =
  14621. 514.59 s [really-safe-money-gen] let d' = Prelude.abs d
  14622. 514.59 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  14623. 514.59 s [really-safe-money-gen] + f = if d >= 1 then Positive else Negative
  14624. 514.59 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  14625. 514.59 s [really-safe-money-gen]
  14626. 514.59 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  14627. 514.59 s [really-safe-money-gen]
  14628. 514.59 s [really-safe-money-gen] -- | Try to convert every amount to one currency.
  14629. 514.59 s [really-safe-money-gen] --
  14630. 514.59 s [really-safe-money-gen]
  14631. 514.59 s [really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
  14632. 514.59 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  14633. 514.59 s [really-safe-money-gen] Just a -> do
  14634. 514.59 s [really-safe-money-gen] r <- Amount.subtract a amount
  14635. 514.59 s [really-safe-money-gen] Just $
  14636. 514.59 s [really-safe-money-gen] - if r == Amount.zero
  14637. 514.59 s [really-safe-money-gen] + if not (r == Amount.zero)
  14638. 514.59 s [really-safe-money-gen] then M.delete currency m
  14639. 514.59 s [really-safe-money-gen] else M.insert currency r m
  14640. 514.59 s [really-safe-money-gen]
  14641. 514.59 s [really-safe-money-gen]
  14642. 514.59 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  14643. 514.59 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  14644. 514.59 s [really-safe-money-gen] Just a -> do
  14645. 514.59 s [really-safe-money-gen] r <- Amount.subtract a amount
  14646. 514.59 s [really-safe-money-gen] Just $
  14647. 514.59 s [really-safe-money-gen] - if r == Amount.zero
  14648. 514.59 s [really-safe-money-gen] + if False
  14649. 514.59 s [really-safe-money-gen] then M.delete currency m
  14650. 514.59 s [really-safe-money-gen] else M.insert currency r m
  14651. 514.59 s [really-safe-money-gen]
  14652. 514.59 s [really-safe-money-gen]
  14653. 514.59 s [really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
  14654. 514.59 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  14655. 514.59 s [really-safe-money-gen] Just a -> do
  14656. 514.59 s [really-safe-money-gen] r <- Amount.subtract a amount
  14657. 514.59 s [really-safe-money-gen] Just $
  14658. 514.59 s [really-safe-money-gen] - if r == Amount.zero
  14659. 514.59 s [really-safe-money-gen] + if True
  14660. 514.59 s [really-safe-money-gen] then M.delete currency m
  14661. 514.59 s [really-safe-money-gen] else M.insert currency r m
  14662. 514.59 s [really-safe-money-gen]
  14663. 514.59 s [really-safe-money-gen]
  14664. 514.59 s [really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
  14665. 514.59 s [really-safe-money-gen] @@ -34,9 +34,9 @@
  14666. 514.59 s [really-safe-money-gen] instance Validity ConversionRate where
  14667. 514.59 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  14668. 514.59 s [really-safe-money-gen] mconcat
  14669. 514.59 s [really-safe-money-gen] - [ genericValidate cr,
  14670. 514.59 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  14671. 514.59 s [really-safe-money-gen] - ]
  14672. 514.59 s [really-safe-money-gen] + [ genericValidate cr,
  14673. 514.59 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 0
  14674. 514.59 s [really-safe-money-gen] + ]
  14675. 514.59 s [really-safe-money-gen]
  14676. 514.59 s [really-safe-money-gen] instance NFData ConversionRate
  14677. 514.59 s [really-safe-money-gen]
  14678. 514.59 s [really-safe-money-gen]
  14679. 514.59 s [really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
  14680. 514.59 s [really-safe-money-gen] @@ -34,9 +34,7 @@
  14681. 514.60 s [really-safe-money-gen] instance Validity ConversionRate where
  14682. 514.60 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  14683. 514.60 s [really-safe-money-gen] mconcat
  14684. 514.60 s [really-safe-money-gen] - [ genericValidate cr,
  14685. 514.60 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  14686. 514.60 s [really-safe-money-gen] - ]
  14687. 514.60 s [really-safe-money-gen] + []
  14688. 514.60 s [really-safe-money-gen]
  14689. 514.60 s [really-safe-money-gen] instance NFData ConversionRate
  14690. 514.60 s [really-safe-money-gen]
  14691. 514.60 s [really-safe-money-gen]
  14692. 514.60 s [really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57
  14693. 514.60 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  14694. 514.60 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  14695. 514.60 s [really-safe-money-gen] mconcat
  14696. 514.60 s [really-safe-money-gen] [ genericValidate cr,
  14697. 514.60 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  14698. 514.60 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  14699. 514.60 s [really-safe-money-gen] ]
  14700. 514.60 s [really-safe-money-gen]
  14701. 514.60 s [really-safe-money-gen] instance NFData ConversionRate
  14702. 514.60 s [really-safe-money-gen]
  14703. 514.60 s [really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
  14704. 514.60 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  14705. 514.60 s [really-safe-money-gen]
  14706. 514.60 s [really-safe-money-gen] -- | One-to-one conversion rate
  14707. 514.60 s [really-safe-money-gen] oneToOne :: ConversionRate
  14708. 514.60 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  14709. 514.60 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  14710. 514.60 s [really-safe-money-gen]
  14711. 514.60 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  14712. 514.60 s [really-safe-money-gen] --
  14713. 514.60 s [really-safe-money-gen]
  14714. 514.60 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  14715. 514.60 s [really-safe-money-gen] @@ -63,11 +63,11 @@
  14716. 514.60 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  14717. 514.60 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  14718. 514.60 s [really-safe-money-gen] mconcat
  14719. 514.60 s [really-safe-money-gen] - [ genericValidate ma,
  14720. 514.60 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  14721. 514.60 s [really-safe-money-gen] - declare "The account is not zero" $
  14722. 514.60 s [really-safe-money-gen] - a /= Account.zero
  14723. 514.60 s [really-safe-money-gen] - ]
  14724. 514.60 s [really-safe-money-gen] + [ genericValidate ma,
  14725. 514.60 s [really-safe-money-gen] + decorateMap m $ \_ a ->
  14726. 514.60 s [really-safe-money-gen] + declare "The account is not zero" $
  14727. 514.60 s [really-safe-money-gen] + a /= Account.zero
  14728. 514.60 s [really-safe-money-gen] + ]
  14729. 514.60 s [really-safe-money-gen]
  14730. 514.60 s [really-safe-money-gen] -- TODO no empty currencies
  14731. 514.60 s [really-safe-money-gen]
  14732. 514.60 s [really-safe-money-gen]
  14733. 514.60 s [really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
  14734. 514.60 s [really-safe-money-gen] @@ -63,11 +63,7 @@
  14735. 514.60 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  14736. 514.60 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  14737. 514.60 s [really-safe-money-gen] mconcat
  14738. 514.60 s [really-safe-money-gen] - [ genericValidate ma,
  14739. 514.60 s [really-safe-money-gen] - decorateMap m $ \_ a ->
  14740. 514.60 s [really-safe-money-gen] - declare "The account is not zero" $
  14741. 514.60 s [really-safe-money-gen] - a /= Account.zero
  14742. 514.60 s [really-safe-money-gen] - ]
  14743. 514.60 s [really-safe-money-gen] + []
  14744. 514.60 s [really-safe-money-gen]
  14745. 514.60 s [really-safe-money-gen] -- TODO no empty currencies
  14746. 514.60 s [really-safe-money-gen]
  14747. 514.60 s [really-safe-money-gen]
  14748. 514.60 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
  14749. 514.60 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  14750. 514.60 s [really-safe-money-gen] [ genericValidate ma,
  14751. 514.60 s [really-safe-money-gen] decorateMap m $ \_ a ->
  14752. 514.60 s [really-safe-money-gen] declare "The account is not zero" $
  14753. 514.60 s [really-safe-money-gen] - a /= Account.zero
  14754. 514.60 s [really-safe-money-gen] + True
  14755. 514.60 s [really-safe-money-gen] ]
  14756. 514.60 s [really-safe-money-gen]
  14757. 514.60 s [really-safe-money-gen] -- TODO no empty currencies
  14758. 514.60 s [really-safe-money-gen]
  14759. 514.60 s [really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
  14760. 514.60 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  14761. 514.60 s [really-safe-money-gen]
  14762. 514.60 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  14763. 514.60 s [really-safe-money-gen] fromAccount currency amount =
  14764. 514.60 s [really-safe-money-gen] - if amount == Account.zero
  14765. 514.60 s [really-safe-money-gen] + if True
  14766. 514.60 s [really-safe-money-gen] then zero
  14767. 514.60 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  14768. 514.60 s [really-safe-money-gen]
  14769. 514.60 s [really-safe-money-gen] checkPhase completed in 5 minutes 45 seconds
  14770. 514.60 s [really-safe-money-gen] Phase: haddockPhase
  14771. 514.75 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  14772. 514.75 s [really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
  14773. 514.75 s [really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
  14774. 514.75 s [really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
  14775. 514.96 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
  14776. 515.07 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
  14777. 515.07 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
  14778. 515.08 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
  14779. 515.09 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
  14780. 515.10 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
  14781. 515.10 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
  14782. 515.11 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
  14783. 515.11 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
  14784. 515.13 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
  14785. 515.14 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
  14786. 515.14 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
  14787. 515.15 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
  14788. 515.18 s [really-safe-money-gen] Haddock coverage:
  14789. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
  14790. 515.18 s [really-safe-money-gen] Missing documentation for:
  14791. 515.18 s [really-safe-money-gen] Module header
  14792. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
  14793. 515.18 s [really-safe-money-gen] Missing documentation for:
  14794. 515.18 s [really-safe-money-gen] Module header
  14795. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
  14796. 515.18 s [really-safe-money-gen] Missing documentation for:
  14797. 515.18 s [really-safe-money-gen] Module header
  14798. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
  14799. 515.18 s [really-safe-money-gen] Missing documentation for:
  14800. 515.18 s [really-safe-money-gen] Module header
  14801. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
  14802. 515.18 s [really-safe-money-gen] Missing documentation for:
  14803. 515.18 s [really-safe-money-gen] Module header
  14804. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
  14805. 515.18 s [really-safe-money-gen] Missing documentation for:
  14806. 515.18 s [really-safe-money-gen] Module header
  14807. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
  14808. 515.18 s [really-safe-money-gen] Missing documentation for:
  14809. 515.18 s [really-safe-money-gen] Module header
  14810. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
  14811. 515.18 s [really-safe-money-gen] Missing documentation for:
  14812. 515.18 s [really-safe-money-gen] Module header
  14813. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
  14814. 515.18 s [really-safe-money-gen] Missing documentation for:
  14815. 515.18 s [really-safe-money-gen] Module header
  14816. 515.18 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
  14817. 515.18 s [really-safe-money-gen] Missing documentation for:
  14818. 515.18 s [really-safe-money-gen] Module header
  14819. 515.18 s [really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
  14820. 515.18 s [really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
  14821. 515.18 s [really-safe-money-gen] Missing documentation for:
  14822. 515.18 s [really-safe-money-gen] Module header
  14823. 515.18 s [really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
  14824. 515.18 s [really-safe-money-gen] Missing documentation for:
  14825. 515.18 s [really-safe-money-gen] Module header
  14826. 515.18 s [really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
  14827. 515.27 s [really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
  14828. 515.27 s [really-safe-money-gen] - Money.Amount.Amount
  14829. 515.27 s [really-safe-money-gen] - Money.Amount.Distribution
  14830. 515.27 s [really-safe-money-gen] - Money.Amount.Rounding
  14831. 515.27 s [really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
  14832. 515.27 s [really-safe-money-gen] - Money.Account.Account
  14833. 515.27 s [really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
  14834. 515.27 s [really-safe-money-gen] - Money.AccountOf.AccountOf
  14835. 515.27 s [really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
  14836. 515.27 s [really-safe-money-gen] - Money.AmountOf.AmountOf
  14837. 515.27 s [really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
  14838. 515.27 s [really-safe-money-gen] - Money.ConversionRate.ConversionRate
  14839. 515.27 s [really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
  14840. 515.27 s [really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
  14841. 515.27 s [really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
  14842. 515.27 s [really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
  14843. 515.27 s [really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
  14844. 515.27 s [really-safe-money-gen] - Money.Currency.Currency
  14845. 515.27 s [really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
  14846. 515.27 s [really-safe-money-gen] - Money.MultiAmount.MultiAmount
  14847. 515.27 s [really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
  14848. 515.27 s [really-safe-money-gen] - Money.MultiAccount.MultiAccount
  14849. 515.27 s [really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
  14850. 515.27 s [really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
  14851. 519.65 s [really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
  14852. 519.65 s [really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
  14853. 519.74 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  14854. 519.74 s [really-safe-money-gen] Phase: installPhase
  14855. 519.81 s [really-safe-money-gen] Installing library in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
  14856. 520.12 s [really-safe-money-gen] Phase: fixupPhase
  14857. 520.14 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0
  14858. 520.15 s [really-safe-money-gen] shrinking /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h-ghc9.10.3.so
  14859. 520.16 s [really-safe-money-gen] checking for references to /build/ in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0...
  14860. 520.18 s [really-safe-money-gen] patching script interpreter paths in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0
  14861. 520.19 s [really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib
  14862. 520.24 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc
  14863. 520.25 s [really-safe-money-gen] checking for references to /build/ in /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc...
  14864. 520.27 s [really-safe-money-gen] patching script interpreter paths in /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc
  14865. 520.27 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/vg6f0y05y5k8w3rnrxizrh8zi7pbr6cx-really-safe-money-gen-0.0.0.0-report
  14866. 520.28 s [really-safe-money-gen] checking for references to /build/ in /nix/store/vg6f0y05y5k8w3rnrxizrh8zi7pbr6cx-really-safe-money-gen-0.0.0.0-report...
  14867. 520.30 s [really-safe-money-gen] patching script interpreter paths in /nix/store/vg6f0y05y5k8w3rnrxizrh8zi7pbr6cx-really-safe-money-gen-0.0.0.0-report
  14868. 520.42 s Progress: 12 of 13 built