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=per-test-coverage-manifest&rev=0c98514f61d4674ccdd44033a56a0970c338d346#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
  2. 1.60 s warning: ignoring untrusted flake configuration setting 'extra-substituters'.
  3. 1.60 s Pass '--accept-flake-config' to trust it
  4. 1.60 s warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
  5. 1.60 s Pass '--accept-flake-config' to trust it
  6. 1.62 s error (ignored): SQLite database '/var/cache/private/nix-ci-worker/eval-cache-v6/0440c31626b8b260f59f5aba34d57ace51c68d1a879d1dbc1e97a5aef9047188.sqlite' is busy
  7. 3.08 s
  8. 3.61 s Downloading cached really-safe-money-0.0.0.0-manifest from https://cache.staging.nix-ci.com
  9. 3.61 s Downloading cached really-safe-money-gen-source from https://cache.staging.nix-ci.com
  10. 3.61 s Downloading cached really-safe-money from https://cache.staging.nix-ci.com
  11. 3.61 s Downloading cached genvalidity-sydtest-1.0.1.0-doc from https://cache.staging.nix-ci.com
  12. 3.61 s Downloading cached genvalidity-vector-1.0.0.0-doc from https://cache.staging.nix-ci.com
  13. 3.63 s Progress: 0 of 6 built, 1 of 7 downloaded from cache (4 downloading)
  14. 3.64 s Progress: 0 of 5 built, 2 of 7 downloaded from cache (3 downloading)
  15. 3.74 s Progress: 0 of 4 built, 3 of 7 downloaded from cache (2 downloading)
  16. 3.74 s Downloading cached genvalidity-sydtest from https://cache.staging.nix-ci.com
  17. 3.74 s Progress: 0 of 4 built, 4 of 7 downloaded from cache (2 downloading)
  18. 3.74 s Downloading cached genvalidity-vector from https://cache.staging.nix-ci.com
  19. 4.19 s Progress: 0 of 4 built, 5 of 7 downloaded from cache (2 downloading)
  20. 4.21 s Progress: 0 of 3 built, 6 of 7 downloaded from cache (1 downloading)
  21. 4.24 s Progress: 0 of 2 built, 7 of 7 downloaded from cache
  22. 4.62 s Building really-safe-money-gen
  23. 5.02 s [really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
  24. 5.06 s [really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
  25. 5.53 s [really-safe-money-gen] Phase: unpackPhase
  26. 5.53 s [really-safe-money-gen] unpacking source archive /nix/store/63wmak6bzfj7m79zx305wv2mlkcngfia-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
  27. 5.54 s [really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
  28. 5.55 s [really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778584409 of file "really-safe-money-gen-0.0.0.0/test/Spec.hs"
  29. 5.55 s [really-safe-money-gen] Phase: patchPhase
  30. 5.56 s [really-safe-money-gen] Phase: compileBuildDriverPhase
  31. 5.57 s [really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.P2VoRuZu5n/setup-package.conf.d -threaded
  32. 5.62 s [really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.P2VoRuZu5n/Main.o )
  33. 5.67 s [really-safe-money-gen] [2 of 2] Linking Setup
  34. 7.18 s [really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
  35. 7.22 s [really-safe-money-gen] Phase: configurePhase
  36. 7.22 s [really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-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.P2VoRuZu5n/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
  37. 7.23 s [really-safe-money-gen] Using Parsec parser
  38. 7.23 s [really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
  39. 7.86 s [really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
  40. 7.86 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  41. 7.86 s [really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
  42. 7.86 s [really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
  43. 7.86 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  44. 7.86 s [really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
  45. 7.86 s [really-safe-money-gen] Dependency containers: using containers-0.7
  46. 7.86 s [really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
  47. 7.86 s [really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
  48. 7.86 s [really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
  49. 7.86 s [really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
  50. 7.86 s [really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
  51. 7.86 s [really-safe-money-gen] Dependency vector: using vector-0.13.2.0
  52. 7.86 s [really-safe-money-gen] Source component graph:
  53. 7.86 s [really-safe-money-gen] component lib
  54. 7.86 s [really-safe-money-gen] component test:really-safe-money-test dependency lib
  55. 7.86 s [really-safe-money-gen] Configured component graph:
  56. 7.86 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR
  57. 7.86 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  58. 7.86 s [really-safe-money-gen] include base-4.20.2.0-64da
  59. 7.86 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  60. 7.86 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  61. 7.86 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  62. 7.86 s [really-safe-money-gen] component really-safe-money-gen-0.0.0.0-5RtWE2oTQ4oDcSh2XAEB3R-really-safe-money-test
  63. 7.86 s [really-safe-money-gen] include base-4.20.2.0-64da
  64. 7.86 s [really-safe-money-gen] include containers-0.7-504a
  65. 7.86 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-DnaceRcSjVA3T3KoaUTTYa
  66. 7.86 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  67. 7.86 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  68. 7.86 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR
  69. 7.86 s [really-safe-money-gen] include sydtest-0.23.0.2-4ibn0aXkbvH1bwl6HX1vB8
  70. 7.86 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  71. 7.86 s [really-safe-money-gen] Linked component graph:
  72. 7.86 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR
  73. 7.86 s [really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  74. 7.86 s [really-safe-money-gen] include base-4.20.2.0-64da
  75. 7.86 s [really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  76. 7.86 s [really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  77. 7.86 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  78. 7.86 s [really-safe-money-gen] Money.Account.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.Account.Gen,Money.AccountOf.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.AccountOf.Gen,Money.Amount.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.Amount.Gen,Money.AmountOf.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.AmountOf.Gen,Money.ConversionRate.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.ConversionRate.Gen,Money.ConversionRateOf.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.ConversionRateOf.Gen,Money.Currency.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.Currency.Gen,Money.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.Gen,Money.MultiAccount.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.MultiAccount.Gen,Money.MultiAmount.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.MultiAmount.Gen,Money.QuantisationFactor.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Money.QuantisationFactor.Gen,Numeric.DecimalLiteral.Gen=really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR:Numeric.DecimalLiteral.Gen
  79. 7.86 s [really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-5RtWE2oTQ4oDcSh2XAEB3R-really-safe-money-test
  80. 7.86 s [really-safe-money-gen] include base-4.20.2.0-64da
  81. 7.86 s [really-safe-money-gen] include containers-0.7-504a
  82. 7.86 s [really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-DnaceRcSjVA3T3KoaUTTYa
  83. 7.86 s [really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  84. 7.86 s [really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  85. 7.86 s [really-safe-money-gen] include really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR
  86. 7.86 s [really-safe-money-gen] include sydtest-0.23.0.2-4ibn0aXkbvH1bwl6HX1vB8
  87. 7.86 s [really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  88. 7.86 s [really-safe-money-gen] Ready component graph:
  89. 7.86 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR
  90. 7.86 s [really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
  91. 7.86 s [really-safe-money-gen] depends base-4.20.2.0-64da
  92. 7.86 s [really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
  93. 7.86 s [really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
  94. 7.86 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  95. 7.86 s [really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-5RtWE2oTQ4oDcSh2XAEB3R-really-safe-money-test
  96. 7.86 s [really-safe-money-gen] depends base-4.20.2.0-64da
  97. 7.86 s [really-safe-money-gen] depends containers-0.7-504a
  98. 7.86 s [really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-DnaceRcSjVA3T3KoaUTTYa
  99. 7.86 s [really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
  100. 7.86 s [really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
  101. 7.86 s [really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-KTRUiMX2w2iErncFnvROeR
  102. 7.86 s [really-safe-money-gen] depends sydtest-0.23.0.2-4ibn0aXkbvH1bwl6HX1vB8
  103. 7.86 s [really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
  104. 7.86 s [really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
  105. 7.86 s [really-safe-money-gen] Using compiler: ghc-9.10.3
  106. 7.86 s [really-safe-money-gen] Using install prefix:
  107. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0
  108. 7.86 s [really-safe-money-gen] Executables installed in:
  109. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0/bin
  110. 7.86 s [really-safe-money-gen] Libraries installed in:
  111. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-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-KTRUiMX2w2iErncFnvROeR
  112. 7.86 s [really-safe-money-gen] Dynamic Libraries installed in:
  113. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
  114. 7.86 s [really-safe-money-gen] Private executables installed in:
  115. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-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
  116. 7.86 s [really-safe-money-gen] Data files installed in:
  117. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-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
  118. 7.86 s [really-safe-money-gen] Documentation installed in:
  119. 7.86 s [really-safe-money-gen] /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
  120. 7.86 s [really-safe-money-gen] Configuration files installed in:
  121. 7.86 s [really-safe-money-gen] /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0/etc
  122. 7.86 s [really-safe-money-gen] No alex found
  123. 7.86 s [really-safe-money-gen] Using ar found on system at:
  124. 7.86 s [really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
  125. 7.86 s [really-safe-money-gen] No c2hs found
  126. 7.86 s [really-safe-money-gen] No cpphs found
  127. 7.86 s [really-safe-money-gen] No doctest found
  128. 7.86 s [really-safe-money-gen] Using gcc version 14.3.0 given by user at:
  129. 7.86 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
  130. 7.86 s [really-safe-money-gen] Using ghc version 9.10.3 found on system at:
  131. 7.87 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
  132. 7.87 s [really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
  133. 7.87 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
  134. 7.87 s [really-safe-money-gen] No ghcjs found
  135. 7.87 s [really-safe-money-gen] No ghcjs-pkg found
  136. 7.87 s [really-safe-money-gen] No greencard found
  137. 7.87 s [really-safe-money-gen] Using haddock version 2.31.1 found on system at:
  138. 7.87 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
  139. 7.87 s [really-safe-money-gen] No happy found
  140. 7.87 s [really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
  141. 7.87 s [really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
  142. 7.87 s [really-safe-money-gen] No hmake found
  143. 7.87 s [really-safe-money-gen] Using hpc version 0.69 found on system at:
  144. 7.87 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
  145. 7.87 s [really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
  146. 7.87 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
  147. 7.87 s [really-safe-money-gen] Using hscolour version 1.25 found on system at:
  148. 7.87 s [really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
  149. 7.87 s [really-safe-money-gen] No jhc found
  150. 7.87 s [really-safe-money-gen] Using ld found on system at:
  151. 7.87 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
  152. 7.87 s [really-safe-money-gen] No pkg-config found
  153. 7.87 s [really-safe-money-gen] Using runghc version 9.10.3 found on system at:
  154. 7.87 s [really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
  155. 7.87 s [really-safe-money-gen] Using strip version 2.44 found on system at:
  156. 7.87 s [really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
  157. 7.87 s [really-safe-money-gen] Using tar found on system at:
  158. 7.87 s [really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
  159. 7.87 s [really-safe-money-gen] No uhc found
  160. 8.24 s [really-safe-money-gen] Phase: buildPhase
  161. 8.31 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  162. 8.32 s [really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
  163. 8.64 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 )
  164. 8.94 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 )
  165. 9.11 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 )
  166. 9.16 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 )
  167. 9.16 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 )
  168. 9.16 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 )
  169. 9.16 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 )
  170. 9.16 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 )
  171. 9.16 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 )
  172. 9.17 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 )
  173. 9.22 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 )
  174. 9.30 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 )
  175. 9.30 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 )
  176. 9.46 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
  177. 9.99 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
  178. 10.14 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
  179. 10.27 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
  180. 10.32 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
  181. 10.32 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
  182. 10.32 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
  183. 10.32 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
  184. 10.32 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
  185. 10.32 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
  186. 10.32 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
  187. 10.41 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
  188. 10.41 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 )
  189. 11.86 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  190. 11.86 s [really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  191. 12.02 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 )
  192. 14.66 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 )
  193. 14.81 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 )
  194. 14.81 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 )
  195. 14.81 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 )
  196. 14.81 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 )
  197. 14.81 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 )
  198. 14.81 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 )
  199. 14.81 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 )
  200. 14.81 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 )
  201. 14.81 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 )
  202. 14.81 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 )
  203. 14.81 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 )
  204. 14.87 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 )
  205. 15.18 s [really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
  206. 16.99 s [really-safe-money-gen] Phase: checkPhase
  207. 17.01 s [really-safe-money-gen] mutation-nix: collecting per-test coverage
  208. 389.00 s [really-safe-money-gen] mutation-nix: running mutations
  209. 389.20 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46:
  210. 389.22 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  211. 389.22 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  212. 389.22 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  213. 389.22 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  214. 389.23 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  215. 389.23 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
  216. 389.23 s [really-safe-money-gen]
  217. 389.23 s [really-safe-money-gen] -- | Compose two conversion rates
  218. 389.23 s [really-safe-money-gen] --
  219. 389.23 s [really-safe-money-gen]
  220. 389.31 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46:
  221. 389.31 s [really-safe-money-gen] @@ -113,7 +113,7 @@
  222. 389.31 s [really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
  223. 389.31 s [really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
  224. 389.31 s [really-safe-money-gen] invert :: ConversionRate -> ConversionRate
  225. 389.31 s [really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
  226. 389.31 s [really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
  227. 389.31 s [really-safe-money-gen]
  228. 389.31 s [really-safe-money-gen] -- | Compose two conversion rates
  229. 389.31 s [really-safe-money-gen] --
  230. 389.31 s [really-safe-money-gen]
  231. 389.41 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28:
  232. 389.41 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  233. 389.41 s [really-safe-money-gen]
  234. 389.41 s [really-safe-money-gen] -- | One-to-one conversion rate
  235. 389.41 s [really-safe-money-gen] oneToOne :: ConversionRate
  236. 389.41 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  237. 389.41 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  238. 389.41 s [really-safe-money-gen]
  239. 389.41 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  240. 389.41 s [really-safe-money-gen] --
  241. 389.41 s [really-safe-money-gen]
  242. 389.54 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28:
  243. 389.54 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  244. 389.54 s [really-safe-money-gen]
  245. 389.54 s [really-safe-money-gen] -- | One-to-one conversion rate
  246. 389.54 s [really-safe-money-gen] oneToOne :: ConversionRate
  247. 389.54 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  248. 389.54 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  249. 389.55 s [really-safe-money-gen]
  250. 389.55 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  251. 389.55 s [really-safe-money-gen] --
  252. 389.55 s [really-safe-money-gen]
  253. 389.68 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26:
  254. 389.68 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  255. 389.68 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  256. 389.68 s [really-safe-money-gen] -- Nothing
  257. 389.68 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  258. 389.68 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  259. 389.68 s [really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
  260. 389.68 s [really-safe-money-gen]
  261. 389.68 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  262. 389.68 s [really-safe-money-gen] --
  263. 389.68 s [really-safe-money-gen]
  264. 389.84 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26:
  265. 389.84 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  266. 389.84 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  267. 389.84 s [really-safe-money-gen] -- Nothing
  268. 389.84 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  269. 389.84 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  270. 389.84 s [really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
  271. 389.84 s [really-safe-money-gen]
  272. 389.84 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  273. 389.84 s [really-safe-money-gen] --
  274. 389.84 s [really-safe-money-gen]
  275. 390.00 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26:
  276. 390.00 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  277. 390.00 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  278. 390.00 s [really-safe-money-gen] -- Nothing
  279. 390.00 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  280. 390.00 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  281. 390.01 s [really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
  282. 390.01 s [really-safe-money-gen]
  283. 390.01 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  284. 390.01 s [really-safe-money-gen] --
  285. 390.01 s [really-safe-money-gen]
  286. 390.17 s [really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26:
  287. 390.17 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  288. 390.17 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  289. 390.17 s [really-safe-money-gen] -- Nothing
  290. 390.17 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  291. 390.17 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  292. 390.17 s [really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
  293. 390.18 s [really-safe-money-gen]
  294. 390.18 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  295. 390.18 s [really-safe-money-gen] --
  296. 390.18 s [really-safe-money-gen]
  297. 390.34 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/ConversionRate.hs:72:18-69:
  298. 390.34 s [really-safe-money-gen] @@ -69,7 +69,7 @@
  299. 390.34 s [really-safe-money-gen] -- >>> fromRational (0 % 1)
  300. 390.34 s [really-safe-money-gen] -- Nothing
  301. 390.34 s [really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
  302. 390.34 s [really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  303. 390.35 s [really-safe-money-gen] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
  304. 390.35 s [really-safe-money-gen]
  305. 390.35 s [really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
  306. 390.35 s [really-safe-money-gen] --
  307. 390.35 s [really-safe-money-gen]
  308. 390.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57:
  309. 390.51 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  310. 390.51 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  311. 390.51 s [really-safe-money-gen] mconcat
  312. 390.51 s [really-safe-money-gen] [ genericValidate cr,
  313. 390.51 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  314. 390.51 s [really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
  315. 390.51 s [really-safe-money-gen] ]
  316. 390.51 s [really-safe-money-gen]
  317. 390.51 s [really-safe-money-gen] instance NFData ConversionRate
  318. 390.51 s [really-safe-money-gen]
  319. 390.61 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57:
  320. 390.61 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  321. 390.61 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  322. 390.61 s [really-safe-money-gen] mconcat
  323. 390.61 s [really-safe-money-gen] [ genericValidate cr,
  324. 390.61 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  325. 390.61 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  326. 390.61 s [really-safe-money-gen] ]
  327. 390.61 s [really-safe-money-gen]
  328. 390.61 s [really-safe-money-gen] instance NFData ConversionRate
  329. 390.61 s [really-safe-money-gen]
  330. 400.10 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28:
  331. 400.10 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  332. 400.12 s [really-safe-money-gen]
  333. 400.12 s [really-safe-money-gen] -- | One-to-one conversion rate
  334. 400.12 s [really-safe-money-gen] oneToOne :: ConversionRate
  335. 400.12 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  336. 400.12 s [really-safe-money-gen] +oneToOne = ConversionRate 0
  337. 400.12 s [really-safe-money-gen]
  338. 400.12 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  339. 400.12 s [really-safe-money-gen] --
  340. 400.12 s [really-safe-money-gen] Tests:
  341. 400.12 s [really-safe-money-gen]
  342. 400.12 s [really-safe-money-gen] Money.MultiAmountSpec
  343. 400.12 s [really-safe-money-gen] convertAll
  344. 400.12 s [really-safe-money-gen] produces valid results when converting two currencies to one 39.28 ms
  345. 400.12 s [really-safe-money-gen] passed for all of 1000 inputs.
  346. 400.12 s [really-safe-money-gen]
  347. 400.12 s [really-safe-money-gen]
  348. 400.12 s [really-safe-money-gen]
  349. 400.12 s [really-safe-money-gen] Examples: 1000
  350. 400.12 s [really-safe-money-gen] Passed: 1
  351. 400.12 s [really-safe-money-gen] Failed: 0
  352. 400.12 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  353. 400.12 s [really-safe-money-gen] Test suite took: 0.04 seconds
  354. 400.12 s [really-safe-money-gen]
  355. 400.12 s [really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28:
  356. 400.12 s [really-safe-money-gen] @@ -106,7 +106,7 @@
  357. 400.12 s [really-safe-money-gen]
  358. 400.12 s [really-safe-money-gen] -- | One-to-one conversion rate
  359. 400.12 s [really-safe-money-gen] oneToOne :: ConversionRate
  360. 400.12 s [really-safe-money-gen] -oneToOne = ConversionRate 1
  361. 400.12 s [really-safe-money-gen] +oneToOne = ConversionRate -1
  362. 400.12 s [really-safe-money-gen]
  363. 400.12 s [really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
  364. 400.12 s [really-safe-money-gen] --
  365. 400.12 s [really-safe-money-gen] Tests:
  366. 400.12 s [really-safe-money-gen]
  367. 400.12 s [really-safe-money-gen] Money.MultiAmountSpec
  368. 400.12 s [really-safe-money-gen] convertAll
  369. 400.12 s [really-safe-money-gen] produces valid results when converting two currencies to one 39.05 ms
  370. 400.12 s [really-safe-money-gen] passed for all of 1000 inputs.
  371. 400.12 s [really-safe-money-gen]
  372. 400.12 s [really-safe-money-gen]
  373. 400.12 s [really-safe-money-gen]
  374. 400.12 s [really-safe-money-gen] Examples: 1000
  375. 400.12 s [really-safe-money-gen] Passed: 1
  376. 400.12 s [really-safe-money-gen] Failed: 0
  377. 400.12 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  378. 400.12 s [really-safe-money-gen] Test suite took: 0.04 seconds
  379. 400.12 s [really-safe-money-gen]
  380. 400.12 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57:
  381. 400.12 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  382. 400.12 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  383. 400.12 s [really-safe-money-gen] mconcat
  384. 400.12 s [really-safe-money-gen] [ genericValidate cr,
  385. 400.12 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  386. 400.12 s [really-safe-money-gen] + declare "The rate is nonzero" $ True
  387. 400.12 s [really-safe-money-gen] ]
  388. 400.12 s [really-safe-money-gen]
  389. 400.12 s [really-safe-money-gen] instance NFData ConversionRate
  390. 400.12 s [really-safe-money-gen] Tests:
  391. 400.12 s [really-safe-money-gen]
  392. 400.12 s [really-safe-money-gen] Money.ConversionRateSpec
  393. 400.12 s [really-safe-money-gen] Rational
  394. 400.12 s [really-safe-money-gen] fromRational
  395. 400.12 s [really-safe-money-gen] roundtrips with toRational 75.47 ms
  396. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  397. 400.12 s [really-safe-money-gen] produces valid conversion rates 99.39 ms
  398. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  399. 400.12 s [really-safe-money-gen] Ratio
  400. 400.12 s [really-safe-money-gen] fromRatio
  401. 400.12 s [really-safe-money-gen] produces valid conversion rates 74.80 ms
  402. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  403. 400.12 s [really-safe-money-gen] roundtrips with toRatio 66.99 ms
  404. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  405. 400.12 s [really-safe-money-gen] invert
  406. 400.12 s [really-safe-money-gen] produces valid rates 70.94 ms
  407. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  408. 400.12 s [really-safe-money-gen] DecimalLiteral
  409. 400.12 s [really-safe-money-gen] fromDecimalLiteral
  410. 400.12 s [really-safe-money-gen] produces valid conversion rates 131.11 ms
  411. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  412. 400.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 5381.62 ms
  413. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  414. 400.12 s [really-safe-money-gen] compose
  415. 400.12 s [really-safe-money-gen] produces valid rates 119.83 ms
  416. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  417. 400.12 s [really-safe-money-gen] GenValid ConversionRate
  418. 400.12 s [really-safe-money-gen] genValid :: Gen ConversionRate
  419. 400.12 s [really-safe-money-gen] only generates valid 'ConversionRate's 61.99 ms
  420. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  421. 400.12 s [really-safe-money-gen] Money.AccountSpec
  422. 400.12 s [really-safe-money-gen] convert
  423. 400.12 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 90.86 ms
  424. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  425. 400.12 s [really-safe-money-gen] produces valid amounts 273.42 ms
  426. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  427. 400.12 s [really-safe-money-gen] converts this USD to CHF correctly 0.02 ms
  428. 400.12 s [really-safe-money-gen] rate
  429. 400.12 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 170.15 ms
  430. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  431. 400.12 s [really-safe-money-gen] produces valid conversion rates 105.84 ms
  432. 400.12 s [really-safe-money-gen] passed for all of 10000 inputs.
  433. 400.12 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  434. 400.12 s [really-safe-money-gen] Money.AccountOfSpec
  435. 400.12 s [really-safe-money-gen] USD
  436. 400.12 s [really-safe-money-gen] USD
  437. 400.12 s [really-safe-money-gen] convert
  438. 400.12 s [really-safe-money-gen] produces valid amounts 2.11 ms
  439. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  440. 400.12 s [really-safe-money-gen] rate
  441. 400.12 s [really-safe-money-gen] produces valid amounts 0.54 ms
  442. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  443. 400.12 s [really-safe-money-gen] BTC
  444. 400.12 s [really-safe-money-gen] rate
  445. 400.12 s [really-safe-money-gen] produces valid amounts 0.53 ms
  446. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  447. 400.12 s [really-safe-money-gen] convert
  448. 400.12 s [really-safe-money-gen] produces valid amounts 2.20 ms
  449. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  450. 400.12 s [really-safe-money-gen] INR
  451. 400.12 s [really-safe-money-gen] rate
  452. 400.12 s [really-safe-money-gen] produces valid amounts 0.50 ms
  453. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  454. 400.12 s [really-safe-money-gen] convert
  455. 400.12 s [really-safe-money-gen] produces valid amounts 1.60 ms
  456. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  457. 400.12 s [really-safe-money-gen] ADA
  458. 400.12 s [really-safe-money-gen] rate
  459. 400.12 s [really-safe-money-gen] produces valid amounts 1.01 ms
  460. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  461. 400.12 s [really-safe-money-gen] convert
  462. 400.12 s [really-safe-money-gen] produces valid amounts 1.73 ms
  463. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  464. 400.12 s [really-safe-money-gen] CHF
  465. 400.12 s [really-safe-money-gen] convert
  466. 400.12 s [really-safe-money-gen] produces valid amounts 2.13 ms
  467. 400.12 s [really-safe-money-gen] passed for all of 100 inputs.
  468. 400.13 s [really-safe-money-gen] rate
  469. 400.13 s [really-safe-money-gen] produces valid amounts 0.52 ms
  470. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  471. 400.13 s [really-safe-money-gen] INR
  472. 400.13 s [really-safe-money-gen] USD
  473. 400.13 s [really-safe-money-gen] convert
  474. 400.13 s [really-safe-money-gen] produces valid amounts 1.98 ms
  475. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  476. 400.13 s [really-safe-money-gen] rate
  477. 400.13 s [really-safe-money-gen] produces valid amounts 0.49 ms
  478. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  479. 400.13 s [really-safe-money-gen] CHF
  480. 400.13 s [really-safe-money-gen] rate
  481. 400.13 s [really-safe-money-gen] produces valid amounts 0.36 ms
  482. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  483. 400.13 s [really-safe-money-gen] convert
  484. 400.13 s [really-safe-money-gen] produces valid amounts 1.33 ms
  485. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  486. 400.13 s [really-safe-money-gen] BTC
  487. 400.13 s [really-safe-money-gen] rate
  488. 400.13 s [really-safe-money-gen] produces valid amounts 0.96 ms
  489. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  490. 400.13 s [really-safe-money-gen] convert
  491. 400.13 s [really-safe-money-gen] produces valid amounts 1.67 ms
  492. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  493. 400.13 s [really-safe-money-gen] ADA
  494. 400.13 s [really-safe-money-gen] convert
  495. 400.13 s [really-safe-money-gen] produces valid amounts 1.97 ms
  496. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  497. 400.13 s [really-safe-money-gen] rate
  498. 400.13 s [really-safe-money-gen] produces valid amounts 0.51 ms
  499. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  500. 400.13 s [really-safe-money-gen] INR
  501. 400.13 s [really-safe-money-gen] convert
  502. 400.13 s [really-safe-money-gen] produces valid amounts 1.78 ms
  503. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  504. 400.13 s [really-safe-money-gen] rate
  505. 400.13 s [really-safe-money-gen] produces valid amounts 0.49 ms
  506. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  507. 400.13 s [really-safe-money-gen] CHF
  508. 400.13 s [really-safe-money-gen] USD
  509. 400.13 s [really-safe-money-gen] rate
  510. 400.13 s [really-safe-money-gen] produces valid amounts 0.48 ms
  511. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  512. 400.13 s [really-safe-money-gen] convert
  513. 400.13 s [really-safe-money-gen] produces valid amounts 1.90 ms
  514. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  515. 400.13 s [really-safe-money-gen] BTC
  516. 400.13 s [really-safe-money-gen] convert
  517. 400.13 s [really-safe-money-gen] produces valid amounts 1.70 ms
  518. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  519. 400.13 s [really-safe-money-gen] rate
  520. 400.13 s [really-safe-money-gen] produces valid amounts 0.51 ms
  521. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  522. 400.13 s [really-safe-money-gen] ADA
  523. 400.13 s [really-safe-money-gen] convert
  524. 400.13 s [really-safe-money-gen] produces valid amounts 1.96 ms
  525. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  526. 400.13 s [really-safe-money-gen] rate
  527. 400.13 s [really-safe-money-gen] produces valid amounts 0.49 ms
  528. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  529. 400.13 s [really-safe-money-gen] CHF
  530. 400.13 s [really-safe-money-gen] rate
  531. 400.13 s [really-safe-money-gen] produces valid amounts 0.48 ms
  532. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  533. 400.13 s [really-safe-money-gen] convert
  534. 400.13 s [really-safe-money-gen] produces valid amounts 1.72 ms
  535. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  536. 400.13 s [really-safe-money-gen] INR
  537. 400.13 s [really-safe-money-gen] convert
  538. 400.13 s [really-safe-money-gen] produces valid amounts 1.14 ms
  539. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  540. 400.13 s [really-safe-money-gen] rate
  541. 400.13 s [really-safe-money-gen] produces valid amounts 0.73 ms
  542. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  543. 400.13 s [really-safe-money-gen] ADA
  544. 400.13 s [really-safe-money-gen] CHF
  545. 400.13 s [really-safe-money-gen] rate
  546. 400.13 s [really-safe-money-gen] produces valid amounts 0.40 ms
  547. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  548. 400.13 s [really-safe-money-gen] convert
  549. 400.13 s [really-safe-money-gen] produces valid amounts 1.25 ms
  550. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  551. 400.13 s [really-safe-money-gen] INR
  552. 400.13 s [really-safe-money-gen] rate
  553. 400.13 s [really-safe-money-gen] produces valid amounts 0.68 ms
  554. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  555. 400.13 s [really-safe-money-gen] convert
  556. 400.13 s [really-safe-money-gen] produces valid amounts 1.25 ms
  557. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  558. 400.13 s [really-safe-money-gen] ADA
  559. 400.13 s [really-safe-money-gen] convert
  560. 400.13 s [really-safe-money-gen] produces valid amounts 1.49 ms
  561. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  562. 400.13 s [really-safe-money-gen] rate
  563. 400.13 s [really-safe-money-gen] produces valid amounts 0.41 ms
  564. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  565. 400.13 s [really-safe-money-gen] BTC
  566. 400.13 s [really-safe-money-gen] convert
  567. 400.13 s [really-safe-money-gen] produces valid amounts 1.24 ms
  568. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  569. 400.13 s [really-safe-money-gen] rate
  570. 400.13 s [really-safe-money-gen] produces valid amounts 0.69 ms
  571. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  572. 400.13 s [really-safe-money-gen] USD
  573. 400.13 s [really-safe-money-gen] convert
  574. 400.13 s [really-safe-money-gen] produces valid amounts 1.28 ms
  575. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  576. 400.13 s [really-safe-money-gen] rate
  577. 400.13 s [really-safe-money-gen] produces valid amounts 0.38 ms
  578. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  579. 400.13 s [really-safe-money-gen] BTC
  580. 400.13 s [really-safe-money-gen] BTC
  581. 400.13 s [really-safe-money-gen] convert
  582. 400.13 s [really-safe-money-gen] produces valid amounts 1.91 ms
  583. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  584. 400.13 s [really-safe-money-gen] rate
  585. 400.13 s [really-safe-money-gen] produces valid amounts 0.43 ms
  586. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  587. 400.13 s [really-safe-money-gen] USD
  588. 400.13 s [really-safe-money-gen] convert
  589. 400.13 s [really-safe-money-gen] produces valid amounts 1.68 ms
  590. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  591. 400.13 s [really-safe-money-gen] rate
  592. 400.13 s [really-safe-money-gen] produces valid amounts 0.41 ms
  593. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  594. 400.13 s [really-safe-money-gen] ADA
  595. 400.13 s [really-safe-money-gen] convert
  596. 400.13 s [really-safe-money-gen] produces valid amounts 1.44 ms
  597. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  598. 400.13 s [really-safe-money-gen] rate
  599. 400.13 s [really-safe-money-gen] produces valid amounts 0.91 ms
  600. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  601. 400.13 s [really-safe-money-gen] INR
  602. 400.13 s [really-safe-money-gen] rate
  603. 400.13 s [really-safe-money-gen] produces valid amounts 0.52 ms
  604. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  605. 400.13 s [really-safe-money-gen] convert
  606. 400.13 s [really-safe-money-gen] produces valid amounts 1.79 ms
  607. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  608. 400.13 s [really-safe-money-gen] CHF
  609. 400.13 s [really-safe-money-gen] rate
  610. 400.13 s [really-safe-money-gen] produces valid amounts 0.90 ms
  611. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  612. 400.13 s [really-safe-money-gen] convert
  613. 400.13 s [really-safe-money-gen] produces valid amounts 1.81 ms
  614. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  615. 400.13 s [really-safe-money-gen] Money.ConversionRateOfSpec
  616. 400.13 s [really-safe-money-gen] INR
  617. 400.13 s [really-safe-money-gen] ADA
  618. 400.13 s [really-safe-money-gen] Ratio
  619. 400.13 s [really-safe-money-gen] fromRatio
  620. 400.13 s [really-safe-money-gen] roundtrips with toRatio 1.09 ms
  621. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  622. 400.13 s [really-safe-money-gen] produces valid conversion rates 0.81 ms
  623. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  624. 400.13 s [really-safe-money-gen] GenValid (ConversionRateOf INR ADA)
  625. 400.13 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR ADA)
  626. 400.13 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR ADA)'s 0.67 ms
  627. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  628. 400.13 s [really-safe-money-gen] Rational
  629. 400.13 s [really-safe-money-gen] fromRational
  630. 400.13 s [really-safe-money-gen] produces valid conversion rates 1.10 ms
  631. 400.13 s [really-safe-money-gen] passed for all of 100 inputs.
  632. 400.13 s [really-safe-money-gen] roundtrips with toRational 1.23 ms
  633. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  634. 400.14 s [really-safe-money-gen] compose
  635. 400.14 s [really-safe-money-gen] produces valid rates 1.03 ms
  636. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  637. 400.14 s [really-safe-money-gen] invert
  638. 400.14 s [really-safe-money-gen] produces valid rates 0.75 ms
  639. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  640. 400.14 s [really-safe-money-gen] DecimalLiteral
  641. 400.14 s [really-safe-money-gen] fromDecimalLiteral
  642. 400.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 67.03 ms
  643. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  644. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.41 ms
  645. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  646. 400.14 s [really-safe-money-gen] BTC
  647. 400.14 s [really-safe-money-gen] Ratio
  648. 400.14 s [really-safe-money-gen] fromRatio
  649. 400.14 s [really-safe-money-gen] roundtrips with toRatio 0.44 ms
  650. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  651. 400.14 s [really-safe-money-gen] produces valid conversion rates 0.53 ms
  652. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  653. 400.14 s [really-safe-money-gen] invert
  654. 400.14 s [really-safe-money-gen] produces valid rates 0.51 ms
  655. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  656. 400.14 s [really-safe-money-gen] compose
  657. 400.14 s [really-safe-money-gen] produces valid rates 1.26 ms
  658. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  659. 400.14 s [really-safe-money-gen] Rational
  660. 400.14 s [really-safe-money-gen] fromRational
  661. 400.14 s [really-safe-money-gen] roundtrips with toRational 0.54 ms
  662. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  663. 400.14 s [really-safe-money-gen] produces valid conversion rates 0.69 ms
  664. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  665. 400.14 s [really-safe-money-gen] DecimalLiteral
  666. 400.14 s [really-safe-money-gen] fromDecimalLiteral
  667. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.40 ms
  668. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  669. 400.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.67 ms
  670. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  671. 400.14 s [really-safe-money-gen] GenValid (ConversionRateOf INR BTC)
  672. 400.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR BTC)
  673. 400.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR BTC)'s 0.67 ms
  674. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  675. 400.14 s [really-safe-money-gen] CHF
  676. 400.14 s [really-safe-money-gen] DecimalLiteral
  677. 400.14 s [really-safe-money-gen] fromDecimalLiteral
  678. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.23 ms
  679. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  680. 400.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 67.96 ms
  681. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  682. 400.14 s [really-safe-money-gen] Ratio
  683. 400.14 s [really-safe-money-gen] fromRatio
  684. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.07 ms
  685. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  686. 400.14 s [really-safe-money-gen] roundtrips with toRatio 1.21 ms
  687. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  688. 400.14 s [really-safe-money-gen] Rational
  689. 400.14 s [really-safe-money-gen] fromRational
  690. 400.14 s [really-safe-money-gen] roundtrips with toRational 1.03 ms
  691. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  692. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.11 ms
  693. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  694. 400.14 s [really-safe-money-gen] invert
  695. 400.14 s [really-safe-money-gen] produces valid rates 0.77 ms
  696. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  697. 400.14 s [really-safe-money-gen] compose
  698. 400.14 s [really-safe-money-gen] produces valid rates 1.50 ms
  699. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  700. 400.14 s [really-safe-money-gen] GenValid (ConversionRateOf INR CHF)
  701. 400.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR CHF)
  702. 400.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR CHF)'s 0.65 ms
  703. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  704. 400.14 s [really-safe-money-gen] USD
  705. 400.14 s [really-safe-money-gen] GenValid (ConversionRateOf INR USD)
  706. 400.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR USD)
  707. 400.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR USD)'s 0.64 ms
  708. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  709. 400.14 s [really-safe-money-gen] Rational
  710. 400.14 s [really-safe-money-gen] fromRational
  711. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.38 ms
  712. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  713. 400.14 s [really-safe-money-gen] roundtrips with toRational 0.87 ms
  714. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  715. 400.14 s [really-safe-money-gen] invert
  716. 400.14 s [really-safe-money-gen] produces valid rates 0.76 ms
  717. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  718. 400.14 s [really-safe-money-gen] Ratio
  719. 400.14 s [really-safe-money-gen] fromRatio
  720. 400.14 s [really-safe-money-gen] roundtrips with toRatio 1.01 ms
  721. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  722. 400.14 s [really-safe-money-gen] produces valid conversion rates 0.63 ms
  723. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  724. 400.14 s [really-safe-money-gen] compose
  725. 400.14 s [really-safe-money-gen] produces valid rates 0.96 ms
  726. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  727. 400.14 s [really-safe-money-gen] DecimalLiteral
  728. 400.14 s [really-safe-money-gen] fromDecimalLiteral
  729. 400.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 73.02 ms
  730. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  731. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.11 ms
  732. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  733. 400.14 s [really-safe-money-gen] INR
  734. 400.14 s [really-safe-money-gen] Rational
  735. 400.14 s [really-safe-money-gen] fromRational
  736. 400.14 s [really-safe-money-gen] roundtrips with toRational 1.25 ms
  737. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  738. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.03 ms
  739. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  740. 400.14 s [really-safe-money-gen] GenValid (ConversionRateOf INR INR)
  741. 400.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR INR)
  742. 400.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR INR)'s 0.63 ms
  743. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  744. 400.14 s [really-safe-money-gen] DecimalLiteral
  745. 400.14 s [really-safe-money-gen] fromDecimalLiteral
  746. 400.14 s [really-safe-money-gen] produces valid conversion rates 1.58 ms
  747. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  748. 400.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.47 ms
  749. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  750. 400.14 s [really-safe-money-gen] compose
  751. 400.14 s [really-safe-money-gen] produces valid rates 1.48 ms
  752. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  753. 400.14 s [really-safe-money-gen] invert
  754. 400.14 s [really-safe-money-gen] produces valid rates 0.78 ms
  755. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  756. 400.14 s [really-safe-money-gen] Ratio
  757. 400.14 s [really-safe-money-gen] fromRatio
  758. 400.14 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  759. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  760. 400.14 s [really-safe-money-gen] roundtrips with toRatio 1.06 ms
  761. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  762. 400.14 s [really-safe-money-gen] ADA
  763. 400.14 s [really-safe-money-gen] USD
  764. 400.14 s [really-safe-money-gen] compose
  765. 400.14 s [really-safe-money-gen] produces valid rates 0.96 ms
  766. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  767. 400.14 s [really-safe-money-gen] Ratio
  768. 400.14 s [really-safe-money-gen] fromRatio
  769. 400.14 s [really-safe-money-gen] produces valid conversion rates 0.68 ms
  770. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  771. 400.14 s [really-safe-money-gen] roundtrips with toRatio 1.02 ms
  772. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  773. 400.14 s [really-safe-money-gen] invert
  774. 400.14 s [really-safe-money-gen] produces valid rates 0.68 ms
  775. 400.14 s [really-safe-money-gen] passed for all of 100 inputs.
  776. 400.15 s [really-safe-money-gen] Rational
  777. 400.15 s [really-safe-money-gen] fromRational
  778. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.01 ms
  779. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  780. 400.15 s [really-safe-money-gen] roundtrips with toRational 1.09 ms
  781. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  782. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf ADA USD)
  783. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA USD)
  784. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA USD)'s 0.48 ms
  785. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  786. 400.15 s [really-safe-money-gen] DecimalLiteral
  787. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  788. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.65 ms
  789. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  790. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.90 ms
  791. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  792. 400.15 s [really-safe-money-gen] CHF
  793. 400.15 s [really-safe-money-gen] DecimalLiteral
  794. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  795. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 56.01 ms
  796. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  797. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.85 ms
  798. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  799. 400.15 s [really-safe-money-gen] compose
  800. 400.15 s [really-safe-money-gen] produces valid rates 1.37 ms
  801. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  802. 400.15 s [really-safe-money-gen] Rational
  803. 400.15 s [really-safe-money-gen] fromRational
  804. 400.15 s [really-safe-money-gen] roundtrips with toRational 1.11 ms
  805. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  806. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.05 ms
  807. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  808. 400.15 s [really-safe-money-gen] Ratio
  809. 400.15 s [really-safe-money-gen] fromRatio
  810. 400.15 s [really-safe-money-gen] roundtrips with toRatio 0.64 ms
  811. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  812. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.98 ms
  813. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  814. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf ADA CHF)
  815. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA CHF)
  816. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA CHF)'s 0.44 ms
  817. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  818. 400.15 s [really-safe-money-gen] invert
  819. 400.15 s [really-safe-money-gen] produces valid rates 0.54 ms
  820. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  821. 400.15 s [really-safe-money-gen] ADA
  822. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf ADA ADA)
  823. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA ADA)
  824. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA ADA)'s 0.93 ms
  825. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  826. 400.15 s [really-safe-money-gen] invert
  827. 400.15 s [really-safe-money-gen] produces valid rates 0.50 ms
  828. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  829. 400.15 s [really-safe-money-gen] Ratio
  830. 400.15 s [really-safe-money-gen] fromRatio
  831. 400.15 s [really-safe-money-gen] roundtrips with toRatio 0.43 ms
  832. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  833. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.47 ms
  834. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  835. 400.15 s [really-safe-money-gen] compose
  836. 400.15 s [really-safe-money-gen] produces valid rates 1.37 ms
  837. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  838. 400.15 s [really-safe-money-gen] Rational
  839. 400.15 s [really-safe-money-gen] fromRational
  840. 400.15 s [really-safe-money-gen] roundtrips with toRational 0.85 ms
  841. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  842. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.88 ms
  843. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  844. 400.15 s [really-safe-money-gen] DecimalLiteral
  845. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  846. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.28 ms
  847. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  848. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.86 ms
  849. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  850. 400.15 s [really-safe-money-gen] BTC
  851. 400.15 s [really-safe-money-gen] DecimalLiteral
  852. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  853. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 56.37 ms
  854. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  855. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.60 ms
  856. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  857. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf ADA BTC)
  858. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA BTC)
  859. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA BTC)'s 0.67 ms
  860. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  861. 400.15 s [really-safe-money-gen] invert
  862. 400.15 s [really-safe-money-gen] produces valid rates 0.55 ms
  863. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  864. 400.15 s [really-safe-money-gen] Rational
  865. 400.15 s [really-safe-money-gen] fromRational
  866. 400.15 s [really-safe-money-gen] roundtrips with toRational 1.01 ms
  867. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  868. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.71 ms
  869. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  870. 400.15 s [really-safe-money-gen] compose
  871. 400.15 s [really-safe-money-gen] produces valid rates 0.72 ms
  872. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  873. 400.15 s [really-safe-money-gen] Ratio
  874. 400.15 s [really-safe-money-gen] fromRatio
  875. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.11 ms
  876. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  877. 400.15 s [really-safe-money-gen] roundtrips with toRatio 0.67 ms
  878. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  879. 400.15 s [really-safe-money-gen] INR
  880. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf ADA INR)
  881. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA INR)
  882. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA INR)'s 0.64 ms
  883. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  884. 400.15 s [really-safe-money-gen] Rational
  885. 400.15 s [really-safe-money-gen] fromRational
  886. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.68 ms
  887. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  888. 400.15 s [really-safe-money-gen] roundtrips with toRational 0.92 ms
  889. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  890. 400.15 s [really-safe-money-gen] Ratio
  891. 400.15 s [really-safe-money-gen] fromRatio
  892. 400.15 s [really-safe-money-gen] roundtrips with toRatio 0.52 ms
  893. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  894. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.48 ms
  895. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  896. 400.15 s [really-safe-money-gen] DecimalLiteral
  897. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  898. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.15 ms
  899. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  900. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.45 ms
  901. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  902. 400.15 s [really-safe-money-gen] compose
  903. 400.15 s [really-safe-money-gen] produces valid rates 1.28 ms
  904. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  905. 400.15 s [really-safe-money-gen] invert
  906. 400.15 s [really-safe-money-gen] produces valid rates 0.55 ms
  907. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  908. 400.15 s [really-safe-money-gen] CHF
  909. 400.15 s [really-safe-money-gen] BTC
  910. 400.15 s [really-safe-money-gen] Rational
  911. 400.15 s [really-safe-money-gen] fromRational
  912. 400.15 s [really-safe-money-gen] roundtrips with toRational 0.57 ms
  913. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  914. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.55 ms
  915. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  916. 400.15 s [really-safe-money-gen] DecimalLiteral
  917. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  918. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.18 ms
  919. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  920. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.36 ms
  921. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  922. 400.15 s [really-safe-money-gen] compose
  923. 400.15 s [really-safe-money-gen] produces valid rates 0.81 ms
  924. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  925. 400.15 s [really-safe-money-gen] Ratio
  926. 400.15 s [really-safe-money-gen] fromRatio
  927. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.96 ms
  928. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  929. 400.15 s [really-safe-money-gen] roundtrips with toRatio 0.47 ms
  930. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  931. 400.15 s [really-safe-money-gen] invert
  932. 400.15 s [really-safe-money-gen] produces valid rates 0.49 ms
  933. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  934. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf CHF BTC)
  935. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF BTC)
  936. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF BTC)'s 0.46 ms
  937. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  938. 400.15 s [really-safe-money-gen] ADA
  939. 400.15 s [really-safe-money-gen] DecimalLiteral
  940. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  941. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.27 ms
  942. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  943. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 56.85 ms
  944. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  945. 400.15 s [really-safe-money-gen] invert
  946. 400.15 s [really-safe-money-gen] produces valid rates 0.52 ms
  947. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  948. 400.15 s [really-safe-money-gen] Ratio
  949. 400.15 s [really-safe-money-gen] fromRatio
  950. 400.15 s [really-safe-money-gen] roundtrips with toRatio 0.46 ms
  951. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  952. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.49 ms
  953. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  954. 400.15 s [really-safe-money-gen] compose
  955. 400.15 s [really-safe-money-gen] produces valid rates 1.15 ms
  956. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  957. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf CHF ADA)
  958. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF ADA)
  959. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF ADA)'s 0.45 ms
  960. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  961. 400.15 s [really-safe-money-gen] Rational
  962. 400.15 s [really-safe-money-gen] fromRational
  963. 400.15 s [really-safe-money-gen] roundtrips with toRational 0.54 ms
  964. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  965. 400.15 s [really-safe-money-gen] produces valid conversion rates 1.03 ms
  966. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  967. 400.15 s [really-safe-money-gen] USD
  968. 400.15 s [really-safe-money-gen] invert
  969. 400.15 s [really-safe-money-gen] produces valid rates 0.52 ms
  970. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  971. 400.15 s [really-safe-money-gen] GenValid (ConversionRateOf CHF USD)
  972. 400.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF USD)
  973. 400.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF USD)'s 0.45 ms
  974. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  975. 400.15 s [really-safe-money-gen] DecimalLiteral
  976. 400.15 s [really-safe-money-gen] fromDecimalLiteral
  977. 400.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.71 ms
  978. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  979. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.97 ms
  980. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  981. 400.15 s [really-safe-money-gen] compose
  982. 400.15 s [really-safe-money-gen] produces valid rates 1.28 ms
  983. 400.15 s [really-safe-money-gen] passed for all of 100 inputs.
  984. 400.15 s [really-safe-money-gen] Rational
  985. 400.15 s [really-safe-money-gen] fromRational
  986. 400.15 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  987. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  988. 400.16 s [really-safe-money-gen] roundtrips with toRational 0.63 ms
  989. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  990. 400.16 s [really-safe-money-gen] Ratio
  991. 400.16 s [really-safe-money-gen] fromRatio
  992. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.40 ms
  993. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  994. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.83 ms
  995. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  996. 400.16 s [really-safe-money-gen] CHF
  997. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf CHF CHF)
  998. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF CHF)
  999. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF CHF)'s 0.74 ms
  1000. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1001. 400.16 s [really-safe-money-gen] DecimalLiteral
  1002. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1003. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.90 ms
  1004. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1005. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.02 ms
  1006. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1007. 400.16 s [really-safe-money-gen] Rational
  1008. 400.16 s [really-safe-money-gen] fromRational
  1009. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  1010. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1011. 400.16 s [really-safe-money-gen] roundtrips with toRational 0.58 ms
  1012. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1013. 400.16 s [really-safe-money-gen] invert
  1014. 400.16 s [really-safe-money-gen] produces valid rates 0.54 ms
  1015. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1016. 400.16 s [really-safe-money-gen] Ratio
  1017. 400.16 s [really-safe-money-gen] fromRatio
  1018. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.09 ms
  1019. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1020. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.73 ms
  1021. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1022. 400.16 s [really-safe-money-gen] compose
  1023. 400.16 s [really-safe-money-gen] produces valid rates 1.00 ms
  1024. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1025. 400.16 s [really-safe-money-gen] INR
  1026. 400.16 s [really-safe-money-gen] Ratio
  1027. 400.16 s [really-safe-money-gen] fromRatio
  1028. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.17 ms
  1029. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1030. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.44 ms
  1031. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1032. 400.16 s [really-safe-money-gen] compose
  1033. 400.16 s [really-safe-money-gen] produces valid rates 0.78 ms
  1034. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1035. 400.16 s [really-safe-money-gen] invert
  1036. 400.16 s [really-safe-money-gen] produces valid rates 0.88 ms
  1037. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1038. 400.16 s [really-safe-money-gen] DecimalLiteral
  1039. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1040. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.86 ms
  1041. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1042. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.61 ms
  1043. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1044. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf CHF INR)
  1045. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF INR)
  1046. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF INR)'s 0.81 ms
  1047. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1048. 400.16 s [really-safe-money-gen] Rational
  1049. 400.16 s [really-safe-money-gen] fromRational
  1050. 400.16 s [really-safe-money-gen] roundtrips with toRational 1.00 ms
  1051. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1052. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.30 ms
  1053. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1054. 400.16 s [really-safe-money-gen] USD
  1055. 400.16 s [really-safe-money-gen] CHF
  1056. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf USD CHF)
  1057. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD CHF)
  1058. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD CHF)'s 0.85 ms
  1059. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1060. 400.16 s [really-safe-money-gen] invert
  1061. 400.16 s [really-safe-money-gen] produces valid rates 0.73 ms
  1062. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1063. 400.16 s [really-safe-money-gen] DecimalLiteral
  1064. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1065. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 63.28 ms
  1066. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1067. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.99 ms
  1068. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1069. 400.16 s [really-safe-money-gen] Rational
  1070. 400.16 s [really-safe-money-gen] fromRational
  1071. 400.16 s [really-safe-money-gen] roundtrips with toRational 1.14 ms
  1072. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1073. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.91 ms
  1074. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1075. 400.16 s [really-safe-money-gen] Ratio
  1076. 400.16 s [really-safe-money-gen] fromRatio
  1077. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.50 ms
  1078. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1079. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.53 ms
  1080. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1081. 400.16 s [really-safe-money-gen] compose
  1082. 400.16 s [really-safe-money-gen] produces valid rates 1.24 ms
  1083. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1084. 400.16 s [really-safe-money-gen] USD
  1085. 400.16 s [really-safe-money-gen] Ratio
  1086. 400.16 s [really-safe-money-gen] fromRatio
  1087. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  1088. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1089. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.53 ms
  1090. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1091. 400.16 s [really-safe-money-gen] DecimalLiteral
  1092. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1093. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.25 ms
  1094. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1095. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.32 ms
  1096. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1097. 400.16 s [really-safe-money-gen] invert
  1098. 400.16 s [really-safe-money-gen] produces valid rates 0.85 ms
  1099. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1100. 400.16 s [really-safe-money-gen] Rational
  1101. 400.16 s [really-safe-money-gen] fromRational
  1102. 400.16 s [really-safe-money-gen] roundtrips with toRational 0.66 ms
  1103. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1104. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  1105. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1106. 400.16 s [really-safe-money-gen] compose
  1107. 400.16 s [really-safe-money-gen] produces valid rates 1.25 ms
  1108. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1109. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf USD USD)
  1110. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD USD)
  1111. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD USD)'s 0.45 ms
  1112. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1113. 400.16 s [really-safe-money-gen] INR
  1114. 400.16 s [really-safe-money-gen] DecimalLiteral
  1115. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1116. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.30 ms
  1117. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1118. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.65 ms
  1119. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1120. 400.16 s [really-safe-money-gen] compose
  1121. 400.16 s [really-safe-money-gen] produces valid rates 1.31 ms
  1122. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1123. 400.16 s [really-safe-money-gen] Rational
  1124. 400.16 s [really-safe-money-gen] fromRational
  1125. 400.16 s [really-safe-money-gen] roundtrips with toRational 0.62 ms
  1126. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1127. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.76 ms
  1128. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1129. 400.16 s [really-safe-money-gen] Ratio
  1130. 400.16 s [really-safe-money-gen] fromRatio
  1131. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.96 ms
  1132. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1133. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  1134. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1135. 400.16 s [really-safe-money-gen] invert
  1136. 400.16 s [really-safe-money-gen] produces valid rates 0.56 ms
  1137. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1138. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf USD INR)
  1139. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD INR)
  1140. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD INR)'s 0.46 ms
  1141. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1142. 400.16 s [really-safe-money-gen] BTC
  1143. 400.16 s [really-safe-money-gen] Ratio
  1144. 400.16 s [really-safe-money-gen] fromRatio
  1145. 400.16 s [really-safe-money-gen] roundtrips with toRatio 1.05 ms
  1146. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1147. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.79 ms
  1148. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1149. 400.16 s [really-safe-money-gen] compose
  1150. 400.16 s [really-safe-money-gen] produces valid rates 1.10 ms
  1151. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1152. 400.16 s [really-safe-money-gen] Rational
  1153. 400.16 s [really-safe-money-gen] fromRational
  1154. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.26 ms
  1155. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1156. 400.16 s [really-safe-money-gen] roundtrips with toRational 0.60 ms
  1157. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1158. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf USD BTC)
  1159. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD BTC)
  1160. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD BTC)'s 0.54 ms
  1161. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1162. 400.16 s [really-safe-money-gen] invert
  1163. 400.16 s [really-safe-money-gen] produces valid rates 1.14 ms
  1164. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1165. 400.16 s [really-safe-money-gen] DecimalLiteral
  1166. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1167. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 63.94 ms
  1168. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1169. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.37 ms
  1170. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1171. 400.16 s [really-safe-money-gen] ADA
  1172. 400.16 s [really-safe-money-gen] GenValid (ConversionRateOf USD ADA)
  1173. 400.16 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD ADA)
  1174. 400.16 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD ADA)'s 0.45 ms
  1175. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1176. 400.16 s [really-safe-money-gen] compose
  1177. 400.16 s [really-safe-money-gen] produces valid rates 0.96 ms
  1178. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1179. 400.16 s [really-safe-money-gen] DecimalLiteral
  1180. 400.16 s [really-safe-money-gen] fromDecimalLiteral
  1181. 400.16 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.83 ms
  1182. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1183. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.33 ms
  1184. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1185. 400.16 s [really-safe-money-gen] invert
  1186. 400.16 s [really-safe-money-gen] produces valid rates 1.23 ms
  1187. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1188. 400.16 s [really-safe-money-gen] Ratio
  1189. 400.16 s [really-safe-money-gen] fromRatio
  1190. 400.16 s [really-safe-money-gen] roundtrips with toRatio 0.64 ms
  1191. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1192. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.66 ms
  1193. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1194. 400.16 s [really-safe-money-gen] Rational
  1195. 400.16 s [really-safe-money-gen] fromRational
  1196. 400.16 s [really-safe-money-gen] produces valid conversion rates 1.16 ms
  1197. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1198. 400.16 s [really-safe-money-gen] roundtrips with toRational 0.76 ms
  1199. 400.16 s [really-safe-money-gen] passed for all of 100 inputs.
  1200. 400.16 s [really-safe-money-gen] BTC
  1201. 400.16 s [really-safe-money-gen] ADA
  1202. 400.16 s [really-safe-money-gen] Ratio
  1203. 400.16 s [really-safe-money-gen] fromRatio
  1204. 400.16 s [really-safe-money-gen] produces valid conversion rates 0.55 ms
  1205. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1206. 400.17 s [really-safe-money-gen] roundtrips with toRatio 0.93 ms
  1207. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1208. 400.17 s [really-safe-money-gen] DecimalLiteral
  1209. 400.17 s [really-safe-money-gen] fromDecimalLiteral
  1210. 400.17 s [really-safe-money-gen] produces valid conversion rates 0.97 ms
  1211. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1212. 400.17 s [really-safe-money-gen] roundtrips with toDecimalLiteral 60.20 ms
  1213. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1214. 400.17 s [really-safe-money-gen] compose
  1215. 400.17 s [really-safe-money-gen] produces valid rates 0.80 ms
  1216. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1217. 400.17 s [really-safe-money-gen] invert
  1218. 400.17 s [really-safe-money-gen] produces valid rates 0.55 ms
  1219. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1220. 400.17 s [really-safe-money-gen] GenValid (ConversionRateOf BTC ADA)
  1221. 400.17 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC ADA)
  1222. 400.17 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC ADA)'s 0.88 ms
  1223. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1224. 400.17 s [really-safe-money-gen] Rational
  1225. 400.17 s [really-safe-money-gen] fromRational
  1226. 400.17 s [really-safe-money-gen] produces valid conversion rates 0.82 ms
  1227. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1228. 400.17 s [really-safe-money-gen] roundtrips with toRational 0.61 ms
  1229. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1230. 400.17 s [really-safe-money-gen] USD
  1231. 400.17 s [really-safe-money-gen] Rational
  1232. 400.17 s [really-safe-money-gen] fromRational
  1233. 400.17 s [really-safe-money-gen] roundtrips with toRational 1.06 ms
  1234. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1235. 400.17 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  1236. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1237. 400.17 s [really-safe-money-gen] DecimalLiteral
  1238. 400.17 s [really-safe-money-gen] fromDecimalLiteral
  1239. 400.17 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.34 ms
  1240. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1241. 400.17 s [really-safe-money-gen] produces valid conversion rates 0.93 ms
  1242. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1243. 400.17 s [really-safe-money-gen] Ratio
  1244. 400.17 s [really-safe-money-gen] fromRatio
  1245. 400.17 s [really-safe-money-gen] roundtrips with toRatio 0.73 ms
  1246. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1247. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.15 ms
  1248. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1249. 400.17 s [really-safe-money-gen] compose
  1250. 400.17 s [really-safe-money-gen] produces valid rates 1.00 ms
  1251. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1252. 400.17 s [really-safe-money-gen] invert
  1253. 400.17 s [really-safe-money-gen] produces valid rates 0.75 ms
  1254. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1255. 400.17 s [really-safe-money-gen] GenValid (ConversionRateOf BTC USD)
  1256. 400.17 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC USD)
  1257. 400.17 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC USD)'s 1.05 ms
  1258. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1259. 400.17 s [really-safe-money-gen] INR
  1260. 400.17 s [really-safe-money-gen] compose
  1261. 400.17 s [really-safe-money-gen] produces valid rates 0.99 ms
  1262. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1263. 400.17 s [really-safe-money-gen] GenValid (ConversionRateOf BTC INR)
  1264. 400.17 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC INR)
  1265. 400.17 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC INR)'s 0.68 ms
  1266. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1267. 400.17 s [really-safe-money-gen] DecimalLiteral
  1268. 400.17 s [really-safe-money-gen] fromDecimalLiteral
  1269. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.65 ms
  1270. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1271. 400.17 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.91 ms
  1272. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1273. 400.17 s [really-safe-money-gen] invert
  1274. 400.17 s [really-safe-money-gen] produces valid rates 1.34 ms
  1275. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1276. 400.17 s [really-safe-money-gen] Rational
  1277. 400.17 s [really-safe-money-gen] fromRational
  1278. 400.17 s [really-safe-money-gen] roundtrips with toRational 0.96 ms
  1279. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1280. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.06 ms
  1281. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1282. 400.17 s [really-safe-money-gen] Ratio
  1283. 400.17 s [really-safe-money-gen] fromRatio
  1284. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.09 ms
  1285. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1286. 400.17 s [really-safe-money-gen] roundtrips with toRatio 0.63 ms
  1287. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1288. 400.17 s [really-safe-money-gen] CHF
  1289. 400.17 s [really-safe-money-gen] compose
  1290. 400.17 s [really-safe-money-gen] produces valid rates 1.00 ms
  1291. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1292. 400.17 s [really-safe-money-gen] GenValid (ConversionRateOf BTC CHF)
  1293. 400.17 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC CHF)
  1294. 400.17 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC CHF)'s 0.96 ms
  1295. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1296. 400.17 s [really-safe-money-gen] DecimalLiteral
  1297. 400.17 s [really-safe-money-gen] fromDecimalLiteral
  1298. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.10 ms
  1299. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1300. 400.17 s [really-safe-money-gen] roundtrips with toDecimalLiteral 73.06 ms
  1301. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1302. 400.17 s [really-safe-money-gen] invert
  1303. 400.17 s [really-safe-money-gen] produces valid rates 0.81 ms
  1304. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1305. 400.17 s [really-safe-money-gen] Ratio
  1306. 400.17 s [really-safe-money-gen] fromRatio
  1307. 400.17 s [really-safe-money-gen] produces valid conversion rates 0.79 ms
  1308. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1309. 400.17 s [really-safe-money-gen] roundtrips with toRatio 0.67 ms
  1310. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1311. 400.17 s [really-safe-money-gen] Rational
  1312. 400.17 s [really-safe-money-gen] fromRational
  1313. 400.17 s [really-safe-money-gen] roundtrips with toRational 1.44 ms
  1314. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1315. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.15 ms
  1316. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1317. 400.17 s [really-safe-money-gen] BTC
  1318. 400.17 s [really-safe-money-gen] invert
  1319. 400.17 s [really-safe-money-gen] produces valid rates 0.81 ms
  1320. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1321. 400.17 s [really-safe-money-gen] Rational
  1322. 400.17 s [really-safe-money-gen] fromRational
  1323. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.43 ms
  1324. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1325. 400.17 s [really-safe-money-gen] roundtrips with toRational 0.73 ms
  1326. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1327. 400.17 s [really-safe-money-gen] compose
  1328. 400.17 s [really-safe-money-gen] produces valid rates 1.01 ms
  1329. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1330. 400.17 s [really-safe-money-gen] GenValid (ConversionRateOf BTC BTC)
  1331. 400.17 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC BTC)
  1332. 400.17 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC BTC)'s 0.97 ms
  1333. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1334. 400.17 s [really-safe-money-gen] DecimalLiteral
  1335. 400.17 s [really-safe-money-gen] fromDecimalLiteral
  1336. 400.17 s [really-safe-money-gen] produces valid conversion rates 1.19 ms
  1337. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1338. 400.17 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.73 ms
  1339. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1340. 400.17 s [really-safe-money-gen] Ratio
  1341. 400.17 s [really-safe-money-gen] fromRatio
  1342. 400.17 s [really-safe-money-gen] roundtrips with toRatio 0.70 ms
  1343. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1344. 400.17 s [really-safe-money-gen] produces valid conversion rates 0.75 ms
  1345. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1346. 400.17 s [really-safe-money-gen] Money.AmountOfSpec
  1347. 400.17 s [really-safe-money-gen] USD
  1348. 400.17 s [really-safe-money-gen] CHF
  1349. 400.17 s [really-safe-money-gen] rate
  1350. 400.17 s [really-safe-money-gen] produces valid amounts 1.29 ms
  1351. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1352. 400.17 s [really-safe-money-gen] convert
  1353. 400.17 s [really-safe-money-gen] produces valid amounts 1.55 ms
  1354. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1355. 400.17 s [really-safe-money-gen] BTC
  1356. 400.17 s [really-safe-money-gen] convert
  1357. 400.17 s [really-safe-money-gen] produces valid amounts 1.95 ms
  1358. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1359. 400.17 s [really-safe-money-gen] rate
  1360. 400.17 s [really-safe-money-gen] produces valid amounts 0.77 ms
  1361. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1362. 400.17 s [really-safe-money-gen] INR
  1363. 400.17 s [really-safe-money-gen] convert
  1364. 400.17 s [really-safe-money-gen] produces valid amounts 1.83 ms
  1365. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1366. 400.17 s [really-safe-money-gen] rate
  1367. 400.17 s [really-safe-money-gen] produces valid amounts 0.76 ms
  1368. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1369. 400.17 s [really-safe-money-gen] USD
  1370. 400.17 s [really-safe-money-gen] rate
  1371. 400.17 s [really-safe-money-gen] produces valid amounts 0.84 ms
  1372. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1373. 400.17 s [really-safe-money-gen] convert
  1374. 400.17 s [really-safe-money-gen] produces valid amounts 1.77 ms
  1375. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1376. 400.17 s [really-safe-money-gen] ADA
  1377. 400.17 s [really-safe-money-gen] convert
  1378. 400.17 s [really-safe-money-gen] produces valid amounts 1.58 ms
  1379. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1380. 400.17 s [really-safe-money-gen] rate
  1381. 400.17 s [really-safe-money-gen] produces valid amounts 1.21 ms
  1382. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1383. 400.17 s [really-safe-money-gen] ADA
  1384. 400.17 s [really-safe-money-gen] BTC
  1385. 400.17 s [really-safe-money-gen] convert
  1386. 400.17 s [really-safe-money-gen] produces valid amounts 1.54 ms
  1387. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1388. 400.17 s [really-safe-money-gen] rate
  1389. 400.17 s [really-safe-money-gen] produces valid amounts 0.85 ms
  1390. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1391. 400.17 s [really-safe-money-gen] USD
  1392. 400.17 s [really-safe-money-gen] rate
  1393. 400.17 s [really-safe-money-gen] produces valid amounts 1.17 ms
  1394. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1395. 400.17 s [really-safe-money-gen] convert
  1396. 400.17 s [really-safe-money-gen] produces valid amounts 1.30 ms
  1397. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1398. 400.17 s [really-safe-money-gen] CHF
  1399. 400.17 s [really-safe-money-gen] convert
  1400. 400.17 s [really-safe-money-gen] produces valid amounts 1.96 ms
  1401. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1402. 400.17 s [really-safe-money-gen] rate
  1403. 400.17 s [really-safe-money-gen] produces valid amounts 0.92 ms
  1404. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1405. 400.17 s [really-safe-money-gen] ADA
  1406. 400.17 s [really-safe-money-gen] rate
  1407. 400.17 s [really-safe-money-gen] produces valid amounts 1.22 ms
  1408. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1409. 400.17 s [really-safe-money-gen] convert
  1410. 400.17 s [really-safe-money-gen] produces valid amounts 1.28 ms
  1411. 400.17 s [really-safe-money-gen] passed for all of 100 inputs.
  1412. 400.17 s [really-safe-money-gen] INR
  1413. 400.18 s [really-safe-money-gen] rate
  1414. 400.18 s [really-safe-money-gen] produces valid amounts 0.78 ms
  1415. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1416. 400.18 s [really-safe-money-gen] convert
  1417. 400.18 s [really-safe-money-gen] produces valid amounts 1.92 ms
  1418. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1419. 400.18 s [really-safe-money-gen] INR
  1420. 400.18 s [really-safe-money-gen] ADA
  1421. 400.18 s [really-safe-money-gen] rate
  1422. 400.18 s [really-safe-money-gen] produces valid amounts 0.89 ms
  1423. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1424. 400.18 s [really-safe-money-gen] convert
  1425. 400.18 s [really-safe-money-gen] produces valid amounts 2.13 ms
  1426. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1427. 400.18 s [really-safe-money-gen] CHF
  1428. 400.18 s [really-safe-money-gen] convert
  1429. 400.18 s [really-safe-money-gen] produces valid amounts 1.47 ms
  1430. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1431. 400.18 s [really-safe-money-gen] rate
  1432. 400.18 s [really-safe-money-gen] produces valid amounts 1.16 ms
  1433. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1434. 400.18 s [really-safe-money-gen] INR
  1435. 400.18 s [really-safe-money-gen] rate
  1436. 400.18 s [really-safe-money-gen] produces valid amounts 0.86 ms
  1437. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1438. 400.18 s [really-safe-money-gen] convert
  1439. 400.18 s [really-safe-money-gen] produces valid amounts 1.44 ms
  1440. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1441. 400.18 s [really-safe-money-gen] BTC
  1442. 400.18 s [really-safe-money-gen] rate
  1443. 400.18 s [really-safe-money-gen] produces valid amounts 1.29 ms
  1444. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1445. 400.18 s [really-safe-money-gen] convert
  1446. 400.18 s [really-safe-money-gen] produces valid amounts 1.70 ms
  1447. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1448. 400.18 s [really-safe-money-gen] USD
  1449. 400.18 s [really-safe-money-gen] convert
  1450. 400.18 s [really-safe-money-gen] produces valid amounts 1.86 ms
  1451. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1452. 400.18 s [really-safe-money-gen] rate
  1453. 400.18 s [really-safe-money-gen] produces valid amounts 0.90 ms
  1454. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1455. 400.18 s [really-safe-money-gen] BTC
  1456. 400.18 s [really-safe-money-gen] INR
  1457. 400.18 s [really-safe-money-gen] rate
  1458. 400.18 s [really-safe-money-gen] produces valid amounts 0.90 ms
  1459. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1460. 400.18 s [really-safe-money-gen] convert
  1461. 400.18 s [really-safe-money-gen] produces valid amounts 2.13 ms
  1462. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1463. 400.18 s [really-safe-money-gen] CHF
  1464. 400.18 s [really-safe-money-gen] convert
  1465. 400.18 s [really-safe-money-gen] produces valid amounts 2.05 ms
  1466. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1467. 400.18 s [really-safe-money-gen] rate
  1468. 400.18 s [really-safe-money-gen] produces valid amounts 0.92 ms
  1469. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1470. 400.18 s [really-safe-money-gen] USD
  1471. 400.18 s [really-safe-money-gen] rate
  1472. 400.18 s [really-safe-money-gen] produces valid amounts 0.73 ms
  1473. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1474. 400.18 s [really-safe-money-gen] convert
  1475. 400.18 s [really-safe-money-gen] produces valid amounts 1.41 ms
  1476. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1477. 400.18 s [really-safe-money-gen] ADA
  1478. 400.18 s [really-safe-money-gen] convert
  1479. 400.18 s [really-safe-money-gen] produces valid amounts 1.11 ms
  1480. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1481. 400.18 s [really-safe-money-gen] rate
  1482. 400.18 s [really-safe-money-gen] produces valid amounts 0.93 ms
  1483. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1484. 400.18 s [really-safe-money-gen] BTC
  1485. 400.18 s [really-safe-money-gen] convert
  1486. 400.18 s [really-safe-money-gen] produces valid amounts 1.10 ms
  1487. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1488. 400.18 s [really-safe-money-gen] rate
  1489. 400.18 s [really-safe-money-gen] produces valid amounts 0.62 ms
  1490. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1491. 400.18 s [really-safe-money-gen] CHF
  1492. 400.18 s [really-safe-money-gen] INR
  1493. 400.18 s [really-safe-money-gen] convert
  1494. 400.18 s [really-safe-money-gen] produces valid amounts 1.29 ms
  1495. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1496. 400.18 s [really-safe-money-gen] rate
  1497. 400.18 s [really-safe-money-gen] produces valid amounts 0.59 ms
  1498. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1499. 400.18 s [really-safe-money-gen] USD
  1500. 400.18 s [really-safe-money-gen] convert
  1501. 400.18 s [really-safe-money-gen] produces valid amounts 1.37 ms
  1502. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1503. 400.18 s [really-safe-money-gen] rate
  1504. 400.18 s [really-safe-money-gen] produces valid amounts 0.62 ms
  1505. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1506. 400.18 s [really-safe-money-gen] BTC
  1507. 400.18 s [really-safe-money-gen] convert
  1508. 400.18 s [really-safe-money-gen] produces valid amounts 1.45 ms
  1509. 400.18 s [really-safe-money-gen] passed for all of 100 inputs.
  1510. 400.18 s [really-safe-money-gen] rate
  1511. 400.18 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57:
  1512. 400.18 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  1513. 400.18 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  1514. 400.18 s [really-safe-money-gen] mconcat
  1515. 400.18 s [really-safe-money-gen] [ genericValidate cr,
  1516. 400.18 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  1517. 400.18 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  1518. 400.18 s [really-safe-money-gen] ]
  1519. 400.18 s [really-safe-money-gen]
  1520. 400.18 s [really-safe-money-gen] instance NFData ConversionRate
  1521. 400.18 s [really-safe-money-gen]
  1522. 409.47 s [really-safe-money-gen] produces valid amounts 0.61 ms
  1523. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1524. 409.50 s [really-safe-money-gen] CHF
  1525. 409.50 s [really-safe-money-gen] convert
  1526. 409.50 s [really-safe-money-gen] produces valid amounts 1.04 ms
  1527. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1528. 409.50 s [really-safe-money-gen] rate
  1529. 409.50 s [really-safe-money-gen] produces valid amounts 0.98 ms
  1530. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1531. 409.50 s [really-safe-money-gen] ADA
  1532. 409.50 s [really-safe-money-gen] rate
  1533. 409.50 s [really-safe-money-gen] produces valid amounts 0.60 ms
  1534. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1535. 409.50 s [really-safe-money-gen] convert
  1536. 409.50 s [really-safe-money-gen] produces valid amounts 1.45 ms
  1537. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1538. 409.50 s [really-safe-money-gen] Money.AmountSpec
  1539. 409.50 s [really-safe-money-gen] rate
  1540. 409.50 s [really-safe-money-gen] produces valid conversion rates 151.40 ms
  1541. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1542. 409.50 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 282.99 ms
  1543. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1544. 409.50 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  1545. 409.50 s [really-safe-money-gen] convert
  1546. 409.50 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 80.30 ms
  1547. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1548. 409.50 s [really-safe-money-gen] converts this USD to CHF correctly 0.01 ms
  1549. 409.50 s [really-safe-money-gen] produces valid amounts 267.38 ms
  1550. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1551. 409.50 s [really-safe-money-gen]
  1552. 409.50 s [really-safe-money-gen]
  1553. 409.50 s [really-safe-money-gen]
  1554. 409.50 s [really-safe-money-gen] Examples: 202504
  1555. 409.50 s [really-safe-money-gen] Passed: 346
  1556. 409.50 s [really-safe-money-gen] Failed: 0
  1557. 409.50 s [really-safe-money-gen] Sum of test runtimes: 9.39 seconds
  1558. 409.50 s [really-safe-money-gen] Test suite took: 9.40 seconds
  1559. 409.50 s [really-safe-money-gen]
  1560. 409.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57:
  1561. 409.50 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  1562. 409.50 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  1563. 409.50 s [really-safe-money-gen] mconcat
  1564. 409.50 s [really-safe-money-gen] [ genericValidate cr,
  1565. 409.50 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  1566. 409.50 s [really-safe-money-gen] + declare "The rate is nonzero" $ False
  1567. 409.50 s [really-safe-money-gen] ]
  1568. 409.50 s [really-safe-money-gen]
  1569. 409.50 s [really-safe-money-gen] instance NFData ConversionRate
  1570. 409.50 s [really-safe-money-gen] Tests:
  1571. 409.50 s [really-safe-money-gen]
  1572. 409.50 s [really-safe-money-gen] Money.ConversionRateSpec
  1573. 409.50 s [really-safe-money-gen] Rational
  1574. 409.50 s [really-safe-money-gen] fromRational
  1575. 409.50 s [really-safe-money-gen] roundtrips with toRational 80.09 ms
  1576. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1577. 409.50 s [really-safe-money-gen] produces valid conversion rates 101.03 ms
  1578. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1579. 409.50 s [really-safe-money-gen] Ratio
  1580. 409.50 s [really-safe-money-gen] fromRatio
  1581. 409.50 s [really-safe-money-gen] produces valid conversion rates 78.68 ms
  1582. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1583. 409.50 s [really-safe-money-gen] roundtrips with toRatio 62.26 ms
  1584. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1585. 409.50 s [really-safe-money-gen] invert
  1586. 409.50 s [really-safe-money-gen] produces valid rates 69.20 ms
  1587. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1588. 409.50 s [really-safe-money-gen] DecimalLiteral
  1589. 409.50 s [really-safe-money-gen] fromDecimalLiteral
  1590. 409.50 s [really-safe-money-gen] produces valid conversion rates 120.33 ms
  1591. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1592. 409.50 s [really-safe-money-gen] roundtrips with toDecimalLiteral 5351.50 ms
  1593. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1594. 409.50 s [really-safe-money-gen] compose
  1595. 409.50 s [really-safe-money-gen] produces valid rates 114.09 ms
  1596. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1597. 409.50 s [really-safe-money-gen] GenValid ConversionRate
  1598. 409.50 s [really-safe-money-gen] genValid :: Gen ConversionRate
  1599. 409.50 s [really-safe-money-gen] only generates valid 'ConversionRate's 61.83 ms
  1600. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1601. 409.50 s [really-safe-money-gen] Money.AccountSpec
  1602. 409.50 s [really-safe-money-gen] convert
  1603. 409.50 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 84.27 ms
  1604. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1605. 409.50 s [really-safe-money-gen] produces valid amounts 264.65 ms
  1606. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1607. 409.50 s [really-safe-money-gen] converts this USD to CHF correctly 0.02 ms
  1608. 409.50 s [really-safe-money-gen] rate
  1609. 409.50 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 173.20 ms
  1610. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1611. 409.50 s [really-safe-money-gen] produces valid conversion rates 100.61 ms
  1612. 409.50 s [really-safe-money-gen] passed for all of 10000 inputs.
  1613. 409.50 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  1614. 409.50 s [really-safe-money-gen] Money.AccountOfSpec
  1615. 409.50 s [really-safe-money-gen] USD
  1616. 409.50 s [really-safe-money-gen] USD
  1617. 409.50 s [really-safe-money-gen] convert
  1618. 409.50 s [really-safe-money-gen] produces valid amounts 1.55 ms
  1619. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1620. 409.50 s [really-safe-money-gen] rate
  1621. 409.50 s [really-safe-money-gen] produces valid amounts 0.40 ms
  1622. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1623. 409.50 s [really-safe-money-gen] BTC
  1624. 409.50 s [really-safe-money-gen] rate
  1625. 409.50 s [really-safe-money-gen] produces valid amounts 0.53 ms
  1626. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1627. 409.50 s [really-safe-money-gen] convert
  1628. 409.50 s [really-safe-money-gen] produces valid amounts 2.11 ms
  1629. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1630. 409.50 s [really-safe-money-gen] INR
  1631. 409.50 s [really-safe-money-gen] rate
  1632. 409.50 s [really-safe-money-gen] produces valid amounts 0.52 ms
  1633. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1634. 409.50 s [really-safe-money-gen] convert
  1635. 409.50 s [really-safe-money-gen] produces valid amounts 1.29 ms
  1636. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1637. 409.50 s [really-safe-money-gen] ADA
  1638. 409.50 s [really-safe-money-gen] rate
  1639. 409.50 s [really-safe-money-gen] produces valid amounts 0.85 ms
  1640. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1641. 409.50 s [really-safe-money-gen] convert
  1642. 409.50 s [really-safe-money-gen] produces valid amounts 1.34 ms
  1643. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1644. 409.50 s [really-safe-money-gen] CHF
  1645. 409.50 s [really-safe-money-gen] convert
  1646. 409.50 s [really-safe-money-gen] produces valid amounts 1.43 ms
  1647. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1648. 409.50 s [really-safe-money-gen] rate
  1649. 409.50 s [really-safe-money-gen] produces valid amounts 0.36 ms
  1650. 409.50 s [really-safe-money-gen] passed for all of 100 inputs.
  1651. 409.51 s [really-safe-money-gen] INR
  1652. 409.51 s [really-safe-money-gen] USD
  1653. 409.51 s [really-safe-money-gen] convert
  1654. 409.51 s [really-safe-money-gen] produces valid amounts 1.07 ms
  1655. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1656. 409.51 s [really-safe-money-gen] rate
  1657. 409.51 s [really-safe-money-gen] produces valid amounts 0.62 ms
  1658. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1659. 409.51 s [really-safe-money-gen] CHF
  1660. 409.51 s [really-safe-money-gen] rate
  1661. 409.51 s [really-safe-money-gen] produces valid amounts 0.34 ms
  1662. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1663. 409.51 s [really-safe-money-gen] convert
  1664. 409.51 s [really-safe-money-gen] produces valid amounts 1.05 ms
  1665. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1666. 409.51 s [really-safe-money-gen] BTC
  1667. 409.51 s [really-safe-money-gen] rate
  1668. 409.51 s [really-safe-money-gen] produces valid amounts 0.68 ms
  1669. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1670. 409.51 s [really-safe-money-gen] convert
  1671. 409.51 s [really-safe-money-gen] produces valid amounts 1.19 ms
  1672. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1673. 409.51 s [really-safe-money-gen] ADA
  1674. 409.51 s [really-safe-money-gen] convert
  1675. 409.51 s [really-safe-money-gen] produces valid amounts 1.49 ms
  1676. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1677. 409.51 s [really-safe-money-gen] rate
  1678. 409.51 s [really-safe-money-gen] produces valid amounts 0.36 ms
  1679. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1680. 409.51 s [really-safe-money-gen] INR
  1681. 409.51 s [really-safe-money-gen] convert
  1682. 409.51 s [really-safe-money-gen] produces valid amounts 1.01 ms
  1683. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1684. 409.51 s [really-safe-money-gen] rate
  1685. 409.51 s [really-safe-money-gen] produces valid amounts 0.65 ms
  1686. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1687. 409.51 s [really-safe-money-gen] CHF
  1688. 409.51 s [really-safe-money-gen] USD
  1689. 409.51 s [really-safe-money-gen] rate
  1690. 409.51 s [really-safe-money-gen] produces valid amounts 0.36 ms
  1691. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1692. 409.51 s [really-safe-money-gen] convert
  1693. 409.51 s [really-safe-money-gen] produces valid amounts 1.08 ms
  1694. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1695. 409.51 s [really-safe-money-gen] BTC
  1696. 409.51 s [really-safe-money-gen] convert
  1697. 409.51 s [really-safe-money-gen] produces valid amounts 1.55 ms
  1698. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1699. 409.51 s [really-safe-money-gen] rate
  1700. 409.51 s [really-safe-money-gen] produces valid amounts 0.36 ms
  1701. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1702. 409.51 s [really-safe-money-gen] ADA
  1703. 409.51 s [really-safe-money-gen] convert
  1704. 409.51 s [really-safe-money-gen] produces valid amounts 2.05 ms
  1705. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1706. 409.51 s [really-safe-money-gen] rate
  1707. 409.51 s [really-safe-money-gen] produces valid amounts 0.54 ms
  1708. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1709. 409.51 s [really-safe-money-gen] CHF
  1710. 409.51 s [really-safe-money-gen] rate
  1711. 409.51 s [really-safe-money-gen] produces valid amounts 0.53 ms
  1712. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1713. 409.51 s [really-safe-money-gen] convert
  1714. 409.51 s [really-safe-money-gen] produces valid amounts 1.87 ms
  1715. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1716. 409.51 s [really-safe-money-gen] INR
  1717. 409.51 s [really-safe-money-gen] convert
  1718. 409.51 s [really-safe-money-gen] produces valid amounts 1.16 ms
  1719. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1720. 409.51 s [really-safe-money-gen] rate
  1721. 409.51 s [really-safe-money-gen] produces valid amounts 0.51 ms
  1722. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1723. 409.51 s [really-safe-money-gen] ADA
  1724. 409.51 s [really-safe-money-gen] CHF
  1725. 409.51 s [really-safe-money-gen] rate
  1726. 409.51 s [really-safe-money-gen] produces valid amounts 0.89 ms
  1727. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1728. 409.51 s [really-safe-money-gen] convert
  1729. 409.51 s [really-safe-money-gen] produces valid amounts 1.32 ms
  1730. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1731. 409.51 s [really-safe-money-gen] INR
  1732. 409.51 s [really-safe-money-gen] rate
  1733. 409.51 s [really-safe-money-gen] produces valid amounts 0.54 ms
  1734. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1735. 409.51 s [really-safe-money-gen] convert
  1736. 409.51 s [really-safe-money-gen] produces valid amounts 2.04 ms
  1737. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1738. 409.51 s [really-safe-money-gen] ADA
  1739. 409.51 s [really-safe-money-gen] convert
  1740. 409.51 s [really-safe-money-gen] produces valid amounts 1.89 ms
  1741. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1742. 409.51 s [really-safe-money-gen] rate
  1743. 409.51 s [really-safe-money-gen] produces valid amounts 0.46 ms
  1744. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1745. 409.51 s [really-safe-money-gen] BTC
  1746. 409.51 s [really-safe-money-gen] convert
  1747. 409.51 s [really-safe-money-gen] produces valid amounts 1.23 ms
  1748. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1749. 409.51 s [really-safe-money-gen] rate
  1750. 409.51 s [really-safe-money-gen] produces valid amounts 0.83 ms
  1751. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1752. 409.51 s [really-safe-money-gen] USD
  1753. 409.51 s [really-safe-money-gen] convert
  1754. 409.51 s [really-safe-money-gen] produces valid amounts 1.61 ms
  1755. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1756. 409.51 s [really-safe-money-gen] rate
  1757. 409.51 s [really-safe-money-gen] produces valid amounts 0.48 ms
  1758. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1759. 409.51 s [really-safe-money-gen] BTC
  1760. 409.51 s [really-safe-money-gen] BTC
  1761. 409.51 s [really-safe-money-gen] convert
  1762. 409.51 s [really-safe-money-gen] produces valid amounts 1.59 ms
  1763. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1764. 409.51 s [really-safe-money-gen] rate
  1765. 409.51 s [really-safe-money-gen] produces valid amounts 0.43 ms
  1766. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1767. 409.51 s [really-safe-money-gen] USD
  1768. 409.51 s [really-safe-money-gen] convert
  1769. 409.51 s [really-safe-money-gen] produces valid amounts 1.70 ms
  1770. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1771. 409.51 s [really-safe-money-gen] rate
  1772. 409.51 s [really-safe-money-gen] produces valid amounts 0.39 ms
  1773. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1774. 409.51 s [really-safe-money-gen] ADA
  1775. 409.51 s [really-safe-money-gen] convert
  1776. 409.51 s [really-safe-money-gen] produces valid amounts 1.44 ms
  1777. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1778. 409.51 s [really-safe-money-gen] rate
  1779. 409.51 s [really-safe-money-gen] produces valid amounts 0.88 ms
  1780. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1781. 409.51 s [really-safe-money-gen] INR
  1782. 409.51 s [really-safe-money-gen] rate
  1783. 409.51 s [really-safe-money-gen] produces valid amounts 0.35 ms
  1784. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1785. 409.51 s [really-safe-money-gen] convert
  1786. 409.51 s [really-safe-money-gen] produces valid amounts 1.21 ms
  1787. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1788. 409.51 s [really-safe-money-gen] CHF
  1789. 409.51 s [really-safe-money-gen] rate
  1790. 409.51 s [really-safe-money-gen] produces valid amounts 0.70 ms
  1791. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1792. 409.51 s [really-safe-money-gen] convert
  1793. 409.51 s [really-safe-money-gen] produces valid amounts 1.21 ms
  1794. 409.51 s [really-safe-money-gen] passed for all of 100 inputs.
  1795. 409.51 s [really-safe-money-gen] Money.ConversionRateOfSpec
  1796. 409.51 s [really-safe-money-gen] INR
  1797. 409.51 s [really-safe-money-gen] ADA
  1798. 409.51 s [really-safe-money-gen] Ratio
  1799. 409.51 s [really-safe-money-gen] fromRatio
  1800. 409.52 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  1801. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1802. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.82 ms
  1803. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1804. 409.52 s [really-safe-money-gen] GenValid (ConversionRateOf INR ADA)
  1805. 409.52 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR ADA)
  1806. 409.52 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR ADA)'s 0.45 ms
  1807. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1808. 409.52 s [really-safe-money-gen] Rational
  1809. 409.52 s [really-safe-money-gen] fromRational
  1810. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.68 ms
  1811. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1812. 409.52 s [really-safe-money-gen] roundtrips with toRational 1.49 ms
  1813. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1814. 409.52 s [really-safe-money-gen] compose
  1815. 409.52 s [really-safe-money-gen] produces valid rates 1.23 ms
  1816. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1817. 409.52 s [really-safe-money-gen] invert
  1818. 409.52 s [really-safe-money-gen] produces valid rates 0.77 ms
  1819. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1820. 409.52 s [really-safe-money-gen] DecimalLiteral
  1821. 409.52 s [really-safe-money-gen] fromDecimalLiteral
  1822. 409.52 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.34 ms
  1823. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1824. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.56 ms
  1825. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1826. 409.52 s [really-safe-money-gen] BTC
  1827. 409.52 s [really-safe-money-gen] Ratio
  1828. 409.52 s [really-safe-money-gen] fromRatio
  1829. 409.52 s [really-safe-money-gen] roundtrips with toRatio 0.78 ms
  1830. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1831. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.94 ms
  1832. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1833. 409.52 s [really-safe-money-gen] invert
  1834. 409.52 s [really-safe-money-gen] produces valid rates 0.88 ms
  1835. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1836. 409.52 s [really-safe-money-gen] compose
  1837. 409.52 s [really-safe-money-gen] produces valid rates 1.42 ms
  1838. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1839. 409.52 s [really-safe-money-gen] Rational
  1840. 409.52 s [really-safe-money-gen] fromRational
  1841. 409.52 s [really-safe-money-gen] roundtrips with toRational 0.85 ms
  1842. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1843. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.00 ms
  1844. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1845. 409.52 s [really-safe-money-gen] DecimalLiteral
  1846. 409.52 s [really-safe-money-gen] fromDecimalLiteral
  1847. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.55 ms
  1848. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1849. 409.52 s [really-safe-money-gen] roundtrips with toDecimalLiteral 63.43 ms
  1850. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1851. 409.52 s [really-safe-money-gen] GenValid (ConversionRateOf INR BTC)
  1852. 409.52 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR BTC)
  1853. 409.52 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR BTC)'s 0.69 ms
  1854. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1855. 409.52 s [really-safe-money-gen] CHF
  1856. 409.52 s [really-safe-money-gen] DecimalLiteral
  1857. 409.52 s [really-safe-money-gen] fromDecimalLiteral
  1858. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.10 ms
  1859. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1860. 409.52 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.81 ms
  1861. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1862. 409.52 s [really-safe-money-gen] Ratio
  1863. 409.52 s [really-safe-money-gen] fromRatio
  1864. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.68 ms
  1865. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1866. 409.52 s [really-safe-money-gen] roundtrips with toRatio 0.65 ms
  1867. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1868. 409.52 s [really-safe-money-gen] Rational
  1869. 409.52 s [really-safe-money-gen] fromRational
  1870. 409.52 s [really-safe-money-gen] roundtrips with toRational 1.18 ms
  1871. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1872. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.98 ms
  1873. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1874. 409.52 s [really-safe-money-gen] invert
  1875. 409.52 s [really-safe-money-gen] produces valid rates 0.67 ms
  1876. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1877. 409.52 s [really-safe-money-gen] compose
  1878. 409.52 s [really-safe-money-gen] produces valid rates 1.16 ms
  1879. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1880. 409.52 s [really-safe-money-gen] GenValid (ConversionRateOf INR CHF)
  1881. 409.52 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR CHF)
  1882. 409.52 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR CHF)'s 0.49 ms
  1883. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1884. 409.52 s [really-safe-money-gen] USD
  1885. 409.52 s [really-safe-money-gen] GenValid (ConversionRateOf INR USD)
  1886. 409.52 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR USD)
  1887. 409.52 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR USD)'s 0.43 ms
  1888. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1889. 409.52 s [really-safe-money-gen] Rational
  1890. 409.52 s [really-safe-money-gen] fromRational
  1891. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.17 ms
  1892. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1893. 409.52 s [really-safe-money-gen] roundtrips with toRational 0.82 ms
  1894. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1895. 409.52 s [really-safe-money-gen] invert
  1896. 409.52 s [really-safe-money-gen] produces valid rates 0.79 ms
  1897. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1898. 409.52 s [really-safe-money-gen] Ratio
  1899. 409.52 s [really-safe-money-gen] fromRatio
  1900. 409.52 s [really-safe-money-gen] roundtrips with toRatio 0.99 ms
  1901. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1902. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.67 ms
  1903. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1904. 409.52 s [really-safe-money-gen] compose
  1905. 409.52 s [really-safe-money-gen] produces valid rates 1.07 ms
  1906. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1907. 409.52 s [really-safe-money-gen] DecimalLiteral
  1908. 409.52 s [really-safe-money-gen] fromDecimalLiteral
  1909. 409.52 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.65 ms
  1910. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1911. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  1912. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1913. 409.52 s [really-safe-money-gen] INR
  1914. 409.52 s [really-safe-money-gen] Rational
  1915. 409.52 s [really-safe-money-gen] fromRational
  1916. 409.52 s [really-safe-money-gen] roundtrips with toRational 1.21 ms
  1917. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1918. 409.52 s [really-safe-money-gen] produces valid conversion rates 0.92 ms
  1919. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1920. 409.52 s [really-safe-money-gen] GenValid (ConversionRateOf INR INR)
  1921. 409.52 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR INR)
  1922. 409.52 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR INR)'s 0.63 ms
  1923. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1924. 409.52 s [really-safe-money-gen] DecimalLiteral
  1925. 409.52 s [really-safe-money-gen] fromDecimalLiteral
  1926. 409.52 s [really-safe-money-gen] produces valid conversion rates 1.62 ms
  1927. 409.52 s [really-safe-money-gen] passed for all of 100 inputs.
  1928. 409.53 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.75 ms
  1929. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1930. 409.53 s [really-safe-money-gen] compose
  1931. 409.53 s [really-safe-money-gen] produces valid rates 1.48 ms
  1932. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1933. 409.53 s [really-safe-money-gen] invert
  1934. 409.53 s [really-safe-money-gen] produces valid rates 0.76 ms
  1935. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1936. 409.53 s [really-safe-money-gen] Ratio
  1937. 409.53 s [really-safe-money-gen] fromRatio
  1938. 409.53 s [really-safe-money-gen] produces valid conversion rates 0.64 ms
  1939. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1940. 409.53 s [really-safe-money-gen] roundtrips with toRatio 0.98 ms
  1941. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1942. 409.53 s [really-safe-money-gen] ADA
  1943. 409.53 s [really-safe-money-gen] USD
  1944. 409.53 s [really-safe-money-gen] compose
  1945. 409.53 s [really-safe-money-gen] produces valid rates 1.00 ms
  1946. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1947. 409.53 s [really-safe-money-gen] Ratio
  1948. 409.53 s [really-safe-money-gen] fromRatio
  1949. 409.53 s [really-safe-money-gen] produces valid conversion rates 0.66 ms
  1950. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1951. 409.53 s [really-safe-money-gen] roundtrips with toRatio 1.01 ms
  1952. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1953. 409.53 s [really-safe-money-gen] invert
  1954. 409.53 s [really-safe-money-gen] produces valid rates 0.69 ms
  1955. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1956. 409.53 s [really-safe-money-gen] Rational
  1957. 409.53 s [really-safe-money-gen] fromRational
  1958. 409.53 s [really-safe-money-gen] produces valid conversion rates 0.95 ms
  1959. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1960. 409.53 s [really-safe-money-gen] roundtrips with toRational 1.19 ms
  1961. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1962. 409.53 s [really-safe-money-gen] GenValid (ConversionRateOf ADA USD)
  1963. 409.53 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA USD)
  1964. 409.53 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA USD)'s 0.50 ms
  1965. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1966. 409.53 s [really-safe-money-gen] DecimalLiteral
  1967. 409.53 s [really-safe-money-gen] fromDecimalLiteral
  1968. 409.53 s [really-safe-money-gen] roundtrips with toDecimalLiteral 67.15 ms
  1969. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1970. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.20 ms
  1971. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1972. 409.53 s [really-safe-money-gen] CHF
  1973. 409.53 s [really-safe-money-gen] DecimalLiteral
  1974. 409.53 s [really-safe-money-gen] fromDecimalLiteral
  1975. 409.53 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.41 ms
  1976. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1977. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.19 ms
  1978. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1979. 409.53 s [really-safe-money-gen] compose
  1980. 409.53 s [really-safe-money-gen] produces valid rates 1.11 ms
  1981. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1982. 409.53 s [really-safe-money-gen] Rational
  1983. 409.53 s [really-safe-money-gen] fromRational
  1984. 409.53 s [really-safe-money-gen] roundtrips with toRational 1.17 ms
  1985. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1986. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.02 ms
  1987. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1988. 409.53 s [really-safe-money-gen] Ratio
  1989. 409.53 s [really-safe-money-gen] fromRatio
  1990. 409.53 s [really-safe-money-gen] roundtrips with toRatio 0.67 ms
  1991. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1992. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  1993. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1994. 409.53 s [really-safe-money-gen] GenValid (ConversionRateOf ADA CHF)
  1995. 409.53 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA CHF)
  1996. 409.53 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA CHF)'s 0.64 ms
  1997. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  1998. 409.53 s [really-safe-money-gen] invert
  1999. 409.53 s [really-safe-money-gen] produces valid rates 0.75 ms
  2000. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2001. 409.53 s [really-safe-money-gen] ADA
  2002. 409.53 s [really-safe-money-gen] GenValid (ConversionRateOf ADA ADA)
  2003. 409.53 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA ADA)
  2004. 409.53 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA ADA)'s 0.67 ms
  2005. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2006. 409.53 s [really-safe-money-gen] invert
  2007. 409.53 s [really-safe-money-gen] produces valid rates 1.01 ms
  2008. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2009. 409.53 s [really-safe-money-gen] Ratio
  2010. 409.53 s [really-safe-money-gen] fromRatio
  2011. 409.53 s [really-safe-money-gen] roundtrips with toRatio 0.50 ms
  2012. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2013. 409.53 s [really-safe-money-gen] produces valid conversion rates 0.66 ms
  2014. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2015. 409.53 s [really-safe-money-gen] compose
  2016. 409.53 s [really-safe-money-gen] produces valid rates 1.44 ms
  2017. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2018. 409.53 s [really-safe-money-gen] Rational
  2019. 409.53 s [really-safe-money-gen] fromRational
  2020. 409.53 s [really-safe-money-gen] roundtrips with toRational 0.80 ms
  2021. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2022. 409.53 s [really-safe-money-gen] produces valid conversion rates 0.92 ms
  2023. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2024. 409.53 s [really-safe-money-gen] DecimalLiteral
  2025. 409.53 s [really-safe-money-gen] fromDecimalLiteral
  2026. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.46 ms
  2027. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2028. 409.53 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.74 ms
  2029. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2030. 409.53 s [really-safe-money-gen] BTC
  2031. 409.53 s [really-safe-money-gen] DecimalLiteral
  2032. 409.53 s [really-safe-money-gen] fromDecimalLiteral
  2033. 409.53 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.00 ms
  2034. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2035. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.47 ms
  2036. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2037. 409.53 s [really-safe-money-gen] GenValid (ConversionRateOf ADA BTC)
  2038. 409.53 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA BTC)
  2039. 409.53 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA BTC)'s 0.59 ms
  2040. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2041. 409.53 s [really-safe-money-gen] invert
  2042. 409.53 s [really-safe-money-gen] produces valid rates 0.67 ms
  2043. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2044. 409.53 s [really-safe-money-gen] Rational
  2045. 409.53 s [really-safe-money-gen] fromRational
  2046. 409.53 s [really-safe-money-gen] roundtrips with toRational 0.55 ms
  2047. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2048. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.27 ms
  2049. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2050. 409.53 s [really-safe-money-gen] compose
  2051. 409.53 s [really-safe-money-gen] produces valid rates 0.82 ms
  2052. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2053. 409.53 s [really-safe-money-gen] Ratio
  2054. 409.53 s [really-safe-money-gen] fromRatio
  2055. 409.53 s [really-safe-money-gen] produces valid conversion rates 1.00 ms
  2056. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2057. 409.53 s [really-safe-money-gen] roundtrips with toRatio 0.66 ms
  2058. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2059. 409.53 s [really-safe-money-gen] INR
  2060. 409.53 s [really-safe-money-gen] GenValid (ConversionRateOf ADA INR)
  2061. 409.53 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA INR)
  2062. 409.53 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA INR)'s 0.52 ms
  2063. 409.53 s [really-safe-money-gen] passed for all of 100 inputs.
  2064. 409.54 s [really-safe-money-gen] Rational
  2065. 409.54 s [really-safe-money-gen] fromRational
  2066. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.79 ms
  2067. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2068. 409.54 s [really-safe-money-gen] roundtrips with toRational 1.03 ms
  2069. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2070. 409.54 s [really-safe-money-gen] Ratio
  2071. 409.54 s [really-safe-money-gen] fromRatio
  2072. 409.54 s [really-safe-money-gen] roundtrips with toRatio 0.49 ms
  2073. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2074. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.61 ms
  2075. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2076. 409.54 s [really-safe-money-gen] DecimalLiteral
  2077. 409.54 s [really-safe-money-gen] fromDecimalLiteral
  2078. 409.54 s [really-safe-money-gen] produces valid conversion rates 1.50 ms
  2079. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2080. 409.54 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.20 ms
  2081. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2082. 409.54 s [really-safe-money-gen] compose
  2083. 409.54 s [really-safe-money-gen] produces valid rates 1.25 ms
  2084. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2085. 409.54 s [really-safe-money-gen] invert
  2086. 409.54 s [really-safe-money-gen] produces valid rates 0.67 ms
  2087. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2088. 409.54 s [really-safe-money-gen] CHF
  2089. 409.54 s [really-safe-money-gen] BTC
  2090. 409.54 s [really-safe-money-gen] Rational
  2091. 409.54 s [really-safe-money-gen] fromRational
  2092. 409.54 s [really-safe-money-gen] roundtrips with toRational 0.67 ms
  2093. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2094. 409.54 s [really-safe-money-gen] produces valid conversion rates 1.21 ms
  2095. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2096. 409.54 s [really-safe-money-gen] DecimalLiteral
  2097. 409.54 s [really-safe-money-gen] fromDecimalLiteral
  2098. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.97 ms
  2099. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2100. 409.54 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.30 ms
  2101. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2102. 409.54 s [really-safe-money-gen] compose
  2103. 409.54 s [really-safe-money-gen] produces valid rates 0.96 ms
  2104. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2105. 409.54 s [really-safe-money-gen] Ratio
  2106. 409.54 s [really-safe-money-gen] fromRatio
  2107. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.90 ms
  2108. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2109. 409.54 s [really-safe-money-gen] roundtrips with toRatio 0.47 ms
  2110. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2111. 409.54 s [really-safe-money-gen] invert
  2112. 409.54 s [really-safe-money-gen] produces valid rates 0.55 ms
  2113. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2114. 409.54 s [really-safe-money-gen] GenValid (ConversionRateOf CHF BTC)
  2115. 409.54 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF BTC)
  2116. 409.54 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF BTC)'s 0.47 ms
  2117. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2118. 409.54 s [really-safe-money-gen] ADA
  2119. 409.54 s [really-safe-money-gen] DecimalLiteral
  2120. 409.54 s [really-safe-money-gen] fromDecimalLiteral
  2121. 409.54 s [really-safe-money-gen] produces valid conversion rates 1.20 ms
  2122. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2123. 409.54 s [really-safe-money-gen] roundtrips with toDecimalLiteral 55.73 ms
  2124. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2125. 409.54 s [really-safe-money-gen] invert
  2126. 409.54 s [really-safe-money-gen] produces valid rates 1.19 ms
  2127. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2128. 409.54 s [really-safe-money-gen] Ratio
  2129. 409.54 s [really-safe-money-gen] fromRatio
  2130. 409.54 s [really-safe-money-gen] roundtrips with toRatio 0.66 ms
  2131. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2132. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.58 ms
  2133. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2134. 409.54 s [really-safe-money-gen] compose
  2135. 409.54 s [really-safe-money-gen] produces valid rates 1.25 ms
  2136. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2137. 409.54 s [really-safe-money-gen] GenValid (ConversionRateOf CHF ADA)
  2138. 409.54 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF ADA)
  2139. 409.54 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF ADA)'s 0.57 ms
  2140. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2141. 409.54 s [really-safe-money-gen] Rational
  2142. 409.54 s [really-safe-money-gen] fromRational
  2143. 409.54 s [really-safe-money-gen] roundtrips with toRational 0.80 ms
  2144. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2145. 409.54 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  2146. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2147. 409.54 s [really-safe-money-gen] USD
  2148. 409.54 s [really-safe-money-gen] invert
  2149. 409.54 s [really-safe-money-gen] produces valid rates 0.58 ms
  2150. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2151. 409.54 s [really-safe-money-gen] GenValid (ConversionRateOf CHF USD)
  2152. 409.54 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF USD)
  2153. 409.54 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF USD)'s 0.57 ms
  2154. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2155. 409.54 s [really-safe-money-gen] DecimalLiteral
  2156. 409.54 s [really-safe-money-gen] fromDecimalLiteral
  2157. 409.54 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.13 ms
  2158. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2159. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.99 ms
  2160. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2161. 409.54 s [really-safe-money-gen] compose
  2162. 409.54 s [really-safe-money-gen] produces valid rates 1.38 ms
  2163. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2164. 409.54 s [really-safe-money-gen] Rational
  2165. 409.54 s [really-safe-money-gen] fromRational
  2166. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.83 ms
  2167. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2168. 409.54 s [really-safe-money-gen] roundtrips with toRational 0.73 ms
  2169. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2170. 409.54 s [really-safe-money-gen] Ratio
  2171. 409.54 s [really-safe-money-gen] fromRatio
  2172. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.93 ms
  2173. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2174. 409.54 s [really-safe-money-gen] roundtrips with toRatio 0.44 ms
  2175. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2176. 409.54 s [really-safe-money-gen] CHF
  2177. 409.54 s [really-safe-money-gen] GenValid (ConversionRateOf CHF CHF)
  2178. 409.54 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF CHF)
  2179. 409.54 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF CHF)'s 0.53 ms
  2180. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2181. 409.54 s [really-safe-money-gen] DecimalLiteral
  2182. 409.54 s [really-safe-money-gen] fromDecimalLiteral
  2183. 409.54 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.30 ms
  2184. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2185. 409.54 s [really-safe-money-gen] produces valid conversion rates 1.01 ms
  2186. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2187. 409.54 s [really-safe-money-gen] Rational
  2188. 409.54 s [really-safe-money-gen] fromRational
  2189. 409.54 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  2190. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2191. 409.54 s [really-safe-money-gen] roundtrips with toRational 0.67 ms
  2192. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2193. 409.54 s [really-safe-money-gen] invert
  2194. 409.54 s [really-safe-money-gen] produces valid rates 0.68 ms
  2195. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2196. 409.54 s [really-safe-money-gen] Ratio
  2197. 409.54 s [really-safe-money-gen] fromRatio
  2198. 409.54 s [really-safe-money-gen] produces valid conversion rates 0.96 ms
  2199. 409.54 s [really-safe-money-gen] passed for all of 100 inputs.
  2200. 409.54 s [really-safe-money-gen] roundtrips with toRatio 0.54 ms
  2201. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2202. 409.55 s [really-safe-money-gen] compose
  2203. 409.55 s [really-safe-money-gen] produces valid rates 0.84 ms
  2204. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2205. 409.55 s [really-safe-money-gen] INR
  2206. 409.55 s [really-safe-money-gen] Ratio
  2207. 409.55 s [really-safe-money-gen] fromRatio
  2208. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.99 ms
  2209. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2210. 409.55 s [really-safe-money-gen] roundtrips with toRatio 0.62 ms
  2211. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2212. 409.55 s [really-safe-money-gen] compose
  2213. 409.55 s [really-safe-money-gen] produces valid rates 0.74 ms
  2214. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2215. 409.55 s [really-safe-money-gen] invert
  2216. 409.55 s [really-safe-money-gen] produces valid rates 0.64 ms
  2217. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2218. 409.55 s [really-safe-money-gen] DecimalLiteral
  2219. 409.55 s [really-safe-money-gen] fromDecimalLiteral
  2220. 409.55 s [really-safe-money-gen] produces valid conversion rates 1.31 ms
  2221. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2222. 409.55 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.23 ms
  2223. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2224. 409.55 s [really-safe-money-gen] GenValid (ConversionRateOf CHF INR)
  2225. 409.55 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF INR)
  2226. 409.55 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF INR)'s 0.47 ms
  2227. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2228. 409.55 s [really-safe-money-gen] Rational
  2229. 409.55 s [really-safe-money-gen] fromRational
  2230. 409.55 s [really-safe-money-gen] roundtrips with toRational 0.84 ms
  2231. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2232. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.80 ms
  2233. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2234. 409.55 s [really-safe-money-gen] USD
  2235. 409.55 s [really-safe-money-gen] CHF
  2236. 409.55 s [really-safe-money-gen] GenValid (ConversionRateOf USD CHF)
  2237. 409.55 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD CHF)
  2238. 409.55 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD CHF)'s 0.85 ms
  2239. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2240. 409.55 s [really-safe-money-gen] invert
  2241. 409.55 s [really-safe-money-gen] produces valid rates 0.65 ms
  2242. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2243. 409.55 s [really-safe-money-gen] DecimalLiteral
  2244. 409.55 s [really-safe-money-gen] fromDecimalLiteral
  2245. 409.55 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.08 ms
  2246. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2247. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.94 ms
  2248. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2249. 409.55 s [really-safe-money-gen] Rational
  2250. 409.55 s [really-safe-money-gen] fromRational
  2251. 409.55 s [really-safe-money-gen] roundtrips with toRational 0.71 ms
  2252. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2253. 409.55 s [really-safe-money-gen] produces valid conversion rates 1.19 ms
  2254. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2255. 409.55 s [really-safe-money-gen] Ratio
  2256. 409.55 s [really-safe-money-gen] fromRatio
  2257. 409.55 s [really-safe-money-gen] roundtrips with toRatio 0.48 ms
  2258. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2259. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.54 ms
  2260. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2261. 409.55 s [really-safe-money-gen] compose
  2262. 409.55 s [really-safe-money-gen] produces valid rates 1.25 ms
  2263. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2264. 409.55 s [really-safe-money-gen] USD
  2265. 409.55 s [really-safe-money-gen] Ratio
  2266. 409.55 s [really-safe-money-gen] fromRatio
  2267. 409.55 s [really-safe-money-gen] roundtrips with toRatio 0.58 ms
  2268. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2269. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  2270. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2271. 409.55 s [really-safe-money-gen] DecimalLiteral
  2272. 409.55 s [really-safe-money-gen] fromDecimalLiteral
  2273. 409.55 s [really-safe-money-gen] produces valid conversion rates 1.56 ms
  2274. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2275. 409.55 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.63 ms
  2276. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2277. 409.55 s [really-safe-money-gen] invert
  2278. 409.55 s [really-safe-money-gen] produces valid rates 1.21 ms
  2279. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2280. 409.55 s [really-safe-money-gen] Rational
  2281. 409.55 s [really-safe-money-gen] fromRational
  2282. 409.55 s [really-safe-money-gen] roundtrips with toRational 0.68 ms
  2283. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2284. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.84 ms
  2285. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2286. 409.55 s [really-safe-money-gen] compose
  2287. 409.55 s [really-safe-money-gen] produces valid rates 1.36 ms
  2288. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2289. 409.55 s [really-safe-money-gen] GenValid (ConversionRateOf USD USD)
  2290. 409.55 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD USD)
  2291. 409.55 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD USD)'s 0.47 ms
  2292. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2293. 409.55 s [really-safe-money-gen] INR
  2294. 409.55 s [really-safe-money-gen] DecimalLiteral
  2295. 409.55 s [really-safe-money-gen] fromDecimalLiteral
  2296. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.95 ms
  2297. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2298. 409.55 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.47 ms
  2299. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2300. 409.55 s [really-safe-money-gen] compose
  2301. 409.55 s [really-safe-money-gen] produces valid rates 1.19 ms
  2302. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2303. 409.55 s [really-safe-money-gen] Rational
  2304. 409.55 s [really-safe-money-gen] fromRational
  2305. 409.55 s [really-safe-money-gen] roundtrips with toRational 0.57 ms
  2306. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2307. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.82 ms
  2308. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2309. 409.55 s [really-safe-money-gen] Ratio
  2310. 409.55 s [really-safe-money-gen] fromRatio
  2311. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.96 ms
  2312. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2313. 409.55 s [really-safe-money-gen] roundtrips with toRatio 0.56 ms
  2314. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2315. 409.55 s [really-safe-money-gen] invert
  2316. 409.55 s [really-safe-money-gen] produces valid rates 0.55 ms
  2317. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2318. 409.55 s [really-safe-money-gen] GenValid (ConversionRateOf USD INR)
  2319. 409.55 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD INR)
  2320. 409.55 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD INR)'s 0.60 ms
  2321. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2322. 409.55 s [really-safe-money-gen] BTC
  2323. 409.55 s [really-safe-money-gen] Ratio
  2324. 409.55 s [really-safe-money-gen] fromRatio
  2325. 409.55 s [really-safe-money-gen] roundtrips with toRatio 0.90 ms
  2326. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2327. 409.55 s [really-safe-money-gen] produces valid conversion rates 0.54 ms
  2328. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2329. 409.55 s [really-safe-money-gen] compose
  2330. 409.55 s [really-safe-money-gen] produces valid rates 0.88 ms
  2331. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2332. 409.55 s [really-safe-money-gen] Rational
  2333. 409.55 s [really-safe-money-gen] fromRational
  2334. 409.55 s [really-safe-money-gen] produces valid conversion rates 1.14 ms
  2335. 409.55 s [really-safe-money-gen] passed for all of 100 inputs.
  2336. 409.55 s [really-safe-money-gen] roundtrips with toRational 0.72 ms
  2337. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2338. 409.56 s [really-safe-money-gen] GenValid (ConversionRateOf USD BTC)
  2339. 409.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD BTC)
  2340. 409.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD BTC)'s 0.48 ms
  2341. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2342. 409.56 s [really-safe-money-gen] invert
  2343. 409.56 s [really-safe-money-gen] produces valid rates 1.11 ms
  2344. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2345. 409.56 s [really-safe-money-gen] DecimalLiteral
  2346. 409.56 s [really-safe-money-gen] fromDecimalLiteral
  2347. 409.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.49 ms
  2348. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2349. 409.56 s [really-safe-money-gen] produces valid conversion rates 1.45 ms
  2350. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2351. 409.56 s [really-safe-money-gen] ADA
  2352. 409.56 s [really-safe-money-gen] GenValid (ConversionRateOf USD ADA)
  2353. 409.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD ADA)
  2354. 409.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD ADA)'s 0.51 ms
  2355. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2356. 409.56 s [really-safe-money-gen] compose
  2357. 409.56 s [really-safe-money-gen] produces valid rates 0.89 ms
  2358. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2359. 409.56 s [really-safe-money-gen] DecimalLiteral
  2360. 409.56 s [really-safe-money-gen] fromDecimalLiteral
  2361. 409.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 60.80 ms
  2362. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2363. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.97 ms
  2364. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2365. 409.56 s [really-safe-money-gen] invert
  2366. 409.56 s [really-safe-money-gen] produces valid rates 1.10 ms
  2367. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2368. 409.56 s [really-safe-money-gen] Ratio
  2369. 409.56 s [really-safe-money-gen] fromRatio
  2370. 409.56 s [really-safe-money-gen] roundtrips with toRatio 0.50 ms
  2371. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2372. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.62 ms
  2373. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2374. 409.56 s [really-safe-money-gen] Rational
  2375. 409.56 s [really-safe-money-gen] fromRational
  2376. 409.56 s [really-safe-money-gen] produces valid conversion rates 1.17 ms
  2377. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2378. 409.56 s [really-safe-money-gen] roundtrips with toRational 0.58 ms
  2379. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2380. 409.56 s [really-safe-money-gen] BTC
  2381. 409.56 s [really-safe-money-gen] ADA
  2382. 409.56 s [really-safe-money-gen] Ratio
  2383. 409.56 s [really-safe-money-gen] fromRatio
  2384. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.53 ms
  2385. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2386. 409.56 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  2387. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2388. 409.56 s [really-safe-money-gen] DecimalLiteral
  2389. 409.56 s [really-safe-money-gen] fromDecimalLiteral
  2390. 409.56 s [really-safe-money-gen] produces valid conversion rates 1.23 ms
  2391. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2392. 409.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 55.95 ms
  2393. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2394. 409.56 s [really-safe-money-gen] compose
  2395. 409.56 s [really-safe-money-gen] produces valid rates 0.88 ms
  2396. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2397. 409.56 s [really-safe-money-gen] invert
  2398. 409.56 s [really-safe-money-gen] produces valid rates 0.59 ms
  2399. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2400. 409.56 s [really-safe-money-gen] GenValid (ConversionRateOf BTC ADA)
  2401. 409.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC ADA)
  2402. 409.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC ADA)'s 1.02 ms
  2403. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2404. 409.56 s [really-safe-money-gen] Rational
  2405. 409.56 s [really-safe-money-gen] fromRational
  2406. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.82 ms
  2407. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2408. 409.56 s [really-safe-money-gen] roundtrips with toRational 0.76 ms
  2409. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2410. 409.56 s [really-safe-money-gen] USD
  2411. 409.56 s [really-safe-money-gen] Rational
  2412. 409.56 s [really-safe-money-gen] fromRational
  2413. 409.56 s [really-safe-money-gen] roundtrips with toRational 1.17 ms
  2414. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2415. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.96 ms
  2416. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2417. 409.56 s [really-safe-money-gen] DecimalLiteral
  2418. 409.56 s [really-safe-money-gen] fromDecimalLiteral
  2419. 409.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.12 ms
  2420. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2421. 409.56 s [really-safe-money-gen] produces valid conversion rates 1.11 ms
  2422. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2423. 409.56 s [really-safe-money-gen] Ratio
  2424. 409.56 s [really-safe-money-gen] fromRatio
  2425. 409.56 s [really-safe-money-gen] roundtrips with toRatio 0.56 ms
  2426. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2427. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.97 ms
  2428. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2429. 409.56 s [really-safe-money-gen] compose
  2430. 409.56 s [really-safe-money-gen] produces valid rates 0.79 ms
  2431. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2432. 409.56 s [really-safe-money-gen] invert
  2433. 409.56 s [really-safe-money-gen] produces valid rates 0.50 ms
  2434. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2435. 409.56 s [really-safe-money-gen] GenValid (ConversionRateOf BTC USD)
  2436. 409.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC USD)
  2437. 409.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC USD)'s 0.48 ms
  2438. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2439. 409.56 s [really-safe-money-gen] INR
  2440. 409.56 s [really-safe-money-gen] compose
  2441. 409.56 s [really-safe-money-gen] produces valid rates 1.47 ms
  2442. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2443. 409.56 s [really-safe-money-gen] GenValid (ConversionRateOf BTC INR)
  2444. 409.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC INR)
  2445. 409.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC INR)'s 0.65 ms
  2446. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2447. 409.56 s [really-safe-money-gen] DecimalLiteral
  2448. 409.56 s [really-safe-money-gen] fromDecimalLiteral
  2449. 409.56 s [really-safe-money-gen] produces valid conversion rates 1.25 ms
  2450. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2451. 409.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 55.06 ms
  2452. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2453. 409.56 s [really-safe-money-gen] invert
  2454. 409.56 s [really-safe-money-gen] produces valid rates 0.98 ms
  2455. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2456. 409.56 s [really-safe-money-gen] Rational
  2457. 409.56 s [really-safe-money-gen] fromRational
  2458. 409.56 s [really-safe-money-gen] roundtrips with toRational 0.61 ms
  2459. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2460. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  2461. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2462. 409.56 s [really-safe-money-gen] Ratio
  2463. 409.56 s [really-safe-money-gen] fromRatio
  2464. 409.56 s [really-safe-money-gen] produces valid conversion rates 0.81 ms
  2465. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2466. 409.56 s [really-safe-money-gen] roundtrips with toRatio 0.48 ms
  2467. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2468. 409.56 s [really-safe-money-gen] CHF
  2469. 409.56 s [really-safe-money-gen] compose
  2470. 409.56 s [really-safe-money-gen] produces valid rates 0.77 ms
  2471. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2472. 409.56 s [really-safe-money-gen] GenValid (ConversionRateOf BTC CHF)
  2473. 409.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC CHF)
  2474. 409.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC CHF)'s 0.46 ms
  2475. 409.56 s [really-safe-money-gen] passed for all of 100 inputs.
  2476. 409.56 s [really-safe-money-gen] DecimalLiteral
  2477. 409.56 s [really-safe-money-gen] fromDecimalLiteral
  2478. 409.57 s [really-safe-money-gen] produces valid conversion rates 1.25 ms
  2479. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2480. 409.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 60.74 ms
  2481. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2482. 409.57 s [really-safe-money-gen] invert
  2483. 409.57 s [really-safe-money-gen] produces valid rates 0.79 ms
  2484. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2485. 409.57 s [really-safe-money-gen] Ratio
  2486. 409.57 s [really-safe-money-gen] fromRatio
  2487. 409.57 s [really-safe-money-gen] produces valid conversion rates 0.68 ms
  2488. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2489. 409.57 s [really-safe-money-gen] roundtrips with toRatio 0.66 ms
  2490. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2491. 409.57 s [really-safe-money-gen] Rational
  2492. 409.57 s [really-safe-money-gen] fromRational
  2493. 409.57 s [really-safe-money-gen] roundtrips with toRational 1.20 ms
  2494. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2495. 409.57 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  2496. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2497. 409.57 s [really-safe-money-gen] BTC
  2498. 409.57 s [really-safe-money-gen] invert
  2499. 409.57 s [really-safe-money-gen] produces valid rates 0.62 ms
  2500. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2501. 409.57 s [really-safe-money-gen] Rational
  2502. 409.57 s [really-safe-money-gen] fromRational
  2503. 409.57 s [really-safe-money-gen] produces valid conversion rates 1.18 ms
  2504. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2505. 409.57 s [really-safe-money-gen] roundtrips with toRational 0.54 ms
  2506. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2507. 409.57 s [really-safe-money-gen] compose
  2508. 409.57 s [really-safe-money-gen] produces valid rates 0.75 ms
  2509. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2510. 409.57 s [really-safe-money-gen] GenValid (ConversionRateOf BTC BTC)
  2511. 409.57 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC BTC)
  2512. 409.57 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC BTC)'s 1.12 ms
  2513. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2514. 409.57 s [really-safe-money-gen] DecimalLiteral
  2515. 409.57 s [really-safe-money-gen] fromDecimalLiteral
  2516. 409.57 s [really-safe-money-gen] produces valid conversion rates 1.06 ms
  2517. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2518. 409.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.05 ms
  2519. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2520. 409.57 s [really-safe-money-gen] Ratio
  2521. 409.57 s [really-safe-money-gen] fromRatio
  2522. 409.57 s [really-safe-money-gen] roundtrips with toRatio 0.70 ms
  2523. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2524. 409.57 s [really-safe-money-gen] produces valid conversion rates 0.84 ms
  2525. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2526. 409.57 s [really-safe-money-gen] Money.AmountOfSpec
  2527. 409.57 s [really-safe-money-gen] USD
  2528. 409.57 s [really-safe-money-gen] CHF
  2529. 409.57 s [really-safe-money-gen] rate
  2530. 409.57 s [really-safe-money-gen] produces valid amounts 1.33 ms
  2531. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2532. 409.57 s [really-safe-money-gen] convert
  2533. 409.57 s [really-safe-money-gen] produces valid amounts 1.46 ms
  2534. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2535. 409.57 s [really-safe-money-gen] BTC
  2536. 409.57 s [really-safe-money-gen] convert
  2537. 409.57 s [really-safe-money-gen] produces valid amounts 1.61 ms
  2538. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2539. 409.57 s [really-safe-money-gen] rate
  2540. 409.57 s [really-safe-money-gen] produces valid amounts 0.65 ms
  2541. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2542. 409.57 s [really-safe-money-gen] INR
  2543. 409.57 s [really-safe-money-gen] convert
  2544. 409.57 s [really-safe-money-gen] produces valid amounts 1.53 ms
  2545. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2546. 409.57 s [really-safe-money-gen] rate
  2547. 409.57 s [really-safe-money-gen] produces valid amounts 0.93 ms
  2548. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2549. 409.57 s [really-safe-money-gen] USD
  2550. 409.57 s [really-safe-money-gen] rate
  2551. 409.57 s [really-safe-money-gen] produces valid amounts 0.85 ms
  2552. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2553. 409.57 s [really-safe-money-gen] convert
  2554. 409.57 s [really-safe-money-gen] produces valid amounts 1.70 ms
  2555. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2556. 409.57 s [really-safe-money-gen] ADA
  2557. 409.57 s [really-safe-money-gen] convert
  2558. 409.57 s [really-safe-money-gen] produces valid amounts 1.27 ms
  2559. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2560. 409.57 s [really-safe-money-gen] rate
  2561. 409.57 s [really-safe-money-gen] produces valid amounts 1.11 ms
  2562. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2563. 409.57 s [really-safe-money-gen] ADA
  2564. 409.57 s [really-safe-money-gen] BTC
  2565. 409.57 s [really-safe-money-gen] convert
  2566. 409.57 s [really-safe-money-gen] produces valid amounts 1.38 ms
  2567. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2568. 409.57 s [really-safe-money-gen] rate
  2569. 409.57 s [really-safe-money-gen] produces valid amounts 0.86 ms
  2570. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2571. 409.57 s [really-safe-money-gen] USD
  2572. 409.57 s [really-safe-money-gen] rate
  2573. 409.57 s [really-safe-money-gen] produces valid amounts 1.31 ms
  2574. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2575. 409.57 s [really-safe-money-gen] convert
  2576. 409.57 s [really-safe-money-gen] produces valid amounts 1.45 ms
  2577. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2578. 409.57 s [really-safe-money-gen] CHF
  2579. 409.57 s [really-safe-money-gen] convert
  2580. 409.57 s [really-safe-money-gen] produces valid amounts 1.59 ms
  2581. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2582. 409.57 s [really-safe-money-gen] rate
  2583. 409.57 s [really-safe-money-gen] produces valid amounts 0.66 ms
  2584. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2585. 409.57 s [really-safe-money-gen] ADA
  2586. 409.57 s [really-safe-money-gen] rate
  2587. 409.57 s [really-safe-money-gen] produces valid amounts 0.67 ms
  2588. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2589. 409.57 s [really-safe-money-gen] convert
  2590. 409.57 s [really-safe-money-gen] produces valid amounts 1.59 ms
  2591. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2592. 409.57 s [really-safe-money-gen] INR
  2593. 409.57 s [really-safe-money-gen] rate
  2594. 409.57 s [really-safe-money-gen] produces valid amounts 0.69 ms
  2595. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2596. 409.57 s [really-safe-money-gen] convert
  2597. 409.57 s [really-safe-money-gen] produces valid amounts 1.59 ms
  2598. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2599. 409.57 s [really-safe-money-gen] INR
  2600. 409.57 s [really-safe-money-gen] ADA
  2601. 409.57 s [really-safe-money-gen] rate
  2602. 409.57 s [really-safe-money-gen] produces valid amounts 0.66 ms
  2603. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2604. 409.57 s [really-safe-money-gen] convert
  2605. 409.57 s [really-safe-money-gen] produces valid amounts 1.78 ms
  2606. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2607. 409.57 s [really-safe-money-gen] CHF
  2608. 409.57 s [really-safe-money-gen] convert
  2609. 409.57 s [really-safe-money-gen] produces valid amounts 1.23 ms
  2610. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2611. 409.57 s [really-safe-money-gen] rate
  2612. 409.57 s [really-safe-money-gen] produces valid amounts 0.77 ms
  2613. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2614. 409.57 s [really-safe-money-gen] INR
  2615. 409.57 s [really-safe-money-gen] rate
  2616. 409.57 s [really-safe-money-gen] produces valid amounts 1.21 ms
  2617. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2618. 409.57 s [really-safe-money-gen] convert
  2619. 409.57 s [really-safe-money-gen] produces valid amounts 1.18 ms
  2620. 409.57 s [really-safe-money-gen] passed for all of 100 inputs.
  2621. 409.57 s [really-safe-money-gen] BTC
  2622. 409.57 s [really-safe-money-gen] rate
  2623. 409.57 s [really-safe-money-gen] produces valid amounts 1.09 ms
  2624. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2625. 409.58 s [really-safe-money-gen] convert
  2626. 409.58 s [really-safe-money-gen] produces valid amounts 1.51 ms
  2627. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2628. 409.58 s [really-safe-money-gen] USD
  2629. 409.58 s [really-safe-money-gen] convert
  2630. 409.58 s [really-safe-money-gen] produces valid amounts 1.60 ms
  2631. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2632. 409.58 s [really-safe-money-gen] rate
  2633. 409.58 s [really-safe-money-gen] produces valid amounts 0.86 ms
  2634. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2635. 409.58 s [really-safe-money-gen] BTC
  2636. 409.58 s [really-safe-money-gen] INR
  2637. 409.58 s [really-safe-money-gen] rate
  2638. 409.58 s [really-safe-money-gen] produces valid amounts 0.90 ms
  2639. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2640. 409.58 s [really-safe-money-gen] convert
  2641. 409.58 s [really-safe-money-gen] produces valid amounts 1.84 ms
  2642. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2643. 409.58 s [really-safe-money-gen] CHF
  2644. 409.58 s [really-safe-money-gen] convert
  2645. 409.58 s [really-safe-money-gen] produces valid amounts 1.20 ms
  2646. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2647. 409.58 s [really-safe-money-gen] rate
  2648. 409.58 s [really-safe-money-gen] produces valid amounts 1.03 ms
  2649. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2650. 409.58 s [really-safe-money-gen] USD
  2651. 409.58 s [really-safe-money-gen] rate
  2652. 409.58 s [really-safe-money-gen] produces valid amounts 0.71 ms
  2653. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2654. 409.58 s [really-safe-money-gen] convert
  2655. 409.58 s [really-safe-money-gen] produces valid amounts 1.66 ms
  2656. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2657. 409.58 s [really-safe-money-gen] ADA
  2658. 409.58 s [really-safe-money-gen] convert
  2659. 409.58 s [really-safe-money-gen] produces valid amounts 1.69 ms
  2660. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2661. 409.58 s [really-safe-money-gen] rate
  2662. 409.58 s [really-safe-money-gen] produces valid amounts 1.08 ms
  2663. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2664. 409.58 s [really-safe-money-gen] BTC
  2665. 409.58 s [really-safe-money-gen] convert
  2666. 409.58 s [really-safe-money-gen] produces valid amounts 1.21 ms
  2667. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2668. 409.58 s [really-safe-money-gen] rate
  2669. 409.58 s [really-safe-money-gen] produces valid amounts 0.68 ms
  2670. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2671. 409.58 s [really-safe-money-gen] CHF
  2672. 409.58 s [really-safe-money-gen] INR
  2673. 409.58 s [really-safe-money-gen] convert
  2674. 409.58 s [really-safe-money-gen] produces valid amounts 1.41 ms
  2675. 409.58 s [really-safe-money-gen] passed for all of 100 inputs.
  2676. 409.58 s [really-safe-money-gen] rate
  2677. 409.58 s [really-safe-money-gen] esting mutation Negate at src/Money/ConversionRate.hs:38:41-57:
  2678. 409.58 s [really-safe-money-gen] @@ -35,7 +35,7 @@
  2679. 409.58 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  2680. 409.58 s [really-safe-money-gen] mconcat
  2681. 409.58 s [really-safe-money-gen] [ genericValidate cr,
  2682. 409.58 s [really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
  2683. 409.58 s [really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
  2684. 409.58 s [really-safe-money-gen] ]
  2685. 409.58 s [really-safe-money-gen]
  2686. 409.58 s [really-safe-money-gen] instance NFData ConversionRate
  2687. 409.58 s [really-safe-money-gen]
  2688. 409.67 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8:
  2689. 409.67 s [really-safe-money-gen] @@ -34,7 +34,7 @@
  2690. 409.67 s [really-safe-money-gen] instance Validity ConversionRate where
  2691. 409.67 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  2692. 409.67 s [really-safe-money-gen] mconcat
  2693. 409.67 s [really-safe-money-gen] - [ genericValidate cr,
  2694. 409.67 s [really-safe-money-gen] + [ genericValidate cr,
  2695. 409.67 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  2696. 409.67 s [really-safe-money-gen] ]
  2697. 409.67 s [really-safe-money-gen]
  2698. 409.67 s [really-safe-money-gen]
  2699. 418.07 s [really-safe-money-gen] 32m✓ produces valid amounts 0.59 ms
  2700. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2701. 418.09 s [really-safe-money-gen] USD
  2702. 418.09 s [really-safe-money-gen] convert
  2703. 418.09 s [really-safe-money-gen] produces valid amounts 1.74 ms
  2704. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2705. 418.09 s [really-safe-money-gen] rate
  2706. 418.09 s [really-safe-money-gen] produces valid amounts 0.76 ms
  2707. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2708. 418.09 s [really-safe-money-gen] BTC
  2709. 418.09 s [really-safe-money-gen] convert
  2710. 418.09 s [really-safe-money-gen] produces valid amounts 1.60 ms
  2711. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2712. 418.09 s [really-safe-money-gen] rate
  2713. 418.09 s [really-safe-money-gen] produces valid amounts 0.59 ms
  2714. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2715. 418.09 s [really-safe-money-gen] CHF
  2716. 418.09 s [really-safe-money-gen] convert
  2717. 418.09 s [really-safe-money-gen] produces valid amounts 1.02 ms
  2718. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2719. 418.09 s [really-safe-money-gen] rate
  2720. 418.09 s [really-safe-money-gen] produces valid amounts 0.98 ms
  2721. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2722. 418.09 s [really-safe-money-gen] ADA
  2723. 418.09 s [really-safe-money-gen] rate
  2724. 418.09 s [really-safe-money-gen] produces valid amounts 0.58 ms
  2725. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2726. 418.09 s [really-safe-money-gen] convert
  2727. 418.09 s [really-safe-money-gen] produces valid amounts 1.60 ms
  2728. 418.09 s [really-safe-money-gen] passed for all of 100 inputs.
  2729. 418.09 s [really-safe-money-gen] Money.AmountSpec
  2730. 418.09 s [really-safe-money-gen] rate
  2731. 418.09 s [really-safe-money-gen] produces valid conversion rates 152.26 ms
  2732. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2733. 418.10 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 281.64 ms
  2734. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2735. 418.10 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  2736. 418.10 s [really-safe-money-gen] convert
  2737. 418.10 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 85.22 ms
  2738. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2739. 418.10 s [really-safe-money-gen] converts this USD to CHF correctly 0.01 ms
  2740. 418.10 s [really-safe-money-gen] produces valid amounts 267.02 ms
  2741. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2742. 418.10 s [really-safe-money-gen]
  2743. 418.10 s [really-safe-money-gen]
  2744. 418.10 s [really-safe-money-gen]
  2745. 418.10 s [really-safe-money-gen] Examples: 202504
  2746. 418.10 s [really-safe-money-gen] Passed: 346
  2747. 418.10 s [really-safe-money-gen] Failed: 0
  2748. 418.10 s [really-safe-money-gen] Sum of test runtimes: 9.26 seconds
  2749. 418.10 s [really-safe-money-gen] Test suite took: 9.27 seconds
  2750. 418.10 s [really-safe-money-gen]
  2751. 418.10 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8:
  2752. 418.10 s [really-safe-money-gen] @@ -34,7 +34,7 @@
  2753. 418.10 s [really-safe-money-gen] instance Validity ConversionRate where
  2754. 418.10 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  2755. 418.10 s [really-safe-money-gen] mconcat
  2756. 418.10 s [really-safe-money-gen] - [ genericValidate cr,
  2757. 418.10 s [really-safe-money-gen] + [ genericValidate cr,
  2758. 418.10 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  2759. 418.10 s [really-safe-money-gen] ]
  2760. 418.10 s [really-safe-money-gen]
  2761. 418.10 s [really-safe-money-gen] Tests:
  2762. 418.10 s [really-safe-money-gen]
  2763. 418.10 s [really-safe-money-gen] Money.ConversionRateSpec
  2764. 418.10 s [really-safe-money-gen] Rational
  2765. 418.10 s [really-safe-money-gen] fromRational
  2766. 418.10 s [really-safe-money-gen] roundtrips with toRational 68.94 ms
  2767. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2768. 418.10 s [really-safe-money-gen] produces valid conversion rates 80.08 ms
  2769. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2770. 418.10 s [really-safe-money-gen] Ratio
  2771. 418.10 s [really-safe-money-gen] fromRatio
  2772. 418.10 s [really-safe-money-gen] produces valid conversion rates 18.37 ms
  2773. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2774. 418.10 s [really-safe-money-gen] roundtrips with toRatio 45.24 ms
  2775. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2776. 418.10 s [really-safe-money-gen] invert
  2777. 418.10 s [really-safe-money-gen] produces valid rates 18.55 ms
  2778. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2779. 418.10 s [really-safe-money-gen] DecimalLiteral
  2780. 418.10 s [really-safe-money-gen] fromDecimalLiteral
  2781. 418.10 s [really-safe-money-gen] produces valid conversion rates 63.45 ms
  2782. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2783. 418.10 s [really-safe-money-gen] roundtrips with toDecimalLiteral 5270.17 ms
  2784. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2785. 418.10 s [really-safe-money-gen] compose
  2786. 418.10 s [really-safe-money-gen] produces valid rates 21.30 ms
  2787. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2788. 418.10 s [really-safe-money-gen] GenValid ConversionRate
  2789. 418.10 s [really-safe-money-gen] genValid :: Gen ConversionRate
  2790. 418.10 s [really-safe-money-gen] only generates valid 'ConversionRate's 20.69 ms
  2791. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2792. 418.10 s [really-safe-money-gen] Money.AccountSpec
  2793. 418.10 s [really-safe-money-gen] convert
  2794. 418.10 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 85.69 ms
  2795. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2796. 418.10 s [really-safe-money-gen] produces valid amounts 196.65 ms
  2797. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2798. 418.10 s [really-safe-money-gen] converts this USD to CHF correctly 0.01 ms
  2799. 418.10 s [really-safe-money-gen] rate
  2800. 418.10 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 143.66 ms
  2801. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2802. 418.10 s [really-safe-money-gen] produces valid conversion rates 54.35 ms
  2803. 418.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  2804. 418.10 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  2805. 418.10 s [really-safe-money-gen] Money.AccountOfSpec
  2806. 418.10 s [really-safe-money-gen] USD
  2807. 418.10 s [really-safe-money-gen] USD
  2808. 418.10 s [really-safe-money-gen] convert
  2809. 418.10 s [really-safe-money-gen] produces valid amounts 0.74 ms
  2810. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2811. 418.10 s [really-safe-money-gen] rate
  2812. 418.10 s [really-safe-money-gen] produces valid amounts 0.44 ms
  2813. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2814. 418.10 s [really-safe-money-gen] BTC
  2815. 418.10 s [really-safe-money-gen] rate
  2816. 418.10 s [really-safe-money-gen] produces valid amounts 0.18 ms
  2817. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2818. 418.10 s [really-safe-money-gen] convert
  2819. 418.10 s [really-safe-money-gen] produces valid amounts 0.68 ms
  2820. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2821. 418.10 s [really-safe-money-gen] INR
  2822. 418.10 s [really-safe-money-gen] rate
  2823. 418.10 s [really-safe-money-gen] produces valid amounts 0.15 ms
  2824. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2825. 418.10 s [really-safe-money-gen] convert
  2826. 418.10 s [really-safe-money-gen] produces valid amounts 1.10 ms
  2827. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2828. 418.10 s [really-safe-money-gen] ADA
  2829. 418.10 s [really-safe-money-gen] rate
  2830. 418.10 s [really-safe-money-gen] produces valid amounts 0.25 ms
  2831. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2832. 418.10 s [really-safe-money-gen] convert
  2833. 418.10 s [really-safe-money-gen] produces valid amounts 0.99 ms
  2834. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2835. 418.10 s [really-safe-money-gen] CHF
  2836. 418.10 s [really-safe-money-gen] convert
  2837. 418.10 s [really-safe-money-gen] produces valid amounts 0.81 ms
  2838. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2839. 418.10 s [really-safe-money-gen] rate
  2840. 418.10 s [really-safe-money-gen] produces valid amounts 0.58 ms
  2841. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2842. 418.10 s [really-safe-money-gen] INR
  2843. 418.10 s [really-safe-money-gen] USD
  2844. 418.10 s [really-safe-money-gen] convert
  2845. 418.10 s [really-safe-money-gen] produces valid amounts 0.80 ms
  2846. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2847. 418.10 s [really-safe-money-gen] rate
  2848. 418.10 s [really-safe-money-gen] produces valid amounts 0.16 ms
  2849. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2850. 418.10 s [really-safe-money-gen] CHF
  2851. 418.10 s [really-safe-money-gen] rate
  2852. 418.10 s [really-safe-money-gen] produces valid amounts 0.22 ms
  2853. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2854. 418.10 s [really-safe-money-gen] convert
  2855. 418.10 s [really-safe-money-gen] produces valid amounts 1.12 ms
  2856. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2857. 418.10 s [really-safe-money-gen] BTC
  2858. 418.10 s [really-safe-money-gen] rate
  2859. 418.10 s [really-safe-money-gen] produces valid amounts 0.20 ms
  2860. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2861. 418.10 s [really-safe-money-gen] convert
  2862. 418.10 s [really-safe-money-gen] produces valid amounts 0.73 ms
  2863. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2864. 418.10 s [really-safe-money-gen] ADA
  2865. 418.10 s [really-safe-money-gen] convert
  2866. 418.10 s [really-safe-money-gen] produces valid amounts 1.07 ms
  2867. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2868. 418.10 s [really-safe-money-gen] rate
  2869. 418.10 s [really-safe-money-gen] produces valid amounts 0.22 ms
  2870. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2871. 418.10 s [really-safe-money-gen] INR
  2872. 418.10 s [really-safe-money-gen] convert
  2873. 418.10 s [really-safe-money-gen] produces valid amounts 0.70 ms
  2874. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2875. 418.10 s [really-safe-money-gen] rate
  2876. 418.10 s [really-safe-money-gen] produces valid amounts 0.22 ms
  2877. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2878. 418.10 s [really-safe-money-gen] CHF
  2879. 418.10 s [really-safe-money-gen] USD
  2880. 418.10 s [really-safe-money-gen] rate
  2881. 418.10 s [really-safe-money-gen] produces valid amounts 0.24 ms
  2882. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2883. 418.10 s [really-safe-money-gen] convert
  2884. 418.10 s [really-safe-money-gen] produces valid amounts 1.37 ms
  2885. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2886. 418.10 s [really-safe-money-gen] BTC
  2887. 418.10 s [really-safe-money-gen] convert
  2888. 418.10 s [really-safe-money-gen] produces valid amounts 0.87 ms
  2889. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2890. 418.10 s [really-safe-money-gen] rate
  2891. 418.10 s [really-safe-money-gen] produces valid amounts 0.24 ms
  2892. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2893. 418.10 s [really-safe-money-gen] ADA
  2894. 418.10 s [really-safe-money-gen] convert
  2895. 418.10 s [really-safe-money-gen] produces valid amounts 1.25 ms
  2896. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2897. 418.10 s [really-safe-money-gen] rate
  2898. 418.10 s [really-safe-money-gen] produces valid amounts 0.18 ms
  2899. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2900. 418.10 s [really-safe-money-gen] CHF
  2901. 418.10 s [really-safe-money-gen] rate
  2902. 418.10 s [really-safe-money-gen] produces valid amounts 0.20 ms
  2903. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2904. 418.10 s [really-safe-money-gen] convert
  2905. 418.10 s [really-safe-money-gen] produces valid amounts 0.86 ms
  2906. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2907. 418.10 s [really-safe-money-gen] INR
  2908. 418.10 s [really-safe-money-gen] convert
  2909. 418.10 s [really-safe-money-gen] produces valid amounts 0.98 ms
  2910. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2911. 418.10 s [really-safe-money-gen] rate
  2912. 418.10 s [really-safe-money-gen] produces valid amounts 0.17 ms
  2913. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2914. 418.10 s [really-safe-money-gen] ADA
  2915. 418.10 s [really-safe-money-gen] CHF
  2916. 418.10 s [really-safe-money-gen] rate
  2917. 418.10 s [really-safe-money-gen] produces valid amounts 0.16 ms
  2918. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2919. 418.10 s [really-safe-money-gen] convert
  2920. 418.10 s [really-safe-money-gen] produces valid amounts 0.89 ms
  2921. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2922. 418.10 s [really-safe-money-gen] INR
  2923. 418.10 s [really-safe-money-gen] rate
  2924. 418.10 s [really-safe-money-gen] produces valid amounts 0.26 ms
  2925. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2926. 418.10 s [really-safe-money-gen] convert
  2927. 418.10 s [really-safe-money-gen] produces valid amounts 1.32 ms
  2928. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2929. 418.10 s [really-safe-money-gen] ADA
  2930. 418.10 s [really-safe-money-gen] convert
  2931. 418.10 s [really-safe-money-gen] produces valid amounts 0.75 ms
  2932. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2933. 418.10 s [really-safe-money-gen] rate
  2934. 418.10 s [really-safe-money-gen] produces valid amounts 0.18 ms
  2935. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2936. 418.10 s [really-safe-money-gen] BTC
  2937. 418.10 s [really-safe-money-gen] convert
  2938. 418.10 s [really-safe-money-gen] produces valid amounts 1.13 ms
  2939. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2940. 418.10 s [really-safe-money-gen] rate
  2941. 418.10 s [really-safe-money-gen] produces valid amounts 0.19 ms
  2942. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2943. 418.10 s [really-safe-money-gen] USD
  2944. 418.10 s [really-safe-money-gen] convert
  2945. 418.10 s [really-safe-money-gen] produces valid amounts 0.83 ms
  2946. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2947. 418.10 s [really-safe-money-gen] rate
  2948. 418.10 s [really-safe-money-gen] produces valid amounts 0.16 ms
  2949. 418.10 s [really-safe-money-gen] passed for all of 100 inputs.
  2950. 418.10 s [really-safe-money-gen] BTC
  2951. 418.11 s [really-safe-money-gen] BTC
  2952. 418.11 s [really-safe-money-gen] convert
  2953. 418.11 s [really-safe-money-gen] produces valid amounts 1.11 ms
  2954. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2955. 418.11 s [really-safe-money-gen] rate
  2956. 418.11 s [really-safe-money-gen] produces valid amounts 0.17 ms
  2957. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2958. 418.11 s [really-safe-money-gen] USD
  2959. 418.11 s [really-safe-money-gen] convert
  2960. 418.11 s [really-safe-money-gen] produces valid amounts 0.93 ms
  2961. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2962. 418.11 s [really-safe-money-gen] rate
  2963. 418.11 s [really-safe-money-gen] produces valid amounts 0.25 ms
  2964. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2965. 418.11 s [really-safe-money-gen] ADA
  2966. 418.11 s [really-safe-money-gen] convert
  2967. 418.11 s [really-safe-money-gen] produces valid amounts 1.43 ms
  2968. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2969. 418.11 s [really-safe-money-gen] rate
  2970. 418.11 s [really-safe-money-gen] produces valid amounts 0.16 ms
  2971. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2972. 418.11 s [really-safe-money-gen] INR
  2973. 418.11 s [really-safe-money-gen] rate
  2974. 418.11 s [really-safe-money-gen] produces valid amounts 0.16 ms
  2975. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2976. 418.11 s [really-safe-money-gen] convert
  2977. 418.11 s [really-safe-money-gen] produces valid amounts 0.93 ms
  2978. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2979. 418.11 s [really-safe-money-gen] CHF
  2980. 418.11 s [really-safe-money-gen] rate
  2981. 418.11 s [really-safe-money-gen] produces valid amounts 0.22 ms
  2982. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2983. 418.11 s [really-safe-money-gen] convert
  2984. 418.11 s [really-safe-money-gen] produces valid amounts 1.17 ms
  2985. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2986. 418.11 s [really-safe-money-gen] Money.ConversionRateOfSpec
  2987. 418.11 s [really-safe-money-gen] INR
  2988. 418.11 s [really-safe-money-gen] ADA
  2989. 418.11 s [really-safe-money-gen] Ratio
  2990. 418.11 s [really-safe-money-gen] fromRatio
  2991. 418.11 s [really-safe-money-gen] roundtrips with toRatio 0.33 ms
  2992. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2993. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  2994. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2995. 418.11 s [really-safe-money-gen] GenValid (ConversionRateOf INR ADA)
  2996. 418.11 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR ADA)
  2997. 418.11 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR ADA)'s 0.12 ms
  2998. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  2999. 418.11 s [really-safe-money-gen] Rational
  3000. 418.11 s [really-safe-money-gen] fromRational
  3001. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.98 ms
  3002. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3003. 418.11 s [really-safe-money-gen] roundtrips with toRational 0.43 ms
  3004. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3005. 418.11 s [really-safe-money-gen] compose
  3006. 418.11 s [really-safe-money-gen] produces valid rates 0.14 ms
  3007. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3008. 418.11 s [really-safe-money-gen] invert
  3009. 418.11 s [really-safe-money-gen] produces valid rates 0.14 ms
  3010. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3011. 418.11 s [really-safe-money-gen] DecimalLiteral
  3012. 418.11 s [really-safe-money-gen] fromDecimalLiteral
  3013. 418.11 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.77 ms
  3014. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3015. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.59 ms
  3016. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3017. 418.11 s [really-safe-money-gen] BTC
  3018. 418.11 s [really-safe-money-gen] Ratio
  3019. 418.11 s [really-safe-money-gen] fromRatio
  3020. 418.11 s [really-safe-money-gen] roundtrips with toRatio 0.44 ms
  3021. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3022. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.19 ms
  3023. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3024. 418.11 s [really-safe-money-gen] invert
  3025. 418.11 s [really-safe-money-gen] produces valid rates 0.56 ms
  3026. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3027. 418.11 s [really-safe-money-gen] compose
  3028. 418.11 s [really-safe-money-gen] produces valid rates 0.19 ms
  3029. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3030. 418.11 s [really-safe-money-gen] Rational
  3031. 418.11 s [really-safe-money-gen] fromRational
  3032. 418.11 s [really-safe-money-gen] roundtrips with toRational 0.55 ms
  3033. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3034. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.67 ms
  3035. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3036. 418.11 s [really-safe-money-gen] DecimalLiteral
  3037. 418.11 s [really-safe-money-gen] fromDecimalLiteral
  3038. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.80 ms
  3039. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3040. 418.11 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.91 ms
  3041. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3042. 418.11 s [really-safe-money-gen] GenValid (ConversionRateOf INR BTC)
  3043. 418.11 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR BTC)
  3044. 418.11 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR BTC)'s 0.20 ms
  3045. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3046. 418.11 s [really-safe-money-gen] CHF
  3047. 418.11 s [really-safe-money-gen] DecimalLiteral
  3048. 418.11 s [really-safe-money-gen] fromDecimalLiteral
  3049. 418.11 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  3050. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3051. 418.11 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.02 ms
  3052. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3053. 418.11 s [really-safe-money-gen] Ratio
  3054. 418.11 s [really-safe-money-gen] fromRatio
  3055. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  3056. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3057. 418.11 s [really-safe-money-gen] roundtrips with toRatio 0.77 ms
  3058. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3059. 418.11 s [really-safe-money-gen] Rational
  3060. 418.11 s [really-safe-money-gen] fromRational
  3061. 418.11 s [really-safe-money-gen] roundtrips with toRational 0.44 ms
  3062. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3063. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.66 ms
  3064. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3065. 418.11 s [really-safe-money-gen] invert
  3066. 418.11 s [really-safe-money-gen] produces valid rates 0.17 ms
  3067. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3068. 418.11 s [really-safe-money-gen] compose
  3069. 418.11 s [really-safe-money-gen] produces valid rates 0.16 ms
  3070. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3071. 418.11 s [really-safe-money-gen] GenValid (ConversionRateOf INR CHF)
  3072. 418.11 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR CHF)
  3073. 418.11 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR CHF)'s 0.50 ms
  3074. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3075. 418.11 s [really-safe-money-gen] USD
  3076. 418.11 s [really-safe-money-gen] GenValid (ConversionRateOf INR USD)
  3077. 418.11 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR USD)
  3078. 418.11 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR USD)'s 0.13 ms
  3079. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3080. 418.11 s [really-safe-money-gen] Rational
  3081. 418.11 s [really-safe-money-gen] fromRational
  3082. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  3083. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3084. 418.11 s [really-safe-money-gen] roundtrips with toRational 0.43 ms
  3085. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3086. 418.11 s [really-safe-money-gen] invert
  3087. 418.11 s [really-safe-money-gen] produces valid rates 0.15 ms
  3088. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3089. 418.11 s [really-safe-money-gen] Ratio
  3090. 418.11 s [really-safe-money-gen] fromRatio
  3091. 418.11 s [really-safe-money-gen] roundtrips with toRatio 0.74 ms
  3092. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3093. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  3094. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3095. 418.11 s [really-safe-money-gen] compose
  3096. 418.11 s [really-safe-money-gen] produces valid rates 0.19 ms
  3097. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3098. 418.11 s [really-safe-money-gen] DecimalLiteral
  3099. 418.11 s [really-safe-money-gen] fromDecimalLiteral
  3100. 418.11 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.64 ms
  3101. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3102. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.62 ms
  3103. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3104. 418.11 s [really-safe-money-gen] INR
  3105. 418.11 s [really-safe-money-gen] Rational
  3106. 418.11 s [really-safe-money-gen] fromRational
  3107. 418.11 s [really-safe-money-gen] roundtrips with toRational 0.46 ms
  3108. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3109. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.50 ms
  3110. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3111. 418.11 s [really-safe-money-gen] GenValid (ConversionRateOf INR INR)
  3112. 418.11 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR INR)
  3113. 418.11 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR INR)'s 0.52 ms
  3114. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3115. 418.11 s [really-safe-money-gen] DecimalLiteral
  3116. 418.11 s [really-safe-money-gen] fromDecimalLiteral
  3117. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.50 ms
  3118. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3119. 418.11 s [really-safe-money-gen] roundtrips with toDecimalLiteral 60.58 ms
  3120. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3121. 418.11 s [really-safe-money-gen] compose
  3122. 418.11 s [really-safe-money-gen] produces valid rates 0.17 ms
  3123. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3124. 418.11 s [really-safe-money-gen] invert
  3125. 418.11 s [really-safe-money-gen] produces valid rates 0.11 ms
  3126. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3127. 418.11 s [really-safe-money-gen] Ratio
  3128. 418.11 s [really-safe-money-gen] fromRatio
  3129. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.15 ms
  3130. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3131. 418.11 s [really-safe-money-gen] roundtrips with toRatio 0.41 ms
  3132. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3133. 418.11 s [really-safe-money-gen] ADA
  3134. 418.11 s [really-safe-money-gen] USD
  3135. 418.11 s [really-safe-money-gen] compose
  3136. 418.11 s [really-safe-money-gen] produces valid rates 0.12 ms
  3137. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3138. 418.11 s [really-safe-money-gen] Ratio
  3139. 418.11 s [really-safe-money-gen] fromRatio
  3140. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  3141. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3142. 418.11 s [really-safe-money-gen] roundtrips with toRatio 0.75 ms
  3143. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3144. 418.11 s [really-safe-money-gen] invert
  3145. 418.11 s [really-safe-money-gen] produces valid rates 0.17 ms
  3146. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3147. 418.11 s [really-safe-money-gen] Rational
  3148. 418.11 s [really-safe-money-gen] fromRational
  3149. 418.11 s [really-safe-money-gen] produces valid conversion rates 0.56 ms
  3150. 418.11 s [really-safe-money-gen] passed for all of 100 inputs.
  3151. 418.11 s [really-safe-money-gen] roundtrips with toRational 0.66 ms
  3152. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3153. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf ADA USD)
  3154. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA USD)
  3155. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA USD)'s 0.20 ms
  3156. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3157. 418.12 s [really-safe-money-gen] DecimalLiteral
  3158. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3159. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.48 ms
  3160. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3161. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.48 ms
  3162. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3163. 418.12 s [really-safe-money-gen] CHF
  3164. 418.12 s [really-safe-money-gen] DecimalLiteral
  3165. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3166. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 56.76 ms
  3167. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3168. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.67 ms
  3169. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3170. 418.12 s [really-safe-money-gen] compose
  3171. 418.12 s [really-safe-money-gen] produces valid rates 0.22 ms
  3172. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3173. 418.12 s [really-safe-money-gen] Rational
  3174. 418.12 s [really-safe-money-gen] fromRational
  3175. 418.12 s [really-safe-money-gen] roundtrips with toRational 0.99 ms
  3176. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3177. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.67 ms
  3178. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3179. 418.12 s [really-safe-money-gen] Ratio
  3180. 418.12 s [really-safe-money-gen] fromRatio
  3181. 418.12 s [really-safe-money-gen] roundtrips with toRatio 0.39 ms
  3182. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3183. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.14 ms
  3184. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3185. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf ADA CHF)
  3186. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA CHF)
  3187. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA CHF)'s 0.56 ms
  3188. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3189. 418.12 s [really-safe-money-gen] invert
  3190. 418.12 s [really-safe-money-gen] produces valid rates 0.18 ms
  3191. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3192. 418.12 s [really-safe-money-gen] ADA
  3193. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf ADA ADA)
  3194. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA ADA)
  3195. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA ADA)'s 0.13 ms
  3196. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3197. 418.12 s [really-safe-money-gen] invert
  3198. 418.12 s [really-safe-money-gen] produces valid rates 0.11 ms
  3199. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3200. 418.12 s [really-safe-money-gen] Ratio
  3201. 418.12 s [really-safe-money-gen] fromRatio
  3202. 418.12 s [really-safe-money-gen] roundtrips with toRatio 0.32 ms
  3203. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3204. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.13 ms
  3205. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3206. 418.12 s [really-safe-money-gen] compose
  3207. 418.12 s [really-safe-money-gen] produces valid rates 0.16 ms
  3208. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3209. 418.12 s [really-safe-money-gen] Rational
  3210. 418.12 s [really-safe-money-gen] fromRational
  3211. 418.12 s [really-safe-money-gen] roundtrips with toRational 0.94 ms
  3212. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3213. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.53 ms
  3214. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3215. 418.12 s [really-safe-money-gen] DecimalLiteral
  3216. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3217. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.47 ms
  3218. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3219. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.25 ms
  3220. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3221. 418.12 s [really-safe-money-gen] BTC
  3222. 418.12 s [really-safe-money-gen] DecimalLiteral
  3223. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3224. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.15 ms
  3225. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3226. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  3227. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3228. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf ADA BTC)
  3229. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA BTC)
  3230. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA BTC)'s 0.14 ms
  3231. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3232. 418.12 s [really-safe-money-gen] invert
  3233. 418.12 s [really-safe-money-gen] produces valid rates 0.12 ms
  3234. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3235. 418.12 s [really-safe-money-gen] Rational
  3236. 418.12 s [really-safe-money-gen] fromRational
  3237. 418.12 s [really-safe-money-gen] roundtrips with toRational 0.45 ms
  3238. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3239. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.83 ms
  3240. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3241. 418.12 s [really-safe-money-gen] compose
  3242. 418.12 s [really-safe-money-gen] produces valid rates 0.13 ms
  3243. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3244. 418.12 s [really-safe-money-gen] Ratio
  3245. 418.12 s [really-safe-money-gen] fromRatio
  3246. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  3247. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3248. 418.12 s [really-safe-money-gen] roundtrips with toRatio 0.32 ms
  3249. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3250. 418.12 s [really-safe-money-gen] INR
  3251. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf ADA INR)
  3252. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA INR)
  3253. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA INR)'s 0.13 ms
  3254. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3255. 418.12 s [really-safe-money-gen] Rational
  3256. 418.12 s [really-safe-money-gen] fromRational
  3257. 418.12 s [really-safe-money-gen] produces valid conversion rates 1.01 ms
  3258. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3259. 418.12 s [really-safe-money-gen] roundtrips with toRational 0.45 ms
  3260. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3261. 418.12 s [really-safe-money-gen] Ratio
  3262. 418.12 s [really-safe-money-gen] fromRatio
  3263. 418.12 s [really-safe-money-gen] roundtrips with toRatio 0.29 ms
  3264. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3265. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.15 ms
  3266. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3267. 418.12 s [really-safe-money-gen] DecimalLiteral
  3268. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3269. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  3270. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3271. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.93 ms
  3272. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3273. 418.12 s [really-safe-money-gen] compose
  3274. 418.12 s [really-safe-money-gen] produces valid rates 0.16 ms
  3275. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3276. 418.12 s [really-safe-money-gen] invert
  3277. 418.12 s [really-safe-money-gen] produces valid rates 0.11 ms
  3278. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3279. 418.12 s [really-safe-money-gen] CHF
  3280. 418.12 s [really-safe-money-gen] BTC
  3281. 418.12 s [really-safe-money-gen] Rational
  3282. 418.12 s [really-safe-money-gen] fromRational
  3283. 418.12 s [really-safe-money-gen] roundtrips with toRational 0.93 ms
  3284. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3285. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.56 ms
  3286. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3287. 418.12 s [really-safe-money-gen] DecimalLiteral
  3288. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3289. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  3290. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3291. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.14 ms
  3292. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3293. 418.12 s [really-safe-money-gen] compose
  3294. 418.12 s [really-safe-money-gen] produces valid rates 0.17 ms
  3295. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3296. 418.12 s [really-safe-money-gen] Ratio
  3297. 418.12 s [really-safe-money-gen] fromRatio
  3298. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.16 ms
  3299. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3300. 418.12 s [really-safe-money-gen] roundtrips with toRatio 0.30 ms
  3301. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3302. 418.12 s [really-safe-money-gen] invert
  3303. 418.12 s [really-safe-money-gen] produces valid rates 0.52 ms
  3304. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3305. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf CHF BTC)
  3306. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF BTC)
  3307. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF BTC)'s 0.12 ms
  3308. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3309. 418.12 s [really-safe-money-gen] ADA
  3310. 418.12 s [really-safe-money-gen] DecimalLiteral
  3311. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3312. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.46 ms
  3313. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3314. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.48 ms
  3315. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3316. 418.12 s [really-safe-money-gen] invert
  3317. 418.12 s [really-safe-money-gen] produces valid rates 0.11 ms
  3318. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3319. 418.12 s [really-safe-money-gen] Ratio
  3320. 418.12 s [really-safe-money-gen] fromRatio
  3321. 418.12 s [really-safe-money-gen] roundtrips with toRatio 0.30 ms
  3322. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3323. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.15 ms
  3324. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3325. 418.12 s [really-safe-money-gen] compose
  3326. 418.12 s [really-safe-money-gen] produces valid rates 0.12 ms
  3327. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3328. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf CHF ADA)
  3329. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF ADA)
  3330. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF ADA)'s 0.19 ms
  3331. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3332. 418.12 s [really-safe-money-gen] Rational
  3333. 418.12 s [really-safe-money-gen] fromRational
  3334. 418.12 s [really-safe-money-gen] roundtrips with toRational 1.08 ms
  3335. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3336. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  3337. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3338. 418.12 s [really-safe-money-gen] USD
  3339. 418.12 s [really-safe-money-gen] invert
  3340. 418.12 s [really-safe-money-gen] produces valid rates 0.19 ms
  3341. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3342. 418.12 s [really-safe-money-gen] GenValid (ConversionRateOf CHF USD)
  3343. 418.12 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF USD)
  3344. 418.12 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF USD)'s 0.16 ms
  3345. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3346. 418.12 s [really-safe-money-gen] DecimalLiteral
  3347. 418.12 s [really-safe-money-gen] fromDecimalLiteral
  3348. 418.12 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.91 ms
  3349. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3350. 418.12 s [really-safe-money-gen] produces valid conversion rates 0.65 ms
  3351. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3352. 418.12 s [really-safe-money-gen] compose
  3353. 418.12 s [really-safe-money-gen] produces valid rates 0.20 ms
  3354. 418.12 s [really-safe-money-gen] passed for all of 100 inputs.
  3355. 418.12 s [really-safe-money-gen] Rational
  3356. 418.12 s [really-safe-money-gen] fromRational
  3357. 418.12 s [really-safe-money-gen] produces valid conversion rates 1.13 ms
  3358. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3359. 418.13 s [really-safe-money-gen] roundtrips with toRational 0.44 ms
  3360. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3361. 418.13 s [really-safe-money-gen] Ratio
  3362. 418.13 s [really-safe-money-gen] fromRatio
  3363. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  3364. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3365. 418.13 s [really-safe-money-gen] roundtrips with toRatio 0.35 ms
  3366. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3367. 418.13 s [really-safe-money-gen] CHF
  3368. 418.13 s [really-safe-money-gen] GenValid (ConversionRateOf CHF CHF)
  3369. 418.13 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF CHF)
  3370. 418.13 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF CHF)'s 0.17 ms
  3371. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3372. 418.13 s [really-safe-money-gen] DecimalLiteral
  3373. 418.13 s [really-safe-money-gen] fromDecimalLiteral
  3374. 418.13 s [really-safe-money-gen] roundtrips with toDecimalLiteral 63.13 ms
  3375. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3376. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.48 ms
  3377. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3378. 418.13 s [really-safe-money-gen] Rational
  3379. 418.13 s [really-safe-money-gen] fromRational
  3380. 418.13 s [really-safe-money-gen] produces valid conversion rates 1.02 ms
  3381. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3382. 418.13 s [really-safe-money-gen] roundtrips with toRational 0.47 ms
  3383. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3384. 418.13 s [really-safe-money-gen] invert
  3385. 418.13 s [really-safe-money-gen] produces valid rates 0.15 ms
  3386. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3387. 418.13 s [really-safe-money-gen] Ratio
  3388. 418.13 s [really-safe-money-gen] fromRatio
  3389. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.13 ms
  3390. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3391. 418.13 s [really-safe-money-gen] roundtrips with toRatio 0.34 ms
  3392. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3393. 418.13 s [really-safe-money-gen] compose
  3394. 418.13 s [really-safe-money-gen] produces valid rates 0.21 ms
  3395. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3396. 418.13 s [really-safe-money-gen] INR
  3397. 418.13 s [really-safe-money-gen] Ratio
  3398. 418.13 s [really-safe-money-gen] fromRatio
  3399. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.66 ms
  3400. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3401. 418.13 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  3402. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3403. 418.13 s [really-safe-money-gen] compose
  3404. 418.13 s [really-safe-money-gen] produces valid rates 0.19 ms
  3405. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3406. 418.13 s [really-safe-money-gen] invert
  3407. 418.13 s [really-safe-money-gen] produces valid rates 0.18 ms
  3408. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3409. 418.13 s [really-safe-money-gen] DecimalLiteral
  3410. 418.13 s [really-safe-money-gen] fromDecimalLiteral
  3411. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.70 ms
  3412. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3413. 418.13 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.75 ms
  3414. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3415. 418.13 s [really-safe-money-gen] GenValid (ConversionRateOf CHF INR)
  3416. 418.13 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF INR)
  3417. 418.13 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF INR)'s 0.20 ms
  3418. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3419. 418.13 s [really-safe-money-gen] Rational
  3420. 418.13 s [really-safe-money-gen] fromRational
  3421. 418.13 s [really-safe-money-gen] roundtrips with toRational 0.61 ms
  3422. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3423. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.95 ms
  3424. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3425. 418.13 s [really-safe-money-gen] USD
  3426. 418.13 s [really-safe-money-gen] CHF
  3427. 418.13 s [really-safe-money-gen] GenValid (ConversionRateOf USD CHF)
  3428. 418.13 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD CHF)
  3429. 418.13 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD CHF)'s 0.12 ms
  3430. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3431. 418.13 s [really-safe-money-gen] invert
  3432. 418.13 s [really-safe-money-gen] produces valid rates 0.14 ms
  3433. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3434. 418.13 s [really-safe-money-gen] DecimalLiteral
  3435. 418.13 s [really-safe-money-gen] fromDecimalLiteral
  3436. 418.13 s [really-safe-money-gen] roundtrips with toDecimalLiteral 65.41 ms
  3437. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3438. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.71 ms
  3439. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3440. 418.13 s [really-safe-money-gen] Rational
  3441. 418.13 s [really-safe-money-gen] fromRational
  3442. 418.13 s [really-safe-money-gen] roundtrips with toRational 0.59 ms
  3443. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3444. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  3445. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3446. 418.13 s [really-safe-money-gen] Ratio
  3447. 418.13 s [really-safe-money-gen] fromRatio
  3448. 418.13 s [really-safe-money-gen] roundtrips with toRatio 0.77 ms
  3449. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3450. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.16 ms
  3451. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3452. 418.13 s [really-safe-money-gen] compose
  3453. 418.13 s [really-safe-money-gen] produces valid rates 0.20 ms
  3454. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3455. 418.13 s [really-safe-money-gen] USD
  3456. 418.13 s [really-safe-money-gen] Ratio
  3457. 418.13 s [really-safe-money-gen] fromRatio
  3458. 418.13 s [really-safe-money-gen] roundtrips with toRatio 0.41 ms
  3459. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3460. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  3461. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3462. 418.13 s [really-safe-money-gen] DecimalLiteral
  3463. 418.13 s [really-safe-money-gen] fromDecimalLiteral
  3464. 418.13 s [really-safe-money-gen] produces valid conversion rates 1.01 ms
  3465. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3466. 418.13 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.36 ms
  3467. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3468. 418.13 s [really-safe-money-gen] invert
  3469. 418.13 s [really-safe-money-gen] produces valid rates 0.18 ms
  3470. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3471. 418.13 s [really-safe-money-gen] Rational
  3472. 418.13 s [really-safe-money-gen] fromRational
  3473. 418.13 s [really-safe-money-gen] roundtrips with toRational 0.96 ms
  3474. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3475. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  3476. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3477. 418.13 s [really-safe-money-gen] compose
  3478. 418.13 s [really-safe-money-gen] produces valid rates 0.15 ms
  3479. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3480. 418.13 s [really-safe-money-gen] GenValid (ConversionRateOf USD USD)
  3481. 418.13 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD USD)
  3482. 418.13 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD USD)'s 0.19 ms
  3483. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3484. 418.13 s [really-safe-money-gen] INR
  3485. 418.13 s [really-safe-money-gen] DecimalLiteral
  3486. 418.13 s [really-safe-money-gen] fromDecimalLiteral
  3487. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.63 ms
  3488. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3489. 418.13 s [really-safe-money-gen] roundtrips with toDecimalLiteral 66.58 ms
  3490. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3491. 418.13 s [really-safe-money-gen] compose
  3492. 418.13 s [really-safe-money-gen] produces valid rates 0.21 ms
  3493. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3494. 418.13 s [really-safe-money-gen] Rational
  3495. 418.13 s [really-safe-money-gen] fromRational
  3496. 418.13 s [really-safe-money-gen] roundtrips with toRational 0.99 ms
  3497. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3498. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.58 ms
  3499. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3500. 418.13 s [really-safe-money-gen] Ratio
  3501. 418.13 s [really-safe-money-gen] fromRatio
  3502. 418.13 s [really-safe-money-gen] produces valid conversion rates 0.12 ms
  3503. 418.13 s [really-safe-money-gen] passed for all of 100 inputs.
  3504. 418.13 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  3505. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3506. 418.14 s [really-safe-money-gen] invert
  3507. 418.14 s [really-safe-money-gen] produces valid rates 0.16 ms
  3508. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3509. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf USD INR)
  3510. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD INR)
  3511. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD INR)'s 0.20 ms
  3512. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3513. 418.14 s [really-safe-money-gen] BTC
  3514. 418.14 s [really-safe-money-gen] Ratio
  3515. 418.14 s [really-safe-money-gen] fromRatio
  3516. 418.14 s [really-safe-money-gen] roundtrips with toRatio 0.79 ms
  3517. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3518. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.19 ms
  3519. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3520. 418.14 s [really-safe-money-gen] compose
  3521. 418.14 s [really-safe-money-gen] produces valid rates 0.17 ms
  3522. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3523. 418.14 s [really-safe-money-gen] Rational
  3524. 418.14 s [really-safe-money-gen] fromRational
  3525. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.69 ms
  3526. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3527. 418.14 s [really-safe-money-gen] roundtrips with toRational 0.60 ms
  3528. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3529. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf USD BTC)
  3530. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD BTC)
  3531. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD BTC)'s 0.56 ms
  3532. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3533. 418.14 s [really-safe-money-gen] invert
  3534. 418.14 s [really-safe-money-gen] produces valid rates 0.14 ms
  3535. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3536. 418.14 s [really-safe-money-gen] DecimalLiteral
  3537. 418.14 s [really-safe-money-gen] fromDecimalLiteral
  3538. 418.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 70.47 ms
  3539. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3540. 418.14 s [really-safe-money-gen] produces valid conversion rates 1.22 ms
  3541. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3542. 418.14 s [really-safe-money-gen] ADA
  3543. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf USD ADA)
  3544. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD ADA)
  3545. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD ADA)'s 0.27 ms
  3546. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3547. 418.14 s [really-safe-money-gen] compose
  3548. 418.14 s [really-safe-money-gen] produces valid rates 0.29 ms
  3549. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3550. 418.14 s [really-safe-money-gen] DecimalLiteral
  3551. 418.14 s [really-safe-money-gen] fromDecimalLiteral
  3552. 418.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 73.20 ms
  3553. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3554. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.65 ms
  3555. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3556. 418.14 s [really-safe-money-gen] invert
  3557. 418.14 s [really-safe-money-gen] produces valid rates 0.19 ms
  3558. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3559. 418.14 s [really-safe-money-gen] Ratio
  3560. 418.14 s [really-safe-money-gen] fromRatio
  3561. 418.14 s [really-safe-money-gen] roundtrips with toRatio 0.39 ms
  3562. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3563. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.19 ms
  3564. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3565. 418.14 s [really-safe-money-gen] Rational
  3566. 418.14 s [really-safe-money-gen] fromRational
  3567. 418.14 s [really-safe-money-gen] produces valid conversion rates 1.07 ms
  3568. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3569. 418.14 s [really-safe-money-gen] roundtrips with toRational 0.61 ms
  3570. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3571. 418.14 s [really-safe-money-gen] BTC
  3572. 418.14 s [really-safe-money-gen] ADA
  3573. 418.14 s [really-safe-money-gen] Ratio
  3574. 418.14 s [really-safe-money-gen] fromRatio
  3575. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  3576. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3577. 418.14 s [really-safe-money-gen] roundtrips with toRatio 0.38 ms
  3578. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3579. 418.14 s [really-safe-money-gen] DecimalLiteral
  3580. 418.14 s [really-safe-money-gen] fromDecimalLiteral
  3581. 418.14 s [really-safe-money-gen] produces valid conversion rates 1.07 ms
  3582. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3583. 418.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.03 ms
  3584. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3585. 418.14 s [really-safe-money-gen] compose
  3586. 418.14 s [really-safe-money-gen] produces valid rates 0.16 ms
  3587. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3588. 418.14 s [really-safe-money-gen] invert
  3589. 418.14 s [really-safe-money-gen] produces valid rates 0.71 ms
  3590. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3591. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf BTC ADA)
  3592. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC ADA)
  3593. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC ADA)'s 0.13 ms
  3594. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3595. 418.14 s [really-safe-money-gen] Rational
  3596. 418.14 s [really-safe-money-gen] fromRational
  3597. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  3598. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3599. 418.14 s [really-safe-money-gen] roundtrips with toRational 0.46 ms
  3600. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3601. 418.14 s [really-safe-money-gen] USD
  3602. 418.14 s [really-safe-money-gen] Rational
  3603. 418.14 s [really-safe-money-gen] fromRational
  3604. 418.14 s [really-safe-money-gen] roundtrips with toRational 0.40 ms
  3605. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3606. 418.14 s [really-safe-money-gen] produces valid conversion rates 1.16 ms
  3607. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3608. 418.14 s [really-safe-money-gen] DecimalLiteral
  3609. 418.14 s [really-safe-money-gen] fromDecimalLiteral
  3610. 418.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 57.43 ms
  3611. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3612. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.64 ms
  3613. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3614. 418.14 s [really-safe-money-gen] Ratio
  3615. 418.14 s [really-safe-money-gen] fromRatio
  3616. 418.14 s [really-safe-money-gen] roundtrips with toRatio 0.39 ms
  3617. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3618. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  3619. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3620. 418.14 s [really-safe-money-gen] compose
  3621. 418.14 s [really-safe-money-gen] produces valid rates 0.12 ms
  3622. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3623. 418.14 s [really-safe-money-gen] invert
  3624. 418.14 s [really-safe-money-gen] produces valid rates 0.12 ms
  3625. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3626. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf BTC USD)
  3627. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC USD)
  3628. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC USD)'s 0.12 ms
  3629. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3630. 418.14 s [really-safe-money-gen] INR
  3631. 418.14 s [really-safe-money-gen] compose
  3632. 418.14 s [really-safe-money-gen] produces valid rates 0.52 ms
  3633. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3634. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf BTC INR)
  3635. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC INR)
  3636. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC INR)'s 0.12 ms
  3637. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3638. 418.14 s [really-safe-money-gen] DecimalLiteral
  3639. 418.14 s [really-safe-money-gen] fromDecimalLiteral
  3640. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.55 ms
  3641. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3642. 418.14 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.16 ms
  3643. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3644. 418.14 s [really-safe-money-gen] invert
  3645. 418.14 s [really-safe-money-gen] produces valid rates 0.19 ms
  3646. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3647. 418.14 s [really-safe-money-gen] Rational
  3648. 418.14 s [really-safe-money-gen] fromRational
  3649. 418.14 s [really-safe-money-gen] roundtrips with toRational 0.68 ms
  3650. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3651. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.63 ms
  3652. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3653. 418.14 s [really-safe-money-gen] Ratio
  3654. 418.14 s [really-safe-money-gen] fromRatio
  3655. 418.14 s [really-safe-money-gen] produces valid conversion rates 0.59 ms
  3656. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3657. 418.14 s [really-safe-money-gen] roundtrips with toRatio 0.33 ms
  3658. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3659. 418.14 s [really-safe-money-gen] CHF
  3660. 418.14 s [really-safe-money-gen] compose
  3661. 418.14 s [really-safe-money-gen] produces valid rates 0.13 ms
  3662. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3663. 418.14 s [really-safe-money-gen] GenValid (ConversionRateOf BTC CHF)
  3664. 418.14 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC CHF)
  3665. 418.14 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC CHF)'s 0.12 ms
  3666. 418.14 s [really-safe-money-gen] passed for all of 100 inputs.
  3667. 418.15 s [really-safe-money-gen] DecimalLiteral
  3668. 418.15 s [really-safe-money-gen] fromDecimalLiteral
  3669. 418.15 s [really-safe-money-gen] produces valid conversion rates 0.59 ms
  3670. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3671. 418.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.37 ms
  3672. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3673. 418.15 s [really-safe-money-gen] invert
  3674. 418.15 s [really-safe-money-gen] produces valid rates 0.13 ms
  3675. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3676. 418.15 s [really-safe-money-gen] Ratio
  3677. 418.15 s [really-safe-money-gen] fromRatio
  3678. 418.15 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  3679. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3680. 418.15 s [really-safe-money-gen] roundtrips with toRatio 0.41 ms
  3681. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3682. 418.15 s [really-safe-money-gen] Rational
  3683. 418.15 s [really-safe-money-gen] fromRational
  3684. 418.15 s [really-safe-money-gen] roundtrips with toRational 1.00 ms
  3685. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3686. 418.15 s [really-safe-money-gen] produces valid conversion rates 0.52 ms
  3687. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3688. 418.15 s [really-safe-money-gen] BTC
  3689. 418.15 s [really-safe-money-gen] invert
  3690. 418.15 s [really-safe-money-gen] produces valid rates 0.20 ms
  3691. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3692. 418.15 s [really-safe-money-gen] Rational
  3693. 418.15 s [really-safe-money-gen] fromRational
  3694. 418.15 s [really-safe-money-gen] produces valid conversion rates 0.61 ms
  3695. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3696. 418.15 s [really-safe-money-gen] roundtrips with toRational 0.83 ms
  3697. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3698. 418.15 s [really-safe-money-gen] compose
  3699. 418.15 s [really-safe-money-gen] produces valid rates 0.13 ms
  3700. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3701. 418.15 s [really-safe-money-gen] GenValid (ConversionRateOf BTC BTC)
  3702. 418.15 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC BTC)
  3703. 418.15 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC BTC)'s 0.12 ms
  3704. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3705. 418.15 s [really-safe-money-gen] DecimalLiteral
  3706. 418.15 s [really-safe-money-gen] fromDecimalLiteral
  3707. 418.15 s [really-safe-money-gen] produces valid conversion rates 0.50 ms
  3708. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3709. 418.15 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.02 ms
  3710. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3711. 418.15 s [really-safe-money-gen] Ratio
  3712. 418.15 s [really-safe-money-gen] fromRatio
  3713. 418.15 s [really-safe-money-gen] roundtrips with toRatio 0.38 ms
  3714. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3715. 418.15 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  3716. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3717. 418.15 s [really-safe-money-gen] Money.AmountOfSpec
  3718. 418.15 s [really-safe-money-gen] USD
  3719. 418.15 s [really-safe-money-gen] CHF
  3720. 418.15 s [really-safe-money-gen] rate
  3721. 418.15 s [really-safe-money-gen] produces valid amounts 0.18 ms
  3722. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3723. 418.15 s [really-safe-money-gen] convert
  3724. 418.15 s [really-safe-money-gen] produces valid amounts 1.11 ms
  3725. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3726. 418.15 s [really-safe-money-gen] BTC
  3727. 418.15 s [really-safe-money-gen] convert
  3728. 418.15 s [really-safe-money-gen] produces valid amounts 0.68 ms
  3729. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3730. 418.15 s [really-safe-money-gen] rate
  3731. 418.15 s [really-safe-money-gen] produces valid amounts 0.20 ms
  3732. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3733. 418.15 s [really-safe-money-gen] INR
  3734. 418.15 s [really-safe-money-gen] convert
  3735. 418.15 s [really-safe-money-gen] produces valid amounts 1.34 ms
  3736. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3737. 418.15 s [really-safe-money-gen] rate
  3738. 418.15 s [really-safe-money-gen] produces valid amounts 0.29 ms
  3739. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3740. 418.15 s [really-safe-money-gen] USD
  3741. 418.15 s [really-safe-money-gen] rate
  3742. 418.15 s [really-safe-money-gen] produces valid amounts 0.28 ms
  3743. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3744. 418.15 s [really-safe-money-gen] convert
  3745. 418.15 s [really-safe-money-gen] produces valid amounts 0.96 ms
  3746. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3747. 418.15 s [really-safe-money-gen] ADA
  3748. 418.15 s [really-safe-money-gen] convert
  3749. 418.15 s [really-safe-money-gen] produces valid amounts 1.28 ms
  3750. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3751. 418.15 s [really-safe-money-gen] rate
  3752. 418.15 s [really-safe-money-gen] produces valid amounts 0.22 ms
  3753. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3754. 418.15 s [really-safe-money-gen] ADA
  3755. 418.15 s [really-safe-money-gen] BTC
  3756. 418.15 s [really-safe-money-gen] convert
  3757. 418.15 s [really-safe-money-gen] produces valid amounts 0.84 ms
  3758. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3759. 418.15 s [really-safe-money-gen] rate
  3760. 418.15 s [really-safe-money-gen] produces valid amounts 0.18 ms
  3761. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3762. 418.15 s [really-safe-money-gen] USD
  3763. 418.15 s [really-safe-money-gen] rate
  3764. 418.15 s [really-safe-money-gen] produces valid amounts 0.18 ms
  3765. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3766. 418.15 s [really-safe-money-gen] convert
  3767. 418.15 s [really-safe-money-gen] produces valid amounts 1.05 ms
  3768. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3769. 418.15 s [really-safe-money-gen] CHF
  3770. 418.15 s [really-safe-money-gen] convert
  3771. 418.15 s [really-safe-money-gen] produces valid amounts 0.85 ms
  3772. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3773. 418.15 s [really-safe-money-gen] rate
  3774. 418.15 s [really-safe-money-gen] produces valid amounts 0.30 ms
  3775. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3776. 418.15 s [really-safe-money-gen] ADA
  3777. 418.15 s [really-safe-money-gen] rate
  3778. 418.15 s [really-safe-money-gen] produces valid amounts 0.29 ms
  3779. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3780. 418.15 s [really-safe-money-gen] convert
  3781. 418.15 s [really-safe-money-gen] produces valid amounts 1.23 ms
  3782. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3783. 418.15 s [really-safe-money-gen] INR
  3784. 418.15 s [really-safe-money-gen] rate
  3785. 418.15 s [really-safe-money-gen] produces valid amounts 0.21 ms
  3786. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3787. 418.15 s [really-safe-money-gen] convert
  3788. 418.15 s [really-safe-money-gen] produces valid amounts 0.73 ms
  3789. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3790. 418.15 s [really-safe-money-gen] INR
  3791. 418.15 s [really-safe-money-gen] ADA
  3792. 418.15 s [really-safe-money-gen] rate
  3793. 418.15 s [really-safe-money-gen] produces valid amounts 0.20 ms
  3794. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3795. 418.15 s [really-safe-money-gen] convert
  3796. 418.15 s [really-safe-money-gen] produces valid amounts 1.26 ms
  3797. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3798. 418.15 s [really-safe-money-gen] CHF
  3799. 418.15 s [really-safe-money-gen] convert
  3800. 418.15 s [really-safe-money-gen] produces valid amounts 0.67 ms
  3801. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3802. 418.15 s [really-safe-money-gen] rate
  3803. 418.15 s [really-safe-money-gen] produces valid amounts 0.21 ms
  3804. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3805. 418.15 s [really-safe-money-gen] INR
  3806. 418.15 s [really-safe-money-gen] rate
  3807. 418.15 s [really-safe-money-gen] produces valid amounts 0.20 ms
  3808. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3809. 418.15 s [really-safe-money-gen] convert
  3810. 418.15 s [really-safe-money-gen] produces valid amounts 1.30 ms
  3811. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3812. 418.15 s [really-safe-money-gen] BTC
  3813. 418.15 s [really-safe-money-gen] rate
  3814. 418.15 s [really-safe-money-gen] produces valid amounts 0.30 ms
  3815. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3816. 418.15 s [really-safe-money-gen] convert
  3817. 418.15 s [really-safe-money-gen] produces valid amounts 0.96 ms
  3818. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3819. 418.15 s [really-safe-money-gen] USD
  3820. 418.15 s [really-safe-money-gen] convert
  3821. 418.15 s [really-safe-money-gen] produces valid amounts 1.23 ms
  3822. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3823. 418.15 s [really-safe-money-gen] rate
  3824. 418.15 s [really-safe-money-gen] produces valid amounts 0.29 ms
  3825. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3826. 418.15 s [really-safe-money-gen] BTC
  3827. 418.15 s [really-safe-money-gen] INR
  3828. 418.15 s [really-safe-money-gen] rate
  3829. 418.15 s [really-safe-money-gen] produces valid amounts 0.29 ms
  3830. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3831. 418.15 s [really-safe-money-gen] convert
  3832. 418.15 s [really-safe-money-gen] produces valid amounts 0.79 ms
  3833. 418.15 s [really-safe-money-gen] passed for all of 100 inputs.
  3834. 418.15 s [really-safe-money-gen] CHF
  3835. 418.15 s [really-safe-money-gen] convert
  3836. 418.16 s [really-safe-money-gen] produces valid amounts 1.21 ms
  3837. 418.16 s [really-safe-money-gen] passed for all of 100 inputs.
  3838. 418.16 s [really-safe-money-gen] rate
  3839. 418.16 s [really-safe-money-gen] produces valid amounts 0.20 ms
  3840. 418.16 s [really-safe-money-gen] passed for all of 100 inputs.
  3841. 418.16 s [really-safe-money-gen] USD
  3842. 418.16 s [really-safe-money-gen] rate
  3843. 418.16 s [really-safe-money-gen] produces valid amounts 0.18 ms
  3844. 418.16 s [really-safe-money-gen] passed for all of 100 inputs.
  3845. 418.16 s [really-safe-money-gen] convert
  3846. 418.16 s [really-safe-money-gen] produces valid amounts 0.70 ms
  3847. 418.16 s [really-safe-money-gen] passed for all of 100 inputs.
  3848. 418.16 s [really-safe-money-gen] ADA
  3849. 418.16 s [really-safe-money-gen] convert
  3850. 418.16 s [really-safe-money-gen] produces valid amounts 1.46 ms
  3851. 418.16 s [really-safe-money-gen] passed for all of 100 inputs.
  3852. 418.16 s [really-safe-money-gen] rate
  3853. 418.16 s [really-safe-money-gen] produces valid amounts Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8:
  3854. 418.16 s [really-safe-money-gen] @@ -34,7 +34,7 @@
  3855. 418.16 s [really-safe-money-gen] instance Validity ConversionRate where
  3856. 418.16 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  3857. 418.16 s [really-safe-money-gen] mconcat
  3858. 418.16 s [really-safe-money-gen] - [ genericValidate cr,
  3859. 418.16 s [really-safe-money-gen] + [ genericValidate cr,
  3860. 418.16 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  3861. 418.16 s [really-safe-money-gen] ]
  3862. 418.16 s [really-safe-money-gen]
  3863. 418.16 s [really-safe-money-gen]
  3864. 426.51 s [really-safe-money-gen] 0.45 ms
  3865. 426.51 s [really-safe-money-gen] passed for all of 100 inputs.
  3866. 426.53 s [really-safe-money-gen] BTC
  3867. 426.53 s [really-safe-money-gen] convert
  3868. 426.54 s [really-safe-money-gen] produces valid amounts 1.19 ms
  3869. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3870. 426.54 s [really-safe-money-gen] rate
  3871. 426.54 s [really-safe-money-gen] produces valid amounts 0.34 ms
  3872. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3873. 426.54 s [really-safe-money-gen] CHF
  3874. 426.54 s [really-safe-money-gen] INR
  3875. 426.54 s [really-safe-money-gen] convert
  3876. 426.54 s [really-safe-money-gen] produces valid amounts 1.34 ms
  3877. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3878. 426.54 s [really-safe-money-gen] rate
  3879. 426.54 s [really-safe-money-gen] produces valid amounts 0.24 ms
  3880. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3881. 426.54 s [really-safe-money-gen] USD
  3882. 426.54 s [really-safe-money-gen] convert
  3883. 426.54 s [really-safe-money-gen] produces valid amounts 0.69 ms
  3884. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3885. 426.54 s [really-safe-money-gen] rate
  3886. 426.54 s [really-safe-money-gen] produces valid amounts 0.29 ms
  3887. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3888. 426.54 s [really-safe-money-gen] BTC
  3889. 426.54 s [really-safe-money-gen] convert
  3890. 426.54 s [really-safe-money-gen] produces valid amounts 1.15 ms
  3891. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3892. 426.54 s [really-safe-money-gen] rate
  3893. 426.54 s [really-safe-money-gen] produces valid amounts 0.21 ms
  3894. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3895. 426.54 s [really-safe-money-gen] CHF
  3896. 426.54 s [really-safe-money-gen] convert
  3897. 426.54 s [really-safe-money-gen] produces valid amounts 0.67 ms
  3898. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3899. 426.54 s [really-safe-money-gen] rate
  3900. 426.54 s [really-safe-money-gen] produces valid amounts 0.19 ms
  3901. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3902. 426.54 s [really-safe-money-gen] ADA
  3903. 426.54 s [really-safe-money-gen] rate
  3904. 426.54 s [really-safe-money-gen] produces valid amounts 0.20 ms
  3905. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3906. 426.54 s [really-safe-money-gen] convert
  3907. 426.54 s [really-safe-money-gen] produces valid amounts 1.16 ms
  3908. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3909. 426.54 s [really-safe-money-gen] Money.AmountSpec
  3910. 426.54 s [really-safe-money-gen] rate
  3911. 426.54 s [really-safe-money-gen] produces valid conversion rates 57.38 ms
  3912. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3913. 426.54 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 212.63 ms
  3914. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3915. 426.54 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  3916. 426.54 s [really-safe-money-gen] convert
  3917. 426.54 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 75.80 ms
  3918. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3919. 426.54 s [really-safe-money-gen] converts this USD to CHF correctly 0.01 ms
  3920. 426.54 s [really-safe-money-gen] produces valid amounts 181.58 ms
  3921. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3922. 426.54 s [really-safe-money-gen]
  3923. 426.54 s [really-safe-money-gen]
  3924. 426.54 s [really-safe-money-gen]
  3925. 426.54 s [really-safe-money-gen] Examples: 202504
  3926. 426.54 s [really-safe-money-gen] Passed: 346
  3927. 426.54 s [really-safe-money-gen] Failed: 0
  3928. 426.54 s [really-safe-money-gen] Sum of test runtimes: 8.30 seconds
  3929. 426.54 s [really-safe-money-gen] Test suite took: 8.31 seconds
  3930. 426.54 s [really-safe-money-gen]
  3931. 426.54 s [really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8:
  3932. 426.54 s [really-safe-money-gen] @@ -34,7 +34,7 @@
  3933. 426.54 s [really-safe-money-gen] instance Validity ConversionRate where
  3934. 426.54 s [really-safe-money-gen] validate cr@(ConversionRate r) =
  3935. 426.54 s [really-safe-money-gen] mconcat
  3936. 426.54 s [really-safe-money-gen] - [ genericValidate cr,
  3937. 426.54 s [really-safe-money-gen] + [ genericValidate cr,
  3938. 426.54 s [really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
  3939. 426.54 s [really-safe-money-gen] ]
  3940. 426.54 s [really-safe-money-gen]
  3941. 426.54 s [really-safe-money-gen] Tests:
  3942. 426.54 s [really-safe-money-gen]
  3943. 426.54 s [really-safe-money-gen] Money.ConversionRateSpec
  3944. 426.54 s [really-safe-money-gen] Rational
  3945. 426.54 s [really-safe-money-gen] fromRational
  3946. 426.54 s [really-safe-money-gen] roundtrips with toRational 58.64 ms
  3947. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3948. 426.54 s [really-safe-money-gen] produces valid conversion rates 74.26 ms
  3949. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3950. 426.54 s [really-safe-money-gen] Ratio
  3951. 426.54 s [really-safe-money-gen] fromRatio
  3952. 426.54 s [really-safe-money-gen] produces valid conversion rates 17.89 ms
  3953. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3954. 426.54 s [really-safe-money-gen] roundtrips with toRatio 42.82 ms
  3955. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3956. 426.54 s [really-safe-money-gen] invert
  3957. 426.54 s [really-safe-money-gen] produces valid rates 17.74 ms
  3958. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3959. 426.54 s [really-safe-money-gen] DecimalLiteral
  3960. 426.54 s [really-safe-money-gen] fromDecimalLiteral
  3961. 426.54 s [really-safe-money-gen] produces valid conversion rates 62.57 ms
  3962. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3963. 426.54 s [really-safe-money-gen] roundtrips with toDecimalLiteral 5325.56 ms
  3964. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3965. 426.54 s [really-safe-money-gen] compose
  3966. 426.54 s [really-safe-money-gen] produces valid rates 19.13 ms
  3967. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3968. 426.54 s [really-safe-money-gen] GenValid ConversionRate
  3969. 426.54 s [really-safe-money-gen] genValid :: Gen ConversionRate
  3970. 426.54 s [really-safe-money-gen] only generates valid 'ConversionRate's 18.68 ms
  3971. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3972. 426.54 s [really-safe-money-gen] Money.AccountSpec
  3973. 426.54 s [really-safe-money-gen] convert
  3974. 426.54 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 78.56 ms
  3975. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3976. 426.54 s [really-safe-money-gen] produces valid amounts 188.41 ms
  3977. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3978. 426.54 s [really-safe-money-gen] converts this USD to CHF correctly 0.02 ms
  3979. 426.54 s [really-safe-money-gen] rate
  3980. 426.54 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 140.23 ms
  3981. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3982. 426.54 s [really-safe-money-gen] produces valid conversion rates 51.83 ms
  3983. 426.54 s [really-safe-money-gen] passed for all of 10000 inputs.
  3984. 426.54 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  3985. 426.54 s [really-safe-money-gen] Money.AccountOfSpec
  3986. 426.54 s [really-safe-money-gen] USD
  3987. 426.54 s [really-safe-money-gen] USD
  3988. 426.54 s [really-safe-money-gen] convert
  3989. 426.54 s [really-safe-money-gen] produces valid amounts 0.97 ms
  3990. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3991. 426.54 s [really-safe-money-gen] rate
  3992. 426.54 s [really-safe-money-gen] produces valid amounts 0.59 ms
  3993. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3994. 426.54 s [really-safe-money-gen] BTC
  3995. 426.54 s [really-safe-money-gen] rate
  3996. 426.54 s [really-safe-money-gen] produces valid amounts 0.23 ms
  3997. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  3998. 426.54 s [really-safe-money-gen] convert
  3999. 426.54 s [really-safe-money-gen] produces valid amounts 0.76 ms
  4000. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  4001. 426.54 s [really-safe-money-gen] INR
  4002. 426.54 s [really-safe-money-gen] rate
  4003. 426.54 s [really-safe-money-gen] produces valid amounts 0.17 ms
  4004. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  4005. 426.54 s [really-safe-money-gen] convert
  4006. 426.54 s [really-safe-money-gen] produces valid amounts 1.21 ms
  4007. 426.54 s [really-safe-money-gen] passed for all of 100 inputs.
  4008. 426.54 s [really-safe-money-gen] ADA
  4009. 426.54 s [really-safe-money-gen] rate
  4010. 426.54 s [really-safe-money-gen] produces valid amounts 0.24 ms
  4011. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4012. 426.55 s [really-safe-money-gen] convert
  4013. 426.55 s [really-safe-money-gen] produces valid amounts 0.95 ms
  4014. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4015. 426.55 s [really-safe-money-gen] CHF
  4016. 426.55 s [really-safe-money-gen] convert
  4017. 426.55 s [really-safe-money-gen] produces valid amounts 1.02 ms
  4018. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4019. 426.55 s [really-safe-money-gen] rate
  4020. 426.55 s [really-safe-money-gen] produces valid amounts 0.65 ms
  4021. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4022. 426.55 s [really-safe-money-gen] INR
  4023. 426.55 s [really-safe-money-gen] USD
  4024. 426.55 s [really-safe-money-gen] convert
  4025. 426.55 s [really-safe-money-gen] produces valid amounts 0.89 ms
  4026. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4027. 426.55 s [really-safe-money-gen] rate
  4028. 426.55 s [really-safe-money-gen] produces valid amounts 0.26 ms
  4029. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4030. 426.55 s [really-safe-money-gen] CHF
  4031. 426.55 s [really-safe-money-gen] rate
  4032. 426.55 s [really-safe-money-gen] produces valid amounts 0.15 ms
  4033. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4034. 426.55 s [really-safe-money-gen] convert
  4035. 426.55 s [really-safe-money-gen] produces valid amounts 1.10 ms
  4036. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4037. 426.55 s [really-safe-money-gen] BTC
  4038. 426.55 s [really-safe-money-gen] rate
  4039. 426.55 s [really-safe-money-gen] produces valid amounts 0.16 ms
  4040. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4041. 426.55 s [really-safe-money-gen] convert
  4042. 426.55 s [really-safe-money-gen] produces valid amounts 0.81 ms
  4043. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4044. 426.55 s [really-safe-money-gen] ADA
  4045. 426.55 s [really-safe-money-gen] convert
  4046. 426.55 s [really-safe-money-gen] produces valid amounts 1.01 ms
  4047. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4048. 426.55 s [really-safe-money-gen] rate
  4049. 426.55 s [really-safe-money-gen] produces valid amounts 0.20 ms
  4050. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4051. 426.55 s [really-safe-money-gen] INR
  4052. 426.55 s [really-safe-money-gen] convert
  4053. 426.55 s [really-safe-money-gen] produces valid amounts 0.69 ms
  4054. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4055. 426.55 s [really-safe-money-gen] rate
  4056. 426.55 s [really-safe-money-gen] produces valid amounts 0.26 ms
  4057. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4058. 426.55 s [really-safe-money-gen] CHF
  4059. 426.55 s [really-safe-money-gen] USD
  4060. 426.55 s [really-safe-money-gen] rate
  4061. 426.55 s [really-safe-money-gen] produces valid amounts 0.24 ms
  4062. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4063. 426.55 s [really-safe-money-gen] convert
  4064. 426.55 s [really-safe-money-gen] produces valid amounts 1.31 ms
  4065. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4066. 426.55 s [really-safe-money-gen] BTC
  4067. 426.55 s [really-safe-money-gen] convert
  4068. 426.55 s [really-safe-money-gen] produces valid amounts 0.80 ms
  4069. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4070. 426.55 s [really-safe-money-gen] rate
  4071. 426.55 s [really-safe-money-gen] produces valid amounts 0.19 ms
  4072. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4073. 426.55 s [really-safe-money-gen] ADA
  4074. 426.55 s [really-safe-money-gen] convert
  4075. 426.55 s [really-safe-money-gen] produces valid amounts 1.10 ms
  4076. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4077. 426.55 s [really-safe-money-gen] rate
  4078. 426.55 s [really-safe-money-gen] produces valid amounts 0.18 ms
  4079. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4080. 426.55 s [really-safe-money-gen] CHF
  4081. 426.55 s [really-safe-money-gen] rate
  4082. 426.55 s [really-safe-money-gen] produces valid amounts 0.16 ms
  4083. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4084. 426.55 s [really-safe-money-gen] convert
  4085. 426.55 s [really-safe-money-gen] produces valid amounts 0.73 ms
  4086. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4087. 426.55 s [really-safe-money-gen] INR
  4088. 426.55 s [really-safe-money-gen] convert
  4089. 426.55 s [really-safe-money-gen] produces valid amounts 1.10 ms
  4090. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4091. 426.55 s [really-safe-money-gen] rate
  4092. 426.55 s [really-safe-money-gen] produces valid amounts 0.17 ms
  4093. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4094. 426.55 s [really-safe-money-gen] ADA
  4095. 426.55 s [really-safe-money-gen] CHF
  4096. 426.55 s [really-safe-money-gen] rate
  4097. 426.55 s [really-safe-money-gen] produces valid amounts 0.16 ms
  4098. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4099. 426.55 s [really-safe-money-gen] convert
  4100. 426.55 s [really-safe-money-gen] produces valid amounts 0.78 ms
  4101. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4102. 426.55 s [really-safe-money-gen] INR
  4103. 426.55 s [really-safe-money-gen] rate
  4104. 426.55 s [really-safe-money-gen] produces valid amounts 0.17 ms
  4105. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4106. 426.55 s [really-safe-money-gen] convert
  4107. 426.55 s [really-safe-money-gen] produces valid amounts 1.63 ms
  4108. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4109. 426.55 s [really-safe-money-gen] ADA
  4110. 426.55 s [really-safe-money-gen] convert
  4111. 426.55 s [really-safe-money-gen] produces valid amounts 1.25 ms
  4112. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4113. 426.55 s [really-safe-money-gen] rate
  4114. 426.55 s [really-safe-money-gen] produces valid amounts 0.29 ms
  4115. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4116. 426.55 s [really-safe-money-gen] BTC
  4117. 426.55 s [really-safe-money-gen] convert
  4118. 426.55 s [really-safe-money-gen] produces valid amounts 1.33 ms
  4119. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4120. 426.55 s [really-safe-money-gen] rate
  4121. 426.55 s [really-safe-money-gen] produces valid amounts 0.25 ms
  4122. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4123. 426.55 s [really-safe-money-gen] USD
  4124. 426.55 s [really-safe-money-gen] convert
  4125. 426.55 s [really-safe-money-gen] produces valid amounts 0.88 ms
  4126. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4127. 426.55 s [really-safe-money-gen] rate
  4128. 426.55 s [really-safe-money-gen] produces valid amounts 0.24 ms
  4129. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4130. 426.55 s [really-safe-money-gen] BTC
  4131. 426.55 s [really-safe-money-gen] BTC
  4132. 426.55 s [really-safe-money-gen] convert
  4133. 426.55 s [really-safe-money-gen] produces valid amounts 1.19 ms
  4134. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4135. 426.55 s [really-safe-money-gen] rate
  4136. 426.55 s [really-safe-money-gen] produces valid amounts 0.20 ms
  4137. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4138. 426.55 s [really-safe-money-gen] USD
  4139. 426.55 s [really-safe-money-gen] convert
  4140. 426.55 s [really-safe-money-gen] produces valid amounts 0.83 ms
  4141. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4142. 426.55 s [really-safe-money-gen] rate
  4143. 426.55 s [really-safe-money-gen] produces valid amounts 0.18 ms
  4144. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4145. 426.55 s [really-safe-money-gen] ADA
  4146. 426.55 s [really-safe-money-gen] convert
  4147. 426.55 s [really-safe-money-gen] produces valid amounts 1.40 ms
  4148. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4149. 426.55 s [really-safe-money-gen] rate
  4150. 426.55 s [really-safe-money-gen] produces valid amounts 0.25 ms
  4151. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4152. 426.55 s [really-safe-money-gen] INR
  4153. 426.55 s [really-safe-money-gen] rate
  4154. 426.55 s [really-safe-money-gen] produces valid amounts 0.24 ms
  4155. 426.55 s [really-safe-money-gen] passed for all of 100 inputs.
  4156. 426.56 s [really-safe-money-gen] convert
  4157. 426.56 s [really-safe-money-gen] produces valid amounts 1.01 ms
  4158. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4159. 426.56 s [really-safe-money-gen] CHF
  4160. 426.56 s [really-safe-money-gen] rate
  4161. 426.56 s [really-safe-money-gen] produces valid amounts 0.24 ms
  4162. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4163. 426.56 s [really-safe-money-gen] convert
  4164. 426.56 s [really-safe-money-gen] produces valid amounts 1.20 ms
  4165. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4166. 426.56 s [really-safe-money-gen] Money.ConversionRateOfSpec
  4167. 426.56 s [really-safe-money-gen] INR
  4168. 426.56 s [really-safe-money-gen] ADA
  4169. 426.56 s [really-safe-money-gen] Ratio
  4170. 426.56 s [really-safe-money-gen] fromRatio
  4171. 426.56 s [really-safe-money-gen] roundtrips with toRatio 0.29 ms
  4172. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4173. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.14 ms
  4174. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4175. 426.56 s [really-safe-money-gen] GenValid (ConversionRateOf INR ADA)
  4176. 426.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR ADA)
  4177. 426.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR ADA)'s 0.12 ms
  4178. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4179. 426.56 s [really-safe-money-gen] Rational
  4180. 426.56 s [really-safe-money-gen] fromRational
  4181. 426.56 s [really-safe-money-gen] produces valid conversion rates 1.00 ms
  4182. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4183. 426.56 s [really-safe-money-gen] roundtrips with toRational 0.45 ms
  4184. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4185. 426.56 s [really-safe-money-gen] compose
  4186. 426.56 s [really-safe-money-gen] produces valid rates 0.15 ms
  4187. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4188. 426.56 s [really-safe-money-gen] invert
  4189. 426.56 s [really-safe-money-gen] produces valid rates 0.11 ms
  4190. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4191. 426.56 s [really-safe-money-gen] DecimalLiteral
  4192. 426.56 s [really-safe-money-gen] fromDecimalLiteral
  4193. 426.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.82 ms
  4194. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4195. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  4196. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4197. 426.56 s [really-safe-money-gen] BTC
  4198. 426.56 s [really-safe-money-gen] Ratio
  4199. 426.56 s [really-safe-money-gen] fromRatio
  4200. 426.56 s [really-safe-money-gen] roundtrips with toRatio 0.34 ms
  4201. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4202. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  4203. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4204. 426.56 s [really-safe-money-gen] invert
  4205. 426.56 s [really-safe-money-gen] produces valid rates 0.48 ms
  4206. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4207. 426.56 s [really-safe-money-gen] compose
  4208. 426.56 s [really-safe-money-gen] produces valid rates 0.13 ms
  4209. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4210. 426.56 s [really-safe-money-gen] Rational
  4211. 426.56 s [really-safe-money-gen] fromRational
  4212. 426.56 s [really-safe-money-gen] roundtrips with toRational 0.46 ms
  4213. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4214. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.64 ms
  4215. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4216. 426.56 s [really-safe-money-gen] DecimalLiteral
  4217. 426.56 s [really-safe-money-gen] fromDecimalLiteral
  4218. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.80 ms
  4219. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4220. 426.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 60.94 ms
  4221. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4222. 426.56 s [really-safe-money-gen] GenValid (ConversionRateOf INR BTC)
  4223. 426.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR BTC)
  4224. 426.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR BTC)'s 0.28 ms
  4225. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4226. 426.56 s [really-safe-money-gen] CHF
  4227. 426.56 s [really-safe-money-gen] DecimalLiteral
  4228. 426.56 s [really-safe-money-gen] fromDecimalLiteral
  4229. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.95 ms
  4230. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4231. 426.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.84 ms
  4232. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4233. 426.56 s [really-safe-money-gen] Ratio
  4234. 426.56 s [really-safe-money-gen] fromRatio
  4235. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.16 ms
  4236. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4237. 426.56 s [really-safe-money-gen] roundtrips with toRatio 0.78 ms
  4238. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4239. 426.56 s [really-safe-money-gen] Rational
  4240. 426.56 s [really-safe-money-gen] fromRational
  4241. 426.56 s [really-safe-money-gen] roundtrips with toRational 0.66 ms
  4242. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4243. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.74 ms
  4244. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4245. 426.56 s [really-safe-money-gen] invert
  4246. 426.56 s [really-safe-money-gen] produces valid rates 0.12 ms
  4247. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4248. 426.56 s [really-safe-money-gen] compose
  4249. 426.56 s [really-safe-money-gen] produces valid rates 0.12 ms
  4250. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4251. 426.56 s [really-safe-money-gen] GenValid (ConversionRateOf INR CHF)
  4252. 426.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR CHF)
  4253. 426.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR CHF)'s 0.47 ms
  4254. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4255. 426.56 s [really-safe-money-gen] USD
  4256. 426.56 s [really-safe-money-gen] GenValid (ConversionRateOf INR USD)
  4257. 426.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR USD)
  4258. 426.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR USD)'s 0.12 ms
  4259. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4260. 426.56 s [really-safe-money-gen] Rational
  4261. 426.56 s [really-safe-money-gen] fromRational
  4262. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.59 ms
  4263. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4264. 426.56 s [really-safe-money-gen] roundtrips with toRational 0.66 ms
  4265. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4266. 426.56 s [really-safe-money-gen] invert
  4267. 426.56 s [really-safe-money-gen] produces valid rates 0.18 ms
  4268. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4269. 426.56 s [really-safe-money-gen] Ratio
  4270. 426.56 s [really-safe-money-gen] fromRatio
  4271. 426.56 s [really-safe-money-gen] roundtrips with toRatio 0.85 ms
  4272. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4273. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.16 ms
  4274. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4275. 426.56 s [really-safe-money-gen] compose
  4276. 426.56 s [really-safe-money-gen] produces valid rates 0.15 ms
  4277. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4278. 426.56 s [really-safe-money-gen] DecimalLiteral
  4279. 426.56 s [really-safe-money-gen] fromDecimalLiteral
  4280. 426.56 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.93 ms
  4281. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4282. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.55 ms
  4283. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4284. 426.56 s [really-safe-money-gen] INR
  4285. 426.56 s [really-safe-money-gen] Rational
  4286. 426.56 s [really-safe-money-gen] fromRational
  4287. 426.56 s [really-safe-money-gen] roundtrips with toRational 0.49 ms
  4288. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4289. 426.56 s [really-safe-money-gen] produces valid conversion rates 0.82 ms
  4290. 426.56 s [really-safe-money-gen] passed for all of 100 inputs.
  4291. 426.56 s [really-safe-money-gen] GenValid (ConversionRateOf INR INR)
  4292. 426.56 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf INR INR)
  4293. 426.56 s [really-safe-money-gen] only generates valid '(ConversionRateOf INR INR)'s 0.55 ms
  4294. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4295. 426.57 s [really-safe-money-gen] DecimalLiteral
  4296. 426.57 s [really-safe-money-gen] fromDecimalLiteral
  4297. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.67 ms
  4298. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4299. 426.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.40 ms
  4300. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4301. 426.57 s [really-safe-money-gen] compose
  4302. 426.57 s [really-safe-money-gen] produces valid rates 0.15 ms
  4303. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4304. 426.57 s [really-safe-money-gen] invert
  4305. 426.57 s [really-safe-money-gen] produces valid rates 0.14 ms
  4306. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4307. 426.57 s [really-safe-money-gen] Ratio
  4308. 426.57 s [really-safe-money-gen] fromRatio
  4309. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.16 ms
  4310. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4311. 426.57 s [really-safe-money-gen] roundtrips with toRatio 0.42 ms
  4312. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4313. 426.57 s [really-safe-money-gen] ADA
  4314. 426.57 s [really-safe-money-gen] USD
  4315. 426.57 s [really-safe-money-gen] compose
  4316. 426.57 s [really-safe-money-gen] produces valid rates 0.18 ms
  4317. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4318. 426.57 s [really-safe-money-gen] Ratio
  4319. 426.57 s [really-safe-money-gen] fromRatio
  4320. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.17 ms
  4321. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4322. 426.57 s [really-safe-money-gen] roundtrips with toRatio 0.77 ms
  4323. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4324. 426.57 s [really-safe-money-gen] invert
  4325. 426.57 s [really-safe-money-gen] produces valid rates 0.18 ms
  4326. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4327. 426.57 s [really-safe-money-gen] Rational
  4328. 426.57 s [really-safe-money-gen] fromRational
  4329. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  4330. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4331. 426.57 s [really-safe-money-gen] roundtrips with toRational 0.47 ms
  4332. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4333. 426.57 s [really-safe-money-gen] GenValid (ConversionRateOf ADA USD)
  4334. 426.57 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA USD)
  4335. 426.57 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA USD)'s 0.15 ms
  4336. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4337. 426.57 s [really-safe-money-gen] DecimalLiteral
  4338. 426.57 s [really-safe-money-gen] fromDecimalLiteral
  4339. 426.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.96 ms
  4340. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4341. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.61 ms
  4342. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4343. 426.57 s [really-safe-money-gen] CHF
  4344. 426.57 s [really-safe-money-gen] DecimalLiteral
  4345. 426.57 s [really-safe-money-gen] fromDecimalLiteral
  4346. 426.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 58.24 ms
  4347. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4348. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.59 ms
  4349. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4350. 426.57 s [really-safe-money-gen] compose
  4351. 426.57 s [really-safe-money-gen] produces valid rates 0.16 ms
  4352. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4353. 426.57 s [really-safe-money-gen] Rational
  4354. 426.57 s [really-safe-money-gen] fromRational
  4355. 426.57 s [really-safe-money-gen] roundtrips with toRational 1.13 ms
  4356. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4357. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.82 ms
  4358. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4359. 426.57 s [really-safe-money-gen] Ratio
  4360. 426.57 s [really-safe-money-gen] fromRatio
  4361. 426.57 s [really-safe-money-gen] roundtrips with toRatio 0.39 ms
  4362. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4363. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.19 ms
  4364. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4365. 426.57 s [really-safe-money-gen] GenValid (ConversionRateOf ADA CHF)
  4366. 426.57 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA CHF)
  4367. 426.57 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA CHF)'s 0.54 ms
  4368. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4369. 426.57 s [really-safe-money-gen] invert
  4370. 426.57 s [really-safe-money-gen] produces valid rates 0.17 ms
  4371. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4372. 426.57 s [really-safe-money-gen] ADA
  4373. 426.57 s [really-safe-money-gen] GenValid (ConversionRateOf ADA ADA)
  4374. 426.57 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA ADA)
  4375. 426.57 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA ADA)'s 0.18 ms
  4376. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4377. 426.57 s [really-safe-money-gen] invert
  4378. 426.57 s [really-safe-money-gen] produces valid rates 0.18 ms
  4379. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4380. 426.57 s [really-safe-money-gen] Ratio
  4381. 426.57 s [really-safe-money-gen] fromRatio
  4382. 426.57 s [really-safe-money-gen] roundtrips with toRatio 0.29 ms
  4383. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4384. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.12 ms
  4385. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4386. 426.57 s [really-safe-money-gen] compose
  4387. 426.57 s [really-safe-money-gen] produces valid rates 0.12 ms
  4388. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4389. 426.57 s [really-safe-money-gen] Rational
  4390. 426.57 s [really-safe-money-gen] fromRational
  4391. 426.57 s [really-safe-money-gen] roundtrips with toRational 0.89 ms
  4392. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4393. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.55 ms
  4394. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4395. 426.57 s [really-safe-money-gen] DecimalLiteral
  4396. 426.57 s [really-safe-money-gen] fromDecimalLiteral
  4397. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.48 ms
  4398. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4399. 426.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 66.37 ms
  4400. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4401. 426.57 s [really-safe-money-gen] BTC
  4402. 426.57 s [really-safe-money-gen] DecimalLiteral
  4403. 426.57 s [really-safe-money-gen] fromDecimalLiteral
  4404. 426.57 s [really-safe-money-gen] roundtrips with toDecimalLiteral 67.34 ms
  4405. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4406. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.76 ms
  4407. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4408. 426.57 s [really-safe-money-gen] GenValid (ConversionRateOf ADA BTC)
  4409. 426.57 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA BTC)
  4410. 426.57 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA BTC)'s 0.20 ms
  4411. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4412. 426.57 s [really-safe-money-gen] invert
  4413. 426.57 s [really-safe-money-gen] produces valid rates 0.15 ms
  4414. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4415. 426.57 s [really-safe-money-gen] Rational
  4416. 426.57 s [really-safe-money-gen] fromRational
  4417. 426.57 s [really-safe-money-gen] roundtrips with toRational 0.65 ms
  4418. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4419. 426.57 s [really-safe-money-gen] produces valid conversion rates 1.27 ms
  4420. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4421. 426.57 s [really-safe-money-gen] compose
  4422. 426.57 s [really-safe-money-gen] produces valid rates 0.28 ms
  4423. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4424. 426.57 s [really-safe-money-gen] Ratio
  4425. 426.57 s [really-safe-money-gen] fromRatio
  4426. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.23 ms
  4427. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4428. 426.57 s [really-safe-money-gen] roundtrips with toRatio 0.52 ms
  4429. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4430. 426.57 s [really-safe-money-gen] INR
  4431. 426.57 s [really-safe-money-gen] GenValid (ConversionRateOf ADA INR)
  4432. 426.57 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf ADA INR)
  4433. 426.57 s [really-safe-money-gen] only generates valid '(ConversionRateOf ADA INR)'s 0.21 ms
  4434. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4435. 426.57 s [really-safe-money-gen] Rational
  4436. 426.57 s [really-safe-money-gen] fromRational
  4437. 426.57 s [really-safe-money-gen] produces valid conversion rates 1.09 ms
  4438. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4439. 426.57 s [really-safe-money-gen] roundtrips with toRational 0.68 ms
  4440. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4441. 426.57 s [really-safe-money-gen] Ratio
  4442. 426.57 s [really-safe-money-gen] fromRatio
  4443. 426.57 s [really-safe-money-gen] roundtrips with toRatio 0.37 ms
  4444. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4445. 426.57 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  4446. 426.57 s [really-safe-money-gen] passed for all of 100 inputs.
  4447. 426.58 s [really-safe-money-gen] DecimalLiteral
  4448. 426.58 s [really-safe-money-gen] fromDecimalLiteral
  4449. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.72 ms
  4450. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4451. 426.58 s [really-safe-money-gen] roundtrips with toDecimalLiteral 70.60 ms
  4452. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4453. 426.58 s [really-safe-money-gen] compose
  4454. 426.58 s [really-safe-money-gen] produces valid rates 0.16 ms
  4455. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4456. 426.58 s [really-safe-money-gen] invert
  4457. 426.58 s [really-safe-money-gen] produces valid rates 0.16 ms
  4458. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4459. 426.58 s [really-safe-money-gen] CHF
  4460. 426.58 s [really-safe-money-gen] BTC
  4461. 426.58 s [really-safe-money-gen] Rational
  4462. 426.58 s [really-safe-money-gen] fromRational
  4463. 426.58 s [really-safe-money-gen] roundtrips with toRational 0.98 ms
  4464. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4465. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.80 ms
  4466. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4467. 426.58 s [really-safe-money-gen] DecimalLiteral
  4468. 426.58 s [really-safe-money-gen] fromDecimalLiteral
  4469. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  4470. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4471. 426.58 s [really-safe-money-gen] roundtrips with toDecimalLiteral 69.94 ms
  4472. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4473. 426.58 s [really-safe-money-gen] compose
  4474. 426.58 s [really-safe-money-gen] produces valid rates 0.22 ms
  4475. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4476. 426.58 s [really-safe-money-gen] Ratio
  4477. 426.58 s [really-safe-money-gen] fromRatio
  4478. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.20 ms
  4479. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4480. 426.58 s [really-safe-money-gen] roundtrips with toRatio 0.47 ms
  4481. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4482. 426.58 s [really-safe-money-gen] invert
  4483. 426.58 s [really-safe-money-gen] produces valid rates 0.63 ms
  4484. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4485. 426.58 s [really-safe-money-gen] GenValid (ConversionRateOf CHF BTC)
  4486. 426.58 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF BTC)
  4487. 426.58 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF BTC)'s 0.21 ms
  4488. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4489. 426.58 s [really-safe-money-gen] ADA
  4490. 426.58 s [really-safe-money-gen] DecimalLiteral
  4491. 426.58 s [really-safe-money-gen] fromDecimalLiteral
  4492. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.60 ms
  4493. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4494. 426.58 s [really-safe-money-gen] roundtrips with toDecimalLiteral 72.01 ms
  4495. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4496. 426.58 s [really-safe-money-gen] invert
  4497. 426.58 s [really-safe-money-gen] produces valid rates 0.21 ms
  4498. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4499. 426.58 s [really-safe-money-gen] Ratio
  4500. 426.58 s [really-safe-money-gen] fromRatio
  4501. 426.58 s [really-safe-money-gen] roundtrips with toRatio 0.46 ms
  4502. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4503. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.21 ms
  4504. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4505. 426.58 s [really-safe-money-gen] compose
  4506. 426.58 s [really-safe-money-gen] produces valid rates 0.16 ms
  4507. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4508. 426.58 s [really-safe-money-gen] GenValid (ConversionRateOf CHF ADA)
  4509. 426.58 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF ADA)
  4510. 426.58 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF ADA)'s 0.17 ms
  4511. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4512. 426.58 s [really-safe-money-gen] Rational
  4513. 426.58 s [really-safe-money-gen] fromRational
  4514. 426.58 s [really-safe-money-gen] roundtrips with toRational 1.07 ms
  4515. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4516. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.87 ms
  4517. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4518. 426.58 s [really-safe-money-gen] USD
  4519. 426.58 s [really-safe-money-gen] invert
  4520. 426.58 s [really-safe-money-gen] produces valid rates 0.19 ms
  4521. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4522. 426.58 s [really-safe-money-gen] GenValid (ConversionRateOf CHF USD)
  4523. 426.58 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF USD)
  4524. 426.58 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF USD)'s 0.19 ms
  4525. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4526. 426.58 s [really-safe-money-gen] DecimalLiteral
  4527. 426.58 s [really-safe-money-gen] fromDecimalLiteral
  4528. 426.58 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.17 ms
  4529. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4530. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.80 ms
  4531. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4532. 426.58 s [really-safe-money-gen] compose
  4533. 426.58 s [really-safe-money-gen] produces valid rates 0.21 ms
  4534. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4535. 426.58 s [really-safe-money-gen] Rational
  4536. 426.58 s [really-safe-money-gen] fromRational
  4537. 426.58 s [really-safe-money-gen] produces valid conversion rates 1.15 ms
  4538. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4539. 426.58 s [really-safe-money-gen] roundtrips with toRational 0.53 ms
  4540. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4541. 426.58 s [really-safe-money-gen] Ratio
  4542. 426.58 s [really-safe-money-gen] fromRatio
  4543. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.16 ms
  4544. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4545. 426.58 s [really-safe-money-gen] roundtrips with toRatio 0.40 ms
  4546. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4547. 426.58 s [really-safe-money-gen] CHF
  4548. 426.58 s [really-safe-money-gen] GenValid (ConversionRateOf CHF CHF)
  4549. 426.58 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF CHF)
  4550. 426.58 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF CHF)'s 0.20 ms
  4551. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4552. 426.58 s [really-safe-money-gen] DecimalLiteral
  4553. 426.58 s [really-safe-money-gen] fromDecimalLiteral
  4554. 426.58 s [really-safe-money-gen] roundtrips with toDecimalLiteral 68.16 ms
  4555. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4556. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.68 ms
  4557. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4558. 426.58 s [really-safe-money-gen] Rational
  4559. 426.58 s [really-safe-money-gen] fromRational
  4560. 426.58 s [really-safe-money-gen] produces valid conversion rates 1.27 ms
  4561. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4562. 426.58 s [really-safe-money-gen] roundtrips with toRational 0.66 ms
  4563. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4564. 426.58 s [really-safe-money-gen] invert
  4565. 426.58 s [really-safe-money-gen] produces valid rates 0.17 ms
  4566. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4567. 426.58 s [really-safe-money-gen] Ratio
  4568. 426.58 s [really-safe-money-gen] fromRatio
  4569. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.20 ms
  4570. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4571. 426.58 s [really-safe-money-gen] roundtrips with toRatio 0.47 ms
  4572. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4573. 426.58 s [really-safe-money-gen] compose
  4574. 426.58 s [really-safe-money-gen] produces valid rates 0.16 ms
  4575. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4576. 426.58 s [really-safe-money-gen] INR
  4577. 426.58 s [really-safe-money-gen] Ratio
  4578. 426.58 s [really-safe-money-gen] fromRatio
  4579. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.61 ms
  4580. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4581. 426.58 s [really-safe-money-gen] roundtrips with toRatio 0.45 ms
  4582. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4583. 426.58 s [really-safe-money-gen] compose
  4584. 426.58 s [really-safe-money-gen] produces valid rates 0.18 ms
  4585. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4586. 426.58 s [really-safe-money-gen] invert
  4587. 426.58 s [really-safe-money-gen] produces valid rates 0.20 ms
  4588. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4589. 426.58 s [really-safe-money-gen] DecimalLiteral
  4590. 426.58 s [really-safe-money-gen] fromDecimalLiteral
  4591. 426.58 s [really-safe-money-gen] produces valid conversion rates 0.70 ms
  4592. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4593. 426.58 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.61 ms
  4594. 426.58 s [really-safe-money-gen] passed for all of 100 inputs.
  4595. 426.58 s [really-safe-money-gen] GenValid (ConversionRateOf CHF INR)
  4596. 426.58 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf CHF INR)
  4597. 426.59 s [really-safe-money-gen] only generates valid '(ConversionRateOf CHF INR)'s 0.14 ms
  4598. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4599. 426.59 s [really-safe-money-gen] Rational
  4600. 426.59 s [really-safe-money-gen] fromRational
  4601. 426.59 s [really-safe-money-gen] roundtrips with toRational 0.46 ms
  4602. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4603. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.87 ms
  4604. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4605. 426.59 s [really-safe-money-gen] USD
  4606. 426.59 s [really-safe-money-gen] CHF
  4607. 426.59 s [really-safe-money-gen] GenValid (ConversionRateOf USD CHF)
  4608. 426.59 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD CHF)
  4609. 426.59 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD CHF)'s 0.12 ms
  4610. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4611. 426.59 s [really-safe-money-gen] invert
  4612. 426.59 s [really-safe-money-gen] produces valid rates 0.11 ms
  4613. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4614. 426.59 s [really-safe-money-gen] DecimalLiteral
  4615. 426.59 s [really-safe-money-gen] fromDecimalLiteral
  4616. 426.59 s [really-safe-money-gen] roundtrips with toDecimalLiteral 55.90 ms
  4617. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4618. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.78 ms
  4619. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4620. 426.59 s [really-safe-money-gen] Rational
  4621. 426.59 s [really-safe-money-gen] fromRational
  4622. 426.59 s [really-safe-money-gen] roundtrips with toRational 0.53 ms
  4623. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4624. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.71 ms
  4625. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4626. 426.59 s [really-safe-money-gen] Ratio
  4627. 426.59 s [really-safe-money-gen] fromRatio
  4628. 426.59 s [really-safe-money-gen] roundtrips with toRatio 0.72 ms
  4629. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4630. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.12 ms
  4631. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4632. 426.59 s [really-safe-money-gen] compose
  4633. 426.59 s [really-safe-money-gen] produces valid rates 0.12 ms
  4634. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4635. 426.59 s [really-safe-money-gen] USD
  4636. 426.59 s [really-safe-money-gen] Ratio
  4637. 426.59 s [really-safe-money-gen] fromRatio
  4638. 426.59 s [really-safe-money-gen] roundtrips with toRatio 0.28 ms
  4639. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4640. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.13 ms
  4641. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4642. 426.59 s [really-safe-money-gen] DecimalLiteral
  4643. 426.59 s [really-safe-money-gen] fromDecimalLiteral
  4644. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.86 ms
  4645. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4646. 426.59 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.53 ms
  4647. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4648. 426.59 s [really-safe-money-gen] invert
  4649. 426.59 s [really-safe-money-gen] produces valid rates 0.14 ms
  4650. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4651. 426.59 s [really-safe-money-gen] Rational
  4652. 426.59 s [really-safe-money-gen] fromRational
  4653. 426.59 s [really-safe-money-gen] roundtrips with toRational 0.90 ms
  4654. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4655. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  4656. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4657. 426.59 s [really-safe-money-gen] compose
  4658. 426.59 s [really-safe-money-gen] produces valid rates 0.16 ms
  4659. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4660. 426.59 s [really-safe-money-gen] GenValid (ConversionRateOf USD USD)
  4661. 426.59 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD USD)
  4662. 426.59 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD USD)'s 0.12 ms
  4663. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4664. 426.59 s [really-safe-money-gen] INR
  4665. 426.59 s [really-safe-money-gen] DecimalLiteral
  4666. 426.59 s [really-safe-money-gen] fromDecimalLiteral
  4667. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.50 ms
  4668. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4669. 426.59 s [really-safe-money-gen] roundtrips with toDecimalLiteral 62.99 ms
  4670. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4671. 426.59 s [really-safe-money-gen] compose
  4672. 426.59 s [really-safe-money-gen] produces valid rates 0.13 ms
  4673. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4674. 426.59 s [really-safe-money-gen] Rational
  4675. 426.59 s [really-safe-money-gen] fromRational
  4676. 426.59 s [really-safe-money-gen] roundtrips with toRational 0.94 ms
  4677. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4678. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.73 ms
  4679. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4680. 426.59 s [really-safe-money-gen] Ratio
  4681. 426.59 s [really-safe-money-gen] fromRatio
  4682. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  4683. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4684. 426.59 s [really-safe-money-gen] roundtrips with toRatio 0.44 ms
  4685. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4686. 426.59 s [really-safe-money-gen] invert
  4687. 426.59 s [really-safe-money-gen] produces valid rates 0.18 ms
  4688. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4689. 426.59 s [really-safe-money-gen] GenValid (ConversionRateOf USD INR)
  4690. 426.59 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD INR)
  4691. 426.59 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD INR)'s 0.15 ms
  4692. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4693. 426.59 s [really-safe-money-gen] BTC
  4694. 426.59 s [really-safe-money-gen] Ratio
  4695. 426.59 s [really-safe-money-gen] fromRatio
  4696. 426.59 s [really-safe-money-gen] roundtrips with toRatio 0.81 ms
  4697. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4698. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.20 ms
  4699. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4700. 426.59 s [really-safe-money-gen] compose
  4701. 426.59 s [really-safe-money-gen] produces valid rates 0.20 ms
  4702. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4703. 426.59 s [really-safe-money-gen] Rational
  4704. 426.59 s [really-safe-money-gen] fromRational
  4705. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.75 ms
  4706. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4707. 426.59 s [really-safe-money-gen] roundtrips with toRational 0.62 ms
  4708. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4709. 426.59 s [really-safe-money-gen] GenValid (ConversionRateOf USD BTC)
  4710. 426.59 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD BTC)
  4711. 426.59 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD BTC)'s 0.54 ms
  4712. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4713. 426.59 s [really-safe-money-gen] invert
  4714. 426.59 s [really-safe-money-gen] produces valid rates 0.13 ms
  4715. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4716. 426.59 s [really-safe-money-gen] DecimalLiteral
  4717. 426.59 s [really-safe-money-gen] fromDecimalLiteral
  4718. 426.59 s [really-safe-money-gen] roundtrips with toDecimalLiteral 61.89 ms
  4719. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4720. 426.59 s [really-safe-money-gen] produces valid conversion rates 1.10 ms
  4721. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4722. 426.59 s [really-safe-money-gen] ADA
  4723. 426.59 s [really-safe-money-gen] GenValid (ConversionRateOf USD ADA)
  4724. 426.59 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf USD ADA)
  4725. 426.59 s [really-safe-money-gen] only generates valid '(ConversionRateOf USD ADA)'s 0.16 ms
  4726. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4727. 426.59 s [really-safe-money-gen] compose
  4728. 426.59 s [really-safe-money-gen] produces valid rates 0.20 ms
  4729. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4730. 426.59 s [really-safe-money-gen] DecimalLiteral
  4731. 426.59 s [really-safe-money-gen] fromDecimalLiteral
  4732. 426.59 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.21 ms
  4733. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4734. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.52 ms
  4735. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4736. 426.59 s [really-safe-money-gen] invert
  4737. 426.59 s [really-safe-money-gen] produces valid rates 0.12 ms
  4738. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4739. 426.59 s [really-safe-money-gen] Ratio
  4740. 426.59 s [really-safe-money-gen] fromRatio
  4741. 426.59 s [really-safe-money-gen] roundtrips with toRatio 0.32 ms
  4742. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4743. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.12 ms
  4744. 426.59 s [really-safe-money-gen] passed for all of 100 inputs.
  4745. 426.59 s [really-safe-money-gen] Rational
  4746. 426.59 s [really-safe-money-gen] fromRational
  4747. 426.59 s [really-safe-money-gen] produces valid conversion rates 0.97 ms
  4748. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4749. 426.60 s [really-safe-money-gen] roundtrips with toRational 0.45 ms
  4750. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4751. 426.60 s [really-safe-money-gen] BTC
  4752. 426.60 s [really-safe-money-gen] ADA
  4753. 426.60 s [really-safe-money-gen] Ratio
  4754. 426.60 s [really-safe-money-gen] fromRatio
  4755. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  4756. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4757. 426.60 s [really-safe-money-gen] roundtrips with toRatio 0.31 ms
  4758. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4759. 426.60 s [really-safe-money-gen] DecimalLiteral
  4760. 426.60 s [really-safe-money-gen] fromDecimalLiteral
  4761. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.86 ms
  4762. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4763. 426.60 s [really-safe-money-gen] roundtrips with toDecimalLiteral 52.90 ms
  4764. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4765. 426.60 s [really-safe-money-gen] compose
  4766. 426.60 s [really-safe-money-gen] produces valid rates 0.13 ms
  4767. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4768. 426.60 s [really-safe-money-gen] invert
  4769. 426.60 s [really-safe-money-gen] produces valid rates 0.44 ms
  4770. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4771. 426.60 s [really-safe-money-gen] GenValid (ConversionRateOf BTC ADA)
  4772. 426.60 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC ADA)
  4773. 426.60 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC ADA)'s 0.12 ms
  4774. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4775. 426.60 s [really-safe-money-gen] Rational
  4776. 426.60 s [really-safe-money-gen] fromRational
  4777. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.52 ms
  4778. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4779. 426.60 s [really-safe-money-gen] roundtrips with toRational 0.43 ms
  4780. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4781. 426.60 s [really-safe-money-gen] USD
  4782. 426.60 s [really-safe-money-gen] Rational
  4783. 426.60 s [really-safe-money-gen] fromRational
  4784. 426.60 s [really-safe-money-gen] roundtrips with toRational 0.42 ms
  4785. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4786. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.77 ms
  4787. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4788. 426.60 s [really-safe-money-gen] DecimalLiteral
  4789. 426.60 s [really-safe-money-gen] fromDecimalLiteral
  4790. 426.60 s [really-safe-money-gen] roundtrips with toDecimalLiteral 51.52 ms
  4791. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4792. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.48 ms
  4793. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4794. 426.60 s [really-safe-money-gen] Ratio
  4795. 426.60 s [really-safe-money-gen] fromRatio
  4796. 426.60 s [really-safe-money-gen] roundtrips with toRatio 0.30 ms
  4797. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4798. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.11 ms
  4799. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4800. 426.60 s [really-safe-money-gen] compose
  4801. 426.60 s [really-safe-money-gen] produces valid rates 0.12 ms
  4802. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4803. 426.60 s [really-safe-money-gen] invert
  4804. 426.60 s [really-safe-money-gen] produces valid rates 0.12 ms
  4805. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4806. 426.60 s [really-safe-money-gen] GenValid (ConversionRateOf BTC USD)
  4807. 426.60 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC USD)
  4808. 426.60 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC USD)'s 0.12 ms
  4809. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4810. 426.60 s [really-safe-money-gen] INR
  4811. 426.60 s [really-safe-money-gen] compose
  4812. 426.60 s [really-safe-money-gen] produces valid rates 0.42 ms
  4813. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4814. 426.60 s [really-safe-money-gen] GenValid (ConversionRateOf BTC INR)
  4815. 426.60 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC INR)
  4816. 426.60 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC INR)'s 0.11 ms
  4817. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4818. 426.60 s [really-safe-money-gen] DecimalLiteral
  4819. 426.60 s [really-safe-money-gen] fromDecimalLiteral
  4820. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.46 ms
  4821. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4822. 426.60 s [really-safe-money-gen] roundtrips with toDecimalLiteral 59.25 ms
  4823. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4824. 426.60 s [really-safe-money-gen] invert
  4825. 426.60 s [really-safe-money-gen] produces valid rates 0.13 ms
  4826. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4827. 426.60 s [really-safe-money-gen] Rational
  4828. 426.60 s [really-safe-money-gen] fromRational
  4829. 426.60 s [really-safe-money-gen] roundtrips with toRational 0.56 ms
  4830. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4831. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.55 ms
  4832. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4833. 426.60 s [really-safe-money-gen] Ratio
  4834. 426.60 s [really-safe-money-gen] fromRatio
  4835. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.47 ms
  4836. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4837. 426.60 s [really-safe-money-gen] roundtrips with toRatio 0.34 ms
  4838. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4839. 426.60 s [really-safe-money-gen] CHF
  4840. 426.60 s [really-safe-money-gen] compose
  4841. 426.60 s [really-safe-money-gen] produces valid rates 0.16 ms
  4842. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4843. 426.60 s [really-safe-money-gen] GenValid (ConversionRateOf BTC CHF)
  4844. 426.60 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC CHF)
  4845. 426.60 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC CHF)'s 0.19 ms
  4846. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4847. 426.60 s [really-safe-money-gen] DecimalLiteral
  4848. 426.60 s [really-safe-money-gen] fromDecimalLiteral
  4849. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.50 ms
  4850. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4851. 426.60 s [really-safe-money-gen] roundtrips with toDecimalLiteral 63.97 ms
  4852. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4853. 426.60 s [really-safe-money-gen] invert
  4854. 426.60 s [really-safe-money-gen] produces valid rates 0.14 ms
  4855. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4856. 426.60 s [really-safe-money-gen] Ratio
  4857. 426.60 s [really-safe-money-gen] fromRatio
  4858. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.13 ms
  4859. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4860. 426.60 s [really-safe-money-gen] roundtrips with toRatio 0.30 ms
  4861. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4862. 426.60 s [really-safe-money-gen] Rational
  4863. 426.60 s [really-safe-money-gen] fromRational
  4864. 426.60 s [really-safe-money-gen] roundtrips with toRational 0.92 ms
  4865. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4866. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.51 ms
  4867. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4868. 426.60 s [really-safe-money-gen] BTC
  4869. 426.60 s [really-safe-money-gen] invert
  4870. 426.60 s [really-safe-money-gen] produces valid rates 0.13 ms
  4871. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4872. 426.60 s [really-safe-money-gen] Rational
  4873. 426.60 s [really-safe-money-gen] fromRational
  4874. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.72 ms
  4875. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4876. 426.60 s [really-safe-money-gen] roundtrips with toRational 1.04 ms
  4877. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4878. 426.60 s [really-safe-money-gen] compose
  4879. 426.60 s [really-safe-money-gen] produces valid rates 0.19 ms
  4880. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4881. 426.60 s [really-safe-money-gen] GenValid (ConversionRateOf BTC BTC)
  4882. 426.60 s [really-safe-money-gen] genValid :: Gen (ConversionRateOf BTC BTC)
  4883. 426.60 s [really-safe-money-gen] only generates valid '(ConversionRateOf BTC BTC)'s 0.20 ms
  4884. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4885. 426.60 s [really-safe-money-gen] DecimalLiteral
  4886. 426.60 s [really-safe-money-gen] fromDecimalLiteral
  4887. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.70 ms
  4888. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4889. 426.60 s [really-safe-money-gen] roundtrips with toDecimalLiteral 64.92 ms
  4890. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4891. 426.60 s [really-safe-money-gen] Ratio
  4892. 426.60 s [really-safe-money-gen] fromRatio
  4893. 426.60 s [really-safe-money-gen] roundtrips with toRatio 0.54 ms
  4894. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4895. 426.60 s [really-safe-money-gen] produces valid conversion rates 0.18 ms
  4896. 426.60 s [really-safe-money-gen] passed for all of 100 inputs.
  4897. 426.61 s [really-safe-money-gen] Money.AmountOfSpec
  4898. 426.61 s [really-safe-money-gen] USD
  4899. 426.61 s [really-safe-money-gen] CHF
  4900. 426.61 s [really-safe-money-gen] rate
  4901. 426.61 s [really-safe-money-gen] produces valid amounts 0.25 ms
  4902. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4903. 426.61 s [really-safe-money-gen] convert
  4904. 426.61 s [really-safe-money-gen] produces valid amounts 1.36 ms
  4905. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4906. 426.61 s [really-safe-money-gen] BTC
  4907. 426.61 s [really-safe-money-gen] convert
  4908. 426.61 s [really-safe-money-gen] produces valid amounts 1.05 ms
  4909. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4910. 426.61 s [really-safe-money-gen] rate
  4911. 426.61 s [really-safe-money-gen] produces valid amounts 0.31 ms
  4912. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4913. 426.61 s [really-safe-money-gen] INR
  4914. 426.61 s [really-safe-money-gen] convert
  4915. 426.61 s [really-safe-money-gen] produces valid amounts 1.33 ms
  4916. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4917. 426.61 s [really-safe-money-gen] rate
  4918. 426.61 s [really-safe-money-gen] produces valid amounts 0.22 ms
  4919. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4920. 426.61 s [really-safe-money-gen] USD
  4921. 426.61 s [really-safe-money-gen] rate
  4922. 426.61 s [really-safe-money-gen] produces valid amounts 0.32 ms
  4923. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4924. 426.61 s [really-safe-money-gen] convert
  4925. 426.61 s [really-safe-money-gen] produces valid amounts 0.79 ms
  4926. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4927. 426.61 s [really-safe-money-gen] ADA
  4928. 426.61 s [really-safe-money-gen] convert
  4929. 426.61 s [really-safe-money-gen] produces valid amounts 1.14 ms
  4930. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4931. 426.61 s [really-safe-money-gen] rate
  4932. 426.61 s [really-safe-money-gen] produces valid amounts 0.27 ms
  4933. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4934. 426.61 s [really-safe-money-gen] ADA
  4935. 426.61 s [really-safe-money-gen] BTC
  4936. 426.61 s [really-safe-money-gen] convert
  4937. 426.61 s [really-safe-money-gen] produces valid amounts 0.73 ms
  4938. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4939. 426.61 s [really-safe-money-gen] rate
  4940. 426.61 s [really-safe-money-gen] produces valid amounts 0.18 ms
  4941. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4942. 426.61 s [really-safe-money-gen] USD
  4943. 426.61 s [really-safe-money-gen] rate
  4944. 426.61 s [really-safe-money-gen] produces valid amounts 0.19 ms
  4945. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4946. 426.61 s [really-safe-money-gen] convert
  4947. 426.61 s [really-safe-money-gen] produces valid amounts 0.99 ms
  4948. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4949. 426.61 s [really-safe-money-gen] CHF
  4950. 426.61 s [really-safe-money-gen] convert
  4951. 426.61 s [really-safe-money-gen] produces valid amounts 0.95 ms
  4952. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4953. 426.61 s [really-safe-money-gen] rate
  4954. 426.61 s [really-safe-money-gen] produces valid amounts 0.30 ms
  4955. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4956. 426.61 s [really-safe-money-gen] ADA
  4957. 426.61 s [really-safe-money-gen] rate
  4958. 426.61 s [really-safe-money-gen] produces valid amounts 0.31 ms
  4959. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4960. 426.61 s [really-safe-money-gen] convert
  4961. 426.61 s [really-safe-money-gen] produces valid amounts 1.51 ms
  4962. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4963. 426.61 s [really-safe-money-gen] INR
  4964. 426.61 s [really-safe-money-gen] rate
  4965. 426.61 s [really-safe-money-gen] produces valid amounts 0.28 ms
  4966. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4967. 426.61 s [really-safe-money-gen] convert
  4968. 426.61 s [really-safe-money-gen] produces valid amounts 0.87 ms
  4969. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4970. 426.61 s [really-safe-money-gen] INR
  4971. 426.61 s [really-safe-money-gen] ADA
  4972. 426.61 s [really-safe-money-gen] rate
  4973. 426.61 s [really-safe-money-gen] produces valid amounts 0.21 ms
  4974. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4975. 426.61 s [really-safe-money-gen] convert
  4976. 426.61 s [really-safe-money-gen] produces valid amounts 1.19 ms
  4977. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4978. 426.61 s [really-safe-money-gen] CHF
  4979. 426.61 s [really-safe-money-gen] convert
  4980. 426.61 s [really-safe-money-gen] produces valid amounts 0.62 ms
  4981. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4982. 426.61 s [really-safe-money-gen] rate
  4983. 426.61 s [really-safe-money-gen] produces valid amounts 0.18 ms
  4984. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4985. 426.61 s [really-safe-money-gen] INR
  4986. 426.61 s [really-safe-money-gen] rate
  4987. 426.61 s [really-safe-money-gen] produces valid amounts 0.23 ms
  4988. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4989. 426.61 s [really-safe-money-gen] convert
  4990. 426.61 s [really-safe-money-gen] produces valid amounts 1.36 ms
  4991. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4992. 426.61 s [really-safe-money-gen] BTC
  4993. 426.61 s [really-safe-money-gen] rate
  4994. 426.61 s [really-safe-money-gen] produces valid amounts 0.25 ms
  4995. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4996. 426.61 s [really-safe-money-gen] convert
  4997. 426.61 s [really-safe-money-gen] produces valid amounts 0.92 ms
  4998. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  4999. 426.61 s [really-safe-money-gen] USD
  5000. 426.61 s [really-safe-money-gen] convert
  5001. 426.61 s [really-safe-money-gen] produces valid amounts 1.28 ms
  5002. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  5003. 426.61 s [really-safe-money-gen] rate
  5004. 426.61 s [really-safe-money-gen] produces valid amounts 0.25 ms
  5005. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  5006. 426.61 s [really-safe-money-gen] BTC
  5007. 426.61 s [really-safe-money-gen] INR
  5008. 426.61 s [really-safe-money-gen] rate
  5009. 426.61 s [really-safe-money-gen] produces valid amounts 0.21 ms
  5010. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  5011. 426.61 s [really-safe-money-gen] convert
  5012. 426.61 s [really-safe-money-gen] produces valid amounts 0.70 ms
  5013. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  5014. 426.61 s [really-safe-money-gen] CHF
  5015. 426.61 s [really-safe-money-gen] convert
  5016. 426.61 s [really-safe-money-gen] produces valid amounts 1.21 ms
  5017. 426.61 s [really-safe-money-gen] passed for all of 100 inputs.
  5018. 426.61 s [really-safe-money-gen] rate
  5019. 426.61 s [really-safe-money-gen] produces valid amounts 0.19Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:396:23-27:
  5020. 426.61 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  5021. 426.61 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  5022. 426.61 s [really-safe-money-gen] where
  5023. 426.61 s [really-safe-money-gen] go = \case
  5024. 426.61 s [really-safe-money-gen] - Nothing -> Just True
  5025. 426.61 s [really-safe-money-gen] + Nothing -> Just True
  5026. 426.61 s [really-safe-money-gen] s -> s
  5027. 426.61 s [really-safe-money-gen]
  5028. 426.62 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:396:23-27:
  5029. 426.62 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  5030. 426.62 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  5031. 426.62 s [really-safe-money-gen] where
  5032. 426.62 s [really-safe-money-gen] go = \case
  5033. 426.62 s [really-safe-money-gen] - Nothing -> Just True
  5034. 426.62 s [really-safe-money-gen] + Nothing -> Just False
  5035. 426.62 s [really-safe-money-gen] s -> s
  5036. 426.62 s [really-safe-money-gen]
  5037. 426.72 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:396:23-27:
  5038. 426.72 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  5039. 426.72 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  5040. 426.72 s [really-safe-money-gen] where
  5041. 426.72 s [really-safe-money-gen] go = \case
  5042. 426.72 s [really-safe-money-gen] - Nothing -> Just True
  5043. 426.72 s [really-safe-money-gen] + Nothing -> Just not (True)
  5044. 426.72 s [really-safe-money-gen] s -> s
  5045. 426.72 s [really-safe-money-gen]
  5046. 426.82 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39:
  5047. 426.82 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  5048. 426.82 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  5049. 426.82 s [really-safe-money-gen] let currentDigits :: Word8
  5050. 426.82 s [really-safe-money-gen] currentDigits = digits dl
  5051. 426.82 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  5052. 426.82 s [really-safe-money-gen] + in if True
  5053. 426.82 s [really-safe-money-gen] then dl
  5054. 426.82 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  5055. 426.82 s [really-safe-money-gen] where
  5056. 426.82 s [really-safe-money-gen]
  5057. 426.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39:
  5058. 426.92 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  5059. 426.92 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  5060. 426.92 s [really-safe-money-gen] let currentDigits :: Word8
  5061. 426.92 s [really-safe-money-gen] currentDigits = digits dl
  5062. 426.92 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  5063. 426.92 s [really-safe-money-gen] + in if False
  5064. 426.92 s [really-safe-money-gen] then dl
  5065. 426.92 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  5066. 426.92 s [really-safe-money-gen] where
  5067. 426.92 s [really-safe-money-gen]
  5068. 427.01 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39:
  5069. 427.01 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  5070. 427.01 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  5071. 427.01 s [really-safe-money-gen] let currentDigits :: Word8
  5072. 427.01 s [really-safe-money-gen] currentDigits = digits dl
  5073. 427.01 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  5074. 427.01 s [really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
  5075. 427.01 s [really-safe-money-gen] then dl
  5076. 427.01 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  5077. 427.01 s [really-safe-money-gen] where
  5078. 427.01 s [really-safe-money-gen]
  5079. 427.11 s [really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62:
  5080. 427.11 s [really-safe-money-gen] @@ -365,7 +365,7 @@
  5081. 427.11 s [really-safe-money-gen] setMinimumDigits wantedDigits dl =
  5082. 427.11 s [really-safe-money-gen] let currentDigits :: Word8
  5083. 427.11 s [really-safe-money-gen] currentDigits = digits dl
  5084. 427.12 s [really-safe-money-gen] - in if wantedDigits <= currentDigits
  5085. 427.12 s [really-safe-money-gen] + in if wantedDigits <= currentDigits
  5086. 427.12 s [really-safe-money-gen] then dl
  5087. 427.12 s [really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
  5088. 427.12 s [really-safe-money-gen] where
  5089. 427.12 s [really-safe-money-gen]
  5090. 427.21 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82:
  5091. 427.21 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  5092. 427.21 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  5093. 427.21 s [really-safe-money-gen] increaseDigits 0 = id
  5094. 427.21 s [really-safe-money-gen] increaseDigits w = \case
  5095. 427.21 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  5096. 427.21 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
  5097. 427.21 s [really-safe-money-gen]
  5098. 427.21 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  5099. 427.21 s [really-safe-money-gen] --
  5100. 427.21 s [really-safe-money-gen]
  5101. 427.32 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82:
  5102. 427.32 s [really-safe-money-gen] @@ -372,7 +372,7 @@
  5103. 427.32 s [really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
  5104. 427.32 s [really-safe-money-gen] increaseDigits 0 = id
  5105. 427.32 s [really-safe-money-gen] increaseDigits w = \case
  5106. 427.32 s [really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
  5107. 427.32 s [really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
  5108. 427.32 s [really-safe-money-gen]
  5109. 427.32 s [really-safe-money-gen] -- | Ensures that a positive literal has no sign
  5110. 427.32 s [really-safe-money-gen] --
  5111. 427.32 s [really-safe-money-gen]
  5112. 427.42 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22:
  5113. 427.42 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5114. 427.42 s [really-safe-money-gen] pure $ fromIntegral n
  5115. 427.42 s [really-safe-money-gen]
  5116. 427.42 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5117. 427.42 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5118. 427.42 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  5119. 427.42 s [really-safe-money-gen]
  5120. 427.42 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5121. 427.42 s [really-safe-money-gen] signSignum = \case
  5122. 427.42 s [really-safe-money-gen]
  5123. 427.52 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22:
  5124. 427.52 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5125. 427.52 s [really-safe-money-gen] pure $ fromIntegral n
  5126. 427.52 s [really-safe-money-gen]
  5127. 427.52 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5128. 427.52 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5129. 427.52 s [really-safe-money-gen] +numSign a = if True then Nothing else Just False
  5130. 427.52 s [really-safe-money-gen]
  5131. 427.52 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5132. 427.52 s [really-safe-money-gen] signSignum = \case
  5133. 427.52 s [really-safe-money-gen]
  5134. 427.61 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22:
  5135. 427.61 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5136. 427.61 s [really-safe-money-gen] pure $ fromIntegral n
  5137. 427.61 s [really-safe-money-gen]
  5138. 427.61 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5139. 427.61 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5140. 427.61 s [really-safe-money-gen] +numSign a = if False then Nothing else Just False
  5141. 427.61 s [really-safe-money-gen]
  5142. 427.61 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5143. 427.61 s [really-safe-money-gen] signSignum = \case
  5144. 427.61 s [really-safe-money-gen]
  5145. 427.71 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22:
  5146. 427.71 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5147. 427.71 s [really-safe-money-gen] pure $ fromIntegral n
  5148. 427.71 s [really-safe-money-gen]
  5149. 427.71 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5150. 427.71 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5151. 427.71 s [really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
  5152. 427.71 s [really-safe-money-gen]
  5153. 427.71 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5154. 427.71 s [really-safe-money-gen] signSignum = \case
  5155. 427.71 s [really-safe-money-gen]
  5156. 427.80 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:46-51:
  5157. 427.80 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5158. 427.80 s [really-safe-money-gen] pure $ fromIntegral n
  5159. 427.80 s [really-safe-money-gen]
  5160. 427.80 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5161. 427.81 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5162. 427.81 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
  5163. 427.81 s [really-safe-money-gen]
  5164. 427.81 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5165. 427.81 s [really-safe-money-gen] signSignum = \case
  5166. 427.81 s [really-safe-money-gen]
  5167. 427.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:46-51:
  5168. 427.90 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5169. 427.90 s [really-safe-money-gen] pure $ fromIntegral n
  5170. 427.90 s [really-safe-money-gen]
  5171. 427.90 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5172. 427.90 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5173. 427.90 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just False
  5174. 427.90 s [really-safe-money-gen]
  5175. 427.90 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5176. 427.90 s [really-safe-money-gen] signSignum = \case
  5177. 427.90 s [really-safe-money-gen]
  5178. 428.00 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:46-51:
  5179. 428.00 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5180. 428.00 s [really-safe-money-gen] pure $ fromIntegral n
  5181. 428.00 s [really-safe-money-gen]
  5182. 428.00 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5183. 428.00 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5184. 428.00 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just not (False)
  5185. 428.00 s [really-safe-money-gen]
  5186. 428.00 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5187. 428.00 s [really-safe-money-gen] signSignum = \case
  5188. 428.00 s [really-safe-money-gen]
  5189. 428.10 s [really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51:
  5190. 428.10 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5191. 428.10 s [really-safe-money-gen] pure $ fromIntegral n
  5192. 428.10 s [really-safe-money-gen]
  5193. 428.10 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5194. 428.10 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5195. 428.10 s [really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just False
  5196. 428.10 s [really-safe-money-gen]
  5197. 428.10 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5198. 428.10 s [really-safe-money-gen] signSignum = \case
  5199. 428.10 s [really-safe-money-gen]
  5200. 428.20 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46:
  5201. 428.20 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5202. 428.20 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  5203. 428.20 s [really-safe-money-gen] toInt dl = do
  5204. 428.20 s [really-safe-money-gen] n <- toInteger dl
  5205. 428.20 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  5206. 428.20 s [really-safe-money-gen] + guard $ True
  5207. 428.20 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  5208. 428.20 s [really-safe-money-gen] pure $ fromIntegral n
  5209. 428.20 s [really-safe-money-gen]
  5210. 428.20 s [really-safe-money-gen]
  5211. 428.30 s [really-safe-money-gen] ms
  5212. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5213. 428.30 s [really-safe-money-gen] USD
  5214. 428.30 s [really-safe-money-gen] rate
  5215. 428.30 s [really-safe-money-gen] produces valid amounts 0.17 ms
  5216. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5217. 428.30 s [really-safe-money-gen] convert
  5218. 428.30 s [really-safe-money-gen] produces valid amounts 0.75 ms
  5219. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5220. 428.30 s [really-safe-money-gen] ADA
  5221. 428.30 s [really-safe-money-gen] convert
  5222. 428.30 s [really-safe-money-gen] produces valid amounts 1.23 ms
  5223. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5224. 428.30 s [really-safe-money-gen] rate
  5225. 428.30 s [really-safe-money-gen] produces valid amounts 0.30 ms
  5226. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5227. 428.30 s [really-safe-money-gen] BTC
  5228. 428.30 s [really-safe-money-gen] convert
  5229. 428.30 s [really-safe-money-gen] produces valid amounts 1.01 ms
  5230. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5231. 428.30 s [really-safe-money-gen] rate
  5232. 428.30 s [really-safe-money-gen] produces valid amounts 0.27 ms
  5233. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5234. 428.30 s [really-safe-money-gen] CHF
  5235. 428.30 s [really-safe-money-gen] INR
  5236. 428.30 s [really-safe-money-gen] convert
  5237. 428.30 s [really-safe-money-gen] produces valid amounts 1.15 ms
  5238. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5239. 428.30 s [really-safe-money-gen] rate
  5240. 428.30 s [really-safe-money-gen] produces valid amounts 0.18 ms
  5241. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5242. 428.30 s [really-safe-money-gen] USD
  5243. 428.30 s [really-safe-money-gen] convert
  5244. 428.30 s [really-safe-money-gen] produces valid amounts 0.67 ms
  5245. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5246. 428.30 s [really-safe-money-gen] rate
  5247. 428.30 s [really-safe-money-gen] produces valid amounts 0.19 ms
  5248. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5249. 428.30 s [really-safe-money-gen] BTC
  5250. 428.30 s [really-safe-money-gen] convert
  5251. 428.30 s [really-safe-money-gen] produces valid amounts 1.17 ms
  5252. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5253. 428.30 s [really-safe-money-gen] rate
  5254. 428.30 s [really-safe-money-gen] produces valid amounts 0.18 ms
  5255. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5256. 428.30 s [really-safe-money-gen] CHF
  5257. 428.30 s [really-safe-money-gen] convert
  5258. 428.30 s [really-safe-money-gen] produces valid amounts 0.67 ms
  5259. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5260. 428.30 s [really-safe-money-gen] rate
  5261. 428.30 s [really-safe-money-gen] produces valid amounts 0.18 ms
  5262. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5263. 428.30 s [really-safe-money-gen] ADA
  5264. 428.30 s [really-safe-money-gen] rate
  5265. 428.30 s [really-safe-money-gen] produces valid amounts 0.18 ms
  5266. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5267. 428.30 s [really-safe-money-gen] convert
  5268. 428.30 s [really-safe-money-gen] produces valid amounts 1.24 ms
  5269. 428.30 s [really-safe-money-gen] passed for all of 100 inputs.
  5270. 428.30 s [really-safe-money-gen] Money.AmountSpec
  5271. 428.30 s [really-safe-money-gen] rate
  5272. 428.30 s [really-safe-money-gen] produces valid conversion rates 57.40 ms
  5273. 428.30 s [really-safe-money-gen] passed for all of 10000 inputs.
  5274. 428.30 s [really-safe-money-gen] computes a rate that can be used to do a conversion without rounding 209.41 ms
  5275. 428.31 s [really-safe-money-gen] passed for all of 10000 inputs.
  5276. 428.31 s [really-safe-money-gen] computes this USD to CHF rate correctly 0.01 ms
  5277. 428.31 s [really-safe-money-gen] convert
  5278. 428.31 s [really-safe-money-gen] succeeds in converting 1:1 without rounding if the quantisation factor is the same 72.19 ms
  5279. 428.31 s [really-safe-money-gen] passed for all of 10000 inputs.
  5280. 428.31 s [really-safe-money-gen] converts this USD to CHF correctly 0.01 ms
  5281. 428.31 s [really-safe-money-gen] produces valid amounts 193.15 ms
  5282. 428.31 s [really-safe-money-gen] passed for all of 10000 inputs.
  5283. 428.31 s [really-safe-money-gen]
  5284. 428.31 s [really-safe-money-gen]
  5285. 428.31 s [really-safe-money-gen]
  5286. 428.31 s [really-safe-money-gen] Examples: 202504
  5287. 428.31 s [really-safe-money-gen] Passed: 346
  5288. 428.31 s [really-safe-money-gen] Failed: 0
  5289. 428.31 s [really-safe-money-gen] Sum of test runtimes: 8.33 seconds
  5290. 428.31 s [really-safe-money-gen] Test suite took: 8.34 seconds
  5291. 428.31 s [really-safe-money-gen]
  5292. 428.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:396:23-27:
  5293. 428.31 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  5294. 428.31 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  5295. 428.31 s [really-safe-money-gen] where
  5296. 428.31 s [really-safe-money-gen] go = \case
  5297. 428.31 s [really-safe-money-gen] - Nothing -> Just True
  5298. 428.31 s [really-safe-money-gen] + Nothing -> Just True
  5299. 428.31 s [really-safe-money-gen] s -> s
  5300. 428.31 s [really-safe-money-gen] Tests:
  5301. 428.31 s [really-safe-money-gen]
  5302. 428.31 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5303. 428.31 s [really-safe-money-gen] setSignRequired
  5304. 428.31 s [really-safe-money-gen] produces valid values 0.71 ms
  5305. 428.31 s [really-safe-money-gen] passed for all of 100 inputs.
  5306. 428.31 s [really-safe-money-gen]
  5307. 428.31 s [really-safe-money-gen]
  5308. 428.31 s [really-safe-money-gen]
  5309. 428.31 s [really-safe-money-gen] Examples: 100
  5310. 428.31 s [really-safe-money-gen] Passed: 1
  5311. 428.31 s [really-safe-money-gen] Failed: 0
  5312. 428.31 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5313. 428.31 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5314. 428.31 s [really-safe-money-gen]
  5315. 428.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:396:23-27:
  5316. 428.31 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  5317. 428.31 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  5318. 428.31 s [really-safe-money-gen] where
  5319. 428.31 s [really-safe-money-gen] go = \case
  5320. 428.31 s [really-safe-money-gen] - Nothing -> Just True
  5321. 428.31 s [really-safe-money-gen] + Nothing -> Just False
  5322. 428.31 s [really-safe-money-gen] s -> s
  5323. 428.31 s [really-safe-money-gen] Tests:
  5324. 428.31 s [really-safe-money-gen]
  5325. 428.31 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5326. 428.31 s [really-safe-money-gen] setSignRequired
  5327. 428.31 s [really-safe-money-gen] produces valid values 0.35 ms
  5328. 428.31 s [really-safe-money-gen] passed for all of 100 inputs.
  5329. 428.31 s [really-safe-money-gen]
  5330. 428.31 s [really-safe-money-gen]
  5331. 428.31 s [really-safe-money-gen]
  5332. 428.31 s [really-safe-money-gen] Examples: 100
  5333. 428.31 s [really-safe-money-gen] Passed: 1
  5334. 428.31 s [really-safe-money-gen] Failed: 0
  5335. 428.31 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5336. 428.31 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5337. 428.31 s [really-safe-money-gen]
  5338. 428.31 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:396:23-27:
  5339. 428.31 s [really-safe-money-gen] @@ -393,5 +393,5 @@
  5340. 428.31 s [really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
  5341. 428.31 s [really-safe-money-gen] where
  5342. 428.31 s [really-safe-money-gen] go = \case
  5343. 428.31 s [really-safe-money-gen] - Nothing -> Just True
  5344. 428.31 s [really-safe-money-gen] + Nothing -> Just not (True)
  5345. 428.31 s [really-safe-money-gen] s -> s
  5346. 428.31 s [really-safe-money-gen] Tests:
  5347. 428.31 s [really-safe-money-gen]
  5348. 428.31 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5349. 428.31 s [really-safe-money-gen] setSignRequired
  5350. 428.31 s [really-safe-money-gen] produces valid values 0.28 ms
  5351. 428.31 s [really-safe-money-gen] passed for all of 100 inputs.
  5352. 428.31 s [really-safe-money-gen]
  5353. 428.31 s [really-safe-money-gen]
  5354. 428.31 s [really-safe-money-gen]
  5355. 428.31 s [really-safe-money-gen] Examples: 100
  5356. 428.31 s [really-safe-money-gen] Passed: 1
  5357. 428.31 s [really-safe-money-gen] Failed: 0
  5358. 428.31 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5359. 428.31 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5360. 428.31 s [really-safe-money-gen]
  5361. 428.31 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22:
  5362. 428.31 s [really-safe-money-gen] @@ -334,7 +334,7 @@
  5363. 428.31 s [really-safe-money-gen] pure $ fromIntegral n
  5364. 428.31 s [really-safe-money-gen]
  5365. 428.31 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5366. 428.31 s [really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
  5367. 428.31 s [really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
  5368. 428.31 s [really-safe-money-gen]
  5369. 428.31 s [really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
  5370. 428.31 s [really-safe-money-gen] signSignum = \case
  5371. 428.31 s [really-safe-money-gen] Tests:
  5372. 428.31 s [really-safe-money-gen]
  5373. 428.31 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5374. 428.31 s [really-safe-money-gen] Int
  5375. 428.31 s [really-safe-money-gen] fromInt
  5376. 428.31 s [really-safe-money-gen] can parse any rendered literal 0.68 ms
  5377. 428.31 s [really-safe-money-gen] passed for all of 100 inputs.
  5378. 428.31 s [really-safe-money-gen]
  5379. 428.31 s [really-safe-money-gen]
  5380. 428.31 s [really-safe-money-gen]
  5381. 428.31 s [really-safe-money-gen] Examples: 100
  5382. 428.31 s [really-safe-money-gen] Passed: 1
  5383. 428.31 s [really-safe-money-gen] Failed: 0
  5384. 428.31 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5385. 428.31 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5386. 428.31 s [really-safe-money-gen]
  5387. 428.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46:
  5388. 428.31 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5389. 428.31 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  5390. 428.31 s [really-safe-money-gen] toInt dl = do
  5391. 428.31 s [really-safe-money-gen] n <- toInteger dl
  5392. 428.31 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  5393. 428.31 s [really-safe-money-gen] + guard $ True
  5394. 428.31 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  5395. 428.31 s [really-safe-money-gen] pure $ fromIntegral n
  5396. 428.31 s [really-safe-money-gen]
  5397. 428.31 s [really-safe-money-gen] Tests:
  5398. 428.31 s [really-safe-money-gen]
  5399. 428.31 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5400. 428.31 s [really-safe-money-gen] Int
  5401. 428.31 s [really-safe-money-gen] toInt
  5402. 428.31 s [really-safe-money-gen] renders to valid words 0.75 ms
  5403. 428.31 s [really-safe-money-gen] passed for all of 100 inputs.
  5404. 428.31 s [really-safe-money-gen] fromInt
  5405. 428.31 s [really-safe-money-gen] ✓ Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46:
  5406. 428.31 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5407. 428.31 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  5408. 428.31 s [really-safe-money-gen] toInt dl = do
  5409. 428.31 s [really-safe-money-gen] n <- toInteger dl
  5410. 428.31 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  5411. 428.31 s [really-safe-money-gen] + guard $ False
  5412. 428.31 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  5413. 428.31 s [really-safe-money-gen] pure $ fromIntegral n
  5414. 428.31 s [really-safe-money-gen]
  5415. 428.31 s [really-safe-money-gen]
  5416. 428.40 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46:
  5417. 428.40 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5418. 428.40 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  5419. 428.40 s [really-safe-money-gen] toInt dl = do
  5420. 428.40 s [really-safe-money-gen] n <- toInteger dl
  5421. 428.40 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  5422. 428.40 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
  5423. 428.40 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  5424. 428.40 s [really-safe-money-gen] pure $ fromIntegral n
  5425. 428.40 s [really-safe-money-gen]
  5426. 428.40 s [really-safe-money-gen]
  5427. 428.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46:
  5428. 428.50 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  5429. 428.50 s [really-safe-money-gen] toInt dl = do
  5430. 428.50 s [really-safe-money-gen] n <- toInteger dl
  5431. 428.50 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  5432. 428.50 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  5433. 428.50 s [really-safe-money-gen] + guard $ True
  5434. 428.50 s [really-safe-money-gen] pure $ fromIntegral n
  5435. 428.50 s [really-safe-money-gen]
  5436. 428.50 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5437. 428.50 s [really-safe-money-gen]
  5438. 428.59 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46:
  5439. 428.59 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  5440. 428.59 s [really-safe-money-gen] toInt dl = do
  5441. 428.59 s [really-safe-money-gen] n <- toInteger dl
  5442. 428.59 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  5443. 428.59 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  5444. 428.59 s [really-safe-money-gen] + guard $ False
  5445. 428.59 s [really-safe-money-gen] pure $ fromIntegral n
  5446. 428.59 s [really-safe-money-gen]
  5447. 428.59 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5448. 428.59 s [really-safe-money-gen]
  5449. 428.69 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46:
  5450. 428.69 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  5451. 428.69 s [really-safe-money-gen] toInt dl = do
  5452. 428.69 s [really-safe-money-gen] n <- toInteger dl
  5453. 428.69 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  5454. 428.69 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  5455. 428.69 s [really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
  5456. 428.69 s [really-safe-money-gen] pure $ fromIntegral n
  5457. 428.69 s [really-safe-money-gen]
  5458. 428.69 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5459. 428.69 s [really-safe-money-gen]
  5460. 428.78 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68:
  5461. 428.78 s [really-safe-money-gen] @@ -312,7 +312,7 @@
  5462. 428.78 s [really-safe-money-gen]
  5463. 428.78 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
  5464. 428.78 s [really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
  5465. 428.78 s [really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
  5466. 428.78 s [really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
  5467. 428.78 s [really-safe-money-gen]
  5468. 428.78 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
  5469. 428.78 s [really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
  5470. 428.78 s [really-safe-money-gen]
  5471. 428.87 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43:
  5472. 428.87 s [really-safe-money-gen] @@ -301,7 +301,7 @@
  5473. 428.87 s [really-safe-money-gen]
  5474. 428.87 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5475. 428.87 s [really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
  5476. 428.87 s [really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
  5477. 428.87 s [really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
  5478. 428.87 s [really-safe-money-gen]
  5479. 428.87 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
  5480. 428.87 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  5481. 428.87 s [really-safe-money-gen]
  5482. 428.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47:
  5483. 428.97 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5484. 428.97 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5485. 428.97 s [really-safe-money-gen] toWord dl = do
  5486. 428.97 s [really-safe-money-gen] n <- toNatural dl
  5487. 428.97 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5488. 428.97 s [really-safe-money-gen] + guard $ True
  5489. 428.97 s [really-safe-money-gen] pure $ fromIntegral n
  5490. 428.97 s [really-safe-money-gen]
  5491. 428.97 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5492. 428.97 s [really-safe-money-gen]
  5493. 429.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47:
  5494. 429.06 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5495. 429.06 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5496. 429.06 s [really-safe-money-gen] toWord dl = do
  5497. 429.06 s [really-safe-money-gen] n <- toNatural dl
  5498. 429.06 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5499. 429.06 s [really-safe-money-gen] + guard $ False
  5500. 429.06 s [really-safe-money-gen] pure $ fromIntegral n
  5501. 429.06 s [really-safe-money-gen]
  5502. 429.06 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5503. 429.06 s [really-safe-money-gen]
  5504. 429.15 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47:
  5505. 429.15 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5506. 429.15 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5507. 429.15 s [really-safe-money-gen] toWord dl = do
  5508. 429.15 s [really-safe-money-gen] n <- toNatural dl
  5509. 429.15 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5510. 429.15 s [really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
  5511. 429.15 s [really-safe-money-gen] pure $ fromIntegral n
  5512. 429.15 s [really-safe-money-gen]
  5513. 429.15 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5514. 429.15 s [really-safe-money-gen]
  5515. 429.24 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35:
  5516. 429.24 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5517. 429.24 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5518. 429.24 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5519. 429.24 s [really-safe-money-gen] Just False -> Nothing
  5520. 429.24 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5521. 429.24 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
  5522. 429.24 s [really-safe-money-gen]
  5523. 429.24 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5524. 429.24 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5525. 429.24 s [really-safe-money-gen]
  5526. 429.34 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35:
  5527. 429.34 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5528. 429.34 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5529. 429.34 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5530. 429.34 s [really-safe-money-gen] Just False -> Nothing
  5531. 429.34 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5532. 429.34 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
  5533. 429.34 s [really-safe-money-gen]
  5534. 429.34 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5535. 429.34 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5536. 429.34 s [really-safe-money-gen]
  5537. 429.43 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35:
  5538. 429.43 s [really-safe-money-gen] @@ -286,7 +286,7 @@
  5539. 429.43 s [really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
  5540. 429.43 s [really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
  5541. 429.43 s [really-safe-money-gen] Just False -> Nothing
  5542. 429.43 s [really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
  5543. 429.43 s [really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
  5544. 429.43 s [really-safe-money-gen]
  5545. 429.43 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
  5546. 429.43 s [really-safe-money-gen] fromWord :: Word -> DecimalLiteral
  5547. 429.43 s [really-safe-money-gen]
  5548. 429.52 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44:
  5549. 429.52 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5550. 429.52 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5551. 429.52 s [really-safe-money-gen] -- Nothing
  5552. 429.52 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5553. 429.52 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5554. 429.53 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
  5555. 429.53 s [really-safe-money-gen] where
  5556. 429.53 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5557. 429.53 s [really-safe-money-gen] -- limit
  5558. 429.53 s [really-safe-money-gen]
  5559. 429.62 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44:
  5560. 429.62 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5561. 429.62 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5562. 429.62 s [really-safe-money-gen] -- Nothing
  5563. 429.62 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5564. 429.62 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5565. 429.62 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
  5566. 429.62 s [really-safe-money-gen] where
  5567. 429.62 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5568. 429.62 s [really-safe-money-gen] -- limit
  5569. 429.62 s [really-safe-money-gen]
  5570. 429.72 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44:
  5571. 429.72 s [really-safe-money-gen] @@ -233,7 +233,7 @@
  5572. 429.72 s [really-safe-money-gen] -- >>> fromRatio (1 % 3)
  5573. 429.72 s [really-safe-money-gen] -- Nothing
  5574. 429.72 s [really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
  5575. 429.72 s [really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
  5576. 429.72 s [really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
  5577. 429.72 s [really-safe-money-gen] where
  5578. 429.72 s [really-safe-money-gen] fromRationalRepetendLimited ::
  5579. 429.72 s [really-safe-money-gen] -- limit
  5580. 429.72 s [really-safe-money-gen]
  5581. 429.81 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15:
  5582. 429.81 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5583. 429.81 s [really-safe-money-gen] Ratio Natural ->
  5584. 429.81 s [really-safe-money-gen] Maybe DecimalLiteral
  5585. 429.81 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5586. 429.81 s [really-safe-money-gen] - | d == 0 = Nothing
  5587. 429.81 s [really-safe-money-gen] + | d == 1 = Nothing
  5588. 429.81 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5589. 429.81 s [really-safe-money-gen] where
  5590. 429.81 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5591. 429.81 s [really-safe-money-gen]
  5592. 429.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15:
  5593. 429.91 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5594. 429.91 s [really-safe-money-gen] Ratio Natural ->
  5595. 429.91 s [really-safe-money-gen] Maybe DecimalLiteral
  5596. 429.91 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5597. 429.91 s [really-safe-money-gen] - | d == 0 = Nothing
  5598. 429.91 s [really-safe-money-gen] + | True = Nothing
  5599. 429.91 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5600. 429.91 s [really-safe-money-gen] where
  5601. 429.91 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5602. 429.91 s [really-safe-money-gen]
  5603. 430.01 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15:
  5604. 430.01 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5605. 430.01 s [really-safe-money-gen] Ratio Natural ->
  5606. 430.01 s [really-safe-money-gen] Maybe DecimalLiteral
  5607. 430.01 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5608. 430.01 s [really-safe-money-gen] - | d == 0 = Nothing
  5609. 430.01 s [really-safe-money-gen] + | False = Nothing
  5610. 430.01 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5611. 430.01 s [really-safe-money-gen] where
  5612. 430.01 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5613. 430.01 s [really-safe-money-gen]
  5614. 430.12 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15:
  5615. 430.12 s [really-safe-money-gen] @@ -241,7 +241,7 @@
  5616. 430.12 s [really-safe-money-gen] Ratio Natural ->
  5617. 430.12 s [really-safe-money-gen] Maybe DecimalLiteral
  5618. 430.12 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5619. 430.12 s [really-safe-money-gen] - | d == 0 = Nothing
  5620. 430.12 s [really-safe-money-gen] + | not (d == 0) = Nothing
  5621. 430.12 s [really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
  5622. 430.12 s [really-safe-money-gen] where
  5623. 430.12 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5624. 430.12 s [really-safe-money-gen]
  5625. 430.22 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:245:9-18:
  5626. 430.22 s [really-safe-money-gen] @@ -242,7 +242,7 @@
  5627. 430.22 s [really-safe-money-gen] Maybe DecimalLiteral
  5628. 430.22 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5629. 430.22 s [really-safe-money-gen] | d == 0 = Nothing
  5630. 430.22 s [really-safe-money-gen] - | otherwise = toLiteral Nothing <$> longDiv num
  5631. 430.22 s [really-safe-money-gen] + | True = toLiteral Nothing <$> longDiv num
  5632. 430.22 s [really-safe-money-gen] where
  5633. 430.22 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5634. 430.22 s [really-safe-money-gen] d = denominator rational
  5635. 430.22 s [really-safe-money-gen]
  5636. 430.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:245:9-18:
  5637. 430.31 s [really-safe-money-gen] @@ -242,7 +242,7 @@
  5638. 430.31 s [really-safe-money-gen] Maybe DecimalLiteral
  5639. 430.31 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5640. 430.31 s [really-safe-money-gen] | d == 0 = Nothing
  5641. 430.31 s [really-safe-money-gen] - | otherwise = toLiteral Nothing <$> longDiv num
  5642. 430.31 s [really-safe-money-gen] + | False = toLiteral Nothing <$> longDiv num
  5643. 430.31 s [really-safe-money-gen] where
  5644. 430.31 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5645. 430.31 s [really-safe-money-gen] d = denominator rational
  5646. 430.31 s [really-safe-money-gen]
  5647. 430.41 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:245:9-18:
  5648. 430.41 s [really-safe-money-gen] @@ -242,7 +242,7 @@
  5649. 430.41 s [really-safe-money-gen] Maybe DecimalLiteral
  5650. 430.41 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  5651. 430.41 s [really-safe-money-gen] | d == 0 = Nothing
  5652. 430.41 s [really-safe-money-gen] - | otherwise = toLiteral Nothing <$> longDiv num
  5653. 430.41 s [really-safe-money-gen] + | not (otherwise) = toLiteral Nothing <$> longDiv num
  5654. 430.41 s [really-safe-money-gen] where
  5655. 430.41 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  5656. 430.41 s [really-safe-money-gen] d = denominator rational
  5657. 430.41 s [really-safe-money-gen]
  5658. 430.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26:
  5659. 430.51 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5660. 430.51 s [really-safe-money-gen] Just (c, e)
  5661. 430.51 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5662. 430.51 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5663. 430.51 s [really-safe-money-gen] - | S.member n ns = Nothing
  5664. 430.51 s [really-safe-money-gen] + | True = Nothing
  5665. 430.51 s [really-safe-money-gen] -- Over the limit, stop trying
  5666. 430.51 s [really-safe-money-gen] | e >= l = Nothing
  5667. 430.51 s [really-safe-money-gen] | n < d =
  5668. 430.51 s [really-safe-money-gen]
  5669. 430.60 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26:
  5670. 430.60 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5671. 430.60 s [really-safe-money-gen] Just (c, e)
  5672. 430.60 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5673. 430.61 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5674. 430.61 s [really-safe-money-gen] - | S.member n ns = Nothing
  5675. 430.61 s [really-safe-money-gen] + | False = Nothing
  5676. 430.61 s [really-safe-money-gen] -- Over the limit, stop trying
  5677. 430.61 s [really-safe-money-gen] | e >= l = Nothing
  5678. 430.61 s [really-safe-money-gen] | n < d =
  5679. 430.61 s [really-safe-money-gen]
  5680. 430.70 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26:
  5681. 430.70 s [really-safe-money-gen] @@ -261,7 +261,7 @@
  5682. 430.70 s [really-safe-money-gen] Just (c, e)
  5683. 430.70 s [really-safe-money-gen] longDivWithLimit !c !e ns !n
  5684. 430.70 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5685. 430.70 s [really-safe-money-gen] - | S.member n ns = Nothing
  5686. 430.70 s [really-safe-money-gen] + | not (S.member n ns) = Nothing
  5687. 430.70 s [really-safe-money-gen] -- Over the limit, stop trying
  5688. 430.70 s [really-safe-money-gen] | e >= l = Nothing
  5689. 430.70 s [really-safe-money-gen] | n < d =
  5690. 430.70 s [really-safe-money-gen]
  5691. 430.79 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19:
  5692. 430.79 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5693. 430.79 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5694. 430.79 s [really-safe-money-gen] | S.member n ns = Nothing
  5695. 430.79 s [really-safe-money-gen] -- Over the limit, stop trying
  5696. 430.79 s [really-safe-money-gen] - | e >= l = Nothing
  5697. 430.79 s [really-safe-money-gen] + | True = Nothing
  5698. 430.79 s [really-safe-money-gen] | n < d =
  5699. 430.80 s [really-safe-money-gen] let !ns' = S.insert n ns
  5700. 430.80 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5701. 430.80 s [really-safe-money-gen]
  5702. 430.89 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19:
  5703. 430.89 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5704. 430.89 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5705. 430.89 s [really-safe-money-gen] | S.member n ns = Nothing
  5706. 430.89 s [really-safe-money-gen] -- Over the limit, stop trying
  5707. 430.89 s [really-safe-money-gen] - | e >= l = Nothing
  5708. 430.89 s [really-safe-money-gen] + | False = Nothing
  5709. 430.89 s [really-safe-money-gen] | n < d =
  5710. 430.89 s [really-safe-money-gen] let !ns' = S.insert n ns
  5711. 430.89 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5712. 430.89 s [really-safe-money-gen]
  5713. 430.99 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19:
  5714. 430.99 s [really-safe-money-gen] @@ -263,7 +263,7 @@
  5715. 430.99 s [really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
  5716. 430.99 s [really-safe-money-gen] | S.member n ns = Nothing
  5717. 430.99 s [really-safe-money-gen] -- Over the limit, stop trying
  5718. 430.99 s [really-safe-money-gen] - | e >= l = Nothing
  5719. 430.99 s [really-safe-money-gen] + | not (e >= l) = Nothing
  5720. 430.99 s [really-safe-money-gen] | n < d =
  5721. 430.99 s [really-safe-money-gen] let !ns' = S.insert n ns
  5722. 430.99 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5723. 430.99 s [really-safe-money-gen]
  5724. 431.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18:
  5725. 431.09 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5726. 431.09 s [really-safe-money-gen] | S.member n ns = Nothing
  5727. 431.09 s [really-safe-money-gen] -- Over the limit, stop trying
  5728. 431.09 s [really-safe-money-gen] | e >= l = Nothing
  5729. 431.09 s [really-safe-money-gen] - | n < d =
  5730. 431.09 s [really-safe-money-gen] + | True =
  5731. 431.09 s [really-safe-money-gen] let !ns' = S.insert n ns
  5732. 431.09 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5733. 431.09 s [really-safe-money-gen] | otherwise =
  5734. 431.09 s [really-safe-money-gen]
  5735. 431.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18:
  5736. 431.19 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5737. 431.19 s [really-safe-money-gen] | S.member n ns = Nothing
  5738. 431.19 s [really-safe-money-gen] -- Over the limit, stop trying
  5739. 431.19 s [really-safe-money-gen] | e >= l = Nothing
  5740. 431.20 s [really-safe-money-gen] - | n < d =
  5741. 431.20 s [really-safe-money-gen] + | False =
  5742. 431.20 s [really-safe-money-gen] let !ns' = S.insert n ns
  5743. 431.20 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5744. 431.20 s [really-safe-money-gen] | otherwise =
  5745. 431.20 s [really-safe-money-gen]
  5746. 431.29 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18:
  5747. 431.29 s [really-safe-money-gen] @@ -264,7 +264,7 @@
  5748. 431.29 s [really-safe-money-gen] | S.member n ns = Nothing
  5749. 431.29 s [really-safe-money-gen] -- Over the limit, stop trying
  5750. 431.29 s [really-safe-money-gen] | e >= l = Nothing
  5751. 431.29 s [really-safe-money-gen] - | n < d =
  5752. 431.29 s [really-safe-money-gen] + | not (n < d) =
  5753. 431.29 s [really-safe-money-gen] let !ns' = S.insert n ns
  5754. 431.29 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5755. 431.29 s [really-safe-money-gen] | otherwise =
  5756. 431.29 s [really-safe-money-gen]
  5757. 431.39 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43:
  5758. 431.39 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5759. 431.39 s [really-safe-money-gen] | e >= l = Nothing
  5760. 431.39 s [really-safe-money-gen] | n < d =
  5761. 431.39 s [really-safe-money-gen] let !ns' = S.insert n ns
  5762. 431.39 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5763. 431.39 s [really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
  5764. 431.39 s [really-safe-money-gen] | otherwise =
  5765. 431.39 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5766. 431.39 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5767. 431.39 s [really-safe-money-gen]
  5768. 431.49 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43:
  5769. 431.49 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5770. 431.49 s [really-safe-money-gen] | e >= l = Nothing
  5771. 431.49 s [really-safe-money-gen] | n < d =
  5772. 431.49 s [really-safe-money-gen] let !ns' = S.insert n ns
  5773. 431.49 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5774. 431.49 s [really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
  5775. 431.49 s [really-safe-money-gen] | otherwise =
  5776. 431.49 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5777. 431.49 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5778. 431.49 s [really-safe-money-gen]
  5779. 431.60 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65:
  5780. 431.60 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5781. 431.78 s [really-safe-money-gen] | e >= l = Nothing
  5782. 431.78 s [really-safe-money-gen] | n < d =
  5783. 431.78 s [really-safe-money-gen] let !ns' = S.insert n ns
  5784. 431.78 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5785. 431.78 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
  5786. 431.78 s [really-safe-money-gen] | otherwise =
  5787. 431.78 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5788. 431.78 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5789. 431.78 s [really-safe-money-gen]
  5790. 431.78 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65:
  5791. 431.78 s [really-safe-money-gen] @@ -266,7 +266,7 @@
  5792. 431.78 s [really-safe-money-gen] | e >= l = Nothing
  5793. 431.78 s [really-safe-money-gen] | n < d =
  5794. 431.78 s [really-safe-money-gen] let !ns' = S.insert n ns
  5795. 431.78 s [really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5796. 431.78 s [really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
  5797. 431.78 s [really-safe-money-gen] | otherwise =
  5798. 431.78 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5799. 431.78 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5800. 431.78 s [really-safe-money-gen]
  5801. 431.81 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:270:13-22:
  5802. 431.81 s [really-safe-money-gen] @@ -267,7 +267,7 @@
  5803. 431.81 s [really-safe-money-gen] | n < d =
  5804. 431.81 s [really-safe-money-gen] let !ns' = S.insert n ns
  5805. 431.81 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  5806. 431.81 s [really-safe-money-gen] - | otherwise =
  5807. 431.81 s [really-safe-money-gen] + | True =
  5808. 431.81 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  5809. 431.81 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  5810. 431.81 s [really-safe-money-gen]
  5811. 431.81 s [really-safe-money-gen]
  5812. 431.91 s [really-safe-money-gen] can parse any rendered literal 0.34 ms
  5813. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5814. 431.91 s [really-safe-money-gen]
  5815. 431.91 s [really-safe-money-gen]
  5816. 431.91 s [really-safe-money-gen]
  5817. 431.91 s [really-safe-money-gen] Examples: 200
  5818. 431.91 s [really-safe-money-gen] Passed: 2
  5819. 431.91 s [really-safe-money-gen] Failed: 0
  5820. 431.91 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5821. 431.91 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5822. 431.91 s [really-safe-money-gen]
  5823. 431.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46:
  5824. 431.91 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  5825. 431.91 s [really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
  5826. 431.91 s [really-safe-money-gen] toInt dl = do
  5827. 431.91 s [really-safe-money-gen] n <- toInteger dl
  5828. 431.91 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
  5829. 431.91 s [really-safe-money-gen] + guard $ False
  5830. 431.91 s [really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
  5831. 431.91 s [really-safe-money-gen] pure $ fromIntegral n
  5832. 431.91 s [really-safe-money-gen]
  5833. 431.91 s [really-safe-money-gen] Tests:
  5834. 431.91 s [really-safe-money-gen]
  5835. 431.91 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5836. 431.91 s [really-safe-money-gen] Int
  5837. 431.91 s [really-safe-money-gen] toInt
  5838. 431.91 s [really-safe-money-gen] renders to valid words 0.57 ms
  5839. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5840. 431.91 s [really-safe-money-gen] fromInt
  5841. 431.91 s [really-safe-money-gen] can parse any rendered literal 0.33 ms
  5842. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5843. 431.91 s [really-safe-money-gen]
  5844. 431.91 s [really-safe-money-gen]
  5845. 431.91 s [really-safe-money-gen]
  5846. 431.91 s [really-safe-money-gen] Examples: 200
  5847. 431.91 s [really-safe-money-gen] Passed: 2
  5848. 431.91 s [really-safe-money-gen] Failed: 0
  5849. 431.91 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5850. 431.91 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5851. 431.91 s [really-safe-money-gen]
  5852. 431.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46:
  5853. 431.91 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  5854. 431.91 s [really-safe-money-gen] toInt dl = do
  5855. 431.91 s [really-safe-money-gen] n <- toInteger dl
  5856. 431.91 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  5857. 431.91 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  5858. 431.91 s [really-safe-money-gen] + guard $ True
  5859. 431.91 s [really-safe-money-gen] pure $ fromIntegral n
  5860. 431.91 s [really-safe-money-gen]
  5861. 431.91 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5862. 431.91 s [really-safe-money-gen] Tests:
  5863. 431.91 s [really-safe-money-gen]
  5864. 431.91 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5865. 431.91 s [really-safe-money-gen] Int
  5866. 431.91 s [really-safe-money-gen] toInt
  5867. 431.91 s [really-safe-money-gen] renders to valid words 0.60 ms
  5868. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5869. 431.91 s [really-safe-money-gen] fromInt
  5870. 431.91 s [really-safe-money-gen] can parse any rendered literal 0.46 ms
  5871. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5872. 431.91 s [really-safe-money-gen]
  5873. 431.91 s [really-safe-money-gen]
  5874. 431.91 s [really-safe-money-gen]
  5875. 431.91 s [really-safe-money-gen] Examples: 200
  5876. 431.91 s [really-safe-money-gen] Passed: 2
  5877. 431.91 s [really-safe-money-gen] Failed: 0
  5878. 431.91 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5879. 431.91 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5880. 431.91 s [really-safe-money-gen]
  5881. 431.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46:
  5882. 431.91 s [really-safe-money-gen] @@ -330,7 +330,7 @@
  5883. 431.91 s [really-safe-money-gen] toInt dl = do
  5884. 431.91 s [really-safe-money-gen] n <- toInteger dl
  5885. 431.91 s [really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
  5886. 431.91 s [really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
  5887. 431.91 s [really-safe-money-gen] + guard $ False
  5888. 431.91 s [really-safe-money-gen] pure $ fromIntegral n
  5889. 431.91 s [really-safe-money-gen]
  5890. 431.91 s [really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
  5891. 431.91 s [really-safe-money-gen] Tests:
  5892. 431.91 s [really-safe-money-gen]
  5893. 431.91 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5894. 431.91 s [really-safe-money-gen] Int
  5895. 431.91 s [really-safe-money-gen] toInt
  5896. 431.91 s [really-safe-money-gen] renders to valid words 0.79 ms
  5897. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5898. 431.91 s [really-safe-money-gen] fromInt
  5899. 431.91 s [really-safe-money-gen] can parse any rendered literal 0.62 ms
  5900. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5901. 431.91 s [really-safe-money-gen]
  5902. 431.91 s [really-safe-money-gen]
  5903. 431.91 s [really-safe-money-gen]
  5904. 431.91 s [really-safe-money-gen] Examples: 200
  5905. 431.91 s [really-safe-money-gen] Passed: 2
  5906. 431.91 s [really-safe-money-gen] Failed: 0
  5907. 431.91 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5908. 431.91 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5909. 431.91 s [really-safe-money-gen]
  5910. 431.91 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43:
  5911. 431.91 s [really-safe-money-gen] @@ -301,7 +301,7 @@
  5912. 431.91 s [really-safe-money-gen]
  5913. 431.91 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5914. 431.91 s [really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
  5915. 431.91 s [really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
  5916. 431.91 s [really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
  5917. 431.91 s [really-safe-money-gen]
  5918. 431.91 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
  5919. 431.91 s [really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
  5920. 431.91 s [really-safe-money-gen] Tests:
  5921. 431.91 s [really-safe-money-gen]
  5922. 431.91 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5923. 431.91 s [really-safe-money-gen] Natural
  5924. 431.91 s [really-safe-money-gen] fromNatural
  5925. 431.91 s [really-safe-money-gen] renders to valid decimal literals 0.19 ms
  5926. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5927. 431.91 s [really-safe-money-gen]
  5928. 431.91 s [really-safe-money-gen]
  5929. 431.91 s [really-safe-money-gen]
  5930. 431.91 s [really-safe-money-gen] Examples: 100
  5931. 431.91 s [really-safe-money-gen] Passed: 1
  5932. 431.91 s [really-safe-money-gen] Failed: 0
  5933. 431.91 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5934. 431.91 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5935. 431.91 s [really-safe-money-gen]
  5936. 431.91 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47:
  5937. 431.91 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5938. 431.91 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5939. 431.91 s [really-safe-money-gen] toWord dl = do
  5940. 431.91 s [really-safe-money-gen] n <- toNatural dl
  5941. 431.91 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5942. 431.91 s [really-safe-money-gen] + guard $ True
  5943. 431.91 s [really-safe-money-gen] pure $ fromIntegral n
  5944. 431.91 s [really-safe-money-gen]
  5945. 431.91 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5946. 431.91 s [really-safe-money-gen] Tests:
  5947. 431.91 s [really-safe-money-gen]
  5948. 431.91 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5949. 431.91 s [really-safe-money-gen] Natural
  5950. 431.91 s [really-safe-money-gen] fromNatural
  5951. 431.91 s [really-safe-money-gen] can parse any rendered literal 0.21 ms
  5952. 431.91 s [really-safe-money-gen] passed for all of 100 inputs.
  5953. 431.91 s [really-safe-money-gen] Word
  5954. 431.91 s [really-safe-money-gen] fromWord
  5955. 431.92 s [really-safe-money-gen] can parse any rendered literal 0.61 ms
  5956. 431.92 s [really-safe-money-gen] passed for all of 100 inputs.
  5957. 431.92 s [really-safe-money-gen]
  5958. 431.92 s [really-safe-money-gen]
  5959. 431.92 s [really-safe-money-gen]
  5960. 431.92 s [really-safe-money-gen] Examples: 200
  5961. 431.92 s [really-safe-money-gen] Passed: 2
  5962. 431.92 s [really-safe-money-gen] Failed: 0
  5963. 431.92 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5964. 431.92 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5965. 431.92 s [really-safe-money-gen]
  5966. 431.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47:
  5967. 431.92 s [really-safe-money-gen] @@ -296,7 +296,7 @@
  5968. 431.92 s [really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
  5969. 431.92 s [really-safe-money-gen] toWord dl = do
  5970. 431.92 s [really-safe-money-gen] n <- toNatural dl
  5971. 431.92 s [really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
  5972. 431.92 s [really-safe-money-gen] + guard $ False
  5973. 431.92 s [really-safe-money-gen] pure $ fromIntegral n
  5974. 431.92 s [really-safe-money-gen]
  5975. 431.92 s [really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
  5976. 431.92 s [really-safe-money-gen] Tests:
  5977. 431.92 s [really-safe-money-gen]
  5978. 431.92 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  5979. 431.92 s [really-safe-money-gen] Natural
  5980. 431.92 s [really-safe-money-gen] fromNatural
  5981. 431.92 s [really-safe-money-gen] can parse any rendered literal 0.19 ms
  5982. 431.92 s [really-safe-money-gen] passed for all of 100 inputs.
  5983. 431.92 s [really-safe-money-gen] Word
  5984. 431.92 s [really-safe-money-gen] fromWord
  5985. 431.92 s [really-safe-money-gen] can parse any rendered literal 0.61 ms
  5986. 431.92 s [really-safe-money-gen] passed for all of 100 inputs.
  5987. 431.92 s [really-safe-money-gen]
  5988. 431.92 s [really-safe-money-gen]
  5989. 431.92 s [really-safe-money-gen]
  5990. 431.92 s [really-safe-money-gen] Examples: 200
  5991. 431.92 s [really-safe-money-gen] Passed: 2
  5992. 431.92 s [really-safe-money-gen] Failed: 0
  5993. 431.92 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  5994. 431.92 s [really-safe-money-gen] Test suite took: 0.00 seconds
  5995. 431.92 s [really-safe-money-gen]
  5996. 431.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:245:9-18:
  5997. 431.92 s [really-safe-money-gen] @@ -242,7 +242,7 @@
  5998. 431.92 s [really-safe-money-gen] Maybe DecimalLiteral
  5999. 431.92 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  6000. 431.92 s [really-safe-money-gen] | d == 0 = Nothing
  6001. 431.92 s [really-safe-money-gen] - | otherwise = toLiteral Nothing <$> longDiv num
  6002. 431.92 s [really-safe-money-gen] + | True = toLiteral Nothing <$> longDiv num
  6003. 431.92 s [really-safe-money-gen] where
  6004. 431.92 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  6005. 431.92 s [really-safe-money-gen] d = denominator rational
  6006. 431.92 s [really-safe-money-gen] Tests:
  6007. 431.92 s [really-safe-money-gen]
  6008. 431.92 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6009. 431.92 s [really-safe-money-gen] Rational
  6010. 431.92 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.04 ms
  6011. 431.92 s [really-safe-money-gen]
  6012. 431.92 s [really-safe-money-gen]
  6013. 431.92 s [really-safe-money-gen]
  6014. 431.92 s [really-safe-money-gen] Passed: 1
  6015. 431.92 s [really-safe-money-gen] Failed: 0
  6016. 431.92 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6017. 431.92 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6018. 431.92 s [really-safe-money-gen]
  6019. 431.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:245:9-18:
  6020. 431.92 s [really-safe-money-gen] @@ -242,7 +242,7 @@
  6021. 431.92 s [really-safe-money-gen] Maybe DecimalLiteral
  6022. 431.92 s [really-safe-money-gen] fromRationalRepetendLimited l rational
  6023. 431.92 s [really-safe-money-gen] | d == 0 = Nothing
  6024. 431.92 s [really-safe-money-gen] - | otherwise = toLiteral Nothing <$> longDiv num
  6025. 431.92 s [really-safe-money-gen] + | False = toLiteral Nothing <$> longDiv num
  6026. 431.92 s [really-safe-money-gen] where
  6027. 431.92 s [really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
  6028. 431.92 s [really-safe-money-gen] d = denominator rational
  6029. 431.92 s [really-safe-money-gen] Tests:
  6030. 431.92 s [really-safe-money-gen]
  6031. 431.92 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6032. 431.92 s [really-safe-money-gen] Rational
  6033. 431.92 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.06 ms
  6034. 431.92 s [really-safe-money-gen]
  6035. 431.92 s [really-safe-money-gen]
  6036. 431.92 s [really-safe-money-gen]
  6037. 431.92 s [really-safe-money-gen] Passed: 1
  6038. 431.92 s [really-safe-money-gen] Failed: 0
  6039. 431.92 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6040. 431.92 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6041. 431.92 s [really-safe-money-gen]
  6042. 431.92 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:270:13-22:
  6043. 431.92 s [really-safe-money-gen] @@ -267,7 +267,7 @@
  6044. 431.92 s [really-safe-money-gen] | n < d =
  6045. 431.92 s [really-safe-money-gen] let !ns' = S.insert n ns
  6046. 431.92 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6047. 431.92 s [really-safe-money-gen] - | otherwise =
  6048. 431.92 s [really-safe-money-gen] + | True =
  6049. 431.92 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6050. 431.92 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6051. 431.92 s [really-safe-money-gen]
  6052. 431.92 s [really-safe-money-gen] Tests:
  6053. 431.92 s [really-safe-money-gen]
  6054. 431.92 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6055. 431.92 s [really-safe-money-gen] Rational
  6056. 431.92 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.0Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:270:13-22:
  6057. 431.92 s [really-safe-money-gen] @@ -267,7 +267,7 @@
  6058. 431.92 s [really-safe-money-gen] | n < d =
  6059. 431.92 s [really-safe-money-gen] let !ns' = S.insert n ns
  6060. 431.92 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6061. 431.92 s [really-safe-money-gen] - | otherwise =
  6062. 431.92 s [really-safe-money-gen] + | False =
  6063. 431.92 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6064. 431.92 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6065. 431.92 s [really-safe-money-gen]
  6066. 431.92 s [really-safe-money-gen]
  6067. 432.00 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:270:13-22:
  6068. 432.00 s [really-safe-money-gen] @@ -267,7 +267,7 @@
  6069. 432.00 s [really-safe-money-gen] | n < d =
  6070. 432.00 s [really-safe-money-gen] let !ns' = S.insert n ns
  6071. 432.00 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6072. 432.00 s [really-safe-money-gen] - | otherwise =
  6073. 432.00 s [really-safe-money-gen] + | not (otherwise) =
  6074. 432.00 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6075. 432.00 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6076. 432.00 s [really-safe-money-gen]
  6077. 432.00 s [really-safe-money-gen]
  6078. 432.10 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37:
  6079. 432.10 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  6080. 432.10 s [really-safe-money-gen] num = numerator rational
  6081. 432.10 s [really-safe-money-gen]
  6082. 432.10 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  6083. 432.10 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  6084. 432.10 s [really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
  6085. 432.10 s [really-safe-money-gen]
  6086. 432.10 s [really-safe-money-gen] longDivWithLimit ::
  6087. 432.10 s [really-safe-money-gen] Natural ->
  6088. 432.10 s [really-safe-money-gen]
  6089. 432.20 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39:
  6090. 432.20 s [really-safe-money-gen] @@ -249,7 +249,7 @@
  6091. 432.20 s [really-safe-money-gen] num = numerator rational
  6092. 432.20 s [really-safe-money-gen]
  6093. 432.20 s [really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
  6094. 432.20 s [really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
  6095. 432.20 s [really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
  6096. 432.20 s [really-safe-money-gen]
  6097. 432.20 s [really-safe-money-gen] longDivWithLimit ::
  6098. 432.20 s [really-safe-money-gen] Natural ->
  6099. 432.20 s [really-safe-money-gen]
  6100. 432.29 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41:
  6101. 432.29 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  6102. 432.29 s [really-safe-money-gen] -- (-3) % 10
  6103. 432.29 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  6104. 432.29 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  6105. 432.29 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  6106. 432.29 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
  6107. 432.29 s [really-safe-money-gen]
  6108. 432.29 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  6109. 432.29 s [really-safe-money-gen] --
  6110. 432.29 s [really-safe-money-gen]
  6111. 432.38 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41:
  6112. 432.38 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  6113. 432.38 s [really-safe-money-gen] -- (-3) % 10
  6114. 432.38 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  6115. 432.38 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  6116. 432.38 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  6117. 432.38 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
  6118. 432.38 s [really-safe-money-gen]
  6119. 432.38 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  6120. 432.38 s [really-safe-money-gen] --
  6121. 432.38 s [really-safe-money-gen]
  6122. 432.47 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41:
  6123. 432.47 s [really-safe-money-gen] @@ -220,7 +220,7 @@
  6124. 432.47 s [really-safe-money-gen] -- (-3) % 10
  6125. 432.47 s [really-safe-money-gen] toRational :: DecimalLiteral -> Rational
  6126. 432.47 s [really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
  6127. 432.47 s [really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
  6128. 432.47 s [really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
  6129. 432.47 s [really-safe-money-gen]
  6130. 432.47 s [really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
  6131. 432.47 s [really-safe-money-gen] --
  6132. 432.47 s [really-safe-money-gen]
  6133. 432.56 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10:
  6134. 432.56 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6135. 432.56 s [really-safe-money-gen] -- Nothing
  6136. 432.56 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6137. 432.56 s [really-safe-money-gen] fromRational (n :% d)
  6138. 432.56 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6139. 432.56 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6140. 432.56 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6141. 432.56 s [really-safe-money-gen]
  6142. 432.56 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6143. 432.56 s [really-safe-money-gen]
  6144. 432.65 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10:
  6145. 432.65 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6146. 432.65 s [really-safe-money-gen] -- Nothing
  6147. 432.65 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6148. 432.65 s [really-safe-money-gen] fromRational (n :% d)
  6149. 432.65 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6150. 432.65 s [really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6151. 432.65 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6152. 432.65 s [really-safe-money-gen]
  6153. 432.65 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6154. 432.65 s [really-safe-money-gen]
  6155. 432.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10:
  6156. 432.75 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6157. 432.75 s [really-safe-money-gen] -- Nothing
  6158. 432.75 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6159. 432.75 s [really-safe-money-gen] fromRational (n :% d)
  6160. 432.75 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6161. 432.75 s [really-safe-money-gen] + | False = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6162. 432.75 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6163. 432.75 s [really-safe-money-gen]
  6164. 432.75 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6165. 432.75 s [really-safe-money-gen]
  6166. 432.85 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10:
  6167. 432.85 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6168. 432.85 s [really-safe-money-gen] -- Nothing
  6169. 432.85 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6170. 432.85 s [really-safe-money-gen] fromRational (n :% d)
  6171. 432.85 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6172. 432.85 s [really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6173. 432.85 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6174. 432.85 s [really-safe-money-gen]
  6175. 432.85 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6176. 432.85 s [really-safe-money-gen]
  6177. 432.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:62-67:
  6178. 432.94 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6179. 432.94 s [really-safe-money-gen] -- Nothing
  6180. 432.94 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6181. 432.94 s [really-safe-money-gen] fromRational (n :% d)
  6182. 432.95 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6183. 432.95 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6184. 432.95 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6185. 432.95 s [really-safe-money-gen]
  6186. 432.95 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6187. 432.95 s [really-safe-money-gen]
  6188. 433.04 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:62-67:
  6189. 433.04 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6190. 433.04 s [really-safe-money-gen] -- Nothing
  6191. 433.04 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6192. 433.04 s [really-safe-money-gen] fromRational (n :% d)
  6193. 433.04 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6194. 433.04 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6195. 433.04 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6196. 433.04 s [really-safe-money-gen]
  6197. 433.04 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6198. 433.04 s [really-safe-money-gen]
  6199. 433.13 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:62-67:
  6200. 433.13 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6201. 433.14 s [really-safe-money-gen] -- Nothing
  6202. 433.14 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6203. 433.14 s [really-safe-money-gen] fromRational (n :% d)
  6204. 433.14 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6205. 433.14 s [really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just not (False)) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6206. 433.14 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6207. 433.14 s [really-safe-money-gen]
  6208. 433.14 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6209. 433.14 s [really-safe-money-gen]
  6210. 433.23 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:209:5-14:
  6211. 433.23 s [really-safe-money-gen] @@ -206,7 +206,7 @@
  6212. 433.23 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6213. 433.23 s [really-safe-money-gen] fromRational (n :% d)
  6214. 433.23 s [really-safe-money-gen] | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6215. 433.23 s [really-safe-money-gen] - | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6216. 433.23 s [really-safe-money-gen] + | True = fromRatio (fromIntegral n % fromIntegral d)
  6217. 433.23 s [really-safe-money-gen]
  6218. 433.23 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6219. 433.23 s [really-safe-money-gen] --
  6220. 433.23 s [really-safe-money-gen]
  6221. 433.32 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:209:5-14:
  6222. 433.32 s [really-safe-money-gen] @@ -206,7 +206,7 @@
  6223. 433.32 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6224. 433.32 s [really-safe-money-gen] fromRational (n :% d)
  6225. 433.32 s [really-safe-money-gen] | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6226. 433.32 s [really-safe-money-gen] - | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6227. 433.32 s [really-safe-money-gen] + | False = fromRatio (fromIntegral n % fromIntegral d)
  6228. 433.32 s [really-safe-money-gen]
  6229. 433.32 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6230. 433.32 s [really-safe-money-gen] --
  6231. 433.32 s [really-safe-money-gen]
  6232. 433.42 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:209:5-14:
  6233. 433.42 s [really-safe-money-gen] @@ -206,7 +206,7 @@
  6234. 433.42 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6235. 433.42 s [really-safe-money-gen] fromRational (n :% d)
  6236. 433.42 s [really-safe-money-gen] | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6237. 433.42 s [really-safe-money-gen] - | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6238. 433.42 s [really-safe-money-gen] + | not (otherwise) = fromRatio (fromIntegral n % fromIntegral d)
  6239. 433.42 s [really-safe-money-gen]
  6240. 433.42 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6241. 433.42 s [really-safe-money-gen] --
  6242. 433.42 s [really-safe-money-gen]
  6243. 433.52 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25:
  6244. 433.52 s [really-safe-money-gen] @@ -183,7 +183,7 @@
  6245. 433.52 s [really-safe-money-gen]
  6246. 433.52 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  6247. 433.52 s [really-safe-money-gen] go :: Word8 -> String -> String
  6248. 433.52 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  6249. 433.52 s [really-safe-money-gen] + go 0 [] = ['.', '0']
  6250. 433.52 s [really-safe-money-gen] go 0 s = '.' : s
  6251. 433.52 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  6252. 433.52 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  6253. 433.52 s [really-safe-money-gen]
  6254. 433.62 s [really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25:
  6255. 433.62 s [really-safe-money-gen] @@ -183,7 +183,7 @@
  6256. 433.62 s [really-safe-money-gen]
  6257. 433.62 s [really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
  6258. 433.62 s [really-safe-money-gen] go :: Word8 -> String -> String
  6259. 433.62 s [really-safe-money-gen] - go 0 [] = ['.', '0']
  6260. 433.62 s [really-safe-money-gen] + go 0 [] = ['.', '0']
  6261. 433.62 s [really-safe-money-gen] go 0 s = '.' : s
  6262. 433.62 s [really-safe-money-gen] go e [] = '0' : go (pred e) []
  6263. 433.62 s [really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
  6264. 433.62 s [really-safe-money-gen]
  6265. 433.71 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30:
  6266. 433.71 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  6267. 433.71 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6268. 433.71 s [really-safe-money-gen] parseDigits f z = do
  6269. 433.71 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  6270. 433.71 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6271. 433.71 s [really-safe-money-gen] + let digit = Char.ord c - 0
  6272. 433.71 s [really-safe-money-gen] case f z digit of
  6273. 433.71 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  6274. 433.71 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  6275. 433.71 s [really-safe-money-gen]
  6276. 433.80 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30:
  6277. 433.80 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  6278. 433.80 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6279. 433.80 s [really-safe-money-gen] parseDigits f z = do
  6280. 433.80 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  6281. 433.80 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6282. 433.80 s [really-safe-money-gen] + let digit = Char.ord c - 1
  6283. 433.80 s [really-safe-money-gen] case f z digit of
  6284. 433.80 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  6285. 433.80 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  6286. 433.80 s [really-safe-money-gen]
  6287. 433.90 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30:
  6288. 433.90 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  6289. 433.90 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6290. 433.90 s [really-safe-money-gen] parseDigits f z = do
  6291. 433.90 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  6292. 433.90 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6293. 433.90 s [really-safe-money-gen] + let digit = Char.ord c - -48
  6294. 433.90 s [really-safe-money-gen] case f z digit of
  6295. 433.90 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  6296. 433.90 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  6297. 433.90 s [really-safe-money-gen]
  6298. 433.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23:
  6299. 433.99 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  6300. 433.99 s [really-safe-money-gen] where
  6301. 433.99 s [really-safe-money-gen] go !a [] = return a
  6302. 433.99 s [really-safe-money-gen] go !a (c : cs)
  6303. 433.99 s [really-safe-money-gen] - | Char.isDigit c = do
  6304. 433.99 s [really-safe-money-gen] + | True = do
  6305. 433.99 s [really-safe-money-gen] _ <- ReadP.get
  6306. 433.99 s [really-safe-money-gen] let digit = Char.ord c - 48
  6307. 433.99 s [really-safe-money-gen] case f a digit of
  6308. 433.99 s [really-safe-money-gen]
  6309. 434.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23:
  6310. 434.09 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  6311. 434.09 s [really-safe-money-gen] where
  6312. 434.09 s [really-safe-money-gen] go !a [] = return a
  6313. 434.09 s [really-safe-money-gen] go !a (c : cs)
  6314. 434.09 s [really-safe-money-gen] - | Char.isDigit c = do
  6315. 434.09 s [really-safe-money-gen] + | False = do
  6316. 434.09 s [really-safe-money-gen] _ <- ReadP.get
  6317. 434.09 s [really-safe-money-gen] let digit = Char.ord c - 48
  6318. 434.09 s [really-safe-money-gen] case f a digit of
  6319. 434.09 s [really-safe-money-gen]
  6320. 434.18 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23:
  6321. 434.18 s [really-safe-money-gen] @@ -149,7 +149,7 @@
  6322. 434.18 s [really-safe-money-gen] where
  6323. 434.18 s [really-safe-money-gen] go !a [] = return a
  6324. 434.18 s [really-safe-money-gen] go !a (c : cs)
  6325. 434.18 s [really-safe-money-gen] - | Char.isDigit c = do
  6326. 434.18 s [really-safe-money-gen] + | not (Char.isDigit c) = do
  6327. 434.18 s [really-safe-money-gen] _ <- ReadP.get
  6328. 434.18 s [really-safe-money-gen] let digit = Char.ord c - 48
  6329. 434.18 s [really-safe-money-gen] case f a digit of
  6330. 434.18 s [really-safe-money-gen]
  6331. 434.27 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38:
  6332. 434.27 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  6333. 434.27 s [really-safe-money-gen] go !a (c : cs)
  6334. 434.27 s [really-safe-money-gen] | Char.isDigit c = do
  6335. 434.27 s [really-safe-money-gen] _ <- ReadP.get
  6336. 434.27 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6337. 434.27 s [really-safe-money-gen] + let digit = Char.ord c - 0
  6338. 434.27 s [really-safe-money-gen] case f a digit of
  6339. 434.27 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6340. 434.27 s [really-safe-money-gen] Just a' -> go a' cs
  6341. 434.27 s [really-safe-money-gen]
  6342. 434.37 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38:
  6343. 434.37 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  6344. 434.37 s [really-safe-money-gen] go !a (c : cs)
  6345. 434.37 s [really-safe-money-gen] | Char.isDigit c = do
  6346. 434.37 s [really-safe-money-gen] _ <- ReadP.get
  6347. 434.37 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6348. 434.37 s [really-safe-money-gen] + let digit = Char.ord c - 1
  6349. 434.37 s [really-safe-money-gen] case f a digit of
  6350. 434.37 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6351. 434.37 s [really-safe-money-gen] Just a' -> go a' cs
  6352. 434.37 s [really-safe-money-gen]
  6353. 434.48 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38:
  6354. 434.48 s [really-safe-money-gen] @@ -151,7 +151,7 @@
  6355. 434.48 s [really-safe-money-gen] go !a (c : cs)
  6356. 434.48 s [really-safe-money-gen] | Char.isDigit c = do
  6357. 434.48 s [really-safe-money-gen] _ <- ReadP.get
  6358. 434.48 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6359. 434.48 s [really-safe-money-gen] + let digit = Char.ord c - -48
  6360. 434.48 s [really-safe-money-gen] case f a digit of
  6361. 434.48 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6362. 434.48 s [really-safe-money-gen] Just a' -> go a' cs
  6363. 434.48 s [really-safe-money-gen]
  6364. 434.59 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:158:9-18:
  6365. 434.59 s [really-safe-money-gen] @@ -155,7 +155,7 @@
  6366. 434.59 s [really-safe-money-gen] case f a digit of
  6367. 434.59 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6368. 434.59 s [really-safe-money-gen] Just a' -> go a' cs
  6369. 434.59 s [really-safe-money-gen] - | otherwise = return a
  6370. 434.59 s [really-safe-money-gen] + | True = return a
  6371. 434.59 s [really-safe-money-gen]
  6372. 434.59 s [really-safe-money-gen] -- | Render a decimal literal to a string
  6373. 434.59 s [really-safe-money-gen] --
  6374. 434.59 s [really-safe-money-gen]
  6375. 434.68 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:158:9-18:
  6376. 434.68 s [really-safe-money-gen] @@ -155,7 +155,7 @@
  6377. 434.68 s [really-safe-money-gen] case f a digit of
  6378. 434.68 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6379. 434.68 s [really-safe-money-gen] Just a' -> go a' cs
  6380. 434.68 s [really-safe-money-gen] - | otherwise = return a
  6381. 434.68 s [really-safe-money-gen] + | False = return a
  6382. 434.68 s [really-safe-money-gen]
  6383. 434.68 s [really-safe-money-gen] -- | Render a decimal literal to a string
  6384. 434.68 s [really-safe-money-gen] --
  6385. 434.68 s [really-safe-money-gen]
  6386. 434.77 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:158:9-18:
  6387. 434.77 s [really-safe-money-gen] @@ -155,7 +155,7 @@
  6388. 434.77 s [really-safe-money-gen] case f a digit of
  6389. 434.77 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6390. 434.77 s [really-safe-money-gen] Just a' -> go a' cs
  6391. 434.77 s [really-safe-money-gen] - | otherwise = return a
  6392. 434.77 s [really-safe-money-gen] + | not (otherwise) = return a
  6393. 434.77 s [really-safe-money-gen]
  6394. 434.77 s [really-safe-money-gen] -- | Render a decimal literal to a string
  6395. 434.77 s [really-safe-money-gen] --
  6396. 434.77 s [really-safe-money-gen]
  6397. 434.87 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29:
  6398. 434.87 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  6399. 434.87 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  6400. 434.87 s [really-safe-money-gen]
  6401. 434.87 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  6402. 434.87 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  6403. 434.87 s [really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
  6404. 434.87 s [really-safe-money-gen] {-# INLINE step #-}
  6405. 434.87 s [really-safe-money-gen]
  6406. 434.87 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6407. 434.87 s [really-safe-money-gen]
  6408. 435.00 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29:
  6409. 435.00 s [really-safe-money-gen] @@ -136,7 +136,7 @@
  6410. 435.00 s [really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  6411. 435.00 s [really-safe-money-gen]
  6412. 435.00 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  6413. 435.00 s [really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
  6414. 435.00 s [really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
  6415. 435.00 s [really-safe-money-gen] {-# INLINE step #-}
  6416. 435.00 s [really-safe-money-gen]
  6417. 435.00 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6418. 435.00 s [really-safe-money-gen]
  6419. 435.12 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41:
  6420. 435.12 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  6421. 435.12 s [really-safe-money-gen]
  6422. 435.12 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  6423. 435.12 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  6424. 435.12 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  6425. 435.12 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
  6426. 435.12 s [really-safe-money-gen]
  6427. 435.12 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  6428. 435.12 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  6429. 435.12 s [really-safe-money-gen]
  6430. 435.23 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41:
  6431. 435.23 s [really-safe-money-gen] @@ -133,7 +133,7 @@
  6432. 435.23 s [really-safe-money-gen]
  6433. 435.23 s [really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
  6434. 435.23 s [really-safe-money-gen] stepFraction (_, 255) _ = Nothing
  6435. 435.23 s [really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
  6436. 435.23 s [really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
  6437. 435.23 s [really-safe-money-gen]
  6438. 435.23 s [really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
  6439. 435.23 s [really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
  6440. 435.23 s [really-safe-money-gen]
  6441. 435.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30:
  6442. 435.33 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6443. 435.33 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6444. 435.33 s [really-safe-money-gen] decimalLiteralP = do
  6445. 435.33 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6446. 435.33 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6447. 435.33 s [really-safe-money-gen] + isSignChar c = True || c == '+'
  6448. 435.33 s [really-safe-money-gen]
  6449. 435.33 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6450. 435.33 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6451. 435.33 s [really-safe-money-gen]
  6452. 435.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30:
  6453. 435.47 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6454. 435.47 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6455. 435.47 s [really-safe-money-gen] decimalLiteralP = do
  6456. 435.47 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6457. 435.47 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6458. 435.47 s [really-safe-money-gen] + isSignChar c = False || c == '+'
  6459. 435.47 s [really-safe-money-gen]
  6460. 435.47 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6461. 435.47 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6462. 435.47 s [really-safe-money-gen]
  6463. 435.61 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30:
  6464. 435.61 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6465. 435.61 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6466. 435.61 s [really-safe-money-gen] decimalLiteralP = do
  6467. 435.62 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6468. 435.62 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6469. 435.62 s [really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
  6470. 435.62 s [really-safe-money-gen]
  6471. 435.62 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6472. 435.62 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6473. 435.62 s [really-safe-money-gen]
  6474. 435.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42:
  6475. 435.74 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6476. 435.74 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6477. 435.74 s [really-safe-money-gen] decimalLiteralP = do
  6478. 435.74 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6479. 435.74 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6480. 435.74 s [really-safe-money-gen] + isSignChar c = c == '-' || True
  6481. 435.74 s [really-safe-money-gen]
  6482. 435.74 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6483. 435.74 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6484. 435.74 s [really-safe-money-gen]
  6485. 435.88 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42:
  6486. 435.88 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6487. 435.88 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6488. 435.88 s [really-safe-money-gen] decimalLiteralP = do
  6489. 435.88 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6490. 435.88 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6491. 435.88 s [really-safe-money-gen] + isSignChar c = c == '-' || False
  6492. 435.88 s [really-safe-money-gen]
  6493. 435.88 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6494. 435.88 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6495. 435.88 s [really-safe-money-gen]
  6496. 436.02 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42:
  6497. 436.02 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6498. 436.02 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6499. 436.02 s [really-safe-money-gen] decimalLiteralP = do
  6500. 436.02 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6501. 436.03 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6502. 436.03 s [really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
  6503. 436.03 s [really-safe-money-gen]
  6504. 436.03 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6505. 436.03 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6506. 436.03 s [really-safe-money-gen]
  6507. 436.14 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42:
  6508. 436.14 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6509. 436.14 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6510. 436.14 s [really-safe-money-gen] decimalLiteralP = do
  6511. 436.14 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6512. 436.14 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6513. 436.14 s [really-safe-money-gen] + isSignChar c = True
  6514. 436.14 s [really-safe-money-gen]
  6515. 436.14 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6516. 436.14 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6517. 436.14 s [really-safe-money-gen]
  6518. 436.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42:
  6519. 436.28 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6520. 436.28 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6521. 436.28 s [really-safe-money-gen] decimalLiteralP = do
  6522. 436.28 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6523. 436.28 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6524. 436.28 s [really-safe-money-gen] + isSignChar c = False
  6525. 436.28 s [really-safe-money-gen]
  6526. 436.28 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6527. 436.28 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6528. 436.28 s [really-safe-money-gen]
  6529. 436.43 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42:
  6530. 436.43 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  6531. 436.43 s [really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
  6532. 436.43 s [really-safe-money-gen] decimalLiteralP = do
  6533. 436.43 s [really-safe-money-gen] let isSignChar :: Char -> Bool
  6534. 436.43 s [really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
  6535. 436.43 s [really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
  6536. 436.43 s [really-safe-money-gen]
  6537. 436.43 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6538. 436.43 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6539. 436.43 s [really-safe-money-gen]
  6540. 436.55 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34:
  6541. 436.55 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  6542. 436.55 s [really-safe-money-gen]
  6543. 436.55 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6544. 436.55 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6545. 436.55 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  6546. 436.55 s [really-safe-money-gen] + pure $ Just $ True
  6547. 436.55 s [really-safe-money-gen]
  6548. 436.55 s [really-safe-money-gen] units <- parseDigits step 0
  6549. 436.55 s [really-safe-money-gen]
  6550. 436.55 s [really-safe-money-gen]
  6551. 436.68 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34:
  6552. 436.77 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  6553. 436.77 s [really-safe-money-gen]
  6554. 436.77 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6555. 436.77 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6556. 436.77 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  6557. 436.77 s [really-safe-money-gen] + pure $ Just $ False
  6558. 436.77 s [really-safe-money-gen]
  6559. 436.77 s [really-safe-money-gen] units <- parseDigits step 0
  6560. 436.77 s [really-safe-money-gen]
  6561. 436.77 s [really-safe-money-gen]
  6562. 436.81 s [really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34:
  6563. 436.81 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  6564. 436.82 s [really-safe-money-gen]
  6565. 436.82 s [really-safe-money-gen] mSign <- ReadP.option Nothing $ do
  6566. 436.82 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6567. 436.82 s [really-safe-money-gen] - pure $ Just $ signChar == '+'
  6568. 436.82 s [really-safe-money-gen] + pure $ Just $ not (signChar == '+')
  6569. 436.82 s [really-safe-money-gen]
  6570. 436.82 s [really-safe-money-gen] units <- parseDigits step 0
  6571. 436.82 s [really-safe-money-gen]
  6572. 436.82 s [really-safe-money-gen]
  6573. 436.93 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30:
  6574. 436.94 s [really-safe-money-gen] @@ -122,7 +122,7 @@
  6575. 436.94 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6576. 436.94 s [really-safe-money-gen] pure $ Just $ signChar == '+'
  6577. 436.94 s [really-safe-money-gen]
  6578. 436.94 s [really-safe-money-gen] - units <- parseDigits step 0
  6579. 436.94 s [really-safe-money-gen] + units <- parseDigits step 1
  6580. 436.94 s [really-safe-money-gen]
  6581. 436.94 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  6582. 436.94 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  6583. 436.94 s [really-safe-money-gen]
  6584. 437.02 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45:
  6585. 437.02 s [really-safe-money-gen] @@ -124,7 +124,7 @@
  6586. 437.02 s [really-safe-money-gen]
  6587. 437.02 s [really-safe-money-gen] units <- parseDigits step 0
  6588. 437.02 s [really-safe-money-gen]
  6589. 437.02 s [really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
  6590. 437.02 s [really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
  6591. 437.02 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  6592. 437.02 s [really-safe-money-gen]
  6593. 437.02 s [really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
  6594. 437.02 s [really-safe-money-gen]
  6595. 437.13 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49:
  6596. 437.13 s [really-safe-money-gen] @@ -127,7 +127,7 @@
  6597. 437.13 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  6598. 437.13 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  6599. 437.13 s [really-safe-money-gen]
  6600. 437.13 s [really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
  6601. 437.13 s [really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
  6602. 437.13 s [really-safe-money-gen]
  6603. 437.13 s [really-safe-money-gen] pure $ DecimalLiteral mSign m e
  6604. 437.13 s [really-safe-money-gen]
  6605. 437.13 s [really-safe-money-gen]
  6606. 437.22 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29:
  6607. 437.22 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  6608. 437.22 s [really-safe-money-gen] Just a -> do
  6609. 437.22 s [really-safe-money-gen] r <- Account.subtract a account
  6610. 437.22 s [really-safe-money-gen] Just $
  6611. 437.22 s [really-safe-money-gen] - if r == Account.zero
  6612. 437.22 s [really-safe-money-gen] + if True
  6613. 437.22 s [really-safe-money-gen] then M.delete currency m
  6614. 437.22 s [really-safe-money-gen] else M.insert currency r m
  6615. 437.22 s [really-safe-money-gen]
  6616. 437.22 s [really-safe-money-gen]
  6617. 437.67 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29:
  6618. 437.67 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  6619. 437.67 s [really-safe-money-gen] Just a -> do
  6620. 437.67 s [really-safe-money-gen] r <- Account.subtract a account
  6621. 437.67 s [really-safe-money-gen] Just $
  6622. 437.67 s [really-safe-money-gen] - if r == Account.zero
  6623. 437.67 s [really-safe-money-gen] + if False
  6624. 437.67 s [really-safe-money-gen] then M.delete currency m
  6625. 437.67 s [really-safe-money-gen] else M.insert currency r m
  6626. 437.67 s [really-safe-money-gen]
  6627. 437.67 s [really-safe-money-gen]
  6628. 438.11 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29:
  6629. 438.11 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  6630. 438.11 s [really-safe-money-gen] Just a -> do
  6631. 438.11 s [really-safe-money-gen] r <- Account.subtract a account
  6632. 438.11 s [really-safe-money-gen] Just $
  6633. 438.11 s [really-safe-money-gen] - if r == Account.zero
  6634. 438.11 s [really-safe-money-gen] + if not (r == Account.zero)
  6635. 438.11 s [really-safe-money-gen] then M.delete currency m
  6636. 438.11 s [really-safe-money-gen] else M.insert currency r m
  6637. 438.11 s [really-safe-money-gen]
  6638. 438.11 s [really-safe-money-gen]
  6639. 438.60 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:134:9-37:
  6640. 438.60 s [really-safe-money-gen] @@ -131,7 +131,7 @@
  6641. 438.60 s [really-safe-money-gen] Just a -> do
  6642. 438.60 s [really-safe-money-gen] r <- Account.subtract a account
  6643. 438.60 s [really-safe-money-gen] Just $
  6644. 438.60 s [really-safe-money-gen] - if r == Account.zero
  6645. 438.60 s [really-safe-money-gen] + if r == Account.zero
  6646. 438.60 s [really-safe-money-gen] then M.delete currency m
  6647. 438.60 s [really-safe-money-gen] else M.insert currency r m
  6648. 438.60 s [really-safe-money-gen]
  6649. 438.60 s [really-safe-money-gen]
  6650. 439.04 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29:
  6651. 439.04 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  6652. 439.04 s [really-safe-money-gen] Just a -> do
  6653. 439.04 s [really-safe-money-gen] r <- Account.add a account
  6654. 439.04 s [really-safe-money-gen] Just $
  6655. 439.04 s [really-safe-money-gen] - if r == Account.zero
  6656. 439.04 s [really-safe-money-gen] + if True
  6657. 439.04 s [really-safe-money-gen] then M.delete currency m
  6658. 439.04 s [really-safe-money-gen] else M.insert currency r m
  6659. 439.04 s [really-safe-money-gen]
  6660. 439.04 s [really-safe-money-gen]
  6661. 439.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29:
  6662. 439.57 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  6663. 439.57 s [really-safe-money-gen] Just a -> do
  6664. 439.57 s [really-safe-money-gen] r <- Account.add a account
  6665. 439.57 s [really-safe-money-gen] Just $
  6666. 439.57 s [really-safe-money-gen] - if r == Account.zero
  6667. 439.57 s [really-safe-money-gen] + if False
  6668. 439.57 s [really-safe-money-gen] then M.delete currency m
  6669. 439.57 s [really-safe-money-gen] else M.insert currency r m
  6670. 439.57 s [really-safe-money-gen]
  6671. 439.57 s [really-safe-money-gen]
  6672. 440.12 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29:
  6673. 440.12 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  6674. 440.12 s [really-safe-money-gen] Just a -> do
  6675. 440.12 s [really-safe-money-gen] r <- Account.add a account
  6676. 440.12 s [really-safe-money-gen] Just $
  6677. 440.12 s [really-safe-money-gen] - if r == Account.zero
  6678. 440.12 s [really-safe-money-gen] + if not (r == Account.zero)
  6679. 440.12 s [really-safe-money-gen] then M.delete currency m
  6680. 440.12 s [really-safe-money-gen] else M.insert currency r m
  6681. 440.12 s [really-safe-money-gen]
  6682. 440.12 s [really-safe-money-gen]
  6683. 440.65 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:120:9-37:
  6684. 440.65 s [really-safe-money-gen] @@ -117,7 +117,7 @@
  6685. 440.65 s [really-safe-money-gen] Just a -> do
  6686. 440.65 s [really-safe-money-gen] r <- Account.add a account
  6687. 440.65 s [really-safe-money-gen] Just $
  6688. 440.65 s [really-safe-money-gen] - if r == Account.zero
  6689. 440.65 s [really-safe-money-gen] + if r == Account.zero
  6690. 440.65 s [really-safe-money-gen] then M.delete currency m
  6691. 440.65 s [really-safe-money-gen] else M.insert currency r m
  6692. 440.65 s [really-safe-money-gen]
  6693. 440.65 s [really-safe-money-gen]
  6694. 441.22 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28:
  6695. 441.22 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  6696. 441.22 s [really-safe-money-gen]
  6697. 441.22 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  6698. 441.22 s [really-safe-money-gen] fromAccount currency amount =
  6699. 441.22 s [really-safe-money-gen] - if amount == Account.zero
  6700. 441.22 s [really-safe-money-gen] + if True
  6701. 441.22 s [really-safe-money-gen] then zero
  6702. 441.22 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  6703. 441.22 s [really-safe-money-gen]
  6704. 441.22 s [really-safe-money-gen]
  6705. 441.32 s [really-safe-money-gen] 5 ms
  6706. 441.32 s [really-safe-money-gen]
  6707. 441.32 s [really-safe-money-gen]
  6708. 441.32 s [really-safe-money-gen]
  6709. 441.32 s [really-safe-money-gen] Passed: 1
  6710. 441.32 s [really-safe-money-gen] Failed: 0
  6711. 441.32 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6712. 441.32 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6713. 441.32 s [really-safe-money-gen]
  6714. 441.32 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:270:13-22:
  6715. 441.32 s [really-safe-money-gen] @@ -267,7 +267,7 @@
  6716. 441.32 s [really-safe-money-gen] | n < d =
  6717. 441.32 s [really-safe-money-gen] let !ns' = S.insert n ns
  6718. 441.32 s [really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
  6719. 441.32 s [really-safe-money-gen] - | otherwise =
  6720. 441.32 s [really-safe-money-gen] + | False =
  6721. 441.32 s [really-safe-money-gen] let (q, r') = n `quotRem` d
  6722. 441.32 s [really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
  6723. 441.32 s [really-safe-money-gen]
  6724. 441.32 s [really-safe-money-gen] Tests:
  6725. 441.32 s [really-safe-money-gen]
  6726. 441.32 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6727. 441.32 s [really-safe-money-gen] Rational
  6728. 441.32 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.05 ms
  6729. 441.32 s [really-safe-money-gen]
  6730. 441.32 s [really-safe-money-gen]
  6731. 441.32 s [really-safe-money-gen]
  6732. 441.32 s [really-safe-money-gen] Passed: 1
  6733. 441.32 s [really-safe-money-gen] Failed: 0
  6734. 441.32 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6735. 441.32 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6736. 441.32 s [really-safe-money-gen]
  6737. 441.32 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10:
  6738. 441.32 s [really-safe-money-gen] @@ -205,7 +205,7 @@
  6739. 441.32 s [really-safe-money-gen] -- Nothing
  6740. 441.32 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6741. 441.32 s [really-safe-money-gen] fromRational (n :% d)
  6742. 441.32 s [really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6743. 441.32 s [really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6744. 441.32 s [really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6745. 441.32 s [really-safe-money-gen]
  6746. 441.32 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6747. 441.32 s [really-safe-money-gen] Tests:
  6748. 441.32 s [really-safe-money-gen]
  6749. 441.32 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6750. 441.32 s [really-safe-money-gen] Rational
  6751. 441.32 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.05 ms
  6752. 441.32 s [really-safe-money-gen]
  6753. 441.32 s [really-safe-money-gen]
  6754. 441.32 s [really-safe-money-gen]
  6755. 441.32 s [really-safe-money-gen] Passed: 1
  6756. 441.32 s [really-safe-money-gen] Failed: 0
  6757. 441.32 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6758. 441.32 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6759. 441.32 s [really-safe-money-gen]
  6760. 441.32 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:209:5-14:
  6761. 441.32 s [really-safe-money-gen] @@ -206,7 +206,7 @@
  6762. 441.32 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6763. 441.32 s [really-safe-money-gen] fromRational (n :% d)
  6764. 441.32 s [really-safe-money-gen] | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6765. 441.32 s [really-safe-money-gen] - | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6766. 441.32 s [really-safe-money-gen] + | True = fromRatio (fromIntegral n % fromIntegral d)
  6767. 441.32 s [really-safe-money-gen]
  6768. 441.32 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6769. 441.32 s [really-safe-money-gen] --
  6770. 441.32 s [really-safe-money-gen] Tests:
  6771. 441.32 s [really-safe-money-gen]
  6772. 441.32 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6773. 441.32 s [really-safe-money-gen] Rational
  6774. 441.32 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.05 ms
  6775. 441.32 s [really-safe-money-gen]
  6776. 441.32 s [really-safe-money-gen]
  6777. 441.32 s [really-safe-money-gen]
  6778. 441.32 s [really-safe-money-gen] Passed: 1
  6779. 441.32 s [really-safe-money-gen] Failed: 0
  6780. 441.32 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6781. 441.32 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6782. 441.32 s [really-safe-money-gen]
  6783. 441.32 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:209:5-14:
  6784. 441.32 s [really-safe-money-gen] @@ -206,7 +206,7 @@
  6785. 441.32 s [really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
  6786. 441.32 s [really-safe-money-gen] fromRational (n :% d)
  6787. 441.32 s [really-safe-money-gen] | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
  6788. 441.32 s [really-safe-money-gen] - | otherwise = fromRatio (fromIntegral n % fromIntegral d)
  6789. 441.32 s [really-safe-money-gen] + | False = fromRatio (fromIntegral n % fromIntegral d)
  6790. 441.32 s [really-safe-money-gen]
  6791. 441.32 s [really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
  6792. 441.32 s [really-safe-money-gen] --
  6793. 441.32 s [really-safe-money-gen] Tests:
  6794. 441.32 s [really-safe-money-gen]
  6795. 441.32 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6796. 441.32 s [really-safe-money-gen] Rational
  6797. 441.32 s [really-safe-money-gen] can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 0.04 ms
  6798. 441.32 s [really-safe-money-gen]
  6799. 441.32 s [really-safe-money-gen]
  6800. 441.32 s [really-safe-money-gen]
  6801. 441.33 s [really-safe-money-gen] Passed: 1
  6802. 441.33 s [really-safe-money-gen] Failed: 0
  6803. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6804. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6805. 441.33 s [really-safe-money-gen]
  6806. 441.33 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30:
  6807. 441.33 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  6808. 441.33 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6809. 441.33 s [really-safe-money-gen] parseDigits f z = do
  6810. 441.33 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  6811. 441.33 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6812. 441.33 s [really-safe-money-gen] + let digit = Char.ord c - 0
  6813. 441.33 s [really-safe-money-gen] case f z digit of
  6814. 441.33 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  6815. 441.33 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  6816. 441.33 s [really-safe-money-gen] Tests:
  6817. 441.33 s [really-safe-money-gen]
  6818. 441.33 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6819. 441.33 s [really-safe-money-gen] DecimalLiteral.fromString
  6820. 441.33 s [really-safe-money-gen] fails to parse scientific notation 0.02 ms
  6821. 441.33 s [really-safe-money-gen]
  6822. 441.33 s [really-safe-money-gen]
  6823. 441.33 s [really-safe-money-gen]
  6824. 441.33 s [really-safe-money-gen] Passed: 1
  6825. 441.33 s [really-safe-money-gen] Failed: 0
  6826. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6827. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6828. 441.33 s [really-safe-money-gen]
  6829. 441.33 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30:
  6830. 441.33 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  6831. 441.33 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6832. 441.33 s [really-safe-money-gen] parseDigits f z = do
  6833. 441.33 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  6834. 441.33 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6835. 441.33 s [really-safe-money-gen] + let digit = Char.ord c - 1
  6836. 441.33 s [really-safe-money-gen] case f z digit of
  6837. 441.33 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  6838. 441.33 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  6839. 441.33 s [really-safe-money-gen] Tests:
  6840. 441.33 s [really-safe-money-gen]
  6841. 441.33 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6842. 441.33 s [really-safe-money-gen] DecimalLiteral.fromString
  6843. 441.33 s [really-safe-money-gen] fails to parse scientific notation 0.02 ms
  6844. 441.33 s [really-safe-money-gen]
  6845. 441.33 s [really-safe-money-gen]
  6846. 441.33 s [really-safe-money-gen]
  6847. 441.33 s [really-safe-money-gen] Passed: 1
  6848. 441.33 s [really-safe-money-gen] Failed: 0
  6849. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6850. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6851. 441.33 s [really-safe-money-gen]
  6852. 441.33 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30:
  6853. 441.33 s [really-safe-money-gen] @@ -142,7 +142,7 @@
  6854. 441.33 s [really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
  6855. 441.33 s [really-safe-money-gen] parseDigits f z = do
  6856. 441.33 s [really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
  6857. 441.33 s [really-safe-money-gen] - let digit = Char.ord c - 48
  6858. 441.33 s [really-safe-money-gen] + let digit = Char.ord c - -48
  6859. 441.33 s [really-safe-money-gen] case f z digit of
  6860. 441.33 s [really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
  6861. 441.33 s [really-safe-money-gen] Just a -> ReadP.look >>= go a
  6862. 441.33 s [really-safe-money-gen] Tests:
  6863. 441.33 s [really-safe-money-gen]
  6864. 441.33 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6865. 441.33 s [really-safe-money-gen] DecimalLiteral.fromString
  6866. 441.33 s [really-safe-money-gen] fails to parse scientific notation 0.02 ms
  6867. 441.33 s [really-safe-money-gen]
  6868. 441.33 s [really-safe-money-gen]
  6869. 441.33 s [really-safe-money-gen]
  6870. 441.33 s [really-safe-money-gen] Passed: 1
  6871. 441.33 s [really-safe-money-gen] Failed: 0
  6872. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6873. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6874. 441.33 s [really-safe-money-gen]
  6875. 441.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:158:9-18:
  6876. 441.33 s [really-safe-money-gen] @@ -155,7 +155,7 @@
  6877. 441.33 s [really-safe-money-gen] case f a digit of
  6878. 441.33 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6879. 441.33 s [really-safe-money-gen] Just a' -> go a' cs
  6880. 441.33 s [really-safe-money-gen] - | otherwise = return a
  6881. 441.33 s [really-safe-money-gen] + | True = return a
  6882. 441.33 s [really-safe-money-gen]
  6883. 441.33 s [really-safe-money-gen] -- | Render a decimal literal to a string
  6884. 441.33 s [really-safe-money-gen] --
  6885. 441.33 s [really-safe-money-gen] Tests:
  6886. 441.33 s [really-safe-money-gen]
  6887. 441.33 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6888. 441.33 s [really-safe-money-gen] DecimalLiteral.fromString
  6889. 441.33 s [really-safe-money-gen] fails to parse scientific notation 0.02 ms
  6890. 441.33 s [really-safe-money-gen]
  6891. 441.33 s [really-safe-money-gen]
  6892. 441.33 s [really-safe-money-gen]
  6893. 441.33 s [really-safe-money-gen] Passed: 1
  6894. 441.33 s [really-safe-money-gen] Failed: 0
  6895. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6896. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6897. 441.33 s [really-safe-money-gen]
  6898. 441.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:158:9-18:
  6899. 441.33 s [really-safe-money-gen] @@ -155,7 +155,7 @@
  6900. 441.33 s [really-safe-money-gen] case f a digit of
  6901. 441.33 s [really-safe-money-gen] Nothing -> fail "Failed to step the digit"
  6902. 441.33 s [really-safe-money-gen] Just a' -> go a' cs
  6903. 441.33 s [really-safe-money-gen] - | otherwise = return a
  6904. 441.33 s [really-safe-money-gen] + | False = return a
  6905. 441.33 s [really-safe-money-gen]
  6906. 441.33 s [really-safe-money-gen] -- | Render a decimal literal to a string
  6907. 441.33 s [really-safe-money-gen] --
  6908. 441.33 s [really-safe-money-gen] Tests:
  6909. 441.33 s [really-safe-money-gen]
  6910. 441.33 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6911. 441.33 s [really-safe-money-gen] DecimalLiteral.fromString
  6912. 441.33 s [really-safe-money-gen] fails to parse scientific notation 0.03 ms
  6913. 441.33 s [really-safe-money-gen]
  6914. 441.33 s [really-safe-money-gen]
  6915. 441.33 s [really-safe-money-gen]
  6916. 441.33 s [really-safe-money-gen] Passed: 1
  6917. 441.33 s [really-safe-money-gen] Failed: 0
  6918. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6919. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6920. 441.33 s [really-safe-money-gen]
  6921. 441.33 s [really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30:
  6922. 441.33 s [really-safe-money-gen] @@ -122,7 +122,7 @@
  6923. 441.33 s [really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
  6924. 441.33 s [really-safe-money-gen] pure $ Just $ signChar == '+'
  6925. 441.33 s [really-safe-money-gen]
  6926. 441.33 s [really-safe-money-gen] - units <- parseDigits step 0
  6927. 441.33 s [really-safe-money-gen] + units <- parseDigits step 1
  6928. 441.33 s [really-safe-money-gen]
  6929. 441.33 s [really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
  6930. 441.33 s [really-safe-money-gen] _ <- ReadP.satisfy (== '.')
  6931. 441.33 s [really-safe-money-gen] Tests:
  6932. 441.33 s [really-safe-money-gen]
  6933. 441.33 s [really-safe-money-gen] Numeric.DecimalLiteralSpec
  6934. 441.33 s [really-safe-money-gen] DecimalLiteral.fromString
  6935. 441.33 s [really-safe-money-gen] fails to parse scientific notation 0.02 ms
  6936. 441.33 s [really-safe-money-gen]
  6937. 441.33 s [really-safe-money-gen]
  6938. 441.33 s [really-safe-money-gen]
  6939. 441.33 s [really-safe-money-gen] Passed: 1
  6940. 441.33 s [really-safe-money-gen] Failed: 0
  6941. 441.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  6942. 441.33 s [really-safe-money-gen] Test suite took: 0.00 seconds
  6943. 441.33 s [really-safe-money-gen]
  6944. 441.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28:
  6945. 441.33 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  6946. 441.33 s [really-safe-money-gen]
  6947. 441.33 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  6948. 441.33 s [really-safe-money-gen] fromAccount currency amount =
  6949. 441.33 s [really-safe-money-gen] - if amount == Account.zero
  6950. 441.33 s [really-safe-money-gen] + if True
  6951. 441.33 s [really-safe-money-gen] then zero
  6952. 441.33 s [really-safe-money-gen] else MultiAccount $ M.singleton currency aTesting mutation ConstBool at src/Money/MultiAccount.hs:78:6-28:
  6953. 441.33 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  6954. 441.33 s [really-safe-money-gen]
  6955. 441.33 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  6956. 441.33 s [really-safe-money-gen] fromAccount currency amount =
  6957. 441.33 s [really-safe-money-gen] - if amount == Account.zero
  6958. 441.33 s [really-safe-money-gen] + if False
  6959. 441.33 s [really-safe-money-gen] then zero
  6960. 441.33 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  6961. 441.33 s [really-safe-money-gen]
  6962. 441.33 s [really-safe-money-gen]
  6963. 441.41 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28:
  6964. 441.41 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  6965. 441.41 s [really-safe-money-gen]
  6966. 441.41 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  6967. 441.41 s [really-safe-money-gen] fromAccount currency amount =
  6968. 441.41 s [really-safe-money-gen] - if amount == Account.zero
  6969. 441.41 s [really-safe-money-gen] + if not (amount == Account.zero)
  6970. 441.41 s [really-safe-money-gen] then zero
  6971. 441.41 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  6972. 441.41 s [really-safe-money-gen]
  6973. 441.41 s [really-safe-money-gen]
  6974. 441.50 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:78:3-52:
  6975. 441.50 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  6976. 441.50 s [really-safe-money-gen]
  6977. 441.50 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  6978. 441.50 s [really-safe-money-gen] fromAccount currency amount =
  6979. 441.50 s [really-safe-money-gen] - if amount == Account.zero
  6980. 441.50 s [really-safe-money-gen] + if amount == Account.zero
  6981. 441.50 s [really-safe-money-gen] then zero
  6982. 441.50 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  6983. 441.50 s [really-safe-money-gen]
  6984. 441.50 s [really-safe-money-gen]
  6985. 441.60 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30:
  6986. 441.60 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  6987. 441.60 s [really-safe-money-gen] [ genericValidate ma,
  6988. 441.60 s [really-safe-money-gen] decorateMap m $ \_ a ->
  6989. 441.60 s [really-safe-money-gen] declare "The account is not zero" $
  6990. 441.60 s [really-safe-money-gen] - a /= Account.zero
  6991. 441.60 s [really-safe-money-gen] + True
  6992. 441.60 s [really-safe-money-gen] ]
  6993. 441.60 s [really-safe-money-gen]
  6994. 441.60 s [really-safe-money-gen] -- TODO no empty currencies
  6995. 441.60 s [really-safe-money-gen]
  6996. 442.15 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30:
  6997. 442.22 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  6998. 442.22 s [really-safe-money-gen] [ genericValidate ma,
  6999. 442.22 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7000. 442.22 s [really-safe-money-gen] declare "The account is not zero" $
  7001. 442.22 s [really-safe-money-gen] - a /= Account.zero
  7002. 442.22 s [really-safe-money-gen] + False
  7003. 442.22 s [really-safe-money-gen] ]
  7004. 442.22 s [really-safe-money-gen]
  7005. 442.22 s [really-safe-money-gen] -- TODO no empty currencies
  7006. 442.22 s [really-safe-money-gen]
  7007. 442.71 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30:
  7008. 442.71 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  7009. 442.72 s [really-safe-money-gen] [ genericValidate ma,
  7010. 442.72 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7011. 442.72 s [really-safe-money-gen] declare "The account is not zero" $
  7012. 442.72 s [really-safe-money-gen] - a /= Account.zero
  7013. 442.72 s [really-safe-money-gen] + not (a /= Account.zero)
  7014. 442.72 s [really-safe-money-gen] ]
  7015. 442.72 s [really-safe-money-gen]
  7016. 442.72 s [really-safe-money-gen] -- TODO no empty currencies
  7017. 442.72 s [really-safe-money-gen]
  7018. 442.81 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8:
  7019. 442.81 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  7020. 442.81 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  7021. 442.81 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  7022. 442.81 s [really-safe-money-gen] mconcat
  7023. 442.81 s [really-safe-money-gen] - [ genericValidate ma,
  7024. 442.81 s [really-safe-money-gen] + [ genericValidate ma,
  7025. 442.81 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7026. 442.81 s [really-safe-money-gen] declare "The account is not zero" $
  7027. 442.81 s [really-safe-money-gen] a /= Account.zero
  7028. 442.81 s [really-safe-money-gen]
  7029. 443.05 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8:
  7030. 443.05 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  7031. 443.05 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  7032. 443.06 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  7033. 443.06 s [really-safe-money-gen] mconcat
  7034. 443.06 s [really-safe-money-gen] - [ genericValidate ma,
  7035. 443.06 s [really-safe-money-gen] + [ genericValidate ma,
  7036. 443.06 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7037. 443.06 s [really-safe-money-gen] declare "The account is not zero" $
  7038. 443.06 s [really-safe-money-gen] a /= Account.zero
  7039. 443.06 s [really-safe-money-gen]
  7040. 443.33 s [really-safe-money-gen] mount
  7041. 443.33 s [really-safe-money-gen]
  7042. 443.33 s [really-safe-money-gen] Tests:
  7043. 443.33 s [really-safe-money-gen]
  7044. 443.33 s [really-safe-money-gen] Money.MultiAccountSpec
  7045. 443.33 s [really-safe-money-gen] fromAccount
  7046. 443.33 s [really-safe-money-gen] produces valid amounts 3.19 ms
  7047. 443.33 s [really-safe-money-gen] passed for all of 1000 inputs.
  7048. 443.33 s [really-safe-money-gen]
  7049. 443.33 s [really-safe-money-gen]
  7050. 443.33 s [really-safe-money-gen]
  7051. 443.33 s [really-safe-money-gen] Examples: 1000
  7052. 443.33 s [really-safe-money-gen] Passed: 1
  7053. 443.33 s [really-safe-money-gen] Failed: 0
  7054. 443.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  7055. 443.33 s [really-safe-money-gen] Test suite took: 0.01 seconds
  7056. 443.33 s [really-safe-money-gen]
  7057. 443.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28:
  7058. 443.33 s [really-safe-money-gen] @@ -75,7 +75,7 @@
  7059. 443.33 s [really-safe-money-gen]
  7060. 443.33 s [really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
  7061. 443.33 s [really-safe-money-gen] fromAccount currency amount =
  7062. 443.33 s [really-safe-money-gen] - if amount == Account.zero
  7063. 443.33 s [really-safe-money-gen] + if False
  7064. 443.33 s [really-safe-money-gen] then zero
  7065. 443.33 s [really-safe-money-gen] else MultiAccount $ M.singleton currency amount
  7066. 443.33 s [really-safe-money-gen]
  7067. 443.33 s [really-safe-money-gen] Tests:
  7068. 443.33 s [really-safe-money-gen]
  7069. 443.33 s [really-safe-money-gen] Money.MultiAccountSpec
  7070. 443.33 s [really-safe-money-gen] fromAccount
  7071. 443.33 s [really-safe-money-gen] produces valid amounts 2.93 ms
  7072. 443.33 s [really-safe-money-gen] passed for all of 1000 inputs.
  7073. 443.33 s [really-safe-money-gen]
  7074. 443.33 s [really-safe-money-gen]
  7075. 443.33 s [really-safe-money-gen]
  7076. 443.33 s [really-safe-money-gen] Examples: 1000
  7077. 443.33 s [really-safe-money-gen] Passed: 1
  7078. 443.33 s [really-safe-money-gen] Failed: 0
  7079. 443.33 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  7080. 443.33 s [really-safe-money-gen] Test suite took: 0.01 seconds
  7081. 443.33 s [really-safe-money-gen]
  7082. 443.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30:
  7083. 443.33 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  7084. 443.33 s [really-safe-money-gen] [ genericValidate ma,
  7085. 443.33 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7086. 443.33 s [really-safe-money-gen] declare "The account is not zero" $
  7087. 443.33 s [really-safe-money-gen] - a /= Account.zero
  7088. 443.33 s [really-safe-money-gen] + True
  7089. 443.33 s [really-safe-money-gen] ]
  7090. 443.33 s [really-safe-money-gen]
  7091. 443.33 s [really-safe-money-gen] -- TODO no empty currencies
  7092. 443.33 s [really-safe-money-gen] Tests:
  7093. 443.33 s [really-safe-money-gen]
  7094. 443.33 s [really-safe-money-gen] Money.MultiAccountSpec
  7095. 443.33 s [really-safe-money-gen] subtractAmount
  7096. 443.33 s [really-safe-money-gen] produces valid amounts 40.02 ms
  7097. 443.33 s [really-safe-money-gen] passed for all of 1000 inputs.
  7098. 443.33 s [really-safe-money-gen] add
  7099. 443.33 s [really-safe-money-gen] produces valid amounts 67.91 ms
  7100. 443.33 s [really-safe-money-gen] passed for all of 1000 inputs.
  7101. 443.33 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  7102. 443.33 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  7103. 443.33 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 59.43 ms
  7104. 443.33 s [really-safe-money-gen] passed for all of 1000 inputs.
  7105. 443.33 s [really-safe-money-gen] sum
  7106. 443.33 s [really-safe-money-gen] produces valid amounts 99.10 ms
  7107. 443.33 s [really-safe-money-gen] passed for all of 1000 inputs.
  7108. 443.34 s [really-safe-money-gen] fromAccount
  7109. 443.34 s [really-safe-money-gen] produces valid amounts 7.06 ms
  7110. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7111. 443.34 s [really-safe-money-gen] addAccount
  7112. 443.34 s [really-safe-money-gen] produces valid amounts 37.40 ms
  7113. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7114. 443.34 s [really-safe-money-gen] subtract
  7115. 443.34 s [really-safe-money-gen] produces valid amounts 71.78 ms
  7116. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7117. 443.34 s [really-safe-money-gen] addAmount
  7118. 443.34 s [really-safe-money-gen] produces valid amounts 40.72 ms
  7119. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7120. 443.34 s [really-safe-money-gen] subtractAccount
  7121. 443.34 s [really-safe-money-gen] produces valid amounts 39.53 ms
  7122. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7123. 443.34 s [really-safe-money-gen]
  7124. 443.34 s [really-safe-money-gen]
  7125. 443.34 s [really-safe-money-gen]
  7126. 443.34 s [really-safe-money-gen] Examples: 9000
  7127. 443.34 s [really-safe-money-gen] Passed: 9
  7128. 443.34 s [really-safe-money-gen] Failed: 0
  7129. 443.34 s [really-safe-money-gen] Sum of test runtimes: 0.46 seconds
  7130. 443.34 s [really-safe-money-gen] Test suite took: 0.47 seconds
  7131. 443.34 s [really-safe-money-gen]
  7132. 443.34 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30:
  7133. 443.34 s [really-safe-money-gen] @@ -66,7 +66,7 @@
  7134. 443.34 s [really-safe-money-gen] [ genericValidate ma,
  7135. 443.34 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7136. 443.34 s [really-safe-money-gen] declare "The account is not zero" $
  7137. 443.34 s [really-safe-money-gen] - a /= Account.zero
  7138. 443.34 s [really-safe-money-gen] + False
  7139. 443.34 s [really-safe-money-gen] ]
  7140. 443.34 s [really-safe-money-gen]
  7141. 443.34 s [really-safe-money-gen] -- TODO no empty currencies
  7142. 443.34 s [really-safe-money-gen] Tests:
  7143. 443.34 s [really-safe-money-gen]
  7144. 443.34 s [really-safe-money-gen] Money.MultiAccountSpec
  7145. 443.34 s [really-safe-money-gen] subtractAmount
  7146. 443.34 s [really-safe-money-gen] produces valid amounts 38.57 ms
  7147. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7148. 443.34 s [really-safe-money-gen] add
  7149. 443.34 s [really-safe-money-gen] produces valid amounts 68.64 ms
  7150. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7151. 443.34 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  7152. 443.34 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  7153. 443.34 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 63.55 ms
  7154. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7155. 443.34 s [really-safe-money-gen] sum
  7156. 443.34 s [really-safe-money-gen] produces valid amounts 103.75 ms
  7157. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7158. 443.34 s [really-safe-money-gen] fromAccount
  7159. 443.34 s [really-safe-money-gen] produces valid amounts 8.12 ms
  7160. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7161. 443.34 s [really-safe-money-gen] addAccount
  7162. 443.34 s [really-safe-money-gen] produces valid amounts 39.57 ms
  7163. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7164. 443.34 s [really-safe-money-gen] subtract
  7165. 443.34 s [really-safe-money-gen] produces valid amounts 66.51 ms
  7166. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7167. 443.34 s [really-safe-money-gen] addAmount
  7168. 443.34 s [really-safe-money-gen] produces valid amounts 38.52 ms
  7169. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7170. 443.34 s [really-safe-money-gen] subtractAccount
  7171. 443.34 s [really-safe-money-gen] produces valid amounts 40.06 ms
  7172. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7173. 443.34 s [really-safe-money-gen]
  7174. 443.34 s [really-safe-money-gen]
  7175. 443.34 s [really-safe-money-gen]
  7176. 443.34 s [really-safe-money-gen] Examples: 9000
  7177. 443.34 s [really-safe-money-gen] Passed: 9
  7178. 443.34 s [really-safe-money-gen] Failed: 0
  7179. 443.34 s [really-safe-money-gen] Sum of test runtimes: 0.47 seconds
  7180. 443.34 s [really-safe-money-gen] Test suite took: 0.47 seconds
  7181. 443.34 s [really-safe-money-gen]
  7182. 443.34 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8:
  7183. 443.34 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  7184. 443.34 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  7185. 443.34 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  7186. 443.34 s [really-safe-money-gen] mconcat
  7187. 443.34 s [really-safe-money-gen] - [ genericValidate ma,
  7188. 443.34 s [really-safe-money-gen] + [ genericValidate ma,
  7189. 443.34 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7190. 443.34 s [really-safe-money-gen] declare "The account is not zero" $
  7191. 443.34 s [really-safe-money-gen] a /= Account.zero
  7192. 443.34 s [really-safe-money-gen] Tests:
  7193. 443.34 s [really-safe-money-gen]
  7194. 443.34 s [really-safe-money-gen] Money.MultiAccountSpec
  7195. 443.34 s [really-safe-money-gen] subtractAmount
  7196. 443.34 s [really-safe-money-gen] produces valid amounts 13.28 ms
  7197. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7198. 443.34 s [really-safe-money-gen] add
  7199. 443.34 s [really-safe-money-gen] produces valid amounts 25.61 ms
  7200. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7201. 443.34 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  7202. 443.34 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  7203. 443.34 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 2.10 ms
  7204. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7205. 443.34 s [really-safe-money-gen] sum
  7206. 443.34 s [really-safe-money-gen] produces valid amounts 50.24 ms
  7207. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7208. 443.34 s [really-safe-money-gen] zero
  7209. 443.34 s [really-safe-money-gen] is valid 0.00 ms
  7210. 443.34 s [really-safe-money-gen] fromAccount
  7211. 443.34 s [really-safe-money-gen] produces valid amounts 1.62 ms
  7212. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7213. 443.34 s [really-safe-money-gen] addAccount
  7214. 443.34 s [really-safe-money-gen] produces valid amounts 13.46 ms
  7215. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7216. 443.34 s [really-safe-money-gen] subtract
  7217. 443.34 s [really-safe-money-gen] produces valid amounts 24.85 ms
  7218. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7219. 443.34 s [really-safe-money-gen] addAmount
  7220. 443.34 s [really-safe-money-gen] produces valid amounts 13.55 ms
  7221. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7222. 443.34 s [really-safe-money-gen] subtractAccount
  7223. 443.34 s [really-safe-money-gen] produces valid amounts 12.40 ms
  7224. 443.34 s [really-safe-money-gen] passed for all of 1000 inputs.
  7225. 443.34 s [really-safe-money-gen]
  7226. 443.34 s [really-safe-money-gen]
  7227. 443.34 s [really-safe-money-gen]
  7228. 443.34 s [really-safe-money-gen] Examples: 9001
  7229. 443.34 s [really-safe-money-gen] Passed: 10
  7230. 443.34 s [really-safe-money-gen] Failed: 0
  7231. 443.34 s [really-safe-money-gen] Sum of test runtimes: 0.16 seconds
  7232. 443.34 s [really-safe-money-gen] Test suite took: 0.16 seconds
  7233. 443.34 s [really-safe-money-gen]
  7234. 443.34 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8:
  7235. 443.34 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  7236. 443.34 s [really-safe-money-gen] inTesting mutation IntLit at src/Money/Account.hs:421:32-33:
  7237. 443.34 s [really-safe-money-gen] @@ -418,7 +418,7 @@
  7238. 443.34 s [really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
  7239. 443.34 s [really-safe-money-gen] multiply factor account =
  7240. 443.34 s [really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
  7241. 443.34 s [really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
  7242. 443.34 s [really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
  7243. 443.34 s [really-safe-money-gen] (EQ, _) -> const zero
  7244. 443.34 s [really-safe-money-gen] (_, EQ) -> const zero
  7245. 443.34 s [really-safe-money-gen] (GT, GT) -> Positive
  7246. 443.34 s [really-safe-money-gen]
  7247. 443.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23:
  7248. 443.45 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  7249. 443.45 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7250. 443.45 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7251. 443.45 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  7252. 443.46 s [really-safe-money-gen] - if a >= zero
  7253. 443.46 s [really-safe-money-gen] + if True
  7254. 443.46 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7255. 443.46 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7256. 443.46 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7257. 443.46 s [really-safe-money-gen]
  7258. 443.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23:
  7259. 443.57 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  7260. 443.57 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7261. 443.57 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7262. 443.57 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  7263. 443.57 s [really-safe-money-gen] - if a >= zero
  7264. 443.57 s [really-safe-money-gen] + if False
  7265. 443.58 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7266. 443.58 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7267. 443.58 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7268. 443.58 s [really-safe-money-gen]
  7269. 443.68 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23:
  7270. 443.68 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  7271. 443.68 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7272. 443.68 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7273. 443.68 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  7274. 443.68 s [really-safe-money-gen] - if a >= zero
  7275. 443.68 s [really-safe-money-gen] + if not (a >= zero)
  7276. 443.68 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7277. 443.68 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7278. 443.69 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7279. 443.69 s [really-safe-money-gen]
  7280. 443.78 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:451:11-76:
  7281. 443.78 s [really-safe-money-gen] @@ -448,7 +448,7 @@
  7282. 443.78 s [really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
  7283. 443.78 s [really-safe-money-gen] DistributedZero -> DistributedZero
  7284. 443.78 s [really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
  7285. 443.78 s [really-safe-money-gen] - if a >= zero
  7286. 443.78 s [really-safe-money-gen] + if a >= zero
  7287. 443.78 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7288. 443.78 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7289. 443.78 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7290. 443.78 s [really-safe-money-gen]
  7291. 443.87 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23:
  7292. 443.87 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  7293. 443.87 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7294. 443.87 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7295. 443.87 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7296. 443.87 s [really-safe-money-gen] - if a >= zero
  7297. 443.87 s [really-safe-money-gen] + if True
  7298. 443.87 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  7299. 443.87 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  7300. 443.87 s [really-safe-money-gen]
  7301. 443.87 s [really-safe-money-gen]
  7302. 443.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23:
  7303. 443.98 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  7304. 443.98 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7305. 443.98 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7306. 443.98 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7307. 443.98 s [really-safe-money-gen] - if a >= zero
  7308. 443.98 s [really-safe-money-gen] + if False
  7309. 443.98 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  7310. 443.98 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  7311. 443.98 s [really-safe-money-gen]
  7312. 443.98 s [really-safe-money-gen]
  7313. 444.09 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23:
  7314. 444.09 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  7315. 444.09 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7316. 444.09 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7317. 444.09 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7318. 444.09 s [really-safe-money-gen] - if a >= zero
  7319. 444.09 s [really-safe-money-gen] + if not (a >= zero)
  7320. 444.09 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  7321. 444.09 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  7322. 444.09 s [really-safe-money-gen]
  7323. 444.09 s [really-safe-money-gen]
  7324. 444.19 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:455:11-136:
  7325. 444.19 s [really-safe-money-gen] @@ -452,7 +452,7 @@
  7326. 444.19 s [really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
  7327. 444.19 s [really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
  7328. 444.19 s [really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
  7329. 444.19 s [really-safe-money-gen] - if a >= zero
  7330. 444.19 s [really-safe-money-gen] + if a >= zero
  7331. 444.19 s [really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
  7332. 444.19 s [really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
  7333. 444.19 s [really-safe-money-gen]
  7334. 444.19 s [really-safe-money-gen]
  7335. 444.29 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18:
  7336. 444.29 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7337. 444.29 s [really-safe-money-gen] fraction rounding account f =
  7338. 444.29 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  7339. 444.29 s [really-safe-money-gen] ro =
  7340. 444.29 s [really-safe-money-gen] - if f >= 0
  7341. 444.29 s [really-safe-money-gen] + if f >= 1
  7342. 444.29 s [really-safe-money-gen] then rounding
  7343. 444.29 s [really-safe-money-gen] else case rounding of
  7344. 444.29 s [really-safe-money-gen] RoundUp -> RoundDown
  7345. 444.29 s [really-safe-money-gen]
  7346. 444.38 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18:
  7347. 444.38 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7348. 444.38 s [really-safe-money-gen] fraction rounding account f =
  7349. 444.38 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  7350. 444.38 s [really-safe-money-gen] ro =
  7351. 444.38 s [really-safe-money-gen] - if f >= 0
  7352. 444.38 s [really-safe-money-gen] + if True
  7353. 444.38 s [really-safe-money-gen] then rounding
  7354. 444.38 s [really-safe-money-gen] else case rounding of
  7355. 444.38 s [really-safe-money-gen] RoundUp -> RoundDown
  7356. 444.38 s [really-safe-money-gen]
  7357. 444.77 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18:
  7358. 444.77 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7359. 444.77 s [really-safe-money-gen] fraction rounding account f =
  7360. 444.77 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  7361. 444.77 s [really-safe-money-gen] ro =
  7362. 444.77 s [really-safe-money-gen] - if f >= 0
  7363. 444.77 s [really-safe-money-gen] + if False
  7364. 444.78 s [really-safe-money-gen] then rounding
  7365. 444.78 s [really-safe-money-gen] else case rounding of
  7366. 444.78 s [really-safe-money-gen] RoundUp -> RoundDown
  7367. 444.78 s [really-safe-money-gen]
  7368. 445.21 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18:
  7369. 445.21 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7370. 445.21 s [really-safe-money-gen] fraction rounding account f =
  7371. 445.21 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  7372. 445.21 s [really-safe-money-gen] ro =
  7373. 445.21 s [really-safe-money-gen] - if f >= 0
  7374. 445.21 s [really-safe-money-gen] + if not (f >= 0)
  7375. 445.21 s [really-safe-money-gen] then rounding
  7376. 445.21 s [really-safe-money-gen] else case rounding of
  7377. 445.21 s [really-safe-money-gen] RoundUp -> RoundDown
  7378. 445.21 s [really-safe-money-gen]
  7379. 445.61 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:495:9-41:
  7380. 445.61 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7381. 445.61 s [really-safe-money-gen] fraction rounding account f =
  7382. 445.61 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  7383. 445.61 s [really-safe-money-gen] ro =
  7384. 445.61 s [really-safe-money-gen] - if f >= 0
  7385. 445.61 s [really-safe-money-gen] + if f >= 0
  7386. 445.61 s [really-safe-money-gen] then rounding
  7387. 445.61 s [really-safe-money-gen] else case rounding of
  7388. 445.61 s [really-safe-money-gen] RoundUp -> RoundDown
  7389. 445.61 s [really-safe-money-gen]
  7390. 446.01 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16:
  7391. 446.01 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  7392. 446.01 s [really-safe-money-gen] RoundNearest -> RoundNearest
  7393. 446.01 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  7394. 446.01 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  7395. 446.01 s [really-safe-money-gen] - in if f >= 0
  7396. 446.01 s [really-safe-money-gen] + in if f >= 1
  7397. 446.01 s [really-safe-money-gen] then (ma, r)
  7398. 446.01 s [really-safe-money-gen] else (negate <$> ma, -r)
  7399. 446.01 s [really-safe-money-gen]
  7400. 446.01 s [really-safe-money-gen]
  7401. 446.11 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16:
  7402. 446.11 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  7403. 446.11 s [really-safe-money-gen] RoundNearest -> RoundNearest
  7404. 446.11 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  7405. 446.11 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  7406. 446.11 s [really-safe-money-gen] - in if f >= 0
  7407. 446.11 s [really-safe-money-gen] + in if True
  7408. 446.11 s [really-safe-money-gen] then (ma, r)
  7409. 446.11 s [really-safe-money-gen] else (negate <$> ma, -r)
  7410. 446.11 s [really-safe-money-gen]
  7411. 446.11 s [really-safe-money-gen]
  7412. 446.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16:
  7413. 446.50 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  7414. 446.50 s [really-safe-money-gen] RoundNearest -> RoundNearest
  7415. 446.50 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  7416. 446.50 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  7417. 446.50 s [really-safe-money-gen] - in if f >= 0
  7418. 446.50 s [really-safe-money-gen] + in if False
  7419. 446.50 s [really-safe-money-gen] then (ma, r)
  7420. 446.50 s [really-safe-money-gen] else (negate <$> ma, -r)
  7421. 446.50 s [really-safe-money-gen]
  7422. 446.50 s [really-safe-money-gen]
  7423. 446.91 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16:
  7424. 446.91 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  7425. 446.91 s [really-safe-money-gen] RoundNearest -> RoundNearest
  7426. 446.91 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  7427. 446.91 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  7428. 446.91 s [really-safe-money-gen] - in if f >= 0
  7429. 446.91 s [really-safe-money-gen] + in if not (f >= 0)
  7430. 446.91 s [really-safe-money-gen] then (ma, r)
  7431. 446.91 s [really-safe-money-gen] else (negate <$> ma, -r)
  7432. 446.91 s [really-safe-money-gen]
  7433. 446.91 s [really-safe-money-gen]
  7434. 447.00 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:503:7-33:
  7435. 447.00 s [really-safe-money-gen] @@ -500,7 +500,7 @@
  7436. 447.00 s [really-safe-money-gen] RoundNearest -> RoundNearest
  7437. 447.00 s [really-safe-money-gen] (ma, ar) = fractionRatio ro account af
  7438. 447.00 s [really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
  7439. 447.00 s [really-safe-money-gen] - in if f >= 0
  7440. 447.00 s [really-safe-money-gen] + in if f >= 0
  7441. 447.00 s [really-safe-money-gen] then (ma, r)
  7442. 447.00 s [really-safe-money-gen] else (negate <$> ma, -r)
  7443. 447.00 s [really-safe-money-gen]
  7444. 447.00 s [really-safe-money-gen]
  7445. 447.09 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20:
  7446. 447.09 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  7447. 447.09 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7448. 447.09 s [really-safe-money-gen] fromRational quantisationFactor r =
  7449. 447.09 s [really-safe-money-gen] let r' = Prelude.abs r
  7450. 447.09 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  7451. 447.09 s [really-safe-money-gen] + f = if r >= 1 then Positive else Negative
  7452. 447.09 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  7453. 447.09 s [really-safe-money-gen]
  7454. 447.09 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  7455. 447.09 s [really-safe-money-gen]
  7456. 447.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20:
  7457. 447.19 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  7458. 447.27 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7459. 447.27 s [really-safe-money-gen] fromRational quantisationFactor r =
  7460. 447.27 s [really-safe-money-gen] let r' = Prelude.abs r
  7461. 447.27 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  7462. 447.27 s [really-safe-money-gen] + f = if True then Positive else Negative
  7463. 447.27 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  7464. 447.27 s [really-safe-money-gen]
  7465. 447.27 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  7466. 447.27 s [really-safe-money-gen]
  7467. 447.31 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20:
  7468. 447.31 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  7469. 447.31 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7470. 447.31 s [really-safe-money-gen] fromRational quantisationFactor r =
  7471. 447.31 s [really-safe-money-gen] let r' = Prelude.abs r
  7472. 447.31 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  7473. 447.31 s [really-safe-money-gen] + f = if False then Positive else Negative
  7474. 447.31 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  7475. 447.31 s [really-safe-money-gen]
  7476. 447.31 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  7477. 447.31 s [really-safe-money-gen]
  7478. 447.41 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20:
  7479. 447.41 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  7480. 447.41 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7481. 447.41 s [really-safe-money-gen] fromRational quantisationFactor r =
  7482. 447.41 s [really-safe-money-gen] let r' = Prelude.abs r
  7483. 447.41 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  7484. 447.41 s [really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
  7485. 447.41 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  7486. 447.42 s [really-safe-money-gen]
  7487. 447.42 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  7488. 447.42 s [really-safe-money-gen]
  7489. 447.52 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:233:11-48:
  7490. 447.52 s [really-safe-money-gen] @@ -230,7 +230,7 @@
  7491. 447.52 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
  7492. 447.52 s [really-safe-money-gen] fromRational quantisationFactor r =
  7493. 447.52 s [really-safe-money-gen] let r' = Prelude.abs r
  7494. 447.52 s [really-safe-money-gen] - f = if r >= 0 then Positive else Negative
  7495. 447.52 s [really-safe-money-gen] + f = if r >= 0 then Positive else Negative
  7496. 447.52 s [really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
  7497. 447.52 s [really-safe-money-gen]
  7498. 447.52 s [really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
  7499. 447.52 s [really-safe-money-gen]
  7500. 447.63 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20:
  7501. 447.63 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  7502. 447.63 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7503. 447.63 s [really-safe-money-gen] fromDouble quantisationFactor d =
  7504. 447.63 s [really-safe-money-gen] let d' = Prelude.abs d
  7505. 447.63 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  7506. 447.63 s [really-safe-money-gen] + f = if d >= 1 then Positive else Negative
  7507. 447.63 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  7508. 447.63 s [really-safe-money-gen]
  7509. 447.63 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  7510. 447.63 s [really-safe-money-gen]
  7511. 447.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20:
  7512. 447.76 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  7513. 447.76 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7514. 447.76 s [really-safe-money-gen] fromDouble quantisationFactor d =
  7515. 447.76 s [really-safe-money-gen] let d' = Prelude.abs d
  7516. 447.76 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  7517. 447.76 s [really-safe-money-gen] + f = if True then Positive else Negative
  7518. 447.76 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  7519. 447.76 s [really-safe-money-gen]
  7520. 447.76 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  7521. 447.76 s [really-safe-money-gen]
  7522. 447.90 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20:
  7523. 447.90 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  7524. 447.90 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7525. 447.90 s [really-safe-money-gen] fromDouble quantisationFactor d =
  7526. 447.90 s [really-safe-money-gen] let d' = Prelude.abs d
  7527. 447.90 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  7528. 447.90 s [really-safe-money-gen] + f = if False then Positive else Negative
  7529. 447.90 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  7530. 447.90 s [really-safe-money-gen]
  7531. 447.90 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  7532. 447.90 s [really-safe-money-gen]
  7533. 448.05 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20:
  7534. 448.05 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  7535. 448.05 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7536. 448.05 s [really-safe-money-gen] fromDouble quantisationFactor d =
  7537. 448.05 s [really-safe-money-gen] let d' = Prelude.abs d
  7538. 448.05 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  7539. 448.05 s [really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
  7540. 448.05 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  7541. 448.05 s [really-safe-money-gen]
  7542. 448.05 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  7543. 448.05 s [really-safe-money-gen]
  7544. 448.20 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:197:11-48:
  7545. 448.20 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  7546. 448.20 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7547. 448.20 s [really-safe-money-gen] fromDouble quantisationFactor d =
  7548. 448.20 s [really-safe-money-gen] let d' = Prelude.abs d
  7549. 448.20 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  7550. 448.20 s [really-safe-money-gen] + f = if d >= 0 then Positive else Negative
  7551. 448.20 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  7552. 448.20 s [really-safe-money-gen]
  7553. 448.20 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  7554. 448.20 s [really-safe-money-gen]
  7555. 448.36 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23:
  7556. 448.36 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7557. 448.36 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7558. 448.36 s [really-safe-money-gen] a :: Integer
  7559. 448.36 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  7560. 448.36 s [really-safe-money-gen] - in if a > maxBoundI
  7561. 448.36 s [really-safe-money-gen] + in if True
  7562. 448.36 s [really-safe-money-gen] then Nothing
  7563. 448.36 s [really-safe-money-gen] else
  7564. 448.36 s [really-safe-money-gen] let w :: Word64
  7565. 448.36 s [really-safe-money-gen]
  7566. 448.47 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23:
  7567. 448.47 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7568. 448.47 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7569. 448.47 s [really-safe-money-gen] a :: Integer
  7570. 448.48 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  7571. 448.48 s [really-safe-money-gen] - in if a > maxBoundI
  7572. 448.48 s [really-safe-money-gen] + in if False
  7573. 448.48 s [really-safe-money-gen] then Nothing
  7574. 448.48 s [really-safe-money-gen] else
  7575. 448.48 s [really-safe-money-gen] let w :: Word64
  7576. 448.48 s [really-safe-money-gen]
  7577. 448.58 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23:
  7578. 448.58 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7579. 448.58 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7580. 448.58 s [really-safe-money-gen] a :: Integer
  7581. 448.58 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  7582. 448.58 s [really-safe-money-gen] - in if a > maxBoundI
  7583. 448.58 s [really-safe-money-gen] + in if not (a > maxBoundI)
  7584. 448.58 s [really-safe-money-gen] then Nothing
  7585. 448.58 s [really-safe-money-gen] else
  7586. 448.58 s [really-safe-money-gen] let w :: Word64
  7587. 448.58 s [really-safe-money-gen]
  7588. 448.68 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26:
  7589. 448.68 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  7590. 448.68 s [really-safe-money-gen] amount :: Amount
  7591. 448.68 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  7592. 448.68 s [really-safe-money-gen] in Just $
  7593. 448.68 s [really-safe-money-gen] - if i >= 0
  7594. 448.68 s [really-safe-money-gen] + if i >= 1
  7595. 448.68 s [really-safe-money-gen] then Positive amount
  7596. 448.68 s [really-safe-money-gen] else Negative amount
  7597. 448.68 s [really-safe-money-gen]
  7598. 448.68 s [really-safe-money-gen]
  7599. 448.83 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26:
  7600. 448.83 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  7601. 448.83 s [really-safe-money-gen] amount :: Amount
  7602. 448.83 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  7603. 448.83 s [really-safe-money-gen] in Just $
  7604. 448.83 s [really-safe-money-gen] - if i >= 0
  7605. 448.83 s [really-safe-money-gen] + if True
  7606. 448.83 s [really-safe-money-gen] then Positive amount
  7607. 448.83 s [really-safe-money-gen] else Negative amount
  7608. 448.83 s [really-safe-money-gen]
  7609. 448.83 s [really-safe-money-gen]
  7610. 448.94 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26:
  7611. 448.94 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  7612. 448.94 s [really-safe-money-gen] amount :: Amount
  7613. 448.94 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  7614. 448.94 s [really-safe-money-gen] in Just $
  7615. 448.94 s [really-safe-money-gen] - if i >= 0
  7616. 448.94 s [really-safe-money-gen] + if False
  7617. 448.94 s [really-safe-money-gen] then Positive amount
  7618. 448.94 s [really-safe-money-gen] else Negative amount
  7619. 448.94 s [really-safe-money-gen]
  7620. 448.94 s [really-safe-money-gen]
  7621. 449.04 s [really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26:
  7622. 449.04 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  7623. 449.04 s [really-safe-money-gen] amount :: Amount
  7624. 449.04 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  7625. 449.04 s [really-safe-money-gen] in Just $
  7626. 449.04 s [really-safe-money-gen] - if i >= 0
  7627. 449.04 s [really-safe-money-gen] + if not (i >= 0)
  7628. 449.04 s [really-safe-money-gen] then Positive amount
  7629. 449.04 s [really-safe-money-gen] else Negative amount
  7630. 449.04 s [really-safe-money-gen]
  7631. 449.04 s [really-safe-money-gen]
  7632. 449.14 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:131:17-39:
  7633. 449.14 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  7634. 449.14 s [really-safe-money-gen] amount :: Amount
  7635. 449.14 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  7636. 449.14 s [really-safe-money-gen] in Just $
  7637. 449.14 s [really-safe-money-gen] - if i >= 0
  7638. 449.14 s [really-safe-money-gen] + if i >= 0
  7639. 449.14 s [really-safe-money-gen] then Positive amount
  7640. 449.14 s [really-safe-money-gen] else Negative amount
  7641. 449.14 s [really-safe-money-gen]
  7642. 449.14 s [really-safe-money-gen]
  7643. 449.24 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:123:7-39:
  7644. 449.24 s [really-safe-money-gen] @@ -120,7 +120,7 @@
  7645. 449.24 s [really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
  7646. 449.24 s [really-safe-money-gen] a :: Integer
  7647. 449.24 s [really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
  7648. 449.24 s [really-safe-money-gen] - in if a > maxBoundI
  7649. 449.24 s [really-safe-money-gen] + in if a > maxBoundI
  7650. 449.24 s [really-safe-money-gen] then Nothing
  7651. 449.24 s [really-safe-money-gen] else
  7652. 449.24 s [really-safe-money-gen] let w :: Word64
  7653. 449.24 s [really-safe-money-gen]
  7654. 449.35 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38:
  7655. 449.35 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  7656. 449.35 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  7657. 449.35 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  7658. 449.35 s [really-safe-money-gen] let decimals :: Int
  7659. 449.35 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  7660. 449.35 s [really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  7661. 449.35 s [really-safe-money-gen] in printf "%%0.%df" decimals
  7662. 449.35 s [really-safe-money-gen]
  7663. 449.35 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7664. 449.35 s [really-safe-money-gen]
  7665. 449.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38:
  7666. 449.51 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  7667. 449.51 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  7668. 449.51 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  7669. 449.51 s [really-safe-money-gen] let decimals :: Int
  7670. 449.51 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  7671. 449.51 s [really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  7672. 449.51 s [really-safe-money-gen] in printf "%%0.%df" decimals
  7673. 449.51 s [really-safe-money-gen]
  7674. 449.51 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7675. 449.51 s [really-safe-money-gen]
  7676. 449.68 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38:
  7677. 449.68 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  7678. 449.68 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  7679. 449.68 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  7680. 449.68 s [really-safe-money-gen] let decimals :: Int
  7681. 449.68 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  7682. 449.68 s [really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  7683. 449.68 s [really-safe-money-gen] in printf "%%0.%df" decimals
  7684. 449.68 s [really-safe-money-gen]
  7685. 449.68 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7686. 449.68 s [really-safe-money-gen]
  7687. 449.88 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19:
  7688. 449.88 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  7689. 449.88 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  7690. 449.88 s [really-safe-money-gen] smallerChunk :: Amount
  7691. 449.88 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  7692. 449.88 s [really-safe-money-gen] - in if rest == 0
  7693. 449.88 s [really-safe-money-gen] + in if rest == 1
  7694. 449.88 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  7695. 449.88 s [really-safe-money-gen] else
  7696. 449.88 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  7697. 449.88 s [really-safe-money-gen]
  7698. 449.97 s [really-safe-money-gen] stance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
  7699. 449.97 s [really-safe-money-gen] validate ma@(MultiAccount m) =
  7700. 449.97 s [really-safe-money-gen] mconcat
  7701. 449.97 s [really-safe-money-gen] - [ genericValidate ma,
  7702. 449.97 s [really-safe-money-gen] + [ genericValidate ma,
  7703. 449.97 s [really-safe-money-gen] decorateMap m $ \_ a ->
  7704. 449.97 s [really-safe-money-gen] declare "The account is not zero" $
  7705. 449.97 s [really-safe-money-gen] a /= Account.zero
  7706. 449.97 s [really-safe-money-gen] Tests:
  7707. 449.97 s [really-safe-money-gen]
  7708. 449.97 s [really-safe-money-gen] Money.MultiAccountSpec
  7709. 449.97 s [really-safe-money-gen] subtractAmount
  7710. 449.97 s [really-safe-money-gen] produces valid amounts 12.23 ms
  7711. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7712. 449.97 s [really-safe-money-gen] add
  7713. 449.97 s [really-safe-money-gen] produces valid amounts 25.32 ms
  7714. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7715. 449.97 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  7716. 449.97 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  7717. 449.97 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 2.57 ms
  7718. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7719. 449.97 s [really-safe-money-gen] sum
  7720. 449.97 s [really-safe-money-gen] produces valid amounts 61.53 ms
  7721. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7722. 449.97 s [really-safe-money-gen] zero
  7723. 449.97 s [really-safe-money-gen] is valid 0.01 ms
  7724. 449.97 s [really-safe-money-gen] fromAccount
  7725. 449.97 s [really-safe-money-gen] produces valid amounts 1.59 ms
  7726. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7727. 449.97 s [really-safe-money-gen] addAccount
  7728. 449.97 s [really-safe-money-gen] produces valid amounts 15.25 ms
  7729. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7730. 449.97 s [really-safe-money-gen] subtract
  7731. 449.97 s [really-safe-money-gen] produces valid amounts 30.74 ms
  7732. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7733. 449.97 s [really-safe-money-gen] addAmount
  7734. 449.97 s [really-safe-money-gen] produces valid amounts 15.58 ms
  7735. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7736. 449.97 s [really-safe-money-gen] subtractAccount
  7737. 449.97 s [really-safe-money-gen] produces valid amounts 14.23 ms
  7738. 449.97 s [really-safe-money-gen] passed for all of 1000 inputs.
  7739. 449.97 s [really-safe-money-gen]
  7740. 449.97 s [really-safe-money-gen]
  7741. 449.97 s [really-safe-money-gen]
  7742. 449.97 s [really-safe-money-gen] Examples: 9001
  7743. 449.97 s [really-safe-money-gen] Passed: 10
  7744. 449.97 s [really-safe-money-gen] Failed: 0
  7745. 449.97 s [really-safe-money-gen] Sum of test runtimes: 0.18 seconds
  7746. 449.97 s [really-safe-money-gen] Test suite took: 0.18 seconds
  7747. 449.97 s [really-safe-money-gen]
  7748. 449.97 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18:
  7749. 449.97 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  7750. 449.97 s [really-safe-money-gen] fraction rounding account f =
  7751. 449.97 s [really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
  7752. 449.97 s [really-safe-money-gen] ro =
  7753. 449.97 s [really-safe-money-gen] - if f >= 0
  7754. 449.97 s [really-safe-money-gen] + if f >= 1
  7755. 449.97 s [really-safe-money-gen] then rounding
  7756. 449.97 s [really-safe-money-gen] else case rounding of
  7757. 449.97 s [really-safe-money-gen] RoundUp -> RoundDown
  7758. 449.97 s [really-safe-money-gen] Tests:
  7759. 449.97 s [really-safe-money-gen]
  7760. 449.97 s [really-safe-money-gen] Money.AccountSpec
  7761. 449.97 s [really-safe-money-gen] fraction
  7762. 449.97 s [really-safe-money-gen] Correctly fractions 101 with 1 % 100 0.03 ms
  7763. 449.97 s [really-safe-money-gen]
  7764. 449.97 s [really-safe-money-gen]
  7765. 449.97 s [really-safe-money-gen]
  7766. 449.97 s [really-safe-money-gen] Passed: 1
  7767. 449.97 s [really-safe-money-gen] Failed: 0
  7768. 449.97 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  7769. 449.97 s [really-safe-money-gen] Test suite took: 0.00 seconds
  7770. 449.97 s [really-safe-money-gen]
  7771. 449.97 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20:
  7772. 449.97 s [really-safe-money-gen] @@ -194,7 +194,7 @@
  7773. 449.97 s [really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
  7774. 449.97 s [really-safe-money-gen] fromDouble quantisationFactor d =
  7775. 449.97 s [really-safe-money-gen] let d' = Prelude.abs d
  7776. 449.97 s [really-safe-money-gen] - f = if d >= 0 then Positive else Negative
  7777. 449.97 s [really-safe-money-gen] + f = if d >= 1 then Positive else Negative
  7778. 449.97 s [really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
  7779. 449.97 s [really-safe-money-gen]
  7780. 449.97 s [really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
  7781. 449.97 s [really-safe-money-gen] Tests:
  7782. 449.97 s [really-safe-money-gen]
  7783. 449.97 s [really-safe-money-gen] Money.AccountSpec
  7784. 449.97 s [really-safe-money-gen] fromDouble
  7785. 449.97 s [really-safe-money-gen] produces valid rational 44.76 ms
  7786. 449.97 s [really-safe-money-gen] passed for all of 10000 inputs.
  7787. 449.97 s [really-safe-money-gen]
  7788. 449.97 s [really-safe-money-gen]
  7789. 449.97 s [really-safe-money-gen]
  7790. 449.97 s [really-safe-money-gen] Examples: 10000
  7791. 449.97 s [really-safe-money-gen] Passed: 1
  7792. 449.97 s [really-safe-money-gen] Failed: 0
  7793. 449.97 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  7794. 449.97 s [really-safe-money-gen] Test suite took: 0.05 seconds
  7795. 449.97 s [really-safe-money-gen]
  7796. 449.97 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26:
  7797. 449.97 s [really-safe-money-gen] @@ -128,7 +128,7 @@
  7798. 449.97 s [really-safe-money-gen] amount :: Amount
  7799. 449.97 s [really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
  7800. 449.97 s [really-safe-money-gen] in Just $
  7801. 449.97 s [really-safe-money-gen] - if i >= 0
  7802. 449.97 s [really-safe-money-gen] + if i >= 1
  7803. 449.97 s [really-safe-money-gen] then Positive amount
  7804. 449.97 s [really-safe-money-gen] else Negative amount
  7805. 449.97 s [really-safe-money-gen]
  7806. 449.97 s [really-safe-money-gen] Tests:
  7807. 449.97 s [really-safe-money-gen]
  7808. 449.97 s [really-safe-money-gen] Money.AccountSpec
  7809. 449.97 s [really-safe-money-gen] distribute
  7810. 449.97 s [really-safe-money-gen] produces results that sum up to the greater whole 64.91 ms
  7811. 449.97 s [really-safe-money-gen] passed for all of 10000 inputs.
  7812. 449.97 s [really-safe-money-gen]
  7813. 449.97 s [really-safe-money-gen]
  7814. 449.97 s [really-safe-money-gen]
  7815. 449.97 s [really-safe-money-gen] Examples: 10000
  7816. 449.97 s [really-safe-money-gen] Passed: 1
  7817. 449.97 s [really-safe-money-gen] Failed: 0
  7818. 449.97 s [really-safe-money-gen] Sum of test runtimes: 0.06 seconds
  7819. 449.97 s [really-safe-money-gen] Test suite took: 0.07 seconds
  7820. 449.97 s [really-safe-money-gen]
  7821. 449.97 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38:
  7822. 449.97 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  7823. 449.97 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  7824. 449.97 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  7825. 449.97 s [really-safe-money-gen] let decimals :: Int
  7826. 449.97 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  7827. 449.97 s [really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
  7828. 449.97 s [really-safe-money-gen] in printf "%%0.%df" decimals
  7829. 449.97 s [really-safe-money-gen]
  7830. 449.97 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7831. 449.97 s [really-safe-money-gen] Tests:
  7832. 449.98 s [really-safe-money-gen]
  7833. 449.98 s [really-safe-money-gen] Money.AccountSpec
  7834. 449.98 s [really-safe-money-gen] format
  7835. 449.98 s [really-safe-money-gen] produces valid strings 74.95 ms
  7836. 449.98 s [really-safe-money-gen] passed for all of 10000 inputs.
  7837. 449.98 s [really-safe-money-gen]
  7838. 449.98 s [really-safe-money-gen]
  7839. 449.98 s [really-safe-money-gen]
  7840. 449.98 s [really-safe-money-gen] Examples: 10000
  7841. 449.98 s [really-safe-money-gen] Passed: 1
  7842. 449.98 s [really-safe-money-gen] Failed: 0
  7843. 449.98 s [really-safe-money-gen] Sum of test runtimes: 0.07 seconds
  7844. 449.98 s [really-safe-money-gen] Test suite took: 0.08 seconds
  7845. 449.98 s [really-safe-money-gen]
  7846. 449.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38:
  7847. 449.98 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  7848. 449.98 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  7849. 449.98 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  7850. 449.98 s [really-safe-money-gen] let decimals :: Int
  7851. 449.98 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  7852. 449.98 s [really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
  7853. 449.98 s [really-safe-money-gen] in printf "%%0.%df" decimals
  7854. 449.98 s [really-safe-money-gen]
  7855. 449.98 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7856. 449.98 s [really-safe-money-gen] Tests:
  7857. 449.98 s [really-safe-money-gen]
  7858. 449.98 s [really-safe-money-gen] Money.AccountSpec
  7859. 449.98 s [really-safe-money-gen] format
  7860. 449.98 s [really-safe-money-gen] produces valid strings 78.45 ms
  7861. 449.98 s [really-safe-money-gen] passed for all of 10000 inputs.
  7862. 449.98 s [really-safe-money-gen]
  7863. 449.98 s [really-safe-money-gen]
  7864. 449.98 s [really-safe-money-gen]
  7865. 449.98 s [really-safe-money-gen] Examples: 10000
  7866. 449.98 s [really-safe-money-gen] Passed: 1
  7867. 449.98 s [really-safe-money-gen] Failed: 0
  7868. 449.98 s [really-safe-money-gen] Sum of test runtimes: 0.08 seconds
  7869. 449.98 s [really-safe-money-gen] Test suite took: 0.08 seconds
  7870. 449.98 s [really-safe-money-gen]
  7871. 449.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38:
  7872. 449.98 s [really-safe-money-gen] @@ -798,7 +798,7 @@
  7873. 449.98 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
  7874. 449.98 s [really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
  7875. 449.98 s [really-safe-money-gen] let decimals :: Int
  7876. 449.98 s [really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
  7877. 449.98 s [really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
  7878. 449.98 s [really-safe-money-gen] in printf "%%0.%df" decimals
  7879. 449.98 s [really-safe-money-gen]
  7880. 449.98 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  7881. 449.98 s [really-safe-money-gen] Tests:
  7882. 449.98 s [really-safe-money-gen]
  7883. 449.98 s [really-safe-money-gen] Money.AccountSpec
  7884. 449.98 s [really-safe-money-gen] format
  7885. 449.98 s [really-safe-money-gen] produces valid strings 86.76 ms
  7886. 449.98 s [really-safe-money-gen] passed for all of 10000 inputs.
  7887. 449.98 s [really-safe-money-gen]
  7888. 449.98 s [really-safe-money-gen]
  7889. 449.98 s [really-safe-money-gen]
  7890. 449.98 s [really-safe-money-gen] Examples: 10000
  7891. 449.98 s [really-safe-money-gen] Passed: 1
  7892. 449.98 s [really-safe-money-gen] Failed: 0
  7893. 449.98 s [really-safe-money-gen] Sum of test runtimes: 0.09 seconds
  7894. 449.98 s [really-safe-money-gen] Test suite took: 0.09 seconds
  7895. 449.98 s [really-safe-money-gen]
  7896. 449.98 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19:
  7897. 449.98 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  7898. 449.98 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  7899. 449.98 s [really-safe-money-gen] smallerChunk :: Amount
  7900. 449.98 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  7901. 449.98 s [really-safe-money-gen] - in if rest == 0
  7902. 449.98 s [really-safe-money-gen] + in if rest == 1
  7903. 449.98 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  7904. 449.98 s [really-safe-money-gen] else
  7905. 449.98 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  7906. 449.98 s [really-safe-money-gen] Tests:
  7907. 449.98 s [really-safe-money-gen]
  7908. 449.98 s [really-safe-money-gen] Money.AccountSpec
  7909. 449.98 s [really-safe-money-gen] distribute
  7910. 449.98 s [really-safe-money-gen] correctly distributes 5 into 3 0.06 ms
  7911. 449.98 s [really-safe-money-gen]
  7912. 449.98 s [really-safe-money-gen]
  7913. 449.98 s [really-safe-money-gen]
  7914. 449.98 s [really-safe-money-gen] Passed: 1
  7915. 449.98 s [really-safe-money-gen] Failed: 0
  7916. 449.98 s [really-safe-money-gen] Sum of test runtimes: 0.00 secoTesting mutation ConstBool at src/Money/Amount.hs:569:10-19:
  7917. 449.98 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  7918. 449.98 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  7919. 449.98 s [really-safe-money-gen] smallerChunk :: Amount
  7920. 449.98 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  7921. 449.98 s [really-safe-money-gen] - in if rest == 0
  7922. 449.98 s [really-safe-money-gen] + in if True
  7923. 449.98 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  7924. 449.98 s [really-safe-money-gen] else
  7925. 449.98 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  7926. 449.98 s [really-safe-money-gen]
  7927. 450.06 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19:
  7928. 450.06 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  7929. 450.06 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  7930. 450.06 s [really-safe-money-gen] smallerChunk :: Amount
  7931. 450.06 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  7932. 450.06 s [really-safe-money-gen] - in if rest == 0
  7933. 450.06 s [really-safe-money-gen] + in if False
  7934. 450.06 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  7935. 450.06 s [really-safe-money-gen] else
  7936. 450.06 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  7937. 450.06 s [really-safe-money-gen]
  7938. 450.16 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19:
  7939. 450.16 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  7940. 450.16 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  7941. 450.16 s [really-safe-money-gen] smallerChunk :: Amount
  7942. 450.16 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  7943. 450.16 s [really-safe-money-gen] - in if rest == 0
  7944. 450.16 s [really-safe-money-gen] + in if not (rest == 0)
  7945. 450.16 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  7946. 450.16 s [really-safe-money-gen] else
  7947. 450.16 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  7948. 450.16 s [really-safe-money-gen]
  7949. 450.27 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:569:7-29:
  7950. 450.27 s [really-safe-money-gen] @@ -566,7 +566,7 @@
  7951. 450.27 s [really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
  7952. 450.27 s [really-safe-money-gen] smallerChunk :: Amount
  7953. 450.27 s [really-safe-money-gen] smallerChunk = Amount smallerChunkSize
  7954. 450.27 s [really-safe-money-gen] - in if rest == 0
  7955. 450.27 s [really-safe-money-gen] + in if rest == 0
  7956. 450.27 s [really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
  7957. 450.27 s [really-safe-money-gen] else
  7958. 450.27 s [really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
  7959. 450.27 s [really-safe-money-gen]
  7960. 450.37 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23:
  7961. 450.37 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  7962. 450.37 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  7963. 450.37 s [really-safe-money-gen] r :: Integer
  7964. 450.37 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  7965. 450.37 s [really-safe-money-gen] - in if r > maxBoundI
  7966. 450.37 s [really-safe-money-gen] + in if True
  7967. 450.37 s [really-safe-money-gen] then Nothing
  7968. 450.37 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7969. 450.37 s [really-safe-money-gen]
  7970. 450.37 s [really-safe-money-gen]
  7971. 450.49 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23:
  7972. 450.49 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  7973. 450.49 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  7974. 450.49 s [really-safe-money-gen] r :: Integer
  7975. 450.49 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  7976. 450.49 s [really-safe-money-gen] - in if r > maxBoundI
  7977. 450.49 s [really-safe-money-gen] + in if False
  7978. 450.50 s [really-safe-money-gen] then Nothing
  7979. 450.50 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7980. 450.50 s [really-safe-money-gen]
  7981. 450.50 s [really-safe-money-gen]
  7982. 450.61 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23:
  7983. 450.61 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  7984. 450.61 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  7985. 450.61 s [really-safe-money-gen] r :: Integer
  7986. 450.61 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  7987. 450.61 s [really-safe-money-gen] - in if r > maxBoundI
  7988. 450.61 s [really-safe-money-gen] + in if not (r > maxBoundI)
  7989. 450.61 s [really-safe-money-gen] then Nothing
  7990. 450.62 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  7991. 450.62 s [really-safe-money-gen]
  7992. 450.62 s [really-safe-money-gen]
  7993. 450.74 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:544:7-66:
  7994. 450.74 s [really-safe-money-gen] @@ -541,7 +541,7 @@
  7995. 450.74 s [really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
  7996. 450.74 s [really-safe-money-gen] r :: Integer
  7997. 450.74 s [really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
  7998. 450.74 s [really-safe-money-gen] - in if r > maxBoundI
  7999. 450.74 s [really-safe-money-gen] + in if r > maxBoundI
  8000. 450.74 s [really-safe-money-gen] then Nothing
  8001. 450.74 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8002. 450.74 s [really-safe-money-gen]
  8003. 450.74 s [really-safe-money-gen]
  8004. 450.86 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15:
  8005. 450.86 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8006. 450.86 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8007. 450.86 s [really-safe-money-gen] r :: Integer
  8008. 450.86 s [really-safe-money-gen] r = i1 - i2
  8009. 450.86 s [really-safe-money-gen] - in if r < 0
  8010. 450.86 s [really-safe-money-gen] + in if r < 1
  8011. 450.86 s [really-safe-money-gen] then Nothing
  8012. 450.86 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8013. 450.86 s [really-safe-money-gen]
  8014. 450.86 s [really-safe-money-gen]
  8015. 450.96 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15:
  8016. 450.96 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8017. 450.96 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8018. 450.96 s [really-safe-money-gen] r :: Integer
  8019. 450.96 s [really-safe-money-gen] r = i1 - i2
  8020. 450.96 s [really-safe-money-gen] - in if r < 0
  8021. 450.96 s [really-safe-money-gen] + in if True
  8022. 450.96 s [really-safe-money-gen] then Nothing
  8023. 450.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8024. 450.96 s [really-safe-money-gen]
  8025. 450.96 s [really-safe-money-gen]
  8026. 451.12 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15:
  8027. 451.12 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8028. 451.12 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8029. 451.12 s [really-safe-money-gen] r :: Integer
  8030. 451.12 s [really-safe-money-gen] r = i1 - i2
  8031. 451.12 s [really-safe-money-gen] - in if r < 0
  8032. 451.12 s [really-safe-money-gen] + in if False
  8033. 451.12 s [really-safe-money-gen] then Nothing
  8034. 451.12 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8035. 451.12 s [really-safe-money-gen]
  8036. 451.12 s [really-safe-money-gen]
  8037. 451.28 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15:
  8038. 451.28 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8039. 451.28 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8040. 451.28 s [really-safe-money-gen] r :: Integer
  8041. 451.28 s [really-safe-money-gen] r = i1 - i2
  8042. 451.29 s [really-safe-money-gen] - in if r < 0
  8043. 451.29 s [really-safe-money-gen] + in if not (r < 0)
  8044. 451.29 s [really-safe-money-gen] then Nothing
  8045. 451.29 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8046. 451.29 s [really-safe-money-gen]
  8047. 451.29 s [really-safe-money-gen]
  8048. 451.42 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:518:7-66:
  8049. 451.42 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8050. 451.42 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8051. 451.42 s [really-safe-money-gen] r :: Integer
  8052. 451.42 s [really-safe-money-gen] r = i1 - i2
  8053. 451.42 s [really-safe-money-gen] - in if r < 0
  8054. 451.43 s [really-safe-money-gen] + in if r < 0
  8055. 451.43 s [really-safe-money-gen] then Nothing
  8056. 451.43 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8057. 451.43 s [really-safe-money-gen]
  8058. 451.43 s [really-safe-money-gen]
  8059. 451.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23:
  8060. 451.57 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  8061. 451.57 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8062. 451.57 s [really-safe-money-gen] r :: Integer
  8063. 451.57 s [really-safe-money-gen] r = i1 + i2
  8064. 451.57 s [really-safe-money-gen] - in if r > maxBoundI
  8065. 451.57 s [really-safe-money-gen] + in if True
  8066. 451.57 s [really-safe-money-gen] then Nothing
  8067. 451.57 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8068. 451.57 s [really-safe-money-gen]
  8069. 451.57 s [really-safe-money-gen]
  8070. 451.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23:
  8071. 451.71 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  8072. 451.71 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8073. 451.71 s [really-safe-money-gen] r :: Integer
  8074. 451.71 s [really-safe-money-gen] r = i1 + i2
  8075. 451.71 s [really-safe-money-gen] - in if r > maxBoundI
  8076. 451.71 s [really-safe-money-gen] + in if False
  8077. 451.71 s [really-safe-money-gen] then Nothing
  8078. 451.71 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8079. 451.71 s [really-safe-money-gen]
  8080. 451.71 s [really-safe-money-gen]
  8081. 451.83 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23:
  8082. 451.83 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  8083. 451.83 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8084. 451.83 s [really-safe-money-gen] r :: Integer
  8085. 451.83 s [really-safe-money-gen] r = i1 + i2
  8086. 451.83 s [really-safe-money-gen] - in if r > maxBoundI
  8087. 451.83 s [really-safe-money-gen] + in if not (r > maxBoundI)
  8088. 451.83 s [really-safe-money-gen] then Nothing
  8089. 451.84 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8090. 451.84 s [really-safe-money-gen]
  8091. 451.84 s [really-safe-money-gen]
  8092. 451.96 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:476:7-66:
  8093. 451.96 s [really-safe-money-gen] @@ -473,7 +473,7 @@
  8094. 451.96 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8095. 451.96 s [really-safe-money-gen] r :: Integer
  8096. 451.96 s [really-safe-money-gen] r = i1 + i2
  8097. 451.96 s [really-safe-money-gen] - in if r > maxBoundI
  8098. 451.96 s [really-safe-money-gen] + in if r > maxBoundI
  8099. 451.96 s [really-safe-money-gen] then Nothing
  8100. 451.96 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8101. 451.96 s [really-safe-money-gen]
  8102. 451.96 s [really-safe-money-gen]
  8103. 452.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16:
  8104. 452.09 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  8105. 452.09 s [really-safe-money-gen] -- Nothing
  8106. 452.09 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8107. 452.09 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8108. 452.09 s [really-safe-money-gen] - | isInvalid r = Nothing
  8109. 452.09 s [really-safe-money-gen] + | True = Nothing
  8110. 452.09 s [really-safe-money-gen] | r < 0 = Nothing
  8111. 452.09 s [really-safe-money-gen] | otherwise =
  8112. 452.09 s [really-safe-money-gen] let resultRational :: Rational
  8113. 452.09 s [really-safe-money-gen]
  8114. 452.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16:
  8115. 452.28 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  8116. 452.41 s [really-safe-money-gen] -- Nothing
  8117. 452.41 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8118. 452.41 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8119. 452.41 s [really-safe-money-gen] - | isInvalid r = Nothing
  8120. 452.41 s [really-safe-money-gen] + | False = Nothing
  8121. 452.41 s [really-safe-money-gen] | r < 0 = Nothing
  8122. 452.41 s [really-safe-money-gen] | otherwise =
  8123. 452.41 s [really-safe-money-gen] let resultRational :: Rational
  8124. 452.41 s [really-safe-money-gen]
  8125. 452.46 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16:
  8126. 452.46 s [really-safe-money-gen] @@ -385,7 +385,7 @@
  8127. 452.46 s [really-safe-money-gen] -- Nothing
  8128. 452.46 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8129. 452.46 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8130. 452.46 s [really-safe-money-gen] - | isInvalid r = Nothing
  8131. 452.46 s [really-safe-money-gen] + | not (isInvalid r) = Nothing
  8132. 452.46 s [really-safe-money-gen] | r < 0 = Nothing
  8133. 452.46 s [really-safe-money-gen] | otherwise =
  8134. 452.46 s [really-safe-money-gen] let resultRational :: Rational
  8135. 452.46 s [really-safe-money-gen]
  8136. 452.78 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10:
  8137. 452.78 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  8138. 452.78 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8139. 452.78 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8140. 452.78 s [really-safe-money-gen] | isInvalid r = Nothing
  8141. 452.78 s [really-safe-money-gen] - | r < 0 = Nothing
  8142. 452.78 s [really-safe-money-gen] + | r < 1 = Nothing
  8143. 452.78 s [really-safe-money-gen] | otherwise =
  8144. 452.78 s [really-safe-money-gen] let resultRational :: Rational
  8145. 452.78 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8146. 452.78 s [really-safe-money-gen]
  8147. 452.95 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10:
  8148. 452.95 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  8149. 452.95 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8150. 452.95 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8151. 452.95 s [really-safe-money-gen] | isInvalid r = Nothing
  8152. 452.95 s [really-safe-money-gen] - | r < 0 = Nothing
  8153. 452.95 s [really-safe-money-gen] + | True = Nothing
  8154. 452.95 s [really-safe-money-gen] | otherwise =
  8155. 452.95 s [really-safe-money-gen] let resultRational :: Rational
  8156. 452.95 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8157. 452.95 s [really-safe-money-gen]
  8158. 453.28 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10:
  8159. 453.28 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  8160. 453.28 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8161. 453.28 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8162. 453.28 s [really-safe-money-gen] | isInvalid r = Nothing
  8163. 453.28 s [really-safe-money-gen] - | r < 0 = Nothing
  8164. 453.28 s [really-safe-money-gen] + | False = Nothing
  8165. 453.28 s [really-safe-money-gen] | otherwise =
  8166. 453.28 s [really-safe-money-gen] let resultRational :: Rational
  8167. 453.28 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8168. 453.28 s [really-safe-money-gen]
  8169. 453.63 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10:
  8170. 453.63 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  8171. 453.63 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8172. 453.63 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8173. 453.63 s [really-safe-money-gen] | isInvalid r = Nothing
  8174. 453.63 s [really-safe-money-gen] - | r < 0 = Nothing
  8175. 453.63 s [really-safe-money-gen] + | not (r < 0) = Nothing
  8176. 453.63 s [really-safe-money-gen] | otherwise =
  8177. 453.64 s [really-safe-money-gen] let resultRational :: Rational
  8178. 453.64 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8179. 453.64 s [really-safe-money-gen]
  8180. 453.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:390:5-14:
  8181. 453.98 s [really-safe-money-gen] @@ -387,7 +387,7 @@
  8182. 453.98 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8183. 453.98 s [really-safe-money-gen] | isInvalid r = Nothing
  8184. 453.98 s [really-safe-money-gen] | r < 0 = Nothing
  8185. 453.98 s [really-safe-money-gen] - | otherwise =
  8186. 453.98 s [really-safe-money-gen] + | True =
  8187. 453.98 s [really-safe-money-gen] let resultRational :: Rational
  8188. 453.98 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8189. 453.98 s [really-safe-money-gen] ceiled :: Natural
  8190. 453.98 s [really-safe-money-gen]
  8191. 454.16 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:390:5-14:
  8192. 454.16 s [really-safe-money-gen] @@ -387,7 +387,7 @@
  8193. 454.16 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8194. 454.16 s [really-safe-money-gen] | isInvalid r = Nothing
  8195. 454.16 s [really-safe-money-gen] | r < 0 = Nothing
  8196. 454.16 s [really-safe-money-gen] - | otherwise =
  8197. 454.16 s [really-safe-money-gen] + | False =
  8198. 454.16 s [really-safe-money-gen] let resultRational :: Rational
  8199. 454.16 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8200. 454.16 s [really-safe-money-gen] ceiled :: Natural
  8201. 454.16 s [really-safe-money-gen]
  8202. 454.34 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:390:5-14:
  8203. 454.34 s [really-safe-money-gen] @@ -387,7 +387,7 @@
  8204. 454.34 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8205. 454.34 s [really-safe-money-gen] | isInvalid r = Nothing
  8206. 454.34 s [really-safe-money-gen] | r < 0 = Nothing
  8207. 454.34 s [really-safe-money-gen] - | otherwise =
  8208. 454.34 s [really-safe-money-gen] + | not (otherwise) =
  8209. 454.34 s [really-safe-money-gen] let resultRational :: Rational
  8210. 454.34 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8211. 454.34 s [really-safe-money-gen] ceiled :: Natural
  8212. 454.34 s [really-safe-money-gen]
  8213. 454.43 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31:
  8214. 454.43 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  8215. 454.43 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  8216. 454.43 s [really-safe-money-gen] floored :: Natural
  8217. 454.43 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8218. 454.43 s [really-safe-money-gen] - in if ceiled == floored
  8219. 454.43 s [really-safe-money-gen] + in if True
  8220. 454.43 s [really-safe-money-gen] then
  8221. 454.43 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8222. 454.43 s [really-safe-money-gen] then Nothing
  8223. 454.43 s [really-safe-money-gen]
  8224. 462.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31:
  8225. 462.74 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  8226. 462.74 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  8227. 462.74 s [really-safe-money-gen] floored :: Natural
  8228. 462.74 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8229. 462.74 s [really-safe-money-gen] - in if ceiled == floored
  8230. 462.74 s [really-safe-money-gen] + in if False
  8231. 462.74 s [really-safe-money-gen] then
  8232. 462.74 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8233. 462.74 s [really-safe-money-gen] then Nothing
  8234. 462.74 s [really-safe-money-gen]
  8235. 471.17 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31:
  8236. 471.17 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  8237. 471.19 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  8238. 471.19 s [really-safe-money-gen] floored :: Natural
  8239. 471.19 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8240. 471.19 s [really-safe-money-gen] - in if ceiled == floored
  8241. 471.19 s [really-safe-money-gen] + in if not (ceiled == floored)
  8242. 471.19 s [really-safe-money-gen] then
  8243. 471.19 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8244. 471.19 s [really-safe-money-gen] then Nothing
  8245. 471.19 s [really-safe-money-gen]
  8246. 471.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83:
  8247. 471.56 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  8248. 471.56 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8249. 471.56 s [really-safe-money-gen] in if ceiled == floored
  8250. 471.56 s [really-safe-money-gen] then
  8251. 471.56 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8252. 471.57 s [really-safe-money-gen] + if True
  8253. 471.57 s [really-safe-money-gen] then Nothing
  8254. 471.57 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8255. 471.57 s [really-safe-money-gen] else Nothing
  8256. 471.57 s [really-safe-money-gen]
  8257. 471.95 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83:
  8258. 471.95 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  8259. 471.95 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8260. 471.95 s [really-safe-money-gen] in if ceiled == floored
  8261. 471.95 s [really-safe-money-gen] then
  8262. 471.95 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8263. 471.95 s [really-safe-money-gen] + if False
  8264. 471.95 s [really-safe-money-gen] then Nothing
  8265. 471.95 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8266. 471.95 s [really-safe-money-gen] else Nothing
  8267. 471.95 s [really-safe-money-gen]
  8268. 472.35 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83:
  8269. 472.35 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  8270. 472.35 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8271. 472.35 s [really-safe-money-gen] in if ceiled == floored
  8272. 472.35 s [really-safe-money-gen] then
  8273. 472.36 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8274. 472.36 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  8275. 472.36 s [really-safe-money-gen] then Nothing
  8276. 472.36 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8277. 472.36 s [really-safe-money-gen] else Nothing
  8278. 472.36 s [really-safe-money-gen]
  8279. 472.80 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:399:15-57:
  8280. 472.80 s [really-safe-money-gen] @@ -396,7 +396,7 @@
  8281. 472.80 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8282. 472.80 s [really-safe-money-gen] in if ceiled == floored
  8283. 472.80 s [really-safe-money-gen] then
  8284. 472.80 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8285. 472.80 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8286. 472.80 s [really-safe-money-gen] then Nothing
  8287. 472.80 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8288. 472.80 s [really-safe-money-gen] else Nothing
  8289. 472.80 s [really-safe-money-gen]
  8290. 473.19 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:397:11-25:
  8291. 473.19 s [really-safe-money-gen] @@ -394,7 +394,7 @@
  8292. 473.19 s [really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
  8293. 473.19 s [really-safe-money-gen] floored :: Natural
  8294. 473.19 s [really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
  8295. 473.19 s [really-safe-money-gen] - in if ceiled == floored
  8296. 473.19 s [really-safe-money-gen] + in if ceiled == floored
  8297. 473.19 s [really-safe-money-gen] then
  8298. 473.19 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8299. 473.19 s [really-safe-money-gen] then Nothing
  8300. 473.19 s [really-safe-money-gen]
  8301. 473.59 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10:
  8302. 473.59 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  8303. 473.59 s [really-safe-money-gen] Double ->
  8304. 473.59 s [really-safe-money-gen] Maybe Amount
  8305. 473.59 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8306. 473.59 s [really-safe-money-gen] - | d < 0 = Nothing
  8307. 473.59 s [really-safe-money-gen] + | d < 1 = Nothing
  8308. 473.59 s [really-safe-money-gen] | otherwise =
  8309. 473.59 s [really-safe-money-gen] let resultDouble :: Double
  8310. 473.59 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8311. 473.59 s [really-safe-money-gen]
  8312. 473.71 s [really-safe-money-gen] nds
  8313. 473.71 s [really-safe-money-gen] Test suite took: 0.00 seconds
  8314. 473.71 s [really-safe-money-gen]
  8315. 473.71 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15:
  8316. 473.71 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8317. 473.71 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8318. 473.71 s [really-safe-money-gen] r :: Integer
  8319. 473.71 s [really-safe-money-gen] r = i1 - i2
  8320. 473.71 s [really-safe-money-gen] - in if r < 0
  8321. 473.71 s [really-safe-money-gen] + in if r < 1
  8322. 473.71 s [really-safe-money-gen] then Nothing
  8323. 473.71 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8324. 473.71 s [really-safe-money-gen]
  8325. 473.71 s [really-safe-money-gen] Tests:
  8326. 473.71 s [really-safe-money-gen]
  8327. 473.71 s [really-safe-money-gen] Money.MultiAmountSpec
  8328. 473.71 s [really-safe-money-gen] subtractAmount
  8329. 473.71 s [really-safe-money-gen] produces valid amounts 13.85 ms
  8330. 473.71 s [really-safe-money-gen] passed for all of 1000 inputs.
  8331. 473.71 s [really-safe-money-gen]
  8332. 473.71 s [really-safe-money-gen]
  8333. 473.71 s [really-safe-money-gen]
  8334. 473.71 s [really-safe-money-gen] Examples: 1000
  8335. 473.71 s [really-safe-money-gen] Passed: 1
  8336. 473.71 s [really-safe-money-gen] Failed: 0
  8337. 473.71 s [really-safe-money-gen] Sum of test runtimes: 0.01 seconds
  8338. 473.71 s [really-safe-money-gen] Test suite took: 0.02 seconds
  8339. 473.71 s [really-safe-money-gen]
  8340. 473.71 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15:
  8341. 473.71 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8342. 473.71 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8343. 473.71 s [really-safe-money-gen] r :: Integer
  8344. 473.71 s [really-safe-money-gen] r = i1 - i2
  8345. 473.71 s [really-safe-money-gen] - in if r < 0
  8346. 473.71 s [really-safe-money-gen] + in if True
  8347. 473.71 s [really-safe-money-gen] then Nothing
  8348. 473.72 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8349. 473.72 s [really-safe-money-gen]
  8350. 473.72 s [really-safe-money-gen] Tests:
  8351. 473.72 s [really-safe-money-gen]
  8352. 473.72 s [really-safe-money-gen] Money.MultiAmountSpec
  8353. 473.72 s [really-safe-money-gen] subtractAmount
  8354. 473.72 s [really-safe-money-gen] produces valid amounts 13.73 ms
  8355. 473.72 s [really-safe-money-gen] passed for all of 1000 inputs.
  8356. 473.72 s [really-safe-money-gen] subtract
  8357. 473.72 s [really-safe-money-gen] produces valid amounts 22.22 ms
  8358. 473.72 s [really-safe-money-gen] passed for all of 1000 inputs.
  8359. 473.72 s [really-safe-money-gen] Money.AmountOfSpec
  8360. 473.72 s [really-safe-money-gen] USD
  8361. 473.72 s [really-safe-money-gen] subtract
  8362. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.23 ms
  8363. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8364. 473.72 s [really-safe-money-gen] ADA
  8365. 473.72 s [really-safe-money-gen] subtract
  8366. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.18 ms
  8367. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8368. 473.72 s [really-safe-money-gen] INR
  8369. 473.72 s [really-safe-money-gen] subtract
  8370. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.21 ms
  8371. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8372. 473.72 s [really-safe-money-gen] BTC
  8373. 473.72 s [really-safe-money-gen] subtract
  8374. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.64 ms
  8375. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8376. 473.72 s [really-safe-money-gen] CHF
  8377. 473.72 s [really-safe-money-gen] subtract
  8378. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.19 ms
  8379. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8380. 473.72 s [really-safe-money-gen] Money.AmountSpec
  8381. 473.72 s [really-safe-money-gen] subtract
  8382. 473.72 s [really-safe-money-gen] fails for 0 - maxBound 0.01 ms
  8383. 473.72 s [really-safe-money-gen] fails for 0 - 1 0.01 ms
  8384. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 29.43 ms
  8385. 473.72 s [really-safe-money-gen] passed for all of 10000 inputs.
  8386. 473.72 s [really-safe-money-gen]
  8387. 473.72 s [really-safe-money-gen]
  8388. 473.72 s [really-safe-money-gen]
  8389. 473.72 s [really-safe-money-gen] Examples: 12502
  8390. 473.72 s [really-safe-money-gen] Passed: 10
  8391. 473.72 s [really-safe-money-gen] Failed: 0
  8392. 473.72 s [really-safe-money-gen] Sum of test runtimes: 0.07 seconds
  8393. 473.72 s [really-safe-money-gen] Test suite took: 0.07 seconds
  8394. 473.72 s [really-safe-money-gen]
  8395. 473.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15:
  8396. 473.72 s [really-safe-money-gen] @@ -515,7 +515,7 @@
  8397. 473.72 s [really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
  8398. 473.72 s [really-safe-money-gen] r :: Integer
  8399. 473.72 s [really-safe-money-gen] r = i1 - i2
  8400. 473.72 s [really-safe-money-gen] - in if r < 0
  8401. 473.72 s [really-safe-money-gen] + in if False
  8402. 473.72 s [really-safe-money-gen] then Nothing
  8403. 473.72 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8404. 473.72 s [really-safe-money-gen]
  8405. 473.72 s [really-safe-money-gen] Tests:
  8406. 473.72 s [really-safe-money-gen]
  8407. 473.72 s [really-safe-money-gen] Money.MultiAmountSpec
  8408. 473.72 s [really-safe-money-gen] subtractAmount
  8409. 473.72 s [really-safe-money-gen] produces valid amounts 15.15 ms
  8410. 473.72 s [really-safe-money-gen] passed for all of 1000 inputs.
  8411. 473.72 s [really-safe-money-gen] subtract
  8412. 473.72 s [really-safe-money-gen] produces valid amounts 23.31 ms
  8413. 473.72 s [really-safe-money-gen] passed for all of 1000 inputs.
  8414. 473.72 s [really-safe-money-gen] Money.AmountOfSpec
  8415. 473.72 s [really-safe-money-gen] USD
  8416. 473.72 s [really-safe-money-gen] subtract
  8417. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.30 ms
  8418. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8419. 473.72 s [really-safe-money-gen] ADA
  8420. 473.72 s [really-safe-money-gen] subtract
  8421. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.31 ms
  8422. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8423. 473.72 s [really-safe-money-gen] INR
  8424. 473.72 s [really-safe-money-gen] subtract
  8425. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.25 ms
  8426. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8427. 473.72 s [really-safe-money-gen] BTC
  8428. 473.72 s [really-safe-money-gen] subtract
  8429. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.47 ms
  8430. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8431. 473.72 s [really-safe-money-gen] CHF
  8432. 473.72 s [really-safe-money-gen] subtract
  8433. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 0.18 ms
  8434. 473.72 s [really-safe-money-gen] passed for all of 100 inputs.
  8435. 473.72 s [really-safe-money-gen] Money.AmountSpec
  8436. 473.72 s [really-safe-money-gen] subtract
  8437. 473.72 s [really-safe-money-gen] fails for 0 - maxBound 0.00 ms
  8438. 473.72 s [really-safe-money-gen] fails for 0 - 1 0.00 ms
  8439. 473.72 s [really-safe-money-gen] matches what you would get with Integer, if nothing fails 27.53 ms
  8440. 473.72 s [really-safe-money-gen] passed for all of 10000 inputs.
  8441. 473.72 s [really-safe-money-gen]
  8442. 473.72 s [really-safe-money-gen]
  8443. 473.72 s [really-safe-money-gen]
  8444. 473.72 s [really-safe-money-gen] Examples: 12502
  8445. 473.72 s [really-safe-money-gen] Passed: 10
  8446. 473.72 s [really-safe-money-gen] Failed: 0
  8447. 473.72 s [really-safe-money-gen] Sum of test runtimes: 0.07 seconds
  8448. 473.72 s [really-safe-money-gen] Test suite took: 0.07 seconds
  8449. 473.72 s [really-safe-money-gen]
  8450. 473.72 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10:
  8451. 473.72 s [really-safe-money-gen] @@ -386,7 +386,7 @@
  8452. 473.72 s [really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
  8453. 473.72 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8454. 473.72 s [really-safe-money-gen] | isInvalid r = Nothing
  8455. 473.72 s [really-safe-money-gen] - | r < 0 = Nothing
  8456. 473.72 s [really-safe-money-gen] + | r < 1 = Nothing
  8457. 473.72 s [really-safe-money-gen] | otherwise =
  8458. 473.72 s [really-safe-money-gen] let resultRational :: Rational
  8459. 473.72 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8460. 473.72 s [really-safe-money-gen] Tests:
  8461. 473.72 s [really-safe-money-gen]
  8462. 473.72 s [really-safe-money-gen] Money.AccountSpec
  8463. 473.72 s [really-safe-money-gen] fromRational
  8464. 473.72 s [really-safe-money-gen] roundtrips with toRational 80.18 ms
  8465. 473.72 s [really-safe-money-gen] passed for all of 10000 inputs.
  8466. 473.72 s [really-safe-money-gen]
  8467. 473.72 s [really-safe-money-gen]
  8468. 473.72 s [really-safe-money-gen]
  8469. 473.72 s [really-safe-money-gen] Examples: 10000
  8470. 473.72 s [really-safe-money-gen] Passed: 1
  8471. 473.72 s [really-safe-money-gen] Failed: 0
  8472. 473.72 s [really-safe-money-gen] Sum of test runtimes: 0.08 seconds
  8473. 473.72 s [really-safe-money-gen] Test suite took: 0.08 seconds
  8474. 473.72 s [really-safe-money-gen]
  8475. 473.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:390:5-14:
  8476. 473.72 s [really-safe-money-gen] @@ -387,7 +387,7 @@
  8477. 473.72 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8478. 473.72 s [really-safe-money-gen] | isInvalid r = Nothing
  8479. 473.72 s [really-safe-money-gen] | r < 0 = Nothing
  8480. 473.72 s [really-safe-money-gen] - | otherwise =
  8481. 473.72 s [really-safe-money-gen] + | True =
  8482. 473.72 s [really-safe-money-gen] let resultRational :: Rational
  8483. 473.72 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8484. 473.72 s [really-safe-money-gen] ceiled :: Natural
  8485. 473.72 s [really-safe-money-gen] Tests:
  8486. 473.72 s [really-safe-money-gen]
  8487. 473.72 s [really-safe-money-gen] Money.AccountSpec
  8488. 473.72 s [really-safe-money-gen] fromRational
  8489. 473.72 s [really-safe-money-gen] roundtrips with toRational 89.58 ms
  8490. 473.72 s [really-safe-money-gen] passed for all of 10000 inputs.
  8491. 473.72 s [really-safe-money-gen]
  8492. 473.72 s [really-safe-money-gen]
  8493. 473.72 s [really-safe-money-gen]
  8494. 473.72 s [really-safe-money-gen] Examples: 10000
  8495. 473.72 s [really-safe-money-gen] Passed: 1
  8496. 473.72 s [really-safe-money-gen] Failed: 0
  8497. 473.72 s [really-safe-money-gen] Sum of test runtimes: 0.09 seconds
  8498. 473.72 s [really-safe-money-gen] Test suite took: 0.09 seconds
  8499. 473.72 s [really-safe-money-gen]
  8500. 473.72 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:390:5-14:
  8501. 473.72 s [really-safe-money-gen] @@ -387,7 +387,7 @@
  8502. 473.72 s [really-safe-money-gen] fromRational (QuantisationFactor qf) r
  8503. 473.72 s [really-safe-money-gen] | isInvalid r = Nothing
  8504. 473.72 s [really-safe-money-gen] | r < 0 = Nothing
  8505. 473.72 s [really-safe-money-gen] - | otherwise =
  8506. 473.72 s [really-safe-money-gen] + | False =
  8507. 473.72 s [really-safe-money-gen] let resultRational :: Rational
  8508. 473.72 s [really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
  8509. 473.72 s [really-safe-money-gen] ceiled :: Natural
  8510. 473.72 s [really-safe-money-gen] Tests:
  8511. 473.72 s [really-safe-money-gen]
  8512. 473.72 s [really-safe-money-gen] Money.AccountSpec
  8513. 473.72 s [really-safe-money-gen] fromRational
  8514. 473.72 s [really-safe-money-gen] roundtrips with toRational 89.36 ms
  8515. 473.72 s [really-safe-money-gen] passed for all of 10000 inputs.
  8516. 473.72 s [really-safe-money-gen]
  8517. 473.72 s [really-safe-money-gen]
  8518. 473.72 s [really-safe-money-gen]
  8519. 473.72 s [really-safe-money-gen] Examples: 10000
  8520. 473.72 s [really-safe-money-gen] Passed: 1
  8521. 473.72 s [really-safe-money-gen] Failed: 0
  8522. 473.72 s [really-safe-money-gen] Sum of test runtimes: 0.09 seconds
  8523. 473.72 s [really-safe-money-gen] Test suite took: 0.09 seconds
  8524. 473.72 s [really-safe-money-gen]
  8525. 473.72 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10:
  8526. 473.72 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  8527. 473.72 s [really-safe-money-gen] Double ->
  8528. 473.72 s [really-safe-money-gen] Maybe Amount
  8529. 473.72 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8530. 473.72 s [really-safe-money-gen] - | d < 0 = Nothing
  8531. 473.72 s [really-safe-money-gen] + | d < 1 = Nothing
  8532. 473.72 s [really-safe-money-gen] | otherwise =
  8533. 473.72 s [really-safe-money-gen] let resultDouble :: Double
  8534. 473.72 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 ->Testing mutation ConstBool at src/Money/Amount.hs:320:5-10:
  8535. 473.72 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  8536. 473.72 s [really-safe-money-gen] Double ->
  8537. 473.72 s [really-safe-money-gen] Maybe Amount
  8538. 473.72 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8539. 473.72 s [really-safe-money-gen] - | d < 0 = Nothing
  8540. 473.72 s [really-safe-money-gen] + | True = Nothing
  8541. 473.72 s [really-safe-money-gen] | otherwise =
  8542. 473.72 s [really-safe-money-gen] let resultDouble :: Double
  8543. 473.72 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8544. 473.72 s [really-safe-money-gen]
  8545. 473.86 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10:
  8546. 473.86 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  8547. 473.86 s [really-safe-money-gen] Double ->
  8548. 473.86 s [really-safe-money-gen] Maybe Amount
  8549. 473.86 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8550. 473.86 s [really-safe-money-gen] - | d < 0 = Nothing
  8551. 473.86 s [really-safe-money-gen] + | False = Nothing
  8552. 473.86 s [really-safe-money-gen] | otherwise =
  8553. 473.86 s [really-safe-money-gen] let resultDouble :: Double
  8554. 473.86 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8555. 473.86 s [really-safe-money-gen]
  8556. 474.01 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10:
  8557. 474.01 s [really-safe-money-gen] @@ -317,7 +317,7 @@
  8558. 474.02 s [really-safe-money-gen] Double ->
  8559. 474.02 s [really-safe-money-gen] Maybe Amount
  8560. 474.02 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8561. 474.02 s [really-safe-money-gen] - | d < 0 = Nothing
  8562. 474.02 s [really-safe-money-gen] + | not (d < 0) = Nothing
  8563. 474.02 s [really-safe-money-gen] | otherwise =
  8564. 474.02 s [really-safe-money-gen] let resultDouble :: Double
  8565. 474.02 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8566. 474.02 s [really-safe-money-gen]
  8567. 474.18 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:321:5-14:
  8568. 474.18 s [really-safe-money-gen] @@ -318,7 +318,7 @@
  8569. 474.18 s [really-safe-money-gen] Maybe Amount
  8570. 474.18 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8571. 474.18 s [really-safe-money-gen] | d < 0 = Nothing
  8572. 474.18 s [really-safe-money-gen] - | otherwise =
  8573. 474.18 s [really-safe-money-gen] + | True =
  8574. 474.18 s [really-safe-money-gen] let resultDouble :: Double
  8575. 474.18 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8576. 474.18 s [really-safe-money-gen] in go resultDouble
  8577. 474.18 s [really-safe-money-gen]
  8578. 474.33 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:321:5-14:
  8579. 474.33 s [really-safe-money-gen] @@ -318,7 +318,7 @@
  8580. 474.33 s [really-safe-money-gen] Maybe Amount
  8581. 474.33 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8582. 474.33 s [really-safe-money-gen] | d < 0 = Nothing
  8583. 474.33 s [really-safe-money-gen] - | otherwise =
  8584. 474.33 s [really-safe-money-gen] + | False =
  8585. 474.33 s [really-safe-money-gen] let resultDouble :: Double
  8586. 474.33 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8587. 474.33 s [really-safe-money-gen] in go resultDouble
  8588. 474.33 s [really-safe-money-gen]
  8589. 474.48 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:321:5-14:
  8590. 474.48 s [really-safe-money-gen] @@ -318,7 +318,7 @@
  8591. 474.48 s [really-safe-money-gen] Maybe Amount
  8592. 474.48 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  8593. 474.48 s [really-safe-money-gen] | d < 0 = Nothing
  8594. 474.48 s [really-safe-money-gen] - | otherwise =
  8595. 474.48 s [really-safe-money-gen] + | not (otherwise) =
  8596. 474.48 s [really-safe-money-gen] let resultDouble :: Double
  8597. 474.48 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  8598. 474.48 s [really-safe-money-gen] in go resultDouble
  8599. 474.48 s [really-safe-money-gen]
  8600. 474.58 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16:
  8601. 474.58 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  8602. 474.58 s [really-safe-money-gen] in go resultDouble
  8603. 474.58 s [really-safe-money-gen] where
  8604. 474.58 s [really-safe-money-gen] go resultDouble
  8605. 474.58 s [really-safe-money-gen] - | isNaN d = Nothing
  8606. 474.58 s [really-safe-money-gen] + | True = Nothing
  8607. 474.58 s [really-safe-money-gen] | isInfinite d = Nothing
  8608. 474.58 s [really-safe-money-gen] | otherwise =
  8609. 474.58 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8610. 474.58 s [really-safe-money-gen]
  8611. 474.74 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16:
  8612. 474.74 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  8613. 474.75 s [really-safe-money-gen] in go resultDouble
  8614. 474.75 s [really-safe-money-gen] where
  8615. 474.75 s [really-safe-money-gen] go resultDouble
  8616. 474.75 s [really-safe-money-gen] - | isNaN d = Nothing
  8617. 474.75 s [really-safe-money-gen] + | False = Nothing
  8618. 474.75 s [really-safe-money-gen] | isInfinite d = Nothing
  8619. 474.75 s [really-safe-money-gen] | otherwise =
  8620. 474.75 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8621. 474.75 s [really-safe-money-gen]
  8622. 474.91 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16:
  8623. 474.91 s [really-safe-money-gen] @@ -324,7 +324,7 @@
  8624. 474.91 s [really-safe-money-gen] in go resultDouble
  8625. 474.91 s [really-safe-money-gen] where
  8626. 474.91 s [really-safe-money-gen] go resultDouble
  8627. 474.91 s [really-safe-money-gen] - | isNaN d = Nothing
  8628. 474.91 s [really-safe-money-gen] + | not (isNaN d) = Nothing
  8629. 474.91 s [really-safe-money-gen] | isInfinite d = Nothing
  8630. 474.91 s [really-safe-money-gen] | otherwise =
  8631. 474.91 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8632. 474.91 s [really-safe-money-gen]
  8633. 475.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21:
  8634. 475.08 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  8635. 475.08 s [really-safe-money-gen] where
  8636. 475.08 s [really-safe-money-gen] go resultDouble
  8637. 475.08 s [really-safe-money-gen] | isNaN d = Nothing
  8638. 475.08 s [really-safe-money-gen] - | isInfinite d = Nothing
  8639. 475.08 s [really-safe-money-gen] + | True = Nothing
  8640. 475.08 s [really-safe-money-gen] | otherwise =
  8641. 475.08 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8642. 475.08 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8643. 475.08 s [really-safe-money-gen]
  8644. 475.25 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21:
  8645. 475.25 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  8646. 475.25 s [really-safe-money-gen] where
  8647. 475.25 s [really-safe-money-gen] go resultDouble
  8648. 475.25 s [really-safe-money-gen] | isNaN d = Nothing
  8649. 475.25 s [really-safe-money-gen] - | isInfinite d = Nothing
  8650. 475.25 s [really-safe-money-gen] + | False = Nothing
  8651. 475.25 s [really-safe-money-gen] | otherwise =
  8652. 475.25 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8653. 475.25 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8654. 475.25 s [really-safe-money-gen]
  8655. 475.42 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21:
  8656. 475.42 s [really-safe-money-gen] @@ -325,7 +325,7 @@
  8657. 475.42 s [really-safe-money-gen] where
  8658. 475.42 s [really-safe-money-gen] go resultDouble
  8659. 475.42 s [really-safe-money-gen] | isNaN d = Nothing
  8660. 475.42 s [really-safe-money-gen] - | isInfinite d = Nothing
  8661. 475.42 s [really-safe-money-gen] + | not (isInfinite d) = Nothing
  8662. 475.42 s [really-safe-money-gen] | otherwise =
  8663. 475.42 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8664. 475.42 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8665. 475.42 s [really-safe-money-gen]
  8666. 475.60 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:329:9-18:
  8667. 475.60 s [really-safe-money-gen] @@ -326,7 +326,7 @@
  8668. 475.60 s [really-safe-money-gen] go resultDouble
  8669. 475.60 s [really-safe-money-gen] | isNaN d = Nothing
  8670. 475.60 s [really-safe-money-gen] | isInfinite d = Nothing
  8671. 475.60 s [really-safe-money-gen] - | otherwise =
  8672. 475.60 s [really-safe-money-gen] + | True =
  8673. 475.61 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8674. 475.61 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8675. 475.61 s [really-safe-money-gen] if exponent resultDouble > 65
  8676. 475.61 s [really-safe-money-gen]
  8677. 475.75 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:329:9-18:
  8678. 475.75 s [really-safe-money-gen] @@ -326,7 +326,7 @@
  8679. 475.75 s [really-safe-money-gen] go resultDouble
  8680. 475.75 s [really-safe-money-gen] | isNaN d = Nothing
  8681. 475.75 s [really-safe-money-gen] | isInfinite d = Nothing
  8682. 475.75 s [really-safe-money-gen] - | otherwise =
  8683. 475.75 s [really-safe-money-gen] + | False =
  8684. 475.75 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8685. 475.75 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8686. 475.75 s [really-safe-money-gen] if exponent resultDouble > 65
  8687. 475.75 s [really-safe-money-gen]
  8688. 475.90 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:329:9-18:
  8689. 475.90 s [really-safe-money-gen] @@ -326,7 +326,7 @@
  8690. 475.90 s [really-safe-money-gen] go resultDouble
  8691. 475.90 s [really-safe-money-gen] | isNaN d = Nothing
  8692. 475.90 s [really-safe-money-gen] | isInfinite d = Nothing
  8693. 475.90 s [really-safe-money-gen] - | otherwise =
  8694. 475.90 s [really-safe-money-gen] + | not (otherwise) =
  8695. 475.90 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8696. 475.90 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8697. 475.90 s [really-safe-money-gen] if exponent resultDouble > 65
  8698. 475.90 s [really-safe-money-gen]
  8699. 476.00 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40:
  8700. 476.00 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8701. 476.00 s [really-safe-money-gen] | otherwise =
  8702. 476.00 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8703. 476.00 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8704. 476.00 s [really-safe-money-gen] - if exponent resultDouble > 65
  8705. 476.00 s [really-safe-money-gen] + if exponent resultDouble > 0
  8706. 476.00 s [really-safe-money-gen] then Nothing
  8707. 476.00 s [really-safe-money-gen] else
  8708. 476.00 s [really-safe-money-gen] let ceiled :: Natural
  8709. 476.00 s [really-safe-money-gen]
  8710. 476.13 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40:
  8711. 476.13 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8712. 476.13 s [really-safe-money-gen] | otherwise =
  8713. 476.13 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8714. 476.13 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8715. 476.14 s [really-safe-money-gen] - if exponent resultDouble > 65
  8716. 476.14 s [really-safe-money-gen] + if exponent resultDouble > 1
  8717. 476.14 s [really-safe-money-gen] then Nothing
  8718. 476.14 s [really-safe-money-gen] else
  8719. 476.14 s [really-safe-money-gen] let ceiled :: Natural
  8720. 476.14 s [really-safe-money-gen]
  8721. 476.27 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40:
  8722. 476.34 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8723. 476.34 s [really-safe-money-gen] | otherwise =
  8724. 476.34 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8725. 476.34 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8726. 476.34 s [really-safe-money-gen] - if exponent resultDouble > 65
  8727. 476.34 s [really-safe-money-gen] + if exponent resultDouble > -65
  8728. 476.34 s [really-safe-money-gen] then Nothing
  8729. 476.34 s [really-safe-money-gen] else
  8730. 476.34 s [really-safe-money-gen] let ceiled :: Natural
  8731. 476.34 s [really-safe-money-gen]
  8732. 476.41 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40:
  8733. 476.41 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8734. 476.41 s [really-safe-money-gen] | otherwise =
  8735. 476.41 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8736. 476.41 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8737. 476.41 s [really-safe-money-gen] - if exponent resultDouble > 65
  8738. 476.41 s [really-safe-money-gen] + if True
  8739. 476.41 s [really-safe-money-gen] then Nothing
  8740. 476.41 s [really-safe-money-gen] else
  8741. 476.41 s [really-safe-money-gen] let ceiled :: Natural
  8742. 476.41 s [really-safe-money-gen]
  8743. 476.62 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40:
  8744. 476.62 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8745. 476.62 s [really-safe-money-gen] | otherwise =
  8746. 476.62 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8747. 476.62 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8748. 476.62 s [really-safe-money-gen] - if exponent resultDouble > 65
  8749. 476.62 s [really-safe-money-gen] + if False
  8750. 476.62 s [really-safe-money-gen] then Nothing
  8751. 476.62 s [really-safe-money-gen] else
  8752. 476.62 s [really-safe-money-gen] let ceiled :: Natural
  8753. 476.62 s [really-safe-money-gen]
  8754. 476.85 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40:
  8755. 476.85 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8756. 476.85 s [really-safe-money-gen] | otherwise =
  8757. 476.85 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8758. 476.85 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8759. 476.85 s [really-safe-money-gen] - if exponent resultDouble > 65
  8760. 476.85 s [really-safe-money-gen] + if not (exponent resultDouble > 65)
  8761. 476.85 s [really-safe-money-gen] then Nothing
  8762. 476.85 s [really-safe-money-gen] else
  8763. 476.85 s [really-safe-money-gen] let ceiled :: Natural
  8764. 476.85 s [really-safe-money-gen]
  8765. 477.08 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39:
  8766. 477.08 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  8767. 477.08 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  8768. 477.08 s [really-safe-money-gen] floored :: Natural
  8769. 477.08 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8770. 477.08 s [really-safe-money-gen] - in if ceiled == floored
  8771. 477.08 s [really-safe-money-gen] + in if True
  8772. 477.08 s [really-safe-money-gen] then
  8773. 477.08 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8774. 477.08 s [really-safe-money-gen] then Nothing
  8775. 477.08 s [really-safe-money-gen]
  8776. 477.23 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39:
  8777. 477.23 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  8778. 477.23 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  8779. 477.23 s [really-safe-money-gen] floored :: Natural
  8780. 477.24 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8781. 477.24 s [really-safe-money-gen] - in if ceiled == floored
  8782. 477.24 s [really-safe-money-gen] + in if False
  8783. 477.24 s [really-safe-money-gen] then
  8784. 477.24 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8785. 477.24 s [really-safe-money-gen] then Nothing
  8786. 477.24 s [really-safe-money-gen]
  8787. 477.38 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39:
  8788. 477.38 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  8789. 477.38 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  8790. 477.38 s [really-safe-money-gen] floored :: Natural
  8791. 477.38 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8792. 477.38 s [really-safe-money-gen] - in if ceiled == floored
  8793. 477.38 s [really-safe-money-gen] + in if not (ceiled == floored)
  8794. 477.38 s [really-safe-money-gen] then
  8795. 477.39 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8796. 477.39 s [really-safe-money-gen] then Nothing
  8797. 477.39 s [really-safe-money-gen]
  8798. 477.53 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91:
  8799. 477.53 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  8800. 477.53 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8801. 477.53 s [really-safe-money-gen] in if ceiled == floored
  8802. 477.53 s [really-safe-money-gen] then
  8803. 477.53 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8804. 477.53 s [really-safe-money-gen] + if True
  8805. 477.53 s [really-safe-money-gen] then Nothing
  8806. 477.53 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8807. 477.53 s [really-safe-money-gen] else Nothing
  8808. 477.53 s [really-safe-money-gen]
  8809. 477.76 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91:
  8810. 477.76 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  8811. 477.76 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8812. 477.76 s [really-safe-money-gen] in if ceiled == floored
  8813. 477.76 s [really-safe-money-gen] then
  8814. 477.76 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8815. 477.76 s [really-safe-money-gen] + if False
  8816. 477.76 s [really-safe-money-gen] then Nothing
  8817. 477.76 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8818. 477.76 s [really-safe-money-gen] else Nothing
  8819. 477.76 s [really-safe-money-gen]
  8820. 477.98 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91:
  8821. 477.98 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  8822. 477.98 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8823. 477.98 s [really-safe-money-gen] in if ceiled == floored
  8824. 477.98 s [really-safe-money-gen] then
  8825. 477.98 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8826. 477.98 s [really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
  8827. 477.98 s [really-safe-money-gen] then Nothing
  8828. 477.98 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8829. 477.98 s [really-safe-money-gen] else Nothing
  8830. 477.98 s [really-safe-money-gen]
  8831. 478.13 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:341:23-65:
  8832. 478.13 s [really-safe-money-gen] @@ -338,7 +338,7 @@
  8833. 478.13 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8834. 478.13 s [really-safe-money-gen] in if ceiled == floored
  8835. 478.13 s [really-safe-money-gen] then
  8836. 478.13 s [really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8837. 478.13 s [really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8838. 478.13 s [really-safe-money-gen] then Nothing
  8839. 478.13 s [really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
  8840. 478.13 s [really-safe-money-gen] else Nothing
  8841. 478.13 s [really-safe-money-gen]
  8842. 478.28 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:339:19-33:
  8843. 478.28 s [really-safe-money-gen] @@ -336,7 +336,7 @@
  8844. 478.28 s [really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
  8845. 478.28 s [really-safe-money-gen] floored :: Natural
  8846. 478.28 s [really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
  8847. 478.28 s [really-safe-money-gen] - in if ceiled == floored
  8848. 478.28 s [really-safe-money-gen] + in if ceiled == floored
  8849. 478.28 s [really-safe-money-gen] then
  8850. 478.28 s [really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
  8851. 478.28 s [really-safe-money-gen] then Nothing
  8852. 478.28 s [really-safe-money-gen]
  8853. 478.43 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:332:11-33:
  8854. 478.43 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  8855. 478.43 s [really-safe-money-gen] | otherwise =
  8856. 478.43 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  8857. 478.43 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  8858. 478.43 s [really-safe-money-gen] - if exponent resultDouble > 65
  8859. 478.43 s [really-safe-money-gen] + if exponent resultDouble > 65
  8860. 478.43 s [really-safe-money-gen] then Nothing
  8861. 478.43 s [really-safe-money-gen] else
  8862. 478.43 s [really-safe-money-gen] let ceiled :: Natural
  8863. 478.43 s [really-safe-money-gen]
  8864. 478.65 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80:
  8865. 478.65 s [really-safe-money-gen] @@ -287,7 +287,7 @@
  8866. 478.65 s [really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
  8867. 478.65 s [really-safe-money-gen] -- 1 % 100
  8868. 478.65 s [really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
  8869. 478.65 s [really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
  8870. 478.65 s [really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
  8871. 478.65 s [really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
  8872. 478.66 s [really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
  8873. 478.66 s [really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
  8874. 478.66 s [really-safe-money-gen]
  8875. 478.75 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97:
  8876. 478.75 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  8877. 478.75 s [really-safe-money-gen] let maxBoundI :: Integer
  8878. 478.75 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8879. 478.75 s [really-safe-money-gen] r :: Integer
  8880. 478.75 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  8881. 478.75 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  8882. 478.75 s [really-safe-money-gen] in if r > maxBoundI
  8883. 478.75 s [really-safe-money-gen] then Nothing
  8884. 478.75 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8885. 478.75 s [really-safe-money-gen]
  8886. 478.85 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23:
  8887. 478.85 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  8888. 478.85 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8889. 478.85 s [really-safe-money-gen] r :: Integer
  8890. 478.85 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  8891. 478.85 s [really-safe-money-gen] - in if r > maxBoundI
  8892. 478.85 s [really-safe-money-gen] + in if True
  8893. 478.85 s [really-safe-money-gen] then Nothing
  8894. 478.85 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8895. 478.85 s [really-safe-money-gen]
  8896. 478.85 s [really-safe-money-gen]
  8897. 478.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23:
  8898. 478.98 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  8899. 478.98 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8900. 478.99 s [really-safe-money-gen] r :: Integer
  8901. 478.99 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  8902. 478.99 s [really-safe-money-gen] - in if r > maxBoundI
  8903. 478.99 s [really-safe-money-gen] + in if False
  8904. 478.99 s [really-safe-money-gen] then Nothing
  8905. 478.99 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8906. 478.99 s [really-safe-money-gen]
  8907. 478.99 s [really-safe-money-gen]
  8908. 479.12 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23:
  8909. 479.12 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  8910. 479.12 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8911. 479.12 s [really-safe-money-gen] r :: Integer
  8912. 479.12 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  8913. 479.12 s [really-safe-money-gen] - in if r > maxBoundI
  8914. 479.12 s [really-safe-money-gen] + in if not (r > maxBoundI)
  8915. 479.12 s [really-safe-money-gen] then Nothing
  8916. 479.12 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8917. 479.12 s [really-safe-money-gen]
  8918. 479.12 s [really-safe-money-gen]
  8919. 479.22 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:495:7-66:
  8920. 479.22 s [really-safe-money-gen] @@ -492,7 +492,7 @@
  8921. 479.22 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  8922. 479.22 s [really-safe-money-gen] r :: Integer
  8923. 479.22 s [really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  8924. 479.22 s [really-safe-money-gen] - in if r > maxBoundI
  8925. 479.22 s [really-safe-money-gen] + in if r > maxBoundI
  8926. 479.22 s [really-safe-money-gen] then Nothing
  8927. 479.22 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  8928. 479.22 s [really-safe-money-gen]
  8929. 479.22 s [really-safe-money-gen]
  8930. 479.32 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16:
  8931. 479.32 s [really-safe-money-gen] @@ -247,7 +247,7 @@
  8932. 479.32 s [really-safe-money-gen] -- >>> zero
  8933. 479.32 s [really-safe-money-gen] -- Amount 0
  8934. 479.32 s [really-safe-money-gen] zero :: Amount
  8935. 479.32 s [really-safe-money-gen] -zero = Amount 0
  8936. 479.32 s [really-safe-money-gen] +zero = Amount 1
  8937. 479.32 s [really-safe-money-gen]
  8938. 479.32 s [really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
  8939. 479.32 s [really-safe-money-gen] --
  8940. 479.32 s [really-safe-money-gen]
  8941. 479.42 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31:
  8942. 479.42 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  8943. 479.42 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  8944. 479.42 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  8945. 479.42 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  8946. 479.42 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  8947. 479.42 s [really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
  8948. 479.42 s [really-safe-money-gen] fraction r (Amount a) f =
  8949. 479.42 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  8950. 479.42 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  8951. 479.42 s [really-safe-money-gen]
  8952. 479.63 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37:
  8953. 479.63 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  8954. 479.63 s [really-safe-money-gen] maxBoundN :: Natural
  8955. 479.63 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8956. 479.63 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8957. 479.63 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  8958. 479.63 s [really-safe-money-gen] + in ( if True
  8959. 479.63 s [really-safe-money-gen] then Nothing
  8960. 479.63 s [really-safe-money-gen] else Just result,
  8961. 479.63 s [really-safe-money-gen] actualRate
  8962. 479.63 s [really-safe-money-gen]
  8963. 479.79 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37:
  8964. 479.79 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  8965. 479.79 s [really-safe-money-gen] maxBoundN :: Natural
  8966. 479.79 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8967. 479.79 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8968. 479.79 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  8969. 479.79 s [really-safe-money-gen] + in ( if False
  8970. 479.79 s [really-safe-money-gen] then Nothing
  8971. 479.79 s [really-safe-money-gen] else Just result,
  8972. 479.79 s [really-safe-money-gen] actualRate
  8973. 479.79 s [really-safe-money-gen]
  8974. 479.96 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37:
  8975. 479.96 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  8976. 479.96 s [really-safe-money-gen] maxBoundN :: Natural
  8977. 479.96 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8978. 479.96 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8979. 479.96 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  8980. 479.96 s [really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
  8981. 479.96 s [really-safe-money-gen] then Nothing
  8982. 479.96 s [really-safe-money-gen] else Just result,
  8983. 479.96 s [really-safe-money-gen] actualRate
  8984. 479.96 s [really-safe-money-gen]
  8985. 480.13 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:681:9-27:
  8986. 480.13 s [really-safe-money-gen] @@ -678,7 +678,7 @@
  8987. 480.13 s [really-safe-money-gen] maxBoundN :: Natural
  8988. 480.13 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  8989. 480.13 s [really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
  8990. 480.13 s [really-safe-money-gen] - in ( if roundedResult > maxBoundN
  8991. 480.13 s [really-safe-money-gen] + in ( if roundedResult > maxBoundN
  8992. 480.13 s [really-safe-money-gen] then Nothing
  8993. 480.13 s [really-safe-money-gen] else Just result,
  8994. 480.13 s [really-safe-money-gen] actualRate
  8995. 480.13 s [really-safe-money-gen]
  8996. 480.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92:
  8997. 480.29 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  8998. 480.29 s [really-safe-money-gen]
  8999. 480.29 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  9000. 480.29 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  9001. 480.29 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  9002. 480.29 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
  9003. 480.29 s [really-safe-money-gen]
  9004. 480.29 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92:
  9005. 480.29 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  9006. 480.29 s [really-safe-money-gen]
  9007. 480.29 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  9008. 480.29 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  9009. 480.29 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  9010. 480.29 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
  9011. 480.29 s [really-safe-money-gen]
  9012. 480.29 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92:
  9013. 480.29 s [really-safe-money-gen] @@ -803,4 +803,4 @@
  9014. 480.29 s [really-safe-money-gen]
  9015. 480.29 s [really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
  9016. 480.29 s [really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
  9017. 480.30 s [really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
  9018. 480.30 s [really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
  9019. 480.30 s [really-safe-money-gen]
  9020. 480.30 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22:
  9021. 480.30 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9022. 480.30 s [really-safe-money-gen] case ad of
  9023. 480.30 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9024. 480.30 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9025. 480.30 s [really-safe-money-gen] - a1 > a2
  9026. 480.30 s [really-safe-money-gen] + True
  9027. 480.30 s [really-safe-money-gen] _ -> valid
  9028. 480.30 s [really-safe-money-gen] ]
  9029. 480.30 s [really-safe-money-gen]
  9030. 480.30 s [really-safe-money-gen]
  9031. 480.50 s [really-safe-money-gen] Double) qf
  9032. 480.50 s [really-safe-money-gen] Tests:
  9033. 480.50 s [really-safe-money-gen]
  9034. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9035. 480.51 s [really-safe-money-gen] fromDouble
  9036. 480.51 s [really-safe-money-gen] produces valid rational 36.51 ms
  9037. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9038. 480.51 s [really-safe-money-gen]
  9039. 480.51 s [really-safe-money-gen]
  9040. 480.51 s [really-safe-money-gen]
  9041. 480.51 s [really-safe-money-gen] Examples: 10000
  9042. 480.51 s [really-safe-money-gen] Passed: 1
  9043. 480.51 s [really-safe-money-gen] Failed: 0
  9044. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  9045. 480.51 s [really-safe-money-gen] Test suite took: 0.04 seconds
  9046. 480.51 s [really-safe-money-gen]
  9047. 480.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:321:5-14:
  9048. 480.51 s [really-safe-money-gen] @@ -318,7 +318,7 @@
  9049. 480.51 s [really-safe-money-gen] Maybe Amount
  9050. 480.51 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  9051. 480.51 s [really-safe-money-gen] | d < 0 = Nothing
  9052. 480.51 s [really-safe-money-gen] - | otherwise =
  9053. 480.51 s [really-safe-money-gen] + | True =
  9054. 480.51 s [really-safe-money-gen] let resultDouble :: Double
  9055. 480.51 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  9056. 480.51 s [really-safe-money-gen] in go resultDouble
  9057. 480.51 s [really-safe-money-gen] Tests:
  9058. 480.51 s [really-safe-money-gen]
  9059. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9060. 480.51 s [really-safe-money-gen] fromDouble
  9061. 480.51 s [really-safe-money-gen] produces valid rational 47.45 ms
  9062. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9063. 480.51 s [really-safe-money-gen]
  9064. 480.51 s [really-safe-money-gen]
  9065. 480.51 s [really-safe-money-gen]
  9066. 480.51 s [really-safe-money-gen] Examples: 10000
  9067. 480.51 s [really-safe-money-gen] Passed: 1
  9068. 480.51 s [really-safe-money-gen] Failed: 0
  9069. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9070. 480.51 s [really-safe-money-gen] Test suite took: 0.05 seconds
  9071. 480.51 s [really-safe-money-gen]
  9072. 480.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:321:5-14:
  9073. 480.51 s [really-safe-money-gen] @@ -318,7 +318,7 @@
  9074. 480.51 s [really-safe-money-gen] Maybe Amount
  9075. 480.51 s [really-safe-money-gen] fromDouble (QuantisationFactor qf) d
  9076. 480.51 s [really-safe-money-gen] | d < 0 = Nothing
  9077. 480.51 s [really-safe-money-gen] - | otherwise =
  9078. 480.51 s [really-safe-money-gen] + | False =
  9079. 480.51 s [really-safe-money-gen] let resultDouble :: Double
  9080. 480.51 s [really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
  9081. 480.51 s [really-safe-money-gen] in go resultDouble
  9082. 480.51 s [really-safe-money-gen] Tests:
  9083. 480.51 s [really-safe-money-gen]
  9084. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9085. 480.51 s [really-safe-money-gen] fromDouble
  9086. 480.51 s [really-safe-money-gen] produces valid rational 52.47 ms
  9087. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9088. 480.51 s [really-safe-money-gen]
  9089. 480.51 s [really-safe-money-gen]
  9090. 480.51 s [really-safe-money-gen]
  9091. 480.51 s [really-safe-money-gen] Examples: 10000
  9092. 480.51 s [really-safe-money-gen] Passed: 1
  9093. 480.51 s [really-safe-money-gen] Failed: 0
  9094. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9095. 480.51 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9096. 480.51 s [really-safe-money-gen]
  9097. 480.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:329:9-18:
  9098. 480.51 s [really-safe-money-gen] @@ -326,7 +326,7 @@
  9099. 480.51 s [really-safe-money-gen] go resultDouble
  9100. 480.51 s [really-safe-money-gen] | isNaN d = Nothing
  9101. 480.51 s [really-safe-money-gen] | isInfinite d = Nothing
  9102. 480.51 s [really-safe-money-gen] - | otherwise =
  9103. 480.51 s [really-safe-money-gen] + | True =
  9104. 480.51 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9105. 480.51 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9106. 480.51 s [really-safe-money-gen] if exponent resultDouble > 65
  9107. 480.51 s [really-safe-money-gen] Tests:
  9108. 480.51 s [really-safe-money-gen]
  9109. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9110. 480.51 s [really-safe-money-gen] fromDouble
  9111. 480.51 s [really-safe-money-gen] produces valid rational 52.33 ms
  9112. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9113. 480.51 s [really-safe-money-gen]
  9114. 480.51 s [really-safe-money-gen]
  9115. 480.51 s [really-safe-money-gen]
  9116. 480.51 s [really-safe-money-gen] Examples: 10000
  9117. 480.51 s [really-safe-money-gen] Passed: 1
  9118. 480.51 s [really-safe-money-gen] Failed: 0
  9119. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9120. 480.51 s [really-safe-money-gen] Test suite took: 0.05 seconds
  9121. 480.51 s [really-safe-money-gen]
  9122. 480.51 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:329:9-18:
  9123. 480.51 s [really-safe-money-gen] @@ -326,7 +326,7 @@
  9124. 480.51 s [really-safe-money-gen] go resultDouble
  9125. 480.51 s [really-safe-money-gen] | isNaN d = Nothing
  9126. 480.51 s [really-safe-money-gen] | isInfinite d = Nothing
  9127. 480.51 s [really-safe-money-gen] - | otherwise =
  9128. 480.51 s [really-safe-money-gen] + | False =
  9129. 480.51 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9130. 480.51 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9131. 480.51 s [really-safe-money-gen] if exponent resultDouble > 65
  9132. 480.51 s [really-safe-money-gen] Tests:
  9133. 480.51 s [really-safe-money-gen]
  9134. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9135. 480.51 s [really-safe-money-gen] fromDouble
  9136. 480.51 s [really-safe-money-gen] produces valid rational 54.44 ms
  9137. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9138. 480.51 s [really-safe-money-gen]
  9139. 480.51 s [really-safe-money-gen]
  9140. 480.51 s [really-safe-money-gen]
  9141. 480.51 s [really-safe-money-gen] Examples: 10000
  9142. 480.51 s [really-safe-money-gen] Passed: 1
  9143. 480.51 s [really-safe-money-gen] Failed: 0
  9144. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9145. 480.51 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9146. 480.51 s [really-safe-money-gen]
  9147. 480.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40:
  9148. 480.51 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9149. 480.51 s [really-safe-money-gen] | otherwise =
  9150. 480.51 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9151. 480.51 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9152. 480.51 s [really-safe-money-gen] - if exponent resultDouble > 65
  9153. 480.51 s [really-safe-money-gen] + if exponent resultDouble > 0
  9154. 480.51 s [really-safe-money-gen] then Nothing
  9155. 480.51 s [really-safe-money-gen] else
  9156. 480.51 s [really-safe-money-gen] let ceiled :: Natural
  9157. 480.51 s [really-safe-money-gen] Tests:
  9158. 480.51 s [really-safe-money-gen]
  9159. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9160. 480.51 s [really-safe-money-gen] fromDouble
  9161. 480.51 s [really-safe-money-gen] produces valid rational 46.32 ms
  9162. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9163. 480.51 s [really-safe-money-gen]
  9164. 480.51 s [really-safe-money-gen]
  9165. 480.51 s [really-safe-money-gen]
  9166. 480.51 s [really-safe-money-gen] Examples: 10000
  9167. 480.51 s [really-safe-money-gen] Passed: 1
  9168. 480.51 s [really-safe-money-gen] Failed: 0
  9169. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9170. 480.51 s [really-safe-money-gen] Test suite took: 0.05 seconds
  9171. 480.51 s [really-safe-money-gen]
  9172. 480.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40:
  9173. 480.51 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9174. 480.51 s [really-safe-money-gen] | otherwise =
  9175. 480.51 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9176. 480.51 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9177. 480.51 s [really-safe-money-gen] - if exponent resultDouble > 65
  9178. 480.51 s [really-safe-money-gen] + if exponent resultDouble > 1
  9179. 480.51 s [really-safe-money-gen] then Nothing
  9180. 480.51 s [really-safe-money-gen] else
  9181. 480.51 s [really-safe-money-gen] let ceiled :: Natural
  9182. 480.51 s [really-safe-money-gen] Tests:
  9183. 480.51 s [really-safe-money-gen]
  9184. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9185. 480.51 s [really-safe-money-gen] fromDouble
  9186. 480.51 s [really-safe-money-gen] produces valid rational 46.32 ms
  9187. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9188. 480.51 s [really-safe-money-gen]
  9189. 480.51 s [really-safe-money-gen]
  9190. 480.51 s [really-safe-money-gen]
  9191. 480.51 s [really-safe-money-gen] Examples: 10000
  9192. 480.51 s [really-safe-money-gen] Passed: 1
  9193. 480.51 s [really-safe-money-gen] Failed: 0
  9194. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9195. 480.51 s [really-safe-money-gen] Test suite took: 0.05 seconds
  9196. 480.51 s [really-safe-money-gen]
  9197. 480.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40:
  9198. 480.51 s [really-safe-money-gen] @@ -329,7 +329,7 @@
  9199. 480.51 s [really-safe-money-gen] | otherwise =
  9200. 480.51 s [really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
  9201. 480.51 s [really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
  9202. 480.51 s [really-safe-money-gen] - if exponent resultDouble > 65
  9203. 480.51 s [really-safe-money-gen] + if exponent resultDouble > -65
  9204. 480.51 s [really-safe-money-gen] then Nothing
  9205. 480.51 s [really-safe-money-gen] else
  9206. 480.51 s [really-safe-money-gen] let ceiled :: Natural
  9207. 480.51 s [really-safe-money-gen] Tests:
  9208. 480.51 s [really-safe-money-gen]
  9209. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9210. 480.51 s [really-safe-money-gen] fromDouble
  9211. 480.51 s [really-safe-money-gen] produces valid rational 45.93 ms
  9212. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9213. 480.51 s [really-safe-money-gen]
  9214. 480.51 s [really-safe-money-gen]
  9215. 480.51 s [really-safe-money-gen]
  9216. 480.51 s [really-safe-money-gen] Examples: 10000
  9217. 480.51 s [really-safe-money-gen] Passed: 1
  9218. 480.51 s [really-safe-money-gen] Failed: 0
  9219. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9220. 480.51 s [really-safe-money-gen] Test suite took: 0.05 seconds
  9221. 480.51 s [really-safe-money-gen]
  9222. 480.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97:
  9223. 480.51 s [really-safe-money-gen] @@ -491,7 +491,7 @@
  9224. 480.51 s [really-safe-money-gen] let maxBoundI :: Integer
  9225. 480.51 s [really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
  9226. 480.51 s [really-safe-money-gen] r :: Integer
  9227. 480.51 s [really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
  9228. 480.51 s [really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
  9229. 480.51 s [really-safe-money-gen] in if r > maxBoundI
  9230. 480.51 s [really-safe-money-gen] then Nothing
  9231. 480.51 s [really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
  9232. 480.51 s [really-safe-money-gen] Tests:
  9233. 480.51 s [really-safe-money-gen]
  9234. 480.51 s [really-safe-money-gen] Money.AmountOfSpec
  9235. 480.51 s [really-safe-money-gen] USD
  9236. 480.51 s [really-safe-money-gen] sum
  9237. 480.51 s [really-safe-money-gen] produces valid amounts 1.33 ms
  9238. 480.51 s [really-safe-money-gen] passed for all of 100 inputs.
  9239. 480.51 s [really-safe-money-gen]
  9240. 480.51 s [really-safe-money-gen]
  9241. 480.51 s [really-safe-money-gen]
  9242. 480.51 s [really-safe-money-gen] Examples: 100
  9243. 480.51 s [really-safe-money-gen] Passed: 1
  9244. 480.51 s [really-safe-money-gen] Failed: 0
  9245. 480.51 s [really-safe-money-gen] Sum of test runtimes: 0.00 seconds
  9246. 480.51 s [really-safe-money-gen] Test suite took: 0.00 seconds
  9247. 480.51 s [really-safe-money-gen]
  9248. 480.51 s [really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31:
  9249. 480.51 s [really-safe-money-gen] @@ -658,7 +658,7 @@
  9250. 480.51 s [really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
  9251. 480.51 s [really-safe-money-gen] (Maybe Amount, Ratio Natural)
  9252. 480.51 s [really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
  9253. 480.51 s [really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
  9254. 480.51 s [really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
  9255. 480.51 s [really-safe-money-gen] fraction r (Amount a) f =
  9256. 480.51 s [really-safe-money-gen] let amountAsRatio :: Ratio Natural
  9257. 480.51 s [really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
  9258. 480.51 s [really-safe-money-gen] Tests:
  9259. 480.51 s [really-safe-money-gen]
  9260. 480.51 s [really-safe-money-gen] Money.AccountSpec
  9261. 480.51 s [really-safe-money-gen] fractionRatio
  9262. 480.51 s [really-safe-money-gen] produces valid amounts 106.69 ms
  9263. 480.51 s [really-safe-money-gen] passed for all of 10000 inputs.
  9264. 480.51 s [really-safe-money-gen]
  9265. 480.51 s [really-safe-money-gen]
  9266. 480.51 s [really-safe-money-gen]
  9267. 480.51 s [really-safe-money-gen] Examples: 10000
  9268. 480.51 s [really-safe-money-gen] Passed: 1
  9269. 480.52 s [really-safe-money-gen] Failed: 0
  9270. 480.52 s [really-safe-money-gen] Sum of test runtimes: 0.11 seconds
  9271. 480.52 s [really-safe-money-gen] Test suite took: 0.11 seconds
  9272. 480.52 s [really-safe-money-gen]
  9273. 480.52 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22:
  9274. 480.52 s [really-safe-money-gen] @Testing mutation ConstBool at src/Money/Amount.hs:607:15-22:
  9275. 480.52 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9276. 480.52 s [really-safe-money-gen] case ad of
  9277. 480.52 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9278. 480.52 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9279. 480.52 s [really-safe-money-gen] - a1 > a2
  9280. 480.52 s [really-safe-money-gen] + False
  9281. 480.52 s [really-safe-money-gen] _ -> valid
  9282. 480.52 s [really-safe-money-gen] ]
  9283. 480.52 s [really-safe-money-gen]
  9284. 480.52 s [really-safe-money-gen]
  9285. 480.72 s [really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22:
  9286. 480.72 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9287. 480.72 s [really-safe-money-gen] case ad of
  9288. 480.72 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9289. 480.72 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9290. 480.72 s [really-safe-money-gen] - a1 > a2
  9291. 480.72 s [really-safe-money-gen] + not (a1 > a2)
  9292. 480.72 s [really-safe-money-gen] _ -> valid
  9293. 480.72 s [really-safe-money-gen] ]
  9294. 480.72 s [really-safe-money-gen]
  9295. 480.72 s [really-safe-money-gen]
  9296. 480.81 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8:
  9297. 480.81 s [really-safe-money-gen] @@ -600,7 +600,7 @@
  9298. 480.81 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9299. 480.81 s [really-safe-money-gen] validate ad =
  9300. 480.81 s [really-safe-money-gen] mconcat
  9301. 480.82 s [really-safe-money-gen] - [ genericValidate ad,
  9302. 480.82 s [really-safe-money-gen] + [ genericValidate ad,
  9303. 480.82 s [really-safe-money-gen] case ad of
  9304. 480.82 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9305. 480.82 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9306. 480.82 s [really-safe-money-gen]
  9307. 480.97 s [really-safe-money-gen] @ -604,7 +604,7 @@
  9308. 480.97 s [really-safe-money-gen] case ad of
  9309. 480.97 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9310. 480.97 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9311. 480.97 s [really-safe-money-gen] - a1 > a2
  9312. 480.97 s [really-safe-money-gen] + True
  9313. 480.97 s [really-safe-money-gen] _ -> valid
  9314. 480.97 s [really-safe-money-gen] ]
  9315. 480.97 s [really-safe-money-gen]
  9316. 480.97 s [really-safe-money-gen] Tests:
  9317. 480.97 s [really-safe-money-gen]
  9318. 480.97 s [really-safe-money-gen] Money.AccountSpec
  9319. 480.97 s [really-safe-money-gen] distribute
  9320. 480.97 s [really-safe-money-gen] produces valid amounts 42.89 ms
  9321. 480.97 s [really-safe-money-gen] passed for all of 10000 inputs.
  9322. 480.97 s [really-safe-money-gen] Money.AccountOfSpec
  9323. 480.97 s [really-safe-money-gen] USD
  9324. 480.97 s [really-safe-money-gen] distribute
  9325. 480.97 s [really-safe-money-gen] produces valid amounts 0.40 ms
  9326. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9327. 480.97 s [really-safe-money-gen] INR
  9328. 480.97 s [really-safe-money-gen] distribute
  9329. 480.97 s [really-safe-money-gen] produces valid amounts 0.35 ms
  9330. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9331. 480.97 s [really-safe-money-gen] CHF
  9332. 480.97 s [really-safe-money-gen] distribute
  9333. 480.97 s [really-safe-money-gen] produces valid amounts 0.75 ms
  9334. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9335. 480.97 s [really-safe-money-gen] ADA
  9336. 480.97 s [really-safe-money-gen] distribute
  9337. 480.97 s [really-safe-money-gen] produces valid amounts 0.36 ms
  9338. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9339. 480.97 s [really-safe-money-gen] BTC
  9340. 480.97 s [really-safe-money-gen] distribute
  9341. 480.97 s [really-safe-money-gen] produces valid amounts 0.46 ms
  9342. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9343. 480.97 s [really-safe-money-gen] Money.AmountOfSpec
  9344. 480.97 s [really-safe-money-gen] USD
  9345. 480.97 s [really-safe-money-gen] distribute
  9346. 480.97 s [really-safe-money-gen] produces valid amounts 0.27 ms
  9347. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9348. 480.97 s [really-safe-money-gen] ADA
  9349. 480.97 s [really-safe-money-gen] distribute
  9350. 480.97 s [really-safe-money-gen] produces valid amounts 0.30 ms
  9351. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9352. 480.97 s [really-safe-money-gen] INR
  9353. 480.97 s [really-safe-money-gen] distribute
  9354. 480.97 s [really-safe-money-gen] produces valid amounts 0.41 ms
  9355. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9356. 480.97 s [really-safe-money-gen] BTC
  9357. 480.97 s [really-safe-money-gen] distribute
  9358. 480.97 s [really-safe-money-gen] produces valid amounts 0.68 ms
  9359. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9360. 480.97 s [really-safe-money-gen] CHF
  9361. 480.97 s [really-safe-money-gen] distribute
  9362. 480.97 s [really-safe-money-gen] produces valid amounts 0.41 ms
  9363. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9364. 480.97 s [really-safe-money-gen] Money.AmountSpec
  9365. 480.97 s [really-safe-money-gen] distribute
  9366. 480.97 s [really-safe-money-gen] GenValid (Distribution Amount)
  9367. 480.97 s [really-safe-money-gen] genValid :: Gen (Distribution Amount)
  9368. 480.97 s [really-safe-money-gen] only generates valid '(Distribution Amount)'s 27.21 ms
  9369. 480.97 s [really-safe-money-gen] passed for all of 10000 inputs.
  9370. 480.97 s [really-safe-money-gen] produces valid amounts 35.89 ms
  9371. 480.97 s [really-safe-money-gen] passed for all of 10000 inputs.
  9372. 480.97 s [really-safe-money-gen]
  9373. 480.97 s [really-safe-money-gen]
  9374. 480.97 s [really-safe-money-gen]
  9375. 480.97 s [really-safe-money-gen] Examples: 31000
  9376. 480.97 s [really-safe-money-gen] Passed: 13
  9377. 480.97 s [really-safe-money-gen] Failed: 0
  9378. 480.97 s [really-safe-money-gen] Sum of test runtimes: 0.11 seconds
  9379. 480.97 s [really-safe-money-gen] Test suite took: 0.12 seconds
  9380. 480.97 s [really-safe-money-gen]
  9381. 480.97 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22:
  9382. 480.97 s [really-safe-money-gen] @@ -604,7 +604,7 @@
  9383. 480.97 s [really-safe-money-gen] case ad of
  9384. 480.97 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9385. 480.97 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9386. 480.97 s [really-safe-money-gen] - a1 > a2
  9387. 480.97 s [really-safe-money-gen] + False
  9388. 480.97 s [really-safe-money-gen] _ -> valid
  9389. 480.97 s [really-safe-money-gen] ]
  9390. 480.97 s [really-safe-money-gen]
  9391. 480.97 s [really-safe-money-gen] Tests:
  9392. 480.97 s [really-safe-money-gen]
  9393. 480.97 s [really-safe-money-gen] Money.AccountSpec
  9394. 480.97 s [really-safe-money-gen] distribute
  9395. 480.97 s [really-safe-money-gen] produces valid amounts 44.16 ms
  9396. 480.97 s [really-safe-money-gen] passed for all of 10000 inputs.
  9397. 480.97 s [really-safe-money-gen] Money.AccountOfSpec
  9398. 480.97 s [really-safe-money-gen] USD
  9399. 480.97 s [really-safe-money-gen] distribute
  9400. 480.97 s [really-safe-money-gen] produces valid amounts 0.33 ms
  9401. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9402. 480.97 s [really-safe-money-gen] INR
  9403. 480.97 s [really-safe-money-gen] distribute
  9404. 480.97 s [really-safe-money-gen] produces valid amounts 0.32 ms
  9405. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9406. 480.97 s [really-safe-money-gen] CHF
  9407. 480.97 s [really-safe-money-gen] distribute
  9408. 480.97 s [really-safe-money-gen] produces valid amounts 0.88 ms
  9409. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9410. 480.97 s [really-safe-money-gen] ADA
  9411. 480.97 s [really-safe-money-gen] distribute
  9412. 480.97 s [really-safe-money-gen] produces valid amounts 0.34 ms
  9413. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9414. 480.97 s [really-safe-money-gen] BTC
  9415. 480.97 s [really-safe-money-gen] distribute
  9416. 480.97 s [really-safe-money-gen] produces valid amounts 0.30 ms
  9417. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9418. 480.97 s [really-safe-money-gen] Money.AmountOfSpec
  9419. 480.97 s [really-safe-money-gen] USD
  9420. 480.97 s [really-safe-money-gen] distribute
  9421. 480.97 s [really-safe-money-gen] produces valid amounts 0.33 ms
  9422. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9423. 480.97 s [really-safe-money-gen] ADA
  9424. 480.97 s [really-safe-money-gen] distribute
  9425. 480.97 s [really-safe-money-gen] produces valid amounts 0.26 ms
  9426. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9427. 480.97 s [really-safe-money-gen] INR
  9428. 480.97 s [really-safe-money-gen] distribute
  9429. 480.97 s [really-safe-money-gen] produces valid amounts 0.27 ms
  9430. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9431. 480.97 s [really-safe-money-gen] BTC
  9432. 480.97 s [really-safe-money-gen] distribute
  9433. 480.97 s [really-safe-money-gen] produces valid amounts 0.92 ms
  9434. 480.97 s [really-safe-money-gen] passed for all of 100 inputs.
  9435. 480.97 s [really-safe-money-gen] CHF
  9436. 480.98 s [really-safe-money-gen] distribute
  9437. 480.98 s [really-safe-money-gen] produces valid amounts 0.47 ms
  9438. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9439. 480.98 s [really-safe-money-gen] Money.AmountSpec
  9440. 480.98 s [really-safe-money-gen] distribute
  9441. 480.98 s [really-safe-money-gen] GenValid (Distribution Amount)
  9442. 480.98 s [really-safe-money-gen] genValid :: Gen (Distribution Amount)
  9443. 480.98 s [really-safe-money-gen] only generates valid '(Distribution Amount)'s 30.43 ms
  9444. 480.98 s [really-safe-money-gen] passed for all of 10000 inputs.
  9445. 480.98 s [really-safe-money-gen] produces valid amounts 35.75 ms
  9446. 480.98 s [really-safe-money-gen] passed for all of 10000 inputs.
  9447. 480.98 s [really-safe-money-gen]
  9448. 480.98 s [really-safe-money-gen]
  9449. 480.98 s [really-safe-money-gen]
  9450. 480.98 s [really-safe-money-gen] Examples: 31000
  9451. 480.98 s [really-safe-money-gen] Passed: 13
  9452. 480.98 s [really-safe-money-gen] Failed: 0
  9453. 480.98 s [really-safe-money-gen] Sum of test runtimes: 0.11 seconds
  9454. 480.98 s [really-safe-money-gen] Test suite took: 0.12 seconds
  9455. 480.98 s [really-safe-money-gen]
  9456. 480.98 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8:
  9457. 480.98 s [really-safe-money-gen] @@ -600,7 +600,7 @@
  9458. 480.98 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9459. 480.98 s [really-safe-money-gen] validate ad =
  9460. 480.98 s [really-safe-money-gen] mconcat
  9461. 480.98 s [really-safe-money-gen] - [ genericValidate ad,
  9462. 480.98 s [really-safe-money-gen] + [ genericValidate ad,
  9463. 480.98 s [really-safe-money-gen] case ad of
  9464. 480.98 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9465. 480.98 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9466. 480.98 s [really-safe-money-gen] Tests:
  9467. 480.98 s [really-safe-money-gen]
  9468. 480.98 s [really-safe-money-gen] Money.AccountSpec
  9469. 480.98 s [really-safe-money-gen] distribute
  9470. 480.98 s [really-safe-money-gen] produces valid amounts 19.56 ms
  9471. 480.98 s [really-safe-money-gen] passed for all of 10000 inputs.
  9472. 480.98 s [really-safe-money-gen] Money.AccountOfSpec
  9473. 480.98 s [really-safe-money-gen] USD
  9474. 480.98 s [really-safe-money-gen] distribute
  9475. 480.98 s [really-safe-money-gen] produces valid amounts 0.12 ms
  9476. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9477. 480.98 s [really-safe-money-gen] INR
  9478. 480.98 s [really-safe-money-gen] distribute
  9479. 480.98 s [really-safe-money-gen] produces valid amounts 0.17 ms
  9480. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9481. 480.98 s [really-safe-money-gen] CHF
  9482. 480.98 s [really-safe-money-gen] distribute
  9483. 480.98 s [really-safe-money-gen] produces valid amounts 0.19 ms
  9484. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9485. 480.98 s [really-safe-money-gen] ADA
  9486. 480.98 s [really-safe-money-gen] distribute
  9487. 480.98 s [really-safe-money-gen] produces valid amounts 0.14 ms
  9488. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9489. 480.98 s [really-safe-money-gen] BTC
  9490. 480.98 s [really-safe-money-gen] distribute
  9491. 480.98 s [really-safe-money-gen] produces valid amounts 0.57 ms
  9492. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9493. 480.98 s [really-safe-money-gen] Money.AmountOfSpec
  9494. 480.98 s [really-safe-money-gen] USD
  9495. 480.98 s [really-safe-money-gen] distribute
  9496. 480.98 s [really-safe-money-gen] produces valid amounts 0.16 ms
  9497. 480.98 s [really-safe-money-gen] passed for all of 100 inputs.
  9498. 480.98 s [really-safe-money-gen] ADA
  9499. 480.98 s [really-safe-money-gen] distribute
  9500. 480.98 s [really-safe-money-gen] produces valid amounts Testing mutation ListLit at src/Money/Amount.hs:603:7-8:
  9501. 480.98 s [really-safe-money-gen] @@ -600,7 +600,7 @@
  9502. 480.98 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9503. 480.98 s [really-safe-money-gen] validate ad =
  9504. 480.98 s [really-safe-money-gen] mconcat
  9505. 480.98 s [really-safe-money-gen] - [ genericValidate ad,
  9506. 480.98 s [really-safe-money-gen] + [ genericValidate ad,
  9507. 480.98 s [really-safe-money-gen] case ad of
  9508. 480.98 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9509. 480.98 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9510. 480.98 s [really-safe-money-gen]
  9511. 481.12 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28:
  9512. 481.12 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  9513. 481.12 s [really-safe-money-gen] fromDecimalLiteral dl = do
  9514. 481.12 s [really-safe-money-gen] irat <-
  9515. 481.12 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  9516. 481.12 s [really-safe-money-gen] - in if numerator r == 0
  9517. 481.12 s [really-safe-money-gen] + in if numerator r == 1
  9518. 481.12 s [really-safe-money-gen] then Nothing
  9519. 481.12 s [really-safe-money-gen] else pure r
  9520. 481.12 s [really-safe-money-gen]
  9521. 481.12 s [really-safe-money-gen]
  9522. 481.27 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28:
  9523. 481.27 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  9524. 481.37 s [really-safe-money-gen] fromDecimalLiteral dl = do
  9525. 481.37 s [really-safe-money-gen] irat <-
  9526. 481.37 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  9527. 481.37 s [really-safe-money-gen] - in if numerator r == 0
  9528. 481.37 s [really-safe-money-gen] + in if True
  9529. 481.37 s [really-safe-money-gen] then Nothing
  9530. 481.37 s [really-safe-money-gen] else pure r
  9531. 481.37 s [really-safe-money-gen]
  9532. 481.37 s [really-safe-money-gen]
  9533. 481.61 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28:
  9534. 481.61 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  9535. 481.61 s [really-safe-money-gen] fromDecimalLiteral dl = do
  9536. 481.61 s [really-safe-money-gen] irat <-
  9537. 481.61 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  9538. 481.61 s [really-safe-money-gen] - in if numerator r == 0
  9539. 481.61 s [really-safe-money-gen] + in if False
  9540. 481.61 s [really-safe-money-gen] then Nothing
  9541. 481.61 s [really-safe-money-gen] else pure r
  9542. 481.61 s [really-safe-money-gen]
  9543. 481.61 s [really-safe-money-gen]
  9544. 481.97 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28:
  9545. 481.97 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  9546. 481.97 s [really-safe-money-gen] fromDecimalLiteral dl = do
  9547. 481.97 s [really-safe-money-gen] irat <-
  9548. 481.97 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  9549. 481.97 s [really-safe-money-gen] - in if numerator r == 0
  9550. 481.97 s [really-safe-money-gen] + in if not (numerator r == 0)
  9551. 481.97 s [really-safe-money-gen] then Nothing
  9552. 481.97 s [really-safe-money-gen] else pure r
  9553. 481.97 s [really-safe-money-gen]
  9554. 481.97 s [really-safe-money-gen]
  9555. 482.11 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22:
  9556. 482.11 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  9557. 482.11 s [really-safe-money-gen] fromDecimalLiteral dl = do
  9558. 482.11 s [really-safe-money-gen] irat <-
  9559. 482.11 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  9560. 482.11 s [really-safe-money-gen] - in if numerator r == 0
  9561. 482.11 s [really-safe-money-gen] + in if numerator r == 0
  9562. 482.11 s [really-safe-money-gen] then Nothing
  9563. 482.11 s [really-safe-money-gen] else pure r
  9564. 482.11 s [really-safe-money-gen]
  9565. 482.11 s [really-safe-money-gen]
  9566. 482.25 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14:
  9567. 482.25 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  9568. 482.25 s [really-safe-money-gen] else pure r
  9569. 482.25 s [really-safe-money-gen]
  9570. 482.25 s [really-safe-money-gen] rat <-
  9571. 482.25 s [really-safe-money-gen] - let r = 1 / irat
  9572. 482.25 s [really-safe-money-gen] + let r = 0 / irat
  9573. 482.25 s [really-safe-money-gen] in if r < 0
  9574. 482.25 s [really-safe-money-gen] then Nothing
  9575. 482.25 s [really-safe-money-gen] else Just r
  9576. 482.25 s [really-safe-money-gen]
  9577. 482.34 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14:
  9578. 482.34 s [really-safe-money-gen] @@ -89,7 +89,7 @@
  9579. 482.34 s [really-safe-money-gen] else pure r
  9580. 482.34 s [really-safe-money-gen]
  9581. 482.34 s [really-safe-money-gen] rat <-
  9582. 482.34 s [really-safe-money-gen] - let r = 1 / irat
  9583. 482.34 s [really-safe-money-gen] + let r = -1 / irat
  9584. 482.34 s [really-safe-money-gen] in if r < 0
  9585. 482.34 s [really-safe-money-gen] then Nothing
  9586. 482.34 s [really-safe-money-gen] else Just r
  9587. 482.34 s [really-safe-money-gen]
  9588. 482.43 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17:
  9589. 482.43 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9590. 482.43 s [really-safe-money-gen]
  9591. 482.43 s [really-safe-money-gen] rat <-
  9592. 482.43 s [really-safe-money-gen] let r = 1 / irat
  9593. 482.43 s [really-safe-money-gen] - in if r < 0
  9594. 482.43 s [really-safe-money-gen] + in if r < 1
  9595. 482.43 s [really-safe-money-gen] then Nothing
  9596. 482.43 s [really-safe-money-gen] else Just r
  9597. 482.43 s [really-safe-money-gen]
  9598. 482.43 s [really-safe-money-gen]
  9599. 482.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17:
  9600. 482.57 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9601. 482.57 s [really-safe-money-gen]
  9602. 482.57 s [really-safe-money-gen] rat <-
  9603. 482.57 s [really-safe-money-gen] let r = 1 / irat
  9604. 482.57 s [really-safe-money-gen] - in if r < 0
  9605. 482.57 s [really-safe-money-gen] + in if True
  9606. 482.57 s [really-safe-money-gen] then Nothing
  9607. 482.57 s [really-safe-money-gen] else Just r
  9608. 482.57 s [really-safe-money-gen]
  9609. 482.57 s [really-safe-money-gen]
  9610. 482.98 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17:
  9611. 482.98 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9612. 482.98 s [really-safe-money-gen]
  9613. 482.98 s [really-safe-money-gen] rat <-
  9614. 482.98 s [really-safe-money-gen] let r = 1 / irat
  9615. 482.98 s [really-safe-money-gen] - in if r < 0
  9616. 482.98 s [really-safe-money-gen] + in if False
  9617. 482.98 s [really-safe-money-gen] then Nothing
  9618. 482.98 s [really-safe-money-gen] else Just r
  9619. 482.98 s [really-safe-money-gen]
  9620. 482.98 s [really-safe-money-gen]
  9621. 483.39 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17:
  9622. 483.39 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9623. 483.39 s [really-safe-money-gen]
  9624. 483.39 s [really-safe-money-gen] rat <-
  9625. 483.39 s [really-safe-money-gen] let r = 1 / irat
  9626. 483.39 s [really-safe-money-gen] - in if r < 0
  9627. 483.39 s [really-safe-money-gen] + in if not (r < 0)
  9628. 483.39 s [really-safe-money-gen] then Nothing
  9629. 483.39 s [really-safe-money-gen] else Just r
  9630. 483.39 s [really-safe-money-gen]
  9631. 483.39 s [really-safe-money-gen]
  9632. 483.54 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22:
  9633. 483.54 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9634. 483.54 s [really-safe-money-gen]
  9635. 483.54 s [really-safe-money-gen] rat <-
  9636. 483.54 s [really-safe-money-gen] let r = 1 / irat
  9637. 483.54 s [really-safe-money-gen] - in if r < 0
  9638. 483.54 s [really-safe-money-gen] + in if r < 0
  9639. 483.54 s [really-safe-money-gen] then Nothing
  9640. 483.54 s [really-safe-money-gen] else Just r
  9641. 483.54 s [really-safe-money-gen]
  9642. 483.54 s [really-safe-money-gen]
  9643. 483.69 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28:
  9644. 483.69 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9645. 483.69 s [really-safe-money-gen] else Just r
  9646. 483.69 s [really-safe-money-gen]
  9647. 483.69 s [really-safe-money-gen] fac <-
  9648. 483.69 s [really-safe-money-gen] - if denominator rat == 1
  9649. 483.69 s [really-safe-money-gen] + if denominator rat == 0
  9650. 483.69 s [really-safe-money-gen] then Just (numerator rat)
  9651. 483.69 s [really-safe-money-gen] else Nothing
  9652. 483.69 s [really-safe-money-gen]
  9653. 483.69 s [really-safe-money-gen]
  9654. 483.84 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28:
  9655. 483.84 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9656. 483.84 s [really-safe-money-gen] else Just r
  9657. 483.84 s [really-safe-money-gen]
  9658. 483.84 s [really-safe-money-gen] fac <-
  9659. 483.84 s [really-safe-money-gen] - if denominator rat == 1
  9660. 483.84 s [really-safe-money-gen] + if denominator rat == -1
  9661. 483.84 s [really-safe-money-gen] then Just (numerator rat)
  9662. 483.84 s [really-safe-money-gen] else Nothing
  9663. 483.84 s [really-safe-money-gen]
  9664. 483.84 s [really-safe-money-gen]
  9665. 483.99 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28:
  9666. 483.99 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9667. 483.99 s [really-safe-money-gen] else Just r
  9668. 483.99 s [really-safe-money-gen]
  9669. 483.99 s [really-safe-money-gen] fac <-
  9670. 483.99 s [really-safe-money-gen] - if denominator rat == 1
  9671. 483.99 s [really-safe-money-gen] + if True
  9672. 483.99 s [really-safe-money-gen] then Just (numerator rat)
  9673. 483.99 s [really-safe-money-gen] else Nothing
  9674. 483.99 s [really-safe-money-gen]
  9675. 483.99 s [really-safe-money-gen]
  9676. 484.09 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28:
  9677. 484.09 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9678. 484.09 s [really-safe-money-gen] else Just r
  9679. 484.09 s [really-safe-money-gen]
  9680. 484.09 s [really-safe-money-gen] fac <-
  9681. 484.09 s [really-safe-money-gen] - if denominator rat == 1
  9682. 484.09 s [really-safe-money-gen] + if False
  9683. 484.09 s [really-safe-money-gen] then Just (numerator rat)
  9684. 484.09 s [really-safe-money-gen] else Nothing
  9685. 484.09 s [really-safe-money-gen]
  9686. 484.09 s [really-safe-money-gen]
  9687. 484.18 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28:
  9688. 484.18 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9689. 484.18 s [really-safe-money-gen] else Just r
  9690. 484.18 s [really-safe-money-gen]
  9691. 484.18 s [really-safe-money-gen] fac <-
  9692. 484.18 s [really-safe-money-gen] - if denominator rat == 1
  9693. 484.18 s [really-safe-money-gen] + if not (denominator rat == 1)
  9694. 484.18 s [really-safe-money-gen] then Just (numerator rat)
  9695. 484.18 s [really-safe-money-gen] else Nothing
  9696. 484.18 s [really-safe-money-gen]
  9697. 484.18 s [really-safe-money-gen]
  9698. 484.28 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19:
  9699. 484.28 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9700. 484.28 s [really-safe-money-gen] else Just r
  9701. 484.28 s [really-safe-money-gen]
  9702. 484.28 s [really-safe-money-gen] fac <-
  9703. 484.28 s [really-safe-money-gen] - if denominator rat == 1
  9704. 484.28 s [really-safe-money-gen] + if denominator rat == 1
  9705. 484.28 s [really-safe-money-gen] then Just (numerator rat)
  9706. 484.28 s [really-safe-money-gen] else Nothing
  9707. 484.28 s [really-safe-money-gen]
  9708. 484.28 s [really-safe-money-gen]
  9709. 484.38 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46:
  9710. 484.38 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  9711. 484.38 s [really-safe-money-gen] then Just (numerator rat)
  9712. 484.38 s [really-safe-money-gen] else Nothing
  9713. 484.38 s [really-safe-money-gen]
  9714. 484.38 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  9715. 484.38 s [really-safe-money-gen] + if True
  9716. 484.38 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  9717. 484.38 s [really-safe-money-gen] else Nothing
  9718. 484.38 s [really-safe-money-gen]
  9719. 484.48 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46:
  9720. 484.48 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  9721. 484.48 s [really-safe-money-gen] then Just (numerator rat)
  9722. 484.48 s [really-safe-money-gen] else Nothing
  9723. 484.48 s [really-safe-money-gen]
  9724. 484.48 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  9725. 484.48 s [really-safe-money-gen] + if False
  9726. 484.48 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  9727. 484.48 s [really-safe-money-gen] else Nothing
  9728. 484.48 s [really-safe-money-gen]
  9729. 484.58 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46:
  9730. 484.58 s [really-safe-money-gen] @@ -99,6 +99,6 @@
  9731. 484.58 s [really-safe-money-gen] then Just (numerator rat)
  9732. 484.58 s [really-safe-money-gen] else Nothing
  9733. 484.58 s [really-safe-money-gen]
  9734. 484.58 s [really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
  9735. 484.58 s [really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
  9736. 484.58 s [really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
  9737. 484.59 s [really-safe-money-gen] else Nothing
  9738. 484.59 s [really-safe-money-gen]
  9739. 484.68 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68:
  9740. 484.68 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  9741. 484.68 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  9742. 484.68 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  9743. 484.69 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  9744. 484.69 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  9745. 484.69 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
  9746. 484.69 s [really-safe-money-gen]
  9747. 484.69 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  9748. 484.69 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  9749. 484.69 s [really-safe-money-gen]
  9750. 484.77 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68:
  9751. 484.77 s [really-safe-money-gen] @@ -64,7 +64,7 @@
  9752. 484.77 s [really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
  9753. 484.77 s [really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
  9754. 484.77 s [really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
  9755. 484.77 s [really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
  9756. 484.77 s [really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
  9757. 484.77 s [really-safe-money-gen]
  9758. 484.77 s [really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
  9759. 484.77 s [really-safe-money-gen] -- TODO explain that it's the inverse.
  9760. 484.77 s [really-safe-money-gen]
  9761. 484.87 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63:
  9762. 484.87 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  9763. 484.87 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9764. 484.87 s [really-safe-money-gen] mconcat
  9765. 484.87 s [really-safe-money-gen] [ genericValidate qf,
  9766. 484.87 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9767. 484.87 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
  9768. 484.87 s [really-safe-money-gen] ]
  9769. 484.87 s [really-safe-money-gen]
  9770. 484.87 s [really-safe-money-gen] instance NFData QuantisationFactor
  9771. 484.87 s [really-safe-money-gen]
  9772. 484.96 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63:
  9773. 484.96 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  9774. 484.96 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9775. 484.96 s [really-safe-money-gen] mconcat
  9776. 484.96 s [really-safe-money-gen] [ genericValidate qf,
  9777. 484.96 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9778. 484.96 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  9779. 484.96 s [really-safe-money-gen] ]
  9780. 484.96 s [really-safe-money-gen]
  9781. 484.96 s [really-safe-money-gen] instance NFData QuantisationFactor
  9782. 484.96 s [really-safe-money-gen]
  9783. 486.03 s [really-safe-money-gen] 0.11 ms
  9784. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9785. 486.03 s [really-safe-money-gen] INR
  9786. 486.03 s [really-safe-money-gen] distribute
  9787. 486.03 s [really-safe-money-gen] produces valid amounts 0.11 ms
  9788. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9789. 486.03 s [really-safe-money-gen] BTC
  9790. 486.03 s [really-safe-money-gen] distribute
  9791. 486.03 s [really-safe-money-gen] produces valid amounts 0.11 ms
  9792. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9793. 486.03 s [really-safe-money-gen] CHF
  9794. 486.03 s [really-safe-money-gen] distribute
  9795. 486.03 s [really-safe-money-gen] produces valid amounts 0.12 ms
  9796. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9797. 486.03 s [really-safe-money-gen] Money.AmountSpec
  9798. 486.03 s [really-safe-money-gen] distribute
  9799. 486.03 s [really-safe-money-gen] GenValid (Distribution Amount)
  9800. 486.03 s [really-safe-money-gen] genValid :: Gen (Distribution Amount)
  9801. 486.03 s [really-safe-money-gen] only generates valid '(Distribution Amount)'s 18.96 ms
  9802. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9803. 486.03 s [really-safe-money-gen] produces valid amounts 18.80 ms
  9804. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9805. 486.03 s [really-safe-money-gen]
  9806. 486.03 s [really-safe-money-gen]
  9807. 486.03 s [really-safe-money-gen]
  9808. 486.03 s [really-safe-money-gen] Examples: 31000
  9809. 486.03 s [really-safe-money-gen] Passed: 13
  9810. 486.03 s [really-safe-money-gen] Failed: 0
  9811. 486.03 s [really-safe-money-gen] Sum of test runtimes: 0.06 seconds
  9812. 486.03 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9813. 486.03 s [really-safe-money-gen]
  9814. 486.03 s [really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8:
  9815. 486.03 s [really-safe-money-gen] @@ -600,7 +600,7 @@
  9816. 486.03 s [really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
  9817. 486.03 s [really-safe-money-gen] validate ad =
  9818. 486.03 s [really-safe-money-gen] mconcat
  9819. 486.03 s [really-safe-money-gen] - [ genericValidate ad,
  9820. 486.03 s [really-safe-money-gen] + [ genericValidate ad,
  9821. 486.03 s [really-safe-money-gen] case ad of
  9822. 486.03 s [really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
  9823. 486.03 s [really-safe-money-gen] declare "The larger chunks are larger" $
  9824. 486.03 s [really-safe-money-gen] Tests:
  9825. 486.03 s [really-safe-money-gen]
  9826. 486.03 s [really-safe-money-gen] Money.AccountSpec
  9827. 486.03 s [really-safe-money-gen] distribute
  9828. 486.03 s [really-safe-money-gen] produces valid amounts 18.56 ms
  9829. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9830. 486.03 s [really-safe-money-gen] Money.AccountOfSpec
  9831. 486.03 s [really-safe-money-gen] USD
  9832. 486.03 s [really-safe-money-gen] distribute
  9833. 486.03 s [really-safe-money-gen] produces valid amounts 0.22 ms
  9834. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9835. 486.03 s [really-safe-money-gen] INR
  9836. 486.03 s [really-safe-money-gen] distribute
  9837. 486.03 s [really-safe-money-gen] produces valid amounts 0.20 ms
  9838. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9839. 486.03 s [really-safe-money-gen] CHF
  9840. 486.03 s [really-safe-money-gen] distribute
  9841. 486.03 s [really-safe-money-gen] produces valid amounts 0.19 ms
  9842. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9843. 486.03 s [really-safe-money-gen] ADA
  9844. 486.03 s [really-safe-money-gen] distribute
  9845. 486.03 s [really-safe-money-gen] produces valid amounts 0.19 ms
  9846. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9847. 486.03 s [really-safe-money-gen] BTC
  9848. 486.03 s [really-safe-money-gen] distribute
  9849. 486.03 s [really-safe-money-gen] produces valid amounts 0.51 ms
  9850. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9851. 486.03 s [really-safe-money-gen] Money.AmountOfSpec
  9852. 486.03 s [really-safe-money-gen] USD
  9853. 486.03 s [really-safe-money-gen] distribute
  9854. 486.03 s [really-safe-money-gen] produces valid amounts 0.20 ms
  9855. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9856. 486.03 s [really-safe-money-gen] ADA
  9857. 486.03 s [really-safe-money-gen] distribute
  9858. 486.03 s [really-safe-money-gen] produces valid amounts 0.14 ms
  9859. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9860. 486.03 s [really-safe-money-gen] INR
  9861. 486.03 s [really-safe-money-gen] distribute
  9862. 486.03 s [really-safe-money-gen] produces valid amounts 0.16 ms
  9863. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9864. 486.03 s [really-safe-money-gen] BTC
  9865. 486.03 s [really-safe-money-gen] distribute
  9866. 486.03 s [really-safe-money-gen] produces valid amounts 0.22 ms
  9867. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9868. 486.03 s [really-safe-money-gen] CHF
  9869. 486.03 s [really-safe-money-gen] distribute
  9870. 486.03 s [really-safe-money-gen] produces valid amounts 0.18 ms
  9871. 486.03 s [really-safe-money-gen] passed for all of 100 inputs.
  9872. 486.03 s [really-safe-money-gen] Money.AmountSpec
  9873. 486.03 s [really-safe-money-gen] distribute
  9874. 486.03 s [really-safe-money-gen] GenValid (Distribution Amount)
  9875. 486.03 s [really-safe-money-gen] genValid :: Gen (Distribution Amount)
  9876. 486.03 s [really-safe-money-gen] only generates valid '(Distribution Amount)'s 18.70 ms
  9877. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9878. 486.03 s [really-safe-money-gen] produces valid amounts 18.81 ms
  9879. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9880. 486.03 s [really-safe-money-gen]
  9881. 486.03 s [really-safe-money-gen]
  9882. 486.03 s [really-safe-money-gen]
  9883. 486.03 s [really-safe-money-gen] Examples: 31000
  9884. 486.03 s [really-safe-money-gen] Passed: 13
  9885. 486.03 s [really-safe-money-gen] Failed: 0
  9886. 486.03 s [really-safe-money-gen] Sum of test runtimes: 0.06 seconds
  9887. 486.03 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9888. 486.03 s [really-safe-money-gen]
  9889. 486.03 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28:
  9890. 486.03 s [really-safe-money-gen] @@ -84,7 +84,7 @@
  9891. 486.03 s [really-safe-money-gen] fromDecimalLiteral dl = do
  9892. 486.03 s [really-safe-money-gen] irat <-
  9893. 486.03 s [really-safe-money-gen] let r = DecimalLiteral.toRational dl
  9894. 486.03 s [really-safe-money-gen] - in if numerator r == 0
  9895. 486.03 s [really-safe-money-gen] + in if numerator r == 1
  9896. 486.03 s [really-safe-money-gen] then Nothing
  9897. 486.03 s [really-safe-money-gen] else pure r
  9898. 486.03 s [really-safe-money-gen]
  9899. 486.03 s [really-safe-money-gen] Tests:
  9900. 486.03 s [really-safe-money-gen]
  9901. 486.03 s [really-safe-money-gen] Money.QuantisationFactorSpec
  9902. 486.03 s [really-safe-money-gen] DecimalLiteral
  9903. 486.03 s [really-safe-money-gen] fromDecimalLiteral
  9904. 486.03 s [really-safe-money-gen] fails to render a non-1 integer 60.55 ms
  9905. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9906. 486.03 s [really-safe-money-gen]
  9907. 486.03 s [really-safe-money-gen]
  9908. 486.03 s [really-safe-money-gen]
  9909. 486.03 s [really-safe-money-gen] Examples: 10000
  9910. 486.03 s [really-safe-money-gen] Passed: 1
  9911. 486.03 s [really-safe-money-gen] Failed: 0
  9912. 486.03 s [really-safe-money-gen] Sum of test runtimes: 0.06 seconds
  9913. 486.03 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9914. 486.03 s [really-safe-money-gen]
  9915. 486.03 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17:
  9916. 486.03 s [really-safe-money-gen] @@ -90,7 +90,7 @@
  9917. 486.03 s [really-safe-money-gen]
  9918. 486.03 s [really-safe-money-gen] rat <-
  9919. 486.03 s [really-safe-money-gen] let r = 1 / irat
  9920. 486.03 s [really-safe-money-gen] - in if r < 0
  9921. 486.03 s [really-safe-money-gen] + in if r < 1
  9922. 486.03 s [really-safe-money-gen] then Nothing
  9923. 486.03 s [really-safe-money-gen] else Just r
  9924. 486.03 s [really-safe-money-gen]
  9925. 486.03 s [really-safe-money-gen] Tests:
  9926. 486.03 s [really-safe-money-gen]
  9927. 486.03 s [really-safe-money-gen] Money.QuantisationFactorSpec
  9928. 486.03 s [really-safe-money-gen] DecimalLiteral
  9929. 486.03 s [really-safe-money-gen] fromDecimalLiteral
  9930. 486.03 s [really-safe-money-gen] fails to render a non-1 integer 51.07 ms
  9931. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9932. 486.03 s [really-safe-money-gen]
  9933. 486.03 s [really-safe-money-gen]
  9934. 486.03 s [really-safe-money-gen]
  9935. 486.03 s [really-safe-money-gen] Examples: 10000
  9936. 486.03 s [really-safe-money-gen] Passed: 1
  9937. 486.03 s [really-safe-money-gen] Failed: 0
  9938. 486.03 s [really-safe-money-gen] Sum of test runtimes: 0.05 seconds
  9939. 486.03 s [really-safe-money-gen] Test suite took: 0.05 seconds
  9940. 486.03 s [really-safe-money-gen]
  9941. 486.03 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28:
  9942. 486.03 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9943. 486.03 s [really-safe-money-gen] else Just r
  9944. 486.03 s [really-safe-money-gen]
  9945. 486.03 s [really-safe-money-gen] fac <-
  9946. 486.03 s [really-safe-money-gen] - if denominator rat == 1
  9947. 486.03 s [really-safe-money-gen] + if denominator rat == 0
  9948. 486.03 s [really-safe-money-gen] then Just (numerator rat)
  9949. 486.03 s [really-safe-money-gen] else Nothing
  9950. 486.03 s [really-safe-money-gen]
  9951. 486.03 s [really-safe-money-gen] Tests:
  9952. 486.03 s [really-safe-money-gen]
  9953. 486.03 s [really-safe-money-gen] Money.QuantisationFactorSpec
  9954. 486.03 s [really-safe-money-gen] DecimalLiteral
  9955. 486.03 s [really-safe-money-gen] fromDecimalLiteral
  9956. 486.03 s [really-safe-money-gen] fails to render a non-1 integer 60.98 ms
  9957. 486.03 s [really-safe-money-gen] passed for all of 10000 inputs.
  9958. 486.03 s [really-safe-money-gen]
  9959. 486.03 s [really-safe-money-gen]
  9960. 486.03 s [really-safe-money-gen]
  9961. 486.03 s [really-safe-money-gen] Examples: 10000
  9962. 486.04 s [really-safe-money-gen] Passed: 1
  9963. 486.04 s [really-safe-money-gen] Failed: 0
  9964. 486.04 s [really-safe-money-gen] Sum of test runtimes: 0.06 seconds
  9965. 486.04 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9966. 486.04 s [really-safe-money-gen]
  9967. 486.04 s [really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28:
  9968. 486.04 s [really-safe-money-gen] @@ -95,7 +95,7 @@
  9969. 486.04 s [really-safe-money-gen] else Just r
  9970. 486.04 s [really-safe-money-gen]
  9971. 486.04 s [really-safe-money-gen] fac <-
  9972. 486.04 s [really-safe-money-gen] - if denominator rat == 1
  9973. 486.04 s [really-safe-money-gen] + if denominator rat == -1
  9974. 486.04 s [really-safe-money-gen] then Just (numerator rat)
  9975. 486.04 s [really-safe-money-gen] else Nothing
  9976. 486.04 s [really-safe-money-gen]
  9977. 486.04 s [really-safe-money-gen] Tests:
  9978. 486.04 s [really-safe-money-gen]
  9979. 486.04 s [really-safe-money-gen] Money.QuantisationFactorSpec
  9980. 486.04 s [really-safe-money-gen] DecimalLiteral
  9981. 486.04 s [really-safe-money-gen] fromDecimalLiteral
  9982. 486.04 s [really-safe-money-gen] fails to render a non-1 integer 59.23 ms
  9983. 486.04 s [really-safe-money-gen] passed for all of 10000 inputs.
  9984. 486.04 s [really-safe-money-gen]
  9985. 486.04 s [really-safe-money-gen]
  9986. 486.04 s [really-safe-money-gen]
  9987. 486.04 s [really-safe-money-gen] Examples: 10000
  9988. 486.04 s [really-safe-money-gen] Passed: 1
  9989. 486.04 s [really-safe-money-gen] Failed: 0
  9990. 486.04 s [really-safe-money-gen] Sum of test runtimes: 0.06 seconds
  9991. 486.04 s [really-safe-money-gen] Test suite took: 0.06 seconds
  9992. 486.04 s [really-safe-money-gen]
  9993. 486.04 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63:
  9994. 486.04 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  9995. 486.04 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  9996. 486.04 s [really-safe-money-gen] mconcat
  9997. 486.04 s [really-safe-money-gen] [ genericValidate qf,
  9998. 486.04 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  9999. 486.04 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
  10000. 486.04 s [really-safe-money-gen] ]
  10001. 486.04 s [really-safe-money-gen]
  10002. 486.04 s [really-safe-money-gen] instance NFData QuantisationFactor
  10003. 486.04 s [really-safe-money-gen] Tests:
  10004. 486.04 s [really-safe-money-gen]
  10005. 486.04 s [really-safe-money-gen] Money.MultiAmountSpec
  10006. 486.04 s [really-safe-money-gen] fromAmount
  10007. 486.04 s [really-safe-money-gen] produces valid amounts 6.62 ms
  10008. 486.04 s [really-safe-money-gen] passed for all of 1000 inputs.
  10009. 486.04 s [really-safe-money-gen] sum
  10010. 486.04 s [really-safe-money-gen] ✓ Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63:
  10011. 486.04 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  10012. 486.04 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10013. 486.04 s [really-safe-money-gen] mconcat
  10014. 486.04 s [really-safe-money-gen] [ genericValidate qf,
  10015. 486.04 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  10016. 486.04 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  10017. 486.04 s [really-safe-money-gen] ]
  10018. 486.04 s [really-safe-money-gen]
  10019. 486.04 s [really-safe-money-gen] instance NFData QuantisationFactor
  10020. 486.04 s [really-safe-money-gen]
  10021. 487.13 s [really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63:
  10022. 487.23 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  10023. 487.23 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10024. 487.23 s [really-safe-money-gen] mconcat
  10025. 487.23 s [really-safe-money-gen] [ genericValidate qf,
  10026. 487.23 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  10027. 487.23 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
  10028. 487.23 s [really-safe-money-gen] ]
  10029. 487.23 s [really-safe-money-gen]
  10030. 487.23 s [really-safe-money-gen] instance NFData QuantisationFactor
  10031. 487.23 s [really-safe-money-gen]
  10032. 487.23 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8:
  10033. 487.23 s [really-safe-money-gen] @@ -36,7 +36,7 @@
  10034. 487.23 s [really-safe-money-gen] instance Validity QuantisationFactor where
  10035. 487.23 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10036. 487.23 s [really-safe-money-gen] mconcat
  10037. 487.23 s [really-safe-money-gen] - [ genericValidate qf,
  10038. 487.23 s [really-safe-money-gen] + [ genericValidate qf,
  10039. 487.23 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  10040. 487.23 s [really-safe-money-gen] ]
  10041. 487.23 s [really-safe-money-gen]
  10042. 487.23 s [really-safe-money-gen]
  10043. 488.16 s [really-safe-money-gen] produces valid amounts 102.48 ms
  10044. 488.16 s [really-safe-money-gen] passed for all of 1000 inputs.
  10045. 488.16 s [really-safe-money-gen] add
  10046. 488.16 s [really-safe-money-gen] produces valid amounts 70.57 ms
  10047. 488.16 s [really-safe-money-gen] passed for all of 1000 inputs.
  10048. 488.16 s [really-safe-money-gen] addAmount
  10049. 488.16 s [really-safe-money-gen] produces valid amounts 41.61 ms
  10050. 488.16 s [really-safe-money-gen] passed for all of 1000 inputs.
  10051. 488.16 s [really-safe-money-gen] subtractAmount
  10052. 488.16 s [really-safe-money-gen] produces valid amounts 14.83 ms
  10053. 488.16 s [really-safe-money-gen] passed for all of 1000 inputs.
  10054. 488.16 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10055. 488.16 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10056. 488.16 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 64.30 ms
  10057. 488.16 s [really-safe-money-gen] passed for all of 1000 inputs.
  10058. 488.16 s [really-safe-money-gen] subtract
  10059. 488.16 s [really-safe-money-gen] produces valid amounts 22.80 ms
  10060. 488.16 s [really-safe-money-gen] passed for all of 1000 inputs.
  10061. 488.16 s [really-safe-money-gen] Money.QuantisationFactorSpec
  10062. 488.16 s [really-safe-money-gen] fromWord32
  10063. 488.16 s [really-safe-money-gen] produces valid quantisation factors 28.46 ms
  10064. 488.16 s [really-safe-money-gen] passed for all of 10000 inputs.
  10065. 488.16 s [really-safe-money-gen] DecimalLiteral
  10066. 488.16 s [really-safe-money-gen] fromDecimalLiteral
  10067. 488.16 s [really-safe-money-gen] produces valid factors 83.17 ms
  10068. 488.17 s [really-safe-money-gen] passed for all of 10000 inputs.
  10069. 488.17 s [really-safe-money-gen] GenValid QuantisationFactor
  10070. 488.17 s [really-safe-money-gen] genValid :: Gen QuantisationFactor
  10071. 488.17 s [really-safe-money-gen] only generates valid 'QuantisationFactor's 29.54 ms
  10072. 488.17 s [really-safe-money-gen] passed for all of 10000 inputs.
  10073. 488.17 s [really-safe-money-gen] Money.MultiAccountSpec
  10074. 488.17 s [really-safe-money-gen] subtractAmount
  10075. 488.17 s [really-safe-money-gen] produces valid amounts 41.66 ms
  10076. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10077. 488.17 s [really-safe-money-gen] add
  10078. 488.17 s [really-safe-money-gen] produces valid amounts 72.49 ms
  10079. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10080. 488.17 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  10081. 488.17 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  10082. 488.17 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 62.53 ms
  10083. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10084. 488.17 s [really-safe-money-gen] sum
  10085. 488.17 s [really-safe-money-gen] produces valid amounts 105.73 ms
  10086. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10087. 488.17 s [really-safe-money-gen] fromAccount
  10088. 488.17 s [really-safe-money-gen] produces valid amounts 7.37 ms
  10089. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10090. 488.17 s [really-safe-money-gen] addAccount
  10091. 488.17 s [really-safe-money-gen] produces valid amounts 42.43 ms
  10092. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10093. 488.17 s [really-safe-money-gen] subtract
  10094. 488.17 s [really-safe-money-gen] produces valid amounts 79.40 ms
  10095. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10096. 488.17 s [really-safe-money-gen] addAmount
  10097. 488.17 s [really-safe-money-gen] produces valid amounts 46.02 ms
  10098. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10099. 488.17 s [really-safe-money-gen] subtractAccount
  10100. 488.17 s [really-safe-money-gen] produces valid amounts 47.30 ms
  10101. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10102. 488.17 s [really-safe-money-gen]
  10103. 488.17 s [really-safe-money-gen]
  10104. 488.17 s [really-safe-money-gen]
  10105. 488.17 s [really-safe-money-gen] Examples: 46000
  10106. 488.17 s [really-safe-money-gen] Passed: 19
  10107. 488.17 s [really-safe-money-gen] Failed: 0
  10108. 488.17 s [really-safe-money-gen] Sum of test runtimes: 0.97 seconds
  10109. 488.17 s [really-safe-money-gen] Test suite took: 0.97 seconds
  10110. 488.17 s [really-safe-money-gen]
  10111. 488.17 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63:
  10112. 488.17 s [really-safe-money-gen] @@ -37,7 +37,7 @@
  10113. 488.17 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10114. 488.17 s [really-safe-money-gen] mconcat
  10115. 488.17 s [really-safe-money-gen] [ genericValidate qf,
  10116. 488.17 s [really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
  10117. 488.17 s [really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
  10118. 488.17 s [really-safe-money-gen] ]
  10119. 488.17 s [really-safe-money-gen]
  10120. 488.17 s [really-safe-money-gen] instance NFData QuantisationFactor
  10121. 488.17 s [really-safe-money-gen] Tests:
  10122. 488.17 s [really-safe-money-gen]
  10123. 488.17 s [really-safe-money-gen] Money.MultiAmountSpec
  10124. 488.17 s [really-safe-money-gen] fromAmount
  10125. 488.17 s [really-safe-money-gen] produces valid amounts 7.62 ms
  10126. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10127. 488.17 s [really-safe-money-gen] sum
  10128. 488.17 s [really-safe-money-gen] produces valid amounts 120.48 ms
  10129. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10130. 488.17 s [really-safe-money-gen] add
  10131. 488.17 s [really-safe-money-gen] produces valid amounts 81.36 ms
  10132. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10133. 488.17 s [really-safe-money-gen] addAmount
  10134. 488.17 s [really-safe-money-gen] produces valid amounts 41.75 ms
  10135. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10136. 488.17 s [really-safe-money-gen] subtractAmount
  10137. 488.17 s [really-safe-money-gen] produces valid amounts 13.97 ms
  10138. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10139. 488.17 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10140. 488.17 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10141. 488.17 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 61.63 ms
  10142. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10143. 488.17 s [really-safe-money-gen] subtract
  10144. 488.17 s [really-safe-money-gen] produces valid amounts 22.05 ms
  10145. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10146. 488.17 s [really-safe-money-gen] Money.QuantisationFactorSpec
  10147. 488.17 s [really-safe-money-gen] fromWord32
  10148. 488.17 s [really-safe-money-gen] produces valid quantisation factors 26.55 ms
  10149. 488.17 s [really-safe-money-gen] passed for all of 10000 inputs.
  10150. 488.17 s [really-safe-money-gen] DecimalLiteral
  10151. 488.17 s [really-safe-money-gen] fromDecimalLiteral
  10152. 488.17 s [really-safe-money-gen] produces valid factors 84.42 ms
  10153. 488.17 s [really-safe-money-gen] passed for all of 10000 inputs.
  10154. 488.17 s [really-safe-money-gen] GenValid QuantisationFactor
  10155. 488.17 s [really-safe-money-gen] genValid :: Gen QuantisationFactor
  10156. 488.17 s [really-safe-money-gen] only generates valid 'QuantisationFactor's 30.70 ms
  10157. 488.17 s [really-safe-money-gen] passed for all of 10000 inputs.
  10158. 488.17 s [really-safe-money-gen] Money.MultiAccountSpec
  10159. 488.17 s [really-safe-money-gen] subtractAmount
  10160. 488.17 s [really-safe-money-gen] produces valid amounts 44.00 ms
  10161. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10162. 488.17 s [really-safe-money-gen] add
  10163. 488.17 s [really-safe-money-gen] produces valid amounts 73.92 ms
  10164. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10165. 488.17 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  10166. 488.17 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  10167. 488.17 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 67.71 ms
  10168. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10169. 488.17 s [really-safe-money-gen] sum
  10170. 488.17 s [really-safe-money-gen] produces valid amounts 110.80 ms
  10171. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10172. 488.17 s [really-safe-money-gen] fromAccount
  10173. 488.17 s [really-safe-money-gen] produces valid amounts 7.71 ms
  10174. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10175. 488.17 s [really-safe-money-gen] addAccount
  10176. 488.17 s [really-safe-money-gen] produces valid amounts 39.30 ms
  10177. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10178. 488.17 s [really-safe-money-gen] subtract
  10179. 488.17 s [really-safe-money-gen] produces valid amounts 73.20 ms
  10180. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10181. 488.17 s [really-safe-money-gen] addAmount
  10182. 488.17 s [really-safe-money-gen] produces valid amounts 44.82 ms
  10183. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10184. 488.17 s [really-safe-money-gen] subtractAccount
  10185. 488.17 s [really-safe-money-gen] produces valid amounts 44.79 ms
  10186. 488.17 s [really-safe-money-gen] passed for all of 1000 inputs.
  10187. 488.17 s [really-safe-money-gen]
  10188. 488.17 s [really-safe-money-gen]
  10189. 488.17 s [really-safe-money-gen]
  10190. 488.17 s [really-safe-money-gen] Examples: 46000
  10191. 488.17 s [really-safe-money-gen] Passed: 19
  10192. 488.17 s [really-safe-money-gen] Failed: 0
  10193. 488.17 s [really-safe-money-gen] Sum of test runtimes: 1.00 seconds
  10194. 488.17 s [really-safe-money-gen] Test suite took: 1.00 seconds
  10195. 488.17 s [really-safe-money-gen]
  10196. 488.17 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8:
  10197. 488.17 s [really-safe-money-gen] @@ -36,7 +36,7 @@
  10198. 488.17 s [really-safe-money-gen] instance Validity QuantisationFactor where
  10199. 488.17 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10200. 488.17 s [really-safe-money-gen] mconcat
  10201. 488.17 s [really-safe-money-gen] - [ genericValidate qf,
  10202. 488.17 s [really-safe-money-gen] + [ generTesting mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8:
  10203. 488.17 s [really-safe-money-gen] @@ -36,7 +36,7 @@
  10204. 488.17 s [really-safe-money-gen] instance Validity QuantisationFactor where
  10205. 488.17 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10206. 488.17 s [really-safe-money-gen] mconcat
  10207. 488.17 s [really-safe-money-gen] - [ genericValidate qf,
  10208. 488.17 s [really-safe-money-gen] + [ genericValidate qf,
  10209. 488.17 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  10210. 488.17 s [really-safe-money-gen] ]
  10211. 488.17 s [really-safe-money-gen]
  10212. 488.17 s [really-safe-money-gen]
  10213. 489.09 s [really-safe-money-gen] icValidate qf,
  10214. 489.09 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  10215. 489.09 s [really-safe-money-gen] ]
  10216. 489.09 s [really-safe-money-gen]
  10217. 489.09 s [really-safe-money-gen] Tests:
  10218. 489.09 s [really-safe-money-gen]
  10219. 489.09 s [really-safe-money-gen] Money.MultiAmountSpec
  10220. 489.09 s [really-safe-money-gen] fromAmount
  10221. 489.09 s [really-safe-money-gen] produces valid amounts 7.13 ms
  10222. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10223. 489.09 s [really-safe-money-gen] sum
  10224. 489.09 s [really-safe-money-gen] produces valid amounts 95.92 ms
  10225. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10226. 489.09 s [really-safe-money-gen] add
  10227. 489.09 s [really-safe-money-gen] produces valid amounts 62.24 ms
  10228. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10229. 489.09 s [really-safe-money-gen] addAmount
  10230. 489.09 s [really-safe-money-gen] produces valid amounts 37.42 ms
  10231. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10232. 489.09 s [really-safe-money-gen] subtractAmount
  10233. 489.09 s [really-safe-money-gen] produces valid amounts 15.32 ms
  10234. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10235. 489.09 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10236. 489.09 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10237. 489.09 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 63.41 ms
  10238. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10239. 489.09 s [really-safe-money-gen] subtract
  10240. 489.09 s [really-safe-money-gen] produces valid amounts 24.05 ms
  10241. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10242. 489.09 s [really-safe-money-gen] Money.QuantisationFactorSpec
  10243. 489.09 s [really-safe-money-gen] fromWord32
  10244. 489.09 s [really-safe-money-gen] produces valid quantisation factors 19.61 ms
  10245. 489.09 s [really-safe-money-gen] passed for all of 10000 inputs.
  10246. 489.09 s [really-safe-money-gen] DecimalLiteral
  10247. 489.09 s [really-safe-money-gen] fromDecimalLiteral
  10248. 489.09 s [really-safe-money-gen] produces valid factors 74.77 ms
  10249. 489.09 s [really-safe-money-gen] passed for all of 10000 inputs.
  10250. 489.09 s [really-safe-money-gen] GenValid QuantisationFactor
  10251. 489.09 s [really-safe-money-gen] genValid :: Gen QuantisationFactor
  10252. 489.09 s [really-safe-money-gen] only generates valid 'QuantisationFactor's 18.84 ms
  10253. 489.09 s [really-safe-money-gen] passed for all of 10000 inputs.
  10254. 489.09 s [really-safe-money-gen] Money.MultiAccountSpec
  10255. 489.09 s [really-safe-money-gen] subtractAmount
  10256. 489.09 s [really-safe-money-gen] produces valid amounts 39.00 ms
  10257. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10258. 489.09 s [really-safe-money-gen] add
  10259. 489.09 s [really-safe-money-gen] produces valid amounts 74.57 ms
  10260. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10261. 489.09 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  10262. 489.09 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  10263. 489.09 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 59.54 ms
  10264. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10265. 489.09 s [really-safe-money-gen] sum
  10266. 489.09 s [really-safe-money-gen] produces valid amounts 82.72 ms
  10267. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10268. 489.09 s [really-safe-money-gen] fromAccount
  10269. 489.09 s [really-safe-money-gen] produces valid amounts 5.83 ms
  10270. 489.09 s [really-safe-money-gen] passed for all of 1000 inputs.
  10271. 489.09 s [really-safe-money-gen] addAccount
  10272. 489.09 s [really-safe-money-gen] produces valid amounts 34.93 ms
  10273. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10274. 489.10 s [really-safe-money-gen] subtract
  10275. 489.10 s [really-safe-money-gen] produces valid amounts 59.72 ms
  10276. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10277. 489.10 s [really-safe-money-gen] addAmount
  10278. 489.10 s [really-safe-money-gen] produces valid amounts 35.82 ms
  10279. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10280. 489.10 s [really-safe-money-gen] subtractAccount
  10281. 489.10 s [really-safe-money-gen] produces valid amounts 36.21 ms
  10282. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10283. 489.10 s [really-safe-money-gen]
  10284. 489.10 s [really-safe-money-gen]
  10285. 489.10 s [really-safe-money-gen]
  10286. 489.10 s [really-safe-money-gen] Examples: 46000
  10287. 489.10 s [really-safe-money-gen] Passed: 19
  10288. 489.10 s [really-safe-money-gen] Failed: 0
  10289. 489.10 s [really-safe-money-gen] Sum of test runtimes: 0.85 seconds
  10290. 489.10 s [really-safe-money-gen] Test suite took: 0.85 seconds
  10291. 489.10 s [really-safe-money-gen]
  10292. 489.10 s [really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8:
  10293. 489.10 s [really-safe-money-gen] @@ -36,7 +36,7 @@
  10294. 489.10 s [really-safe-money-gen] instance Validity QuantisationFactor where
  10295. 489.10 s [really-safe-money-gen] validate qf@(QuantisationFactor w) =
  10296. 489.10 s [really-safe-money-gen] mconcat
  10297. 489.10 s [really-safe-money-gen] - [ genericValidate qf,
  10298. 489.10 s [really-safe-money-gen] + [ genericValidate qf,
  10299. 489.10 s [really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
  10300. 489.10 s [really-safe-money-gen] ]
  10301. 489.10 s [really-safe-money-gen]
  10302. 489.10 s [really-safe-money-gen] Tests:
  10303. 489.10 s [really-safe-money-gen]
  10304. 489.10 s [really-safe-money-gen] Money.MultiAmountSpec
  10305. 489.10 s [really-safe-money-gen] fromAmount
  10306. 489.10 s [really-safe-money-gen] produces valid amounts 6.68 ms
  10307. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10308. 489.10 s [really-safe-money-gen] sum
  10309. 489.10 s [really-safe-money-gen] produces valid amounts 88.45 ms
  10310. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10311. 489.10 s [really-safe-money-gen] add
  10312. 489.10 s [really-safe-money-gen] produces valid amounts 58.17 ms
  10313. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10314. 489.10 s [really-safe-money-gen] addAmount
  10315. 489.10 s [really-safe-money-gen] produces valid amounts 33.86 ms
  10316. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10317. 489.10 s [really-safe-money-gen] subtractAmount
  10318. 489.10 s [really-safe-money-gen] produces valid amounts 13.91 ms
  10319. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10320. 489.10 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10321. 489.10 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10322. 489.10 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 55.65 ms
  10323. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10324. 489.10 s [really-safe-money-gen] subtract
  10325. 489.10 s [really-safe-money-gen] produces valid amounts 25.31 ms
  10326. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10327. 489.10 s [really-safe-money-gen] Money.QuantisationFactorSpec
  10328. 489.10 s [really-safe-money-gen] fromWord32
  10329. 489.10 s [really-safe-money-gen] produces valid quantisation factors 18.51 ms
  10330. 489.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  10331. 489.10 s [really-safe-money-gen] DecimalLiteral
  10332. 489.10 s [really-safe-money-gen] fromDecimalLiteral
  10333. 489.10 s [really-safe-money-gen] produces valid factors 83.34 ms
  10334. 489.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  10335. 489.10 s [really-safe-money-gen] GenValid QuantisationFactor
  10336. 489.10 s [really-safe-money-gen] genValid :: Gen QuantisationFactor
  10337. 489.10 s [really-safe-money-gen] only generates valid 'QuantisationFactor's 19.12 ms
  10338. 489.10 s [really-safe-money-gen] passed for all of 10000 inputs.
  10339. 489.10 s [really-safe-money-gen] Money.MultiAccountSpec
  10340. 489.10 s [really-safe-money-gen] subtractAmount
  10341. 489.10 s [really-safe-money-gen] produces valid amounts 35.57 ms
  10342. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10343. 489.10 s [really-safe-money-gen] add
  10344. 489.10 s [really-safe-money-gen] produces valid amounts 64.48 ms
  10345. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10346. 489.10 s [really-safe-money-gen] GenValid (MultiAccount Currency)
  10347. 489.10 s [really-safe-money-gen] genValid :: Gen (MultiAccount Currency)
  10348. 489.10 s [really-safe-money-gen] only generates valid '(MultiAccount Currency)'s 55.99 ms
  10349. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10350. 489.10 s [really-safe-money-gen] sum
  10351. 489.10 s [really-safe-money-gen] produces valid amounts 95.43 ms
  10352. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10353. 489.10 s [really-safe-money-gen] fromAccount
  10354. 489.10 s [really-safe-money-gen] produces valid amounts 6.59 ms
  10355. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10356. 489.10 s [really-safe-money-gen] addAccount
  10357. 489.10 s [really-safe-money-gen] produces valid amounts 36.89 ms
  10358. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10359. 489.10 s [really-safe-money-gen] subtract
  10360. 489.10 s [really-safe-money-gen] produces valid amounts 66.49 ms
  10361. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10362. 489.10 s [really-safe-money-gen] addAmount
  10363. 489.10 s [really-safe-money-gen] produces valid amounts 36.30 ms
  10364. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10365. 489.10 s [really-safe-money-gen] subtractAccount
  10366. 489.10 s [really-safe-money-gen] produces valid amounts 36.24 ms
  10367. 489.10 s [really-safe-money-gen] passed for all of 1000 inputs.
  10368. 489.10 s [really-safe-money-gen]
  10369. 489.10 s [really-safe-money-gen]
  10370. 489.10 s [really-safe-money-gen]
  10371. 489.10 s [really-safe-money-gen] Examples: 46000
  10372. 489.10 s [really-safe-money-gen] Passed: 19
  10373. 489.10 s [really-safe-money-gen] Failed: 0
  10374. 489.10 s [really-safe-money-gen] Sum of test runtimes: 0.84 secondsTesting mutation ConstBool at src/Money/MultiAmount.hs:168:20-45:
  10375. 489.10 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  10376. 489.10 s [really-safe-money-gen] maxBoundN :: Natural
  10377. 489.10 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  10378. 489.10 s [really-safe-money-gen] actualResult =
  10379. 489.10 s [really-safe-money-gen] - if roundedResult > maxBoundN
  10380. 489.10 s [really-safe-money-gen] + if True
  10381. 489.10 s [really-safe-money-gen] then Nothing
  10382. 489.10 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  10383. 489.10 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  10384. 489.10 s [really-safe-money-gen]
  10385. 489.19 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45:
  10386. 489.19 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  10387. 489.19 s [really-safe-money-gen] maxBoundN :: Natural
  10388. 489.19 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  10389. 489.19 s [really-safe-money-gen] actualResult =
  10390. 489.19 s [really-safe-money-gen] - if roundedResult > maxBoundN
  10391. 489.19 s [really-safe-money-gen] + if False
  10392. 489.19 s [really-safe-money-gen] then Nothing
  10393. 489.19 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  10394. 489.19 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  10395. 489.19 s [really-safe-money-gen]
  10396. 489.29 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45:
  10397. 489.29 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  10398. 489.29 s [really-safe-money-gen] maxBoundN :: Natural
  10399. 489.29 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  10400. 489.29 s [really-safe-money-gen] actualResult =
  10401. 489.29 s [really-safe-money-gen] - if roundedResult > maxBoundN
  10402. 489.29 s [really-safe-money-gen] + if not (roundedResult > maxBoundN)
  10403. 489.29 s [really-safe-money-gen] then Nothing
  10404. 489.29 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  10405. 489.29 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  10406. 489.29 s [really-safe-money-gen]
  10407. 489.40 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:168:17-57:
  10408. 489.40 s [really-safe-money-gen] @@ -165,7 +165,7 @@
  10409. 489.40 s [really-safe-money-gen] maxBoundN :: Natural
  10410. 489.40 s [really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
  10411. 489.40 s [really-safe-money-gen] actualResult =
  10412. 489.40 s [really-safe-money-gen] - if roundedResult > maxBoundN
  10413. 489.40 s [really-safe-money-gen] + if roundedResult > maxBoundN
  10414. 489.40 s [really-safe-money-gen] then Nothing
  10415. 489.40 s [really-safe-money-gen] else Just (fromIntegral roundedResult)
  10416. 489.40 s [really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
  10417. 489.40 s [really-safe-money-gen]
  10418. 489.50 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28:
  10419. 489.50 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10420. 489.50 s [really-safe-money-gen] Just a -> do
  10421. 489.50 s [really-safe-money-gen] r <- Amount.subtract a amount
  10422. 489.50 s [really-safe-money-gen] Just $
  10423. 489.50 s [really-safe-money-gen] - if r == Amount.zero
  10424. 489.50 s [really-safe-money-gen] + if True
  10425. 489.50 s [really-safe-money-gen] then M.delete currency m
  10426. 489.50 s [really-safe-money-gen] else M.insert currency r m
  10427. 489.50 s [really-safe-money-gen]
  10428. 489.50 s [really-safe-money-gen]
  10429. 489.64 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28:
  10430. 489.64 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10431. 489.64 s [really-safe-money-gen] Just a -> do
  10432. 489.64 s [really-safe-money-gen] r <- Amount.subtract a amount
  10433. 489.64 s [really-safe-money-gen] Just $
  10434. 489.64 s [really-safe-money-gen] - if r == Amount.zero
  10435. 489.64 s [really-safe-money-gen] + if False
  10436. 489.64 s [really-safe-money-gen] then M.delete currency m
  10437. 489.64 s [really-safe-money-gen] else M.insert currency r m
  10438. 489.64 s [really-safe-money-gen]
  10439. 489.64 s [really-safe-money-gen]
  10440. 489.76 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28:
  10441. 489.76 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10442. 489.76 s [really-safe-money-gen] Just a -> do
  10443. 489.76 s [really-safe-money-gen] r <- Amount.subtract a amount
  10444. 489.76 s [really-safe-money-gen] Just $
  10445. 489.76 s [really-safe-money-gen] - if r == Amount.zero
  10446. 489.76 s [really-safe-money-gen] + if not (r == Amount.zero)
  10447. 489.76 s [really-safe-money-gen] then M.delete currency m
  10448. 489.76 s [really-safe-money-gen] else M.insert currency r m
  10449. 489.76 s [really-safe-money-gen]
  10450. 489.76 s [really-safe-money-gen]
  10451. 489.89 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:119:9-37:
  10452. 489.89 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10453. 489.89 s [really-safe-money-gen] Just a -> do
  10454. 489.89 s [really-safe-money-gen] r <- Amount.subtract a amount
  10455. 489.89 s [really-safe-money-gen] Just $
  10456. 489.89 s [really-safe-money-gen] - if r == Amount.zero
  10457. 489.89 s [really-safe-money-gen] + if r == Amount.zero
  10458. 489.89 s [really-safe-money-gen] then M.delete currency m
  10459. 489.89 s [really-safe-money-gen] else M.insert currency r m
  10460. 489.89 s [really-safe-money-gen]
  10461. 489.89 s [really-safe-money-gen]
  10462. 490.02 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28:
  10463. 490.02 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  10464. 490.02 s [really-safe-money-gen] Just a -> do
  10465. 490.02 s [really-safe-money-gen] r <- Amount.add a amount
  10466. 490.02 s [really-safe-money-gen] Just $
  10467. 490.02 s [really-safe-money-gen] - if r == Amount.zero
  10468. 490.02 s [really-safe-money-gen] + if True
  10469. 490.02 s [really-safe-money-gen] then M.delete currency m
  10470. 490.02 s [really-safe-money-gen] else M.insert currency r m
  10471. 490.02 s [really-safe-money-gen]
  10472. 490.02 s [really-safe-money-gen]
  10473. 490.52 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28:
  10474. 490.52 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  10475. 490.52 s [really-safe-money-gen] Just a -> do
  10476. 490.52 s [really-safe-money-gen] r <- Amount.add a amount
  10477. 490.52 s [really-safe-money-gen] Just $
  10478. 490.52 s [really-safe-money-gen] - if r == Amount.zero
  10479. 490.52 s [really-safe-money-gen] + if False
  10480. 490.52 s [really-safe-money-gen] then M.delete currency m
  10481. 490.52 s [really-safe-money-gen] else M.insert currency r m
  10482. 490.52 s [really-safe-money-gen]
  10483. 490.52 s [really-safe-money-gen]
  10484. 491.02 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28:
  10485. 491.02 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  10486. 491.02 s [really-safe-money-gen] Just a -> do
  10487. 491.02 s [really-safe-money-gen] r <- Amount.add a amount
  10488. 491.02 s [really-safe-money-gen] Just $
  10489. 491.02 s [really-safe-money-gen] - if r == Amount.zero
  10490. 491.02 s [really-safe-money-gen] + if not (r == Amount.zero)
  10491. 491.02 s [really-safe-money-gen] then M.delete currency m
  10492. 491.02 s [really-safe-money-gen] else M.insert currency r m
  10493. 491.02 s [really-safe-money-gen]
  10494. 491.02 s [really-safe-money-gen]
  10495. 491.53 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:106:9-37:
  10496. 491.53 s [really-safe-money-gen] @@ -103,7 +103,7 @@
  10497. 491.53 s [really-safe-money-gen] Just a -> do
  10498. 491.53 s [really-safe-money-gen] r <- Amount.add a amount
  10499. 491.53 s [really-safe-money-gen] Just $
  10500. 491.53 s [really-safe-money-gen] - if r == Amount.zero
  10501. 491.53 s [really-safe-money-gen] + if r == Amount.zero
  10502. 491.53 s [really-safe-money-gen] then M.delete currency m
  10503. 491.53 s [really-safe-money-gen] else M.insert currency r m
  10504. 491.53 s [really-safe-money-gen]
  10505. 491.53 s [really-safe-money-gen]
  10506. 492.04 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27:
  10507. 492.04 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  10508. 492.04 s [really-safe-money-gen]
  10509. 492.04 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  10510. 492.04 s [really-safe-money-gen] fromAmount currency amount =
  10511. 492.04 s [really-safe-money-gen] - if amount == Amount.zero
  10512. 492.04 s [really-safe-money-gen] + if True
  10513. 492.04 s [really-safe-money-gen] then zero
  10514. 492.04 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  10515. 492.04 s [really-safe-money-gen]
  10516. 492.04 s [really-safe-money-gen]
  10517. 492.15 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27:
  10518. 492.15 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  10519. 492.15 s [really-safe-money-gen]
  10520. 492.21 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  10521. 492.21 s [really-safe-money-gen] fromAmount currency amount =
  10522. 492.21 s [really-safe-money-gen] - if amount == Amount.zero
  10523. 492.21 s [really-safe-money-gen] + if False
  10524. 492.21 s [really-safe-money-gen] then zero
  10525. 492.21 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  10526. 492.21 s [really-safe-money-gen]
  10527. 492.21 s [really-safe-money-gen]
  10528. 492.26 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27:
  10529. 492.26 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  10530. 492.26 s [really-safe-money-gen]
  10531. 492.27 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  10532. 492.27 s [really-safe-money-gen] fromAmount currency amount =
  10533. 492.27 s [really-safe-money-gen] - if amount == Amount.zero
  10534. 492.27 s [really-safe-money-gen] + if not (amount == Amount.zero)
  10535. 492.27 s [really-safe-money-gen] then zero
  10536. 492.27 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  10537. 492.27 s [really-safe-money-gen]
  10538. 492.27 s [really-safe-money-gen]
  10539. 492.36 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:73:3-51:
  10540. 492.36 s [really-safe-money-gen] @@ -70,7 +70,7 @@
  10541. 492.36 s [really-safe-money-gen]
  10542. 492.36 s [really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
  10543. 492.36 s [really-safe-money-gen] fromAmount currency amount =
  10544. 492.36 s [really-safe-money-gen] - if amount == Amount.zero
  10545. 492.36 s [really-safe-money-gen] + if amount == Amount.zero
  10546. 492.36 s [really-safe-money-gen] then zero
  10547. 492.36 s [really-safe-money-gen] else MultiAmount $ M.singleton currency amount
  10548. 492.36 s [really-safe-money-gen]
  10549. 492.36 s [really-safe-money-gen]
  10550. 492.45 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29:
  10551. 492.45 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  10552. 492.45 s [really-safe-money-gen] [ genericValidate ma,
  10553. 492.45 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10554. 492.45 s [really-safe-money-gen] declare "The amount is not zero" $
  10555. 492.45 s [really-safe-money-gen] - a /= Amount.zero
  10556. 492.45 s [really-safe-money-gen] + True
  10557. 492.45 s [really-safe-money-gen] ]
  10558. 492.45 s [really-safe-money-gen]
  10559. 492.45 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  10560. 492.45 s [really-safe-money-gen]
  10561. 492.86 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29:
  10562. 492.86 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  10563. 492.86 s [really-safe-money-gen] [ genericValidate ma,
  10564. 492.86 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10565. 492.86 s [really-safe-money-gen] declare "The amount is not zero" $
  10566. 492.86 s [really-safe-money-gen] - a /= Amount.zero
  10567. 492.86 s [really-safe-money-gen] + False
  10568. 492.86 s [really-safe-money-gen] ]
  10569. 492.86 s [really-safe-money-gen]
  10570. 492.86 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  10571. 492.86 s [really-safe-money-gen]
  10572. 493.25 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29:
  10573. 493.25 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  10574. 493.25 s [really-safe-money-gen] [ genericValidate ma,
  10575. 493.25 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10576. 493.25 s [really-safe-money-gen] declare "The amount is not zero" $
  10577. 493.25 s [really-safe-money-gen] - a /= Amount.zero
  10578. 493.25 s [really-safe-money-gen] + not (a /= Amount.zero)
  10579. 493.25 s [really-safe-money-gen] ]
  10580. 493.25 s [really-safe-money-gen]
  10581. 493.25 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  10582. 493.25 s [really-safe-money-gen]
  10583. 493.35 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8:
  10584. 493.35 s [really-safe-money-gen] @@ -60,7 +60,7 @@
  10585. 493.35 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  10586. 493.35 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  10587. 493.35 s [really-safe-money-gen] mconcat
  10588. 493.35 s [really-safe-money-gen] - [ genericValidate ma,
  10589. 493.35 s [really-safe-money-gen] + [ genericValidate ma,
  10590. 493.35 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10591. 493.35 s [really-safe-money-gen] declare "The amount is not zero" $
  10592. 493.35 s [really-safe-money-gen] a /= Amount.zero
  10593. 493.35 s [really-safe-money-gen]
  10594. 493.56 s [really-safe-money-gen]
  10595. 493.56 s [really-safe-money-gen] Test suite took: 0.84 seconds
  10596. 493.56 s [really-safe-money-gen]
  10597. 493.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28:
  10598. 493.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10599. 493.56 s [really-safe-money-gen] Just a -> do
  10600. 493.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  10601. 493.56 s [really-safe-money-gen] Just $
  10602. 493.56 s [really-safe-money-gen] - if r == Amount.zero
  10603. 493.56 s [really-safe-money-gen] + if True
  10604. 493.56 s [really-safe-money-gen] then M.delete currency m
  10605. 493.56 s [really-safe-money-gen] else M.insert currency r m
  10606. 493.56 s [really-safe-money-gen]
  10607. 493.56 s [really-safe-money-gen] Tests:
  10608. 493.56 s [really-safe-money-gen]
  10609. 493.56 s [really-safe-money-gen] Money.MultiAmountSpec
  10610. 493.56 s [really-safe-money-gen] subtractAmount
  10611. 493.56 s [really-safe-money-gen] produces valid amounts 15.93 ms
  10612. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10613. 493.56 s [really-safe-money-gen] subtract
  10614. 493.56 s [really-safe-money-gen] produces valid amounts 24.31 ms
  10615. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10616. 493.56 s [really-safe-money-gen]
  10617. 493.56 s [really-safe-money-gen]
  10618. 493.56 s [really-safe-money-gen]
  10619. 493.56 s [really-safe-money-gen] Examples: 2000
  10620. 493.56 s [really-safe-money-gen] Passed: 2
  10621. 493.56 s [really-safe-money-gen] Failed: 0
  10622. 493.56 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  10623. 493.56 s [really-safe-money-gen] Test suite took: 0.04 seconds
  10624. 493.56 s [really-safe-money-gen]
  10625. 493.56 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28:
  10626. 493.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10627. 493.56 s [really-safe-money-gen] Just a -> do
  10628. 493.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  10629. 493.56 s [really-safe-money-gen] Just $
  10630. 493.56 s [really-safe-money-gen] - if r == Amount.zero
  10631. 493.56 s [really-safe-money-gen] + if False
  10632. 493.56 s [really-safe-money-gen] then M.delete currency m
  10633. 493.56 s [really-safe-money-gen] else M.insert currency r m
  10634. 493.56 s [really-safe-money-gen]
  10635. 493.56 s [really-safe-money-gen] Tests:
  10636. 493.56 s [really-safe-money-gen]
  10637. 493.56 s [really-safe-money-gen] Money.MultiAmountSpec
  10638. 493.56 s [really-safe-money-gen] subtractAmount
  10639. 493.56 s [really-safe-money-gen] produces valid amounts 13.66 ms
  10640. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10641. 493.56 s [really-safe-money-gen] subtract
  10642. 493.56 s [really-safe-money-gen] produces valid amounts 20.85 ms
  10643. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10644. 493.56 s [really-safe-money-gen]
  10645. 493.56 s [really-safe-money-gen]
  10646. 493.56 s [really-safe-money-gen]
  10647. 493.56 s [really-safe-money-gen] Examples: 2000
  10648. 493.56 s [really-safe-money-gen] Passed: 2
  10649. 493.56 s [really-safe-money-gen] Failed: 0
  10650. 493.56 s [really-safe-money-gen] Sum of test runtimes: 0.03 seconds
  10651. 493.56 s [really-safe-money-gen] Test suite took: 0.04 seconds
  10652. 493.56 s [really-safe-money-gen]
  10653. 493.56 s [really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28:
  10654. 493.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10655. 493.56 s [really-safe-money-gen] Just a -> do
  10656. 493.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  10657. 493.56 s [really-safe-money-gen] Just $
  10658. 493.56 s [really-safe-money-gen] - if r == Amount.zero
  10659. 493.56 s [really-safe-money-gen] + if not (r == Amount.zero)
  10660. 493.56 s [really-safe-money-gen] then M.delete currency m
  10661. 493.56 s [really-safe-money-gen] else M.insert currency r m
  10662. 493.56 s [really-safe-money-gen]
  10663. 493.56 s [really-safe-money-gen] Tests:
  10664. 493.56 s [really-safe-money-gen]
  10665. 493.56 s [really-safe-money-gen] Money.MultiAmountSpec
  10666. 493.56 s [really-safe-money-gen] subtractAmount
  10667. 493.56 s [really-safe-money-gen] produces valid amounts 13.53 ms
  10668. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10669. 493.56 s [really-safe-money-gen] subtract
  10670. 493.56 s [really-safe-money-gen] produces valid amounts 23.47 ms
  10671. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10672. 493.56 s [really-safe-money-gen]
  10673. 493.56 s [really-safe-money-gen]
  10674. 493.56 s [really-safe-money-gen]
  10675. 493.56 s [really-safe-money-gen] Examples: 2000
  10676. 493.56 s [really-safe-money-gen] Passed: 2
  10677. 493.56 s [really-safe-money-gen] Failed: 0
  10678. 493.56 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  10679. 493.56 s [really-safe-money-gen] Test suite took: 0.04 seconds
  10680. 493.56 s [really-safe-money-gen]
  10681. 493.56 s [really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:119:9-37:
  10682. 493.56 s [really-safe-money-gen] @@ -116,7 +116,7 @@
  10683. 493.56 s [really-safe-money-gen] Just a -> do
  10684. 493.56 s [really-safe-money-gen] r <- Amount.subtract a amount
  10685. 493.56 s [really-safe-money-gen] Just $
  10686. 493.56 s [really-safe-money-gen] - if r == Amount.zero
  10687. 493.56 s [really-safe-money-gen] + if r == Amount.zero
  10688. 493.56 s [really-safe-money-gen] then M.delete currency m
  10689. 493.56 s [really-safe-money-gen] else M.insert currency r m
  10690. 493.56 s [really-safe-money-gen]
  10691. 493.56 s [really-safe-money-gen] Tests:
  10692. 493.56 s [really-safe-money-gen]
  10693. 493.56 s [really-safe-money-gen] Money.MultiAmountSpec
  10694. 493.56 s [really-safe-money-gen] subtractAmount
  10695. 493.56 s [really-safe-money-gen] produces valid amounts 14.08 ms
  10696. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10697. 493.56 s [really-safe-money-gen] subtract
  10698. 493.56 s [really-safe-money-gen] produces valid amounts 21.18 ms
  10699. 493.56 s [really-safe-money-gen] passed for all of 1000 inputs.
  10700. 493.56 s [really-safe-money-gen]
  10701. 493.56 s [really-safe-money-gen]
  10702. 493.56 s [really-safe-money-gen]
  10703. 493.56 s [really-safe-money-gen] Examples: 2000
  10704. 493.56 s [really-safe-money-gen] Passed: 2
  10705. 493.57 s [really-safe-money-gen] Failed: 0
  10706. 493.57 s [really-safe-money-gen] Sum of test runtimes: 0.04 seconds
  10707. 493.57 s [really-safe-money-gen] Test suite took: 0.04 seconds
  10708. 493.57 s [really-safe-money-gen]
  10709. 493.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29:
  10710. 493.57 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  10711. 493.57 s [really-safe-money-gen] [ genericValidate ma,
  10712. 493.57 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10713. 493.57 s [really-safe-money-gen] declare "The amount is not zero" $
  10714. 493.57 s [really-safe-money-gen] - a /= Amount.zero
  10715. 493.57 s [really-safe-money-gen] + True
  10716. 493.57 s [really-safe-money-gen] ]
  10717. 493.57 s [really-safe-money-gen]
  10718. 493.57 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  10719. 493.57 s [really-safe-money-gen] Tests:
  10720. 493.57 s [really-safe-money-gen]
  10721. 493.57 s [really-safe-money-gen] Money.MultiAmountSpec
  10722. 493.57 s [really-safe-money-gen] fromAmount
  10723. 493.57 s [really-safe-money-gen] produces valid amounts 8.06 ms
  10724. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10725. 493.57 s [really-safe-money-gen] sum
  10726. 493.57 s [really-safe-money-gen] produces valid amounts 106.73 ms
  10727. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10728. 493.57 s [really-safe-money-gen] add
  10729. 493.57 s [really-safe-money-gen] produces valid amounts 70.24 ms
  10730. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10731. 493.57 s [really-safe-money-gen] addAmount
  10732. 493.57 s [really-safe-money-gen] produces valid amounts 44.25 ms
  10733. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10734. 493.57 s [really-safe-money-gen] subtractAmount
  10735. 493.57 s [really-safe-money-gen] produces valid amounts 14.51 ms
  10736. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10737. 493.57 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10738. 493.57 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10739. 493.57 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 57.30 ms
  10740. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10741. 493.57 s [really-safe-money-gen] subtract
  10742. 493.57 s [really-safe-money-gen] produces valid amounts 19.88 ms
  10743. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10744. 493.57 s [really-safe-money-gen]
  10745. 493.57 s [really-safe-money-gen]
  10746. 493.57 s [really-safe-money-gen]
  10747. 493.57 s [really-safe-money-gen] Examples: 7000
  10748. 493.57 s [really-safe-money-gen] Passed: 7
  10749. 493.57 s [really-safe-money-gen] Failed: 0
  10750. 493.57 s [really-safe-money-gen] Sum of test runtimes: 0.32 seconds
  10751. 493.57 s [really-safe-money-gen] Test suite took: 0.32 seconds
  10752. 493.57 s [really-safe-money-gen]
  10753. 493.57 s [really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29:
  10754. 493.57 s [really-safe-money-gen] @@ -63,7 +63,7 @@
  10755. 493.57 s [really-safe-money-gen] [ genericValidate ma,
  10756. 493.57 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10757. 493.57 s [really-safe-money-gen] declare "The amount is not zero" $
  10758. 493.57 s [really-safe-money-gen] - a /= Amount.zero
  10759. 493.57 s [really-safe-money-gen] + False
  10760. 493.57 s [really-safe-money-gen] ]
  10761. 493.57 s [really-safe-money-gen]
  10762. 493.57 s [really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
  10763. 493.57 s [really-safe-money-gen] Tests:
  10764. 493.57 s [really-safe-money-gen]
  10765. 493.57 s [really-safe-money-gen] Money.MultiAmountSpec
  10766. 493.57 s [really-safe-money-gen] fromAmount
  10767. 493.57 s [really-safe-money-gen] produces valid amounts 7.69 ms
  10768. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10769. 493.57 s [really-safe-money-gen] sum
  10770. 493.57 s [really-safe-money-gen] produces valid amounts 90.92 ms
  10771. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10772. 493.57 s [really-safe-money-gen] add
  10773. 493.57 s [really-safe-money-gen] produces valid amounts 64.21 ms
  10774. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10775. 493.57 s [really-safe-money-gen] addAmount
  10776. 493.57 s [really-safe-money-gen] produces valid amounts 38.69 ms
  10777. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10778. 493.57 s [really-safe-money-gen] subtractAmount
  10779. 493.57 s [really-safe-money-gen] produces valid amounts 12.77 ms
  10780. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10781. 493.57 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10782. 493.57 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10783. 493.57 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 58.99 ms
  10784. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10785. 493.57 s [really-safe-money-gen] subtract
  10786. 493.57 s [really-safe-money-gen] produces valid amounts 22.38 ms
  10787. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10788. 493.57 s [really-safe-money-gen]
  10789. 493.57 s [really-safe-money-gen]
  10790. 493.57 s [really-safe-money-gen]
  10791. 493.57 s [really-safe-money-gen] Examples: 7000
  10792. 493.57 s [really-safe-money-gen] Passed: 7
  10793. 493.57 s [really-safe-money-gen] Failed: 0
  10794. 493.57 s [really-safe-money-gen] Sum of test runtimes: 0.30 seconds
  10795. 493.57 s [really-safe-money-gen] Test suite took: 0.30 seconds
  10796. 493.57 s [really-safe-money-gen]
  10797. 493.57 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8:
  10798. 493.57 s [really-safe-money-gen] @@ -60,7 +60,7 @@
  10799. 493.57 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  10800. 493.57 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  10801. 493.57 s [really-safe-money-gen] mconcat
  10802. 493.57 s [really-safe-money-gen] - [ genericValidate ma,
  10803. 493.57 s [really-safe-money-gen] + [ genericValidate ma,
  10804. 493.57 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10805. 493.57 s [really-safe-money-gen] declare "The amount is not zero" $
  10806. 493.57 s [really-safe-money-gen] a /= Amount.zero
  10807. 493.57 s [really-safe-money-gen] Tests:
  10808. 493.57 s [really-safe-money-gen]
  10809. 493.57 s [really-safe-money-gen] Money.MultiAmountSpec
  10810. 493.57 s [really-safe-money-gen] fromAmount
  10811. 493.57 s [really-safe-money-gen] produces valid amounts 1.91 ms
  10812. 493.57 s [really-safe-money-gen] passed for all of 1000 inputs.
  10813. 493.57 s [really-safe-money-gen] zero
  10814. 493.57 s [really-safe-money-gen] is valid Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8:
  10815. 493.57 s [really-safe-money-gen] @@ -60,7 +60,7 @@
  10816. 493.57 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  10817. 493.57 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  10818. 493.57 s [really-safe-money-gen] mconcat
  10819. 493.57 s [really-safe-money-gen] - [ genericValidate ma,
  10820. 493.57 s [really-safe-money-gen] + [ genericValidate ma,
  10821. 493.57 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10822. 493.57 s [really-safe-money-gen] declare "The amount is not zero" $
  10823. 493.57 s [really-safe-money-gen] a /= Amount.zero
  10824. 493.57 s [really-safe-money-gen]
  10825. 493.80 s [really-safe-money-gen] 0.00 ms
  10826. 493.80 s [really-safe-money-gen] sum
  10827. 493.80 s [really-safe-money-gen] produces valid amounts 48.70 ms
  10828. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10829. 493.80 s [really-safe-money-gen] add
  10830. 493.80 s [really-safe-money-gen] produces valid amounts 24.85 ms
  10831. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10832. 493.80 s [really-safe-money-gen] addAmount
  10833. 493.80 s [really-safe-money-gen] produces valid amounts 12.31 ms
  10834. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10835. 493.80 s [really-safe-money-gen] subtractAmount
  10836. 493.80 s [really-safe-money-gen] produces valid amounts 12.07 ms
  10837. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10838. 493.80 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10839. 493.80 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10840. 493.80 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 1.42 ms
  10841. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10842. 493.80 s [really-safe-money-gen] subtract
  10843. 493.80 s [really-safe-money-gen] produces valid amounts 21.18 ms
  10844. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10845. 493.80 s [really-safe-money-gen]
  10846. 493.80 s [really-safe-money-gen]
  10847. 493.80 s [really-safe-money-gen]
  10848. 493.80 s [really-safe-money-gen] Examples: 7001
  10849. 493.80 s [really-safe-money-gen] Passed: 8
  10850. 493.80 s [really-safe-money-gen] Failed: 0
  10851. 493.80 s [really-safe-money-gen] Sum of test runtimes: 0.12 seconds
  10852. 493.80 s [really-safe-money-gen] Test suite took: 0.13 seconds
  10853. 493.80 s [really-safe-money-gen]
  10854. 493.80 s [really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8:
  10855. 493.80 s [really-safe-money-gen] @@ -60,7 +60,7 @@
  10856. 493.80 s [really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
  10857. 493.80 s [really-safe-money-gen] validate ma@(MultiAmount m) =
  10858. 493.80 s [really-safe-money-gen] mconcat
  10859. 493.80 s [really-safe-money-gen] - [ genericValidate ma,
  10860. 493.80 s [really-safe-money-gen] + [ genericValidate ma,
  10861. 493.80 s [really-safe-money-gen] decorateMap m $ \_ a ->
  10862. 493.80 s [really-safe-money-gen] declare "The amount is not zero" $
  10863. 493.80 s [really-safe-money-gen] a /= Amount.zero
  10864. 493.80 s [really-safe-money-gen] Tests:
  10865. 493.80 s [really-safe-money-gen]
  10866. 493.80 s [really-safe-money-gen] Money.MultiAmountSpec
  10867. 493.80 s [really-safe-money-gen] fromAmount
  10868. 493.80 s [really-safe-money-gen] produces valid amounts 2.09 ms
  10869. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10870. 493.80 s [really-safe-money-gen] zero
  10871. 493.80 s [really-safe-money-gen] is valid 0.02 ms
  10872. 493.80 s [really-safe-money-gen] sum
  10873. 493.80 s [really-safe-money-gen] produces valid amounts 51.08 ms
  10874. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10875. 493.80 s [really-safe-money-gen] add
  10876. 493.80 s [really-safe-money-gen] produces valid amounts 25.82 ms
  10877. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10878. 493.80 s [really-safe-money-gen] addAmount
  10879. 493.80 s [really-safe-money-gen] produces valid amounts 14.26 ms
  10880. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10881. 493.80 s [really-safe-money-gen] subtractAmount
  10882. 493.80 s [really-safe-money-gen] produces valid amounts 13.08 ms
  10883. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10884. 493.80 s [really-safe-money-gen] GenValid (MultiAmount Currency)
  10885. 493.80 s [really-safe-money-gen] genValid :: Gen (MultiAmount Currency)
  10886. 493.80 s [really-safe-money-gen] only generates valid '(MultiAmount Currency)'s 1.55 ms
  10887. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10888. 493.80 s [really-safe-money-gen] subtract
  10889. 493.80 s [really-safe-money-gen] produces valid amounts 19.85 ms
  10890. 493.80 s [really-safe-money-gen] passed for all of 1000 inputs.
  10891. 493.80 s [really-safe-money-gen]
  10892. 493.80 s [really-safe-money-gen]
  10893. 493.80 s [really-safe-money-gen]
  10894. 493.80 s [really-safe-money-gen] Examples: 7001
  10895. 493.80 s [really-safe-money-gen] Passed: 8
  10896. 493.80 s [really-safe-money-gen] Failed: 0
  10897. 493.80 s [really-safe-money-gen] Sum of test runtimes: 0.13 seconds
  10898. 493.80 s [really-safe-money-gen] Test suite took: 0.13 seconds
  10899. 493.80 s [really-safe-money-gen]
  10900. 493.80 s [really-safe-money-gen] Killed: 233
  10901. 493.80 s [really-safe-money-gen] Survived: 79
  10902. 493.80 s [really-safe-money-gen] Uncovered: 3
  10903. 493.81 s [really-safe-money-gen] checkPhase completed in 7 minutes 57 seconds
  10904. 493.81 s [really-safe-money-gen] Phase: haddockPhase
  10905. 493.94 s [really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
  10906. 493.95 s [really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
  10907. 493.95 s [really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
  10908. 493.95 s [really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
  10909. 494.13 s [really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
  10910. 494.26 s [really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
  10911. 494.26 s [really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
  10912. 494.26 s [really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
  10913. 494.27 s [really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
  10914. 494.27 s [really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
  10915. 494.28 s [really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
  10916. 494.28 s [really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
  10917. 494.28 s [really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
  10918. 494.29 s [really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
  10919. 494.30 s [really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
  10920. 494.30 s [really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
  10921. 494.30 s [really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
  10922. 494.32 s [really-safe-money-gen] Haddock coverage:
  10923. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
  10924. 494.32 s [really-safe-money-gen] Missing documentation for:
  10925. 494.32 s [really-safe-money-gen] Module header
  10926. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
  10927. 494.32 s [really-safe-money-gen] Missing documentation for:
  10928. 494.32 s [really-safe-money-gen] Module header
  10929. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
  10930. 494.32 s [really-safe-money-gen] Missing documentation for:
  10931. 494.32 s [really-safe-money-gen] Module header
  10932. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
  10933. 494.32 s [really-safe-money-gen] Missing documentation for:
  10934. 494.32 s [really-safe-money-gen] Module header
  10935. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
  10936. 494.32 s [really-safe-money-gen] Missing documentation for:
  10937. 494.32 s [really-safe-money-gen] Module header
  10938. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
  10939. 494.32 s [really-safe-money-gen] Missing documentation for:
  10940. 494.32 s [really-safe-money-gen] Module header
  10941. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
  10942. 494.32 s [really-safe-money-gen] Missing documentation for:
  10943. 494.32 s [really-safe-money-gen] Module header
  10944. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
  10945. 494.32 s [really-safe-money-gen] Missing documentation for:
  10946. 494.32 s [really-safe-money-gen] Module header
  10947. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
  10948. 494.32 s [really-safe-money-gen] Missing documentation for:
  10949. 494.32 s [really-safe-money-gen] Module header
  10950. 494.32 s [really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
  10951. 494.32 s [really-safe-money-gen] Missing documentation for:
  10952. 494.32 s [really-safe-money-gen] Module header
  10953. 494.32 s [really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
  10954. 494.32 s [really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
  10955. 494.32 s [really-safe-money-gen] Missing documentation for:
  10956. 494.32 s [really-safe-money-gen] Module header
  10957. 494.32 s [really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
  10958. 494.32 s [really-safe-money-gen] Missing documentation for:
  10959. 494.32 s [really-safe-money-gen] Module header
  10960. 494.32 s [really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
  10961. 494.48 s [really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
  10962. 494.48 s [really-safe-money-gen] - Money.Amount.Amount
  10963. 494.48 s [really-safe-money-gen] - Money.Amount.Distribution
  10964. 494.48 s [really-safe-money-gen] - Money.Amount.Rounding
  10965. 494.48 s [really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
  10966. 494.48 s [really-safe-money-gen] - Money.Account.Account
  10967. 494.48 s [really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
  10968. 494.48 s [really-safe-money-gen] - Money.AccountOf.AccountOf
  10969. 494.48 s [really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
  10970. 494.48 s [really-safe-money-gen] - Money.AmountOf.AmountOf
  10971. 494.48 s [really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
  10972. 494.48 s [really-safe-money-gen] - Money.ConversionRate.ConversionRate
  10973. 494.48 s [really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
  10974. 494.48 s [really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
  10975. 494.48 s [really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
  10976. 494.48 s [really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
  10977. 494.48 s [really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
  10978. 494.48 s [really-safe-money-gen] - Money.Currency.Currency
  10979. 494.48 s [really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
  10980. 494.48 s [really-safe-money-gen] - Money.MultiAmount.MultiAmount
  10981. 494.48 s [really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
  10982. 494.48 s [really-safe-money-gen] - Money.MultiAccount.MultiAccount
  10983. 494.48 s [really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
  10984. 494.48 s [really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
  10985. 498.65 s [really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
  10986. 498.65 s [really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
  10987. 498.73 s [really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
  10988. 498.73 s [really-safe-money-gen] Phase: installPhase
  10989. 498.82 s [really-safe-money-gen] Installing library in /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-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-KTRUiMX2w2iErncFnvROeR
  10990. 499.15 s [really-safe-money-gen] Phase: fixupPhase
  10991. 499.17 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0
  10992. 499.17 s [really-safe-money-gen] shrinking /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-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-KTRUiMX2w2iErncFnvROeR-ghc9.10.3.so
  10993. 499.19 s [really-safe-money-gen] checking for references to /build/ in /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0...
  10994. 499.22 s [really-safe-money-gen] patching script interpreter paths in /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0
  10995. 499.22 s [really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0/lib
  10996. 499.27 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc
  10997. 499.29 s [really-safe-money-gen] checking for references to /build/ in /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc...
  10998. 499.31 s [really-safe-money-gen] patching script interpreter paths in /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc
  10999. 499.31 s [really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report
  11000. 499.32 s [really-safe-money-gen] checking for references to /build/ in /nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report...
  11001. 499.35 s [really-safe-money-gen] patching script interpreter paths in /nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report
  11002. 499.49 s [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0 /nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc
  11003. 500.06 s [post-build-hook] Pushing 8 paths (181 are already present) using zstd to cache sydtest ⏳
  11004. 500.06 s [post-build-hook]
  11005. 500.42 s [post-build-hook] Pushing /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0 (1.27 MiB)
  11006. 500.53 s [post-build-hook] Pushing /nix/store/b84444n2il2fkz6n6wbincfddc0hgg1k-genvalidity-containers-1.0.0.2 (868.72 KiB)
  11007. 500.53 s [post-build-hook] Pushing /nix/store/8277qhdm7ld6sxwga3d8a7pzsz6lxy72-genvalidity-1.1.1.0 (3.07 MiB)
  11008. 500.54 s [post-build-hook] Pushing /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
  11009. 500.54 s [post-build-hook] Pushing /nix/store/r40wa6qpnxgljdybl25rlh3x84azspl4-genvalidity-1.1.1.0-doc (890.45 KiB)
  11010. 500.54 s [post-build-hook] Pushing /nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report (762.70 KiB)
  11011. 500.55 s [post-build-hook] Pushing /nix/store/xsvws95rpgksxq95mxhmz5w6gb0gwvyp-really-safe-money-0.0.0.0 (104.51 MiB)
  11012. 500.56 s [post-build-hook] Pushing /nix/store/r5wk7b4f69qw0i0jqv37zakfsghxdkha-genvalidity-containers-1.0.0.2-doc (305.05 KiB)
  11013. 503.06 s [post-build-hook]
  11014. 503.06 s [post-build-hook] All done.
  11015. 503.08 s [post-build-hook] Uploading to the NixCI staging cache: /nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0 /nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report /nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc
  11016. 503.12 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  11017. 503.45 s [post-build-hook] copying 3 paths...
  11018. 503.45 s [post-build-hook] copying path '/nix/store/i69b5p948bjsqq5ihw81212gg42nxlpv-really-safe-money-gen-0.0.0.0-doc' to 'https://cache.staging.nix-ci.com'...
  11019. 503.45 s [post-build-hook] copying path '/nix/store/abzs9d51wjw5m3mjrrgh8bbffm679daj-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
  11020. 503.55 s [post-build-hook] copying path '/nix/store/0lyb7q37r7c71xf1yhvmb6dh8m7dn2zj-really-safe-money-gen-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
  11021. 504.00 s [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
  11022. 504.21 s [post-build-hook] copying 1 paths...
  11023. 504.24 s [post-build-hook] copying path '/nix/store/5yphx350k5jx3xf3y72g63mvdlzxcjks-really-safe-money-gen-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
  11024. 504.40 s Progress: 1 of 2 built, 7 of 7 downloaded from cache