0.02 s
$ /nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout --kill-after=15s 7200s /nix/store/99b1z08awpxj8b6mzggn59gp1shljnff-nix-2.34.5/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link git+https://github.com/NorfairKing/sydtest?ref=remove-case-and-action-operators&rev=6b470f71743a1ef301d61b8e3d30b3d5f0cc67a7#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
0.08 s
warning: ignoring the client-specified setting 'netrc-file', because it is a restricted setting and you are not a trusted user
0.08 s
warning: ignoring the client-specified setting 'post-build-hook', because it is a restricted setting and you are not a trusted user
0.08 s
warning: ignoring untrusted substituter 'https://sydtest.cachix.org', you are not a trusted user.
0.08 s
Run `man nix.conf` for more information on the `substituters` configuration option.
0.08 s
warning: ignoring untrusted substituter 'https://cache.staging.nix-ci.com', you are not a trusted user.
0.08 s
Run `man nix.conf` for more information on the `substituters` configuration option.
0.08 s
warning: ignoring the client-specified setting 'trusted-public-keys', because it is a restricted setting and you are not a trusted user
0.08 s
warning: ignoring untrusted flake configuration setting 'extra-substituters'.
0.08 s
Pass '--accept-flake-config' to trust it
0.08 s
warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
0.08 s
Pass '--accept-flake-config' to trust it
0.08 s
warning: ignoring the client-specified setting 'netrc-file', because it is a restricted setting and you are not a trusted user
0.08 s
warning: ignoring the client-specified setting 'post-build-hook', because it is a restricted setting and you are not a trusted user
0.08 s
warning: ignoring untrusted substituter 'https://sydtest.cachix.org', you are not a trusted user.
0.08 s
Run `man nix.conf` for more information on the `substituters` configuration option.
0.08 s
warning: ignoring untrusted substituter 'https://cache.staging.nix-ci.com', you are not a trusted user.
0.08 s
Run `man nix.conf` for more information on the `substituters` configuration option.
0.08 s
warning: ignoring the client-specified setting 'trusted-public-keys', because it is a restricted setting and you are not a trusted user
1.46 s
2.02 s
Waiting for lock on autodocodec
2.08 s
Waiting for lock on safe-coloured-text
2.11 s
Building really-safe-money-source
2.13 s
Waiting for lock on genvalidity-criterion-source
2.14 s
Waiting for lock on genvalidity-property-source
2.14 s
Waiting for lock on validity-aeson-0.2.0.5-doc
2.20 s
[really-safe-money-source] Phase: setupCompilerEnvironmentPhase
2.20 s
[really-safe-money-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
2.33 s
[really-safe-money-source] Phase: unpackPhase
2.33 s
[really-safe-money-source] unpacking source archive /nix/store/9psbg8rr3pzwi79qc6xvdli07z0n0zaw-really-safe-money
2.34 s
[really-safe-money-source] source root is really-safe-money
2.35 s
[really-safe-money-source] Phase: patchPhase
2.36 s
[really-safe-money-source] Phase: compileBuildDriverPhase
2.37 s
[really-safe-money-source] setupCompileFlags: -package-db=/build/tmp.7fGvkxjQ00/setup-package.conf.d -threaded
2.42 s
[really-safe-money-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.7fGvkxjQ00/Main.o )
2.46 s
[really-safe-money-source] [2 of 2] Linking Setup
3.70 s
[really-safe-money-source] Phase: updateAutotoolsGnuConfigScriptsPhase
3.71 s
[really-safe-money-source] Phase: configurePhase
3.72 s
[really-safe-money-source] configureFlags: --verbose --prefix=/nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/really-safe-money-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.7fGvkxjQ00/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib
3.73 s
[really-safe-money-source] Using Parsec parser
3.73 s
[really-safe-money-source] Configuring really-safe-money-0.0.0.0...
4.23 s
[really-safe-money-source] Dependency base >=4.7 && <5: using base-4.20.2.0
4.23 s
[really-safe-money-source] Dependency containers: using containers-0.7
4.23 s
[really-safe-money-source] Dependency deepseq: using deepseq-1.5.0.0
4.23 s
[really-safe-money-source] Dependency validity: using validity-0.12.1.0
4.23 s
[really-safe-money-source] Dependency validity-containers: using validity-containers-0.5.0.5
4.23 s
[really-safe-money-source] Dependency validity-scientific: using validity-scientific-0.2.0.3
4.23 s
[really-safe-money-source] Source component graph: component lib
4.24 s
[really-safe-money-source] Configured component graph:
4.24 s
[really-safe-money-source] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
4.24 s
[really-safe-money-source] include base-4.20.2.0-64da
4.24 s
[really-safe-money-source] include containers-0.7-504a
4.24 s
[really-safe-money-source] include deepseq-1.5.0.0-9a2c
4.24 s
[really-safe-money-source] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
4.24 s
[really-safe-money-source] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
4.24 s
[really-safe-money-source] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
4.24 s
[really-safe-money-source] Linked component graph:
4.24 s
[really-safe-money-source] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
4.24 s
[really-safe-money-source] include base-4.20.2.0-64da
4.24 s
[really-safe-money-source] include containers-0.7-504a
4.24 s
[really-safe-money-source] include deepseq-1.5.0.0-9a2c
4.24 s
[really-safe-money-source] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
4.24 s
[really-safe-money-source] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
4.24 s
[really-safe-money-source] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
4.24 s
[really-safe-money-source] Money.Account=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Account,Money.AccountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AccountOf,Money.Amount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Amount,Money.AmountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AmountOf,Money.ConversionRate=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRate,Money.ConversionRateOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRateOf,Money.Currency=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Currency,Money.MultiAccount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAccount,Money.MultiAmount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAmount,Money.QuantisationFactor=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.QuantisationFactor,Numeric.DecimalLiteral=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Numeric.DecimalLiteral
4.24 s
[really-safe-money-source] Ready component graph:
4.24 s
[really-safe-money-source] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
4.24 s
[really-safe-money-source] depends base-4.20.2.0-64da
4.24 s
[really-safe-money-source] depends containers-0.7-504a
4.24 s
[really-safe-money-source] depends deepseq-1.5.0.0-9a2c
4.24 s
[really-safe-money-source] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
4.24 s
[really-safe-money-source] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
4.24 s
[really-safe-money-source] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
4.24 s
[really-safe-money-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
4.24 s
[really-safe-money-source] Using compiler: ghc-9.10.3
4.24 s
[really-safe-money-source] Using install prefix:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0
4.24 s
[really-safe-money-source] Executables installed in:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/bin
4.24 s
[really-safe-money-source] Libraries installed in:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
4.24 s
[really-safe-money-source] Dynamic Libraries installed in:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
4.24 s
[really-safe-money-source] Private executables installed in:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
4.24 s
[really-safe-money-source] Data files installed in:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
4.24 s
[really-safe-money-source] Documentation installed in: /share/doc/really-safe-money-0.0.0.0
4.24 s
[really-safe-money-source] Configuration files installed in:
4.24 s
[really-safe-money-source] /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/etc
4.24 s
[really-safe-money-source] No alex found
4.24 s
[really-safe-money-source] Using ar found on system at:
4.24 s
[really-safe-money-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
4.24 s
[really-safe-money-source] No c2hs found
4.24 s
[really-safe-money-source] No cpphs found
4.24 s
[really-safe-money-source] No doctest found
4.24 s
[really-safe-money-source] Using gcc version 14.3.0 given by user at:
4.24 s
[really-safe-money-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
4.24 s
[really-safe-money-source] Using ghc version 9.10.3 found on system at:
4.24 s
[really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
4.24 s
[really-safe-money-source] Using ghc-pkg version 9.10.3 found on system at:
4.24 s
[really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
4.24 s
[really-safe-money-source] No ghcjs found
4.24 s
[really-safe-money-source] No ghcjs-pkg found
4.24 s
[really-safe-money-source] No greencard found
4.24 s
[really-safe-money-source] Using haddock version 2.31.1 found on system at:
4.24 s
[really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
4.24 s
[really-safe-money-source] No happy found
4.24 s
[really-safe-money-source] Using haskell-suite found on system at: haskell-suite-dummy-location
4.24 s
[really-safe-money-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
4.24 s
[really-safe-money-source] No hmake found
4.24 s
[really-safe-money-source] Using hpc version 0.69 found on system at:
4.24 s
[really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
4.24 s
[really-safe-money-source] Using hsc2hs version 0.68.10 found on system at:
4.24 s
[really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
4.24 s
[really-safe-money-source] Using hscolour version 1.25 found on system at:
4.24 s
[really-safe-money-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
4.24 s
[really-safe-money-source] No jhc found
4.24 s
[really-safe-money-source] Using ld found on system at:
4.24 s
[really-safe-money-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
4.24 s
[really-safe-money-source] No pkg-config found
4.24 s
[really-safe-money-source] Using runghc version 9.10.3 found on system at:
4.24 s
[really-safe-money-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
4.24 s
[really-safe-money-source] Using strip version 2.44 found on system at:
4.24 s
[really-safe-money-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
4.24 s
[really-safe-money-source] Using tar found on system at:
4.24 s
[really-safe-money-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
4.24 s
[really-safe-money-source] No uhc found
4.40 s
[really-safe-money-source] Phase: buildPhase
4.41 s
[really-safe-money-source] Distribution quality warnings:
4.41 s
[really-safe-money-source] [no-category] No 'category' field.
4.41 s
[really-safe-money-source] [no-maintainer] No 'maintainer' field.
4.41 s
[really-safe-money-source] [no-synopsis] No 'synopsis' field.
4.41 s
[really-safe-money-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
4.41 s
[really-safe-money-source] you want?
4.41 s
[really-safe-money-source] [missing-upper-bounds] On library, these packages miss upper bounds:
4.41 s
[really-safe-money-source] - containers
4.41 s
[really-safe-money-source] - deepseq
4.41 s
[really-safe-money-source] - validity
4.41 s
[really-safe-money-source] - validity-containers
4.41 s
[really-safe-money-source] - validity-scientific
4.41 s
[really-safe-money-source] Please add them. There is more information at https://pvp.haskell.org/
4.41 s
[really-safe-money-source] Building source dist for really-safe-money-0.0.0.0...
4.42 s
[really-safe-money-source] Source tarball created: dist/really-safe-money-0.0.0.0.tar.gz
4.43 s
[really-safe-money-source] Phase: haddockPhase
4.43 s
[really-safe-money-source] Phase: installPhase
4.44 s
[really-safe-money-source] Phase: fixupPhase
4.46 s
Progress: 1 of 47 built
7.48 s
Waiting for lock on genvalidity-criterion-1.1.0.0-doc
7.48 s
Waiting for lock on genvalidity-property-1.0.0.0-doc
7.54 s
Waiting for lock on safe-coloured-text-layout-0.2.0.1-doc
7.54 s
Waiting for lock on safe-coloured-text-terminfo
12.50 s
Waiting for lock on autodocodec-nix-source
12.53 s
Waiting for lock on autodocodec-schema-source
17.52 s
Waiting for lock on autodocodec-nix
17.52 s
Waiting for lock on autodocodec-schema-0.2.0.1-doc
22.53 s
Waiting for lock on genvalidity-hspec-1.0.0.4-doc
32.55 s
Waiting for lock on autodocodec-yaml-source
37.58 s
Waiting for lock on autodocodec-yaml
37.61 s
Building genvalidity-vector-source
37.63 s
Waiting for lock on genvalidity-containers
37.63 s
Waiting for lock on genvalidity-text-1.0.0.1-doc
37.64 s
Waiting for lock on validity-path-0.4.0.1-doc
37.75 s
[genvalidity-vector-source] Phase: setupCompilerEnvironmentPhase
37.75 s
[genvalidity-vector-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
37.94 s
[genvalidity-vector-source] Phase: unpackPhase
37.94 s
[genvalidity-vector-source] unpacking source archive /nix/store/l6zbxrdbn7l981nyhv68xczyp86v3fh5-genvalidity-vector
37.95 s
[genvalidity-vector-source] source root is genvalidity-vector
37.96 s
[genvalidity-vector-source] Phase: patchPhase
37.97 s
[genvalidity-vector-source] Phase: compileBuildDriverPhase
37.97 s
[genvalidity-vector-source] setupCompileFlags: -package-db=/build/tmp.JVno47GlCd/setup-package.conf.d -threaded
38.02 s
[genvalidity-vector-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.JVno47GlCd/Main.o )
38.06 s
[genvalidity-vector-source] [2 of 2] Linking Setup
39.22 s
[genvalidity-vector-source] Phase: updateAutotoolsGnuConfigScriptsPhase
39.23 s
[genvalidity-vector-source] Phase: configurePhase
39.57 s
[genvalidity-vector-source] configureFlags: --verbose --prefix=/nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/genvalidity-vector-1.0.0.0 --with-gcc=gcc --package-db=/build/tmp.JVno47GlCd/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-option=-Wall --ghc-option=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib
39.58 s
[genvalidity-vector-source] Using Parsec parser
39.58 s
[genvalidity-vector-source] Configuring genvalidity-vector-1.0.0.0...
40.13 s
[genvalidity-vector-source] Dependency base <5: using base-4.20.2.0
40.13 s
[genvalidity-vector-source] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
40.13 s
[genvalidity-vector-source] Dependency validity-vector >=0.1: using validity-vector-0.2.0.3
40.13 s
[genvalidity-vector-source] Dependency vector: using vector-0.13.2.0
40.13 s
[genvalidity-vector-source] Dependency base <5: using base-4.20.2.0
40.13 s
[genvalidity-vector-source] Dependency genvalidity-hspec: using genvalidity-hspec-1.0.0.4
40.14 s
[genvalidity-vector-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
40.14 s
[genvalidity-vector-source] Dependency hspec: using hspec-2.11.14
40.14 s
[genvalidity-vector-source] Dependency vector: using vector-0.13.2.0
40.14 s
[genvalidity-vector-source] Source component graph:
40.14 s
[genvalidity-vector-source] component lib
40.14 s
[genvalidity-vector-source] component test:genvalidity-vector-test dependency lib
40.14 s
[genvalidity-vector-source] Configured component graph:
40.14 s
[genvalidity-vector-source] component genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] include base-4.20.2.0-64da
40.14 s
[genvalidity-vector-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
40.14 s
[genvalidity-vector-source] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
40.14 s
[genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
40.14 s
[genvalidity-vector-source] component genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
40.14 s
[genvalidity-vector-source] include base-4.20.2.0-64da
40.14 s
[genvalidity-vector-source] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
40.14 s
[genvalidity-vector-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
40.14 s
[genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
40.14 s
[genvalidity-vector-source] Linked component graph:
40.14 s
[genvalidity-vector-source] unit genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] include base-4.20.2.0-64da
40.14 s
[genvalidity-vector-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
40.14 s
[genvalidity-vector-source] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
40.14 s
[genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
40.14 s
[genvalidity-vector-source] Data.GenValidity.Vector=genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi:Data.GenValidity.Vector
40.14 s
[genvalidity-vector-source] unit genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
40.14 s
[genvalidity-vector-source] include base-4.20.2.0-64da
40.14 s
[genvalidity-vector-source] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
40.14 s
[genvalidity-vector-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
40.14 s
[genvalidity-vector-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
40.14 s
[genvalidity-vector-source] Ready component graph:
40.14 s
[genvalidity-vector-source] definite genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] depends base-4.20.2.0-64da
40.14 s
[genvalidity-vector-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
40.14 s
[genvalidity-vector-source] depends validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
40.14 s
[genvalidity-vector-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
40.14 s
[genvalidity-vector-source] definite genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
40.14 s
[genvalidity-vector-source] depends base-4.20.2.0-64da
40.14 s
[genvalidity-vector-source] depends genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
40.14 s
[genvalidity-vector-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] depends hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
40.14 s
[genvalidity-vector-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
40.14 s
[genvalidity-vector-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
40.14 s
[genvalidity-vector-source] Using compiler: ghc-9.10.3
40.14 s
[genvalidity-vector-source] Using install prefix:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0
40.14 s
[genvalidity-vector-source] Executables installed in:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/bin
40.14 s
[genvalidity-vector-source] Libraries installed in:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
40.14 s
[genvalidity-vector-source] Dynamic Libraries installed in:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
40.14 s
[genvalidity-vector-source] Private executables installed in:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
40.14 s
[genvalidity-vector-source] Data files installed in:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
40.14 s
[genvalidity-vector-source] Documentation installed in: /share/doc/genvalidity-vector-1.0.0.0
40.14 s
[genvalidity-vector-source] Configuration files installed in:
40.14 s
[genvalidity-vector-source] /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/etc
40.14 s
[genvalidity-vector-source] No alex found
40.14 s
[genvalidity-vector-source] Using ar found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
40.14 s
[genvalidity-vector-source] No c2hs found
40.14 s
[genvalidity-vector-source] No cpphs found
40.14 s
[genvalidity-vector-source] No doctest found
40.14 s
[genvalidity-vector-source] Using gcc version 14.3.0 given by user at:
40.14 s
[genvalidity-vector-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
40.14 s
[genvalidity-vector-source] Using ghc version 9.10.3 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
40.14 s
[genvalidity-vector-source] Using ghc-pkg version 9.10.3 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
40.14 s
[genvalidity-vector-source] No ghcjs found
40.14 s
[genvalidity-vector-source] No ghcjs-pkg found
40.14 s
[genvalidity-vector-source] No greencard found
40.14 s
[genvalidity-vector-source] Using haddock version 2.31.1 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
40.14 s
[genvalidity-vector-source] No happy found
40.14 s
[genvalidity-vector-source] Using haskell-suite found on system at: haskell-suite-dummy-location
40.14 s
[genvalidity-vector-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
40.14 s
[genvalidity-vector-source] No hmake found
40.14 s
[genvalidity-vector-source] Using hpc version 0.69 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
40.14 s
[genvalidity-vector-source] Using hsc2hs version 0.68.10 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
40.14 s
[genvalidity-vector-source] Using hscolour version 1.25 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
40.14 s
[genvalidity-vector-source] No jhc found
40.14 s
[genvalidity-vector-source] Using ld found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
40.14 s
[genvalidity-vector-source] No pkg-config found
40.14 s
[genvalidity-vector-source] Using runghc version 9.10.3 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
40.14 s
[genvalidity-vector-source] Using strip version 2.44 found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
40.14 s
[genvalidity-vector-source] Using tar found on system at:
40.14 s
[genvalidity-vector-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
40.14 s
[genvalidity-vector-source] No uhc found
40.36 s
[genvalidity-vector-source] Phase: buildPhase
40.37 s
[genvalidity-vector-source] Distribution quality warnings:
40.37 s
[genvalidity-vector-source] [no-description] No 'description' field.
40.37 s
[genvalidity-vector-source] [missing-upper-bounds] On library, these packages miss upper bounds:
40.37 s
[genvalidity-vector-source] - genvalidity
40.37 s
[genvalidity-vector-source] - validity-vector
40.37 s
[genvalidity-vector-source] - vector
40.37 s
[genvalidity-vector-source] Please add them. There is more information at https://pvp.haskell.org/
40.37 s
[genvalidity-vector-source] Building source dist for genvalidity-vector-1.0.0.0...
40.38 s
[genvalidity-vector-source] Source tarball created: dist/genvalidity-vector-1.0.0.0.tar.gz
40.38 s
[genvalidity-vector-source] Phase: checkPhase
40.39 s
[genvalidity-vector-source] Phase: haddockPhase
40.39 s
[genvalidity-vector-source] Phase: installPhase
40.40 s
[genvalidity-vector-source] Phase: fixupPhase
40.41 s
Progress: 2 of 26 built
40.46 s
Building genvalidity-vector
40.59 s
[genvalidity-vector] Phase: setupCompilerEnvironmentPhase
40.59 s
[genvalidity-vector] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
40.79 s
[genvalidity-vector] Phase: unpackPhase
40.80 s
[genvalidity-vector] unpacking source archive /nix/store/yljlcdxi6cj0bfknbmh9s41mca7628cj-genvalidity-vector-source-1.0.0.0/genvalidity-vector-1.0.0.0.tar.gz
40.80 s
[genvalidity-vector] source root is genvalidity-vector-1.0.0.0
40.81 s
[genvalidity-vector] setting SOURCE_DATE_EPOCH to timestamp 1778687740 of file "genvalidity-vector-1.0.0.0/test/Test/Validity/VectorSpec.hs"
40.81 s
[genvalidity-vector] warning: file "genvalidity-vector-1.0.0.0/test/Test/Validity/VectorSpec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
40.81 s
[genvalidity-vector] Phase: patchPhase
40.82 s
[genvalidity-vector] Phase: compileBuildDriverPhase
40.82 s
[genvalidity-vector] setupCompileFlags: -package-db=/build/tmp.WztCDjo0Qb/setup-package.conf.d -threaded
40.87 s
[genvalidity-vector] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.WztCDjo0Qb/Main.o )
40.91 s
[genvalidity-vector] [2 of 2] Linking Setup
42.10 s
[genvalidity-vector] Phase: updateAutotoolsGnuConfigScriptsPhase
42.27 s
[genvalidity-vector] Phase: configurePhase
42.35 s
[genvalidity-vector] configureFlags: --verbose --prefix=/nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc/share/doc/genvalidity-vector-1.0.0.0 --with-gcc=gcc --package-db=/build/tmp.WztCDjo0Qb/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-option=-Wall --ghc-option=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib
42.35 s
[genvalidity-vector] Using Parsec parser
42.35 s
[genvalidity-vector] Configuring genvalidity-vector-1.0.0.0...
42.87 s
[genvalidity-vector] Dependency base <5: using base-4.20.2.0
42.91 s
[genvalidity-vector] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
42.91 s
[genvalidity-vector] Dependency validity-vector >=0.1: using validity-vector-0.2.0.3
42.91 s
[genvalidity-vector] Dependency vector: using vector-0.13.2.0
42.91 s
[genvalidity-vector] Dependency base <5: using base-4.20.2.0
42.91 s
[genvalidity-vector] Dependency genvalidity-hspec: using genvalidity-hspec-1.0.0.4
42.92 s
[genvalidity-vector] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
42.92 s
[genvalidity-vector] Dependency hspec: using hspec-2.11.14
42.92 s
[genvalidity-vector] Dependency vector: using vector-0.13.2.0
42.92 s
[genvalidity-vector] Source component graph:
42.92 s
[genvalidity-vector] component lib
42.92 s
[genvalidity-vector] component test:genvalidity-vector-test dependency lib
42.92 s
[genvalidity-vector] Configured component graph:
42.92 s
[genvalidity-vector] component genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] include base-4.20.2.0-64da
42.92 s
[genvalidity-vector] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
42.92 s
[genvalidity-vector] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
42.92 s
[genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
42.92 s
[genvalidity-vector] component genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
42.92 s
[genvalidity-vector] include base-4.20.2.0-64da
42.92 s
[genvalidity-vector] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
42.92 s
[genvalidity-vector] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
42.92 s
[genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
42.92 s
[genvalidity-vector] Linked component graph:
42.92 s
[genvalidity-vector] unit genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] include base-4.20.2.0-64da
42.92 s
[genvalidity-vector] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
42.92 s
[genvalidity-vector] include validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
42.92 s
[genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
42.92 s
[genvalidity-vector] Data.GenValidity.Vector=genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi:Data.GenValidity.Vector
42.92 s
[genvalidity-vector] unit genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
42.92 s
[genvalidity-vector] include base-4.20.2.0-64da
42.92 s
[genvalidity-vector] include genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
42.92 s
[genvalidity-vector] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] include hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
42.92 s
[genvalidity-vector] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
42.92 s
[genvalidity-vector] Ready component graph:
42.92 s
[genvalidity-vector] definite genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] depends base-4.20.2.0-64da
42.92 s
[genvalidity-vector] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
42.92 s
[genvalidity-vector] depends validity-vector-0.2.0.3-LcrKRYHjpNSJaTuRQQcnnT
42.92 s
[genvalidity-vector] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
42.92 s
[genvalidity-vector] definite genvalidity-vector-1.0.0.0-FwsPtBaB3If8jIc2P6ifOb-genvalidity-vector-test
42.92 s
[genvalidity-vector] depends base-4.20.2.0-64da
42.92 s
[genvalidity-vector] depends genvalidity-hspec-1.0.0.4-GNocU9yTBymKUPEwuqX9vo
42.92 s
[genvalidity-vector] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] depends hspec-2.11.14-2owp4iDtqTw5MLSF8XDmva
42.92 s
[genvalidity-vector] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
42.92 s
[genvalidity-vector] Using Cabal-3.12.1.0 compiled by ghc-9.10
42.92 s
[genvalidity-vector] Using compiler: ghc-9.10.3
42.92 s
[genvalidity-vector] Using install prefix:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0
42.92 s
[genvalidity-vector] Executables installed in:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/bin
42.92 s
[genvalidity-vector] Libraries installed in:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
42.92 s
[genvalidity-vector] Dynamic Libraries installed in:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
42.92 s
[genvalidity-vector] Private executables installed in:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
42.92 s
[genvalidity-vector] Data files installed in:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0
42.92 s
[genvalidity-vector] Documentation installed in:
42.92 s
[genvalidity-vector] /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc/share/doc/genvalidity-vector-1.0.0.0
42.92 s
[genvalidity-vector] Configuration files installed in:
42.92 s
[genvalidity-vector] /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/etc
42.92 s
[genvalidity-vector] No alex found
42.92 s
[genvalidity-vector] Using ar found on system at:
42.92 s
[genvalidity-vector] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
42.92 s
[genvalidity-vector] No c2hs found
42.92 s
[genvalidity-vector] No cpphs found
42.92 s
[genvalidity-vector] No doctest found
42.92 s
[genvalidity-vector] Using gcc version 14.3.0 given by user at:
42.92 s
[genvalidity-vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
42.92 s
[genvalidity-vector] Using ghc version 9.10.3 found on system at:
42.92 s
[genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
42.92 s
[genvalidity-vector] Using ghc-pkg version 9.10.3 found on system at:
42.92 s
[genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
42.92 s
[genvalidity-vector] No ghcjs found
42.92 s
[genvalidity-vector] No ghcjs-pkg found
42.92 s
[genvalidity-vector] No greencard found
42.92 s
[genvalidity-vector] Using haddock version 2.31.1 found on system at:
42.92 s
[genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
42.92 s
[genvalidity-vector] No happy found
42.92 s
[genvalidity-vector] Using haskell-suite found on system at: haskell-suite-dummy-location
42.92 s
[genvalidity-vector] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
42.92 s
[genvalidity-vector] No hmake found
42.92 s
[genvalidity-vector] Using hpc version 0.69 found on system at:
42.92 s
[genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
42.92 s
[genvalidity-vector] Using hsc2hs version 0.68.10 found on system at:
42.92 s
[genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
42.92 s
[genvalidity-vector] Using hscolour version 1.25 found on system at:
42.92 s
[genvalidity-vector] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
42.92 s
[genvalidity-vector] No jhc found
42.92 s
[genvalidity-vector] Using ld found on system at:
42.92 s
[genvalidity-vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
42.92 s
[genvalidity-vector] No pkg-config found
42.92 s
[genvalidity-vector] Using runghc version 9.10.3 found on system at:
42.92 s
[genvalidity-vector] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
42.92 s
[genvalidity-vector] Using strip version 2.44 found on system at:
42.92 s
[genvalidity-vector] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
42.92 s
[genvalidity-vector] Using tar found on system at:
42.92 s
[genvalidity-vector] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
42.92 s
[genvalidity-vector] No uhc found
43.07 s
[genvalidity-vector] Phase: buildPhase
43.12 s
[genvalidity-vector] Preprocessing library for genvalidity-vector-1.0.0.0...
43.12 s
[genvalidity-vector] Building library for genvalidity-vector-1.0.0.0...
43.20 s
[genvalidity-vector] [1 of 2] Compiling Data.GenValidity.Vector ( src/Data/GenValidity/Vector.hs, dist/build/Data/GenValidity/Vector.o, dist/build/Data/GenValidity/Vector.dyn_o )
43.58 s
[genvalidity-vector] [2 of 2] Compiling Paths_genvalidity_vector ( dist/build/autogen/Paths_genvalidity_vector.hs, dist/build/Paths_genvalidity_vector.o, dist/build/Paths_genvalidity_vector.dyn_o )
43.71 s
[genvalidity-vector] [1 of 2] Compiling Data.GenValidity.Vector ( src/Data/GenValidity/Vector.hs, dist/build/Data/GenValidity/Vector.p_o )
44.34 s
[genvalidity-vector] [2 of 2] Compiling Paths_genvalidity_vector ( dist/build/autogen/Paths_genvalidity_vector.hs, dist/build/Paths_genvalidity_vector.p_o )
45.55 s
[genvalidity-vector] Preprocessing test suite 'genvalidity-vector-test' for genvalidity-vector-1.0.0.0...
45.55 s
[genvalidity-vector] Building test suite 'genvalidity-vector-test' for genvalidity-vector-1.0.0.0...
45.64 s
[genvalidity-vector] [1 of 3] Compiling Paths_genvalidity_vector ( dist/build/genvalidity-vector-test/autogen/Paths_genvalidity_vector.hs, dist/build/genvalidity-vector-test/genvalidity-vector-test-tmp/Paths_genvalidity_vector.o )
45.74 s
[genvalidity-vector] [2 of 3] Compiling Test.Validity.VectorSpec ( test/Test/Validity/VectorSpec.hs, dist/build/genvalidity-vector-test/genvalidity-vector-test-tmp/Test/Validity/VectorSpec.o )
45.74 s
[genvalidity-vector] [3 of 3] Compiling Main ( test/Spec.hs, dist/build/genvalidity-vector-test/genvalidity-vector-test-tmp/Main.o )
45.92 s
[genvalidity-vector] [4 of 4] Linking dist/build/genvalidity-vector-test/genvalidity-vector-test
46.82 s
[genvalidity-vector] Phase: checkPhase
47.03 s
[genvalidity-vector] Running 1 test suites...
47.03 s
[genvalidity-vector] Test suite genvalidity-vector-test: RUNNING...
47.04 s
[genvalidity-vector]
47.04 s
[genvalidity-vector] Test.Validity.Vector
47.04 s
[genvalidity-vector] GenValid (Vector Int)
47.04 s
[genvalidity-vector] genValid :: Gen (Vector Int)
47.04 s
[genvalidity-vector] only generates valid '(Vector Int)'s [✔]
47.04 s
[genvalidity-vector] +++ OK, passed 100 tests.
47.04 s
[genvalidity-vector] GenValid (Vector (Ratio Integer))
47.04 s
[genvalidity-vector] genValid :: Gen (Vector (Ratio Integer))
47.05 s
[genvalidity-vector] only generates valid '(Vector (Ratio Integer))'s [✔]
47.05 s
[genvalidity-vector] +++ OK, passed 100 tests.
47.05 s
[genvalidity-vector] GenValid (Vector Int)
47.05 s
[genvalidity-vector] genValid :: Gen (Vector Int)
47.05 s
[genvalidity-vector] only generates valid '(Vector Int)'s [✔]
47.05 s
[genvalidity-vector] +++ OK, passed 100 tests.
47.05 s
[genvalidity-vector]
47.05 s
[genvalidity-vector] Finished in 0.0093 seconds
47.05 s
[genvalidity-vector] 3 examples, 0 failures
47.05 s
[genvalidity-vector] Test suite genvalidity-vector-test: PASS
47.05 s
[genvalidity-vector] Test suite logged to:
47.05 s
[genvalidity-vector] dist/test/genvalidity-vector-1.0.0.0-genvalidity-vector-test.log
47.05 s
[genvalidity-vector] 1 of 1 test suites (1 of 1 test cases) passed.
47.06 s
[genvalidity-vector] Phase: haddockPhase
47.17 s
[genvalidity-vector] Preprocessing library for genvalidity-vector-1.0.0.0...
47.17 s
[genvalidity-vector] Running Haddock on library for genvalidity-vector-1.0.0.0...
47.17 s
[genvalidity-vector] Warning: The documentation for the following packages are not installed. No
47.17 s
[genvalidity-vector] links will be generated to these packages: vector-0.13.2.0
47.32 s
[genvalidity-vector] [1 of 2] Compiling Data.GenValidity.Vector ( src/Data/GenValidity/Vector.hs, nothing )
47.43 s
[genvalidity-vector] [2 of 2] Compiling Paths_genvalidity_vector ( dist/build/autogen/Paths_genvalidity_vector.hs, nothing )
47.45 s
[genvalidity-vector] Haddock coverage:
47.45 s
[genvalidity-vector] 0% ( 0 / 1) in 'Data.GenValidity.Vector'
47.45 s
[genvalidity-vector] Missing documentation for:
47.45 s
[genvalidity-vector] Module header
47.60 s
[genvalidity-vector] Warning: Data.GenValidity.Vector: could not find link destinations for:
47.60 s
[genvalidity-vector] - Data.Vector.Storable.Vector
47.60 s
[genvalidity-vector] - Data.Vector.Vector
48.61 s
Waiting for lock on opt-env-conf-source
51.09 s
[genvalidity-vector] Documentation created: dist/doc/html/genvalidity-vector/,
51.09 s
[genvalidity-vector] dist/doc/html/genvalidity-vector/genvalidity-vector.txt
51.15 s
[genvalidity-vector] Preprocessing test suite 'genvalidity-vector-test' for genvalidity-vector-1.0.0.0...
51.15 s
[genvalidity-vector] Phase: installPhase
51.20 s
[genvalidity-vector] Installing library in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
51.35 s
[genvalidity-vector] Phase: fixupPhase
51.37 s
[genvalidity-vector] shrinking RPATHs of ELF executables and libraries in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0
51.37 s
[genvalidity-vector] shrinking /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSgenvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi-ghc9.10.3.so
51.38 s
[genvalidity-vector] checking for references to /build/ in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0...
51.39 s
[genvalidity-vector] patching script interpreter paths in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0
51.40 s
[genvalidity-vector] stripping (with command strip and flags -S -p) in /nix/store/w6iga7y91k0ijj3r6224vdnaa9qq8v1d-genvalidity-vector-1.0.0.0/lib
51.42 s
[genvalidity-vector] shrinking RPATHs of ELF executables and libraries in /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc
51.43 s
[genvalidity-vector] checking for references to /build/ in /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc...
51.44 s
[genvalidity-vector] patching script interpreter paths in /nix/store/b20xiqxaw5v4zmfbzaf1p3rzlag6az90-genvalidity-vector-1.0.0.0-doc
51.50 s
Progress: 3 of 25 built
54.52 s
Waiting for lock on opt-env-conf-0.15.0.1-doc
54.53 s
Waiting for lock on genvalidity-path
69.56 s
Waiting for lock on sydtest-mutation-runtime
89.59 s
Waiting for lock on sydtest-source
89.62 s
Building sydtest-mutation-plugin-source
89.81 s
[sydtest-mutation-plugin-source] Phase: setupCompilerEnvironmentPhase
89.85 s
[sydtest-mutation-plugin-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
90.05 s
[sydtest-mutation-plugin-source] Phase: unpackPhase
90.05 s
[sydtest-mutation-plugin-source] unpacking source archive /nix/store/n3rsnymzb9bps95bp27qrjl59y7clnq5-sydtest-mutation-plugin
90.06 s
[sydtest-mutation-plugin-source] source root is sydtest-mutation-plugin
90.07 s
[sydtest-mutation-plugin-source] Phase: patchPhase
90.07 s
[sydtest-mutation-plugin-source] Phase: compileBuildDriverPhase
90.08 s
[sydtest-mutation-plugin-source] setupCompileFlags: -package-db=/build/tmp.m6p4BWGVJ2/setup-package.conf.d -threaded
90.12 s
[sydtest-mutation-plugin-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.m6p4BWGVJ2/Main.o )
90.16 s
[sydtest-mutation-plugin-source] [2 of 2] Linking Setup
91.20 s
[sydtest-mutation-plugin-source] Phase: updateAutotoolsGnuConfigScriptsPhase
91.21 s
[sydtest-mutation-plugin-source] Phase: configurePhase
91.22 s
[sydtest-mutation-plugin-source] configureFlags: --verbose --prefix=/nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/sydtest-mutation-plugin-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.m6p4BWGVJ2/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Wunused-packages --ghc-options=-Werror --ghc-options=-Wno-deprecations --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
91.22 s
[sydtest-mutation-plugin-source] Using Parsec parser
91.22 s
[sydtest-mutation-plugin-source] Configuring sydtest-mutation-plugin-0.0.0.0...
91.73 s
[sydtest-mutation-plugin-source] Dependency base >=4.7 && <5: using base-4.20.2.0
91.73 s
[sydtest-mutation-plugin-source] Dependency bytestring: using bytestring-0.12.2.0
91.73 s
[sydtest-mutation-plugin-source] Dependency directory: using directory-1.3.8.5
91.73 s
[sydtest-mutation-plugin-source] Dependency filepath: using filepath-1.5.4.0
91.73 s
[sydtest-mutation-plugin-source] Dependency ghc: using ghc-9.10.3
91.73 s
[sydtest-mutation-plugin-source] Dependency ghc-boot: using ghc-boot-9.10.3
91.73 s
[sydtest-mutation-plugin-source] Dependency mtl: using mtl-2.3.1
91.73 s
[sydtest-mutation-plugin-source] Dependency path: using path-0.9.6
91.73 s
[sydtest-mutation-plugin-source] Dependency path-io: using path-io-1.8.2
91.73 s
[sydtest-mutation-plugin-source] Dependency sydtest-mutation-runtime: using sydtest-mutation-runtime-0.0.0.0
91.73 s
[sydtest-mutation-plugin-source] Dependency template-haskell: using template-haskell-2.22.0.0
91.73 s
[sydtest-mutation-plugin-source] Dependency text: using text-2.1.3
91.73 s
[sydtest-mutation-plugin-source] Source component graph: component lib
91.73 s
[sydtest-mutation-plugin-source] Configured component graph:
91.73 s
[sydtest-mutation-plugin-source] component sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
91.73 s
[sydtest-mutation-plugin-source] include base-4.20.2.0-64da
91.73 s
[sydtest-mutation-plugin-source] include bytestring-0.12.2.0-262e
91.73 s
[sydtest-mutation-plugin-source] include directory-1.3.8.5-c84a
91.73 s
[sydtest-mutation-plugin-source] include filepath-1.5.4.0-e600
91.73 s
[sydtest-mutation-plugin-source] include ghc-9.10.3-05f6
91.73 s
[sydtest-mutation-plugin-source] include ghc-boot-9.10.3-76c6
91.73 s
[sydtest-mutation-plugin-source] include mtl-2.3.1-b4af
91.73 s
[sydtest-mutation-plugin-source] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
91.73 s
[sydtest-mutation-plugin-source] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
91.73 s
[sydtest-mutation-plugin-source] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
91.73 s
[sydtest-mutation-plugin-source] include template-haskell-2.22.0.0-09e7
91.73 s
[sydtest-mutation-plugin-source] include text-2.1.3-c691
91.73 s
[sydtest-mutation-plugin-source] Linked component graph:
91.73 s
[sydtest-mutation-plugin-source] unit sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
91.73 s
[sydtest-mutation-plugin-source] include base-4.20.2.0-64da
91.73 s
[sydtest-mutation-plugin-source] include bytestring-0.12.2.0-262e
91.73 s
[sydtest-mutation-plugin-source] include directory-1.3.8.5-c84a
91.73 s
[sydtest-mutation-plugin-source] include filepath-1.5.4.0-e600
91.73 s
[sydtest-mutation-plugin-source] include ghc-9.10.3-05f6
91.73 s
[sydtest-mutation-plugin-source] include ghc-boot-9.10.3-76c6
91.73 s
[sydtest-mutation-plugin-source] include mtl-2.3.1-b4af
91.73 s
[sydtest-mutation-plugin-source] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
91.73 s
[sydtest-mutation-plugin-source] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
91.73 s
[sydtest-mutation-plugin-source] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
91.73 s
[sydtest-mutation-plugin-source] include template-haskell-2.22.0.0-09e7
91.73 s
[sydtest-mutation-plugin-source] include text-2.1.3-c691
91.73 s
[sydtest-mutation-plugin-source] Test.Syd.Mutation.Plugin=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin,Test.Syd.Mutation.Plugin.Instrument=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Instrument,Test.Syd.Mutation.Plugin.Operator.Arith=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Arith,Test.Syd.Mutation.Plugin.Operator.BoolLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.BoolLit,Test.Syd.Mutation.Plugin.Operator.Cmp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Cmp,Test.Syd.Mutation.Plugin.Operator.CondFlip=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.CondFlip,Test.Syd.Mutation.Plugin.Operator.ConstBool=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ConstBool,Test.Syd.Mutation.Plugin.Operator.IntLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.IntLit,Test.Syd.Mutation.Plugin.Operator.ListLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ListLit,Test.Syd.Mutation.Plugin.Operator.LogicOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.LogicOp,Test.Syd.Mutation.Plugin.Operator.MaybeOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.MaybeOp,Test.Syd.Mutation.Plugin.Operator.Negate=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Negate,Test.Syd.Mutation.Plugin.Operator.Util=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Util,Test.Syd.Mutation.Plugin.Operators=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators,Test.Syd.Mutation.Plugin.Operators.TH=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators.TH,Test.Syd.Mutation.Plugin.Runtime=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Runtime
91.73 s
[sydtest-mutation-plugin-source] Ready component graph:
91.73 s
[sydtest-mutation-plugin-source] definite sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
91.73 s
[sydtest-mutation-plugin-source] depends base-4.20.2.0-64da
91.73 s
[sydtest-mutation-plugin-source] depends bytestring-0.12.2.0-262e
91.73 s
[sydtest-mutation-plugin-source] depends directory-1.3.8.5-c84a
91.73 s
[sydtest-mutation-plugin-source] depends filepath-1.5.4.0-e600
91.73 s
[sydtest-mutation-plugin-source] depends ghc-9.10.3-05f6
91.73 s
[sydtest-mutation-plugin-source] depends ghc-boot-9.10.3-76c6
91.73 s
[sydtest-mutation-plugin-source] depends mtl-2.3.1-b4af
91.73 s
[sydtest-mutation-plugin-source] depends path-0.9.6-JuNdYVciddTDWUiQr3NuVx
91.73 s
[sydtest-mutation-plugin-source] depends path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
91.73 s
[sydtest-mutation-plugin-source] depends sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
91.73 s
[sydtest-mutation-plugin-source] depends template-haskell-2.22.0.0-09e7
91.73 s
[sydtest-mutation-plugin-source] depends text-2.1.3-c691
91.73 s
[sydtest-mutation-plugin-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
91.73 s
[sydtest-mutation-plugin-source] Using compiler: ghc-9.10.3
91.73 s
[sydtest-mutation-plugin-source] Using install prefix:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0
91.73 s
[sydtest-mutation-plugin-source] Executables installed in:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/bin
91.73 s
[sydtest-mutation-plugin-source] Libraries installed in:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
91.73 s
[sydtest-mutation-plugin-source] Dynamic Libraries installed in:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
91.73 s
[sydtest-mutation-plugin-source] Private executables installed in:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
91.73 s
[sydtest-mutation-plugin-source] Data files installed in:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
91.73 s
[sydtest-mutation-plugin-source] Documentation installed in: /share/doc/sydtest-mutation-plugin-0.0.0.0
91.73 s
[sydtest-mutation-plugin-source] Configuration files installed in:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/etc
91.73 s
[sydtest-mutation-plugin-source] No alex found
91.73 s
[sydtest-mutation-plugin-source] Using ar found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
91.73 s
[sydtest-mutation-plugin-source] No c2hs found
91.73 s
[sydtest-mutation-plugin-source] No cpphs found
91.73 s
[sydtest-mutation-plugin-source] No doctest found
91.73 s
[sydtest-mutation-plugin-source] Using gcc version 14.3.0 given by user at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
91.73 s
[sydtest-mutation-plugin-source] Using ghc version 9.10.3 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
91.73 s
[sydtest-mutation-plugin-source] Using ghc-pkg version 9.10.3 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
91.73 s
[sydtest-mutation-plugin-source] No ghcjs found
91.73 s
[sydtest-mutation-plugin-source] No ghcjs-pkg found
91.73 s
[sydtest-mutation-plugin-source] No greencard found
91.73 s
[sydtest-mutation-plugin-source] Using haddock version 2.31.1 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
91.73 s
[sydtest-mutation-plugin-source] No happy found
91.73 s
[sydtest-mutation-plugin-source] Using haskell-suite found on system at: haskell-suite-dummy-location
91.73 s
[sydtest-mutation-plugin-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
91.73 s
[sydtest-mutation-plugin-source] No hmake found
91.73 s
[sydtest-mutation-plugin-source] Using hpc version 0.69 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
91.73 s
[sydtest-mutation-plugin-source] Using hsc2hs version 0.68.10 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
91.73 s
[sydtest-mutation-plugin-source] Using hscolour version 1.25 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
91.73 s
[sydtest-mutation-plugin-source] No jhc found
91.73 s
[sydtest-mutation-plugin-source] Using ld found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
91.73 s
[sydtest-mutation-plugin-source] No pkg-config found
91.73 s
[sydtest-mutation-plugin-source] Using runghc version 9.10.3 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
91.73 s
[sydtest-mutation-plugin-source] Using strip version 2.44 found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
91.73 s
[sydtest-mutation-plugin-source] Using tar found on system at:
91.73 s
[sydtest-mutation-plugin-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
91.73 s
[sydtest-mutation-plugin-source] No uhc found
92.01 s
[sydtest-mutation-plugin-source] Phase: buildPhase
92.02 s
[sydtest-mutation-plugin-source] Distribution quality errors:
92.02 s
[sydtest-mutation-plugin-source] [no-syn-desc] No 'synopsis' or 'description' field.
92.02 s
[sydtest-mutation-plugin-source] Distribution quality warnings:
92.02 s
[sydtest-mutation-plugin-source] [no-license-file] A 'license-file' is not specified.
92.02 s
[sydtest-mutation-plugin-source] [missing-upper-bounds] On library, these packages miss upper bounds:
92.02 s
[sydtest-mutation-plugin-source] - bytestring
92.02 s
[sydtest-mutation-plugin-source] - directory
92.02 s
[sydtest-mutation-plugin-source] - filepath
92.02 s
[sydtest-mutation-plugin-source] - ghc
92.02 s
[sydtest-mutation-plugin-source] - ghc-boot
92.02 s
[sydtest-mutation-plugin-source] - mtl
92.02 s
[sydtest-mutation-plugin-source] - path
92.02 s
[sydtest-mutation-plugin-source] - path-io
92.02 s
[sydtest-mutation-plugin-source] - sydtest-mutation-runtime
92.02 s
[sydtest-mutation-plugin-source] - template-haskell
92.02 s
[sydtest-mutation-plugin-source] - text
92.02 s
[sydtest-mutation-plugin-source] Please add them. There is more information at https://pvp.haskell.org/
92.02 s
[sydtest-mutation-plugin-source] Note: the public hackage server would reject this package.
92.02 s
[sydtest-mutation-plugin-source] Building source dist for sydtest-mutation-plugin-0.0.0.0...
92.03 s
[sydtest-mutation-plugin-source] Source tarball created: dist/sydtest-mutation-plugin-0.0.0.0.tar.gz
92.04 s
[sydtest-mutation-plugin-source] Phase: checkPhase
92.04 s
[sydtest-mutation-plugin-source] Phase: haddockPhase
92.04 s
[sydtest-mutation-plugin-source] Phase: installPhase
92.05 s
[sydtest-mutation-plugin-source] Phase: fixupPhase
92.07 s
Progress: 4 of 16 built
92.11 s
Building sydtest-mutation-plugin
92.31 s
[sydtest-mutation-plugin] Phase: setupCompilerEnvironmentPhase
92.32 s
[sydtest-mutation-plugin] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
92.55 s
[sydtest-mutation-plugin] Phase: unpackPhase
92.55 s
[sydtest-mutation-plugin] unpacking source archive /nix/store/5s0jmkgyb42k0ijddydhvj4ln8nr5s84-sydtest-mutation-plugin-source-0.0.0.0/sydtest-mutation-plugin-0.0.0.0.tar.gz
92.56 s
[sydtest-mutation-plugin] source root is sydtest-mutation-plugin-0.0.0.0
92.56 s
[sydtest-mutation-plugin] setting SOURCE_DATE_EPOCH to timestamp 1778687791 of file "sydtest-mutation-plugin-0.0.0.0/sydtest-mutation-plugin.cabal"
92.56 s
[sydtest-mutation-plugin] warning: file "sydtest-mutation-plugin-0.0.0.0/sydtest-mutation-plugin.cabal" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
92.57 s
[sydtest-mutation-plugin] Phase: patchPhase
92.57 s
[sydtest-mutation-plugin] Phase: compileBuildDriverPhase
92.58 s
[sydtest-mutation-plugin] setupCompileFlags: -package-db=/build/tmp.aPsl9Ui4vv/setup-package.conf.d -threaded
92.62 s
[sydtest-mutation-plugin] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.aPsl9Ui4vv/Main.o )
92.67 s
[sydtest-mutation-plugin] [2 of 2] Linking Setup
93.74 s
[sydtest-mutation-plugin] Phase: updateAutotoolsGnuConfigScriptsPhase
93.75 s
[sydtest-mutation-plugin] Phase: configurePhase
93.75 s
[sydtest-mutation-plugin] configureFlags: --verbose --prefix=/nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc/share/doc/sydtest-mutation-plugin-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.aPsl9Ui4vv/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Wunused-packages --ghc-options=-Werror --ghc-options=-Wno-deprecations --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
93.76 s
[sydtest-mutation-plugin] Using Parsec parser
93.76 s
[sydtest-mutation-plugin] Configuring sydtest-mutation-plugin-0.0.0.0...
94.28 s
[sydtest-mutation-plugin] Dependency base >=4.7 && <5: using base-4.20.2.0
94.28 s
[sydtest-mutation-plugin] Dependency bytestring: using bytestring-0.12.2.0
94.28 s
[sydtest-mutation-plugin] Dependency directory: using directory-1.3.8.5
94.28 s
[sydtest-mutation-plugin] Dependency filepath: using filepath-1.5.4.0
94.28 s
[sydtest-mutation-plugin] Dependency ghc: using ghc-9.10.3
94.28 s
[sydtest-mutation-plugin] Dependency ghc-boot: using ghc-boot-9.10.3
94.28 s
[sydtest-mutation-plugin] Dependency mtl: using mtl-2.3.1
94.28 s
[sydtest-mutation-plugin] Dependency path: using path-0.9.6
94.28 s
[sydtest-mutation-plugin] Dependency path-io: using path-io-1.8.2
94.28 s
[sydtest-mutation-plugin] Dependency sydtest-mutation-runtime: using sydtest-mutation-runtime-0.0.0.0
94.28 s
[sydtest-mutation-plugin] Dependency template-haskell: using template-haskell-2.22.0.0
94.28 s
[sydtest-mutation-plugin] Dependency text: using text-2.1.3
94.28 s
[sydtest-mutation-plugin] Source component graph: component lib
94.28 s
[sydtest-mutation-plugin] Configured component graph:
94.28 s
[sydtest-mutation-plugin] component sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
94.28 s
[sydtest-mutation-plugin] include base-4.20.2.0-64da
94.28 s
[sydtest-mutation-plugin] include bytestring-0.12.2.0-262e
94.28 s
[sydtest-mutation-plugin] include directory-1.3.8.5-c84a
94.28 s
[sydtest-mutation-plugin] include filepath-1.5.4.0-e600
94.28 s
[sydtest-mutation-plugin] include ghc-9.10.3-05f6
94.28 s
[sydtest-mutation-plugin] include ghc-boot-9.10.3-76c6
94.28 s
[sydtest-mutation-plugin] include mtl-2.3.1-b4af
94.28 s
[sydtest-mutation-plugin] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
94.28 s
[sydtest-mutation-plugin] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
94.28 s
[sydtest-mutation-plugin] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
94.28 s
[sydtest-mutation-plugin] include template-haskell-2.22.0.0-09e7
94.28 s
[sydtest-mutation-plugin] include text-2.1.3-c691
94.28 s
[sydtest-mutation-plugin] Linked component graph:
94.28 s
[sydtest-mutation-plugin] unit sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
94.28 s
[sydtest-mutation-plugin] include base-4.20.2.0-64da
94.28 s
[sydtest-mutation-plugin] include bytestring-0.12.2.0-262e
94.28 s
[sydtest-mutation-plugin] include directory-1.3.8.5-c84a
94.28 s
[sydtest-mutation-plugin] include filepath-1.5.4.0-e600
94.28 s
[sydtest-mutation-plugin] include ghc-9.10.3-05f6
94.28 s
[sydtest-mutation-plugin] include ghc-boot-9.10.3-76c6
94.28 s
[sydtest-mutation-plugin] include mtl-2.3.1-b4af
94.28 s
[sydtest-mutation-plugin] include path-0.9.6-JuNdYVciddTDWUiQr3NuVx
94.28 s
[sydtest-mutation-plugin] include path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
94.28 s
[sydtest-mutation-plugin] include sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
94.28 s
[sydtest-mutation-plugin] include template-haskell-2.22.0.0-09e7
94.28 s
[sydtest-mutation-plugin] include text-2.1.3-c691
94.28 s
[sydtest-mutation-plugin] Test.Syd.Mutation.Plugin=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin,Test.Syd.Mutation.Plugin.Instrument=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Instrument,Test.Syd.Mutation.Plugin.Operator.Arith=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Arith,Test.Syd.Mutation.Plugin.Operator.BoolLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.BoolLit,Test.Syd.Mutation.Plugin.Operator.Cmp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Cmp,Test.Syd.Mutation.Plugin.Operator.CondFlip=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.CondFlip,Test.Syd.Mutation.Plugin.Operator.ConstBool=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ConstBool,Test.Syd.Mutation.Plugin.Operator.IntLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.IntLit,Test.Syd.Mutation.Plugin.Operator.ListLit=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.ListLit,Test.Syd.Mutation.Plugin.Operator.LogicOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.LogicOp,Test.Syd.Mutation.Plugin.Operator.MaybeOp=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.MaybeOp,Test.Syd.Mutation.Plugin.Operator.Negate=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Negate,Test.Syd.Mutation.Plugin.Operator.Util=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operator.Util,Test.Syd.Mutation.Plugin.Operators=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators,Test.Syd.Mutation.Plugin.Operators.TH=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Operators.TH,Test.Syd.Mutation.Plugin.Runtime=sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I:Test.Syd.Mutation.Plugin.Runtime
94.28 s
[sydtest-mutation-plugin] Ready component graph:
94.28 s
[sydtest-mutation-plugin] definite sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
94.28 s
[sydtest-mutation-plugin] depends base-4.20.2.0-64da
94.28 s
[sydtest-mutation-plugin] depends bytestring-0.12.2.0-262e
94.28 s
[sydtest-mutation-plugin] depends directory-1.3.8.5-c84a
94.28 s
[sydtest-mutation-plugin] depends filepath-1.5.4.0-e600
94.28 s
[sydtest-mutation-plugin] depends ghc-9.10.3-05f6
94.28 s
[sydtest-mutation-plugin] depends ghc-boot-9.10.3-76c6
94.28 s
[sydtest-mutation-plugin] depends mtl-2.3.1-b4af
94.28 s
[sydtest-mutation-plugin] depends path-0.9.6-JuNdYVciddTDWUiQr3NuVx
94.28 s
[sydtest-mutation-plugin] depends path-io-1.8.2-J5Tb8ehzZIb1sPaxTlVmSL
94.28 s
[sydtest-mutation-plugin] depends sydtest-mutation-runtime-0.0.0.0-6NLQU9FgCflC3T5utcSmV7
94.28 s
[sydtest-mutation-plugin] depends template-haskell-2.22.0.0-09e7
94.28 s
[sydtest-mutation-plugin] depends text-2.1.3-c691
94.28 s
[sydtest-mutation-plugin] Using Cabal-3.12.1.0 compiled by ghc-9.10
94.28 s
[sydtest-mutation-plugin] Using compiler: ghc-9.10.3
94.28 s
[sydtest-mutation-plugin] Using install prefix:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0
94.28 s
[sydtest-mutation-plugin] Executables installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/bin
94.28 s
[sydtest-mutation-plugin] Libraries installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
94.28 s
[sydtest-mutation-plugin] Dynamic Libraries installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
94.28 s
[sydtest-mutation-plugin] Private executables installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
94.28 s
[sydtest-mutation-plugin] Data files installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0
94.28 s
[sydtest-mutation-plugin] Documentation installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc/share/doc/sydtest-mutation-plugin-0.0.0.0
94.28 s
[sydtest-mutation-plugin] Configuration files installed in:
94.28 s
[sydtest-mutation-plugin] /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/etc
94.28 s
[sydtest-mutation-plugin] No alex found
94.28 s
[sydtest-mutation-plugin] Using ar found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
94.28 s
[sydtest-mutation-plugin] No c2hs found
94.28 s
[sydtest-mutation-plugin] No cpphs found
94.28 s
[sydtest-mutation-plugin] No doctest found
94.28 s
[sydtest-mutation-plugin] Using gcc version 14.3.0 given by user at:
94.28 s
[sydtest-mutation-plugin] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
94.28 s
[sydtest-mutation-plugin] Using ghc version 9.10.3 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
94.28 s
[sydtest-mutation-plugin] Using ghc-pkg version 9.10.3 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
94.28 s
[sydtest-mutation-plugin] No ghcjs found
94.28 s
[sydtest-mutation-plugin] No ghcjs-pkg found
94.28 s
[sydtest-mutation-plugin] No greencard found
94.28 s
[sydtest-mutation-plugin] Using haddock version 2.31.1 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
94.28 s
[sydtest-mutation-plugin] No happy found
94.28 s
[sydtest-mutation-plugin] Using haskell-suite found on system at: haskell-suite-dummy-location
94.28 s
[sydtest-mutation-plugin] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
94.28 s
[sydtest-mutation-plugin] No hmake found
94.28 s
[sydtest-mutation-plugin] Using hpc version 0.69 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
94.28 s
[sydtest-mutation-plugin] Using hsc2hs version 0.68.10 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
94.28 s
[sydtest-mutation-plugin] Using hscolour version 1.25 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
94.28 s
[sydtest-mutation-plugin] No jhc found
94.28 s
[sydtest-mutation-plugin] Using ld found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
94.28 s
[sydtest-mutation-plugin] No pkg-config found
94.28 s
[sydtest-mutation-plugin] Using runghc version 9.10.3 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
94.28 s
[sydtest-mutation-plugin] Using strip version 2.44 found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
94.28 s
[sydtest-mutation-plugin] Using tar found on system at:
94.28 s
[sydtest-mutation-plugin] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
94.28 s
[sydtest-mutation-plugin] No uhc found
94.55 s
[sydtest-mutation-plugin] Phase: buildPhase
94.61 s
[sydtest-mutation-plugin] Preprocessing library for sydtest-mutation-plugin-0.0.0.0...
94.61 s
Waiting for lock on sydtest
94.61 s
[sydtest-mutation-plugin] Building library for sydtest-mutation-plugin-0.0.0.0...
94.70 s
[sydtest-mutation-plugin] [ 1 of 17] Compiling Paths_sydtest_mutation_plugin ( dist/build/autogen/Paths_sydtest_mutation_plugin.hs, dist/build/Paths_sydtest_mutation_plugin.o, dist/build/Paths_sydtest_mutation_plugin.dyn_o )
94.88 s
[sydtest-mutation-plugin] [ 2 of 17] Compiling Test.Syd.Mutation.Plugin.Instrument ( src/Test/Syd/Mutation/Plugin/Instrument.hs, dist/build/Test/Syd/Mutation/Plugin/Instrument.o, dist/build/Test/Syd/Mutation/Plugin/Instrument.dyn_o )
96.50 s
[sydtest-mutation-plugin] [ 3 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.BoolLit ( src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/BoolLit.o, dist/build/Test/Syd/Mutation/Plugin/Operator/BoolLit.dyn_o )
96.56 s
[sydtest-mutation-plugin] [ 4 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.CondFlip ( src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/CondFlip.o, dist/build/Test/Syd/Mutation/Plugin/Operator/CondFlip.dyn_o )
96.56 s
[sydtest-mutation-plugin] [ 5 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ConstBool ( src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ConstBool.o, dist/build/Test/Syd/Mutation/Plugin/Operator/ConstBool.dyn_o )
96.57 s
[sydtest-mutation-plugin] [ 6 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ListLit ( src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ListLit.o, dist/build/Test/Syd/Mutation/Plugin/Operator/ListLit.dyn_o )
96.71 s
[sydtest-mutation-plugin] [ 7 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.MaybeOp ( src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/MaybeOp.o, dist/build/Test/Syd/Mutation/Plugin/Operator/MaybeOp.dyn_o )
96.71 s
[sydtest-mutation-plugin] [ 8 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Negate ( src/Test/Syd/Mutation/Plugin/Operator/Negate.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Negate.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Negate.dyn_o )
96.71 s
[sydtest-mutation-plugin] [ 9 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Util ( src/Test/Syd/Mutation/Plugin/Operator/Util.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Util.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Util.dyn_o )
96.71 s
[sydtest-mutation-plugin] [10 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.LogicOp ( src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/LogicOp.o, dist/build/Test/Syd/Mutation/Plugin/Operator/LogicOp.dyn_o )
96.71 s
[sydtest-mutation-plugin] [11 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.IntLit ( src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/IntLit.o, dist/build/Test/Syd/Mutation/Plugin/Operator/IntLit.dyn_o )
96.71 s
[sydtest-mutation-plugin] [12 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Cmp ( src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Cmp.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Cmp.dyn_o )
96.71 s
[sydtest-mutation-plugin] [13 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Arith ( src/Test/Syd/Mutation/Plugin/Operator/Arith.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Arith.o, dist/build/Test/Syd/Mutation/Plugin/Operator/Arith.dyn_o )
96.71 s
[sydtest-mutation-plugin] [14 of 17] Compiling Test.Syd.Mutation.Plugin.Operators.TH ( src/Test/Syd/Mutation/Plugin/Operators/TH.hs, dist/build/Test/Syd/Mutation/Plugin/Operators/TH.o, dist/build/Test/Syd/Mutation/Plugin/Operators/TH.dyn_o )
96.71 s
[sydtest-mutation-plugin] [15 of 17] Compiling Test.Syd.Mutation.Plugin.Operators ( src/Test/Syd/Mutation/Plugin/Operators.hs, dist/build/Test/Syd/Mutation/Plugin/Operators.o, dist/build/Test/Syd/Mutation/Plugin/Operators.dyn_o )
97.54 s
[sydtest-mutation-plugin] [16 of 17] Compiling Test.Syd.Mutation.Plugin ( src/Test/Syd/Mutation/Plugin.hs, dist/build/Test/Syd/Mutation/Plugin.o, dist/build/Test/Syd/Mutation/Plugin.dyn_o )
97.82 s
[sydtest-mutation-plugin] [17 of 17] Compiling Test.Syd.Mutation.Plugin.Runtime ( src/Test/Syd/Mutation/Plugin/Runtime.hs, dist/build/Test/Syd/Mutation/Plugin/Runtime.o, dist/build/Test/Syd/Mutation/Plugin/Runtime.dyn_o )
98.08 s
[sydtest-mutation-plugin] [ 1 of 17] Compiling Paths_sydtest_mutation_plugin ( dist/build/autogen/Paths_sydtest_mutation_plugin.hs, dist/build/Paths_sydtest_mutation_plugin.p_o )
98.38 s
[sydtest-mutation-plugin] [ 2 of 17] Compiling Test.Syd.Mutation.Plugin.Instrument ( src/Test/Syd/Mutation/Plugin/Instrument.hs, dist/build/Test/Syd/Mutation/Plugin/Instrument.p_o )
99.96 s
[sydtest-mutation-plugin] [ 3 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.BoolLit ( src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/BoolLit.p_o )
100.17 s
[sydtest-mutation-plugin] [ 4 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.CondFlip ( src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/CondFlip.p_o )
100.17 s
[sydtest-mutation-plugin] [ 5 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ConstBool ( src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ConstBool.p_o )
100.20 s
[sydtest-mutation-plugin] [ 6 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ListLit ( src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/ListLit.p_o )
100.31 s
[sydtest-mutation-plugin] [ 7 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.MaybeOp ( src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/MaybeOp.p_o )
100.31 s
[sydtest-mutation-plugin] [ 8 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Negate ( src/Test/Syd/Mutation/Plugin/Operator/Negate.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Negate.p_o )
100.31 s
[sydtest-mutation-plugin] [ 9 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Util ( src/Test/Syd/Mutation/Plugin/Operator/Util.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Util.p_o )
100.31 s
[sydtest-mutation-plugin] [10 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.LogicOp ( src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/LogicOp.p_o )
100.31 s
[sydtest-mutation-plugin] [11 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.IntLit ( src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/IntLit.p_o )
100.31 s
[sydtest-mutation-plugin] [12 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Cmp ( src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Cmp.p_o )
100.31 s
[sydtest-mutation-plugin] [13 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Arith ( src/Test/Syd/Mutation/Plugin/Operator/Arith.hs, dist/build/Test/Syd/Mutation/Plugin/Operator/Arith.p_o )
100.31 s
[sydtest-mutation-plugin] [14 of 17] Compiling Test.Syd.Mutation.Plugin.Operators.TH ( src/Test/Syd/Mutation/Plugin/Operators/TH.hs, dist/build/Test/Syd/Mutation/Plugin/Operators/TH.p_o )
100.31 s
[sydtest-mutation-plugin] [15 of 17] Compiling Test.Syd.Mutation.Plugin.Operators ( src/Test/Syd/Mutation/Plugin/Operators.hs, dist/build/Test/Syd/Mutation/Plugin/Operators.p_o )
101.09 s
[sydtest-mutation-plugin] [16 of 17] Compiling Test.Syd.Mutation.Plugin ( src/Test/Syd/Mutation/Plugin.hs, dist/build/Test/Syd/Mutation/Plugin.p_o )
101.45 s
[sydtest-mutation-plugin] [17 of 17] Compiling Test.Syd.Mutation.Plugin.Runtime ( src/Test/Syd/Mutation/Plugin/Runtime.hs, dist/build/Test/Syd/Mutation/Plugin/Runtime.p_o )
105.56 s
[sydtest-mutation-plugin] Phase: checkPhase
105.60 s
[sydtest-mutation-plugin] Package has no test suites.
105.60 s
[sydtest-mutation-plugin] Phase: haddockPhase
105.73 s
[sydtest-mutation-plugin] Preprocessing library for sydtest-mutation-plugin-0.0.0.0...
105.73 s
[sydtest-mutation-plugin] Running Haddock on library for sydtest-mutation-plugin-0.0.0.0...
105.74 s
[sydtest-mutation-plugin] Warning: The documentation for the following packages are not installed. No
105.74 s
[sydtest-mutation-plugin] links will be generated to these packages: path-0.9.6, path-0.9.6,
105.74 s
[sydtest-mutation-plugin] vector-0.13.2.0
106.05 s
[sydtest-mutation-plugin] [ 1 of 17] Compiling Paths_sydtest_mutation_plugin ( dist/build/autogen/Paths_sydtest_mutation_plugin.hs, nothing )
106.08 s
[sydtest-mutation-plugin] [ 2 of 17] Compiling Test.Syd.Mutation.Plugin.Instrument ( src/Test/Syd/Mutation/Plugin/Instrument.hs, /build/ghc1334_0/ghc_4.o, /build/ghc1334_0/ghc_4.dyn_o )
107.05 s
[sydtest-mutation-plugin] [ 3 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.BoolLit ( src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs, /build/ghc1334_0/ghc_8.o, /build/ghc1334_0/ghc_8.dyn_o )
107.09 s
[sydtest-mutation-plugin] [ 4 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.CondFlip ( src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs, /build/ghc1334_0/ghc_12.o, /build/ghc1334_0/ghc_12.dyn_o )
107.12 s
[sydtest-mutation-plugin] [ 5 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ConstBool ( src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs, /build/ghc1334_0/ghc_14.o, /build/ghc1334_0/ghc_14.dyn_o )
107.17 s
[sydtest-mutation-plugin] [ 6 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.ListLit ( src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs, /build/ghc1334_0/ghc_18.o, /build/ghc1334_0/ghc_18.dyn_o )
107.23 s
[sydtest-mutation-plugin] [ 7 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.MaybeOp ( src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs, /build/ghc1334_0/ghc_22.o, /build/ghc1334_0/ghc_22.dyn_o )
107.33 s
[sydtest-mutation-plugin] [ 8 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Negate ( src/Test/Syd/Mutation/Plugin/Operator/Negate.hs, /build/ghc1334_0/ghc_24.o, /build/ghc1334_0/ghc_24.dyn_o )
107.37 s
[sydtest-mutation-plugin] [ 9 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Util ( src/Test/Syd/Mutation/Plugin/Operator/Util.hs, /build/ghc1334_0/ghc_26.o, /build/ghc1334_0/ghc_26.dyn_o )
107.43 s
[sydtest-mutation-plugin] [10 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.LogicOp ( src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs, /build/ghc1334_0/ghc_20.o, /build/ghc1334_0/ghc_20.dyn_o )
107.46 s
[sydtest-mutation-plugin] [11 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.IntLit ( src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs, /build/ghc1334_0/ghc_16.o, /build/ghc1334_0/ghc_16.dyn_o )
107.49 s
[sydtest-mutation-plugin] [12 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Cmp ( src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs, /build/ghc1334_0/ghc_10.o, /build/ghc1334_0/ghc_10.dyn_o )
107.53 s
[sydtest-mutation-plugin] [13 of 17] Compiling Test.Syd.Mutation.Plugin.Operator.Arith ( src/Test/Syd/Mutation/Plugin/Operator/Arith.hs, /build/ghc1334_0/ghc_6.o, /build/ghc1334_0/ghc_6.dyn_o )
107.57 s
[sydtest-mutation-plugin] [14 of 17] Compiling Test.Syd.Mutation.Plugin.Operators.TH ( src/Test/Syd/Mutation/Plugin/Operators/TH.hs, /build/ghc1334_0/ghc_28.o, /build/ghc1334_0/ghc_28.dyn_o )
107.65 s
[sydtest-mutation-plugin] [15 of 17] Compiling Test.Syd.Mutation.Plugin.Operators ( src/Test/Syd/Mutation/Plugin/Operators.hs, nothing )
108.43 s
[sydtest-mutation-plugin] [16 of 17] Compiling Test.Syd.Mutation.Plugin ( src/Test/Syd/Mutation/Plugin.hs, nothing )
108.54 s
[sydtest-mutation-plugin] [17 of 17] Compiling Test.Syd.Mutation.Plugin.Runtime ( src/Test/Syd/Mutation/Plugin/Runtime.hs, nothing )
108.55 s
[sydtest-mutation-plugin] Haddock coverage:
108.55 s
[sydtest-mutation-plugin] Warning: 'MutationId' is ambiguous. It is defined
108.55 s
[sydtest-mutation-plugin] * in ‘Test.Syd.Mutation.Runtime’
108.55 s
[sydtest-mutation-plugin] * in ‘Test.Syd.Mutation.Runtime’
108.55 s
[sydtest-mutation-plugin] You may be able to disambiguate the identifier by qualifying it or
108.55 s
[sydtest-mutation-plugin] by specifying the type/value namespace explicitly.
108.55 s
[sydtest-mutation-plugin] Defaulting to the one defined in ‘Test.Syd.Mutation.Runtime’
108.55 s
[sydtest-mutation-plugin] Warning: 'ifMutation' is out of scope.
108.55 s
[sydtest-mutation-plugin] If you qualify the identifier, haddock can try to link it anyway.
108.55 s
[sydtest-mutation-plugin] Warning: 'srcTransform' is out of scope.
108.55 s
[sydtest-mutation-plugin] If you qualify the identifier, haddock can try to link it anyway.
108.55 s
[sydtest-mutation-plugin] 37% ( 3 / 8) in 'Test.Syd.Mutation.Plugin.Instrument'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] InstrumentEnv (src/Test/Syd/Mutation/Plugin/Instrument.hs:78)
108.55 s
[sydtest-mutation-plugin] InstrM (src/Test/Syd/Mutation/Plugin/Instrument.hs:102)
108.55 s
[sydtest-mutation-plugin] liftTcM (src/Test/Syd/Mutation/Plugin/Instrument.hs:105)
108.55 s
[sydtest-mutation-plugin] instrumentModule (src/Test/Syd/Mutation/Plugin/Instrument.hs:180)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.BoolLit'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/BoolLit.hs:12)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.CondFlip'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/CondFlip.hs:11)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.ConstBool'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/ConstBool.hs:16)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.ListLit'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/ListLit.hs:11)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.MaybeOp'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/MaybeOp.hs:13)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.Negate'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/Negate.hs:19)
108.55 s
[sydtest-mutation-plugin] 80% ( 4 / 5) in 'Test.Syd.Mutation.Plugin.Operator.Util'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.LogicOp'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/LogicOp.hs:14)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.IntLit'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/IntLit.hs:12)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.Cmp'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/Cmp.hs:14)
108.55 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin.Operator.Arith'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] theOperator (src/Test/Syd/Mutation/Plugin/Operator/Arith.hs:13)
108.55 s
[sydtest-mutation-plugin] 50% ( 1 / 2) in 'Test.Syd.Mutation.Plugin.Operators.TH'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] Module header
108.55 s
[sydtest-mutation-plugin] 50% ( 1 / 2) in 'Test.Syd.Mutation.Plugin.Operators'
108.55 s
[sydtest-mutation-plugin] Missing documentation for:
108.55 s
[sydtest-mutation-plugin] allOperators (src/Test/Syd/Mutation/Plugin/Operators.hs:28)
108.56 s
[sydtest-mutation-plugin] 0% ( 0 / 2) in 'Test.Syd.Mutation.Plugin'
108.56 s
[sydtest-mutation-plugin] Missing documentation for:
108.56 s
[sydtest-mutation-plugin] Module header
108.56 s
[sydtest-mutation-plugin] plugin (src/Test/Syd/Mutation/Plugin.hs:55)
108.56 s
[sydtest-mutation-plugin] 66% ( 2 / 3) in 'Test.Syd.Mutation.Plugin.Runtime'
108.56 s
[sydtest-mutation-plugin] Missing documentation for:
108.56 s
[sydtest-mutation-plugin] Module header
109.71 s
[sydtest-mutation-plugin] Warning: Test.Syd.Mutation.Plugin.Instrument: could not find link destinations for:
109.71 s
[sydtest-mutation-plugin] - Path.Internal.Posix.Path
109.71 s
[sydtest-mutation-plugin] - Path.Posix.File
109.71 s
[sydtest-mutation-plugin] - Path.Posix.Rel
109.71 s
[sydtest-mutation-plugin] - Test.Syd.Mutation.Plugin.Instrument.tryMutateWith
109.71 s
[sydtest-mutation-plugin] Warning: Test.Syd.Mutation.Plugin.Runtime: could not find link destinations for:
109.71 s
[sydtest-mutation-plugin] - Test.Syd.Mutation.Runtime.Rep_MutationId
118.20 s
[sydtest-mutation-plugin] Documentation created: dist/doc/html/sydtest-mutation-plugin/,
118.22 s
[sydtest-mutation-plugin] dist/doc/html/sydtest-mutation-plugin/sydtest-mutation-plugin.txt
118.26 s
[sydtest-mutation-plugin] Phase: installPhase
118.35 s
[sydtest-mutation-plugin] Installing library in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/sydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I
118.70 s
[sydtest-mutation-plugin] Phase: fixupPhase
118.72 s
[sydtest-mutation-plugin] shrinking RPATHs of ELF executables and libraries in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0
118.73 s
[sydtest-mutation-plugin] shrinking /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSsydtest-mutation-plugin-0.0.0.0-HM1WzQIcRJ82Rtg6IhOB6I-ghc9.10.3.so
118.75 s
[sydtest-mutation-plugin] checking for references to /build/ in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0...
118.78 s
[sydtest-mutation-plugin] patching script interpreter paths in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0
118.78 s
[sydtest-mutation-plugin] stripping (with command strip and flags -S -p) in /nix/store/0mbhdcywwciizlv937a2z59d4iybcwyn-sydtest-mutation-plugin-0.0.0.0/lib
118.86 s
[sydtest-mutation-plugin] shrinking RPATHs of ELF executables and libraries in /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc
118.87 s
[sydtest-mutation-plugin] checking for references to /build/ in /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc...
118.88 s
[sydtest-mutation-plugin] patching script interpreter paths in /nix/store/79pab5a3j7gzc3kskk0zxgpyknz2rdma-sydtest-mutation-plugin-0.0.0.0-doc
119.01 s
Progress: 5 of 15 built
119.05 s
Building really-safe-money
119.25 s
[really-safe-money] Phase: setupCompilerEnvironmentPhase
119.25 s
[really-safe-money] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
119.49 s
[really-safe-money] Phase: unpackPhase
119.49 s
[really-safe-money] unpacking source archive /nix/store/pxkha6z3d3bjfgkdar4ma3wx2c1f8pmm-really-safe-money-source-0.0.0.0/really-safe-money-0.0.0.0.tar.gz
119.50 s
[really-safe-money] source root is really-safe-money-0.0.0.0
119.50 s
[really-safe-money] setting SOURCE_DATE_EPOCH to timestamp 1778687704 of file "really-safe-money-0.0.0.0/src/Numeric/DecimalLiteral.hs"
119.51 s
[really-safe-money] Phase: patchPhase
119.52 s
[really-safe-money] Phase: compileBuildDriverPhase
119.52 s
[really-safe-money] setupCompileFlags: -package-db=/build/tmp.50k2gE7QJ5/setup-package.conf.d -threaded
119.57 s
[really-safe-money] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.50k2gE7QJ5/Main.o )
119.61 s
[really-safe-money] [2 of 2] Linking Setup
120.72 s
[really-safe-money] Phase: updateAutotoolsGnuConfigScriptsPhase
120.72 s
[really-safe-money] Phase: configurePhase
120.73 s
[really-safe-money] configureFlags: --verbose --prefix=/nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.50k2gE7QJ5/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --disable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --ghc-options=-fplugin-opt=Test.Syd.Mutation.Plugin:--debug --disable-optimization --ghc-option=-j1 --ghc-option=+RTS --ghc-option=-A32M --ghc-option=-M16g --ghc-option=-RTS --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
120.73 s
[really-safe-money] Using Parsec parser
120.73 s
[really-safe-money] Configuring really-safe-money-0.0.0.0...
121.26 s
[really-safe-money] Dependency base >=4.7 && <5: using base-4.20.2.0
121.26 s
[really-safe-money] Dependency containers: using containers-0.7
121.26 s
[really-safe-money] Dependency deepseq: using deepseq-1.5.0.0
121.26 s
[really-safe-money] Dependency validity: using validity-0.12.1.0
121.26 s
[really-safe-money] Dependency validity-containers: using validity-containers-0.5.0.5
121.26 s
[really-safe-money] Dependency validity-scientific: using validity-scientific-0.2.0.3
121.26 s
[really-safe-money] Source component graph: component lib
121.26 s
[really-safe-money] Configured component graph:
121.26 s
[really-safe-money] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
121.26 s
[really-safe-money] include base-4.20.2.0-64da
121.26 s
[really-safe-money] include containers-0.7-504a
121.26 s
[really-safe-money] include deepseq-1.5.0.0-9a2c
121.26 s
[really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
121.26 s
[really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
121.26 s
[really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
121.26 s
[really-safe-money] Linked component graph:
121.26 s
[really-safe-money] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
121.26 s
[really-safe-money] include base-4.20.2.0-64da
121.26 s
[really-safe-money] include containers-0.7-504a
121.26 s
[really-safe-money] include deepseq-1.5.0.0-9a2c
121.26 s
[really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
121.26 s
[really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
121.26 s
[really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
121.26 s
[really-safe-money] Money.Account=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Account,Money.AccountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AccountOf,Money.Amount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Amount,Money.AmountOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.AmountOf,Money.ConversionRate=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRate,Money.ConversionRateOf=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.ConversionRateOf,Money.Currency=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.Currency,Money.MultiAccount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAccount,Money.MultiAmount=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.MultiAmount,Money.QuantisationFactor=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Money.QuantisationFactor,Numeric.DecimalLiteral=really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9:Numeric.DecimalLiteral
121.26 s
[really-safe-money] Ready component graph:
121.26 s
[really-safe-money] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
121.26 s
[really-safe-money] depends base-4.20.2.0-64da
121.26 s
[really-safe-money] depends containers-0.7-504a
121.26 s
[really-safe-money] depends deepseq-1.5.0.0-9a2c
121.26 s
[really-safe-money] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
121.26 s
[really-safe-money] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
121.26 s
[really-safe-money] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
121.26 s
[really-safe-money] Using Cabal-3.12.1.0 compiled by ghc-9.10
121.26 s
[really-safe-money] Using compiler: ghc-9.10.3
121.26 s
[really-safe-money] Using install prefix:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0
121.26 s
[really-safe-money] Executables installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/bin
121.26 s
[really-safe-money] Libraries installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
121.26 s
[really-safe-money] Dynamic Libraries installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
121.26 s
[really-safe-money] Private executables installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
121.26 s
[really-safe-money] Data files installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
121.26 s
[really-safe-money] Documentation installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
121.26 s
[really-safe-money] Configuration files installed in:
121.26 s
[really-safe-money] /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/etc
121.26 s
[really-safe-money] No alex found
121.26 s
[really-safe-money] Using ar found on system at:
121.26 s
[really-safe-money] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
121.26 s
[really-safe-money] No c2hs found
121.26 s
[really-safe-money] No cpphs found
121.26 s
[really-safe-money] No doctest found
121.26 s
[really-safe-money] Using gcc version 14.3.0 given by user at:
121.26 s
[really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
121.26 s
[really-safe-money] Using ghc version 9.10.3 found on system at:
121.26 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
121.26 s
[really-safe-money] Using ghc-pkg version 9.10.3 found on system at:
121.26 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
121.26 s
[really-safe-money] No ghcjs found
121.26 s
[really-safe-money] No ghcjs-pkg found
121.26 s
[really-safe-money] No greencard found
121.26 s
[really-safe-money] Using haddock version 2.31.1 found on system at:
121.26 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
121.26 s
[really-safe-money] No happy found
121.26 s
[really-safe-money] Using haskell-suite found on system at: haskell-suite-dummy-location
121.26 s
[really-safe-money] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
121.26 s
[really-safe-money] No hmake found
121.26 s
[really-safe-money] Using hpc version 0.69 found on system at:
121.26 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
121.26 s
[really-safe-money] Using hsc2hs version 0.68.10 found on system at:
121.26 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
121.26 s
[really-safe-money] Using hscolour version 1.25 found on system at:
121.26 s
[really-safe-money] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
121.26 s
[really-safe-money] No jhc found
121.26 s
[really-safe-money] Using ld found on system at:
121.26 s
[really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
121.26 s
[really-safe-money] No pkg-config found
121.26 s
[really-safe-money] Using runghc version 9.10.3 found on system at:
121.26 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
121.26 s
[really-safe-money] Using strip version 2.44 found on system at:
121.26 s
[really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
121.26 s
[really-safe-money] Using tar found on system at:
121.26 s
[really-safe-money] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
121.26 s
[really-safe-money] No uhc found
121.41 s
[really-safe-money] Phase: buildPhase
121.41 s
[really-safe-money] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest
121.44 s
[really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
121.45 s
[really-safe-money] Building library for really-safe-money-0.0.0.0...
121.60 s
[really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.o, dist/build/Numeric/DecimalLiteral.dyn_o )
121.86 s
[really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
121.86 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
121.86 s
[really-safe-money] @@ -393,5 +393,5 @@
121.86 s
[really-safe-money] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
121.86 s
[really-safe-money] where
121.86 s
[really-safe-money] go = \case
121.86 s
[really-safe-money] - Nothing -> Just True
121.86 s
[really-safe-money] + Nothing -> Just False
121.86 s
[really-safe-money] s -> s
121.88 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
121.88 s
[really-safe-money] @@ -365,7 +365,7 @@
121.88 s
[really-safe-money] setMinimumDigits wantedDigits dl =
121.88 s
[really-safe-money] let currentDigits :: Word8
121.88 s
[really-safe-money] currentDigits = digits dl
121.88 s
[really-safe-money] - in if wantedDigits <= currentDigits
121.88 s
[really-safe-money] + in if True
121.88 s
[really-safe-money] then dl
121.88 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
121.88 s
[really-safe-money] where
121.88 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
121.88 s
[really-safe-money] @@ -365,7 +365,7 @@
121.88 s
[really-safe-money] setMinimumDigits wantedDigits dl =
121.88 s
[really-safe-money] let currentDigits :: Word8
121.88 s
[really-safe-money] currentDigits = digits dl
121.88 s
[really-safe-money] - in if wantedDigits <= currentDigits
121.88 s
[really-safe-money] + in if False
121.88 s
[really-safe-money] then dl
121.88 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
121.88 s
[really-safe-money] where
121.88 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
121.88 s
[really-safe-money] @@ -365,7 +365,7 @@
121.88 s
[really-safe-money] setMinimumDigits wantedDigits dl =
121.88 s
[really-safe-money] let currentDigits :: Word8
121.88 s
[really-safe-money] currentDigits = digits dl
121.88 s
[really-safe-money] - in if wantedDigits <= currentDigits
121.88 s
[really-safe-money] + in if not (wantedDigits <= currentDigits)
121.88 s
[really-safe-money] then dl
121.88 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
121.88 s
[really-safe-money] where
121.88 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
121.88 s
[really-safe-money] @@ -365,9 +365,9 @@
121.88 s
[really-safe-money] setMinimumDigits wantedDigits dl =
121.88 s
[really-safe-money] let currentDigits :: Word8
121.88 s
[really-safe-money] currentDigits = digits dl
121.88 s
[really-safe-money] - in if wantedDigits <= currentDigits
121.88 s
[really-safe-money] - then dl
121.88 s
[really-safe-money] - else increaseDigits (wantedDigits - currentDigits) dl
121.88 s
[really-safe-money] + in if wantedDigits <= currentDigits
121.88 s
[really-safe-money] + then dl
121.88 s
[really-safe-money] + else increaseDigits (wantedDigits - currentDigits) dl
121.88 s
[really-safe-money] where
121.88 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
121.88 s
[really-safe-money] increaseDigits 0 = id
121.88 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
121.88 s
[really-safe-money] @@ -372,7 +372,7 @@
121.88 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
121.88 s
[really-safe-money] increaseDigits 0 = id
121.88 s
[really-safe-money] increaseDigits w = \case
121.88 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
121.88 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] -- | Ensures that a positive literal has no sign
121.88 s
[really-safe-money] --
121.88 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
121.88 s
[really-safe-money] @@ -372,7 +372,7 @@
121.88 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
121.88 s
[really-safe-money] increaseDigits 0 = id
121.88 s
[really-safe-money] increaseDigits w = \case
121.88 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
121.88 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] -- | Ensures that a positive literal has no sign
121.88 s
[really-safe-money] --
121.88 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
121.88 s
[really-safe-money] @@ -334,7 +334,7 @@
121.88 s
[really-safe-money] pure $ fromIntegral n
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.88 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
121.88 s
[really-safe-money] +numSign a = if a >= 1 then Nothing else Just False
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
121.88 s
[really-safe-money] signSignum = \case
121.88 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
121.88 s
[really-safe-money] @@ -334,7 +334,7 @@
121.88 s
[really-safe-money] pure $ fromIntegral n
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.88 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
121.88 s
[really-safe-money] +numSign a = if True then Nothing else Just False
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
121.88 s
[really-safe-money] signSignum = \case
121.88 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
121.88 s
[really-safe-money] @@ -334,7 +334,7 @@
121.88 s
[really-safe-money] pure $ fromIntegral n
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.88 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
121.88 s
[really-safe-money] +numSign a = if False then Nothing else Just False
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
121.88 s
[really-safe-money] signSignum = \case
121.88 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
121.88 s
[really-safe-money] @@ -334,7 +334,7 @@
121.88 s
[really-safe-money] pure $ fromIntegral n
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.88 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
121.88 s
[really-safe-money] +numSign a = if not (a >= 0) then Nothing else Just False
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
121.88 s
[really-safe-money] signSignum = \case
121.88 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
121.88 s
[really-safe-money] @@ -334,7 +334,7 @@
121.88 s
[really-safe-money] pure $ fromIntegral n
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.88 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
121.88 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just True
121.88 s
[really-safe-money]
121.88 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
121.88 s
[really-safe-money] signSignum = \case
121.88 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
121.88 s
[really-safe-money] @@ -334,7 +334,7 @@
121.88 s
[really-safe-money] pure $ fromIntegral n
121.88 s
[really-safe-money]
121.89 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.89 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
121.89 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just False
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
121.89 s
[really-safe-money] signSignum = \case
121.89 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
121.89 s
[really-safe-money] @@ -329,7 +329,7 @@
121.89 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
121.89 s
[really-safe-money] toInt dl = do
121.89 s
[really-safe-money] n <- toInteger dl
121.89 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
121.89 s
[really-safe-money] + guard $ True
121.89 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
121.89 s
[really-safe-money] @@ -329,7 +329,7 @@
121.89 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
121.89 s
[really-safe-money] toInt dl = do
121.89 s
[really-safe-money] n <- toInteger dl
121.89 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
121.89 s
[really-safe-money] + guard $ False
121.89 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
121.89 s
[really-safe-money] @@ -329,7 +329,7 @@
121.89 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
121.89 s
[really-safe-money] toInt dl = do
121.89 s
[really-safe-money] n <- toInteger dl
121.89 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
121.89 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Int))
121.89 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
121.89 s
[really-safe-money] @@ -330,7 +330,7 @@
121.89 s
[really-safe-money] toInt dl = do
121.89 s
[really-safe-money] n <- toInteger dl
121.89 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
121.89 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
121.89 s
[really-safe-money] + guard $ True
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.89 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
121.89 s
[really-safe-money] @@ -330,7 +330,7 @@
121.89 s
[really-safe-money] toInt dl = do
121.89 s
[really-safe-money] n <- toInteger dl
121.89 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
121.89 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
121.89 s
[really-safe-money] + guard $ False
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.89 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
121.89 s
[really-safe-money] @@ -330,7 +330,7 @@
121.89 s
[really-safe-money] toInt dl = do
121.89 s
[really-safe-money] n <- toInteger dl
121.89 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
121.89 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
121.89 s
[really-safe-money] + guard $ not (n >= fromIntegral (minBound :: Int))
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
121.89 s
[really-safe-money] @@ -312,7 +312,7 @@
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from an 'Integer'
121.89 s
[really-safe-money] fromInteger :: Integer -> DecimalLiteral
121.89 s
[really-safe-money] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
121.89 s
[really-safe-money] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into an 'Integer'
121.89 s
[really-safe-money] toInteger :: DecimalLiteral -> Maybe Integer
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
121.89 s
[really-safe-money] @@ -301,7 +301,7 @@
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
121.89 s
[really-safe-money] fromNatural :: Natural -> DecimalLiteral
121.89 s
[really-safe-money] -fromNatural n = DecimalLiteral Nothing n 0
121.89 s
[really-safe-money] +fromNatural n = DecimalLiteral Nothing n 1
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Natural'
121.89 s
[really-safe-money] toNatural :: DecimalLiteral -> Maybe Natural
121.89 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
121.89 s
[really-safe-money] @@ -296,7 +296,7 @@
121.89 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
121.89 s
[really-safe-money] toWord dl = do
121.89 s
[really-safe-money] n <- toNatural dl
121.89 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
121.89 s
[really-safe-money] + guard $ True
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
121.89 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
121.89 s
[really-safe-money] @@ -296,7 +296,7 @@
121.89 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
121.89 s
[really-safe-money] toWord dl = do
121.89 s
[really-safe-money] n <- toNatural dl
121.89 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
121.89 s
[really-safe-money] + guard $ False
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
121.89 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
121.89 s
[really-safe-money] @@ -296,7 +296,7 @@
121.89 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
121.89 s
[really-safe-money] toWord dl = do
121.89 s
[really-safe-money] n <- toNatural dl
121.89 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
121.89 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Word))
121.89 s
[really-safe-money] pure $ fromIntegral n
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
121.89 s
[really-safe-money] @@ -286,7 +286,7 @@
121.89 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
121.89 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
121.89 s
[really-safe-money] Just False -> Nothing
121.89 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
121.89 s
[really-safe-money] + _ -> Just $ fromIntegral m / (0 ^ e)
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
121.89 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
121.89 s
[really-safe-money] @@ -286,7 +286,7 @@
121.89 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
121.89 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
121.89 s
[really-safe-money] Just False -> Nothing
121.89 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
121.89 s
[really-safe-money] + _ -> Just $ fromIntegral m / (1 ^ e)
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
121.89 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
121.89 s
[really-safe-money] @@ -286,7 +286,7 @@
121.89 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
121.89 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
121.89 s
[really-safe-money] Just False -> Nothing
121.89 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
121.89 s
[really-safe-money] + _ -> Just $ fromIntegral m / (-10 ^ e)
121.89 s
[really-safe-money]
121.89 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
121.89 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
121.89 s
[really-safe-money] @@ -233,7 +233,7 @@
121.89 s
[really-safe-money] -- >>> fromRatio (1 % 3)
121.89 s
[really-safe-money] -- Nothing
121.89 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
121.89 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
121.89 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 0
121.89 s
[really-safe-money] where
121.89 s
[really-safe-money] fromRationalRepetendLimited ::
121.89 s
[really-safe-money] -- limit
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
121.89 s
[really-safe-money] @@ -233,7 +233,7 @@
121.89 s
[really-safe-money] -- >>> fromRatio (1 % 3)
121.89 s
[really-safe-money] -- Nothing
121.89 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
121.89 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
121.89 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 1
121.89 s
[really-safe-money] where
121.89 s
[really-safe-money] fromRationalRepetendLimited ::
121.89 s
[really-safe-money] -- limit
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
121.89 s
[really-safe-money] @@ -233,7 +233,7 @@
121.89 s
[really-safe-money] -- >>> fromRatio (1 % 3)
121.89 s
[really-safe-money] -- Nothing
121.89 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
121.89 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
121.89 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited -256
121.89 s
[really-safe-money] where
121.89 s
[really-safe-money] fromRationalRepetendLimited ::
121.89 s
[really-safe-money] -- limit
121.89 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
121.89 s
[really-safe-money] @@ -241,7 +241,7 @@
121.89 s
[really-safe-money] Ratio Natural ->
121.89 s
[really-safe-money] Maybe DecimalLiteral
121.89 s
[really-safe-money] fromRationalRepetendLimited l rational
121.89 s
[really-safe-money] - | d == 0 = Nothing
121.89 s
[really-safe-money] + | d == 1 = Nothing
121.89 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
121.89 s
[really-safe-money] where
121.89 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
121.90 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
121.90 s
[really-safe-money] @@ -241,7 +241,7 @@
121.90 s
[really-safe-money] Ratio Natural ->
121.90 s
[really-safe-money] Maybe DecimalLiteral
121.90 s
[really-safe-money] fromRationalRepetendLimited l rational
121.90 s
[really-safe-money] - | d == 0 = Nothing
121.90 s
[really-safe-money] + | True = Nothing
121.90 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
121.90 s
[really-safe-money] where
121.90 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
121.90 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
121.90 s
[really-safe-money] @@ -241,7 +241,7 @@
121.90 s
[really-safe-money] Ratio Natural ->
121.90 s
[really-safe-money] Maybe DecimalLiteral
121.90 s
[really-safe-money] fromRationalRepetendLimited l rational
121.90 s
[really-safe-money] - | d == 0 = Nothing
121.90 s
[really-safe-money] + | not (d == 0) = Nothing
121.90 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
121.90 s
[really-safe-money] where
121.90 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
121.90 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
121.90 s
[really-safe-money] @@ -261,7 +261,7 @@
121.90 s
[really-safe-money] Just (c, e)
121.90 s
[really-safe-money] longDivWithLimit !c !e ns !n
121.90 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
121.90 s
[really-safe-money] - | S.member n ns = Nothing
121.90 s
[really-safe-money] + | True = Nothing
121.90 s
[really-safe-money] -- Over the limit, stop trying
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
121.90 s
[really-safe-money] @@ -261,7 +261,7 @@
121.90 s
[really-safe-money] Just (c, e)
121.90 s
[really-safe-money] longDivWithLimit !c !e ns !n
121.90 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
121.90 s
[really-safe-money] - | S.member n ns = Nothing
121.90 s
[really-safe-money] + | not (S.member n ns) = Nothing
121.90 s
[really-safe-money] -- Over the limit, stop trying
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
121.90 s
[really-safe-money] @@ -263,7 +263,7 @@
121.90 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
121.90 s
[really-safe-money] | S.member n ns = Nothing
121.90 s
[really-safe-money] -- Over the limit, stop trying
121.90 s
[really-safe-money] - | e >= l = Nothing
121.90 s
[really-safe-money] + | True = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
121.90 s
[really-safe-money] @@ -263,7 +263,7 @@
121.90 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
121.90 s
[really-safe-money] | S.member n ns = Nothing
121.90 s
[really-safe-money] -- Over the limit, stop trying
121.90 s
[really-safe-money] - | e >= l = Nothing
121.90 s
[really-safe-money] + | not (e >= l) = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
121.90 s
[really-safe-money] @@ -264,7 +264,7 @@
121.90 s
[really-safe-money] | S.member n ns = Nothing
121.90 s
[really-safe-money] -- Over the limit, stop trying
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] - | n < d =
121.90 s
[really-safe-money] + | True =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] | otherwise =
121.90 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
121.90 s
[really-safe-money] @@ -264,7 +264,7 @@
121.90 s
[really-safe-money] | S.member n ns = Nothing
121.90 s
[really-safe-money] -- Over the limit, stop trying
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] - | n < d =
121.90 s
[really-safe-money] + | not (n < d) =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] | otherwise =
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
121.90 s
[really-safe-money] @@ -266,7 +266,7 @@
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] | otherwise =
121.90 s
[really-safe-money] let (q, r') = n `quotRem` d
121.90 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
121.90 s
[really-safe-money] @@ -266,7 +266,7 @@
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] | otherwise =
121.90 s
[really-safe-money] let (q, r') = n `quotRem` d
121.90 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
121.90 s
[really-safe-money] @@ -266,7 +266,7 @@
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
121.90 s
[really-safe-money] | otherwise =
121.90 s
[really-safe-money] let (q, r') = n `quotRem` d
121.90 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
121.90 s
[really-safe-money] @@ -266,7 +266,7 @@
121.90 s
[really-safe-money] | e >= l = Nothing
121.90 s
[really-safe-money] | n < d =
121.90 s
[really-safe-money] let !ns' = S.insert n ns
121.90 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
121.90 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
121.90 s
[really-safe-money] | otherwise =
121.90 s
[really-safe-money] let (q, r') = n `quotRem` d
121.90 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
121.90 s
[really-safe-money] @@ -249,7 +249,7 @@
121.90 s
[really-safe-money] num = numerator rational
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
121.90 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
121.90 s
[really-safe-money] + longDiv = longDivWithLimit 1 0 S.empty
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] longDivWithLimit ::
121.90 s
[really-safe-money] Natural ->
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
121.90 s
[really-safe-money] @@ -249,7 +249,7 @@
121.90 s
[really-safe-money] num = numerator rational
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
121.90 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
121.90 s
[really-safe-money] + longDiv = longDivWithLimit 0 1 S.empty
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] longDivWithLimit ::
121.90 s
[really-safe-money] Natural ->
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
121.90 s
[really-safe-money] @@ -220,7 +220,7 @@
121.90 s
[really-safe-money] -- (-3) % 10
121.90 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
121.90 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
121.90 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
121.90 s
[really-safe-money] + signSignum mSign (fromIntegral m / (0 ^ e))
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
121.90 s
[really-safe-money] --
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
121.90 s
[really-safe-money] @@ -220,7 +220,7 @@
121.90 s
[really-safe-money] -- (-3) % 10
121.90 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
121.90 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
121.90 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
121.90 s
[really-safe-money] + signSignum mSign (fromIntegral m / (1 ^ e))
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
121.90 s
[really-safe-money] --
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
121.90 s
[really-safe-money] @@ -220,7 +220,7 @@
121.90 s
[really-safe-money] -- (-3) % 10
121.90 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
121.90 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
121.90 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
121.90 s
[really-safe-money] + signSignum mSign (fromIntegral m / (-10 ^ e))
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
121.90 s
[really-safe-money] --
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
121.90 s
[really-safe-money] @@ -205,7 +205,7 @@
121.90 s
[really-safe-money] -- Nothing
121.90 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
121.90 s
[really-safe-money] fromRational (n :% d)
121.90 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
121.90 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
121.90 s
[really-safe-money] @@ -205,7 +205,7 @@
121.90 s
[really-safe-money] -- Nothing
121.90 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
121.90 s
[really-safe-money] fromRational (n :% d)
121.90 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
121.90 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
121.90 s
[really-safe-money] @@ -205,7 +205,7 @@
121.90 s
[really-safe-money] -- Nothing
121.90 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
121.90 s
[really-safe-money] fromRational (n :% d)
121.90 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
121.90 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
121.90 s
[really-safe-money] @@ -205,7 +205,7 @@
121.90 s
[really-safe-money] -- Nothing
121.90 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
121.90 s
[really-safe-money] fromRational (n :% d)
121.90 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
121.90 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
121.90 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
121.90 s
[really-safe-money] @@ -183,7 +183,7 @@
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
121.90 s
[really-safe-money] go :: Word8 -> String -> String
121.90 s
[really-safe-money] - go 0 [] = ['.', '0']
121.90 s
[really-safe-money] + go 0 [] = []
121.90 s
[really-safe-money] go 0 s = '.' : s
121.90 s
[really-safe-money] go e [] = '0' : go (pred e) []
121.90 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
121.90 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
121.90 s
[really-safe-money] @@ -183,7 +183,7 @@
121.90 s
[really-safe-money]
121.90 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
121.90 s
[really-safe-money] go :: Word8 -> String -> String
121.90 s
[really-safe-money] - go 0 [] = ['.', '0']
121.90 s
[really-safe-money] + go 0 [] = ['.', '0']
121.90 s
[really-safe-money] go 0 s = '.' : s
121.90 s
[really-safe-money] go e [] = '0' : go (pred e) []
121.90 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
121.90 s
[really-safe-money] @@ -142,7 +142,7 @@
121.90 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
121.90 s
[really-safe-money] parseDigits f z = do
121.90 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
121.90 s
[really-safe-money] - let digit = Char.ord c - 48
121.90 s
[really-safe-money] + let digit = Char.ord c - 0
121.90 s
[really-safe-money] case f z digit of
121.90 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
121.90 s
[really-safe-money] Just a -> ReadP.look >>= go a
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
121.90 s
[really-safe-money] @@ -142,7 +142,7 @@
121.90 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
121.90 s
[really-safe-money] parseDigits f z = do
121.90 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
121.90 s
[really-safe-money] - let digit = Char.ord c - 48
121.90 s
[really-safe-money] + let digit = Char.ord c - 1
121.90 s
[really-safe-money] case f z digit of
121.90 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
121.90 s
[really-safe-money] Just a -> ReadP.look >>= go a
121.90 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
121.90 s
[really-safe-money] @@ -142,7 +142,7 @@
121.90 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
121.90 s
[really-safe-money] parseDigits f z = do
121.90 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
121.90 s
[really-safe-money] - let digit = Char.ord c - 48
121.90 s
[really-safe-money] + let digit = Char.ord c - -48
121.90 s
[really-safe-money] case f z digit of
121.90 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
121.90 s
[really-safe-money] Just a -> ReadP.look >>= go a
121.90 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
121.90 s
[really-safe-money] @@ -149,7 +149,7 @@
121.90 s
[really-safe-money] where
121.90 s
[really-safe-money] go !a [] = return a
121.90 s
[really-safe-money] go !a (c : cs)
121.91 s
[really-safe-money] - | Char.isDigit c = do
121.91 s
[really-safe-money] + | True = do
121.91 s
[really-safe-money] _ <- ReadP.get
121.91 s
[really-safe-money] let digit = Char.ord c - 48
121.91 s
[really-safe-money] case f a digit of
121.91 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
121.91 s
[really-safe-money] @@ -149,7 +149,7 @@
121.91 s
[really-safe-money] where
121.91 s
[really-safe-money] go !a [] = return a
121.91 s
[really-safe-money] go !a (c : cs)
121.91 s
[really-safe-money] - | Char.isDigit c = do
121.91 s
[really-safe-money] + | not (Char.isDigit c) = do
121.91 s
[really-safe-money] _ <- ReadP.get
121.91 s
[really-safe-money] let digit = Char.ord c - 48
121.91 s
[really-safe-money] case f a digit of
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
121.91 s
[really-safe-money] @@ -151,7 +151,7 @@
121.91 s
[really-safe-money] go !a (c : cs)
121.91 s
[really-safe-money] | Char.isDigit c = do
121.91 s
[really-safe-money] _ <- ReadP.get
121.91 s
[really-safe-money] - let digit = Char.ord c - 48
121.91 s
[really-safe-money] + let digit = Char.ord c - 0
121.91 s
[really-safe-money] case f a digit of
121.91 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
121.91 s
[really-safe-money] Just a' -> go a' cs
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
121.91 s
[really-safe-money] @@ -151,7 +151,7 @@
121.91 s
[really-safe-money] go !a (c : cs)
121.91 s
[really-safe-money] | Char.isDigit c = do
121.91 s
[really-safe-money] _ <- ReadP.get
121.91 s
[really-safe-money] - let digit = Char.ord c - 48
121.91 s
[really-safe-money] + let digit = Char.ord c - 1
121.91 s
[really-safe-money] case f a digit of
121.91 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
121.91 s
[really-safe-money] Just a' -> go a' cs
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
121.91 s
[really-safe-money] @@ -151,7 +151,7 @@
121.91 s
[really-safe-money] go !a (c : cs)
121.91 s
[really-safe-money] | Char.isDigit c = do
121.91 s
[really-safe-money] _ <- ReadP.get
121.91 s
[really-safe-money] - let digit = Char.ord c - 48
121.91 s
[really-safe-money] + let digit = Char.ord c - -48
121.91 s
[really-safe-money] case f a digit of
121.91 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
121.91 s
[really-safe-money] Just a' -> go a' cs
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
121.91 s
[really-safe-money] @@ -136,7 +136,7 @@
121.91 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
121.91 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
121.91 s
[really-safe-money] +step a digit = Just $ a * 0 + fromIntegral digit
121.91 s
[really-safe-money] {-# INLINE step #-}
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
121.91 s
[really-safe-money] @@ -136,7 +136,7 @@
121.91 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
121.91 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
121.91 s
[really-safe-money] +step a digit = Just $ a * 1 + fromIntegral digit
121.91 s
[really-safe-money] {-# INLINE step #-}
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
121.91 s
[really-safe-money] @@ -133,7 +133,7 @@
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
121.91 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
121.91 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
121.91 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
121.91 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
121.91 s
[really-safe-money] @@ -133,7 +133,7 @@
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
121.91 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
121.91 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
121.91 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
121.91 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = True || c == '+'
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = False || c == '+'
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = not (c == '-') || c == '+'
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = c == '-' || True
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = c == '-' || False
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = c == '-' || not (c == '+')
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = True
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = False
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
121.91 s
[really-safe-money] @@ -116,7 +116,7 @@
121.91 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
121.91 s
[really-safe-money] decimalLiteralP = do
121.91 s
[really-safe-money] let isSignChar :: Char -> Bool
121.91 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
121.91 s
[really-safe-money] + isSignChar c = not (c == '-' || c == '+')
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
121.91 s
[really-safe-money] @@ -120,7 +120,7 @@
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] - pure $ Just $ signChar == '+'
121.91 s
[really-safe-money] + pure $ Just $ True
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] units <- parseDigits step 0
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
121.91 s
[really-safe-money] @@ -120,7 +120,7 @@
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] - pure $ Just $ signChar == '+'
121.91 s
[really-safe-money] + pure $ Just $ False
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] units <- parseDigits step 0
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
121.91 s
[really-safe-money] @@ -120,7 +120,7 @@
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] - pure $ Just $ signChar == '+'
121.91 s
[really-safe-money] + pure $ Just $ not (signChar == '+')
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] units <- parseDigits step 0
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
121.91 s
[really-safe-money] @@ -122,7 +122,7 @@
121.91 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
121.91 s
[really-safe-money] pure $ Just $ signChar == '+'
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] - units <- parseDigits step 0
121.91 s
[really-safe-money] + units <- parseDigits step 1
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
121.91 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
121.91 s
[really-safe-money] @@ -124,7 +124,7 @@
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] units <- parseDigits step 0
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] - ReadP.option (DecimalLiteral mSign units 0) $ do
121.91 s
[really-safe-money] + ReadP.option (DecimalLiteral mSign units 1) $ do
121.91 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] (m, e) <- parseDigits stepFraction (units, 0)
121.91 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
121.91 s
[really-safe-money] @@ -127,7 +127,7 @@
121.91 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
121.91 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] - (m, e) <- parseDigits stepFraction (units, 0)
121.91 s
[really-safe-money] + (m, e) <- parseDigits stepFraction (units, 1)
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] pure $ DecimalLiteral mSign m e
121.91 s
[really-safe-money]
121.91 s
[really-safe-money] added 81 mutations
123.04 s
[really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.o, dist/build/Money/QuantisationFactor.dyn_o )
123.06 s
[really-safe-money] mutation: instrumenting Money.QuantisationFactor
123.06 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
123.06 s
[really-safe-money] @@ -84,7 +84,7 @@
123.06 s
[really-safe-money] fromDecimalLiteral dl = do
123.06 s
[really-safe-money] irat <-
123.06 s
[really-safe-money] let r = DecimalLiteral.toRational dl
123.06 s
[really-safe-money] - in if numerator r == 0
123.06 s
[really-safe-money] + in if numerator r == 1
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
123.06 s
[really-safe-money] @@ -84,7 +84,7 @@
123.06 s
[really-safe-money] fromDecimalLiteral dl = do
123.06 s
[really-safe-money] irat <-
123.06 s
[really-safe-money] let r = DecimalLiteral.toRational dl
123.06 s
[really-safe-money] - in if numerator r == 0
123.06 s
[really-safe-money] + in if True
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
123.06 s
[really-safe-money] @@ -84,7 +84,7 @@
123.06 s
[really-safe-money] fromDecimalLiteral dl = do
123.06 s
[really-safe-money] irat <-
123.06 s
[really-safe-money] let r = DecimalLiteral.toRational dl
123.06 s
[really-safe-money] - in if numerator r == 0
123.06 s
[really-safe-money] + in if False
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
123.06 s
[really-safe-money] @@ -84,7 +84,7 @@
123.06 s
[really-safe-money] fromDecimalLiteral dl = do
123.06 s
[really-safe-money] irat <-
123.06 s
[really-safe-money] let r = DecimalLiteral.toRational dl
123.06 s
[really-safe-money] - in if numerator r == 0
123.06 s
[really-safe-money] + in if not (numerator r == 0)
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
123.06 s
[really-safe-money] @@ -84,9 +84,9 @@
123.06 s
[really-safe-money] fromDecimalLiteral dl = do
123.06 s
[really-safe-money] irat <-
123.06 s
[really-safe-money] let r = DecimalLiteral.toRational dl
123.06 s
[really-safe-money] - in if numerator r == 0
123.06 s
[really-safe-money] - then Nothing
123.06 s
[really-safe-money] - else pure r
123.06 s
[really-safe-money] + in if numerator r == 0
123.06 s
[really-safe-money] + then Nothing
123.06 s
[really-safe-money] + else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] let r = 1 / irat
123.06 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
123.06 s
[really-safe-money] @@ -89,7 +89,7 @@
123.06 s
[really-safe-money] else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] - let r = 1 / irat
123.06 s
[really-safe-money] + let r = 0 / irat
123.06 s
[really-safe-money] in if r < 0
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
123.06 s
[really-safe-money] @@ -89,7 +89,7 @@
123.06 s
[really-safe-money] else pure r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] - let r = 1 / irat
123.06 s
[really-safe-money] + let r = -1 / irat
123.06 s
[really-safe-money] in if r < 0
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
123.06 s
[really-safe-money] @@ -90,7 +90,7 @@
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] let r = 1 / irat
123.06 s
[really-safe-money] - in if r < 0
123.06 s
[really-safe-money] + in if r < 1
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
123.06 s
[really-safe-money] @@ -90,7 +90,7 @@
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] let r = 1 / irat
123.06 s
[really-safe-money] - in if r < 0
123.06 s
[really-safe-money] + in if True
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
123.06 s
[really-safe-money] @@ -90,7 +90,7 @@
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] let r = 1 / irat
123.06 s
[really-safe-money] - in if r < 0
123.06 s
[really-safe-money] + in if False
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
123.06 s
[really-safe-money] @@ -90,7 +90,7 @@
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] let r = 1 / irat
123.06 s
[really-safe-money] - in if r < 0
123.06 s
[really-safe-money] + in if not (r < 0)
123.06 s
[really-safe-money] then Nothing
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
123.06 s
[really-safe-money] @@ -90,9 +90,9 @@
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] rat <-
123.06 s
[really-safe-money] let r = 1 / irat
123.06 s
[really-safe-money] - in if r < 0
123.06 s
[really-safe-money] - then Nothing
123.06 s
[really-safe-money] - else Just r
123.06 s
[really-safe-money] + in if r < 0
123.06 s
[really-safe-money] + then Nothing
123.06 s
[really-safe-money] + else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] fac <-
123.06 s
[really-safe-money] if denominator rat == 1
123.06 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
123.06 s
[really-safe-money] @@ -95,7 +95,7 @@
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] fac <-
123.06 s
[really-safe-money] - if denominator rat == 1
123.06 s
[really-safe-money] + if denominator rat == 0
123.06 s
[really-safe-money] then Just (numerator rat)
123.06 s
[really-safe-money] else Nothing
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
123.06 s
[really-safe-money] @@ -95,7 +95,7 @@
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] fac <-
123.06 s
[really-safe-money] - if denominator rat == 1
123.06 s
[really-safe-money] + if denominator rat == -1
123.06 s
[really-safe-money] then Just (numerator rat)
123.06 s
[really-safe-money] else Nothing
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
123.06 s
[really-safe-money] @@ -95,7 +95,7 @@
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] fac <-
123.06 s
[really-safe-money] - if denominator rat == 1
123.06 s
[really-safe-money] + if True
123.06 s
[really-safe-money] then Just (numerator rat)
123.06 s
[really-safe-money] else Nothing
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
123.06 s
[really-safe-money] @@ -95,7 +95,7 @@
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] fac <-
123.06 s
[really-safe-money] - if denominator rat == 1
123.06 s
[really-safe-money] + if False
123.06 s
[really-safe-money] then Just (numerator rat)
123.06 s
[really-safe-money] else Nothing
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
123.06 s
[really-safe-money] @@ -95,7 +95,7 @@
123.06 s
[really-safe-money] else Just r
123.06 s
[really-safe-money]
123.06 s
[really-safe-money] fac <-
123.06 s
[really-safe-money] - if denominator rat == 1
123.06 s
[really-safe-money] + if not (denominator rat == 1)
123.07 s
[really-safe-money] then Just (numerator rat)
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
123.07 s
[really-safe-money] @@ -95,9 +95,9 @@
123.07 s
[really-safe-money] else Just r
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] fac <-
123.07 s
[really-safe-money] - if denominator rat == 1
123.07 s
[really-safe-money] - then Just (numerator rat)
123.07 s
[really-safe-money] - else Nothing
123.07 s
[really-safe-money] + if denominator rat == 1
123.07 s
[really-safe-money] + then Just (numerator rat)
123.07 s
[really-safe-money] + else Nothing
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] if fac <= fromIntegral (maxBound :: Word32)
123.07 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
123.07 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
123.07 s
[really-safe-money] @@ -99,6 +99,6 @@
123.07 s
[really-safe-money] then Just (numerator rat)
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
123.07 s
[really-safe-money] + if True
123.07 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
123.07 s
[really-safe-money] @@ -99,6 +99,6 @@
123.07 s
[really-safe-money] then Just (numerator rat)
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
123.07 s
[really-safe-money] + if False
123.07 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
123.07 s
[really-safe-money] @@ -99,6 +99,6 @@
123.07 s
[really-safe-money] then Just (numerator rat)
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
123.07 s
[really-safe-money] + if not (fac <= fromIntegral (maxBound :: Word32))
123.07 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
123.07 s
[really-safe-money] else Nothing
123.07 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
123.07 s
[really-safe-money] @@ -64,7 +64,7 @@
123.07 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
123.07 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
123.07 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
123.07 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
123.07 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
123.07 s
[really-safe-money] -- TODO explain that it's the inverse.
123.07 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
123.07 s
[really-safe-money] @@ -64,7 +64,7 @@
123.07 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
123.07 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
123.07 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
123.07 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
123.07 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
123.07 s
[really-safe-money] -- TODO explain that it's the inverse.
123.07 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
123.07 s
[really-safe-money] @@ -37,7 +37,7 @@
123.07 s
[really-safe-money] validate qf@(QuantisationFactor w) =
123.07 s
[really-safe-money] mconcat
123.07 s
[really-safe-money] [ genericValidate qf,
123.07 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 1
123.07 s
[really-safe-money] ]
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] instance NFData QuantisationFactor
123.07 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
123.07 s
[really-safe-money] @@ -37,7 +37,7 @@
123.07 s
[really-safe-money] validate qf@(QuantisationFactor w) =
123.07 s
[really-safe-money] mconcat
123.07 s
[really-safe-money] [ genericValidate qf,
123.07 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] + declare "The quantisation factor is not zero" $ True
123.07 s
[really-safe-money] ]
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] instance NFData QuantisationFactor
123.07 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
123.07 s
[really-safe-money] @@ -37,7 +37,7 @@
123.07 s
[really-safe-money] validate qf@(QuantisationFactor w) =
123.07 s
[really-safe-money] mconcat
123.07 s
[really-safe-money] [ genericValidate qf,
123.07 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] + declare "The quantisation factor is not zero" $ False
123.07 s
[really-safe-money] ]
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] instance NFData QuantisationFactor
123.07 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
123.07 s
[really-safe-money] @@ -37,7 +37,7 @@
123.07 s
[really-safe-money] validate qf@(QuantisationFactor w) =
123.07 s
[really-safe-money] mconcat
123.07 s
[really-safe-money] [ genericValidate qf,
123.07 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] + declare "The quantisation factor is not zero" $ not (w /= 0)
123.07 s
[really-safe-money] ]
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] instance NFData QuantisationFactor
123.07 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
123.07 s
[really-safe-money] @@ -36,9 +36,7 @@
123.07 s
[really-safe-money] instance Validity QuantisationFactor where
123.07 s
[really-safe-money] validate qf@(QuantisationFactor w) =
123.07 s
[really-safe-money] mconcat
123.07 s
[really-safe-money] - [ genericValidate qf,
123.07 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] - ]
123.07 s
[really-safe-money] + []
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] instance NFData QuantisationFactor
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
123.07 s
[really-safe-money] @@ -36,9 +36,9 @@
123.07 s
[really-safe-money] instance Validity QuantisationFactor where
123.07 s
[really-safe-money] validate qf@(QuantisationFactor w) =
123.07 s
[really-safe-money] mconcat
123.07 s
[really-safe-money] - [ genericValidate qf,
123.07 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] - ]
123.07 s
[really-safe-money] + [ genericValidate qf,
123.07 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 0
123.07 s
[really-safe-money] + ]
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] instance NFData QuantisationFactor
123.07 s
[really-safe-money]
123.07 s
[really-safe-money] added 29 mutations
123.31 s
[really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.o, dist/build/Money/Currency.dyn_o )
123.42 s
[really-safe-money] mutation: instrumenting Money.Currency
123.42 s
[really-safe-money] added 0 mutations
123.57 s
[really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.o, dist/build/Money/ConversionRate.dyn_o )
123.57 s
[really-safe-money] mutation: instrumenting Money.ConversionRate
123.57 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
123.57 s
[really-safe-money] @@ -113,7 +113,7 @@
123.57 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
123.57 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
123.57 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
123.57 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
123.57 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (0 / r)
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | Compose two conversion rates
123.57 s
[really-safe-money] --
123.57 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
123.57 s
[really-safe-money] @@ -113,7 +113,7 @@
123.57 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
123.57 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
123.57 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
123.57 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
123.57 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (-1 / r)
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | Compose two conversion rates
123.57 s
[really-safe-money] --
123.57 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
123.57 s
[really-safe-money] @@ -106,7 +106,7 @@
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | One-to-one conversion rate
123.57 s
[really-safe-money] oneToOne :: ConversionRate
123.57 s
[really-safe-money] -oneToOne = ConversionRate 1
123.57 s
[really-safe-money] +oneToOne = ConversionRate 0
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
123.57 s
[really-safe-money] --
123.57 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
123.57 s
[really-safe-money] @@ -106,7 +106,7 @@
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | One-to-one conversion rate
123.57 s
[really-safe-money] oneToOne :: ConversionRate
123.57 s
[really-safe-money] -oneToOne = ConversionRate 1
123.57 s
[really-safe-money] +oneToOne = ConversionRate -1
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
123.57 s
[really-safe-money] --
123.57 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
123.57 s
[really-safe-money] @@ -69,7 +69,7 @@
123.57 s
[really-safe-money] -- >>> fromRational (0 % 1)
123.57 s
[really-safe-money] -- Nothing
123.57 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
123.57 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
123.57 s
[really-safe-money] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
123.57 s
[really-safe-money] --
123.57 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
123.57 s
[really-safe-money] @@ -69,7 +69,7 @@
123.57 s
[really-safe-money] -- >>> fromRational (0 % 1)
123.57 s
[really-safe-money] -- Nothing
123.57 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
123.57 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
123.57 s
[really-safe-money] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
123.57 s
[really-safe-money]
123.57 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
123.57 s
[really-safe-money] --
123.57 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
123.57 s
[really-safe-money] @@ -69,7 +69,7 @@
123.57 s
[really-safe-money] -- >>> fromRational (0 % 1)
123.57 s
[really-safe-money] -- Nothing
123.57 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
123.58 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
123.58 s
[really-safe-money] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
123.58 s
[really-safe-money] --
123.58 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
123.58 s
[really-safe-money] @@ -69,7 +69,7 @@
123.58 s
[really-safe-money] -- >>> fromRational (0 % 1)
123.58 s
[really-safe-money] -- Nothing
123.58 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
123.58 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
123.58 s
[really-safe-money] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
123.58 s
[really-safe-money] --
123.58 s
[really-safe-money] added mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
123.58 s
[really-safe-money] @@ -69,7 +69,7 @@
123.58 s
[really-safe-money] -- >>> fromRational (0 % 1)
123.58 s
[really-safe-money] -- Nothing
123.58 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
123.58 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
123.58 s
[really-safe-money] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
123.58 s
[really-safe-money] --
123.58 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
123.58 s
[really-safe-money] @@ -35,7 +35,7 @@
123.58 s
[really-safe-money] validate cr@(ConversionRate r) =
123.58 s
[really-safe-money] mconcat
123.58 s
[really-safe-money] [ genericValidate cr,
123.58 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 1
123.58 s
[really-safe-money] ]
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] instance NFData ConversionRate
123.58 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
123.58 s
[really-safe-money] @@ -35,7 +35,7 @@
123.58 s
[really-safe-money] validate cr@(ConversionRate r) =
123.58 s
[really-safe-money] mconcat
123.58 s
[really-safe-money] [ genericValidate cr,
123.58 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] + declare "The rate is nonzero" $ True
123.58 s
[really-safe-money] ]
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] instance NFData ConversionRate
123.58 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
123.58 s
[really-safe-money] @@ -35,7 +35,7 @@
123.58 s
[really-safe-money] validate cr@(ConversionRate r) =
123.58 s
[really-safe-money] mconcat
123.58 s
[really-safe-money] [ genericValidate cr,
123.58 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] + declare "The rate is nonzero" $ False
123.58 s
[really-safe-money] ]
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] instance NFData ConversionRate
123.58 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
123.58 s
[really-safe-money] @@ -35,7 +35,7 @@
123.58 s
[really-safe-money] validate cr@(ConversionRate r) =
123.58 s
[really-safe-money] mconcat
123.58 s
[really-safe-money] [ genericValidate cr,
123.58 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] + declare "The rate is nonzero" $ not (numerator r /= 0)
123.58 s
[really-safe-money] ]
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] instance NFData ConversionRate
123.58 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
123.58 s
[really-safe-money] @@ -34,9 +34,7 @@
123.58 s
[really-safe-money] instance Validity ConversionRate where
123.58 s
[really-safe-money] validate cr@(ConversionRate r) =
123.58 s
[really-safe-money] mconcat
123.58 s
[really-safe-money] - [ genericValidate cr,
123.58 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] - ]
123.58 s
[really-safe-money] + []
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] instance NFData ConversionRate
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
123.58 s
[really-safe-money] @@ -34,9 +34,9 @@
123.58 s
[really-safe-money] instance Validity ConversionRate where
123.58 s
[really-safe-money] validate cr@(ConversionRate r) =
123.58 s
[really-safe-money] mconcat
123.58 s
[really-safe-money] - [ genericValidate cr,
123.58 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] - ]
123.58 s
[really-safe-money] + [ genericValidate cr,
123.58 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 0
123.58 s
[really-safe-money] + ]
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] instance NFData ConversionRate
123.58 s
[really-safe-money]
123.58 s
[really-safe-money] added 15 mutations
123.77 s
[really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.o, dist/build/Money/ConversionRateOf.dyn_o )
123.78 s
[really-safe-money] mutation: instrumenting Money.ConversionRateOf
123.78 s
[really-safe-money] added 0 mutations
123.85 s
[really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.o, dist/build/Money/Amount.dyn_o )
123.92 s
[really-safe-money] mutation: instrumenting Money.Amount
123.92 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
123.92 s
[really-safe-money] @@ -798,7 +798,7 @@
123.92 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
123.92 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
123.92 s
[really-safe-money] let decimals :: Int
123.92 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
123.92 s
[really-safe-money] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
123.92 s
[really-safe-money] in printf "%%0.%df" decimals
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
123.92 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
123.92 s
[really-safe-money] @@ -798,7 +798,7 @@
123.92 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
123.92 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
123.92 s
[really-safe-money] let decimals :: Int
123.92 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
123.92 s
[really-safe-money] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
123.92 s
[really-safe-money] in printf "%%0.%df" decimals
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
123.92 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
123.92 s
[really-safe-money] @@ -798,7 +798,7 @@
123.92 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
123.92 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
123.92 s
[really-safe-money] let decimals :: Int
123.92 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
123.92 s
[really-safe-money] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
123.92 s
[really-safe-money] in printf "%%0.%df" decimals
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
123.92 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
123.92 s
[really-safe-money] @@ -566,7 +566,7 @@
123.92 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
123.92 s
[really-safe-money] smallerChunk :: Amount
123.92 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
123.92 s
[really-safe-money] - in if rest == 0
123.92 s
[really-safe-money] + in if rest == 1
123.92 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
123.92 s
[really-safe-money] else
123.92 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
123.92 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
123.92 s
[really-safe-money] @@ -566,7 +566,7 @@
123.92 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
123.92 s
[really-safe-money] smallerChunk :: Amount
123.92 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
123.92 s
[really-safe-money] - in if rest == 0
123.92 s
[really-safe-money] + in if True
123.92 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
123.92 s
[really-safe-money] else
123.92 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
123.92 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
123.92 s
[really-safe-money] @@ -566,7 +566,7 @@
123.92 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
123.92 s
[really-safe-money] smallerChunk :: Amount
123.92 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
123.92 s
[really-safe-money] - in if rest == 0
123.92 s
[really-safe-money] + in if False
123.92 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
123.92 s
[really-safe-money] else
123.92 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
123.92 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
123.92 s
[really-safe-money] @@ -566,7 +566,7 @@
123.92 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
123.92 s
[really-safe-money] smallerChunk :: Amount
123.92 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
123.92 s
[really-safe-money] - in if rest == 0
123.92 s
[really-safe-money] + in if not (rest == 0)
123.92 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
123.92 s
[really-safe-money] else
123.92 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
123.92 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:569:7-29
123.92 s
[really-safe-money] @@ -566,22 +566,22 @@
123.92 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
123.92 s
[really-safe-money] smallerChunk :: Amount
123.92 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
123.92 s
[really-safe-money] - in if rest == 0
123.92 s
[really-safe-money] - then DistributedIntoEqualChunks f smallerChunk
123.92 s
[really-safe-money] - else
123.92 s
[really-safe-money] - let -- This 'fromIntegral' is theoretically not safe, but it's
123.92 s
[really-safe-money] - -- necessarily smaller than f so it will fit.
123.92 s
[really-safe-money] - numberOfLargerChunks :: Word32
123.92 s
[really-safe-money] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
123.92 s
[really-safe-money] - numberOfSmallerChunks :: Word32
123.92 s
[really-safe-money] - numberOfSmallerChunks = f - numberOfLargerChunks
123.92 s
[really-safe-money] - largerChunk :: Amount
123.92 s
[really-safe-money] - largerChunk = Amount $ succ smallerChunkSize
123.92 s
[really-safe-money] - in DistributedIntoUnequalChunks
123.92 s
[really-safe-money] - numberOfLargerChunks
123.92 s
[really-safe-money] - largerChunk
123.92 s
[really-safe-money] - numberOfSmallerChunks
123.92 s
[really-safe-money] - smallerChunk
123.92 s
[really-safe-money] + in if rest == 0
123.92 s
[really-safe-money] + then DistributedIntoEqualChunks f smallerChunk
123.92 s
[really-safe-money] + else
123.92 s
[really-safe-money] + let -- This 'fromIntegral' is theoretically not safe, but it's
123.92 s
[really-safe-money] + -- necessarily smaller than f so it will fit.
123.92 s
[really-safe-money] + numberOfLargerChunks :: Word32
123.92 s
[really-safe-money] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
123.92 s
[really-safe-money] + numberOfSmallerChunks :: Word32
123.92 s
[really-safe-money] + numberOfSmallerChunks = f - numberOfLargerChunks
123.92 s
[really-safe-money] + largerChunk :: Amount
123.92 s
[really-safe-money] + largerChunk = Amount $ succ smallerChunkSize
123.92 s
[really-safe-money] + in DistributedIntoUnequalChunks
123.92 s
[really-safe-money] + numberOfLargerChunks
123.92 s
[really-safe-money] + largerChunk
123.92 s
[really-safe-money] + numberOfSmallerChunks
123.92 s
[really-safe-money] + smallerChunk
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] -- | The result of 'distribute'
123.92 s
[really-safe-money] type AmountDistribution = Distribution Amount
123.92 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
123.92 s
[really-safe-money] @@ -541,7 +541,7 @@
123.92 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
123.92 s
[really-safe-money] - in if r > maxBoundI
123.92 s
[really-safe-money] + in if True
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
123.92 s
[really-safe-money] @@ -541,7 +541,7 @@
123.92 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
123.92 s
[really-safe-money] - in if r > maxBoundI
123.92 s
[really-safe-money] + in if False
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
123.92 s
[really-safe-money] @@ -541,7 +541,7 @@
123.92 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
123.92 s
[really-safe-money] - in if r > maxBoundI
123.92 s
[really-safe-money] + in if not (r > maxBoundI)
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:544:7-66
123.92 s
[really-safe-money] @@ -541,9 +541,9 @@
123.92 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
123.92 s
[really-safe-money] - in if r > maxBoundI
123.92 s
[really-safe-money] - then Nothing
123.92 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money] + in if r > maxBoundI
123.92 s
[really-safe-money] + then Nothing
123.92 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
123.92 s
[really-safe-money] --
123.92 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
123.92 s
[really-safe-money] @@ -515,7 +515,7 @@
123.92 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = i1 - i2
123.92 s
[really-safe-money] - in if r < 0
123.92 s
[really-safe-money] + in if r < 1
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
123.92 s
[really-safe-money] @@ -515,7 +515,7 @@
123.92 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = i1 - i2
123.92 s
[really-safe-money] - in if r < 0
123.92 s
[really-safe-money] + in if True
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
123.92 s
[really-safe-money] @@ -515,7 +515,7 @@
123.92 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = i1 - i2
123.92 s
[really-safe-money] - in if r < 0
123.92 s
[really-safe-money] + in if False
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
123.92 s
[really-safe-money] @@ -515,7 +515,7 @@
123.92 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = i1 - i2
123.92 s
[really-safe-money] - in if r < 0
123.92 s
[really-safe-money] + in if not (r < 0)
123.92 s
[really-safe-money] then Nothing
123.92 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.92 s
[really-safe-money]
123.92 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:518:7-66
123.92 s
[really-safe-money] @@ -515,9 +515,9 @@
123.92 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
123.92 s
[really-safe-money] r :: Integer
123.92 s
[really-safe-money] r = i1 - i2
123.92 s
[really-safe-money] - in if r < 0
123.92 s
[really-safe-money] - then Nothing
123.93 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money] + in if r < 0
123.93 s
[really-safe-money] + then Nothing
123.93 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] -- | Multiply an amount of money by an integer scalar
123.93 s
[really-safe-money] --
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
123.93 s
[really-safe-money] @@ -473,7 +473,7 @@
123.93 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.93 s
[really-safe-money] r :: Integer
123.93 s
[really-safe-money] r = i1 + i2
123.93 s
[really-safe-money] - in if r > maxBoundI
123.93 s
[really-safe-money] + in if True
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
123.93 s
[really-safe-money] @@ -473,7 +473,7 @@
123.93 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.93 s
[really-safe-money] r :: Integer
123.93 s
[really-safe-money] r = i1 + i2
123.93 s
[really-safe-money] - in if r > maxBoundI
123.93 s
[really-safe-money] + in if False
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
123.93 s
[really-safe-money] @@ -473,7 +473,7 @@
123.93 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.93 s
[really-safe-money] r :: Integer
123.93 s
[really-safe-money] r = i1 + i2
123.93 s
[really-safe-money] - in if r > maxBoundI
123.93 s
[really-safe-money] + in if not (r > maxBoundI)
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:476:7-66
123.93 s
[really-safe-money] @@ -473,9 +473,9 @@
123.93 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.93 s
[really-safe-money] r :: Integer
123.93 s
[really-safe-money] r = i1 + i2
123.93 s
[really-safe-money] - in if r > maxBoundI
123.93 s
[really-safe-money] - then Nothing
123.93 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money] + in if r > maxBoundI
123.93 s
[really-safe-money] + then Nothing
123.93 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] -- | Add a number of amounts of money together.
123.93 s
[really-safe-money] --
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
123.93 s
[really-safe-money] @@ -385,7 +385,7 @@
123.93 s
[really-safe-money] -- Nothing
123.93 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
123.93 s
[really-safe-money] fromRational (QuantisationFactor qf) r
123.93 s
[really-safe-money] - | isInvalid r = Nothing
123.93 s
[really-safe-money] + | True = Nothing
123.93 s
[really-safe-money] | r < 0 = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultRational :: Rational
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
123.93 s
[really-safe-money] @@ -385,7 +385,7 @@
123.93 s
[really-safe-money] -- Nothing
123.93 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
123.93 s
[really-safe-money] fromRational (QuantisationFactor qf) r
123.93 s
[really-safe-money] - | isInvalid r = Nothing
123.93 s
[really-safe-money] + | not (isInvalid r) = Nothing
123.93 s
[really-safe-money] | r < 0 = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultRational :: Rational
123.93 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
123.93 s
[really-safe-money] @@ -386,7 +386,7 @@
123.93 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
123.93 s
[really-safe-money] fromRational (QuantisationFactor qf) r
123.93 s
[really-safe-money] | isInvalid r = Nothing
123.93 s
[really-safe-money] - | r < 0 = Nothing
123.93 s
[really-safe-money] + | r < 1 = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultRational :: Rational
123.93 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
123.93 s
[really-safe-money] @@ -386,7 +386,7 @@
123.93 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
123.93 s
[really-safe-money] fromRational (QuantisationFactor qf) r
123.93 s
[really-safe-money] | isInvalid r = Nothing
123.93 s
[really-safe-money] - | r < 0 = Nothing
123.93 s
[really-safe-money] + | True = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultRational :: Rational
123.93 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
123.93 s
[really-safe-money] @@ -386,7 +386,7 @@
123.93 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
123.93 s
[really-safe-money] fromRational (QuantisationFactor qf) r
123.93 s
[really-safe-money] | isInvalid r = Nothing
123.93 s
[really-safe-money] - | r < 0 = Nothing
123.93 s
[really-safe-money] + | not (r < 0) = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultRational :: Rational
123.93 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
123.93 s
[really-safe-money] @@ -394,7 +394,7 @@
123.93 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] floored :: Natural
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] - in if ceiled == floored
123.93 s
[really-safe-money] + in if True
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
123.93 s
[really-safe-money] @@ -394,7 +394,7 @@
123.93 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] floored :: Natural
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] - in if ceiled == floored
123.93 s
[really-safe-money] + in if False
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
123.93 s
[really-safe-money] @@ -394,7 +394,7 @@
123.93 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] floored :: Natural
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] - in if ceiled == floored
123.93 s
[really-safe-money] + in if not (ceiled == floored)
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
123.93 s
[really-safe-money] @@ -396,7 +396,7 @@
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] in if ceiled == floored
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] + if True
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] else Nothing
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
123.93 s
[really-safe-money] @@ -396,7 +396,7 @@
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] in if ceiled == floored
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] + if False
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] else Nothing
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
123.93 s
[really-safe-money] @@ -396,7 +396,7 @@
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] in if ceiled == floored
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
123.93 s
[really-safe-money] then Nothing
123.93 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] else Nothing
123.93 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:399:15-57
123.93 s
[really-safe-money] @@ -396,9 +396,9 @@
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] in if ceiled == floored
123.93 s
[really-safe-money] then
123.93 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] - then Nothing
123.93 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] + then Nothing
123.93 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] else Nothing
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
123.93 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:397:11-25
123.93 s
[really-safe-money] @@ -394,12 +394,12 @@
123.93 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] floored :: Natural
123.93 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
123.93 s
[really-safe-money] - in if ceiled == floored
123.93 s
[really-safe-money] - then
123.93 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] - then Nothing
123.93 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] - else Nothing
123.93 s
[really-safe-money] + in if ceiled == floored
123.93 s
[really-safe-money] + then
123.93 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.93 s
[really-safe-money] + then Nothing
123.93 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
123.93 s
[really-safe-money] + else Nothing
123.93 s
[really-safe-money]
123.93 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
123.93 s
[really-safe-money] --
123.93 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
123.93 s
[really-safe-money] @@ -317,7 +317,7 @@
123.93 s
[really-safe-money] Double ->
123.93 s
[really-safe-money] Maybe Amount
123.93 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
123.93 s
[really-safe-money] - | d < 0 = Nothing
123.93 s
[really-safe-money] + | d < 1 = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultDouble :: Double
123.93 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
123.93 s
[really-safe-money] @@ -317,7 +317,7 @@
123.93 s
[really-safe-money] Double ->
123.93 s
[really-safe-money] Maybe Amount
123.93 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
123.93 s
[really-safe-money] - | d < 0 = Nothing
123.93 s
[really-safe-money] + | True = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultDouble :: Double
123.93 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
123.93 s
[really-safe-money] @@ -317,7 +317,7 @@
123.93 s
[really-safe-money] Double ->
123.93 s
[really-safe-money] Maybe Amount
123.93 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
123.93 s
[really-safe-money] - | d < 0 = Nothing
123.93 s
[really-safe-money] + | not (d < 0) = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] let resultDouble :: Double
123.93 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
123.93 s
[really-safe-money] @@ -324,7 +324,7 @@
123.93 s
[really-safe-money] in go resultDouble
123.93 s
[really-safe-money] where
123.93 s
[really-safe-money] go resultDouble
123.93 s
[really-safe-money] - | isNaN d = Nothing
123.93 s
[really-safe-money] + | True = Nothing
123.93 s
[really-safe-money] | isInfinite d = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
123.93 s
[really-safe-money] @@ -324,7 +324,7 @@
123.93 s
[really-safe-money] in go resultDouble
123.93 s
[really-safe-money] where
123.93 s
[really-safe-money] go resultDouble
123.93 s
[really-safe-money] - | isNaN d = Nothing
123.93 s
[really-safe-money] + | not (isNaN d) = Nothing
123.93 s
[really-safe-money] | isInfinite d = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.93 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
123.93 s
[really-safe-money] @@ -325,7 +325,7 @@
123.93 s
[really-safe-money] where
123.93 s
[really-safe-money] go resultDouble
123.93 s
[really-safe-money] | isNaN d = Nothing
123.93 s
[really-safe-money] - | isInfinite d = Nothing
123.93 s
[really-safe-money] + | True = Nothing
123.93 s
[really-safe-money] | otherwise =
123.93 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.93 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.93 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
123.93 s
[really-safe-money] @@ -325,7 +325,7 @@
123.93 s
[really-safe-money] where
123.93 s
[really-safe-money] go resultDouble
123.93 s
[really-safe-money] | isNaN d = Nothing
123.93 s
[really-safe-money] - | isInfinite d = Nothing
123.93 s
[really-safe-money] + | not (isInfinite d) = Nothing
123.93 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
123.94 s
[really-safe-money] @@ -329,7 +329,7 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] + if exponent resultDouble > 0
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else
123.94 s
[really-safe-money] let ceiled :: Natural
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
123.94 s
[really-safe-money] @@ -329,7 +329,7 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] + if exponent resultDouble > 1
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else
123.94 s
[really-safe-money] let ceiled :: Natural
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
123.94 s
[really-safe-money] @@ -329,7 +329,7 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] + if exponent resultDouble > -65
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else
123.94 s
[really-safe-money] let ceiled :: Natural
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
123.94 s
[really-safe-money] @@ -329,7 +329,7 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] + if True
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else
123.94 s
[really-safe-money] let ceiled :: Natural
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
123.94 s
[really-safe-money] @@ -329,7 +329,7 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] + if False
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else
123.94 s
[really-safe-money] let ceiled :: Natural
123.94 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
123.94 s
[really-safe-money] @@ -329,7 +329,7 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] + if not (exponent resultDouble > 65)
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else
123.94 s
[really-safe-money] let ceiled :: Natural
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
123.94 s
[really-safe-money] @@ -336,7 +336,7 @@
123.94 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] floored :: Natural
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] - in if ceiled == floored
123.94 s
[really-safe-money] + in if True
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
123.94 s
[really-safe-money] @@ -336,7 +336,7 @@
123.94 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] floored :: Natural
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] - in if ceiled == floored
123.94 s
[really-safe-money] + in if False
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
123.94 s
[really-safe-money] @@ -336,7 +336,7 @@
123.94 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] floored :: Natural
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] - in if ceiled == floored
123.94 s
[really-safe-money] + in if not (ceiled == floored)
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
123.94 s
[really-safe-money] @@ -338,7 +338,7 @@
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] in if ceiled == floored
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] + if True
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] else Nothing
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
123.94 s
[really-safe-money] @@ -338,7 +338,7 @@
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] in if ceiled == floored
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] + if False
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] else Nothing
123.94 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
123.94 s
[really-safe-money] @@ -338,7 +338,7 @@
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] in if ceiled == floored
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] else Nothing
123.94 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:341:23-65
123.94 s
[really-safe-money] @@ -338,9 +338,9 @@
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] in if ceiled == floored
123.94 s
[really-safe-money] then
123.94 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] - then Nothing
123.94 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] + then Nothing
123.94 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] else Nothing
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
123.94 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:339:19-33
123.94 s
[really-safe-money] @@ -336,12 +336,12 @@
123.94 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] floored :: Natural
123.94 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] - in if ceiled == floored
123.94 s
[really-safe-money] - then
123.94 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] - then Nothing
123.94 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] - else Nothing
123.94 s
[really-safe-money] + in if ceiled == floored
123.94 s
[really-safe-money] + then
123.94 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] + then Nothing
123.94 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] + else Nothing
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
123.94 s
[really-safe-money] --
123.94 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:332:11-33
123.94 s
[really-safe-money] @@ -329,19 +329,19 @@
123.94 s
[really-safe-money] | otherwise =
123.94 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
123.94 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
123.94 s
[really-safe-money] - if exponent resultDouble > 65
123.94 s
[really-safe-money] - then Nothing
123.94 s
[really-safe-money] - else
123.94 s
[really-safe-money] - let ceiled :: Natural
123.94 s
[really-safe-money] - ceiled = (ceiling :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] - floored :: Natural
123.94 s
[really-safe-money] - floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] - in if ceiled == floored
123.94 s
[really-safe-money] - then
123.94 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] - then Nothing
123.94 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] - else Nothing
123.94 s
[really-safe-money] + if exponent resultDouble > 65
123.94 s
[really-safe-money] + then Nothing
123.94 s
[really-safe-money] + else
123.94 s
[really-safe-money] + let ceiled :: Natural
123.94 s
[really-safe-money] + ceiled = (ceiling :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] + floored :: Natural
123.94 s
[really-safe-money] + floored = (floor :: Double -> Natural) resultDouble
123.94 s
[really-safe-money] + in if ceiled == floored
123.94 s
[really-safe-money] + then
123.94 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
123.94 s
[really-safe-money] + then Nothing
123.94 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
123.94 s
[really-safe-money] + else Nothing
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
123.94 s
[really-safe-money] --
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
123.94 s
[really-safe-money] @@ -287,7 +287,7 @@
123.94 s
[really-safe-money] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
123.94 s
[really-safe-money] -- 1 % 100
123.94 s
[really-safe-money] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
123.94 s
[really-safe-money] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
123.94 s
[really-safe-money] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
123.94 s
[really-safe-money] toRatio (QuantisationFactor quantisationFactor) a =
123.94 s
[really-safe-money] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
123.94 s
[really-safe-money] % (fromIntegral :: Word32 -> Natural) quantisationFactor
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
123.94 s
[really-safe-money] @@ -491,7 +491,7 @@
123.94 s
[really-safe-money] let maxBoundI :: Integer
123.94 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.94 s
[really-safe-money] r :: Integer
123.94 s
[really-safe-money] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
123.94 s
[really-safe-money] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
123.94 s
[really-safe-money] in if r > maxBoundI
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
123.94 s
[really-safe-money] @@ -492,7 +492,7 @@
123.94 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.94 s
[really-safe-money] r :: Integer
123.94 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
123.94 s
[really-safe-money] - in if r > maxBoundI
123.94 s
[really-safe-money] + in if True
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
123.94 s
[really-safe-money] @@ -492,7 +492,7 @@
123.94 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.94 s
[really-safe-money] r :: Integer
123.94 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
123.94 s
[really-safe-money] - in if r > maxBoundI
123.94 s
[really-safe-money] + in if False
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
123.94 s
[really-safe-money] @@ -492,7 +492,7 @@
123.94 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.94 s
[really-safe-money] r :: Integer
123.94 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
123.94 s
[really-safe-money] - in if r > maxBoundI
123.94 s
[really-safe-money] + in if not (r > maxBoundI)
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:495:7-66
123.94 s
[really-safe-money] @@ -492,9 +492,9 @@
123.94 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
123.94 s
[really-safe-money] r :: Integer
123.94 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
123.94 s
[really-safe-money] - in if r > maxBoundI
123.94 s
[really-safe-money] - then Nothing
123.94 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.94 s
[really-safe-money] + in if r > maxBoundI
123.94 s
[really-safe-money] + then Nothing
123.94 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] -- | Add two amounts of money.
123.94 s
[really-safe-money] --
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
123.94 s
[really-safe-money] @@ -247,7 +247,7 @@
123.94 s
[really-safe-money] -- >>> zero
123.94 s
[really-safe-money] -- Amount 0
123.94 s
[really-safe-money] zero :: Amount
123.94 s
[really-safe-money] -zero = Amount 0
123.94 s
[really-safe-money] +zero = Amount 1
123.94 s
[really-safe-money]
123.94 s
[really-safe-money] -- | Turn an amount into a number of minimal quantisations.
123.94 s
[really-safe-money] --
123.94 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
123.94 s
[really-safe-money] @@ -658,7 +658,7 @@
123.94 s
[really-safe-money] -- | The amount and the real rate that was used, considering the 'Rounding'
123.94 s
[really-safe-money] (Maybe Amount, Ratio Natural)
123.94 s
[really-safe-money] fraction _ (Amount 0) f = (Just zero, f)
123.94 s
[really-safe-money] -fraction _ _ 0 = (Just zero, 0)
123.94 s
[really-safe-money] +fraction _ _ 0 = (Just zero, 1)
123.94 s
[really-safe-money] fraction r (Amount a) f =
123.94 s
[really-safe-money] let amountAsRatio :: Ratio Natural
123.94 s
[really-safe-money] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
123.94 s
[really-safe-money] @@ -678,7 +678,7 @@
123.94 s
[really-safe-money] maxBoundN :: Natural
123.94 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
123.94 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
123.94 s
[really-safe-money] - in ( if roundedResult > maxBoundN
123.94 s
[really-safe-money] + in ( if True
123.94 s
[really-safe-money] then Nothing
123.94 s
[really-safe-money] else Just result,
123.94 s
[really-safe-money] actualRate
123.94 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
123.94 s
[really-safe-money] @@ -678,7 +678,7 @@
123.94 s
[really-safe-money] maxBoundN :: Natural
123.94 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
123.95 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
123.95 s
[really-safe-money] - in ( if roundedResult > maxBoundN
123.95 s
[really-safe-money] + in ( if False
123.95 s
[really-safe-money] then Nothing
123.95 s
[really-safe-money] else Just result,
123.95 s
[really-safe-money] actualRate
123.95 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
123.95 s
[really-safe-money] @@ -678,7 +678,7 @@
123.95 s
[really-safe-money] maxBoundN :: Natural
123.95 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
123.95 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
123.95 s
[really-safe-money] - in ( if roundedResult > maxBoundN
123.95 s
[really-safe-money] + in ( if not (roundedResult > maxBoundN)
123.95 s
[really-safe-money] then Nothing
123.95 s
[really-safe-money] else Just result,
123.95 s
[really-safe-money] actualRate
123.95 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:681:9-27
123.95 s
[really-safe-money] @@ -678,9 +678,9 @@
123.95 s
[really-safe-money] maxBoundN :: Natural
123.95 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
123.95 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
123.95 s
[really-safe-money] - in ( if roundedResult > maxBoundN
123.95 s
[really-safe-money] - then Nothing
123.95 s
[really-safe-money] - else Just result,
123.95 s
[really-safe-money] + in ( if roundedResult > maxBoundN
123.95 s
[really-safe-money] + then Nothing
123.95 s
[really-safe-money] + else Just result,
123.95 s
[really-safe-money] actualRate
123.95 s
[really-safe-money] )
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
123.95 s
[really-safe-money] @@ -803,4 +803,4 @@
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
123.95 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
123.95 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
123.95 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
123.95 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
123.95 s
[really-safe-money] @@ -803,4 +803,4 @@
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
123.95 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
123.95 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
123.95 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
123.95 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
123.95 s
[really-safe-money] @@ -803,4 +803,4 @@
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
123.95 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
123.95 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
123.95 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
123.95 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
123.95 s
[really-safe-money] @@ -604,7 +604,7 @@
123.95 s
[really-safe-money] case ad of
123.95 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
123.95 s
[really-safe-money] declare "The larger chunks are larger" $
123.95 s
[really-safe-money] - a1 > a2
123.95 s
[really-safe-money] + True
123.95 s
[really-safe-money] _ -> valid
123.95 s
[really-safe-money] ]
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
123.95 s
[really-safe-money] @@ -604,7 +604,7 @@
123.95 s
[really-safe-money] case ad of
123.95 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
123.95 s
[really-safe-money] declare "The larger chunks are larger" $
123.95 s
[really-safe-money] - a1 > a2
123.95 s
[really-safe-money] + False
123.95 s
[really-safe-money] _ -> valid
123.95 s
[really-safe-money] ]
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
123.95 s
[really-safe-money] @@ -604,7 +604,7 @@
123.95 s
[really-safe-money] case ad of
123.95 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
123.95 s
[really-safe-money] declare "The larger chunks are larger" $
123.95 s
[really-safe-money] - a1 > a2
123.95 s
[really-safe-money] + not (a1 > a2)
123.95 s
[really-safe-money] _ -> valid
123.95 s
[really-safe-money] ]
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
123.95 s
[really-safe-money] @@ -600,13 +600,7 @@
123.95 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
123.95 s
[really-safe-money] validate ad =
123.95 s
[really-safe-money] mconcat
123.95 s
[really-safe-money] - [ genericValidate ad,
123.95 s
[really-safe-money] - case ad of
123.95 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
123.95 s
[really-safe-money] - declare "The larger chunks are larger" $
123.95 s
[really-safe-money] - a1 > a2
123.95 s
[really-safe-money] - _ -> valid
123.95 s
[really-safe-money] - ]
123.95 s
[really-safe-money] + []
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
123.95 s
[really-safe-money] @@ -600,13 +600,13 @@
123.95 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
123.95 s
[really-safe-money] validate ad =
123.95 s
[really-safe-money] mconcat
123.95 s
[really-safe-money] - [ genericValidate ad,
123.95 s
[really-safe-money] - case ad of
123.95 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
123.95 s
[really-safe-money] - declare "The larger chunks are larger" $
123.95 s
[really-safe-money] - a1 > a2
123.95 s
[really-safe-money] - _ -> valid
123.95 s
[really-safe-money] - ]
123.95 s
[really-safe-money] + [ genericValidate ad,
123.95 s
[really-safe-money] + case ad of
123.95 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
123.95 s
[really-safe-money] + declare "The larger chunks are larger" $
123.95 s
[really-safe-money] + a1 > a2
123.95 s
[really-safe-money] + _ -> valid
123.95 s
[really-safe-money] + ]
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
123.95 s
[really-safe-money]
123.95 s
[really-safe-money] added 76 mutations
125.39 s
[really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.o, dist/build/Money/MultiAmount.dyn_o )
125.42 s
[really-safe-money] mutation: instrumenting Money.MultiAmount
125.42 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
125.42 s
[really-safe-money] @@ -165,7 +165,7 @@
125.42 s
[really-safe-money] maxBoundN :: Natural
125.42 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
125.42 s
[really-safe-money] actualResult =
125.42 s
[really-safe-money] - if roundedResult > maxBoundN
125.42 s
[really-safe-money] + if True
125.42 s
[really-safe-money] then Nothing
125.42 s
[really-safe-money] else Just (fromIntegral roundedResult)
125.42 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
125.42 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
125.42 s
[really-safe-money] @@ -165,7 +165,7 @@
125.42 s
[really-safe-money] maxBoundN :: Natural
125.42 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
125.42 s
[really-safe-money] actualResult =
125.42 s
[really-safe-money] - if roundedResult > maxBoundN
125.42 s
[really-safe-money] + if False
125.42 s
[really-safe-money] then Nothing
125.42 s
[really-safe-money] else Just (fromIntegral roundedResult)
125.42 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
125.42 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
125.42 s
[really-safe-money] @@ -165,7 +165,7 @@
125.42 s
[really-safe-money] maxBoundN :: Natural
125.42 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
125.42 s
[really-safe-money] actualResult =
125.42 s
[really-safe-money] - if roundedResult > maxBoundN
125.42 s
[really-safe-money] + if not (roundedResult > maxBoundN)
125.42 s
[really-safe-money] then Nothing
125.42 s
[really-safe-money] else Just (fromIntegral roundedResult)
125.42 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
125.42 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
125.42 s
[really-safe-money] @@ -165,9 +165,9 @@
125.42 s
[really-safe-money] maxBoundN :: Natural
125.42 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
125.42 s
[really-safe-money] actualResult =
125.42 s
[really-safe-money] - if roundedResult > maxBoundN
125.42 s
[really-safe-money] - then Nothing
125.42 s
[really-safe-money] - else Just (fromIntegral roundedResult)
125.42 s
[really-safe-money] + if roundedResult > maxBoundN
125.42 s
[really-safe-money] + then Nothing
125.42 s
[really-safe-money] + else Just (fromIntegral roundedResult)
125.42 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
125.42 s
[really-safe-money] LT -> RoundedDown
125.42 s
[really-safe-money] EQ -> DidNotRound
125.42 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
125.42 s
[really-safe-money] @@ -116,7 +116,7 @@
125.42 s
[really-safe-money] Just a -> do
125.42 s
[really-safe-money] r <- Amount.subtract a amount
125.42 s
[really-safe-money] Just $
125.42 s
[really-safe-money] - if r == Amount.zero
125.42 s
[really-safe-money] + if True
125.42 s
[really-safe-money] then M.delete currency m
125.42 s
[really-safe-money] else M.insert currency r m
125.42 s
[really-safe-money]
125.42 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
125.42 s
[really-safe-money] @@ -116,7 +116,7 @@
125.42 s
[really-safe-money] Just a -> do
125.42 s
[really-safe-money] r <- Amount.subtract a amount
125.42 s
[really-safe-money] Just $
125.42 s
[really-safe-money] - if r == Amount.zero
125.42 s
[really-safe-money] + if False
125.42 s
[really-safe-money] then M.delete currency m
125.43 s
[really-safe-money] else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
125.43 s
[really-safe-money] @@ -116,7 +116,7 @@
125.43 s
[really-safe-money] Just a -> do
125.43 s
[really-safe-money] r <- Amount.subtract a amount
125.43 s
[really-safe-money] Just $
125.43 s
[really-safe-money] - if r == Amount.zero
125.43 s
[really-safe-money] + if not (r == Amount.zero)
125.43 s
[really-safe-money] then M.delete currency m
125.43 s
[really-safe-money] else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
125.43 s
[really-safe-money] @@ -116,9 +116,9 @@
125.43 s
[really-safe-money] Just a -> do
125.43 s
[really-safe-money] r <- Amount.subtract a amount
125.43 s
[really-safe-money] Just $
125.43 s
[really-safe-money] - if r == Amount.zero
125.43 s
[really-safe-money] - then M.delete currency m
125.43 s
[really-safe-money] - else M.insert currency r m
125.43 s
[really-safe-money] + if r == Amount.zero
125.43 s
[really-safe-money] + then M.delete currency m
125.43 s
[really-safe-money] + else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] -- | Try to convert every amount to one currency.
125.43 s
[really-safe-money] --
125.43 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
125.43 s
[really-safe-money] @@ -103,7 +103,7 @@
125.43 s
[really-safe-money] Just a -> do
125.43 s
[really-safe-money] r <- Amount.add a amount
125.43 s
[really-safe-money] Just $
125.43 s
[really-safe-money] - if r == Amount.zero
125.43 s
[really-safe-money] + if True
125.43 s
[really-safe-money] then M.delete currency m
125.43 s
[really-safe-money] else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
125.43 s
[really-safe-money] @@ -103,7 +103,7 @@
125.43 s
[really-safe-money] Just a -> do
125.43 s
[really-safe-money] r <- Amount.add a amount
125.43 s
[really-safe-money] Just $
125.43 s
[really-safe-money] - if r == Amount.zero
125.43 s
[really-safe-money] + if False
125.43 s
[really-safe-money] then M.delete currency m
125.43 s
[really-safe-money] else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
125.43 s
[really-safe-money] @@ -103,7 +103,7 @@
125.43 s
[really-safe-money] Just a -> do
125.43 s
[really-safe-money] r <- Amount.add a amount
125.43 s
[really-safe-money] Just $
125.43 s
[really-safe-money] - if r == Amount.zero
125.43 s
[really-safe-money] + if not (r == Amount.zero)
125.43 s
[really-safe-money] then M.delete currency m
125.43 s
[really-safe-money] else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
125.43 s
[really-safe-money] @@ -103,9 +103,9 @@
125.43 s
[really-safe-money] Just a -> do
125.43 s
[really-safe-money] r <- Amount.add a amount
125.43 s
[really-safe-money] Just $
125.43 s
[really-safe-money] - if r == Amount.zero
125.43 s
[really-safe-money] - then M.delete currency m
125.43 s
[really-safe-money] - else M.insert currency r m
125.43 s
[really-safe-money] + if r == Amount.zero
125.43 s
[really-safe-money] + then M.delete currency m
125.43 s
[really-safe-money] + else M.insert currency r m
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
125.43 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
125.43 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
125.43 s
[really-safe-money] @@ -70,7 +70,7 @@
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
125.43 s
[really-safe-money] fromAmount currency amount =
125.43 s
[really-safe-money] - if amount == Amount.zero
125.43 s
[really-safe-money] + if True
125.43 s
[really-safe-money] then zero
125.43 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
125.43 s
[really-safe-money] @@ -70,7 +70,7 @@
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
125.43 s
[really-safe-money] fromAmount currency amount =
125.43 s
[really-safe-money] - if amount == Amount.zero
125.43 s
[really-safe-money] + if False
125.43 s
[really-safe-money] then zero
125.43 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
125.43 s
[really-safe-money] @@ -70,7 +70,7 @@
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
125.43 s
[really-safe-money] fromAmount currency amount =
125.43 s
[really-safe-money] - if amount == Amount.zero
125.43 s
[really-safe-money] + if not (amount == Amount.zero)
125.43 s
[really-safe-money] then zero
125.43 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
125.43 s
[really-safe-money] @@ -70,9 +70,9 @@
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
125.43 s
[really-safe-money] fromAmount currency amount =
125.43 s
[really-safe-money] - if amount == Amount.zero
125.43 s
[really-safe-money] - then zero
125.43 s
[really-safe-money] - else MultiAmount $ M.singleton currency amount
125.43 s
[really-safe-money] + if amount == Amount.zero
125.43 s
[really-safe-money] + then zero
125.43 s
[really-safe-money] + else MultiAmount $ M.singleton currency amount
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] -- | No money of any currency
125.43 s
[really-safe-money] zero :: MultiAmount currency
125.43 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
125.43 s
[really-safe-money] @@ -63,7 +63,7 @@
125.43 s
[really-safe-money] [ genericValidate ma,
125.43 s
[really-safe-money] decorateMap m $ \_ a ->
125.43 s
[really-safe-money] declare "The amount is not zero" $
125.43 s
[really-safe-money] - a /= Amount.zero
125.43 s
[really-safe-money] + True
125.43 s
[really-safe-money] ]
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
125.43 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
125.43 s
[really-safe-money] @@ -63,7 +63,7 @@
125.43 s
[really-safe-money] [ genericValidate ma,
125.43 s
[really-safe-money] decorateMap m $ \_ a ->
125.43 s
[really-safe-money] declare "The amount is not zero" $
125.43 s
[really-safe-money] - a /= Amount.zero
125.43 s
[really-safe-money] + False
125.43 s
[really-safe-money] ]
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
125.43 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
125.43 s
[really-safe-money] @@ -63,7 +63,7 @@
125.43 s
[really-safe-money] [ genericValidate ma,
125.43 s
[really-safe-money] decorateMap m $ \_ a ->
125.43 s
[really-safe-money] declare "The amount is not zero" $
125.43 s
[really-safe-money] - a /= Amount.zero
125.43 s
[really-safe-money] + not (a /= Amount.zero)
125.43 s
[really-safe-money] ]
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
125.43 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
125.43 s
[really-safe-money] @@ -60,11 +60,7 @@
125.43 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
125.43 s
[really-safe-money] validate ma@(MultiAmount m) =
125.43 s
[really-safe-money] mconcat
125.43 s
[really-safe-money] - [ genericValidate ma,
125.43 s
[really-safe-money] - decorateMap m $ \_ a ->
125.43 s
[really-safe-money] - declare "The amount is not zero" $
125.43 s
[really-safe-money] - a /= Amount.zero
125.43 s
[really-safe-money] - ]
125.43 s
[really-safe-money] + []
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
125.43 s
[really-safe-money] @@ -60,11 +60,11 @@
125.43 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
125.43 s
[really-safe-money] validate ma@(MultiAmount m) =
125.43 s
[really-safe-money] mconcat
125.43 s
[really-safe-money] - [ genericValidate ma,
125.43 s
[really-safe-money] - decorateMap m $ \_ a ->
125.43 s
[really-safe-money] - declare "The amount is not zero" $
125.43 s
[really-safe-money] - a /= Amount.zero
125.43 s
[really-safe-money] - ]
125.43 s
[really-safe-money] + [ genericValidate ma,
125.43 s
[really-safe-money] + decorateMap m $ \_ a ->
125.43 s
[really-safe-money] + declare "The amount is not zero" $
125.43 s
[really-safe-money] + a /= Amount.zero
125.43 s
[really-safe-money] + ]
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
125.43 s
[really-safe-money]
125.43 s
[really-safe-money] added 21 mutations
126.23 s
Building genvalidity-sydtest-source
126.23 s
[really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.o, dist/build/Money/AmountOf.dyn_o )
126.23 s
[really-safe-money] mutation: instrumenting Money.AmountOf
126.23 s
[really-safe-money] added 0 mutations
126.42 s
[really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.o, dist/build/Money/Account.dyn_o )
126.44 s
[really-safe-money] mutation: instrumenting Money.Account
126.44 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
126.44 s
[really-safe-money] @@ -418,7 +418,7 @@
126.44 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
126.44 s
[really-safe-money] multiply factor account =
126.44 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
126.44 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
126.44 s
[really-safe-money] + f = case (compare factor 1, compare account zero) of
126.44 s
[really-safe-money] (EQ, _) -> const zero
126.44 s
[really-safe-money] (_, EQ) -> const zero
126.44 s
[really-safe-money] (GT, GT) -> Positive
126.44 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
126.44 s
[really-safe-money] @@ -448,7 +448,7 @@
126.44 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
126.44 s
[really-safe-money] DistributedZero -> DistributedZero
126.44 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
126.44 s
[really-safe-money] - if a >= zero
126.44 s
[really-safe-money] + if True
126.44 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.44 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.44 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.44 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
126.44 s
[really-safe-money] @@ -448,7 +448,7 @@
126.44 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
126.44 s
[really-safe-money] DistributedZero -> DistributedZero
126.44 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
126.44 s
[really-safe-money] - if a >= zero
126.44 s
[really-safe-money] + if False
126.44 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.44 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.44 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.44 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
126.44 s
[really-safe-money] @@ -448,7 +448,7 @@
126.44 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
126.44 s
[really-safe-money] DistributedZero -> DistributedZero
126.44 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
126.44 s
[really-safe-money] - if a >= zero
126.44 s
[really-safe-money] + if not (a >= zero)
126.44 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.44 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.44 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.44 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:451:11-76
126.44 s
[really-safe-money] @@ -448,9 +448,9 @@
126.44 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
126.44 s
[really-safe-money] DistributedZero -> DistributedZero
126.44 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
126.44 s
[really-safe-money] - if a >= zero
126.44 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.45 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.45 s
[really-safe-money] + if a >= zero
126.45 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.45 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.45 s
[really-safe-money] if a >= zero
126.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
126.45 s
[really-safe-money] @@ -452,7 +452,7 @@
126.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.45 s
[really-safe-money] - if a >= zero
126.45 s
[really-safe-money] + if True
126.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
126.45 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
126.45 s
[really-safe-money] @@ -452,7 +452,7 @@
126.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.45 s
[really-safe-money] - if a >= zero
126.45 s
[really-safe-money] + if False
126.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
126.45 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
126.45 s
[really-safe-money] @@ -452,7 +452,7 @@
126.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.45 s
[really-safe-money] - if a >= zero
126.45 s
[really-safe-money] + if not (a >= zero)
126.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
126.45 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:455:11-136
126.45 s
[really-safe-money] @@ -452,9 +452,9 @@
126.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
126.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
126.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
126.45 s
[really-safe-money] - if a >= zero
126.45 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
126.45 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
126.45 s
[really-safe-money] + if a >= zero
126.45 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
126.45 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
126.45 s
[really-safe-money] @@ -492,7 +492,7 @@
126.45 s
[really-safe-money] fraction rounding account f =
126.45 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
126.45 s
[really-safe-money] ro =
126.45 s
[really-safe-money] - if f >= 0
126.45 s
[really-safe-money] + if f >= 1
126.45 s
[really-safe-money] then rounding
126.45 s
[really-safe-money] else case rounding of
126.45 s
[really-safe-money] RoundUp -> RoundDown
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
126.45 s
[really-safe-money] @@ -492,7 +492,7 @@
126.45 s
[really-safe-money] fraction rounding account f =
126.45 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
126.45 s
[really-safe-money] ro =
126.45 s
[really-safe-money] - if f >= 0
126.45 s
[really-safe-money] + if True
126.45 s
[really-safe-money] then rounding
126.45 s
[really-safe-money] else case rounding of
126.45 s
[really-safe-money] RoundUp -> RoundDown
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
126.45 s
[really-safe-money] @@ -492,7 +492,7 @@
126.45 s
[really-safe-money] fraction rounding account f =
126.45 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
126.45 s
[really-safe-money] ro =
126.45 s
[really-safe-money] - if f >= 0
126.45 s
[really-safe-money] + if False
126.45 s
[really-safe-money] then rounding
126.45 s
[really-safe-money] else case rounding of
126.45 s
[really-safe-money] RoundUp -> RoundDown
126.45 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
126.45 s
[really-safe-money] @@ -492,7 +492,7 @@
126.45 s
[really-safe-money] fraction rounding account f =
126.45 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
126.45 s
[really-safe-money] ro =
126.45 s
[really-safe-money] - if f >= 0
126.45 s
[really-safe-money] + if not (f >= 0)
126.45 s
[really-safe-money] then rounding
126.45 s
[really-safe-money] else case rounding of
126.45 s
[really-safe-money] RoundUp -> RoundDown
126.45 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:495:9-41
126.45 s
[really-safe-money] @@ -492,12 +492,12 @@
126.45 s
[really-safe-money] fraction rounding account f =
126.45 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
126.45 s
[really-safe-money] ro =
126.45 s
[really-safe-money] - if f >= 0
126.45 s
[really-safe-money] - then rounding
126.45 s
[really-safe-money] - else case rounding of
126.45 s
[really-safe-money] - RoundUp -> RoundDown
126.45 s
[really-safe-money] - RoundDown -> RoundUp
126.45 s
[really-safe-money] - RoundNearest -> RoundNearest
126.45 s
[really-safe-money] + if f >= 0
126.45 s
[really-safe-money] + then rounding
126.45 s
[really-safe-money] + else case rounding of
126.45 s
[really-safe-money] + RoundUp -> RoundDown
126.45 s
[really-safe-money] + RoundDown -> RoundUp
126.45 s
[really-safe-money] + RoundNearest -> RoundNearest
126.45 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
126.45 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
126.45 s
[really-safe-money] in if f >= 0
126.45 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
126.45 s
[really-safe-money] @@ -500,7 +500,7 @@
126.45 s
[really-safe-money] RoundNearest -> RoundNearest
126.45 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
126.45 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
126.45 s
[really-safe-money] - in if f >= 0
126.45 s
[really-safe-money] + in if f >= 1
126.45 s
[really-safe-money] then (ma, r)
126.45 s
[really-safe-money] else (negate <$> ma, -r)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
126.45 s
[really-safe-money] @@ -500,7 +500,7 @@
126.45 s
[really-safe-money] RoundNearest -> RoundNearest
126.45 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
126.45 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
126.45 s
[really-safe-money] - in if f >= 0
126.45 s
[really-safe-money] + in if True
126.45 s
[really-safe-money] then (ma, r)
126.45 s
[really-safe-money] else (negate <$> ma, -r)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
126.45 s
[really-safe-money] @@ -500,7 +500,7 @@
126.45 s
[really-safe-money] RoundNearest -> RoundNearest
126.45 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
126.45 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
126.45 s
[really-safe-money] - in if f >= 0
126.45 s
[really-safe-money] + in if False
126.45 s
[really-safe-money] then (ma, r)
126.45 s
[really-safe-money] else (negate <$> ma, -r)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
126.45 s
[really-safe-money] @@ -500,7 +500,7 @@
126.45 s
[really-safe-money] RoundNearest -> RoundNearest
126.45 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
126.45 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
126.45 s
[really-safe-money] - in if f >= 0
126.45 s
[really-safe-money] + in if not (f >= 0)
126.45 s
[really-safe-money] then (ma, r)
126.45 s
[really-safe-money] else (negate <$> ma, -r)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:503:7-33
126.45 s
[really-safe-money] @@ -500,9 +500,9 @@
126.45 s
[really-safe-money] RoundNearest -> RoundNearest
126.45 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
126.45 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
126.45 s
[really-safe-money] - in if f >= 0
126.45 s
[really-safe-money] - then (ma, r)
126.45 s
[really-safe-money] - else (negate <$> ma, -r)
126.45 s
[really-safe-money] + in if f >= 0
126.45 s
[really-safe-money] + then (ma, r)
126.45 s
[really-safe-money] + else (negate <$> ma, -r)
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
126.45 s
[really-safe-money] --
126.45 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
126.45 s
[really-safe-money] @@ -230,7 +230,7 @@
126.45 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
126.45 s
[really-safe-money] fromRational quantisationFactor r =
126.45 s
[really-safe-money] let r' = Prelude.abs r
126.45 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
126.45 s
[really-safe-money] + f = if r >= 1 then Positive else Negative
126.45 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
126.45 s
[really-safe-money] @@ -230,7 +230,7 @@
126.45 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
126.45 s
[really-safe-money] fromRational quantisationFactor r =
126.45 s
[really-safe-money] let r' = Prelude.abs r
126.45 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
126.45 s
[really-safe-money] + f = if True then Positive else Negative
126.45 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
126.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
126.45 s
[really-safe-money] @@ -230,7 +230,7 @@
126.45 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
126.45 s
[really-safe-money] fromRational quantisationFactor r =
126.45 s
[really-safe-money] let r' = Prelude.abs r
126.45 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
126.45 s
[really-safe-money] + f = if False then Positive else Negative
126.45 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
126.45 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
126.45 s
[really-safe-money] @@ -230,7 +230,7 @@
126.45 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
126.45 s
[really-safe-money] fromRational quantisationFactor r =
126.45 s
[really-safe-money] let r' = Prelude.abs r
126.45 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
126.45 s
[really-safe-money] + f = if not (r >= 0) then Positive else Negative
126.45 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
126.45 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:233:11-48
126.45 s
[really-safe-money] @@ -230,7 +230,7 @@
126.45 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
126.45 s
[really-safe-money] fromRational quantisationFactor r =
126.45 s
[really-safe-money] let r' = Prelude.abs r
126.45 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
126.45 s
[really-safe-money] + f = if r >= 0 then Positive else Negative
126.45 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
126.45 s
[really-safe-money]
126.45 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
126.45 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
126.45 s
[really-safe-money] @@ -194,7 +194,7 @@
126.45 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
126.45 s
[really-safe-money] fromDouble quantisationFactor d =
126.45 s
[really-safe-money] let d' = Prelude.abs d
126.45 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
126.45 s
[really-safe-money] + f = if d >= 1 then Positive else Negative
126.45 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
126.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
126.46 s
[really-safe-money] @@ -194,7 +194,7 @@
126.46 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
126.46 s
[really-safe-money] fromDouble quantisationFactor d =
126.46 s
[really-safe-money] let d' = Prelude.abs d
126.46 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
126.46 s
[really-safe-money] + f = if True then Positive else Negative
126.46 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
126.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
126.46 s
[really-safe-money] @@ -194,7 +194,7 @@
126.46 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
126.46 s
[really-safe-money] fromDouble quantisationFactor d =
126.46 s
[really-safe-money] let d' = Prelude.abs d
126.46 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
126.46 s
[really-safe-money] + f = if False then Positive else Negative
126.46 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
126.46 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
126.46 s
[really-safe-money] @@ -194,7 +194,7 @@
126.46 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
126.46 s
[really-safe-money] fromDouble quantisationFactor d =
126.46 s
[really-safe-money] let d' = Prelude.abs d
126.46 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
126.46 s
[really-safe-money] + f = if not (d >= 0) then Positive else Negative
126.46 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
126.46 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:197:11-48
126.46 s
[really-safe-money] @@ -194,7 +194,7 @@
126.46 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
126.46 s
[really-safe-money] fromDouble quantisationFactor d =
126.46 s
[really-safe-money] let d' = Prelude.abs d
126.46 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
126.46 s
[really-safe-money] + f = if d >= 0 then Positive else Negative
126.46 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
126.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
126.46 s
[really-safe-money] @@ -120,7 +120,7 @@
126.46 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
126.46 s
[really-safe-money] a :: Integer
126.46 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
126.46 s
[really-safe-money] - in if a > maxBoundI
126.46 s
[really-safe-money] + in if True
126.46 s
[really-safe-money] then Nothing
126.46 s
[really-safe-money] else
126.46 s
[really-safe-money] let w :: Word64
126.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
126.46 s
[really-safe-money] @@ -120,7 +120,7 @@
126.46 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
126.46 s
[really-safe-money] a :: Integer
126.46 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
126.46 s
[really-safe-money] - in if a > maxBoundI
126.46 s
[really-safe-money] + in if False
126.46 s
[really-safe-money] then Nothing
126.46 s
[really-safe-money] else
126.46 s
[really-safe-money] let w :: Word64
126.46 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
126.46 s
[really-safe-money] @@ -120,7 +120,7 @@
126.46 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
126.46 s
[really-safe-money] a :: Integer
126.46 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
126.46 s
[really-safe-money] - in if a > maxBoundI
126.46 s
[really-safe-money] + in if not (a > maxBoundI)
126.46 s
[really-safe-money] then Nothing
126.46 s
[really-safe-money] else
126.46 s
[really-safe-money] let w :: Word64
126.46 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
126.46 s
[really-safe-money] @@ -128,7 +128,7 @@
126.46 s
[really-safe-money] amount :: Amount
126.46 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] in Just $
126.46 s
[really-safe-money] - if i >= 0
126.46 s
[really-safe-money] + if i >= 1
126.46 s
[really-safe-money] then Positive amount
126.46 s
[really-safe-money] else Negative amount
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
126.46 s
[really-safe-money] @@ -128,7 +128,7 @@
126.46 s
[really-safe-money] amount :: Amount
126.46 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] in Just $
126.46 s
[really-safe-money] - if i >= 0
126.46 s
[really-safe-money] + if True
126.46 s
[really-safe-money] then Positive amount
126.46 s
[really-safe-money] else Negative amount
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
126.46 s
[really-safe-money] @@ -128,7 +128,7 @@
126.46 s
[really-safe-money] amount :: Amount
126.46 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] in Just $
126.46 s
[really-safe-money] - if i >= 0
126.46 s
[really-safe-money] + if False
126.46 s
[really-safe-money] then Positive amount
126.46 s
[really-safe-money] else Negative amount
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
126.46 s
[really-safe-money] @@ -128,7 +128,7 @@
126.46 s
[really-safe-money] amount :: Amount
126.46 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] in Just $
126.46 s
[really-safe-money] - if i >= 0
126.46 s
[really-safe-money] + if not (i >= 0)
126.46 s
[really-safe-money] then Positive amount
126.46 s
[really-safe-money] else Negative amount
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:131:17-39
126.46 s
[really-safe-money] @@ -128,9 +128,9 @@
126.46 s
[really-safe-money] amount :: Amount
126.46 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] in Just $
126.46 s
[really-safe-money] - if i >= 0
126.46 s
[really-safe-money] - then Positive amount
126.46 s
[really-safe-money] - else Negative amount
126.46 s
[really-safe-money] + if i >= 0
126.46 s
[really-safe-money] + then Positive amount
126.46 s
[really-safe-money] + else Negative amount
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount into a positive account
126.46 s
[really-safe-money] --
126.46 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:123:7-39
126.46 s
[really-safe-money] @@ -120,17 +120,17 @@
126.46 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
126.46 s
[really-safe-money] a :: Integer
126.46 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
126.46 s
[really-safe-money] - in if a > maxBoundI
126.46 s
[really-safe-money] - then Nothing
126.46 s
[really-safe-money] - else
126.46 s
[really-safe-money] - let w :: Word64
126.46 s
[really-safe-money] - w = (fromIntegral :: Integer -> Word64) a
126.46 s
[really-safe-money] - amount :: Amount
126.46 s
[really-safe-money] - amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] - in Just $
126.46 s
[really-safe-money] - if i >= 0
126.46 s
[really-safe-money] - then Positive amount
126.46 s
[really-safe-money] - else Negative amount
126.46 s
[really-safe-money] + in if a > maxBoundI
126.46 s
[really-safe-money] + then Nothing
126.46 s
[really-safe-money] + else
126.46 s
[really-safe-money] + let w :: Word64
126.46 s
[really-safe-money] + w = (fromIntegral :: Integer -> Word64) a
126.46 s
[really-safe-money] + amount :: Amount
126.46 s
[really-safe-money] + amount = Amount.fromMinimalQuantisations w
126.46 s
[really-safe-money] + in Just $
126.46 s
[really-safe-money] + if i >= 0
126.46 s
[really-safe-money] + then Positive amount
126.46 s
[really-safe-money] + else Negative amount
126.46 s
[really-safe-money]
126.46 s
[really-safe-money] -- | Turn an amount into a positive account
126.46 s
[really-safe-money] --
126.46 s
[really-safe-money] added 38 mutations
126.59 s
[genvalidity-sydtest-source] Phase: setupCompilerEnvironmentPhase
126.59 s
[genvalidity-sydtest-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
127.13 s
[genvalidity-sydtest-source] Phase: unpackPhase
127.13 s
[genvalidity-sydtest-source] unpacking source archive /nix/store/dqdpwym3w17fcyylxh144v7wvc1c621z-genvalidity-sydtest
127.15 s
[genvalidity-sydtest-source] source root is genvalidity-sydtest
127.16 s
[really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.o, dist/build/Money/MultiAccount.dyn_o )
127.16 s
[genvalidity-sydtest-source] Phase: patchPhase
127.17 s
[genvalidity-sydtest-source] Phase: compileBuildDriverPhase
127.17 s
[really-safe-money] mutation: instrumenting Money.MultiAccount
127.18 s
[genvalidity-sydtest-source] setupCompileFlags: -package-db=/build/tmp.PlWPx7LOCP/setup-package.conf.d -threaded
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
127.18 s
[really-safe-money] @@ -131,7 +131,7 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.subtract a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] + if True
127.18 s
[really-safe-money] then M.delete currency m
127.18 s
[really-safe-money] else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
127.18 s
[really-safe-money] @@ -131,7 +131,7 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.subtract a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] + if False
127.18 s
[really-safe-money] then M.delete currency m
127.18 s
[really-safe-money] else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
127.18 s
[really-safe-money] @@ -131,7 +131,7 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.subtract a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] + if not (r == Account.zero)
127.18 s
[really-safe-money] then M.delete currency m
127.18 s
[really-safe-money] else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
127.18 s
[really-safe-money] @@ -131,9 +131,9 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.subtract a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] - then M.delete currency m
127.18 s
[really-safe-money] - else M.insert currency r m
127.18 s
[really-safe-money] + if r == Account.zero
127.18 s
[really-safe-money] + then M.delete currency m
127.18 s
[really-safe-money] + else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] -- | Try to convert every account to one currency.
127.18 s
[really-safe-money] --
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
127.18 s
[really-safe-money] @@ -117,7 +117,7 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.add a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] + if True
127.18 s
[really-safe-money] then M.delete currency m
127.18 s
[really-safe-money] else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
127.18 s
[really-safe-money] @@ -117,7 +117,7 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.add a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] + if False
127.18 s
[really-safe-money] then M.delete currency m
127.18 s
[really-safe-money] else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
127.18 s
[really-safe-money] @@ -117,7 +117,7 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.add a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] + if not (r == Account.zero)
127.18 s
[really-safe-money] then M.delete currency m
127.18 s
[really-safe-money] else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
127.18 s
[really-safe-money] @@ -117,9 +117,9 @@
127.18 s
[really-safe-money] Just a -> do
127.18 s
[really-safe-money] r <- Account.add a account
127.18 s
[really-safe-money] Just $
127.18 s
[really-safe-money] - if r == Account.zero
127.18 s
[really-safe-money] - then M.delete currency m
127.18 s
[really-safe-money] - else M.insert currency r m
127.18 s
[really-safe-money] + if r == Account.zero
127.18 s
[really-safe-money] + then M.delete currency m
127.18 s
[really-safe-money] + else M.insert currency r m
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
127.18 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
127.18 s
[really-safe-money] @@ -75,7 +75,7 @@
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
127.18 s
[really-safe-money] fromAccount currency amount =
127.18 s
[really-safe-money] - if amount == Account.zero
127.18 s
[really-safe-money] + if True
127.18 s
[really-safe-money] then zero
127.18 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
127.18 s
[really-safe-money] @@ -75,7 +75,7 @@
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
127.18 s
[really-safe-money] fromAccount currency amount =
127.18 s
[really-safe-money] - if amount == Account.zero
127.18 s
[really-safe-money] + if False
127.18 s
[really-safe-money] then zero
127.18 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
127.18 s
[really-safe-money] @@ -75,7 +75,7 @@
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
127.18 s
[really-safe-money] fromAccount currency amount =
127.18 s
[really-safe-money] - if amount == Account.zero
127.18 s
[really-safe-money] + if not (amount == Account.zero)
127.18 s
[really-safe-money] then zero
127.18 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
127.18 s
[really-safe-money] @@ -75,9 +75,9 @@
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
127.18 s
[really-safe-money] fromAccount currency amount =
127.18 s
[really-safe-money] - if amount == Account.zero
127.18 s
[really-safe-money] - then zero
127.18 s
[really-safe-money] - else MultiAccount $ M.singleton currency amount
127.18 s
[really-safe-money] + if amount == Account.zero
127.18 s
[really-safe-money] + then zero
127.18 s
[really-safe-money] + else MultiAccount $ M.singleton currency amount
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] -- | No money of any currency
127.18 s
[really-safe-money] zero :: MultiAccount currency
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
127.18 s
[really-safe-money] @@ -66,7 +66,7 @@
127.18 s
[really-safe-money] [ genericValidate ma,
127.18 s
[really-safe-money] decorateMap m $ \_ a ->
127.18 s
[really-safe-money] declare "The account is not zero" $
127.18 s
[really-safe-money] - a /= Account.zero
127.18 s
[really-safe-money] + True
127.18 s
[really-safe-money] ]
127.18 s
[really-safe-money]
127.18 s
[really-safe-money] -- TODO no empty currencies
127.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
127.18 s
[really-safe-money] @@ -66,7 +66,7 @@
127.18 s
[really-safe-money] [ genericValidate ma,
127.18 s
[really-safe-money] decorateMap m $ \_ a ->
127.18 s
[really-safe-money] declare "The account is not zero" $
127.18 s
[really-safe-money] - a /= Account.zero
127.18 s
[really-safe-money] + False
127.19 s
[really-safe-money] ]
127.19 s
[really-safe-money]
127.19 s
[really-safe-money] -- TODO no empty currencies
127.19 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
127.19 s
[really-safe-money] @@ -66,7 +66,7 @@
127.19 s
[really-safe-money] [ genericValidate ma,
127.19 s
[really-safe-money] decorateMap m $ \_ a ->
127.19 s
[really-safe-money] declare "The account is not zero" $
127.19 s
[really-safe-money] - a /= Account.zero
127.19 s
[really-safe-money] + not (a /= Account.zero)
127.19 s
[really-safe-money] ]
127.19 s
[really-safe-money]
127.19 s
[really-safe-money] -- TODO no empty currencies
127.19 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
127.19 s
[really-safe-money] @@ -63,11 +63,7 @@
127.19 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
127.19 s
[really-safe-money] validate ma@(MultiAccount m) =
127.19 s
[really-safe-money] mconcat
127.19 s
[really-safe-money] - [ genericValidate ma,
127.19 s
[really-safe-money] - decorateMap m $ \_ a ->
127.19 s
[really-safe-money] - declare "The account is not zero" $
127.19 s
[really-safe-money] - a /= Account.zero
127.19 s
[really-safe-money] - ]
127.19 s
[really-safe-money] + []
127.19 s
[really-safe-money]
127.19 s
[really-safe-money] -- TODO no empty currencies
127.19 s
[really-safe-money]
127.19 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
127.19 s
[really-safe-money] @@ -63,11 +63,11 @@
127.19 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
127.19 s
[really-safe-money] validate ma@(MultiAccount m) =
127.19 s
[really-safe-money] mconcat
127.19 s
[really-safe-money] - [ genericValidate ma,
127.19 s
[really-safe-money] - decorateMap m $ \_ a ->
127.19 s
[really-safe-money] - declare "The account is not zero" $
127.19 s
[really-safe-money] - a /= Account.zero
127.19 s
[really-safe-money] - ]
127.19 s
[really-safe-money] + [ genericValidate ma,
127.19 s
[really-safe-money] + decorateMap m $ \_ a ->
127.19 s
[really-safe-money] + declare "The account is not zero" $
127.19 s
[really-safe-money] + a /= Account.zero
127.19 s
[really-safe-money] + ]
127.19 s
[really-safe-money]
127.19 s
[really-safe-money] -- TODO no empty currencies
127.19 s
[really-safe-money]
127.19 s
[really-safe-money] added 17 mutations
127.25 s
[genvalidity-sydtest-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.PlWPx7LOCP/Main.o )
127.31 s
[genvalidity-sydtest-source] [2 of 2] Linking Setup
127.56 s
[really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.o, dist/build/Money/AccountOf.dyn_o )
127.57 s
[really-safe-money] mutation: instrumenting Money.AccountOf
127.57 s
[really-safe-money] added 0 mutations
127.73 s
[really-safe-money] [12 of 12] Compiling Paths_really_safe_money ( dist/build/autogen/Paths_really_safe_money.hs, dist/build/Paths_really_safe_money.o, dist/build/Paths_really_safe_money.dyn_o )
128.06 s
[really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.p_o )
128.36 s
[really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
128.56 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
128.56 s
[really-safe-money] @@ -393,5 +393,5 @@
128.56 s
[really-safe-money] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
128.56 s
[really-safe-money] where
128.56 s
[really-safe-money] go = \case
128.56 s
[really-safe-money] - Nothing -> Just True
128.56 s
[really-safe-money] + Nothing -> Just False
128.56 s
[really-safe-money] s -> s
128.56 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
128.56 s
[really-safe-money] @@ -365,7 +365,7 @@
128.56 s
[really-safe-money] setMinimumDigits wantedDigits dl =
128.56 s
[really-safe-money] let currentDigits :: Word8
128.56 s
[really-safe-money] currentDigits = digits dl
128.56 s
[really-safe-money] - in if wantedDigits <= currentDigits
128.57 s
[really-safe-money] + in if True
128.57 s
[really-safe-money] then dl
128.57 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
128.57 s
[really-safe-money] where
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
128.57 s
[really-safe-money] @@ -365,7 +365,7 @@
128.57 s
[really-safe-money] setMinimumDigits wantedDigits dl =
128.57 s
[really-safe-money] let currentDigits :: Word8
128.57 s
[really-safe-money] currentDigits = digits dl
128.57 s
[really-safe-money] - in if wantedDigits <= currentDigits
128.57 s
[really-safe-money] + in if False
128.57 s
[really-safe-money] then dl
128.57 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
128.57 s
[really-safe-money] where
128.57 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
128.57 s
[really-safe-money] @@ -365,7 +365,7 @@
128.57 s
[really-safe-money] setMinimumDigits wantedDigits dl =
128.57 s
[really-safe-money] let currentDigits :: Word8
128.57 s
[really-safe-money] currentDigits = digits dl
128.57 s
[really-safe-money] - in if wantedDigits <= currentDigits
128.57 s
[really-safe-money] + in if not (wantedDigits <= currentDigits)
128.57 s
[really-safe-money] then dl
128.57 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
128.57 s
[really-safe-money] where
128.57 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
128.57 s
[really-safe-money] @@ -365,9 +365,9 @@
128.57 s
[really-safe-money] setMinimumDigits wantedDigits dl =
128.57 s
[really-safe-money] let currentDigits :: Word8
128.57 s
[really-safe-money] currentDigits = digits dl
128.57 s
[really-safe-money] - in if wantedDigits <= currentDigits
128.57 s
[really-safe-money] - then dl
128.57 s
[really-safe-money] - else increaseDigits (wantedDigits - currentDigits) dl
128.57 s
[really-safe-money] + in if wantedDigits <= currentDigits
128.57 s
[really-safe-money] + then dl
128.57 s
[really-safe-money] + else increaseDigits (wantedDigits - currentDigits) dl
128.57 s
[really-safe-money] where
128.57 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
128.57 s
[really-safe-money] increaseDigits 0 = id
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
128.57 s
[really-safe-money] @@ -372,7 +372,7 @@
128.57 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
128.57 s
[really-safe-money] increaseDigits 0 = id
128.57 s
[really-safe-money] increaseDigits w = \case
128.57 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
128.57 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Ensures that a positive literal has no sign
128.57 s
[really-safe-money] --
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
128.57 s
[really-safe-money] @@ -372,7 +372,7 @@
128.57 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
128.57 s
[really-safe-money] increaseDigits 0 = id
128.57 s
[really-safe-money] increaseDigits w = \case
128.57 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
128.57 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Ensures that a positive literal has no sign
128.57 s
[really-safe-money] --
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
128.57 s
[really-safe-money] @@ -334,7 +334,7 @@
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money] +numSign a = if a >= 1 then Nothing else Just False
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
128.57 s
[really-safe-money] signSignum = \case
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
128.57 s
[really-safe-money] @@ -334,7 +334,7 @@
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money] +numSign a = if True then Nothing else Just False
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
128.57 s
[really-safe-money] signSignum = \case
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
128.57 s
[really-safe-money] @@ -334,7 +334,7 @@
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money] +numSign a = if False then Nothing else Just False
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
128.57 s
[really-safe-money] signSignum = \case
128.57 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
128.57 s
[really-safe-money] @@ -334,7 +334,7 @@
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money] +numSign a = if not (a >= 0) then Nothing else Just False
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
128.57 s
[really-safe-money] signSignum = \case
128.57 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
128.57 s
[really-safe-money] @@ -334,7 +334,7 @@
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just True
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
128.57 s
[really-safe-money] signSignum = \case
128.57 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
128.57 s
[really-safe-money] @@ -334,7 +334,7 @@
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just False
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
128.57 s
[really-safe-money] signSignum = \case
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
128.57 s
[really-safe-money] @@ -329,7 +329,7 @@
128.57 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
128.57 s
[really-safe-money] toInt dl = do
128.57 s
[really-safe-money] n <- toInteger dl
128.57 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
128.57 s
[really-safe-money] + guard $ True
128.57 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
128.57 s
[really-safe-money] @@ -329,7 +329,7 @@
128.57 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
128.57 s
[really-safe-money] toInt dl = do
128.57 s
[really-safe-money] n <- toInteger dl
128.57 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
128.57 s
[really-safe-money] + guard $ False
128.57 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
128.57 s
[really-safe-money] @@ -329,7 +329,7 @@
128.57 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
128.57 s
[really-safe-money] toInt dl = do
128.57 s
[really-safe-money] n <- toInteger dl
128.57 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
128.57 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Int))
128.57 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
128.57 s
[really-safe-money] @@ -330,7 +330,7 @@
128.57 s
[really-safe-money] toInt dl = do
128.57 s
[really-safe-money] n <- toInteger dl
128.57 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
128.57 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
128.57 s
[really-safe-money] + guard $ True
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
128.57 s
[really-safe-money] @@ -330,7 +330,7 @@
128.57 s
[really-safe-money] toInt dl = do
128.57 s
[really-safe-money] n <- toInteger dl
128.57 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
128.57 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
128.57 s
[really-safe-money] + guard $ False
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
128.57 s
[really-safe-money] @@ -330,7 +330,7 @@
128.57 s
[really-safe-money] toInt dl = do
128.57 s
[really-safe-money] n <- toInteger dl
128.57 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
128.57 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
128.57 s
[really-safe-money] + guard $ not (n >= fromIntegral (minBound :: Int))
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
128.57 s
[really-safe-money] @@ -312,7 +312,7 @@
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from an 'Integer'
128.57 s
[really-safe-money] fromInteger :: Integer -> DecimalLiteral
128.57 s
[really-safe-money] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
128.57 s
[really-safe-money] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into an 'Integer'
128.57 s
[really-safe-money] toInteger :: DecimalLiteral -> Maybe Integer
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
128.57 s
[really-safe-money] @@ -301,7 +301,7 @@
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
128.57 s
[really-safe-money] fromNatural :: Natural -> DecimalLiteral
128.57 s
[really-safe-money] -fromNatural n = DecimalLiteral Nothing n 0
128.57 s
[really-safe-money] +fromNatural n = DecimalLiteral Nothing n 1
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Natural'
128.57 s
[really-safe-money] toNatural :: DecimalLiteral -> Maybe Natural
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
128.57 s
[really-safe-money] @@ -296,7 +296,7 @@
128.57 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
128.57 s
[really-safe-money] toWord dl = do
128.57 s
[really-safe-money] n <- toNatural dl
128.57 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
128.57 s
[really-safe-money] + guard $ True
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
128.57 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
128.57 s
[really-safe-money] @@ -296,7 +296,7 @@
128.57 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
128.57 s
[really-safe-money] toWord dl = do
128.57 s
[really-safe-money] n <- toNatural dl
128.57 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
128.57 s
[really-safe-money] + guard $ False
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
128.57 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
128.57 s
[really-safe-money] @@ -296,7 +296,7 @@
128.57 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
128.57 s
[really-safe-money] toWord dl = do
128.57 s
[really-safe-money] n <- toNatural dl
128.57 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
128.57 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Word))
128.57 s
[really-safe-money] pure $ fromIntegral n
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
128.57 s
[really-safe-money] @@ -286,7 +286,7 @@
128.57 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
128.57 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
128.57 s
[really-safe-money] Just False -> Nothing
128.57 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
128.57 s
[really-safe-money] + _ -> Just $ fromIntegral m / (0 ^ e)
128.57 s
[really-safe-money]
128.57 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
128.57 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
128.57 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
128.57 s
[really-safe-money] @@ -286,7 +286,7 @@
128.57 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
128.58 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
128.58 s
[really-safe-money] Just False -> Nothing
128.58 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
128.58 s
[really-safe-money] + _ -> Just $ fromIntegral m / (1 ^ e)
128.58 s
[really-safe-money]
128.58 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
128.58 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
128.58 s
[really-safe-money] @@ -286,7 +286,7 @@
128.58 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
128.58 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
128.58 s
[really-safe-money] Just False -> Nothing
128.58 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
128.58 s
[really-safe-money] + _ -> Just $ fromIntegral m / (-10 ^ e)
128.58 s
[really-safe-money]
128.58 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
128.58 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
128.58 s
[really-safe-money] @@ -233,7 +233,7 @@
128.58 s
[really-safe-money] -- >>> fromRatio (1 % 3)
128.58 s
[really-safe-money] -- Nothing
128.58 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
128.58 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
128.58 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 0
128.58 s
[really-safe-money] where
128.58 s
[really-safe-money] fromRationalRepetendLimited ::
128.58 s
[really-safe-money] -- limit
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
128.58 s
[really-safe-money] @@ -233,7 +233,7 @@
128.58 s
[really-safe-money] -- >>> fromRatio (1 % 3)
128.58 s
[really-safe-money] -- Nothing
128.58 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
128.58 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
128.58 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 1
128.58 s
[really-safe-money] where
128.58 s
[really-safe-money] fromRationalRepetendLimited ::
128.58 s
[really-safe-money] -- limit
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
128.58 s
[really-safe-money] @@ -233,7 +233,7 @@
128.58 s
[really-safe-money] -- >>> fromRatio (1 % 3)
128.58 s
[really-safe-money] -- Nothing
128.58 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
128.58 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
128.58 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited -256
128.58 s
[really-safe-money] where
128.58 s
[really-safe-money] fromRationalRepetendLimited ::
128.58 s
[really-safe-money] -- limit
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
128.58 s
[really-safe-money] @@ -241,7 +241,7 @@
128.58 s
[really-safe-money] Ratio Natural ->
128.58 s
[really-safe-money] Maybe DecimalLiteral
128.58 s
[really-safe-money] fromRationalRepetendLimited l rational
128.58 s
[really-safe-money] - | d == 0 = Nothing
128.58 s
[really-safe-money] + | d == 1 = Nothing
128.58 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
128.58 s
[really-safe-money] where
128.58 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
128.58 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
128.58 s
[really-safe-money] @@ -241,7 +241,7 @@
128.58 s
[really-safe-money] Ratio Natural ->
128.58 s
[really-safe-money] Maybe DecimalLiteral
128.58 s
[really-safe-money] fromRationalRepetendLimited l rational
128.58 s
[really-safe-money] - | d == 0 = Nothing
128.58 s
[really-safe-money] + | True = Nothing
128.58 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
128.58 s
[really-safe-money] where
128.58 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
128.58 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
128.58 s
[really-safe-money] @@ -241,7 +241,7 @@
128.58 s
[really-safe-money] Ratio Natural ->
128.58 s
[really-safe-money] Maybe DecimalLiteral
128.58 s
[really-safe-money] fromRationalRepetendLimited l rational
128.58 s
[really-safe-money] - | d == 0 = Nothing
128.58 s
[really-safe-money] + | not (d == 0) = Nothing
128.58 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
128.58 s
[really-safe-money] where
128.58 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
128.58 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
128.58 s
[really-safe-money] @@ -261,7 +261,7 @@
128.58 s
[really-safe-money] Just (c, e)
128.58 s
[really-safe-money] longDivWithLimit !c !e ns !n
128.58 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
128.58 s
[really-safe-money] - | S.member n ns = Nothing
128.58 s
[really-safe-money] + | True = Nothing
128.58 s
[really-safe-money] -- Over the limit, stop trying
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
128.58 s
[really-safe-money] @@ -261,7 +261,7 @@
128.58 s
[really-safe-money] Just (c, e)
128.58 s
[really-safe-money] longDivWithLimit !c !e ns !n
128.58 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
128.58 s
[really-safe-money] - | S.member n ns = Nothing
128.58 s
[really-safe-money] + | not (S.member n ns) = Nothing
128.58 s
[really-safe-money] -- Over the limit, stop trying
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
128.58 s
[really-safe-money] @@ -263,7 +263,7 @@
128.58 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
128.58 s
[really-safe-money] | S.member n ns = Nothing
128.58 s
[really-safe-money] -- Over the limit, stop trying
128.58 s
[really-safe-money] - | e >= l = Nothing
128.58 s
[really-safe-money] + | True = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
128.58 s
[really-safe-money] @@ -263,7 +263,7 @@
128.58 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
128.58 s
[really-safe-money] | S.member n ns = Nothing
128.58 s
[really-safe-money] -- Over the limit, stop trying
128.58 s
[really-safe-money] - | e >= l = Nothing
128.58 s
[really-safe-money] + | not (e >= l) = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
128.58 s
[really-safe-money] @@ -264,7 +264,7 @@
128.58 s
[really-safe-money] | S.member n ns = Nothing
128.58 s
[really-safe-money] -- Over the limit, stop trying
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] - | n < d =
128.58 s
[really-safe-money] + | True =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] | otherwise =
128.58 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
128.58 s
[really-safe-money] @@ -264,7 +264,7 @@
128.58 s
[really-safe-money] | S.member n ns = Nothing
128.58 s
[really-safe-money] -- Over the limit, stop trying
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] - | n < d =
128.58 s
[really-safe-money] + | not (n < d) =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] | otherwise =
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
128.58 s
[really-safe-money] @@ -266,7 +266,7 @@
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] | otherwise =
128.58 s
[really-safe-money] let (q, r') = n `quotRem` d
128.58 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
128.58 s
[really-safe-money] @@ -266,7 +266,7 @@
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] | otherwise =
128.58 s
[really-safe-money] let (q, r') = n `quotRem` d
128.58 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
128.58 s
[really-safe-money] @@ -266,7 +266,7 @@
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
128.58 s
[really-safe-money] | otherwise =
128.58 s
[really-safe-money] let (q, r') = n `quotRem` d
128.58 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
128.58 s
[really-safe-money] @@ -266,7 +266,7 @@
128.58 s
[really-safe-money] | e >= l = Nothing
128.58 s
[really-safe-money] | n < d =
128.58 s
[really-safe-money] let !ns' = S.insert n ns
128.58 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
128.58 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
128.58 s
[really-safe-money] | otherwise =
128.58 s
[really-safe-money] let (q, r') = n `quotRem` d
128.58 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
128.58 s
[really-safe-money] @@ -249,7 +249,7 @@
128.58 s
[really-safe-money] num = numerator rational
128.58 s
[really-safe-money]
128.58 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
128.58 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
128.58 s
[really-safe-money] + longDiv = longDivWithLimit 1 0 S.empty
128.58 s
[really-safe-money]
128.58 s
[really-safe-money] longDivWithLimit ::
128.58 s
[really-safe-money] Natural ->
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
128.58 s
[really-safe-money] @@ -249,7 +249,7 @@
128.58 s
[really-safe-money] num = numerator rational
128.58 s
[really-safe-money]
128.58 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
128.58 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
128.58 s
[really-safe-money] + longDiv = longDivWithLimit 0 1 S.empty
128.58 s
[really-safe-money]
128.58 s
[really-safe-money] longDivWithLimit ::
128.58 s
[really-safe-money] Natural ->
128.58 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
128.58 s
[really-safe-money] @@ -220,7 +220,7 @@
128.58 s
[really-safe-money] -- (-3) % 10
128.58 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
128.58 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
128.58 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
128.58 s
[really-safe-money] + signSignum mSign (fromIntegral m / (0 ^ e))
128.58 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
128.59 s
[really-safe-money] --
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
128.59 s
[really-safe-money] @@ -220,7 +220,7 @@
128.59 s
[really-safe-money] -- (-3) % 10
128.59 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
128.59 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
128.59 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
128.59 s
[really-safe-money] + signSignum mSign (fromIntegral m / (1 ^ e))
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
128.59 s
[really-safe-money] --
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
128.59 s
[really-safe-money] @@ -220,7 +220,7 @@
128.59 s
[really-safe-money] -- (-3) % 10
128.59 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
128.59 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
128.59 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
128.59 s
[really-safe-money] + signSignum mSign (fromIntegral m / (-10 ^ e))
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
128.59 s
[really-safe-money] --
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
128.59 s
[really-safe-money] @@ -205,7 +205,7 @@
128.59 s
[really-safe-money] -- Nothing
128.59 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
128.59 s
[really-safe-money] fromRational (n :% d)
128.59 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
128.59 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
128.59 s
[really-safe-money] @@ -205,7 +205,7 @@
128.59 s
[really-safe-money] -- Nothing
128.59 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
128.59 s
[really-safe-money] fromRational (n :% d)
128.59 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
128.59 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
128.59 s
[really-safe-money] @@ -205,7 +205,7 @@
128.59 s
[really-safe-money] -- Nothing
128.59 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
128.59 s
[really-safe-money] fromRational (n :% d)
128.59 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
128.59 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
128.59 s
[really-safe-money] @@ -205,7 +205,7 @@
128.59 s
[really-safe-money] -- Nothing
128.59 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
128.59 s
[really-safe-money] fromRational (n :% d)
128.59 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
128.59 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
128.59 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
128.59 s
[really-safe-money] @@ -183,7 +183,7 @@
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
128.59 s
[really-safe-money] go :: Word8 -> String -> String
128.59 s
[really-safe-money] - go 0 [] = ['.', '0']
128.59 s
[really-safe-money] + go 0 [] = []
128.59 s
[really-safe-money] go 0 s = '.' : s
128.59 s
[really-safe-money] go e [] = '0' : go (pred e) []
128.59 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
128.59 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
128.59 s
[really-safe-money] @@ -183,7 +183,7 @@
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
128.59 s
[really-safe-money] go :: Word8 -> String -> String
128.59 s
[really-safe-money] - go 0 [] = ['.', '0']
128.59 s
[really-safe-money] + go 0 [] = ['.', '0']
128.59 s
[really-safe-money] go 0 s = '.' : s
128.59 s
[really-safe-money] go e [] = '0' : go (pred e) []
128.59 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
128.59 s
[really-safe-money] @@ -142,7 +142,7 @@
128.59 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
128.59 s
[really-safe-money] parseDigits f z = do
128.59 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
128.59 s
[really-safe-money] - let digit = Char.ord c - 48
128.59 s
[really-safe-money] + let digit = Char.ord c - 0
128.59 s
[really-safe-money] case f z digit of
128.59 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
128.59 s
[really-safe-money] Just a -> ReadP.look >>= go a
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
128.59 s
[really-safe-money] @@ -142,7 +142,7 @@
128.59 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
128.59 s
[really-safe-money] parseDigits f z = do
128.59 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
128.59 s
[really-safe-money] - let digit = Char.ord c - 48
128.59 s
[really-safe-money] + let digit = Char.ord c - 1
128.59 s
[really-safe-money] case f z digit of
128.59 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
128.59 s
[really-safe-money] Just a -> ReadP.look >>= go a
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
128.59 s
[really-safe-money] @@ -142,7 +142,7 @@
128.59 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
128.59 s
[really-safe-money] parseDigits f z = do
128.59 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
128.59 s
[really-safe-money] - let digit = Char.ord c - 48
128.59 s
[really-safe-money] + let digit = Char.ord c - -48
128.59 s
[really-safe-money] case f z digit of
128.59 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
128.59 s
[really-safe-money] Just a -> ReadP.look >>= go a
128.59 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
128.59 s
[really-safe-money] @@ -149,7 +149,7 @@
128.59 s
[really-safe-money] where
128.59 s
[really-safe-money] go !a [] = return a
128.59 s
[really-safe-money] go !a (c : cs)
128.59 s
[really-safe-money] - | Char.isDigit c = do
128.59 s
[really-safe-money] + | True = do
128.59 s
[really-safe-money] _ <- ReadP.get
128.59 s
[really-safe-money] let digit = Char.ord c - 48
128.59 s
[really-safe-money] case f a digit of
128.59 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
128.59 s
[really-safe-money] @@ -149,7 +149,7 @@
128.59 s
[really-safe-money] where
128.59 s
[really-safe-money] go !a [] = return a
128.59 s
[really-safe-money] go !a (c : cs)
128.59 s
[really-safe-money] - | Char.isDigit c = do
128.59 s
[really-safe-money] + | not (Char.isDigit c) = do
128.59 s
[really-safe-money] _ <- ReadP.get
128.59 s
[really-safe-money] let digit = Char.ord c - 48
128.59 s
[really-safe-money] case f a digit of
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
128.59 s
[really-safe-money] @@ -151,7 +151,7 @@
128.59 s
[really-safe-money] go !a (c : cs)
128.59 s
[really-safe-money] | Char.isDigit c = do
128.59 s
[really-safe-money] _ <- ReadP.get
128.59 s
[really-safe-money] - let digit = Char.ord c - 48
128.59 s
[really-safe-money] + let digit = Char.ord c - 0
128.59 s
[really-safe-money] case f a digit of
128.59 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
128.59 s
[really-safe-money] Just a' -> go a' cs
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
128.59 s
[really-safe-money] @@ -151,7 +151,7 @@
128.59 s
[really-safe-money] go !a (c : cs)
128.59 s
[really-safe-money] | Char.isDigit c = do
128.59 s
[really-safe-money] _ <- ReadP.get
128.59 s
[really-safe-money] - let digit = Char.ord c - 48
128.59 s
[really-safe-money] + let digit = Char.ord c - 1
128.59 s
[really-safe-money] case f a digit of
128.59 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
128.59 s
[really-safe-money] Just a' -> go a' cs
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
128.59 s
[really-safe-money] @@ -151,7 +151,7 @@
128.59 s
[really-safe-money] go !a (c : cs)
128.59 s
[really-safe-money] | Char.isDigit c = do
128.59 s
[really-safe-money] _ <- ReadP.get
128.59 s
[really-safe-money] - let digit = Char.ord c - 48
128.59 s
[really-safe-money] + let digit = Char.ord c - -48
128.59 s
[really-safe-money] case f a digit of
128.59 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
128.59 s
[really-safe-money] Just a' -> go a' cs
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
128.59 s
[really-safe-money] @@ -136,7 +136,7 @@
128.59 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
128.59 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
128.59 s
[really-safe-money] +step a digit = Just $ a * 0 + fromIntegral digit
128.59 s
[really-safe-money] {-# INLINE step #-}
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
128.59 s
[really-safe-money] @@ -136,7 +136,7 @@
128.59 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
128.59 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
128.59 s
[really-safe-money] +step a digit = Just $ a * 1 + fromIntegral digit
128.59 s
[really-safe-money] {-# INLINE step #-}
128.59 s
[really-safe-money]
128.59 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
128.59 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
128.60 s
[really-safe-money] @@ -133,7 +133,7 @@
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
128.60 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
128.60 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
128.60 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
128.60 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
128.60 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
128.60 s
[really-safe-money] @@ -133,7 +133,7 @@
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
128.60 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
128.60 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
128.60 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
128.60 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = True || c == '+'
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = False || c == '+'
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = not (c == '-') || c == '+'
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = c == '-' || True
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = c == '-' || False
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = c == '-' || not (c == '+')
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = True
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = False
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
128.60 s
[really-safe-money] @@ -116,7 +116,7 @@
128.60 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
128.60 s
[really-safe-money] decimalLiteralP = do
128.60 s
[really-safe-money] let isSignChar :: Char -> Bool
128.60 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
128.60 s
[really-safe-money] + isSignChar c = not (c == '-' || c == '+')
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
128.60 s
[really-safe-money] @@ -120,7 +120,7 @@
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] - pure $ Just $ signChar == '+'
128.60 s
[really-safe-money] + pure $ Just $ True
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] units <- parseDigits step 0
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
128.60 s
[really-safe-money] @@ -120,7 +120,7 @@
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] - pure $ Just $ signChar == '+'
128.60 s
[really-safe-money] + pure $ Just $ False
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] units <- parseDigits step 0
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
128.60 s
[really-safe-money] @@ -120,7 +120,7 @@
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] - pure $ Just $ signChar == '+'
128.60 s
[really-safe-money] + pure $ Just $ not (signChar == '+')
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] units <- parseDigits step 0
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
128.60 s
[really-safe-money] @@ -122,7 +122,7 @@
128.60 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
128.60 s
[really-safe-money] pure $ Just $ signChar == '+'
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] - units <- parseDigits step 0
128.60 s
[really-safe-money] + units <- parseDigits step 1
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
128.60 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
128.60 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
128.60 s
[really-safe-money] @@ -124,7 +124,7 @@
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] units <- parseDigits step 0
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] - ReadP.option (DecimalLiteral mSign units 0) $ do
128.60 s
[really-safe-money] + ReadP.option (DecimalLiteral mSign units 1) $ do
128.60 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] (m, e) <- parseDigits stepFraction (units, 0)
128.60 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
128.60 s
[really-safe-money] @@ -127,7 +127,7 @@
128.60 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
128.60 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] - (m, e) <- parseDigits stepFraction (units, 0)
128.60 s
[really-safe-money] + (m, e) <- parseDigits stepFraction (units, 1)
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] pure $ DecimalLiteral mSign m e
128.60 s
[really-safe-money]
128.60 s
[really-safe-money] added 81 mutations
128.61 s
[genvalidity-sydtest-source] Phase: updateAutotoolsGnuConfigScriptsPhase
128.62 s
[genvalidity-sydtest-source] Phase: configurePhase
128.63 s
[genvalidity-sydtest-source] configureFlags: --verbose --prefix=/nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/genvalidity-sydtest-1.0.1.0 --with-gcc=gcc --package-db=/build/tmp.PlWPx7LOCP/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-option=-Wall --ghc-option=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib
128.63 s
[genvalidity-sydtest-source] Using Parsec parser
128.63 s
[genvalidity-sydtest-source] Configuring genvalidity-sydtest-1.0.1.0...
129.51 s
[genvalidity-sydtest-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
129.51 s
[genvalidity-sydtest-source] Dependency base >=4.7 && <5: using base-4.20.2.0
129.51 s
[genvalidity-sydtest-source] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
129.51 s
[genvalidity-sydtest-source] Dependency sydtest: using sydtest-0.23.0.2
129.51 s
[genvalidity-sydtest-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
129.51 s
[genvalidity-sydtest-source] Dependency base >=4.7 && <5: using base-4.20.2.0
129.51 s
[genvalidity-sydtest-source] Dependency genvalidity: using genvalidity-1.1.1.0
129.51 s
[genvalidity-sydtest-source] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
129.51 s
[genvalidity-sydtest-source] Dependency sydtest: using sydtest-0.23.0.2
129.51 s
[genvalidity-sydtest-source] Source component graph:
129.51 s
[genvalidity-sydtest-source] component lib
129.51 s
[genvalidity-sydtest-source] component test:genvalidity-sydtest-test dependency lib
129.51 s
[genvalidity-sydtest-source] Configured component graph:
129.51 s
[genvalidity-sydtest-source] component genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
129.51 s
[genvalidity-sydtest-source] include base-4.20.2.0-64da
129.51 s
[genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
129.51 s
[genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
129.51 s
[genvalidity-sydtest-source] component genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
129.51 s
[genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
129.51 s
[genvalidity-sydtest-source] include base-4.20.2.0-64da
129.51 s
[genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
129.51 s
[genvalidity-sydtest-source] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
129.51 s
[genvalidity-sydtest-source] Linked component graph:
129.51 s
[genvalidity-sydtest-source] unit genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
129.51 s
[genvalidity-sydtest-source] include base-4.20.2.0-64da
129.51 s
[genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
129.51 s
[genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
129.51 s
[genvalidity-sydtest-source] Test.Syd.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity,Test.Syd.Validity.Applicative=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Applicative,Test.Syd.Validity.Arbitrary=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Arbitrary,Test.Syd.Validity.Eq=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Eq,Test.Syd.Validity.Functions=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions,Test.Syd.Validity.Functions.CanFail=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.CanFail,Test.Syd.Validity.Functions.Equivalence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Equivalence,Test.Syd.Validity.Functions.Idempotence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Idempotence,Test.Syd.Validity.Functions.Inverse=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Inverse,Test.Syd.Validity.Functions.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Validity,Test.Syd.Validity.Functor=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functor,Test.Syd.Validity.GenValidity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity,Test.Syd.Validity.GenValidity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity.Property,Test.Syd.Validity.Monad=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monad,Test.Syd.Validity.Monoid=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monoid,Test.Syd.Validity.Operations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations,Test.Syd.Validity.Operations.Associativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Associativity,Test.Syd.Validity.Operations.Commutativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Commutativity,Test.Syd.Validity.Operations.Identity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Identity,Test.Syd.Validity.Ord=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Ord,Test.Syd.Validity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property,Test.Syd.Validity.Property.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property.Utils,Test.Syd.Validity.Relations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations,Test.Syd.Validity.Relations.Antireflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antireflexivity,Test.Syd.Validity.Relations.Antisymmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antisymmetry,Test.Syd.Validity.Relations.Reflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Reflexivity,Test.Syd.Validity.Relations.Symmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Symmetry,Test.Syd.Validity.Relations.Transitivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Transitivity,Test.Syd.Validity.Show=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Show,Test.Syd.Validity.Shrinking=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking,Test.Syd.Validity.Shrinking.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking.Property,Test.Syd.Validity.Types=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Types,Test.Syd.Validity.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Utils
129.51 s
[genvalidity-sydtest-source] unit genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
129.51 s
[genvalidity-sydtest-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
129.51 s
[genvalidity-sydtest-source] include base-4.20.2.0-64da
129.51 s
[genvalidity-sydtest-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
129.51 s
[genvalidity-sydtest-source] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
129.51 s
[genvalidity-sydtest-source] Ready component graph:
129.51 s
[genvalidity-sydtest-source] definite genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
129.51 s
[genvalidity-sydtest-source] depends base-4.20.2.0-64da
129.51 s
[genvalidity-sydtest-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
129.51 s
[genvalidity-sydtest-source] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
129.51 s
[genvalidity-sydtest-source] definite genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
129.51 s
[genvalidity-sydtest-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
129.51 s
[genvalidity-sydtest-source] depends base-4.20.2.0-64da
129.51 s
[genvalidity-sydtest-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
129.51 s
[genvalidity-sydtest-source] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
129.51 s
[genvalidity-sydtest-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
129.51 s
[genvalidity-sydtest-source] Using compiler: ghc-9.10.3
129.51 s
[genvalidity-sydtest-source] Using install prefix:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0
129.51 s
[genvalidity-sydtest-source] Executables installed in:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/bin
129.51 s
[genvalidity-sydtest-source] Libraries installed in:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
129.51 s
[genvalidity-sydtest-source] Dynamic Libraries installed in:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
129.51 s
[genvalidity-sydtest-source] Private executables installed in:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
129.51 s
[genvalidity-sydtest-source] Data files installed in:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
129.51 s
[genvalidity-sydtest-source] Documentation installed in: /share/doc/genvalidity-sydtest-1.0.1.0
129.51 s
[genvalidity-sydtest-source] Configuration files installed in:
129.51 s
[genvalidity-sydtest-source] /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/etc
129.51 s
[genvalidity-sydtest-source] No alex found
129.51 s
[genvalidity-sydtest-source] Using ar found on system at:
129.51 s
[genvalidity-sydtest-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
129.51 s
[genvalidity-sydtest-source] No c2hs found
129.51 s
[genvalidity-sydtest-source] No cpphs found
129.51 s
[genvalidity-sydtest-source] No doctest found
129.51 s
[genvalidity-sydtest-source] Using gcc version 14.3.0 given by user at:
129.51 s
[genvalidity-sydtest-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
129.51 s
[genvalidity-sydtest-source] Using ghc version 9.10.3 found on system at:
129.51 s
[genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
129.51 s
[genvalidity-sydtest-source] Using ghc-pkg version 9.10.3 found on system at:
129.51 s
[genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
129.51 s
[genvalidity-sydtest-source] No ghcjs found
129.51 s
[genvalidity-sydtest-source] No ghcjs-pkg found
129.51 s
[genvalidity-sydtest-source] No greencard found
129.51 s
[genvalidity-sydtest-source] Using haddock version 2.31.1 found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
129.55 s
[genvalidity-sydtest-source] No happy found
129.55 s
[genvalidity-sydtest-source] Using haskell-suite found on system at: haskell-suite-dummy-location
129.55 s
[genvalidity-sydtest-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
129.55 s
[genvalidity-sydtest-source] No hmake found
129.55 s
[genvalidity-sydtest-source] Using hpc version 0.69 found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
129.55 s
[genvalidity-sydtest-source] Using hsc2hs version 0.68.10 found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
129.55 s
[genvalidity-sydtest-source] Using hscolour version 1.25 found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
129.55 s
[genvalidity-sydtest-source] No jhc found
129.55 s
[genvalidity-sydtest-source] Using ld found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
129.55 s
[genvalidity-sydtest-source] No pkg-config found
129.55 s
[genvalidity-sydtest-source] Using runghc version 9.10.3 found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
129.55 s
[genvalidity-sydtest-source] Using strip version 2.44 found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
129.55 s
[genvalidity-sydtest-source] Using tar found on system at:
129.55 s
[genvalidity-sydtest-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
129.55 s
[genvalidity-sydtest-source] No uhc found
130.11 s
[genvalidity-sydtest-source] Phase: buildPhase
130.12 s
[genvalidity-sydtest-source] Distribution quality warnings:
130.12 s
[genvalidity-sydtest-source] [no-description] No 'description' field.
130.12 s
[genvalidity-sydtest-source] [missing-upper-bounds] On library, these packages miss upper bounds:
130.12 s
[genvalidity-sydtest-source] - QuickCheck
130.12 s
[genvalidity-sydtest-source] - genvalidity
130.12 s
[genvalidity-sydtest-source] - sydtest
130.12 s
[genvalidity-sydtest-source] Please add them. There is more information at https://pvp.haskell.org/
130.12 s
[genvalidity-sydtest-source] Building source dist for genvalidity-sydtest-1.0.1.0...
130.14 s
[genvalidity-sydtest-source] Source tarball created: dist/genvalidity-sydtest-1.0.1.0.tar.gz
130.15 s
[genvalidity-sydtest-source] Phase: checkPhase
130.16 s
[genvalidity-sydtest-source] Phase: haddockPhase
130.16 s
[really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.p_o )
130.16 s
[genvalidity-sydtest-source] Phase: installPhase
130.17 s
[genvalidity-sydtest-source] Phase: fixupPhase
130.20 s
Progress: 6 of 14 built (1 building)
130.26 s
Building genvalidity-sydtest
130.26 s
[really-safe-money] mutation: instrumenting Money.QuantisationFactor
130.26 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
130.27 s
[really-safe-money] @@ -84,7 +84,7 @@
130.27 s
[really-safe-money] fromDecimalLiteral dl = do
130.27 s
[really-safe-money] irat <-
130.27 s
[really-safe-money] let r = DecimalLiteral.toRational dl
130.27 s
[really-safe-money] - in if numerator r == 0
130.27 s
[really-safe-money] + in if numerator r == 1
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
130.27 s
[really-safe-money] @@ -84,7 +84,7 @@
130.27 s
[really-safe-money] fromDecimalLiteral dl = do
130.27 s
[really-safe-money] irat <-
130.27 s
[really-safe-money] let r = DecimalLiteral.toRational dl
130.27 s
[really-safe-money] - in if numerator r == 0
130.27 s
[really-safe-money] + in if True
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
130.27 s
[really-safe-money] @@ -84,7 +84,7 @@
130.27 s
[really-safe-money] fromDecimalLiteral dl = do
130.27 s
[really-safe-money] irat <-
130.27 s
[really-safe-money] let r = DecimalLiteral.toRational dl
130.27 s
[really-safe-money] - in if numerator r == 0
130.27 s
[really-safe-money] + in if False
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
130.27 s
[really-safe-money] @@ -84,7 +84,7 @@
130.27 s
[really-safe-money] fromDecimalLiteral dl = do
130.27 s
[really-safe-money] irat <-
130.27 s
[really-safe-money] let r = DecimalLiteral.toRational dl
130.27 s
[really-safe-money] - in if numerator r == 0
130.27 s
[really-safe-money] + in if not (numerator r == 0)
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
130.27 s
[really-safe-money] @@ -84,9 +84,9 @@
130.27 s
[really-safe-money] fromDecimalLiteral dl = do
130.27 s
[really-safe-money] irat <-
130.27 s
[really-safe-money] let r = DecimalLiteral.toRational dl
130.27 s
[really-safe-money] - in if numerator r == 0
130.27 s
[really-safe-money] - then Nothing
130.27 s
[really-safe-money] - else pure r
130.27 s
[really-safe-money] + in if numerator r == 0
130.27 s
[really-safe-money] + then Nothing
130.27 s
[really-safe-money] + else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] let r = 1 / irat
130.27 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
130.27 s
[really-safe-money] @@ -89,7 +89,7 @@
130.27 s
[really-safe-money] else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] - let r = 1 / irat
130.27 s
[really-safe-money] + let r = 0 / irat
130.27 s
[really-safe-money] in if r < 0
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
130.27 s
[really-safe-money] @@ -89,7 +89,7 @@
130.27 s
[really-safe-money] else pure r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] - let r = 1 / irat
130.27 s
[really-safe-money] + let r = -1 / irat
130.27 s
[really-safe-money] in if r < 0
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
130.27 s
[really-safe-money] @@ -90,7 +90,7 @@
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] let r = 1 / irat
130.27 s
[really-safe-money] - in if r < 0
130.27 s
[really-safe-money] + in if r < 1
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
130.27 s
[really-safe-money] @@ -90,7 +90,7 @@
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] let r = 1 / irat
130.27 s
[really-safe-money] - in if r < 0
130.27 s
[really-safe-money] + in if True
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
130.27 s
[really-safe-money] @@ -90,7 +90,7 @@
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] let r = 1 / irat
130.27 s
[really-safe-money] - in if r < 0
130.27 s
[really-safe-money] + in if False
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
130.27 s
[really-safe-money] @@ -90,7 +90,7 @@
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] let r = 1 / irat
130.27 s
[really-safe-money] - in if r < 0
130.27 s
[really-safe-money] + in if not (r < 0)
130.27 s
[really-safe-money] then Nothing
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
130.27 s
[really-safe-money] @@ -90,9 +90,9 @@
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] rat <-
130.27 s
[really-safe-money] let r = 1 / irat
130.27 s
[really-safe-money] - in if r < 0
130.27 s
[really-safe-money] - then Nothing
130.27 s
[really-safe-money] - else Just r
130.27 s
[really-safe-money] + in if r < 0
130.27 s
[really-safe-money] + then Nothing
130.27 s
[really-safe-money] + else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] fac <-
130.27 s
[really-safe-money] if denominator rat == 1
130.27 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
130.27 s
[really-safe-money] @@ -95,7 +95,7 @@
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] fac <-
130.27 s
[really-safe-money] - if denominator rat == 1
130.27 s
[really-safe-money] + if denominator rat == 0
130.27 s
[really-safe-money] then Just (numerator rat)
130.27 s
[really-safe-money] else Nothing
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
130.27 s
[really-safe-money] @@ -95,7 +95,7 @@
130.27 s
[really-safe-money] else Just r
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] fac <-
130.27 s
[really-safe-money] - if denominator rat == 1
130.27 s
[really-safe-money] + if denominator rat == -1
130.27 s
[really-safe-money] then Just (numerator rat)
130.27 s
[really-safe-money] else Nothing
130.27 s
[really-safe-money]
130.27 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
130.27 s
[really-safe-money] @@ -95,7 +95,7 @@
130.27 s
[really-safe-money] else Just r
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] fac <-
130.28 s
[really-safe-money] - if denominator rat == 1
130.28 s
[really-safe-money] + if True
130.28 s
[really-safe-money] then Just (numerator rat)
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
130.28 s
[really-safe-money] @@ -95,7 +95,7 @@
130.28 s
[really-safe-money] else Just r
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] fac <-
130.28 s
[really-safe-money] - if denominator rat == 1
130.28 s
[really-safe-money] + if False
130.28 s
[really-safe-money] then Just (numerator rat)
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
130.28 s
[really-safe-money] @@ -95,7 +95,7 @@
130.28 s
[really-safe-money] else Just r
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] fac <-
130.28 s
[really-safe-money] - if denominator rat == 1
130.28 s
[really-safe-money] + if not (denominator rat == 1)
130.28 s
[really-safe-money] then Just (numerator rat)
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
130.28 s
[really-safe-money] @@ -95,9 +95,9 @@
130.28 s
[really-safe-money] else Just r
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] fac <-
130.28 s
[really-safe-money] - if denominator rat == 1
130.28 s
[really-safe-money] - then Just (numerator rat)
130.28 s
[really-safe-money] - else Nothing
130.28 s
[really-safe-money] + if denominator rat == 1
130.28 s
[really-safe-money] + then Just (numerator rat)
130.28 s
[really-safe-money] + else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] if fac <= fromIntegral (maxBound :: Word32)
130.28 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
130.28 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
130.28 s
[really-safe-money] @@ -99,6 +99,6 @@
130.28 s
[really-safe-money] then Just (numerator rat)
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
130.28 s
[really-safe-money] + if True
130.28 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
130.28 s
[really-safe-money] @@ -99,6 +99,6 @@
130.28 s
[really-safe-money] then Just (numerator rat)
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
130.28 s
[really-safe-money] + if False
130.28 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
130.28 s
[really-safe-money] @@ -99,6 +99,6 @@
130.28 s
[really-safe-money] then Just (numerator rat)
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
130.28 s
[really-safe-money] + if not (fac <= fromIntegral (maxBound :: Word32))
130.28 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
130.28 s
[really-safe-money] else Nothing
130.28 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
130.28 s
[really-safe-money] @@ -64,7 +64,7 @@
130.28 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
130.28 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
130.28 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
130.28 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
130.28 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
130.28 s
[really-safe-money] -- TODO explain that it's the inverse.
130.28 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
130.28 s
[really-safe-money] @@ -64,7 +64,7 @@
130.28 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
130.28 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
130.28 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
130.28 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
130.28 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
130.28 s
[really-safe-money] -- TODO explain that it's the inverse.
130.28 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
130.28 s
[really-safe-money] @@ -37,7 +37,7 @@
130.28 s
[really-safe-money] validate qf@(QuantisationFactor w) =
130.28 s
[really-safe-money] mconcat
130.28 s
[really-safe-money] [ genericValidate qf,
130.28 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 1
130.28 s
[really-safe-money] ]
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] instance NFData QuantisationFactor
130.28 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
130.28 s
[really-safe-money] @@ -37,7 +37,7 @@
130.28 s
[really-safe-money] validate qf@(QuantisationFactor w) =
130.28 s
[really-safe-money] mconcat
130.28 s
[really-safe-money] [ genericValidate qf,
130.28 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] + declare "The quantisation factor is not zero" $ True
130.28 s
[really-safe-money] ]
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] instance NFData QuantisationFactor
130.28 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
130.28 s
[really-safe-money] @@ -37,7 +37,7 @@
130.28 s
[really-safe-money] validate qf@(QuantisationFactor w) =
130.28 s
[really-safe-money] mconcat
130.28 s
[really-safe-money] [ genericValidate qf,
130.28 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] + declare "The quantisation factor is not zero" $ False
130.28 s
[really-safe-money] ]
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] instance NFData QuantisationFactor
130.28 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
130.28 s
[really-safe-money] @@ -37,7 +37,7 @@
130.28 s
[really-safe-money] validate qf@(QuantisationFactor w) =
130.28 s
[really-safe-money] mconcat
130.28 s
[really-safe-money] [ genericValidate qf,
130.28 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] + declare "The quantisation factor is not zero" $ not (w /= 0)
130.28 s
[really-safe-money] ]
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] instance NFData QuantisationFactor
130.28 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
130.28 s
[really-safe-money] @@ -36,9 +36,7 @@
130.28 s
[really-safe-money] instance Validity QuantisationFactor where
130.28 s
[really-safe-money] validate qf@(QuantisationFactor w) =
130.28 s
[really-safe-money] mconcat
130.28 s
[really-safe-money] - [ genericValidate qf,
130.28 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] - ]
130.28 s
[really-safe-money] + []
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] instance NFData QuantisationFactor
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
130.28 s
[really-safe-money] @@ -36,9 +36,9 @@
130.28 s
[really-safe-money] instance Validity QuantisationFactor where
130.28 s
[really-safe-money] validate qf@(QuantisationFactor w) =
130.28 s
[really-safe-money] mconcat
130.28 s
[really-safe-money] - [ genericValidate qf,
130.28 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] - ]
130.28 s
[really-safe-money] + [ genericValidate qf,
130.28 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 0
130.28 s
[really-safe-money] + ]
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] instance NFData QuantisationFactor
130.28 s
[really-safe-money]
130.28 s
[really-safe-money] added 29 mutations
130.64 s
[genvalidity-sydtest] Phase: setupCompilerEnvironmentPhase
130.64 s
[genvalidity-sydtest] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
130.68 s
[really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.p_o )
130.69 s
[really-safe-money] mutation: instrumenting Money.Currency
130.69 s
[really-safe-money] added 0 mutations
131.26 s
[really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.p_o )
131.27 s
[genvalidity-sydtest] Phase: unpackPhase
131.27 s
[really-safe-money] mutation: instrumenting Money.ConversionRate
131.27 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
131.27 s
[really-safe-money] @@ -113,7 +113,7 @@
131.27 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
131.27 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
131.27 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
131.27 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
131.27 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (0 / r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Compose two conversion rates
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
131.27 s
[really-safe-money] @@ -113,7 +113,7 @@
131.27 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
131.27 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
131.27 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
131.27 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
131.27 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (-1 / r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Compose two conversion rates
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
131.27 s
[really-safe-money] @@ -106,7 +106,7 @@
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | One-to-one conversion rate
131.27 s
[really-safe-money] oneToOne :: ConversionRate
131.27 s
[really-safe-money] -oneToOne = ConversionRate 1
131.27 s
[really-safe-money] +oneToOne = ConversionRate 0
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
131.27 s
[really-safe-money] @@ -106,7 +106,7 @@
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | One-to-one conversion rate
131.27 s
[really-safe-money] oneToOne :: ConversionRate
131.27 s
[really-safe-money] -oneToOne = ConversionRate 1
131.27 s
[really-safe-money] +oneToOne = ConversionRate -1
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
131.27 s
[really-safe-money] @@ -69,7 +69,7 @@
131.27 s
[really-safe-money] -- >>> fromRational (0 % 1)
131.27 s
[really-safe-money] -- Nothing
131.27 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
131.27 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
131.27 s
[really-safe-money] @@ -69,7 +69,7 @@
131.27 s
[really-safe-money] -- >>> fromRational (0 % 1)
131.27 s
[really-safe-money] -- Nothing
131.27 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
131.27 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
131.27 s
[really-safe-money] @@ -69,7 +69,7 @@
131.27 s
[really-safe-money] -- >>> fromRational (0 % 1)
131.27 s
[really-safe-money] -- Nothing
131.27 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
131.27 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
131.27 s
[really-safe-money] @@ -69,7 +69,7 @@
131.27 s
[really-safe-money] -- >>> fromRational (0 % 1)
131.27 s
[really-safe-money] -- Nothing
131.27 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
131.27 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
131.27 s
[really-safe-money] @@ -69,7 +69,7 @@
131.27 s
[really-safe-money] -- >>> fromRational (0 % 1)
131.27 s
[really-safe-money] -- Nothing
131.27 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
131.27 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
131.27 s
[really-safe-money] --
131.27 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
131.27 s
[really-safe-money] @@ -35,7 +35,7 @@
131.27 s
[really-safe-money] validate cr@(ConversionRate r) =
131.27 s
[really-safe-money] mconcat
131.27 s
[really-safe-money] [ genericValidate cr,
131.27 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
131.27 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 1
131.27 s
[really-safe-money] ]
131.27 s
[really-safe-money]
131.27 s
[really-safe-money] instance NFData ConversionRate
131.27 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
131.27 s
[really-safe-money] @@ -35,7 +35,7 @@
131.27 s
[really-safe-money] validate cr@(ConversionRate r) =
131.27 s
[really-safe-money] mconcat
131.27 s
[really-safe-money] [ genericValidate cr,
131.27 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
131.27 s
[really-safe-money] + declare "The rate is nonzero" $ True
131.28 s
[really-safe-money] ]
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] instance NFData ConversionRate
131.28 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
131.28 s
[really-safe-money] @@ -35,7 +35,7 @@
131.28 s
[really-safe-money] validate cr@(ConversionRate r) =
131.28 s
[really-safe-money] mconcat
131.28 s
[really-safe-money] [ genericValidate cr,
131.28 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
131.28 s
[really-safe-money] + declare "The rate is nonzero" $ False
131.28 s
[really-safe-money] ]
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] instance NFData ConversionRate
131.28 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
131.28 s
[really-safe-money] @@ -35,7 +35,7 @@
131.28 s
[really-safe-money] validate cr@(ConversionRate r) =
131.28 s
[really-safe-money] mconcat
131.28 s
[really-safe-money] [ genericValidate cr,
131.28 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
131.28 s
[really-safe-money] + declare "The rate is nonzero" $ not (numerator r /= 0)
131.28 s
[really-safe-money] ]
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] instance NFData ConversionRate
131.28 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
131.28 s
[really-safe-money] @@ -34,9 +34,7 @@
131.28 s
[really-safe-money] instance Validity ConversionRate where
131.28 s
[really-safe-money] validate cr@(ConversionRate r) =
131.28 s
[really-safe-money] mconcat
131.28 s
[really-safe-money] - [ genericValidate cr,
131.28 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
131.28 s
[really-safe-money] - ]
131.28 s
[really-safe-money] + []
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] instance NFData ConversionRate
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
131.28 s
[really-safe-money] @@ -34,9 +34,9 @@
131.28 s
[really-safe-money] instance Validity ConversionRate where
131.28 s
[really-safe-money] validate cr@(ConversionRate r) =
131.28 s
[really-safe-money] mconcat
131.28 s
[really-safe-money] - [ genericValidate cr,
131.28 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
131.28 s
[really-safe-money] - ]
131.28 s
[really-safe-money] + [ genericValidate cr,
131.28 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 0
131.28 s
[really-safe-money] + ]
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] instance NFData ConversionRate
131.28 s
[really-safe-money]
131.28 s
[really-safe-money] added 15 mutations
131.28 s
[genvalidity-sydtest] unpacking source archive /nix/store/m961lwss801igaykzjnc16byzgcgh5sl-genvalidity-sydtest-source-1.0.1.0/genvalidity-sydtest-1.0.1.0.tar.gz
131.28 s
[genvalidity-sydtest] source root is genvalidity-sydtest-1.0.1.0
131.29 s
[genvalidity-sydtest] setting SOURCE_DATE_EPOCH to timestamp 1778687829 of file "genvalidity-sydtest-1.0.1.0/test/Test/Syd/Validity/ShrinkingSpec.hs"
131.29 s
[genvalidity-sydtest] warning: file "genvalidity-sydtest-1.0.1.0/test/Test/Syd/Validity/ShrinkingSpec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
131.29 s
[genvalidity-sydtest] Phase: patchPhase
131.31 s
[genvalidity-sydtest] Phase: compileBuildDriverPhase
131.31 s
[genvalidity-sydtest] setupCompileFlags: -package-db=/build/tmp.RricPHhDAb/setup-package.conf.d -threaded
131.39 s
[genvalidity-sydtest] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.RricPHhDAb/Main.o )
131.47 s
[genvalidity-sydtest] [2 of 2] Linking Setup
131.72 s
[really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.p_o )
131.73 s
[really-safe-money] mutation: instrumenting Money.ConversionRateOf
131.73 s
[really-safe-money] added 0 mutations
131.97 s
[really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.p_o )
132.08 s
[really-safe-money] mutation: instrumenting Money.Amount
132.08 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
132.08 s
[really-safe-money] @@ -798,7 +798,7 @@
132.08 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
132.08 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
132.09 s
[really-safe-money] let decimals :: Int
132.09 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
132.09 s
[really-safe-money] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
132.09 s
[really-safe-money] in printf "%%0.%df" decimals
132.09 s
[really-safe-money]
132.09 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
132.09 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
132.09 s
[really-safe-money] @@ -798,7 +798,7 @@
132.09 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
132.09 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
132.09 s
[really-safe-money] let decimals :: Int
132.09 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
132.09 s
[really-safe-money] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
132.09 s
[really-safe-money] in printf "%%0.%df" decimals
132.09 s
[really-safe-money]
132.09 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
132.09 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
132.09 s
[really-safe-money] @@ -798,7 +798,7 @@
132.09 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
132.09 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
132.09 s
[really-safe-money] let decimals :: Int
132.09 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
132.09 s
[really-safe-money] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
132.09 s
[really-safe-money] in printf "%%0.%df" decimals
132.09 s
[really-safe-money]
132.09 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
132.09 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
132.09 s
[really-safe-money] @@ -566,7 +566,7 @@
132.09 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
132.09 s
[really-safe-money] smallerChunk :: Amount
132.09 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
132.09 s
[really-safe-money] - in if rest == 0
132.09 s
[really-safe-money] + in if rest == 1
132.09 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
132.09 s
[really-safe-money] else
132.09 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
132.09 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
132.09 s
[really-safe-money] @@ -566,7 +566,7 @@
132.09 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
132.09 s
[really-safe-money] smallerChunk :: Amount
132.09 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
132.09 s
[really-safe-money] - in if rest == 0
132.09 s
[really-safe-money] + in if True
132.09 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
132.09 s
[really-safe-money] else
132.09 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
132.09 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
132.09 s
[really-safe-money] @@ -566,7 +566,7 @@
132.09 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
132.09 s
[really-safe-money] smallerChunk :: Amount
132.09 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
132.09 s
[really-safe-money] - in if rest == 0
132.09 s
[really-safe-money] + in if False
132.09 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
132.09 s
[really-safe-money] else
132.09 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
132.09 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
132.09 s
[really-safe-money] @@ -566,7 +566,7 @@
132.09 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
132.09 s
[really-safe-money] smallerChunk :: Amount
132.09 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
132.09 s
[really-safe-money] - in if rest == 0
132.09 s
[really-safe-money] + in if not (rest == 0)
132.09 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
132.09 s
[really-safe-money] else
132.09 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
132.09 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:569:7-29
132.09 s
[really-safe-money] @@ -566,22 +566,22 @@
132.09 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
132.09 s
[really-safe-money] smallerChunk :: Amount
132.09 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
132.09 s
[really-safe-money] - in if rest == 0
132.09 s
[really-safe-money] - then DistributedIntoEqualChunks f smallerChunk
132.09 s
[really-safe-money] - else
132.09 s
[really-safe-money] - let -- This 'fromIntegral' is theoretically not safe, but it's
132.09 s
[really-safe-money] - -- necessarily smaller than f so it will fit.
132.09 s
[really-safe-money] - numberOfLargerChunks :: Word32
132.09 s
[really-safe-money] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
132.09 s
[really-safe-money] - numberOfSmallerChunks :: Word32
132.09 s
[really-safe-money] - numberOfSmallerChunks = f - numberOfLargerChunks
132.09 s
[really-safe-money] - largerChunk :: Amount
132.09 s
[really-safe-money] - largerChunk = Amount $ succ smallerChunkSize
132.09 s
[really-safe-money] - in DistributedIntoUnequalChunks
132.09 s
[really-safe-money] - numberOfLargerChunks
132.09 s
[really-safe-money] - largerChunk
132.09 s
[really-safe-money] - numberOfSmallerChunks
132.09 s
[really-safe-money] - smallerChunk
132.09 s
[really-safe-money] + in if rest == 0
132.09 s
[really-safe-money] + then DistributedIntoEqualChunks f smallerChunk
132.09 s
[really-safe-money] + else
132.09 s
[really-safe-money] + let -- This 'fromIntegral' is theoretically not safe, but it's
132.09 s
[really-safe-money] + -- necessarily smaller than f so it will fit.
132.09 s
[really-safe-money] + numberOfLargerChunks :: Word32
132.09 s
[really-safe-money] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
132.09 s
[really-safe-money] + numberOfSmallerChunks :: Word32
132.09 s
[really-safe-money] + numberOfSmallerChunks = f - numberOfLargerChunks
132.09 s
[really-safe-money] + largerChunk :: Amount
132.09 s
[really-safe-money] + largerChunk = Amount $ succ smallerChunkSize
132.09 s
[really-safe-money] + in DistributedIntoUnequalChunks
132.09 s
[really-safe-money] + numberOfLargerChunks
132.09 s
[really-safe-money] + largerChunk
132.09 s
[really-safe-money] + numberOfSmallerChunks
132.09 s
[really-safe-money] + smallerChunk
132.09 s
[really-safe-money]
132.09 s
[really-safe-money] -- | The result of 'distribute'
132.09 s
[really-safe-money] type AmountDistribution = Distribution Amount
132.09 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
132.09 s
[really-safe-money] @@ -541,7 +541,7 @@
132.09 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
132.09 s
[really-safe-money] r :: Integer
132.09 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
132.09 s
[really-safe-money] - in if r > maxBoundI
132.09 s
[really-safe-money] + in if True
132.09 s
[really-safe-money] then Nothing
132.09 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.09 s
[really-safe-money]
132.09 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
132.09 s
[really-safe-money] @@ -541,7 +541,7 @@
132.09 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
132.09 s
[really-safe-money] r :: Integer
132.09 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
132.09 s
[really-safe-money] - in if r > maxBoundI
132.09 s
[really-safe-money] + in if False
132.09 s
[really-safe-money] then Nothing
132.09 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.09 s
[really-safe-money]
132.09 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
132.09 s
[really-safe-money] @@ -541,7 +541,7 @@
132.09 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
132.09 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
132.10 s
[really-safe-money] - in if r > maxBoundI
132.10 s
[really-safe-money] + in if not (r > maxBoundI)
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:544:7-66
132.10 s
[really-safe-money] @@ -541,9 +541,9 @@
132.10 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
132.10 s
[really-safe-money] - in if r > maxBoundI
132.10 s
[really-safe-money] - then Nothing
132.10 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money] + in if r > maxBoundI
132.10 s
[really-safe-money] + then Nothing
132.10 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
132.10 s
[really-safe-money] --
132.10 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
132.10 s
[really-safe-money] @@ -515,7 +515,7 @@
132.10 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 - i2
132.10 s
[really-safe-money] - in if r < 0
132.10 s
[really-safe-money] + in if r < 1
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
132.10 s
[really-safe-money] @@ -515,7 +515,7 @@
132.10 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 - i2
132.10 s
[really-safe-money] - in if r < 0
132.10 s
[really-safe-money] + in if True
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
132.10 s
[really-safe-money] @@ -515,7 +515,7 @@
132.10 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 - i2
132.10 s
[really-safe-money] - in if r < 0
132.10 s
[really-safe-money] + in if False
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
132.10 s
[really-safe-money] @@ -515,7 +515,7 @@
132.10 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 - i2
132.10 s
[really-safe-money] - in if r < 0
132.10 s
[really-safe-money] + in if not (r < 0)
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:518:7-66
132.10 s
[really-safe-money] @@ -515,9 +515,9 @@
132.10 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 - i2
132.10 s
[really-safe-money] - in if r < 0
132.10 s
[really-safe-money] - then Nothing
132.10 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money] + in if r < 0
132.10 s
[really-safe-money] + then Nothing
132.10 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] -- | Multiply an amount of money by an integer scalar
132.10 s
[really-safe-money] --
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
132.10 s
[really-safe-money] @@ -473,7 +473,7 @@
132.10 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 + i2
132.10 s
[really-safe-money] - in if r > maxBoundI
132.10 s
[really-safe-money] + in if True
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
132.10 s
[really-safe-money] @@ -473,7 +473,7 @@
132.10 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 + i2
132.10 s
[really-safe-money] - in if r > maxBoundI
132.10 s
[really-safe-money] + in if False
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
132.10 s
[really-safe-money] @@ -473,7 +473,7 @@
132.10 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 + i2
132.10 s
[really-safe-money] - in if r > maxBoundI
132.10 s
[really-safe-money] + in if not (r > maxBoundI)
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:476:7-66
132.10 s
[really-safe-money] @@ -473,9 +473,9 @@
132.10 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.10 s
[really-safe-money] r :: Integer
132.10 s
[really-safe-money] r = i1 + i2
132.10 s
[really-safe-money] - in if r > maxBoundI
132.10 s
[really-safe-money] - then Nothing
132.10 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money] + in if r > maxBoundI
132.10 s
[really-safe-money] + then Nothing
132.10 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.10 s
[really-safe-money]
132.10 s
[really-safe-money] -- | Add a number of amounts of money together.
132.10 s
[really-safe-money] --
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
132.10 s
[really-safe-money] @@ -385,7 +385,7 @@
132.10 s
[really-safe-money] -- Nothing
132.10 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
132.10 s
[really-safe-money] fromRational (QuantisationFactor qf) r
132.10 s
[really-safe-money] - | isInvalid r = Nothing
132.10 s
[really-safe-money] + | True = Nothing
132.10 s
[really-safe-money] | r < 0 = Nothing
132.10 s
[really-safe-money] | otherwise =
132.10 s
[really-safe-money] let resultRational :: Rational
132.10 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
132.10 s
[really-safe-money] @@ -385,7 +385,7 @@
132.10 s
[really-safe-money] -- Nothing
132.10 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
132.10 s
[really-safe-money] fromRational (QuantisationFactor qf) r
132.10 s
[really-safe-money] - | isInvalid r = Nothing
132.10 s
[really-safe-money] + | not (isInvalid r) = Nothing
132.10 s
[really-safe-money] | r < 0 = Nothing
132.10 s
[really-safe-money] | otherwise =
132.10 s
[really-safe-money] let resultRational :: Rational
132.10 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
132.10 s
[really-safe-money] @@ -386,7 +386,7 @@
132.10 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
132.10 s
[really-safe-money] fromRational (QuantisationFactor qf) r
132.10 s
[really-safe-money] | isInvalid r = Nothing
132.10 s
[really-safe-money] - | r < 0 = Nothing
132.10 s
[really-safe-money] + | r < 1 = Nothing
132.10 s
[really-safe-money] | otherwise =
132.10 s
[really-safe-money] let resultRational :: Rational
132.10 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
132.10 s
[really-safe-money] @@ -386,7 +386,7 @@
132.10 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
132.10 s
[really-safe-money] fromRational (QuantisationFactor qf) r
132.10 s
[really-safe-money] | isInvalid r = Nothing
132.10 s
[really-safe-money] - | r < 0 = Nothing
132.10 s
[really-safe-money] + | True = Nothing
132.10 s
[really-safe-money] | otherwise =
132.10 s
[really-safe-money] let resultRational :: Rational
132.10 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
132.10 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
132.10 s
[really-safe-money] @@ -386,7 +386,7 @@
132.10 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
132.10 s
[really-safe-money] fromRational (QuantisationFactor qf) r
132.10 s
[really-safe-money] | isInvalid r = Nothing
132.10 s
[really-safe-money] - | r < 0 = Nothing
132.10 s
[really-safe-money] + | not (r < 0) = Nothing
132.10 s
[really-safe-money] | otherwise =
132.10 s
[really-safe-money] let resultRational :: Rational
132.10 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
132.10 s
[really-safe-money] @@ -394,7 +394,7 @@
132.10 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
132.10 s
[really-safe-money] floored :: Natural
132.10 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.10 s
[really-safe-money] - in if ceiled == floored
132.10 s
[really-safe-money] + in if True
132.10 s
[really-safe-money] then
132.10 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.10 s
[really-safe-money] then Nothing
132.10 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
132.10 s
[really-safe-money] @@ -394,7 +394,7 @@
132.10 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
132.10 s
[really-safe-money] floored :: Natural
132.10 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.10 s
[really-safe-money] - in if ceiled == floored
132.11 s
[really-safe-money] + in if False
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
132.11 s
[really-safe-money] @@ -394,7 +394,7 @@
132.11 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] floored :: Natural
132.11 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] - in if ceiled == floored
132.11 s
[really-safe-money] + in if not (ceiled == floored)
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
132.11 s
[really-safe-money] @@ -396,7 +396,7 @@
132.11 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] in if ceiled == floored
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + if True
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] else Nothing
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
132.11 s
[really-safe-money] @@ -396,7 +396,7 @@
132.11 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] in if ceiled == floored
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + if False
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] else Nothing
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
132.11 s
[really-safe-money] @@ -396,7 +396,7 @@
132.11 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] in if ceiled == floored
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] else Nothing
132.11 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:399:15-57
132.11 s
[really-safe-money] @@ -396,9 +396,9 @@
132.11 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] in if ceiled == floored
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] - then Nothing
132.11 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + then Nothing
132.11 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] else Nothing
132.11 s
[really-safe-money]
132.11 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
132.11 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:397:11-25
132.11 s
[really-safe-money] @@ -394,12 +394,12 @@
132.11 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] floored :: Natural
132.11 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
132.11 s
[really-safe-money] - in if ceiled == floored
132.11 s
[really-safe-money] - then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] - then Nothing
132.11 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] - else Nothing
132.11 s
[really-safe-money] + in if ceiled == floored
132.11 s
[really-safe-money] + then
132.11 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + then Nothing
132.11 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] + else Nothing
132.11 s
[really-safe-money]
132.11 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
132.11 s
[really-safe-money] --
132.11 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
132.11 s
[really-safe-money] @@ -317,7 +317,7 @@
132.11 s
[really-safe-money] Double ->
132.11 s
[really-safe-money] Maybe Amount
132.11 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
132.11 s
[really-safe-money] - | d < 0 = Nothing
132.11 s
[really-safe-money] + | d < 1 = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] let resultDouble :: Double
132.11 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
132.11 s
[really-safe-money] @@ -317,7 +317,7 @@
132.11 s
[really-safe-money] Double ->
132.11 s
[really-safe-money] Maybe Amount
132.11 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
132.11 s
[really-safe-money] - | d < 0 = Nothing
132.11 s
[really-safe-money] + | True = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] let resultDouble :: Double
132.11 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
132.11 s
[really-safe-money] @@ -317,7 +317,7 @@
132.11 s
[really-safe-money] Double ->
132.11 s
[really-safe-money] Maybe Amount
132.11 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
132.11 s
[really-safe-money] - | d < 0 = Nothing
132.11 s
[really-safe-money] + | not (d < 0) = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] let resultDouble :: Double
132.11 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
132.11 s
[really-safe-money] @@ -324,7 +324,7 @@
132.11 s
[really-safe-money] in go resultDouble
132.11 s
[really-safe-money] where
132.11 s
[really-safe-money] go resultDouble
132.11 s
[really-safe-money] - | isNaN d = Nothing
132.11 s
[really-safe-money] + | True = Nothing
132.11 s
[really-safe-money] | isInfinite d = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
132.11 s
[really-safe-money] @@ -324,7 +324,7 @@
132.11 s
[really-safe-money] in go resultDouble
132.11 s
[really-safe-money] where
132.11 s
[really-safe-money] go resultDouble
132.11 s
[really-safe-money] - | isNaN d = Nothing
132.11 s
[really-safe-money] + | not (isNaN d) = Nothing
132.11 s
[really-safe-money] | isInfinite d = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
132.11 s
[really-safe-money] @@ -325,7 +325,7 @@
132.11 s
[really-safe-money] where
132.11 s
[really-safe-money] go resultDouble
132.11 s
[really-safe-money] | isNaN d = Nothing
132.11 s
[really-safe-money] - | isInfinite d = Nothing
132.11 s
[really-safe-money] + | True = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
132.11 s
[really-safe-money] @@ -325,7 +325,7 @@
132.11 s
[really-safe-money] where
132.11 s
[really-safe-money] go resultDouble
132.11 s
[really-safe-money] | isNaN d = Nothing
132.11 s
[really-safe-money] - | isInfinite d = Nothing
132.11 s
[really-safe-money] + | not (isInfinite d) = Nothing
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
132.11 s
[really-safe-money] @@ -329,7 +329,7 @@
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] - if exponent resultDouble > 65
132.11 s
[really-safe-money] + if exponent resultDouble > 0
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else
132.11 s
[really-safe-money] let ceiled :: Natural
132.11 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
132.11 s
[really-safe-money] @@ -329,7 +329,7 @@
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] - if exponent resultDouble > 65
132.11 s
[really-safe-money] + if exponent resultDouble > 1
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else
132.11 s
[really-safe-money] let ceiled :: Natural
132.11 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
132.11 s
[really-safe-money] @@ -329,7 +329,7 @@
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] - if exponent resultDouble > 65
132.11 s
[really-safe-money] + if exponent resultDouble > -65
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else
132.11 s
[really-safe-money] let ceiled :: Natural
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
132.11 s
[really-safe-money] @@ -329,7 +329,7 @@
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] - if exponent resultDouble > 65
132.11 s
[really-safe-money] + if True
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else
132.11 s
[really-safe-money] let ceiled :: Natural
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
132.11 s
[really-safe-money] @@ -329,7 +329,7 @@
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] - if exponent resultDouble > 65
132.11 s
[really-safe-money] + if False
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else
132.11 s
[really-safe-money] let ceiled :: Natural
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
132.11 s
[really-safe-money] @@ -329,7 +329,7 @@
132.11 s
[really-safe-money] | otherwise =
132.11 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.11 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.11 s
[really-safe-money] - if exponent resultDouble > 65
132.11 s
[really-safe-money] + if not (exponent resultDouble > 65)
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else
132.11 s
[really-safe-money] let ceiled :: Natural
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
132.11 s
[really-safe-money] @@ -336,7 +336,7 @@
132.11 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] floored :: Natural
132.11 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] - in if ceiled == floored
132.11 s
[really-safe-money] + in if True
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
132.11 s
[really-safe-money] @@ -336,7 +336,7 @@
132.11 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] floored :: Natural
132.11 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] - in if ceiled == floored
132.11 s
[really-safe-money] + in if False
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
132.11 s
[really-safe-money] @@ -336,7 +336,7 @@
132.11 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] floored :: Natural
132.11 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] - in if ceiled == floored
132.11 s
[really-safe-money] + in if not (ceiled == floored)
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
132.11 s
[really-safe-money] @@ -338,7 +338,7 @@
132.11 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] in if ceiled == floored
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + if True
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] else Nothing
132.11 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
132.11 s
[really-safe-money] @@ -338,7 +338,7 @@
132.11 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.11 s
[really-safe-money] in if ceiled == floored
132.11 s
[really-safe-money] then
132.11 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.11 s
[really-safe-money] + if False
132.11 s
[really-safe-money] then Nothing
132.11 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
132.11 s
[really-safe-money] else Nothing
132.11 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
132.12 s
[really-safe-money] @@ -338,7 +338,7 @@
132.12 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] in if ceiled == floored
132.12 s
[really-safe-money] then
132.12 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] else Nothing
132.12 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:341:23-65
132.12 s
[really-safe-money] @@ -338,9 +338,9 @@
132.12 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] in if ceiled == floored
132.12 s
[really-safe-money] then
132.12 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] - then Nothing
132.12 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] + then Nothing
132.12 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] else Nothing
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
132.12 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:339:19-33
132.12 s
[really-safe-money] @@ -336,12 +336,12 @@
132.12 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] floored :: Natural
132.12 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] - in if ceiled == floored
132.12 s
[really-safe-money] - then
132.12 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] - then Nothing
132.12 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] - else Nothing
132.12 s
[really-safe-money] + in if ceiled == floored
132.12 s
[really-safe-money] + then
132.12 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] + then Nothing
132.12 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] + else Nothing
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
132.12 s
[really-safe-money] --
132.12 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:332:11-33
132.12 s
[really-safe-money] @@ -329,19 +329,19 @@
132.12 s
[really-safe-money] | otherwise =
132.12 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
132.12 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
132.12 s
[really-safe-money] - if exponent resultDouble > 65
132.12 s
[really-safe-money] - then Nothing
132.12 s
[really-safe-money] - else
132.12 s
[really-safe-money] - let ceiled :: Natural
132.12 s
[really-safe-money] - ceiled = (ceiling :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] - floored :: Natural
132.12 s
[really-safe-money] - floored = (floor :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] - in if ceiled == floored
132.12 s
[really-safe-money] - then
132.12 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] - then Nothing
132.12 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] - else Nothing
132.12 s
[really-safe-money] + if exponent resultDouble > 65
132.12 s
[really-safe-money] + then Nothing
132.12 s
[really-safe-money] + else
132.12 s
[really-safe-money] + let ceiled :: Natural
132.12 s
[really-safe-money] + ceiled = (ceiling :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] + floored :: Natural
132.12 s
[really-safe-money] + floored = (floor :: Double -> Natural) resultDouble
132.12 s
[really-safe-money] + in if ceiled == floored
132.12 s
[really-safe-money] + then
132.12 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
132.12 s
[really-safe-money] + then Nothing
132.12 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
132.12 s
[really-safe-money] + else Nothing
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
132.12 s
[really-safe-money] --
132.12 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
132.12 s
[really-safe-money] @@ -287,7 +287,7 @@
132.12 s
[really-safe-money] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
132.12 s
[really-safe-money] -- 1 % 100
132.12 s
[really-safe-money] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
132.12 s
[really-safe-money] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
132.12 s
[really-safe-money] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
132.12 s
[really-safe-money] toRatio (QuantisationFactor quantisationFactor) a =
132.12 s
[really-safe-money] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
132.12 s
[really-safe-money] % (fromIntegral :: Word32 -> Natural) quantisationFactor
132.12 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
132.12 s
[really-safe-money] @@ -491,7 +491,7 @@
132.12 s
[really-safe-money] let maxBoundI :: Integer
132.12 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] r :: Integer
132.12 s
[really-safe-money] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
132.12 s
[really-safe-money] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
132.12 s
[really-safe-money] in if r > maxBoundI
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
132.12 s
[really-safe-money] @@ -492,7 +492,7 @@
132.12 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] r :: Integer
132.12 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
132.12 s
[really-safe-money] - in if r > maxBoundI
132.12 s
[really-safe-money] + in if True
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
132.12 s
[really-safe-money] @@ -492,7 +492,7 @@
132.12 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] r :: Integer
132.12 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
132.12 s
[really-safe-money] - in if r > maxBoundI
132.12 s
[really-safe-money] + in if False
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
132.12 s
[really-safe-money] @@ -492,7 +492,7 @@
132.12 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] r :: Integer
132.12 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
132.12 s
[really-safe-money] - in if r > maxBoundI
132.12 s
[really-safe-money] + in if not (r > maxBoundI)
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:495:7-66
132.12 s
[really-safe-money] @@ -492,9 +492,9 @@
132.12 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] r :: Integer
132.12 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
132.12 s
[really-safe-money] - in if r > maxBoundI
132.12 s
[really-safe-money] - then Nothing
132.12 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.12 s
[really-safe-money] + in if r > maxBoundI
132.12 s
[really-safe-money] + then Nothing
132.12 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Add two amounts of money.
132.12 s
[really-safe-money] --
132.12 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
132.12 s
[really-safe-money] @@ -247,7 +247,7 @@
132.12 s
[really-safe-money] -- >>> zero
132.12 s
[really-safe-money] -- Amount 0
132.12 s
[really-safe-money] zero :: Amount
132.12 s
[really-safe-money] -zero = Amount 0
132.12 s
[really-safe-money] +zero = Amount 1
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Turn an amount into a number of minimal quantisations.
132.12 s
[really-safe-money] --
132.12 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
132.12 s
[really-safe-money] @@ -658,7 +658,7 @@
132.12 s
[really-safe-money] -- | The amount and the real rate that was used, considering the 'Rounding'
132.12 s
[really-safe-money] (Maybe Amount, Ratio Natural)
132.12 s
[really-safe-money] fraction _ (Amount 0) f = (Just zero, f)
132.12 s
[really-safe-money] -fraction _ _ 0 = (Just zero, 0)
132.12 s
[really-safe-money] +fraction _ _ 0 = (Just zero, 1)
132.12 s
[really-safe-money] fraction r (Amount a) f =
132.12 s
[really-safe-money] let amountAsRatio :: Ratio Natural
132.12 s
[really-safe-money] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
132.12 s
[really-safe-money] @@ -678,7 +678,7 @@
132.12 s
[really-safe-money] maxBoundN :: Natural
132.12 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
132.12 s
[really-safe-money] - in ( if roundedResult > maxBoundN
132.12 s
[really-safe-money] + in ( if True
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just result,
132.12 s
[really-safe-money] actualRate
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
132.12 s
[really-safe-money] @@ -678,7 +678,7 @@
132.12 s
[really-safe-money] maxBoundN :: Natural
132.12 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
132.12 s
[really-safe-money] - in ( if roundedResult > maxBoundN
132.12 s
[really-safe-money] + in ( if False
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just result,
132.12 s
[really-safe-money] actualRate
132.12 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
132.12 s
[really-safe-money] @@ -678,7 +678,7 @@
132.12 s
[really-safe-money] maxBoundN :: Natural
132.12 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
132.12 s
[really-safe-money] - in ( if roundedResult > maxBoundN
132.12 s
[really-safe-money] + in ( if not (roundedResult > maxBoundN)
132.12 s
[really-safe-money] then Nothing
132.12 s
[really-safe-money] else Just result,
132.12 s
[really-safe-money] actualRate
132.12 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:681:9-27
132.12 s
[really-safe-money] @@ -678,9 +678,9 @@
132.12 s
[really-safe-money] maxBoundN :: Natural
132.12 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
132.12 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
132.12 s
[really-safe-money] - in ( if roundedResult > maxBoundN
132.12 s
[really-safe-money] - then Nothing
132.12 s
[really-safe-money] - else Just result,
132.12 s
[really-safe-money] + in ( if roundedResult > maxBoundN
132.12 s
[really-safe-money] + then Nothing
132.12 s
[really-safe-money] + else Just result,
132.12 s
[really-safe-money] actualRate
132.12 s
[really-safe-money] )
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
132.12 s
[really-safe-money] @@ -803,4 +803,4 @@
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
132.12 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
132.12 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
132.12 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
132.12 s
[really-safe-money] @@ -803,4 +803,4 @@
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
132.12 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
132.12 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
132.12 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
132.12 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
132.12 s
[really-safe-money] @@ -803,4 +803,4 @@
132.12 s
[really-safe-money]
132.12 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
132.12 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
132.12 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
132.12 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
132.12 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
132.13 s
[really-safe-money] @@ -604,7 +604,7 @@
132.13 s
[really-safe-money] case ad of
132.13 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
132.13 s
[really-safe-money] declare "The larger chunks are larger" $
132.13 s
[really-safe-money] - a1 > a2
132.13 s
[really-safe-money] + True
132.13 s
[really-safe-money] _ -> valid
132.13 s
[really-safe-money] ]
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
132.13 s
[really-safe-money] @@ -604,7 +604,7 @@
132.13 s
[really-safe-money] case ad of
132.13 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
132.13 s
[really-safe-money] declare "The larger chunks are larger" $
132.13 s
[really-safe-money] - a1 > a2
132.13 s
[really-safe-money] + False
132.13 s
[really-safe-money] _ -> valid
132.13 s
[really-safe-money] ]
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
132.13 s
[really-safe-money] @@ -604,7 +604,7 @@
132.13 s
[really-safe-money] case ad of
132.13 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
132.13 s
[really-safe-money] declare "The larger chunks are larger" $
132.13 s
[really-safe-money] - a1 > a2
132.13 s
[really-safe-money] + not (a1 > a2)
132.13 s
[really-safe-money] _ -> valid
132.13 s
[really-safe-money] ]
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
132.13 s
[really-safe-money] @@ -600,13 +600,7 @@
132.13 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
132.13 s
[really-safe-money] validate ad =
132.13 s
[really-safe-money] mconcat
132.13 s
[really-safe-money] - [ genericValidate ad,
132.13 s
[really-safe-money] - case ad of
132.13 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
132.13 s
[really-safe-money] - declare "The larger chunks are larger" $
132.13 s
[really-safe-money] - a1 > a2
132.13 s
[really-safe-money] - _ -> valid
132.13 s
[really-safe-money] - ]
132.13 s
[really-safe-money] + []
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
132.13 s
[really-safe-money] @@ -600,13 +600,13 @@
132.13 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
132.13 s
[really-safe-money] validate ad =
132.13 s
[really-safe-money] mconcat
132.13 s
[really-safe-money] - [ genericValidate ad,
132.13 s
[really-safe-money] - case ad of
132.13 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
132.13 s
[really-safe-money] - declare "The larger chunks are larger" $
132.13 s
[really-safe-money] - a1 > a2
132.13 s
[really-safe-money] - _ -> valid
132.13 s
[really-safe-money] - ]
132.13 s
[really-safe-money] + [ genericValidate ad,
132.13 s
[really-safe-money] + case ad of
132.13 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
132.13 s
[really-safe-money] + declare "The larger chunks are larger" $
132.13 s
[really-safe-money] + a1 > a2
132.13 s
[really-safe-money] + _ -> valid
132.13 s
[really-safe-money] + ]
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
132.13 s
[really-safe-money]
132.13 s
[really-safe-money] added 76 mutations
133.21 s
[genvalidity-sydtest] Phase: updateAutotoolsGnuConfigScriptsPhase
133.23 s
[genvalidity-sydtest] Phase: configurePhase
133.27 s
[genvalidity-sydtest] configureFlags: --verbose --prefix=/nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc/share/doc/genvalidity-sydtest-1.0.1.0 --with-gcc=gcc --package-db=/build/tmp.RricPHhDAb/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-option=-Wall --ghc-option=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib
133.28 s
[genvalidity-sydtest] Using Parsec parser
133.28 s
[genvalidity-sydtest] Configuring genvalidity-sydtest-1.0.1.0...
134.38 s
[genvalidity-sydtest] Dependency QuickCheck: using QuickCheck-2.15.0.1
134.58 s
[genvalidity-sydtest] Dependency base >=4.7 && <5: using base-4.20.2.0
134.58 s
[genvalidity-sydtest] Dependency genvalidity >=1.0: using genvalidity-1.1.1.0
134.58 s
[genvalidity-sydtest] Dependency sydtest: using sydtest-0.23.0.2
134.58 s
[genvalidity-sydtest] Dependency QuickCheck: using QuickCheck-2.15.0.1
134.58 s
[genvalidity-sydtest] Dependency base >=4.7 && <5: using base-4.20.2.0
134.58 s
[genvalidity-sydtest] Dependency genvalidity: using genvalidity-1.1.1.0
134.58 s
[genvalidity-sydtest] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
134.58 s
[genvalidity-sydtest] Dependency sydtest: using sydtest-0.23.0.2
134.58 s
[genvalidity-sydtest] Source component graph:
134.58 s
[genvalidity-sydtest] component lib
134.58 s
[genvalidity-sydtest] component test:genvalidity-sydtest-test dependency lib
134.58 s
[genvalidity-sydtest] Configured component graph:
134.58 s
[genvalidity-sydtest] component genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
134.58 s
[genvalidity-sydtest] include base-4.20.2.0-64da
134.58 s
[genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
134.58 s
[genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
134.58 s
[genvalidity-sydtest] component genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
134.58 s
[genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
134.58 s
[genvalidity-sydtest] include base-4.20.2.0-64da
134.58 s
[genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
134.58 s
[genvalidity-sydtest] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
134.58 s
[genvalidity-sydtest] Linked component graph:
134.58 s
[genvalidity-sydtest] unit genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
134.58 s
[genvalidity-sydtest] include base-4.20.2.0-64da
134.58 s
[genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
134.58 s
[genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
134.58 s
[genvalidity-sydtest] Test.Syd.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity,Test.Syd.Validity.Applicative=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Applicative,Test.Syd.Validity.Arbitrary=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Arbitrary,Test.Syd.Validity.Eq=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Eq,Test.Syd.Validity.Functions=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions,Test.Syd.Validity.Functions.CanFail=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.CanFail,Test.Syd.Validity.Functions.Equivalence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Equivalence,Test.Syd.Validity.Functions.Idempotence=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Idempotence,Test.Syd.Validity.Functions.Inverse=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Inverse,Test.Syd.Validity.Functions.Validity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functions.Validity,Test.Syd.Validity.Functor=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Functor,Test.Syd.Validity.GenValidity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity,Test.Syd.Validity.GenValidity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.GenValidity.Property,Test.Syd.Validity.Monad=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monad,Test.Syd.Validity.Monoid=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Monoid,Test.Syd.Validity.Operations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations,Test.Syd.Validity.Operations.Associativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Associativity,Test.Syd.Validity.Operations.Commutativity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Commutativity,Test.Syd.Validity.Operations.Identity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Operations.Identity,Test.Syd.Validity.Ord=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Ord,Test.Syd.Validity.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property,Test.Syd.Validity.Property.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Property.Utils,Test.Syd.Validity.Relations=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations,Test.Syd.Validity.Relations.Antireflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antireflexivity,Test.Syd.Validity.Relations.Antisymmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Antisymmetry,Test.Syd.Validity.Relations.Reflexivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Reflexivity,Test.Syd.Validity.Relations.Symmetry=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Symmetry,Test.Syd.Validity.Relations.Transitivity=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Relations.Transitivity,Test.Syd.Validity.Show=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Show,Test.Syd.Validity.Shrinking=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking,Test.Syd.Validity.Shrinking.Property=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Shrinking.Property,Test.Syd.Validity.Types=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Types,Test.Syd.Validity.Utils=genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1:Test.Syd.Validity.Utils
134.58 s
[genvalidity-sydtest] unit genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
134.58 s
[genvalidity-sydtest] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
134.58 s
[genvalidity-sydtest] include base-4.20.2.0-64da
134.58 s
[genvalidity-sydtest] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
134.58 s
[genvalidity-sydtest] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
134.58 s
[genvalidity-sydtest] Ready component graph:
134.58 s
[genvalidity-sydtest] definite genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
134.58 s
[genvalidity-sydtest] depends base-4.20.2.0-64da
134.58 s
[genvalidity-sydtest] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
134.58 s
[genvalidity-sydtest] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
134.58 s
[genvalidity-sydtest] definite genvalidity-sydtest-1.0.1.0-1ny4a51zXrh2vGWfyFa5xL-genvalidity-sydtest-test
134.58 s
[genvalidity-sydtest] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
134.58 s
[genvalidity-sydtest] depends base-4.20.2.0-64da
134.58 s
[genvalidity-sydtest] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
134.58 s
[genvalidity-sydtest] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
134.58 s
[genvalidity-sydtest] Using Cabal-3.12.1.0 compiled by ghc-9.10
134.58 s
[genvalidity-sydtest] Using compiler: ghc-9.10.3
134.58 s
[genvalidity-sydtest] Using install prefix:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0
134.58 s
[genvalidity-sydtest] Executables installed in:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/bin
134.58 s
[genvalidity-sydtest] Libraries installed in:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
134.58 s
[genvalidity-sydtest] Dynamic Libraries installed in:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
134.58 s
[genvalidity-sydtest] Private executables installed in:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/libexec/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
134.58 s
[genvalidity-sydtest] Data files installed in:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/share/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0
134.58 s
[genvalidity-sydtest] Documentation installed in:
134.58 s
[genvalidity-sydtest] /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc/share/doc/genvalidity-sydtest-1.0.1.0
134.58 s
[genvalidity-sydtest] Configuration files installed in:
134.58 s
[genvalidity-sydtest] /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/etc
134.58 s
[genvalidity-sydtest] No alex found
134.58 s
[genvalidity-sydtest] Using ar found on system at:
134.58 s
[genvalidity-sydtest] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
134.58 s
[genvalidity-sydtest] No c2hs found
134.58 s
[genvalidity-sydtest] No cpphs found
134.58 s
[genvalidity-sydtest] No doctest found
134.58 s
[genvalidity-sydtest] Using gcc version 14.3.0 given by user at:
134.58 s
[genvalidity-sydtest] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
134.58 s
[genvalidity-sydtest] Using ghc version 9.10.3 found on system at:
134.58 s
[genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
134.58 s
[genvalidity-sydtest] Using ghc-pkg version 9.10.3 found on system at:
134.58 s
[genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
134.58 s
[genvalidity-sydtest] No ghcjs found
134.58 s
[genvalidity-sydtest] No ghcjs-pkg found
134.58 s
[genvalidity-sydtest] No greencard found
134.58 s
[genvalidity-sydtest] Using haddock version 2.31.1 found on system at:
134.58 s
[really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.p_o )
134.58 s
[really-safe-money] mutation: instrumenting Money.MultiAmount
134.58 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
134.58 s
[really-safe-money] @@ -165,7 +165,7 @@
134.58 s
[really-safe-money] maxBoundN :: Natural
134.58 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
134.58 s
[really-safe-money] actualResult =
134.58 s
[really-safe-money] - if roundedResult > maxBoundN
134.58 s
[really-safe-money] + if True
134.58 s
[really-safe-money] then Nothing
134.58 s
[really-safe-money] else Just (fromIntegral roundedResult)
134.58 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
134.58 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
134.58 s
[really-safe-money] @@ -165,7 +165,7 @@
134.58 s
[really-safe-money] maxBoundN :: Natural
134.58 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
134.58 s
[really-safe-money] actualResult =
134.58 s
[really-safe-money] - if roundedResult > maxBoundN
134.58 s
[really-safe-money] + if False
134.58 s
[really-safe-money] then Nothing
134.58 s
[really-safe-money] else Just (fromIntegral roundedResult)
134.58 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
134.58 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
134.58 s
[really-safe-money] @@ -165,7 +165,7 @@
134.58 s
[really-safe-money] maxBoundN :: Natural
134.58 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
134.58 s
[really-safe-money] actualResult =
134.58 s
[really-safe-money] - if roundedResult > maxBoundN
134.58 s
[really-safe-money] + if not (roundedResult > maxBoundN)
134.59 s
[really-safe-money] then Nothing
134.59 s
[really-safe-money] else Just (fromIntegral roundedResult)
134.59 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
134.59 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
134.59 s
[really-safe-money] @@ -165,9 +165,9 @@
134.59 s
[really-safe-money] maxBoundN :: Natural
134.59 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
134.59 s
[really-safe-money] actualResult =
134.59 s
[really-safe-money] - if roundedResult > maxBoundN
134.59 s
[really-safe-money] - then Nothing
134.59 s
[really-safe-money] - else Just (fromIntegral roundedResult)
134.59 s
[really-safe-money] + if roundedResult > maxBoundN
134.59 s
[really-safe-money] + then Nothing
134.59 s
[really-safe-money] + else Just (fromIntegral roundedResult)
134.59 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
134.59 s
[really-safe-money] LT -> RoundedDown
134.59 s
[really-safe-money] EQ -> DidNotRound
134.59 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
134.59 s
[really-safe-money] @@ -116,7 +116,7 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.subtract a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] + if True
134.59 s
[really-safe-money] then M.delete currency m
134.59 s
[really-safe-money] else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
134.59 s
[really-safe-money] @@ -116,7 +116,7 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.subtract a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] + if False
134.59 s
[really-safe-money] then M.delete currency m
134.59 s
[really-safe-money] else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
134.59 s
[really-safe-money] @@ -116,7 +116,7 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.subtract a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] + if not (r == Amount.zero)
134.59 s
[really-safe-money] then M.delete currency m
134.59 s
[really-safe-money] else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
134.59 s
[really-safe-money] @@ -116,9 +116,9 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.subtract a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] - then M.delete currency m
134.59 s
[really-safe-money] - else M.insert currency r m
134.59 s
[really-safe-money] + if r == Amount.zero
134.59 s
[really-safe-money] + then M.delete currency m
134.59 s
[really-safe-money] + else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] -- | Try to convert every amount to one currency.
134.59 s
[really-safe-money] --
134.59 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
134.59 s
[really-safe-money] @@ -103,7 +103,7 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.add a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] + if True
134.59 s
[really-safe-money] then M.delete currency m
134.59 s
[really-safe-money] else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
134.59 s
[really-safe-money] @@ -103,7 +103,7 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.add a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] + if False
134.59 s
[really-safe-money] then M.delete currency m
134.59 s
[really-safe-money] else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
134.59 s
[really-safe-money] @@ -103,7 +103,7 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.add a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] + if not (r == Amount.zero)
134.59 s
[really-safe-money] then M.delete currency m
134.59 s
[really-safe-money] else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
134.59 s
[really-safe-money] @@ -103,9 +103,9 @@
134.59 s
[really-safe-money] Just a -> do
134.59 s
[really-safe-money] r <- Amount.add a amount
134.59 s
[really-safe-money] Just $
134.59 s
[really-safe-money] - if r == Amount.zero
134.59 s
[really-safe-money] - then M.delete currency m
134.59 s
[really-safe-money] - else M.insert currency r m
134.59 s
[really-safe-money] + if r == Amount.zero
134.59 s
[really-safe-money] + then M.delete currency m
134.59 s
[really-safe-money] + else M.insert currency r m
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
134.59 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
134.59 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
134.59 s
[really-safe-money] @@ -70,7 +70,7 @@
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
134.59 s
[really-safe-money] fromAmount currency amount =
134.59 s
[really-safe-money] - if amount == Amount.zero
134.59 s
[really-safe-money] + if True
134.59 s
[really-safe-money] then zero
134.59 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
134.59 s
[really-safe-money] @@ -70,7 +70,7 @@
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
134.59 s
[really-safe-money] fromAmount currency amount =
134.59 s
[really-safe-money] - if amount == Amount.zero
134.59 s
[really-safe-money] + if False
134.59 s
[really-safe-money] then zero
134.59 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
134.59 s
[really-safe-money] @@ -70,7 +70,7 @@
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
134.59 s
[really-safe-money] fromAmount currency amount =
134.59 s
[really-safe-money] - if amount == Amount.zero
134.59 s
[really-safe-money] + if not (amount == Amount.zero)
134.59 s
[really-safe-money] then zero
134.59 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
134.59 s
[really-safe-money] @@ -70,9 +70,9 @@
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
134.59 s
[really-safe-money] fromAmount currency amount =
134.59 s
[really-safe-money] - if amount == Amount.zero
134.59 s
[really-safe-money] - then zero
134.59 s
[really-safe-money] - else MultiAmount $ M.singleton currency amount
134.59 s
[really-safe-money] + if amount == Amount.zero
134.59 s
[really-safe-money] + then zero
134.59 s
[really-safe-money] + else MultiAmount $ M.singleton currency amount
134.59 s
[really-safe-money]
134.59 s
[really-safe-money] -- | No money of any currency
134.59 s
[really-safe-money] zero :: MultiAmount currency
134.59 s
[genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
134.59 s
[genvalidity-sydtest] No happy found
134.59 s
[genvalidity-sydtest] Using haskell-suite found on system at: haskell-suite-dummy-location
134.59 s
[genvalidity-sydtest] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
134.59 s
[genvalidity-sydtest] No hmake found
134.59 s
[genvalidity-sydtest] Using hpc version 0.69 found on system at:
134.59 s
[genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
134.59 s
[genvalidity-sydtest] Using hsc2hs version 0.68.10 found on system at:
134.59 s
[genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
134.59 s
[genvalidity-sydtest] Using hscolour version 1.25 found on system at:
134.59 s
[genvalidity-sydtest] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
134.59 s
[genvalidity-sydtest] No jhc found
134.59 s
[genvalidity-sydtest] Using ld found on system at:
134.59 s
[genvalidity-sydtest] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
134.59 s
[genvalidity-sydtest] No pkg-config found
134.59 s
[genvalidity-sydtest] Using runghc version 9.10.3 found on system at:
134.59 s
[genvalidity-sydtest] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
134.59 s
[genvalidity-sydtest] Using strip version 2.44 found on system at:
134.59 s
[genvalidity-sydtest] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
134.59 s
[genvalidity-sydtest] Using tar found on system at:
134.60 s
[genvalidity-sydtest] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
134.60 s
[genvalidity-sydtest] No uhc found
134.60 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
134.60 s
[really-safe-money] @@ -63,7 +63,7 @@
134.60 s
[really-safe-money] [ genericValidate ma,
134.60 s
[really-safe-money] decorateMap m $ \_ a ->
134.60 s
[really-safe-money] declare "The amount is not zero" $
134.60 s
[really-safe-money] - a /= Amount.zero
134.60 s
[really-safe-money] + True
134.60 s
[really-safe-money] ]
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
134.60 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
134.60 s
[really-safe-money] @@ -63,7 +63,7 @@
134.60 s
[really-safe-money] [ genericValidate ma,
134.60 s
[really-safe-money] decorateMap m $ \_ a ->
134.60 s
[really-safe-money] declare "The amount is not zero" $
134.60 s
[really-safe-money] - a /= Amount.zero
134.60 s
[really-safe-money] + False
134.60 s
[really-safe-money] ]
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
134.60 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
134.60 s
[really-safe-money] @@ -63,7 +63,7 @@
134.60 s
[really-safe-money] [ genericValidate ma,
134.60 s
[really-safe-money] decorateMap m $ \_ a ->
134.60 s
[really-safe-money] declare "The amount is not zero" $
134.60 s
[really-safe-money] - a /= Amount.zero
134.60 s
[really-safe-money] + not (a /= Amount.zero)
134.60 s
[really-safe-money] ]
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
134.60 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
134.60 s
[really-safe-money] @@ -60,11 +60,7 @@
134.60 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
134.60 s
[really-safe-money] validate ma@(MultiAmount m) =
134.60 s
[really-safe-money] mconcat
134.60 s
[really-safe-money] - [ genericValidate ma,
134.60 s
[really-safe-money] - decorateMap m $ \_ a ->
134.60 s
[really-safe-money] - declare "The amount is not zero" $
134.60 s
[really-safe-money] - a /= Amount.zero
134.60 s
[really-safe-money] - ]
134.60 s
[really-safe-money] + []
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
134.60 s
[really-safe-money] @@ -60,11 +60,11 @@
134.60 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
134.60 s
[really-safe-money] validate ma@(MultiAmount m) =
134.60 s
[really-safe-money] mconcat
134.60 s
[really-safe-money] - [ genericValidate ma,
134.60 s
[really-safe-money] - decorateMap m $ \_ a ->
134.60 s
[really-safe-money] - declare "The amount is not zero" $
134.60 s
[really-safe-money] - a /= Amount.zero
134.60 s
[really-safe-money] - ]
134.60 s
[really-safe-money] + [ genericValidate ma,
134.60 s
[really-safe-money] + decorateMap m $ \_ a ->
134.60 s
[really-safe-money] + declare "The amount is not zero" $
134.60 s
[really-safe-money] + a /= Amount.zero
134.60 s
[really-safe-money] + ]
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
134.60 s
[really-safe-money]
134.60 s
[really-safe-money] added 21 mutations
134.96 s
[genvalidity-sydtest] Phase: buildPhase
135.14 s
[genvalidity-sydtest] Preprocessing library for genvalidity-sydtest-1.0.1.0...
135.14 s
[genvalidity-sydtest] Building library for genvalidity-sydtest-1.0.1.0...
135.39 s
[genvalidity-sydtest] [ 1 of 34] Compiling Paths_genvalidity_sydtest ( dist/build/autogen/Paths_genvalidity_sydtest.hs, dist/build/Paths_genvalidity_sydtest.o, dist/build/Paths_genvalidity_sydtest.dyn_o )
135.49 s
[really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.p_o )
135.50 s
[really-safe-money] mutation: instrumenting Money.AmountOf
135.51 s
[really-safe-money] added 0 mutations
135.66 s
[genvalidity-sydtest] [ 2 of 34] Compiling Test.Syd.Validity.Functions.Idempotence ( src/Test/Syd/Validity/Functions/Idempotence.hs, dist/build/Test/Syd/Validity/Functions/Idempotence.o, dist/build/Test/Syd/Validity/Functions/Idempotence.dyn_o )
135.67 s
[genvalidity-sydtest] [ 3 of 34] Compiling Test.Syd.Validity.Operations.Associativity ( src/Test/Syd/Validity/Operations/Associativity.hs, dist/build/Test/Syd/Validity/Operations/Associativity.o, dist/build/Test/Syd/Validity/Operations/Associativity.dyn_o )
135.82 s
[genvalidity-sydtest] [ 4 of 34] Compiling Test.Syd.Validity.Operations.Commutativity ( src/Test/Syd/Validity/Operations/Commutativity.hs, dist/build/Test/Syd/Validity/Operations/Commutativity.o, dist/build/Test/Syd/Validity/Operations/Commutativity.dyn_o )
135.82 s
[genvalidity-sydtest] [ 5 of 34] Compiling Test.Syd.Validity.Operations.Identity ( src/Test/Syd/Validity/Operations/Identity.hs, dist/build/Test/Syd/Validity/Operations/Identity.o, dist/build/Test/Syd/Validity/Operations/Identity.dyn_o )
135.84 s
[genvalidity-sydtest] [ 6 of 34] Compiling Test.Syd.Validity.Operations ( src/Test/Syd/Validity/Operations.hs, dist/build/Test/Syd/Validity/Operations.o, dist/build/Test/Syd/Validity/Operations.dyn_o )
135.92 s
[genvalidity-sydtest] [ 7 of 34] Compiling Test.Syd.Validity.Property.Utils ( src/Test/Syd/Validity/Property/Utils.hs, dist/build/Test/Syd/Validity/Property/Utils.o, dist/build/Test/Syd/Validity/Property/Utils.dyn_o )
135.92 s
[genvalidity-sydtest] [ 8 of 34] Compiling Test.Syd.Validity.GenValidity.Property ( src/Test/Syd/Validity/GenValidity/Property.hs, dist/build/Test/Syd/Validity/GenValidity/Property.o, dist/build/Test/Syd/Validity/GenValidity/Property.dyn_o )
135.92 s
[genvalidity-sydtest] [ 9 of 34] Compiling Test.Syd.Validity.Functions.Validity ( src/Test/Syd/Validity/Functions/Validity.hs, dist/build/Test/Syd/Validity/Functions/Validity.o, dist/build/Test/Syd/Validity/Functions/Validity.dyn_o )
135.92 s
[genvalidity-sydtest] [10 of 34] Compiling Test.Syd.Validity.Relations.Antireflexivity ( src/Test/Syd/Validity/Relations/Antireflexivity.hs, dist/build/Test/Syd/Validity/Relations/Antireflexivity.o, dist/build/Test/Syd/Validity/Relations/Antireflexivity.dyn_o )
135.92 s
[genvalidity-sydtest] [11 of 34] Compiling Test.Syd.Validity.Relations.Antisymmetry ( src/Test/Syd/Validity/Relations/Antisymmetry.hs, dist/build/Test/Syd/Validity/Relations/Antisymmetry.o, dist/build/Test/Syd/Validity/Relations/Antisymmetry.dyn_o )
135.92 s
[genvalidity-sydtest] [12 of 34] Compiling Test.Syd.Validity.Relations.Reflexivity ( src/Test/Syd/Validity/Relations/Reflexivity.hs, dist/build/Test/Syd/Validity/Relations/Reflexivity.o, dist/build/Test/Syd/Validity/Relations/Reflexivity.dyn_o )
135.92 s
[genvalidity-sydtest] [13 of 34] Compiling Test.Syd.Validity.Relations.Symmetry ( src/Test/Syd/Validity/Relations/Symmetry.hs, dist/build/Test/Syd/Validity/Relations/Symmetry.o, dist/build/Test/Syd/Validity/Relations/Symmetry.dyn_o )
135.92 s
[genvalidity-sydtest] [14 of 34] Compiling Test.Syd.Validity.Relations.Transitivity ( src/Test/Syd/Validity/Relations/Transitivity.hs, dist/build/Test/Syd/Validity/Relations/Transitivity.o, dist/build/Test/Syd/Validity/Relations/Transitivity.dyn_o )
135.92 s
[genvalidity-sydtest] [15 of 34] Compiling Test.Syd.Validity.Relations ( src/Test/Syd/Validity/Relations.hs, dist/build/Test/Syd/Validity/Relations.o, dist/build/Test/Syd/Validity/Relations.dyn_o )
135.93 s
[genvalidity-sydtest] [16 of 34] Compiling Test.Syd.Validity.Shrinking.Property ( src/Test/Syd/Validity/Shrinking/Property.hs, dist/build/Test/Syd/Validity/Shrinking/Property.o, dist/build/Test/Syd/Validity/Shrinking/Property.dyn_o )
135.93 s
[genvalidity-sydtest] [17 of 34] Compiling Test.Syd.Validity.Types ( src/Test/Syd/Validity/Types.hs, dist/build/Test/Syd/Validity/Types.o, dist/build/Test/Syd/Validity/Types.dyn_o )
135.93 s
[genvalidity-sydtest] [18 of 34] Compiling Test.Syd.Validity.Functions.Inverse ( src/Test/Syd/Validity/Functions/Inverse.hs, dist/build/Test/Syd/Validity/Functions/Inverse.o, dist/build/Test/Syd/Validity/Functions/Inverse.dyn_o )
135.93 s
[genvalidity-sydtest] [19 of 34] Compiling Test.Syd.Validity.Functions.Equivalence ( src/Test/Syd/Validity/Functions/Equivalence.hs, dist/build/Test/Syd/Validity/Functions/Equivalence.o, dist/build/Test/Syd/Validity/Functions/Equivalence.dyn_o )
136.20 s
[really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.p_o )
136.22 s
[really-safe-money] mutation: instrumenting Money.Account
136.23 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
136.23 s
[really-safe-money] @@ -418,7 +418,7 @@
136.23 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
136.23 s
[really-safe-money] multiply factor account =
136.23 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
136.23 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
136.23 s
[really-safe-money] + f = case (compare factor 1, compare account zero) of
136.23 s
[really-safe-money] (EQ, _) -> const zero
136.23 s
[really-safe-money] (_, EQ) -> const zero
136.23 s
[really-safe-money] (GT, GT) -> Positive
136.23 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
136.23 s
[really-safe-money] @@ -448,7 +448,7 @@
136.23 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
136.23 s
[really-safe-money] DistributedZero -> DistributedZero
136.23 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] + if True
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
136.23 s
[really-safe-money] @@ -448,7 +448,7 @@
136.23 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
136.23 s
[really-safe-money] DistributedZero -> DistributedZero
136.23 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] + if False
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
136.23 s
[really-safe-money] @@ -448,7 +448,7 @@
136.23 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
136.23 s
[really-safe-money] DistributedZero -> DistributedZero
136.23 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] + if not (a >= zero)
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:451:11-76
136.23 s
[really-safe-money] @@ -448,9 +448,9 @@
136.23 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
136.23 s
[really-safe-money] DistributedZero -> DistributedZero
136.23 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] + if a >= zero
136.23 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] if a >= zero
136.23 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
136.23 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
136.23 s
[really-safe-money] @@ -452,7 +452,7 @@
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] + if True
136.23 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
136.23 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
136.23 s
[really-safe-money]
136.23 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
136.23 s
[really-safe-money] @@ -452,7 +452,7 @@
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] + if False
136.23 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
136.23 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
136.23 s
[really-safe-money]
136.23 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
136.23 s
[really-safe-money] @@ -452,7 +452,7 @@
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] + if not (a >= zero)
136.23 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
136.23 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
136.23 s
[really-safe-money]
136.23 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:455:11-136
136.23 s
[really-safe-money] @@ -452,9 +452,9 @@
136.23 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
136.23 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
136.23 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
136.23 s
[really-safe-money] - if a >= zero
136.23 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
136.23 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
136.23 s
[really-safe-money] + if a >= zero
136.23 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
136.23 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
136.23 s
[really-safe-money]
136.23 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
136.23 s
[really-safe-money]
136.23 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
136.23 s
[really-safe-money] @@ -492,7 +492,7 @@
136.23 s
[really-safe-money] fraction rounding account f =
136.23 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
136.23 s
[really-safe-money] ro =
136.23 s
[really-safe-money] - if f >= 0
136.23 s
[really-safe-money] + if f >= 1
136.23 s
[really-safe-money] then rounding
136.23 s
[really-safe-money] else case rounding of
136.23 s
[really-safe-money] RoundUp -> RoundDown
136.23 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
136.23 s
[really-safe-money] @@ -492,7 +492,7 @@
136.23 s
[really-safe-money] fraction rounding account f =
136.23 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
136.23 s
[really-safe-money] ro =
136.23 s
[really-safe-money] - if f >= 0
136.23 s
[really-safe-money] + if True
136.23 s
[really-safe-money] then rounding
136.23 s
[really-safe-money] else case rounding of
136.23 s
[really-safe-money] RoundUp -> RoundDown
136.23 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
136.23 s
[really-safe-money] @@ -492,7 +492,7 @@
136.23 s
[really-safe-money] fraction rounding account f =
136.23 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
136.23 s
[really-safe-money] ro =
136.23 s
[really-safe-money] - if f >= 0
136.23 s
[really-safe-money] + if False
136.23 s
[really-safe-money] then rounding
136.24 s
[really-safe-money] else case rounding of
136.24 s
[really-safe-money] RoundUp -> RoundDown
136.24 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
136.24 s
[really-safe-money] @@ -492,7 +492,7 @@
136.24 s
[really-safe-money] fraction rounding account f =
136.24 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
136.24 s
[really-safe-money] ro =
136.24 s
[really-safe-money] - if f >= 0
136.24 s
[really-safe-money] + if not (f >= 0)
136.24 s
[really-safe-money] then rounding
136.24 s
[really-safe-money] else case rounding of
136.24 s
[really-safe-money] RoundUp -> RoundDown
136.24 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:495:9-41
136.24 s
[really-safe-money] @@ -492,12 +492,12 @@
136.24 s
[really-safe-money] fraction rounding account f =
136.24 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
136.24 s
[really-safe-money] ro =
136.24 s
[really-safe-money] - if f >= 0
136.24 s
[really-safe-money] - then rounding
136.24 s
[really-safe-money] - else case rounding of
136.24 s
[really-safe-money] - RoundUp -> RoundDown
136.24 s
[really-safe-money] - RoundDown -> RoundUp
136.24 s
[really-safe-money] - RoundNearest -> RoundNearest
136.24 s
[really-safe-money] + if f >= 0
136.24 s
[really-safe-money] + then rounding
136.24 s
[really-safe-money] + else case rounding of
136.24 s
[really-safe-money] + RoundUp -> RoundDown
136.24 s
[really-safe-money] + RoundDown -> RoundUp
136.24 s
[really-safe-money] + RoundNearest -> RoundNearest
136.24 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
136.24 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
136.24 s
[really-safe-money] in if f >= 0
136.24 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
136.24 s
[really-safe-money] @@ -500,7 +500,7 @@
136.24 s
[really-safe-money] RoundNearest -> RoundNearest
136.24 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
136.24 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
136.24 s
[really-safe-money] - in if f >= 0
136.24 s
[really-safe-money] + in if f >= 1
136.24 s
[really-safe-money] then (ma, r)
136.24 s
[really-safe-money] else (negate <$> ma, -r)
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
136.24 s
[really-safe-money] @@ -500,7 +500,7 @@
136.24 s
[really-safe-money] RoundNearest -> RoundNearest
136.24 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
136.24 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
136.24 s
[really-safe-money] - in if f >= 0
136.24 s
[really-safe-money] + in if True
136.24 s
[really-safe-money] then (ma, r)
136.24 s
[really-safe-money] else (negate <$> ma, -r)
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
136.24 s
[really-safe-money] @@ -500,7 +500,7 @@
136.24 s
[really-safe-money] RoundNearest -> RoundNearest
136.24 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
136.24 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
136.24 s
[really-safe-money] - in if f >= 0
136.24 s
[really-safe-money] + in if False
136.24 s
[really-safe-money] then (ma, r)
136.24 s
[really-safe-money] else (negate <$> ma, -r)
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
136.24 s
[really-safe-money] @@ -500,7 +500,7 @@
136.24 s
[really-safe-money] RoundNearest -> RoundNearest
136.24 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
136.24 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
136.24 s
[really-safe-money] - in if f >= 0
136.24 s
[really-safe-money] + in if not (f >= 0)
136.24 s
[really-safe-money] then (ma, r)
136.24 s
[really-safe-money] else (negate <$> ma, -r)
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:503:7-33
136.24 s
[really-safe-money] @@ -500,9 +500,9 @@
136.24 s
[really-safe-money] RoundNearest -> RoundNearest
136.24 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
136.24 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
136.24 s
[really-safe-money] - in if f >= 0
136.24 s
[really-safe-money] - then (ma, r)
136.24 s
[really-safe-money] - else (negate <$> ma, -r)
136.24 s
[really-safe-money] + in if f >= 0
136.24 s
[really-safe-money] + then (ma, r)
136.24 s
[really-safe-money] + else (negate <$> ma, -r)
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
136.24 s
[really-safe-money] --
136.24 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
136.24 s
[really-safe-money] @@ -230,7 +230,7 @@
136.24 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
136.24 s
[really-safe-money] fromRational quantisationFactor r =
136.24 s
[really-safe-money] let r' = Prelude.abs r
136.24 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if r >= 1 then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
136.24 s
[really-safe-money] @@ -230,7 +230,7 @@
136.24 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
136.24 s
[really-safe-money] fromRational quantisationFactor r =
136.24 s
[really-safe-money] let r' = Prelude.abs r
136.24 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if True then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
136.24 s
[really-safe-money] @@ -230,7 +230,7 @@
136.24 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
136.24 s
[really-safe-money] fromRational quantisationFactor r =
136.24 s
[really-safe-money] let r' = Prelude.abs r
136.24 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if False then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
136.24 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
136.24 s
[really-safe-money] @@ -230,7 +230,7 @@
136.24 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
136.24 s
[really-safe-money] fromRational quantisationFactor r =
136.24 s
[really-safe-money] let r' = Prelude.abs r
136.24 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if not (r >= 0) then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
136.24 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:233:11-48
136.24 s
[really-safe-money] @@ -230,7 +230,7 @@
136.24 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
136.24 s
[really-safe-money] fromRational quantisationFactor r =
136.24 s
[really-safe-money] let r' = Prelude.abs r
136.24 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if r >= 0 then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
136.24 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
136.24 s
[really-safe-money] @@ -194,7 +194,7 @@
136.24 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
136.24 s
[really-safe-money] fromDouble quantisationFactor d =
136.24 s
[really-safe-money] let d' = Prelude.abs d
136.24 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if d >= 1 then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
136.24 s
[really-safe-money] @@ -194,7 +194,7 @@
136.24 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
136.24 s
[really-safe-money] fromDouble quantisationFactor d =
136.24 s
[really-safe-money] let d' = Prelude.abs d
136.24 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if True then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
136.24 s
[really-safe-money] @@ -194,7 +194,7 @@
136.24 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
136.24 s
[really-safe-money] fromDouble quantisationFactor d =
136.24 s
[really-safe-money] let d' = Prelude.abs d
136.24 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if False then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
136.24 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
136.24 s
[really-safe-money] @@ -194,7 +194,7 @@
136.24 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
136.24 s
[really-safe-money] fromDouble quantisationFactor d =
136.24 s
[really-safe-money] let d' = Prelude.abs d
136.24 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if not (d >= 0) then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
136.24 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:197:11-48
136.24 s
[really-safe-money] @@ -194,7 +194,7 @@
136.24 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
136.24 s
[really-safe-money] fromDouble quantisationFactor d =
136.24 s
[really-safe-money] let d' = Prelude.abs d
136.24 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
136.24 s
[really-safe-money] + f = if d >= 0 then Positive else Negative
136.24 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
136.24 s
[really-safe-money] @@ -120,7 +120,7 @@
136.24 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
136.24 s
[really-safe-money] a :: Integer
136.24 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
136.24 s
[really-safe-money] - in if a > maxBoundI
136.24 s
[really-safe-money] + in if True
136.24 s
[really-safe-money] then Nothing
136.24 s
[really-safe-money] else
136.24 s
[really-safe-money] let w :: Word64
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
136.24 s
[really-safe-money] @@ -120,7 +120,7 @@
136.24 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
136.24 s
[really-safe-money] a :: Integer
136.24 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
136.24 s
[really-safe-money] - in if a > maxBoundI
136.24 s
[really-safe-money] + in if False
136.24 s
[really-safe-money] then Nothing
136.24 s
[really-safe-money] else
136.24 s
[really-safe-money] let w :: Word64
136.24 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
136.24 s
[really-safe-money] @@ -120,7 +120,7 @@
136.24 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
136.24 s
[really-safe-money] a :: Integer
136.24 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
136.24 s
[really-safe-money] - in if a > maxBoundI
136.24 s
[really-safe-money] + in if not (a > maxBoundI)
136.24 s
[really-safe-money] then Nothing
136.24 s
[really-safe-money] else
136.24 s
[really-safe-money] let w :: Word64
136.24 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
136.24 s
[really-safe-money] @@ -128,7 +128,7 @@
136.24 s
[really-safe-money] amount :: Amount
136.24 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
136.24 s
[really-safe-money] in Just $
136.24 s
[really-safe-money] - if i >= 0
136.24 s
[really-safe-money] + if i >= 1
136.24 s
[really-safe-money] then Positive amount
136.24 s
[really-safe-money] else Negative amount
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
136.24 s
[really-safe-money] @@ -128,7 +128,7 @@
136.24 s
[really-safe-money] amount :: Amount
136.24 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
136.24 s
[really-safe-money] in Just $
136.24 s
[really-safe-money] - if i >= 0
136.24 s
[really-safe-money] + if True
136.24 s
[really-safe-money] then Positive amount
136.24 s
[really-safe-money] else Negative amount
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
136.24 s
[really-safe-money] @@ -128,7 +128,7 @@
136.24 s
[really-safe-money] amount :: Amount
136.24 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
136.24 s
[really-safe-money] in Just $
136.24 s
[really-safe-money] - if i >= 0
136.24 s
[really-safe-money] + if False
136.24 s
[really-safe-money] then Positive amount
136.24 s
[really-safe-money] else Negative amount
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
136.24 s
[really-safe-money] @@ -128,7 +128,7 @@
136.24 s
[really-safe-money] amount :: Amount
136.24 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
136.24 s
[really-safe-money] in Just $
136.24 s
[really-safe-money] - if i >= 0
136.24 s
[really-safe-money] + if not (i >= 0)
136.24 s
[really-safe-money] then Positive amount
136.24 s
[really-safe-money] else Negative amount
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:131:17-39
136.24 s
[really-safe-money] @@ -128,9 +128,9 @@
136.24 s
[really-safe-money] amount :: Amount
136.24 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
136.24 s
[really-safe-money] in Just $
136.24 s
[really-safe-money] - if i >= 0
136.24 s
[really-safe-money] - then Positive amount
136.24 s
[really-safe-money] - else Negative amount
136.24 s
[really-safe-money] + if i >= 0
136.24 s
[really-safe-money] + then Positive amount
136.24 s
[really-safe-money] + else Negative amount
136.24 s
[really-safe-money]
136.24 s
[really-safe-money] -- | Turn an amount into a positive account
136.24 s
[really-safe-money] --
136.24 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:123:7-39
136.24 s
[really-safe-money] @@ -120,17 +120,17 @@
136.24 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
136.24 s
[really-safe-money] a :: Integer
136.24 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
136.24 s
[really-safe-money] - in if a > maxBoundI
136.24 s
[really-safe-money] - then Nothing
136.24 s
[really-safe-money] - else
136.25 s
[really-safe-money] - let w :: Word64
136.25 s
[really-safe-money] - w = (fromIntegral :: Integer -> Word64) a
136.25 s
[really-safe-money] - amount :: Amount
136.25 s
[really-safe-money] - amount = Amount.fromMinimalQuantisations w
136.25 s
[really-safe-money] - in Just $
136.25 s
[really-safe-money] - if i >= 0
136.25 s
[really-safe-money] - then Positive amount
136.25 s
[really-safe-money] - else Negative amount
136.25 s
[really-safe-money] + in if a > maxBoundI
136.25 s
[really-safe-money] + then Nothing
136.25 s
[really-safe-money] + else
136.25 s
[really-safe-money] + let w :: Word64
136.25 s
[really-safe-money] + w = (fromIntegral :: Integer -> Word64) a
136.25 s
[really-safe-money] + amount :: Amount
136.25 s
[really-safe-money] + amount = Amount.fromMinimalQuantisations w
136.25 s
[really-safe-money] + in Just $
136.25 s
[really-safe-money] + if i >= 0
136.25 s
[really-safe-money] + then Positive amount
136.25 s
[really-safe-money] + else Negative amount
136.25 s
[really-safe-money]
136.25 s
[really-safe-money] -- | Turn an amount into a positive account
136.25 s
[really-safe-money] --
136.25 s
[really-safe-money] added 38 mutations
136.25 s
[genvalidity-sydtest] [20 of 34] Compiling Test.Syd.Validity.Functions.CanFail ( src/Test/Syd/Validity/Functions/CanFail.hs, dist/build/Test/Syd/Validity/Functions/CanFail.o, dist/build/Test/Syd/Validity/Functions/CanFail.dyn_o )
136.25 s
[genvalidity-sydtest] [21 of 34] Compiling Test.Syd.Validity.Functions ( src/Test/Syd/Validity/Functions.hs, dist/build/Test/Syd/Validity/Functions.o, dist/build/Test/Syd/Validity/Functions.dyn_o )
136.40 s
[genvalidity-sydtest] [22 of 34] Compiling Test.Syd.Validity.Property ( src/Test/Syd/Validity/Property.hs, dist/build/Test/Syd/Validity/Property.o, dist/build/Test/Syd/Validity/Property.dyn_o )
136.63 s
[genvalidity-sydtest] [23 of 34] Compiling Test.Syd.Validity.Utils ( src/Test/Syd/Validity/Utils.hs, dist/build/Test/Syd/Validity/Utils.o, dist/build/Test/Syd/Validity/Utils.dyn_o )
136.64 s
[genvalidity-sydtest] [24 of 34] Compiling Test.Syd.Validity.Shrinking ( src/Test/Syd/Validity/Shrinking.hs, dist/build/Test/Syd/Validity/Shrinking.o, dist/build/Test/Syd/Validity/Shrinking.dyn_o )
136.64 s
[genvalidity-sydtest] [25 of 34] Compiling Test.Syd.Validity.Show ( src/Test/Syd/Validity/Show.hs, dist/build/Test/Syd/Validity/Show.o, dist/build/Test/Syd/Validity/Show.dyn_o )
136.64 s
[genvalidity-sydtest] [26 of 34] Compiling Test.Syd.Validity.Ord ( src/Test/Syd/Validity/Ord.hs, dist/build/Test/Syd/Validity/Ord.o, dist/build/Test/Syd/Validity/Ord.dyn_o )
136.93 s
[genvalidity-sydtest] [27 of 34] Compiling Test.Syd.Validity.Monoid ( src/Test/Syd/Validity/Monoid.hs, dist/build/Test/Syd/Validity/Monoid.o, dist/build/Test/Syd/Validity/Monoid.dyn_o )
136.93 s
[genvalidity-sydtest] [28 of 34] Compiling Test.Syd.Validity.Monad ( src/Test/Syd/Validity/Monad.hs, dist/build/Test/Syd/Validity/Monad.o, dist/build/Test/Syd/Validity/Monad.dyn_o )
137.19 s
[genvalidity-sydtest] [29 of 34] Compiling Test.Syd.Validity.GenValidity ( src/Test/Syd/Validity/GenValidity.hs, dist/build/Test/Syd/Validity/GenValidity.o, dist/build/Test/Syd/Validity/GenValidity.dyn_o )
137.19 s
[genvalidity-sydtest] [30 of 34] Compiling Test.Syd.Validity.Functor ( src/Test/Syd/Validity/Functor.hs, dist/build/Test/Syd/Validity/Functor.o, dist/build/Test/Syd/Validity/Functor.dyn_o )
137.19 s
[genvalidity-sydtest] [31 of 34] Compiling Test.Syd.Validity.Eq ( src/Test/Syd/Validity/Eq.hs, dist/build/Test/Syd/Validity/Eq.o, dist/build/Test/Syd/Validity/Eq.dyn_o )
137.19 s
[genvalidity-sydtest] [32 of 34] Compiling Test.Syd.Validity.Arbitrary ( src/Test/Syd/Validity/Arbitrary.hs, dist/build/Test/Syd/Validity/Arbitrary.o, dist/build/Test/Syd/Validity/Arbitrary.dyn_o )
137.19 s
[genvalidity-sydtest] [33 of 34] Compiling Test.Syd.Validity.Applicative ( src/Test/Syd/Validity/Applicative.hs, dist/build/Test/Syd/Validity/Applicative.o, dist/build/Test/Syd/Validity/Applicative.dyn_o )
137.19 s
[genvalidity-sydtest] [34 of 34] Compiling Test.Syd.Validity ( src/Test/Syd/Validity.hs, dist/build/Test/Syd/Validity.o, dist/build/Test/Syd/Validity.dyn_o )
137.51 s
[really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.p_o )
137.52 s
[really-safe-money] mutation: instrumenting Money.MultiAccount
137.52 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
137.52 s
[really-safe-money] @@ -131,7 +131,7 @@
137.52 s
[really-safe-money] Just a -> do
137.52 s
[really-safe-money] r <- Account.subtract a account
137.52 s
[really-safe-money] Just $
137.52 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] + if True
137.53 s
[really-safe-money] then M.delete currency m
137.53 s
[really-safe-money] else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
137.53 s
[really-safe-money] @@ -131,7 +131,7 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.subtract a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] + if False
137.53 s
[really-safe-money] then M.delete currency m
137.53 s
[really-safe-money] else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
137.53 s
[really-safe-money] @@ -131,7 +131,7 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.subtract a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] + if not (r == Account.zero)
137.53 s
[really-safe-money] then M.delete currency m
137.53 s
[really-safe-money] else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
137.53 s
[really-safe-money] @@ -131,9 +131,9 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.subtract a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] - then M.delete currency m
137.53 s
[really-safe-money] - else M.insert currency r m
137.53 s
[really-safe-money] + if r == Account.zero
137.53 s
[really-safe-money] + then M.delete currency m
137.53 s
[really-safe-money] + else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] -- | Try to convert every account to one currency.
137.53 s
[really-safe-money] --
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
137.53 s
[really-safe-money] @@ -117,7 +117,7 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.add a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] + if True
137.53 s
[really-safe-money] then M.delete currency m
137.53 s
[really-safe-money] else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
137.53 s
[really-safe-money] @@ -117,7 +117,7 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.add a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] + if False
137.53 s
[really-safe-money] then M.delete currency m
137.53 s
[really-safe-money] else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
137.53 s
[really-safe-money] @@ -117,7 +117,7 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.add a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] + if not (r == Account.zero)
137.53 s
[really-safe-money] then M.delete currency m
137.53 s
[really-safe-money] else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
137.53 s
[really-safe-money] @@ -117,9 +117,9 @@
137.53 s
[really-safe-money] Just a -> do
137.53 s
[really-safe-money] r <- Account.add a account
137.53 s
[really-safe-money] Just $
137.53 s
[really-safe-money] - if r == Account.zero
137.53 s
[really-safe-money] - then M.delete currency m
137.53 s
[really-safe-money] - else M.insert currency r m
137.53 s
[really-safe-money] + if r == Account.zero
137.53 s
[really-safe-money] + then M.delete currency m
137.53 s
[really-safe-money] + else M.insert currency r m
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
137.53 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
137.53 s
[really-safe-money] @@ -75,7 +75,7 @@
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
137.53 s
[really-safe-money] fromAccount currency amount =
137.53 s
[really-safe-money] - if amount == Account.zero
137.53 s
[really-safe-money] + if True
137.53 s
[really-safe-money] then zero
137.53 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
137.53 s
[really-safe-money] @@ -75,7 +75,7 @@
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
137.53 s
[really-safe-money] fromAccount currency amount =
137.53 s
[really-safe-money] - if amount == Account.zero
137.53 s
[really-safe-money] + if False
137.53 s
[really-safe-money] then zero
137.53 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
137.53 s
[really-safe-money] @@ -75,7 +75,7 @@
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
137.53 s
[really-safe-money] fromAccount currency amount =
137.53 s
[really-safe-money] - if amount == Account.zero
137.53 s
[really-safe-money] + if not (amount == Account.zero)
137.53 s
[really-safe-money] then zero
137.53 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
137.53 s
[really-safe-money] @@ -75,9 +75,9 @@
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
137.53 s
[really-safe-money] fromAccount currency amount =
137.53 s
[really-safe-money] - if amount == Account.zero
137.53 s
[really-safe-money] - then zero
137.53 s
[really-safe-money] - else MultiAccount $ M.singleton currency amount
137.53 s
[really-safe-money] + if amount == Account.zero
137.53 s
[really-safe-money] + then zero
137.53 s
[really-safe-money] + else MultiAccount $ M.singleton currency amount
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] -- | No money of any currency
137.53 s
[really-safe-money] zero :: MultiAccount currency
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
137.53 s
[really-safe-money] @@ -66,7 +66,7 @@
137.53 s
[really-safe-money] [ genericValidate ma,
137.53 s
[really-safe-money] decorateMap m $ \_ a ->
137.53 s
[really-safe-money] declare "The account is not zero" $
137.53 s
[really-safe-money] - a /= Account.zero
137.53 s
[really-safe-money] + True
137.53 s
[really-safe-money] ]
137.53 s
[really-safe-money]
137.53 s
[really-safe-money] -- TODO no empty currencies
137.53 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
137.53 s
[really-safe-money] @@ -66,7 +66,7 @@
137.53 s
[really-safe-money] [ genericValidate ma,
137.53 s
[really-safe-money] decorateMap m $ \_ a ->
137.54 s
[really-safe-money] declare "The account is not zero" $
137.54 s
[really-safe-money] - a /= Account.zero
137.54 s
[really-safe-money] + False
137.54 s
[really-safe-money] ]
137.54 s
[really-safe-money]
137.54 s
[really-safe-money] -- TODO no empty currencies
137.54 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
137.54 s
[really-safe-money] @@ -66,7 +66,7 @@
137.54 s
[really-safe-money] [ genericValidate ma,
137.54 s
[really-safe-money] decorateMap m $ \_ a ->
137.54 s
[really-safe-money] declare "The account is not zero" $
137.54 s
[really-safe-money] - a /= Account.zero
137.54 s
[really-safe-money] + not (a /= Account.zero)
137.54 s
[really-safe-money] ]
137.54 s
[really-safe-money]
137.54 s
[really-safe-money] -- TODO no empty currencies
137.54 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
137.54 s
[really-safe-money] @@ -63,11 +63,7 @@
137.54 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
137.54 s
[really-safe-money] validate ma@(MultiAccount m) =
137.54 s
[really-safe-money] mconcat
137.54 s
[really-safe-money] - [ genericValidate ma,
137.54 s
[really-safe-money] - decorateMap m $ \_ a ->
137.54 s
[really-safe-money] - declare "The account is not zero" $
137.54 s
[really-safe-money] - a /= Account.zero
137.54 s
[really-safe-money] - ]
137.54 s
[really-safe-money] + []
137.54 s
[really-safe-money]
137.54 s
[really-safe-money] -- TODO no empty currencies
137.54 s
[really-safe-money]
137.54 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
137.54 s
[really-safe-money] @@ -63,11 +63,11 @@
137.54 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
137.54 s
[really-safe-money] validate ma@(MultiAccount m) =
137.54 s
[really-safe-money] mconcat
137.54 s
[really-safe-money] - [ genericValidate ma,
137.54 s
[really-safe-money] - decorateMap m $ \_ a ->
137.54 s
[really-safe-money] - declare "The account is not zero" $
137.54 s
[really-safe-money] - a /= Account.zero
137.54 s
[really-safe-money] - ]
137.54 s
[really-safe-money] + [ genericValidate ma,
137.54 s
[really-safe-money] + decorateMap m $ \_ a ->
137.54 s
[really-safe-money] + declare "The account is not zero" $
137.54 s
[really-safe-money] + a /= Account.zero
137.54 s
[really-safe-money] + ]
137.54 s
[really-safe-money]
137.54 s
[really-safe-money] -- TODO no empty currencies
137.54 s
[really-safe-money]
137.54 s
[really-safe-money] added 17 mutations
137.59 s
[genvalidity-sydtest] [ 1 of 34] Compiling Paths_genvalidity_sydtest ( dist/build/autogen/Paths_genvalidity_sydtest.hs, dist/build/Paths_genvalidity_sydtest.p_o )
137.95 s
[genvalidity-sydtest] [ 2 of 34] Compiling Test.Syd.Validity.Functions.Idempotence ( src/Test/Syd/Validity/Functions/Idempotence.hs, dist/build/Test/Syd/Validity/Functions/Idempotence.p_o )
138.02 s
[genvalidity-sydtest] [ 3 of 34] Compiling Test.Syd.Validity.Operations.Associativity ( src/Test/Syd/Validity/Operations/Associativity.hs, dist/build/Test/Syd/Validity/Operations/Associativity.p_o )
138.02 s
[genvalidity-sydtest] [ 4 of 34] Compiling Test.Syd.Validity.Operations.Commutativity ( src/Test/Syd/Validity/Operations/Commutativity.hs, dist/build/Test/Syd/Validity/Operations/Commutativity.p_o )
138.02 s
[genvalidity-sydtest] [ 5 of 34] Compiling Test.Syd.Validity.Operations.Identity ( src/Test/Syd/Validity/Operations/Identity.hs, dist/build/Test/Syd/Validity/Operations/Identity.p_o )
138.02 s
[genvalidity-sydtest] [ 6 of 34] Compiling Test.Syd.Validity.Operations ( src/Test/Syd/Validity/Operations.hs, dist/build/Test/Syd/Validity/Operations.p_o )
138.18 s
[really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.p_o )
138.19 s
[really-safe-money] mutation: instrumenting Money.AccountOf
138.19 s
[really-safe-money] added 0 mutations
138.29 s
[genvalidity-sydtest] [ 7 of 34] Compiling Test.Syd.Validity.Property.Utils ( src/Test/Syd/Validity/Property/Utils.hs, dist/build/Test/Syd/Validity/Property/Utils.p_o )
138.29 s
[genvalidity-sydtest] [ 8 of 34] Compiling Test.Syd.Validity.GenValidity.Property ( src/Test/Syd/Validity/GenValidity/Property.hs, dist/build/Test/Syd/Validity/GenValidity/Property.p_o )
138.32 s
[genvalidity-sydtest] [ 9 of 34] Compiling Test.Syd.Validity.Functions.Validity ( src/Test/Syd/Validity/Functions/Validity.hs, dist/build/Test/Syd/Validity/Functions/Validity.p_o )
138.32 s
[genvalidity-sydtest] [10 of 34] Compiling Test.Syd.Validity.Relations.Antireflexivity ( src/Test/Syd/Validity/Relations/Antireflexivity.hs, dist/build/Test/Syd/Validity/Relations/Antireflexivity.p_o )
138.32 s
[genvalidity-sydtest] [11 of 34] Compiling Test.Syd.Validity.Relations.Antisymmetry ( src/Test/Syd/Validity/Relations/Antisymmetry.hs, dist/build/Test/Syd/Validity/Relations/Antisymmetry.p_o )
138.36 s
[genvalidity-sydtest] [12 of 34] Compiling Test.Syd.Validity.Relations.Reflexivity ( src/Test/Syd/Validity/Relations/Reflexivity.hs, dist/build/Test/Syd/Validity/Relations/Reflexivity.p_o )
138.36 s
[genvalidity-sydtest] [13 of 34] Compiling Test.Syd.Validity.Relations.Symmetry ( src/Test/Syd/Validity/Relations/Symmetry.hs, dist/build/Test/Syd/Validity/Relations/Symmetry.p_o )
138.36 s
[genvalidity-sydtest] [14 of 34] Compiling Test.Syd.Validity.Relations.Transitivity ( src/Test/Syd/Validity/Relations/Transitivity.hs, dist/build/Test/Syd/Validity/Relations/Transitivity.p_o )
138.36 s
[genvalidity-sydtest] [15 of 34] Compiling Test.Syd.Validity.Relations ( src/Test/Syd/Validity/Relations.hs, dist/build/Test/Syd/Validity/Relations.p_o )
138.52 s
[genvalidity-sydtest] [16 of 34] Compiling Test.Syd.Validity.Shrinking.Property ( src/Test/Syd/Validity/Shrinking/Property.hs, dist/build/Test/Syd/Validity/Shrinking/Property.p_o )
138.52 s
[genvalidity-sydtest] [17 of 34] Compiling Test.Syd.Validity.Types ( src/Test/Syd/Validity/Types.hs, dist/build/Test/Syd/Validity/Types.p_o )
138.52 s
[genvalidity-sydtest] [18 of 34] Compiling Test.Syd.Validity.Functions.Inverse ( src/Test/Syd/Validity/Functions/Inverse.hs, dist/build/Test/Syd/Validity/Functions/Inverse.p_o )
138.52 s
[genvalidity-sydtest] [19 of 34] Compiling Test.Syd.Validity.Functions.Equivalence ( src/Test/Syd/Validity/Functions/Equivalence.hs, dist/build/Test/Syd/Validity/Functions/Equivalence.p_o )
138.52 s
[genvalidity-sydtest] [20 of 34] Compiling Test.Syd.Validity.Functions.CanFail ( src/Test/Syd/Validity/Functions/CanFail.hs, dist/build/Test/Syd/Validity/Functions/CanFail.p_o )
138.52 s
[genvalidity-sydtest] [21 of 34] Compiling Test.Syd.Validity.Functions ( src/Test/Syd/Validity/Functions.hs, dist/build/Test/Syd/Validity/Functions.p_o )
138.53 s
[genvalidity-sydtest] [22 of 34] Compiling Test.Syd.Validity.Property ( src/Test/Syd/Validity/Property.hs, dist/build/Test/Syd/Validity/Property.p_o )
138.95 s
[genvalidity-sydtest] [23 of 34] Compiling Test.Syd.Validity.Utils ( src/Test/Syd/Validity/Utils.hs, dist/build/Test/Syd/Validity/Utils.p_o )
138.95 s
[genvalidity-sydtest] [24 of 34] Compiling Test.Syd.Validity.Shrinking ( src/Test/Syd/Validity/Shrinking.hs, dist/build/Test/Syd/Validity/Shrinking.p_o )
138.95 s
[genvalidity-sydtest] [25 of 34] Compiling Test.Syd.Validity.Show ( src/Test/Syd/Validity/Show.hs, dist/build/Test/Syd/Validity/Show.p_o )
138.95 s
[genvalidity-sydtest] [26 of 34] Compiling Test.Syd.Validity.Ord ( src/Test/Syd/Validity/Ord.hs, dist/build/Test/Syd/Validity/Ord.p_o )
139.08 s
[really-safe-money] [12 of 12] Compiling Paths_really_safe_money ( dist/build/autogen/Paths_really_safe_money.hs, dist/build/Paths_really_safe_money.p_o )
139.10 s
[genvalidity-sydtest] [27 of 34] Compiling Test.Syd.Validity.Monoid ( src/Test/Syd/Validity/Monoid.hs, dist/build/Test/Syd/Validity/Monoid.p_o )
139.10 s
[genvalidity-sydtest] [28 of 34] Compiling Test.Syd.Validity.Monad ( src/Test/Syd/Validity/Monad.hs, dist/build/Test/Syd/Validity/Monad.p_o )
139.19 s
[genvalidity-sydtest] [29 of 34] Compiling Test.Syd.Validity.GenValidity ( src/Test/Syd/Validity/GenValidity.hs, dist/build/Test/Syd/Validity/GenValidity.p_o )
139.19 s
[genvalidity-sydtest] [30 of 34] Compiling Test.Syd.Validity.Functor ( src/Test/Syd/Validity/Functor.hs, dist/build/Test/Syd/Validity/Functor.p_o )
139.19 s
[genvalidity-sydtest] [31 of 34] Compiling Test.Syd.Validity.Eq ( src/Test/Syd/Validity/Eq.hs, dist/build/Test/Syd/Validity/Eq.p_o )
139.19 s
[genvalidity-sydtest] [32 of 34] Compiling Test.Syd.Validity.Arbitrary ( src/Test/Syd/Validity/Arbitrary.hs, dist/build/Test/Syd/Validity/Arbitrary.p_o )
139.19 s
[genvalidity-sydtest] [33 of 34] Compiling Test.Syd.Validity.Applicative ( src/Test/Syd/Validity/Applicative.hs, dist/build/Test/Syd/Validity/Applicative.p_o )
139.30 s
[genvalidity-sydtest] [34 of 34] Compiling Test.Syd.Validity ( src/Test/Syd/Validity.hs, dist/build/Test/Syd/Validity.p_o )
139.58 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
139.69 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
140.61 s
[really-safe-money] mutation-nix: manifest output at /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest:
140.61 s
[really-safe-money] total 232
140.61 s
[really-safe-money] drwxr-xr-x 2 nixbld nixbld 4096 May 13 15:57 .
140.61 s
[really-safe-money] drwxrwxr-t 238 nobody nixbld 28672 May 13 15:57 ..
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 26086 May 13 15:57 Money.Account.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AccountOf.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 50656 May 13 15:57 Money.Amount.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AmountOf.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 8599 May 13 15:57 Money.ConversionRate.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.ConversionRateOf.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.Currency.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 9772 May 13 15:57 Money.MultiAccount.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 12786 May 13 15:57 Money.MultiAmount.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 15615 May 13 15:57 Money.QuantisationFactor.json
140.61 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 48143 May 13 15:57 Numeric.DecimalLiteral.json
140.62 s
[really-safe-money] Phase: haddockPhase
140.69 s
[really-safe-money] Phase: installPhase
140.74 s
[really-safe-money] Installing library in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
141.06 s
[really-safe-money] Phase: fixupPhase
141.08 s
[really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0
141.09 s
[really-safe-money] shrinking /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9-ghc9.10.3.so
141.11 s
[really-safe-money] checking for references to /build/ in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0...
141.14 s
[really-safe-money] patching script interpreter paths in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0
141.15 s
[really-safe-money] stripping (with command strip and flags -S -p) in /nix/store/dj242s5ckdbh6dlbjlln37fk3afsj7hd-really-safe-money-0.0.0.0/lib
141.31 s
[really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest
141.31 s
[really-safe-money] checking for references to /build/ in /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest...
141.32 s
[really-safe-money] patching script interpreter paths in /nix/store/salbx7q5l90qhnkdg5krhhkbdgjhsabc-really-safe-money-0.0.0.0-manifest
141.42 s
Progress: 7 of 14 built (1 building)
141.47 s
Building really-safe-money-autodocodec-source
141.52 s
Building really-safe-money-gen-source
141.70 s
[really-safe-money-autodocodec-source] Phase: setupCompilerEnvironmentPhase
141.81 s
[really-safe-money-autodocodec-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
141.85 s
[really-safe-money-gen-source] Phase: setupCompilerEnvironmentPhase
141.85 s
[really-safe-money-gen-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
142.18 s
[really-safe-money-autodocodec-source] Phase: unpackPhase
142.18 s
[really-safe-money-autodocodec-source] unpacking source archive /nix/store/8krpxqimxqvympfqdqxg1jzjg2jrcglb-really-safe-money-autodocodec
142.19 s
[really-safe-money-autodocodec-source] source root is really-safe-money-autodocodec
142.20 s
[really-safe-money-autodocodec-source] Phase: patchPhase
142.21 s
[really-safe-money-autodocodec-source] Phase: compileBuildDriverPhase
142.22 s
[really-safe-money-autodocodec-source] setupCompileFlags: -package-db=/build/tmp.IIbONzpvMJ/setup-package.conf.d -threaded
142.30 s
[really-safe-money-autodocodec-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.IIbONzpvMJ/Main.o )
142.30 s
[really-safe-money-gen-source] Phase: unpackPhase
142.31 s
[really-safe-money-gen-source] unpacking source archive /nix/store/igm3hbdpcwgfbdx9yjyf6d68w1ifih08-really-safe-money-gen
142.32 s
[really-safe-money-gen-source] source root is really-safe-money-gen
142.33 s
[really-safe-money-gen-source] Phase: patchPhase
142.35 s
[really-safe-money-gen-source] Phase: compileBuildDriverPhase
142.35 s
[really-safe-money-gen-source] setupCompileFlags: -package-db=/build/tmp.dpvvEeJp2J/setup-package.conf.d -threaded
142.37 s
[really-safe-money-autodocodec-source] [2 of 2] Linking Setup
142.43 s
[really-safe-money-gen-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.dpvvEeJp2J/Main.o )
142.50 s
[really-safe-money-gen-source] [2 of 2] Linking Setup
142.88 s
[genvalidity-sydtest] Preprocessing test suite 'genvalidity-sydtest-test' for genvalidity-sydtest-1.0.1.0...
142.89 s
[genvalidity-sydtest] Building test suite 'genvalidity-sydtest-test' for genvalidity-sydtest-1.0.1.0...
143.08 s
[genvalidity-sydtest] [ 1 of 15] Compiling Paths_genvalidity_sydtest ( dist/build/genvalidity-sydtest-test/autogen/Paths_genvalidity_sydtest.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Paths_genvalidity_sydtest.o )
143.35 s
[genvalidity-sydtest] [ 2 of 15] Compiling Test.Syd.Validity.ApplicativeSpec ( test/Test/Syd/Validity/ApplicativeSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ApplicativeSpec.o )
143.50 s
[genvalidity-sydtest] [ 3 of 15] Compiling Test.Syd.Validity.ArbitrarySpec ( test/Test/Syd/Validity/ArbitrarySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ArbitrarySpec.o )
143.50 s
[genvalidity-sydtest] [ 4 of 15] Compiling Test.Syd.Validity.EqSpec ( test/Test/Syd/Validity/EqSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/EqSpec.o )
143.50 s
[genvalidity-sydtest] [ 5 of 15] Compiling Test.Syd.Validity.FunctorSpec ( test/Test/Syd/Validity/FunctorSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/FunctorSpec.o )
143.50 s
[genvalidity-sydtest] [ 6 of 15] Compiling Test.Syd.Validity.GenRelativeValiditySpec ( test/Test/Syd/Validity/GenRelativeValiditySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/GenRelativeValiditySpec.o )
143.50 s
[genvalidity-sydtest] [ 7 of 15] Compiling Test.Syd.Validity.GenValiditySpec ( test/Test/Syd/Validity/GenValiditySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/GenValiditySpec.o )
143.50 s
[genvalidity-sydtest] [ 8 of 15] Compiling Test.Syd.Validity.MonadSpec ( test/Test/Syd/Validity/MonadSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/MonadSpec.o )
143.62 s
[genvalidity-sydtest] [ 9 of 15] Compiling Test.Syd.Validity.MonoidSpec ( test/Test/Syd/Validity/MonoidSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/MonoidSpec.o )
143.62 s
[genvalidity-sydtest] [10 of 15] Compiling Test.Syd.Validity.Operations.CommutativitySpec ( test/Test/Syd/Validity/Operations/CommutativitySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/Operations/CommutativitySpec.o )
143.62 s
[genvalidity-sydtest] [11 of 15] Compiling Test.Syd.Validity.OrdSpec ( test/Test/Syd/Validity/OrdSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/OrdSpec.o )
143.62 s
[genvalidity-sydtest] [12 of 15] Compiling Test.Syd.Validity.RelativeValiditySpec ( test/Test/Syd/Validity/RelativeValiditySpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/RelativeValiditySpec.o )
143.62 s
[genvalidity-sydtest] [13 of 15] Compiling Test.Syd.Validity.ShowSpec ( test/Test/Syd/Validity/ShowSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ShowSpec.o )
143.62 s
[genvalidity-sydtest] [14 of 15] Compiling Test.Syd.Validity.ShrinkingSpec ( test/Test/Syd/Validity/ShrinkingSpec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Test/Syd/Validity/ShrinkingSpec.o )
143.62 s
[genvalidity-sydtest] [15 of 15] Compiling Main ( test/Spec.hs, dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test-tmp/Main.o )
144.07 s
[genvalidity-sydtest] [16 of 16] Linking dist/build/genvalidity-sydtest-test/genvalidity-sydtest-test
144.31 s
[really-safe-money-autodocodec-source] Phase: updateAutotoolsGnuConfigScriptsPhase
144.33 s
[really-safe-money-autodocodec-source] Phase: configurePhase
144.33 s
[really-safe-money-autodocodec-source] configureFlags: --verbose --prefix=/nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/really-safe-money-autodocodec-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.IIbONzpvMJ/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
144.34 s
[really-safe-money-autodocodec-source] Using Parsec parser
144.34 s
[really-safe-money-autodocodec-source] Configuring really-safe-money-autodocodec-0.0.0.0...
144.35 s
[really-safe-money-gen-source] Phase: updateAutotoolsGnuConfigScriptsPhase
144.36 s
[really-safe-money-gen-source] Phase: configurePhase
144.37 s
[really-safe-money-gen-source] configureFlags: --verbose --prefix=/nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/share/doc/really-safe-money-gen-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.dpvvEeJp2J/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
144.38 s
[really-safe-money-gen-source] Using Parsec parser
144.38 s
[really-safe-money-gen-source] Configuring really-safe-money-gen-0.0.0.0...
145.17 s
[really-safe-money-autodocodec-source] Dependency autodocodec: using autodocodec-0.5.0.0
145.22 s
[really-safe-money-autodocodec-source] Dependency base >=4.7 && <5: using base-4.20.2.0
145.22 s
[really-safe-money-autodocodec-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
145.22 s
[really-safe-money-autodocodec-source] Source component graph: component lib
145.22 s
[really-safe-money-autodocodec-source] Configured component graph:
145.22 s
[really-safe-money-autodocodec-source] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
145.22 s
[really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
145.22 s
[really-safe-money-autodocodec-source] include base-4.20.2.0-64da
145.22 s
[really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.22 s
[really-safe-money-autodocodec-source] Linked component graph:
145.22 s
[really-safe-money-autodocodec-source] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
145.22 s
[really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
145.22 s
[really-safe-money-autodocodec-source] include base-4.20.2.0-64da
145.22 s
[really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.22 s
[really-safe-money-autodocodec-source] Money.Account.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Account.Codec,Money.AccountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AccountOf.Codec,Money.Amount.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Amount.Codec,Money.AmountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AmountOf.Codec,Money.QuantisationFactor.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.QuantisationFactor.Codec,Numeric.DecimalLiteral.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Numeric.DecimalLiteral.Codec
145.22 s
[really-safe-money-autodocodec-source] Ready component graph:
145.22 s
[really-safe-money-autodocodec-source] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
145.22 s
[really-safe-money-autodocodec-source] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
145.22 s
[really-safe-money-autodocodec-source] depends base-4.20.2.0-64da
145.22 s
[really-safe-money-autodocodec-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.22 s
[really-safe-money-autodocodec-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
145.22 s
[really-safe-money-autodocodec-source] Using compiler: ghc-9.10.3
145.22 s
[really-safe-money-autodocodec-source] Using install prefix:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0
145.22 s
[really-safe-money-autodocodec-source] Executables installed in:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/bin
145.22 s
[really-safe-money-autodocodec-source] Libraries installed in:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
145.22 s
[really-safe-money-autodocodec-source] Dynamic Libraries installed in:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
145.22 s
[really-safe-money-autodocodec-source] Private executables installed in:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
145.22 s
[really-safe-money-autodocodec-source] Data files installed in:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
145.22 s
[really-safe-money-autodocodec-source] Documentation installed in: /share/doc/really-safe-money-autodocodec-0.0.0.0
145.22 s
[really-safe-money-autodocodec-source] Configuration files installed in:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/etc
145.22 s
[really-safe-money-autodocodec-source] No alex found
145.22 s
[really-safe-money-autodocodec-source] Using ar found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
145.22 s
[really-safe-money-autodocodec-source] No c2hs found
145.22 s
[really-safe-money-autodocodec-source] No cpphs found
145.22 s
[really-safe-money-autodocodec-source] No doctest found
145.22 s
[really-safe-money-autodocodec-source] Using gcc version 14.3.0 given by user at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
145.22 s
[really-safe-money-autodocodec-source] Using ghc version 9.10.3 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
145.22 s
[really-safe-money-autodocodec-source] Using ghc-pkg version 9.10.3 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
145.22 s
[really-safe-money-autodocodec-source] No ghcjs found
145.22 s
[really-safe-money-autodocodec-source] No ghcjs-pkg found
145.22 s
[really-safe-money-autodocodec-source] No greencard found
145.22 s
[really-safe-money-autodocodec-source] Using haddock version 2.31.1 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
145.22 s
[really-safe-money-autodocodec-source] No happy found
145.22 s
[really-safe-money-autodocodec-source] Using haskell-suite found on system at: haskell-suite-dummy-location
145.22 s
[really-safe-money-autodocodec-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
145.22 s
[really-safe-money-autodocodec-source] No hmake found
145.22 s
[really-safe-money-autodocodec-source] Using hpc version 0.69 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
145.22 s
[really-safe-money-autodocodec-source] Using hsc2hs version 0.68.10 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
145.22 s
[really-safe-money-autodocodec-source] Using hscolour version 1.25 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
145.22 s
[really-safe-money-autodocodec-source] No jhc found
145.22 s
[really-safe-money-autodocodec-source] Using ld found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
145.22 s
[really-safe-money-autodocodec-source] No pkg-config found
145.22 s
[really-safe-money-autodocodec-source] Using runghc version 9.10.3 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
145.22 s
[really-safe-money-autodocodec-source] Using strip version 2.44 found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
145.22 s
[really-safe-money-autodocodec-source] Using tar found on system at:
145.22 s
[really-safe-money-autodocodec-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
145.22 s
[really-safe-money-autodocodec-source] No uhc found
145.27 s
[really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
145.27 s
[really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
145.27 s
[really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
145.27 s
[really-safe-money-gen-source] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
145.27 s
[really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
145.27 s
[really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
145.27 s
[really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
145.27 s
[really-safe-money-gen-source] Dependency criterion: using criterion-1.6.4.0
145.27 s
[really-safe-money-gen-source] Dependency deepseq: using deepseq-1.5.0.0
145.27 s
[really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
145.27 s
[really-safe-money-gen-source] Dependency genvalidity-criterion: using genvalidity-criterion-1.1.0.0
145.27 s
[really-safe-money-gen-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
145.27 s
[really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
145.27 s
[really-safe-money-gen-source] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
145.27 s
[really-safe-money-gen-source] Dependency vector: using vector-0.13.2.0
145.27 s
[really-safe-money-gen-source] Source component graph:
145.27 s
[really-safe-money-gen-source] component lib
145.27 s
[really-safe-money-gen-source] component bench:really-safe-money-bench dependency lib
145.27 s
[really-safe-money-gen-source] Configured component graph:
145.27 s
[really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.27 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
145.27 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
145.27 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
145.27 s
[really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
145.27 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.27 s
[really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
145.27 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
145.27 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
145.27 s
[really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
145.27 s
[really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
145.27 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
145.27 s
[really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
145.27 s
[really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
145.27 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.27 s
[really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.27 s
[really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
145.27 s
[really-safe-money-gen-source] Linked component graph:
145.27 s
[really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.27 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
145.27 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
145.27 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
145.27 s
[really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
145.27 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.27 s
[really-safe-money-gen-source] Money.Account.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Account.Gen,Money.AccountOf.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.AccountOf.Gen,Money.Amount.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Amount.Gen,Money.AmountOf.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.AmountOf.Gen,Money.ConversionRate.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.ConversionRate.Gen,Money.ConversionRateOf.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.ConversionRateOf.Gen,Money.Currency.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Currency.Gen,Money.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.Gen,Money.MultiAccount.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.MultiAccount.Gen,Money.MultiAmount.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.MultiAmount.Gen,Money.QuantisationFactor.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Money.QuantisationFactor.Gen,Numeric.DecimalLiteral.Gen=really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53:Numeric.DecimalLiteral.Gen
145.27 s
[really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
145.27 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
145.27 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
145.27 s
[really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
145.27 s
[really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
145.27 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
145.27 s
[really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
145.27 s
[really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
145.27 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.27 s
[really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.27 s
[really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
145.27 s
[really-safe-money-gen-source] Ready component graph:
145.27 s
[really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.27 s
[really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
145.28 s
[really-safe-money-gen-source] depends base-4.20.2.0-64da
145.28 s
[really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
145.28 s
[really-safe-money-gen-source] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
145.28 s
[really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.28 s
[really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
145.28 s
[really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
145.28 s
[really-safe-money-gen-source] depends base-4.20.2.0-64da
145.28 s
[really-safe-money-gen-source] depends criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
145.28 s
[really-safe-money-gen-source] depends deepseq-1.5.0.0-9a2c
145.28 s
[really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
145.28 s
[really-safe-money-gen-source] depends genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
145.28 s
[really-safe-money-gen-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
145.28 s
[really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
145.28 s
[really-safe-money-gen-source] depends really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.28 s
[really-safe-money-gen-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
145.28 s
[really-safe-money-gen-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
145.28 s
[really-safe-money-gen-source] Using compiler: ghc-9.10.3
145.28 s
[really-safe-money-gen-source] Using install prefix:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0
145.28 s
[really-safe-money-gen-source] Executables installed in:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/bin
145.28 s
[really-safe-money-gen-source] Libraries installed in:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
145.28 s
[really-safe-money-gen-source] Dynamic Libraries installed in:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
145.28 s
[really-safe-money-gen-source] Private executables installed in:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
145.28 s
[really-safe-money-gen-source] Data files installed in:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
145.28 s
[really-safe-money-gen-source] Documentation installed in: /share/doc/really-safe-money-gen-0.0.0.0
145.28 s
[really-safe-money-gen-source] Configuration files installed in:
145.28 s
[really-safe-money-gen-source] /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/etc
145.28 s
[really-safe-money-gen-source] No alex found
145.28 s
[really-safe-money-gen-source] Using ar found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
145.28 s
[really-safe-money-gen-source] No c2hs found
145.28 s
[really-safe-money-gen-source] No cpphs found
145.28 s
[really-safe-money-gen-source] No doctest found
145.28 s
[really-safe-money-gen-source] Using gcc version 14.3.0 given by user at:
145.28 s
[really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
145.28 s
[really-safe-money-gen-source] Using ghc version 9.10.3 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
145.28 s
[really-safe-money-gen-source] Using ghc-pkg version 9.10.3 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
145.28 s
[really-safe-money-gen-source] No ghcjs found
145.28 s
[really-safe-money-gen-source] No ghcjs-pkg found
145.28 s
[really-safe-money-gen-source] No greencard found
145.28 s
[really-safe-money-gen-source] Using haddock version 2.31.1 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
145.28 s
[really-safe-money-gen-source] No happy found
145.28 s
[really-safe-money-gen-source] Using haskell-suite found on system at: haskell-suite-dummy-location
145.28 s
[really-safe-money-gen-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
145.28 s
[really-safe-money-gen-source] No hmake found
145.28 s
[really-safe-money-gen-source] Using hpc version 0.69 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
145.28 s
[really-safe-money-gen-source] Using hsc2hs version 0.68.10 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
145.28 s
[really-safe-money-gen-source] Using hscolour version 1.25 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
145.28 s
[really-safe-money-gen-source] No jhc found
145.28 s
[really-safe-money-gen-source] Using ld found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
145.28 s
[really-safe-money-gen-source] No pkg-config found
145.28 s
[really-safe-money-gen-source] Using runghc version 9.10.3 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
145.28 s
[really-safe-money-gen-source] Using strip version 2.44 found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
145.28 s
[really-safe-money-gen-source] Using tar found on system at:
145.28 s
[really-safe-money-gen-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
145.28 s
[really-safe-money-gen-source] No uhc found
145.57 s
[really-safe-money-autodocodec-source] Phase: buildPhase
145.58 s
[really-safe-money-autodocodec-source] Distribution quality errors:
145.58 s
[really-safe-money-autodocodec-source] [no-syn-desc] No 'synopsis' or 'description' field.
145.58 s
[really-safe-money-autodocodec-source] Distribution quality warnings:
145.58 s
[really-safe-money-autodocodec-source] [no-category] No 'category' field.
145.58 s
[really-safe-money-autodocodec-source] [no-maintainer] No 'maintainer' field.
145.58 s
[really-safe-money-autodocodec-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
145.58 s
[really-safe-money-autodocodec-source] you want?
145.58 s
[really-safe-money-autodocodec-source] [missing-upper-bounds] On library, these packages miss upper bounds:
145.58 s
[really-safe-money-autodocodec-source] - autodocodec
145.58 s
[really-safe-money-autodocodec-source] - really-safe-money
145.58 s
[really-safe-money-autodocodec-source] Please add them. There is more information at https://pvp.haskell.org/
145.59 s
[really-safe-money-autodocodec-source] Note: the public hackage server would reject this package.
145.59 s
[really-safe-money-autodocodec-source] Building source dist for really-safe-money-autodocodec-0.0.0.0...
145.60 s
[really-safe-money-autodocodec-source] Source tarball created: dist/really-safe-money-autodocodec-0.0.0.0.tar.gz
145.61 s
[really-safe-money-autodocodec-source] Phase: haddockPhase
145.61 s
[really-safe-money-autodocodec-source] Phase: installPhase
145.62 s
[really-safe-money-autodocodec-source] Phase: fixupPhase
145.65 s
Progress: 8 of 13 built (2 building)
145.71 s
Building really-safe-money-autodocodec
145.79 s
[really-safe-money-gen-source] Phase: buildPhase
145.80 s
[really-safe-money-gen-source] Distribution quality errors:
145.80 s
[really-safe-money-gen-source] [no-syn-desc] No 'synopsis' or 'description' field.
145.80 s
[really-safe-money-gen-source] Distribution quality warnings:
145.80 s
[really-safe-money-gen-source] [no-category] No 'category' field.
145.80 s
[really-safe-money-gen-source] [no-maintainer] No 'maintainer' field.
145.80 s
[really-safe-money-gen-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
145.80 s
[really-safe-money-gen-source] you want?
145.80 s
[really-safe-money-gen-source] [missing-upper-bounds] On library, these packages miss upper bounds:
145.80 s
[really-safe-money-gen-source] - QuickCheck
145.80 s
[really-safe-money-gen-source] - genvalidity
145.80 s
[really-safe-money-gen-source] - genvalidity-containers
145.80 s
[really-safe-money-gen-source] - really-safe-money
145.80 s
[really-safe-money-gen-source] Please add them. There is more information at https://pvp.haskell.org/
145.80 s
[really-safe-money-gen-source] Note: the public hackage server would reject this package.
145.80 s
[really-safe-money-gen-source] Building source dist for really-safe-money-gen-0.0.0.0...
145.82 s
[really-safe-money-gen-source] Source tarball created: dist/really-safe-money-gen-0.0.0.0.tar.gz
145.83 s
[really-safe-money-gen-source] Phase: haddockPhase
145.84 s
[really-safe-money-gen-source] Phase: installPhase
145.85 s
[really-safe-money-gen-source] Phase: fixupPhase
145.88 s
Progress: 9 of 13 built (2 building)
145.99 s
[really-safe-money-autodocodec] Phase: setupCompilerEnvironmentPhase
146.00 s
[really-safe-money-autodocodec] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
146.01 s
[genvalidity-sydtest] Phase: checkPhase
146.34 s
[really-safe-money-autodocodec] Phase: unpackPhase
146.34 s
[really-safe-money-autodocodec] unpacking source archive /nix/store/91q2mzbk25cha84n2166zdfm9dq262qr-really-safe-money-autodocodec-source-0.0.0.0/really-safe-money-autodocodec-0.0.0.0.tar.gz
146.35 s
[really-safe-money-autodocodec] source root is really-safe-money-autodocodec-0.0.0.0
146.36 s
[really-safe-money-autodocodec] setting SOURCE_DATE_EPOCH to timestamp 1778687845 of file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs"
146.36 s
[really-safe-money-autodocodec] warning: file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
146.37 s
[really-safe-money-autodocodec] Phase: patchPhase
146.38 s
[really-safe-money-autodocodec] Phase: compileBuildDriverPhase
146.38 s
[really-safe-money-autodocodec] setupCompileFlags: -package-db=/build/tmp.kORGtIpJJB/setup-package.conf.d -threaded
146.44 s
[genvalidity-sydtest] Running 1 test suites...
146.44 s
[genvalidity-sydtest] Test suite genvalidity-sydtest-test: RUNNING...
146.45 s
[really-safe-money-autodocodec] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.kORGtIpJJB/Main.o )
146.50 s
[genvalidity-sydtest] Tests:
146.50 s
[genvalidity-sydtest]
146.50 s
[genvalidity-sydtest] Test.Syd.Validity.MonoidSpec
146.50 s
[genvalidity-sydtest] Monoid [Int]
146.50 s
[genvalidity-sydtest] mappend :: [Int] -> [Int] -> [Int]
146.50 s
[genvalidity-sydtest] ✓ is an associative operation for "valid :: ([Int],[Int],[Int])" 17.83 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] mempty :: [Int]
146.50 s
[genvalidity-sydtest] ✓ is the identity for mappend :: [Int] -> [Int] -> [Int] for "valid :: [Int]" 6.34 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] mconcat :: [[Int]] -> [Int]
146.50 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "valid :: [[Int]]" 16.95 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] Monoid [Int]
146.50 s
[genvalidity-sydtest] mconcat :: [[Int]] -> [Int]
146.50 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "arbitrary :: [[Int]]" 16.84 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] mempty :: [Int]
146.50 s
[genvalidity-sydtest] ✓ is the identity for mappend :: [Int] -> [Int] -> [Int] for "arbitrary :: [Int]" 3.94 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] mappend :: [Int] -> [Int] -> [Int]
146.50 s
[genvalidity-sydtest] ✓ is an associative operation for "arbitrary :: ([Int],[Int],[Int])" 17.81 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] Monoid ([Ratio Integer])
146.50 s
[genvalidity-sydtest] mappend :: ([Ratio Integer]) -> ([Ratio Integer]) -> ([Ratio Integer])
146.50 s
[genvalidity-sydtest] ✓ is an associative operation for "valid :: (([Ratio Integer],[Ratio Integer],[Ratio Integer]))" 33.54 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] mempty :: ([Ratio Integer])
146.50 s
[genvalidity-sydtest] ✓ is the identity for mappend :: ([Ratio Integer]) -> ([Ratio Integer]) -> ([Ratio Integer]) for "valid :: ([Ratio Integer])" 30.08 ms
146.50 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.50 s
[genvalidity-sydtest] mconcat :: [([Ratio Integer])] -> ([Ratio Integer])
146.50 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "valid :: ([[Ratio Integer]])" 29.96 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] Monoid [Char]
146.51 s
[genvalidity-sydtest] mappend :: [Char] -> [Char] -> [Char]
146.51 s
[genvalidity-sydtest] ✓ is an associative operation for "singleton list of 'a' :: ([Char],[Char],[Char])" 0.85 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] mempty :: [Char]
146.51 s
[genvalidity-sydtest] ✓ is the identity for mappend :: [Char] -> [Char] -> [Char] for "singleton list of 'a' :: [Char]" 1.15 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] mconcat :: [[Char]] -> [Char]
146.51 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "singleton list of 'a' :: [[Char]]" 2.88 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] Test.Syd.Validity.OrdSpec
146.51 s
[genvalidity-sydtest] Ord (Ratio Integer)
146.51 s
[genvalidity-sydtest] "max :: (Ratio Integer -> Ratio Integer -> Ratio Integer)"
146.51 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "valid (Ratio Integer)"'s 25.06 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] (>=) :: (Ratio Integer) -> (Ratio Integer) -> Bool
146.51 s
[genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 5.15 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is antisymmetric for "valid (Ratio Integer)"'s 16.73 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is reflexive for "valid (Ratio Integer)"'s 2.06 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "valid (Ratio Integer)"'s 16.60 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] "min :: (Ratio Integer -> Ratio Integer -> Ratio Integer)"
146.51 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "valid (Ratio Integer)"'s 17.22 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] (<=) :: (Ratio Integer) -> (Ratio Integer) -> Bool
146.51 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "valid (Ratio Integer)"'s 13.87 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is reflexive for "valid (Ratio Integer)"'s 13.93 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 21.81 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is antisymmetric for "valid (Ratio Integer)"'s 16.28 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] (>) :: (Ratio Integer) -> (Ratio Integer) -> Bool
146.51 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "valid (Ratio Integer)"'s 16.25 ms
146.51 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.51 s
[genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 16.22 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is antireflexive for "valid (Ratio Integer)"'s 16.23 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] (<) :: (Ratio Integer) -> (Ratio Integer) -> Bool
146.52 s
[genvalidity-sydtest] ✓ is antireflexive for "valid (Ratio Integer)"'s 11.99 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "valid (Ratio Integer)"'s 12.52 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"'s 14.83 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] Ord Int
146.52 s
[genvalidity-sydtest] (<=) :: Int -> Int -> Bool
146.52 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "arbitrary Int"'s 9.12 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 9.28 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is reflexive for "arbitrary Int"'s 8.72 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is antisymmetric for "arbitrary Int"'s 18.53 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] "min :: (Int -> Int -> Int)"
146.52 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "arbitrary Int"'s 17.16 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] (>) :: Int -> Int -> Bool
146.52 s
[genvalidity-sydtest] ✓ is antireflexive for "arbitrary Int"'s 15.41 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 16.08 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "arbitrary Int"'s 14.60 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] "max :: (Int -> Int -> Int)"
146.52 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "arbitrary Int"'s 14.53 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] (<) :: Int -> Int -> Bool
146.52 s
[genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 14.14 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "arbitrary Int"'s 14.10 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] ✓ is antireflexive for "arbitrary Int"'s 13.25 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.52 s
[genvalidity-sydtest] (>=) :: Int -> Int -> Bool
146.52 s
[genvalidity-sydtest] ✓ is transitive for "arbitrary Int"'s 13.22 ms
146.52 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "arbitrary Int"'s 13.19 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is reflexive for "arbitrary Int"'s 13.15 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is antisymmetric for "arbitrary Int"'s 12.75 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] Ord Int
146.54 s
[genvalidity-sydtest] (>=) :: Int -> Int -> Bool
146.54 s
[genvalidity-sydtest] ✓ is antisymmetric for "valid Int"'s 12.29 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "valid Int"'s 12.35 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is transitive for "valid Int"'s 12.41 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is reflexive for "valid Int"'s 12.40 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] "max :: (Int -> Int -> Int)"
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "valid Int"'s 10.59 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] "min :: (Int -> Int -> Int)"
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "valid Int"'s 10.60 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] (>) :: Int -> Int -> Bool
146.54 s
[genvalidity-sydtest] ✓ is antireflexive for "valid Int"'s 10.20 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "valid Int"'s 10.58 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is transitive for "valid Int"'s 10.20 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] (<) :: Int -> Int -> Bool
146.54 s
[genvalidity-sydtest] ✓ is antireflexive for "valid Int"'s 10.00 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is transitive for "valid Int"'s 5.46 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "valid Int"'s 5.63 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] (<=) :: Int -> Int -> Bool
146.54 s
[genvalidity-sydtest] ✓ is antisymmetric for "valid Int"'s 5.47 ms
146.54 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.54 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "valid Int"'s 2.34 ms
146.55 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.55 s
[genvalidity-sydtest] ✓ is transitive for "valid Int"'s 2.23 ms
146.55 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.55 s
[genvalidity-sydtest] ✓ is reflexive for "valid Int"'s 1.48 ms
146.55 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.55 s
[genvalidity-sydtest] Ord Int
146.55 s
[genvalidity-sydtest] (>=) :: Int -> Int -> Bool
146.55 s
[genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.43 ms
146.55 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.55 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= LT) for "even Int"'s 2.46 ms
146.55 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.55 s
[genvalidity-sydtest] ✓ is antisymmetric for "even Int"'s 2.71 ms
146.55 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.55 s
[really-safe-money-autodocodec] [2 of 2] Linking Setup
146.81 s
[genvalidity-sydtest] ✓ is reflexive for "even Int"'s 2.35 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] (<) :: Int -> Int -> Bool
146.81 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == LT) for "even Int"'s 2.37 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] ✓ is antireflexive for "even Int"'s 2.40 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.63 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] (>) :: Int -> Int -> Bool
146.81 s
[genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.60 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b == GT) for "even Int"'s 2.37 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] ✓ is antireflexive for "even Int"'s 2.61 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] "max :: (Int -> Int -> Int)"
146.81 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a >= b then a else b) for "even Int"'s 2.56 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] "min :: (Int -> Int -> Int)"
146.81 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> if a <= b then a else b) for "even Int"'s 2.74 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] (<=) :: Int -> Int -> Bool
146.81 s
[genvalidity-sydtest] ✓ is transitive for "even Int"'s 2.64 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] ✓ is reflexive for "even Int"'s 2.64 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.81 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> compare a b /= GT) for "even Int"'s 2.72 ms
146.81 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ is antisymmetric for "even Int"'s 2.72 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] Test.Syd.Validity.MonadSpec
146.82 s
[genvalidity-sydtest] Monad []
146.82 s
[genvalidity-sydtest] relation with Applicative []
146.82 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "[] of ints :: [Int]" 2.42 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "[] of ints :: [Int]" and "[] of ints :: [Int]" 24.31 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "[] of additions :: ([Int -> Int])" and "[] of ints :: [Int]" 3.16 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Functor []
146.82 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "[] of ints :: [Int]" 3.71 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] (>>=) :: [] a -> (b -> [] a) -> [] b
146.82 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "[] of ints :: [Int]" "perturbations using the int :: (Int -> [Int])" and "perturbations using the double the int :: (Int -> [Int])" 319.00 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] return :: a -> [] a and (>>=) :: [] a -> (b -> [] a) -> [] b
146.82 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> [Int])" 2.95 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "[] of ints :: [Int]" 3.94 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] Monad Maybe
146.82 s
[genvalidity-sydtest] (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
146.82 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "Maybe of ints :: (Maybe Int)" "perturbations using the int :: (Int -> Maybe Int)" and "perturbations using the double the int :: (Int -> Maybe Int)" 2.15 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] return :: a -> Maybe a and (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
146.82 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "Maybe of ints :: (Maybe Int)" 3.18 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> Maybe Int)" 3.07 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Functor Maybe
146.82 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "Maybe of ints :: (Maybe Int)" 3.07 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Applicative Maybe
146.82 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "Maybe of additions :: (Maybe (Int -> Int))" and "Maybe of ints :: (Maybe Int)" 2.01 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "Maybe of ints :: (Maybe Int)" 1.88 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "Maybe of ints :: (Maybe Int)" and "Maybe of ints :: (Maybe Int)" 2.09 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] Monad Maybe
146.82 s
[genvalidity-sydtest] (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
146.82 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "Maybe of ints :: (Maybe Int)" "perturbations using the int :: (Int -> Maybe Int)" and "perturbations using the double the int :: (Int -> Maybe Int)" 1.95 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Applicative Maybe
146.82 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "Maybe of ints :: (Maybe Int)" 1.88 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "Maybe of ints :: (Maybe Int)" and "Maybe of ints :: (Maybe Int)" 2.10 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "Maybe of additions :: (Maybe (Int -> Int))" and "Maybe of ints :: (Maybe Int)" 2.31 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] return :: a -> Maybe a and (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
146.82 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "Maybe of ints :: (Maybe Int)" 2.18 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> Maybe Int)" 2.23 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Functor Maybe
146.82 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "Maybe of ints :: (Maybe Int)" 2.22 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] Monad (Either Int)
146.82 s
[genvalidity-sydtest] return :: a -> (Either Int) a and (>>=) :: (Either Int) a -> (b -> (Either Int) a) -> (Either Int) b
146.82 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "(Either Int) of ints :: (Either Int Int)" 2.26 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> Either Int Int)" 2.15 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Applicative (Either Int)
146.82 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "(Either Int) of additions :: (Either Int (Int -> Int))" and "(Either Int) of ints :: (Either Int Int)" 2.12 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "(Either Int) of ints :: (Either Int Int)" 1.99 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "(Either Int) of ints :: (Either Int Int)" and "(Either Int) of ints :: (Either Int Int)" 2.43 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] (>>=) :: (Either Int) a -> (b -> (Either Int) a) -> (Either Int) b
146.82 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "(Either Int) of ints :: (Either Int Int)" "perturbations using the int :: (Int -> Either Int Int)" and "perturbations using the double the int :: (Int -> Either Int Int)" 2.44 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Functor (Either Int)
146.82 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "(Either Int) of ints :: (Either Int Int)" 2.51 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] Monad Maybe
146.82 s
[genvalidity-sydtest] relation with Functor Maybe
146.82 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "appends :: ([Char] -> [Char])" and "Just an ABC :: (Maybe [Char])" 3.00 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] relation with Applicative Maybe
146.82 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "Just an ABC :: (Maybe [Char])" 5.59 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "Just an ABC :: (Maybe [Char])" and "Just an ABC :: (Maybe [Char])" 2.72 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "append 'a' in Just :: (Maybe ([Char] -> [Char]))" and "Just an ABC :: (Maybe [Char])" 5.50 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
146.82 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "Just an ABC :: (Maybe [Char])" "justisation :: ([Char] -> Maybe [Char])" and "justisation :: ([Char] -> Maybe [Char])" 4.86 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] return :: a -> Maybe a and (>>=) :: Maybe a -> (b -> Maybe a) -> Maybe b
146.82 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "Just an ABC :: (Maybe [Char])" 4.84 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "ABC :: [Char]" and "justisation :: ([Char] -> Maybe [Char])" 4.82 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] Monad []
146.82 s
[genvalidity-sydtest] (>>=) :: [] a -> (b -> [] a) -> [] b
146.82 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "list of fives :: [Int]" "singletonisation :: (Int -> [Int])" and "singletonisation :: (Int -> [Int])" 13.72 ms
146.82 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.82 s
[genvalidity-sydtest] return :: a -> [] a and (>>=) :: [] a -> (b -> [] a) -> [] b
146.82 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "list of fives :: [Int]" 13.61 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "four :: Int" and "singletonisation :: (Int -> [Int])" 6.14 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] relation with Applicative []
146.83 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "list of fives :: [Int]" 6.11 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "list of fives :: [Int]" and "list of sixes :: [Int]" 14.53 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "increment in list :: ([Int -> Int])" and "list of fives :: [Int]" 13.52 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] relation with Functor []
146.83 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "factorisations :: (Int -> Int)" and "list of fives :: [Int]" 13.90 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Monad []
146.83 s
[genvalidity-sydtest] relation with Functor []
146.83 s
[genvalidity-sydtest] ✓ satisfies 'fmap f xs = xs >>= return . f' for "increments :: (Int -> Int)" and "[] of ints :: [Int]" 13.42 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] (>>=) :: [] a -> (b -> [] a) -> [] b
146.83 s
[genvalidity-sydtest] ✓ satisfies the third Monad law: 'm >>= (x -> k x >>= h) = (m >>= k) >>= h' for "[] of ints :: [Int]" "perturbations using the int :: (Int -> [Int])" and "perturbations using the double the int :: (Int -> [Int])" 222.18 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] relation with Applicative []
146.83 s
[genvalidity-sydtest] ✓ satisfies '(>>) = (*>)' for "[] of ints :: [Int]" and "[] of ints :: [Int]" 15.51 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ satisfies 'pure = return' for "[] of ints :: [Int]" 13.12 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ satisfies '(<*>) = ap' for "[] of additions :: ([Int -> Int])" and "[] of ints :: [Int]" 13.16 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] return :: a -> [] a and (>>=) :: [] a -> (b -> [] a) -> [] b
146.83 s
[genvalidity-sydtest] ✓ satisfy the first Monad law: 'return a >>= k = k a' for "int :: Int" and "perturbations using the int :: (Int -> [Int])" 13.28 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ satisfy the second Monad law: 'm >>= return = m' for "[] of ints :: [Int]" 13.14 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Test.Syd.Validity.EqSpec
146.83 s
[genvalidity-sydtest] Eq (Ratio Integer)
146.83 s
[genvalidity-sydtest] (==) :: (Ratio Integer) -> (Ratio Integer) -> Bool
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "valid (Ratio Integer)"s 13.14 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is transitive for "valid (Ratio Integer)"s 13.57 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is reflexive for "valid (Ratio Integer)"s 13.16 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is symmetric for "valid (Ratio Integer)"s 13.19 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] (/=) :: (Ratio Integer) -> (Ratio Integer) -> Bool
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "valid (Ratio Integer)"s 13.14 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is antireflexive for "valid (Ratio Integer)"s 12.57 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Eq Int
146.83 s
[genvalidity-sydtest] (==) :: Int -> Int -> Bool
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "valid Int"s 12.93 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is reflexive for "valid Int"s 11.19 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is transitive for "valid Int"s 11.21 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is symmetric for "valid Int"s 11.25 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] (/=) :: Int -> Int -> Bool
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "valid Int"s 11.07 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is antireflexive for "valid Int"s 9.83 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Eq Int
146.83 s
[genvalidity-sydtest] (==) :: Int -> Int -> Bool
146.83 s
[genvalidity-sydtest] ✓ is transitive for "arbitrary Int"s 9.81 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is symmetric for "arbitrary Int"s 9.86 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is reflexive for "arbitrary Int"s 2.47 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "arbitrary Int"s 2.42 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] (/=) :: Int -> Int -> Bool
146.83 s
[genvalidity-sydtest] ✓ is antireflexive for "arbitrary Int"s 2.55 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "arbitrary Int"s 2.43 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Eq Int
146.83 s
[genvalidity-sydtest] (/=) :: Int -> Int -> Bool
146.83 s
[genvalidity-sydtest] ✓ is antireflexive for "even Int"s 2.39 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a == b) for "even Int"s 2.47 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] (==) :: Int -> Int -> Bool
146.83 s
[genvalidity-sydtest] ✓ is equivalent to (\a b -> not $ a /= b) for "even Int"s 2.63 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is symmetric for "even Int"s 2.38 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is reflexive for "even Int"s 2.27 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ is transitive for "even Int"s 2.04 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Test.Syd.Validity.ArbitrarySpec
146.83 s
[genvalidity-sydtest] Arbitrary Int
146.83 s
[genvalidity-sydtest] arbitrary :: Gen Int
146.83 s
[genvalidity-sydtest] ✓ only generates valid values 4.41 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Test.Syd.Validity.Operations.CommutativitySpec
146.83 s
[genvalidity-sydtest] commutative
146.83 s
[genvalidity-sydtest] ✓ cross product is not commutative 25.50 ms
146.83 s
[genvalidity-sydtest] passed for all of 1 inputs.
146.83 s
[genvalidity-sydtest] ✓ + is commutative 13.75 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ * is commutative 13.49 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] ✓ - is not commutative 73.57 ms
146.83 s
[genvalidity-sydtest] passed for all of 1 inputs.
146.83 s
[genvalidity-sydtest] ✓ dot product is commutative 14.06 ms
146.83 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.83 s
[genvalidity-sydtest] Test.Syd.Validity.GenValiditySpec
146.83 s
[genvalidity-sydtest] GenValid (Ratio Integer)
146.84 s
[genvalidity-sydtest] genValid :: Gen (Ratio Integer)
146.84 s
[genvalidity-sydtest] ✓ only generates valid '(Ratio Integer)'s 13.89 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] GenValid (Ratio Integer)
146.84 s
[genvalidity-sydtest] genValid :: Gen (Ratio Integer)
146.84 s
[genvalidity-sydtest] ✓ only generates valid '(Ratio Integer)'s 12.88 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Test.Syd.Validity.ShrinkingSpec
146.84 s
[genvalidity-sydtest] shrinkValid :: (Int -> [Int])
146.84 s
[genvalidity-sydtest] ✓ preserves validity 18.12 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ never shrinks to itself for valid values 18.10 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] shrinkValidPreservesValidOnGenValid
146.84 s
[genvalidity-sydtest] ✓ [Ordering] 41.64 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ Ordering 12.71 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] shrinkValid :: (Ratio Int8 -> [Ratio Int8])
146.84 s
[genvalidity-sydtest] ✓ never shrinks to itself for valid values 23.65 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ preserves validity 23.75 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] shrinkValidDoesNotShrinkToItself
146.84 s
[genvalidity-sydtest] ✓ [Int] 162.28 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ Int 22.09 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] shrinkValidDoesNotShrinkToItself
146.84 s
[genvalidity-sydtest] ✓ [Ordering] 23.59 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ Ordering 13.48 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] shrinkValidPreservesValidOnGenValid
146.84 s
[genvalidity-sydtest] ✓ Ordering 19.40 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ [Ordering] 51.79 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Test.Syd.Validity.FunctorSpec
146.84 s
[genvalidity-sydtest] Functor Maybe
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> Maybe a -> Maybe b
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "Just an ABC :: (Maybe [Char])" 's given to "prepends :: ([Char] -> [Char])" and "appends :: ([Char] -> [Char])" 22.07 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "Just an ABC :: (Maybe [Char])" 21.79 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] (<$) :: a -> Maybe b -> Maybe a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "ABC :: [Char]" and "Just an ABC :: (Maybe [Char])" 19.43 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor []
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> [] a -> [] b
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "list of fives :: [Int]" 21.91 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "list of fives :: [Int]" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 23.20 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] (<$) :: a -> [] b -> [] a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "four :: Int" and "list of fives :: [Int]" 19.66 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor []
146.84 s
[genvalidity-sydtest] (<$) :: a -> [] b -> [] a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "[] of ints :: [Int]" 19.11 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> [] a -> [] b
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "[] of ints :: [Int]" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 16.28 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "[] of ints :: [Int]" 13.95 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor (Either Int)
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> (Either Int) a -> (Either Int) b
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "(Either Int) of ints :: (Either Int Int)" 15.17 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "(Either Int) of ints :: (Either Int Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 15.28 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] (<$) :: a -> (Either Int) b -> (Either Int) a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "(Either Int) of ints :: (Either Int Int)" 15.10 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor []
146.84 s
[genvalidity-sydtest] (<$) :: a -> [] b -> [] a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "[] of ints :: [Int]" 19.64 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> [] a -> [] b
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "[] of ints :: [Int]" 14.42 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "[] of ints :: [Int]" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 20.44 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor Maybe
146.84 s
[genvalidity-sydtest] (<$) :: a -> Maybe b -> Maybe a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "Maybe of ints :: (Maybe Int)" 17.54 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> Maybe a -> Maybe b
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "Maybe of ints :: (Maybe Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 18.90 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "Maybe of ints :: (Maybe Int)" 14.96 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor ((,) Int)
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> ((,) Int) a -> ((,) Int) b
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "((,) Int) of ints :: (Int,Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 16.50 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "((,) Int) of ints :: (Int,Int)" 10.32 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] (<$) :: a -> ((,) Int) b -> ((,) Int) a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "((,) Int) of ints :: (Int,Int)" 13.44 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Functor Maybe
146.84 s
[genvalidity-sydtest] (<$) :: a -> Maybe b -> Maybe a
146.84 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation for "int :: Int" and "Maybe of ints :: (Maybe Int)" 16.23 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] fmap :: (a -> b) -> Maybe a -> Maybe b
146.84 s
[genvalidity-sydtest] ✓ satisfieds the second Functor law: 'fmap (f . g) == fmap f . fmap g' for "Maybe of ints :: (Maybe Int)" 's given to "increments :: (Int -> Int)" and "scalings :: (Int -> Int)" 16.24 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] ✓ satisfies the first Fuctor law: 'fmap id == id' for "Maybe of ints :: (Maybe Int)" 17.99 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Test.Syd.Validity.ShowSpec
146.84 s
[genvalidity-sydtest] Show (Ratio Integer) and Read (Ratio Integer)
146.84 s
[genvalidity-sydtest] ✓ are implemented such that read . show == id for arbitrary values 22.59 ms
146.84 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.84 s
[genvalidity-sydtest] Show Int and Read Int
146.85 s
[genvalidity-sydtest] ✓ are implemented such that read . show == id for valid values 17.93 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Show (Ratio Integer) and Read (Ratio Integer)
146.85 s
[genvalidity-sydtest] ✓ are implemented such that read . show == id for valid values 22.53 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Show Int and Read Int
146.85 s
[genvalidity-sydtest] ✓ are implemented such that read . show == id for even values 22.49 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Test.Syd.Validity.ApplicativeSpec
146.85 s
[genvalidity-sydtest] Applicative []
146.85 s
[genvalidity-sydtest] (*>) :: [] a -> [] b -> [] b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "[] of ints :: [Int]" in front of "[] of ints :: Int" 29.77 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] pure :: a -> [] a and (<*>) :: [] (a -> b) -> [] a -> [] b
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "[] of increments :: ([Int -> Int])" sequenced with "int :: Int" 20.24 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "[] of ints :: [Int]" 24.07 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "[] of ints :: [Int]" 24.96 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "[] of scalings :: ([Int -> Int])" composed with "[] of increments :: ([Int -> Int])" and applied to "[] of ints :: [Int]" 25.46 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 24.75 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (<*) :: [] a -> [] b -> [] a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "[] of ints :: Int" behind "[] of ints :: [Int]" 35.86 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Applicative (Either Int)
146.85 s
[genvalidity-sydtest] (*>) :: (Either Int) a -> (Either Int) b -> (Either Int) b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "(Either Int) of ints :: (Either Int Int)" in front of "(Either Int) of ints :: Int" 20.31 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (<*) :: (Either Int) a -> (Either Int) b -> (Either Int) a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "(Either Int) of ints :: Int" behind "(Either Int) of ints :: (Either Int Int)" 20.32 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] pure :: a -> (Either Int) a and (<*>) :: (Either Int) (a -> b) -> (Either Int) a -> (Either Int) b
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "(Either Int) of ints :: (Either Int Int)" 18.38 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "(Either Int) of ints :: (Either Int Int)" 17.40 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "(Either Int) of scalings :: (Either Int (Int -> Int))" composed with "(Either Int) of increments :: (Either Int (Int -> Int))" and applied to "(Either Int) of ints :: (Either Int Int)" 17.87 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 15.08 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "(Either Int) of increments :: (Either Int (Int -> Int))" sequenced with "int :: Int" 15.28 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Applicative Maybe
146.85 s
[genvalidity-sydtest] pure :: a -> Maybe a and (<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 15.39 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "Maybe of increments :: (Maybe (Int -> Int))" sequenced with "int :: Int" 15.21 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "Maybe of ints :: (Maybe Int)" 15.39 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "Maybe of scalings :: (Maybe (Int -> Int))" composed with "Maybe of increments :: (Maybe (Int -> Int))" and applied to "Maybe of ints :: (Maybe Int)" 12.20 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "Maybe of ints :: (Maybe Int)" 16.84 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (<*) :: Maybe a -> Maybe b -> Maybe a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "Maybe of ints :: Int" behind "Maybe of ints :: (Maybe Int)" 16.90 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (*>) :: Maybe a -> Maybe b -> Maybe b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "Maybe of ints :: (Maybe Int)" in front of "Maybe of ints :: Int" 13.93 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Applicative Maybe
146.85 s
[genvalidity-sydtest] (<*) :: Maybe a -> Maybe b -> Maybe a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "purely Nothing :: [Char]" behind "Just an ABC :: (Maybe [Char])" 13.98 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (*>) :: Maybe a -> Maybe b -> Maybe b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "Just an ABC :: (Maybe [Char])" in front of "purely Nothing :: [Char]" 13.81 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] pure :: a -> Maybe a and (<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "Just an ABC :: (Maybe [Char])" 12.29 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "prepends :: ([Char] -> [Char])" mapped over "Just an ABC :: (Maybe [Char])" 11.75 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "prepends :: ([Char] -> [Char])" sequenced with "ABC :: [Char]" 11.74 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "appends in a Just :: (Maybe ([Char] -> [Char]))" composed with "prepends in a Just :: (Maybe ([Char] -> [Char]))" and applied to "Just an ABC :: (Maybe [Char])" 11.09 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "prepends in a Just :: (Maybe ([Char] -> [Char]))" sequenced with "ABC :: [Char]" 7.85 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Applicative []
146.85 s
[genvalidity-sydtest] (*>) :: [] a -> [] b -> [] b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "[] of ints :: [Int]" in front of "[] of ints :: Int" 20.95 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] pure :: a -> [] a and (<*>) :: [] (a -> b) -> [] a -> [] b
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 7.76 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "[] of scalings :: ([Int -> Int])" composed with "[] of increments :: ([Int -> Int])" and applied to "[] of ints :: [Int]" 10.84 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "[] of ints :: [Int]" 10.79 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "[] of ints :: [Int]" 11.27 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "[] of increments :: ([Int -> Int])" sequenced with "int :: Int" 11.15 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (<*) :: [] a -> [] b -> [] a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "[] of ints :: Int" behind "[] of ints :: [Int]" 20.25 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Applicative []
146.85 s
[genvalidity-sydtest] pure :: a -> [] a and (<*>) :: [] (a -> b) -> [] a -> [] b
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "four :: Int" 11.07 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "increments in a list :: ([Int -> Int])" sequenced with "four :: Int" 10.35 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "scalings in a list :: ([Int -> Int])" composed with "increments in a list :: ([Int -> Int])" and applied to "list of fives :: [Int]" 11.16 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "list of fives :: [Int]" 10.99 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "list of fives :: [Int]" 10.97 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (<*) :: [] a -> [] b -> [] a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "purely empty list :: Int" behind "list of fives :: [Int]" 10.87 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (*>) :: [] a -> [] b -> [] b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "list of fives :: [Int]" in front of "purely empty list :: Int" 7.88 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] Applicative Maybe
146.85 s
[genvalidity-sydtest] (*>) :: Maybe a -> Maybe b -> Maybe b
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u Type> v = pure (const id) <*> u <*> v' for "Maybe of ints :: (Maybe Int)" in front of "Maybe of ints :: Int" 7.58 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] (<*) :: Maybe a -> Maybe b -> Maybe a
146.85 s
[genvalidity-sydtest] ✓ is equivalent to its default implementation 'u <* v = pure const <*> u <*> v' for "Maybe of ints :: Int" behind "Maybe of ints :: (Maybe Int)" 7.37 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] pure :: a -> Maybe a and (<*>) :: Maybe (a -> b) -> Maybe a -> Maybe b
146.85 s
[genvalidity-sydtest] ✓ satisfy the composition law: 'pure (.) <*> u <*> v <*> w = u <*> (v <*> w)' for "Maybe of scalings :: (Maybe (Int -> Int))" composed with "Maybe of increments :: (Maybe (Int -> Int))" and applied to "Maybe of ints :: (Maybe Int)" 6.01 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the identity law: 'pure id <*> v = v' for "Maybe of ints :: (Maybe Int)" 5.96 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the law about the functor instance: fmap f x = pure f <*> x for "increments :: (Int -> Int)" mapped over "Maybe of ints :: (Maybe Int)" 5.73 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the homomorphism law: 'pure f <*> pure x = pure (f x)' for "increments :: (Int -> Int)" sequenced with "int :: Int" 5.28 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest] ✓ satisfy the interchange law: 'u <*> pure y = pure ($ y) <*> u' for "Maybe of increments :: (Maybe (Int -> Int))" sequenced with "int :: Int" 5.41 ms
146.85 s
[genvalidity-sydtest] passed for all of 100 inputs.
146.85 s
[genvalidity-sydtest]
146.85 s
[genvalidity-sydtest] Examples: 24402
146.85 s
[genvalidity-sydtest] Passed: 246
146.85 s
[genvalidity-sydtest] Failed: 0
146.85 s
[genvalidity-sydtest] Sum of test runtimes: 3.64 seconds
146.85 s
[genvalidity-sydtest] Test suite took: 0.37 seconds
146.85 s
[genvalidity-sydtest]
146.85 s
[genvalidity-sydtest] Test suite genvalidity-sydtest-test: PASS
146.85 s
[genvalidity-sydtest] Test suite logged to:
146.85 s
[genvalidity-sydtest] dist/test/genvalidity-sydtest-1.0.1.0-genvalidity-sydtest-test.log
146.85 s
[genvalidity-sydtest] 1 of 1 test suites (1 of 1 test cases) passed.
146.86 s
[genvalidity-sydtest] Phase: haddockPhase
147.07 s
[genvalidity-sydtest] Preprocessing library for genvalidity-sydtest-1.0.1.0...
147.08 s
[genvalidity-sydtest] Running Haddock on library for genvalidity-sydtest-1.0.1.0...
147.09 s
[genvalidity-sydtest] Warning: The documentation for the following packages are not installed. No
147.09 s
[genvalidity-sydtest] links will be generated to these packages: attoparsec-0.14.4,
147.09 s
[genvalidity-sydtest] attoparsec-0.14.4, libyaml-clib-0.2.5, path-0.9.6, path-0.9.6, vector-0.13.2.0
147.57 s
[genvalidity-sydtest] [ 1 of 34] Compiling Paths_genvalidity_sydtest ( dist/build/autogen/Paths_genvalidity_sydtest.hs, nothing )
147.63 s
[genvalidity-sydtest] [ 2 of 34] Compiling Test.Syd.Validity.Functions.Idempotence ( src/Test/Syd/Validity/Functions/Idempotence.hs, nothing )
147.69 s
[genvalidity-sydtest] [ 3 of 34] Compiling Test.Syd.Validity.Operations.Associativity ( src/Test/Syd/Validity/Operations/Associativity.hs, nothing )
147.71 s
[genvalidity-sydtest] [ 4 of 34] Compiling Test.Syd.Validity.Operations.Commutativity ( src/Test/Syd/Validity/Operations/Commutativity.hs, nothing )
147.72 s
[genvalidity-sydtest] [ 5 of 34] Compiling Test.Syd.Validity.Operations.Identity ( src/Test/Syd/Validity/Operations/Identity.hs, nothing )
147.74 s
[genvalidity-sydtest] [ 6 of 34] Compiling Test.Syd.Validity.Operations ( src/Test/Syd/Validity/Operations.hs, nothing )
147.74 s
[genvalidity-sydtest] [ 7 of 34] Compiling Test.Syd.Validity.Property.Utils ( src/Test/Syd/Validity/Property/Utils.hs, nothing )
147.76 s
[genvalidity-sydtest] [ 8 of 34] Compiling Test.Syd.Validity.GenValidity.Property ( src/Test/Syd/Validity/GenValidity/Property.hs, nothing )
147.76 s
[genvalidity-sydtest] [ 9 of 34] Compiling Test.Syd.Validity.Functions.Validity ( src/Test/Syd/Validity/Functions/Validity.hs, nothing )
147.78 s
[genvalidity-sydtest] [10 of 34] Compiling Test.Syd.Validity.Relations.Antireflexivity ( src/Test/Syd/Validity/Relations/Antireflexivity.hs, nothing )
147.79 s
[genvalidity-sydtest] [11 of 34] Compiling Test.Syd.Validity.Relations.Antisymmetry ( src/Test/Syd/Validity/Relations/Antisymmetry.hs, nothing )
147.81 s
[genvalidity-sydtest] [12 of 34] Compiling Test.Syd.Validity.Relations.Reflexivity ( src/Test/Syd/Validity/Relations/Reflexivity.hs, nothing )
147.81 s
[genvalidity-sydtest] [13 of 34] Compiling Test.Syd.Validity.Relations.Symmetry ( src/Test/Syd/Validity/Relations/Symmetry.hs, nothing )
147.82 s
[genvalidity-sydtest] [14 of 34] Compiling Test.Syd.Validity.Relations.Transitivity ( src/Test/Syd/Validity/Relations/Transitivity.hs, nothing )
147.83 s
[genvalidity-sydtest] [15 of 34] Compiling Test.Syd.Validity.Relations ( src/Test/Syd/Validity/Relations.hs, nothing )
147.84 s
[genvalidity-sydtest] [16 of 34] Compiling Test.Syd.Validity.Shrinking.Property ( src/Test/Syd/Validity/Shrinking/Property.hs, nothing )
147.97 s
[genvalidity-sydtest] [17 of 34] Compiling Test.Syd.Validity.Types ( src/Test/Syd/Validity/Types.hs, nothing )
147.98 s
[genvalidity-sydtest] [18 of 34] Compiling Test.Syd.Validity.Functions.Inverse ( src/Test/Syd/Validity/Functions/Inverse.hs, nothing )
148.00 s
[genvalidity-sydtest] [19 of 34] Compiling Test.Syd.Validity.Functions.Equivalence ( src/Test/Syd/Validity/Functions/Equivalence.hs, nothing )
148.05 s
[genvalidity-sydtest] [20 of 34] Compiling Test.Syd.Validity.Functions.CanFail ( src/Test/Syd/Validity/Functions/CanFail.hs, nothing )
148.08 s
[genvalidity-sydtest] [21 of 34] Compiling Test.Syd.Validity.Functions ( src/Test/Syd/Validity/Functions.hs, nothing )
148.08 s
[genvalidity-sydtest] [22 of 34] Compiling Test.Syd.Validity.Property ( src/Test/Syd/Validity/Property.hs, nothing )
148.09 s
[genvalidity-sydtest] [23 of 34] Compiling Test.Syd.Validity.Utils ( src/Test/Syd/Validity/Utils.hs, nothing )
148.10 s
[genvalidity-sydtest] [24 of 34] Compiling Test.Syd.Validity.Shrinking ( src/Test/Syd/Validity/Shrinking.hs, nothing )
148.12 s
[genvalidity-sydtest] [25 of 34] Compiling Test.Syd.Validity.Show ( src/Test/Syd/Validity/Show.hs, nothing )
148.14 s
[genvalidity-sydtest] [26 of 34] Compiling Test.Syd.Validity.Ord ( src/Test/Syd/Validity/Ord.hs, nothing )
148.32 s
[really-safe-money-autodocodec] Phase: updateAutotoolsGnuConfigScriptsPhase
148.34 s
[really-safe-money-autodocodec] Phase: configurePhase
148.34 s
[genvalidity-sydtest] [27 of 34] Compiling Test.Syd.Validity.Monoid ( src/Test/Syd/Validity/Monoid.hs, nothing )
148.34 s
[really-safe-money-autodocodec] configureFlags: --verbose --prefix=/nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.kORGtIpJJB/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --disable-static --disable-executable-dynamic --disable-tests --enable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --ghc-options=-fplugin-opt=Test.Syd.Mutation.Plugin:--debug --disable-optimization --ghc-option=-j1 --ghc-option=+RTS --ghc-option=-A32M --ghc-option=-M16g --ghc-option=-RTS --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
148.35 s
[really-safe-money-autodocodec] Using Parsec parser
148.35 s
[really-safe-money-autodocodec] Configuring really-safe-money-autodocodec-0.0.0.0...
148.36 s
[genvalidity-sydtest] [28 of 34] Compiling Test.Syd.Validity.Monad ( src/Test/Syd/Validity/Monad.hs, nothing )
148.40 s
[genvalidity-sydtest] [29 of 34] Compiling Test.Syd.Validity.GenValidity ( src/Test/Syd/Validity/GenValidity.hs, nothing )
148.41 s
[genvalidity-sydtest] [30 of 34] Compiling Test.Syd.Validity.Functor ( src/Test/Syd/Validity/Functor.hs, nothing )
148.54 s
[genvalidity-sydtest] [31 of 34] Compiling Test.Syd.Validity.Eq ( src/Test/Syd/Validity/Eq.hs, nothing )
148.56 s
[genvalidity-sydtest] [32 of 34] Compiling Test.Syd.Validity.Arbitrary ( src/Test/Syd/Validity/Arbitrary.hs, nothing )
148.57 s
[genvalidity-sydtest] [33 of 34] Compiling Test.Syd.Validity.Applicative ( src/Test/Syd/Validity/Applicative.hs, nothing )
148.63 s
[genvalidity-sydtest] [34 of 34] Compiling Test.Syd.Validity ( src/Test/Syd/Validity.hs, nothing )
148.64 s
[genvalidity-sydtest] Haddock coverage:
148.65 s
[genvalidity-sydtest] 50% ( 2 / 4) in 'Test.Syd.Validity.Functions.Idempotence'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] idempotentOnGen (src/Test/Syd/Validity/Functions/Idempotence.hs:17)
148.65 s
[genvalidity-sydtest] idempotent (src/Test/Syd/Validity/Functions/Idempotence.hs:20)
148.65 s
[genvalidity-sydtest] 75% ( 3 / 4) in 'Test.Syd.Validity.Operations.Associativity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] 75% ( 3 / 4) in 'Test.Syd.Validity.Operations.Commutativity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] 64% ( 9 / 14) in 'Test.Syd.Validity.Operations.Identity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] leftIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:54)
148.65 s
[genvalidity-sydtest] leftIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:66)
148.65 s
[genvalidity-sydtest] rightIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:111)
148.65 s
[genvalidity-sydtest] rightIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:123)
148.65 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Operations'
148.65 s
[genvalidity-sydtest] 0% ( 0 / 6) in 'Test.Syd.Validity.Property.Utils'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] forAllValid (src/Test/Syd/Validity/Property/Utils.hs:15)
148.65 s
[genvalidity-sydtest] shouldBeValid (src/Test/Syd/Validity/Property/Utils.hs:24)
148.65 s
[genvalidity-sydtest] shouldBeInvalid (src/Test/Syd/Validity/Property/Utils.hs:40)
148.65 s
[genvalidity-sydtest] <==> (src/Test/Syd/Validity/Property/Utils.hs:21)
148.65 s
[genvalidity-sydtest] ===> (src/Test/Syd/Validity/Property/Utils.hs:18)
148.65 s
[genvalidity-sydtest] 100% ( 3 / 3) in 'Test.Syd.Validity.GenValidity.Property'
148.65 s
[genvalidity-sydtest] 40% ( 4 / 10) in 'Test.Syd.Validity.Functions.Validity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] producesValidsOnGens2 (src/Test/Syd/Validity/Functions/Validity.hs:51)
148.65 s
[genvalidity-sydtest] producesValid2 (src/Test/Syd/Validity/Functions/Validity.hs:58)
148.65 s
[genvalidity-sydtest] producesValidsOnArbitrary2 (src/Test/Syd/Validity/Functions/Validity.hs:64)
148.65 s
[genvalidity-sydtest] producesValidsOnGens3 (src/Test/Syd/Validity/Functions/Validity.hs:72)
148.65 s
[genvalidity-sydtest] producesValid3 (src/Test/Syd/Validity/Functions/Validity.hs:87)
148.65 s
[genvalidity-sydtest] producesValidsOnArbitrary3 (src/Test/Syd/Validity/Functions/Validity.hs:101)
148.65 s
[genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Antireflexivity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] antireflexivityOnGen (src/Test/Syd/Validity/Relations/Antireflexivity.hs:32)
148.65 s
[genvalidity-sydtest] 50% ( 3 / 6) in 'Test.Syd.Validity.Relations.Antisymmetry'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] antisymmetryOnGensWithEquality (src/Test/Syd/Validity/Relations/Antisymmetry.hs:43)
148.65 s
[genvalidity-sydtest] antisymmetryOnGens (src/Test/Syd/Validity/Relations/Antisymmetry.hs:54)
148.65 s
[genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Reflexivity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] reflexivityOnGen (src/Test/Syd/Validity/Relations/Reflexivity.hs:32)
148.65 s
[genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Symmetry'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] symmetryOnGens (src/Test/Syd/Validity/Relations/Symmetry.hs:34)
148.65 s
[genvalidity-sydtest] 60% ( 3 / 5) in 'Test.Syd.Validity.Relations.Transitivity'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] transitivityOnGens (src/Test/Syd/Validity/Relations/Transitivity.hs:35)
148.65 s
[genvalidity-sydtest] 100% ( 6 / 6) in 'Test.Syd.Validity.Relations'
148.65 s
[genvalidity-sydtest] 100% ( 13 / 13) in 'Test.Syd.Validity.Shrinking.Property'
148.65 s
[genvalidity-sydtest] 50% ( 1 / 2) in 'Test.Syd.Validity.Types'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] 15% ( 2 / 13) in 'Test.Syd.Validity.Functions.Inverse'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] inverseFunctionsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:28)
148.65 s
[genvalidity-sydtest] inverseFunctions (src/Test/Syd/Validity/Functions/Inverse.hs:33)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:49)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:60)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:68)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:78)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:89)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:97)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfSucceedOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:107)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfSucceed (src/Test/Syd/Validity/Functions/Inverse.hs:120)
148.65 s
[genvalidity-sydtest] inverseFunctionsIfSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:128)
148.65 s
[genvalidity-sydtest] 7% ( 2 / 28) in 'Test.Syd.Validity.Functions.Equivalence'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] equivalentOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:47)
148.65 s
[genvalidity-sydtest] equivalent (src/Test/Syd/Validity/Functions/Equivalence.hs:54)
148.65 s
[genvalidity-sydtest] equivalentOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:73)
148.65 s
[genvalidity-sydtest] equivalent2 (src/Test/Syd/Validity/Functions/Equivalence.hs:81)
148.65 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:100)
148.65 s
[genvalidity-sydtest] equivalentWhenFirstSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:119)
148.65 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:111)
148.65 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:129)
148.65 s
[genvalidity-sydtest] equivalentWhenFirstSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:162)
148.65 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:147)
148.65 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:172)
148.65 s
[genvalidity-sydtest] equivalentWhenSecondSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:191)
148.65 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:183)
148.65 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:201)
148.65 s
[genvalidity-sydtest] equivalentWhenSecondSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:234)
148.65 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:219)
148.65 s
[genvalidity-sydtest] equivalentWhenSucceedOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:244)
148.65 s
[genvalidity-sydtest] equivalentWhenSucceed (src/Test/Syd/Validity/Functions/Equivalence.hs:258)
148.65 s
[genvalidity-sydtest] equivalentWhenSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:266)
148.65 s
[genvalidity-sydtest] equivalentWhenSucceedOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:276)
148.65 s
[genvalidity-sydtest] equivalentWhenSucceed2 (src/Test/Syd/Validity/Functions/Equivalence.hs:312)
148.65 s
[genvalidity-sydtest] equivalentWhenSucceedOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:297)
148.65 s
[genvalidity-sydtest] equivalentOnGens3 (src/Test/Syd/Validity/Functions/Equivalence.hs:322)
148.65 s
[genvalidity-sydtest] equivalent3 (src/Test/Syd/Validity/Functions/Equivalence.hs:338)
148.65 s
[genvalidity-sydtest] equivalentOnArbitrary3 (src/Test/Syd/Validity/Functions/Equivalence.hs:353)
148.65 s
[genvalidity-sydtest] 38% ( 7 / 18) in 'Test.Syd.Validity.Functions.CanFail'
148.65 s
[genvalidity-sydtest] Missing documentation for:
148.65 s
[genvalidity-sydtest] Module header
148.65 s
[genvalidity-sydtest] succeedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:77)
148.65 s
[genvalidity-sydtest] succeeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:84)
148.65 s
[genvalidity-sydtest] succeedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:90)
148.65 s
[genvalidity-sydtest] failsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:100)
148.65 s
[genvalidity-sydtest] validIfSucceedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:109)
148.65 s
[genvalidity-sydtest] validIfSucceeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:119)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:125)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnGens3 (src/Test/Syd/Validity/Functions/CanFail.hs:133)
148.66 s
[genvalidity-sydtest] validIfSucceeds3 (src/Test/Syd/Validity/Functions/CanFail.hs:152)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnArbitrary3 (src/Test/Syd/Validity/Functions/CanFail.hs:158)
148.66 s
[genvalidity-sydtest] 100% ( 6 / 6) in 'Test.Syd.Validity.Functions'
148.66 s
[genvalidity-sydtest] 54% ( 80 /146) in 'Test.Syd.Validity.Property'
148.66 s
[genvalidity-sydtest] Missing documentation for:
148.66 s
[genvalidity-sydtest] Module header
148.66 s
[genvalidity-sydtest] forAllValid (src/Test/Syd/Validity/Property/Utils.hs:15)
148.66 s
[genvalidity-sydtest] producesValidsOnGens2 (src/Test/Syd/Validity/Functions/Validity.hs:51)
148.66 s
[genvalidity-sydtest] producesValid2 (src/Test/Syd/Validity/Functions/Validity.hs:58)
148.66 s
[genvalidity-sydtest] producesValidsOnArbitrary2 (src/Test/Syd/Validity/Functions/Validity.hs:64)
148.66 s
[genvalidity-sydtest] producesValidsOnGens3 (src/Test/Syd/Validity/Functions/Validity.hs:72)
148.66 s
[genvalidity-sydtest] producesValid3 (src/Test/Syd/Validity/Functions/Validity.hs:87)
148.66 s
[genvalidity-sydtest] producesValidsOnArbitrary3 (src/Test/Syd/Validity/Functions/Validity.hs:101)
148.66 s
[genvalidity-sydtest] succeedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:77)
148.66 s
[genvalidity-sydtest] succeeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:84)
148.66 s
[genvalidity-sydtest] succeedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:90)
148.66 s
[genvalidity-sydtest] failsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:100)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:109)
148.66 s
[genvalidity-sydtest] validIfSucceeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:119)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:125)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnGens3 (src/Test/Syd/Validity/Functions/CanFail.hs:133)
148.66 s
[genvalidity-sydtest] validIfSucceeds3 (src/Test/Syd/Validity/Functions/CanFail.hs:152)
148.66 s
[genvalidity-sydtest] validIfSucceedsOnArbitrary3 (src/Test/Syd/Validity/Functions/CanFail.hs:158)
148.66 s
[genvalidity-sydtest] equivalentOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:47)
148.66 s
[genvalidity-sydtest] equivalent (src/Test/Syd/Validity/Functions/Equivalence.hs:54)
148.66 s
[genvalidity-sydtest] equivalentOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:73)
148.66 s
[genvalidity-sydtest] equivalent2 (src/Test/Syd/Validity/Functions/Equivalence.hs:81)
148.66 s
[genvalidity-sydtest] equivalentOnGens3 (src/Test/Syd/Validity/Functions/Equivalence.hs:322)
148.66 s
[genvalidity-sydtest] equivalent3 (src/Test/Syd/Validity/Functions/Equivalence.hs:338)
148.66 s
[genvalidity-sydtest] equivalentOnArbitrary3 (src/Test/Syd/Validity/Functions/Equivalence.hs:353)
148.66 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:100)
148.66 s
[genvalidity-sydtest] equivalentWhenFirstSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:119)
148.66 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:111)
148.66 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:129)
148.66 s
[genvalidity-sydtest] equivalentWhenFirstSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:162)
148.66 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:147)
148.66 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:172)
148.66 s
[genvalidity-sydtest] equivalentWhenSecondSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:191)
148.66 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:183)
148.66 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:201)
148.66 s
[genvalidity-sydtest] equivalentWhenSecondSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:234)
148.66 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:219)
148.66 s
[genvalidity-sydtest] equivalentWhenSucceedOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:244)
148.66 s
[genvalidity-sydtest] equivalentWhenSucceed (src/Test/Syd/Validity/Functions/Equivalence.hs:258)
148.66 s
[genvalidity-sydtest] equivalentWhenSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:266)
148.66 s
[genvalidity-sydtest] equivalentWhenSucceedOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:276)
148.66 s
[genvalidity-sydtest] equivalentWhenSucceed2 (src/Test/Syd/Validity/Functions/Equivalence.hs:312)
148.66 s
[genvalidity-sydtest] equivalentWhenSucceedOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:297)
148.66 s
[genvalidity-sydtest] inverseFunctionsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:28)
148.66 s
[genvalidity-sydtest] inverseFunctions (src/Test/Syd/Validity/Functions/Inverse.hs:33)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:49)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:60)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:68)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:78)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:89)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:97)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfSucceedOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:107)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfSucceed (src/Test/Syd/Validity/Functions/Inverse.hs:120)
148.66 s
[genvalidity-sydtest] inverseFunctionsIfSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:128)
148.66 s
[genvalidity-sydtest] idempotentOnGen (src/Test/Syd/Validity/Functions/Idempotence.hs:17)
148.66 s
[genvalidity-sydtest] idempotent (src/Test/Syd/Validity/Functions/Idempotence.hs:20)
148.66 s
[genvalidity-sydtest] reflexivityOnGen (src/Test/Syd/Validity/Relations/Reflexivity.hs:32)
148.66 s
[genvalidity-sydtest] transitivityOnGens (src/Test/Syd/Validity/Relations/Transitivity.hs:35)
148.66 s
[genvalidity-sydtest] antisymmetryOnGensWithEquality (src/Test/Syd/Validity/Relations/Antisymmetry.hs:43)
148.66 s
[genvalidity-sydtest] antisymmetryOnGens (src/Test/Syd/Validity/Relations/Antisymmetry.hs:54)
148.66 s
[genvalidity-sydtest] antireflexivityOnGen (src/Test/Syd/Validity/Relations/Antireflexivity.hs:32)
148.66 s
[genvalidity-sydtest] symmetryOnGens (src/Test/Syd/Validity/Relations/Symmetry.hs:34)
148.66 s
[genvalidity-sydtest] leftIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:54)
148.66 s
[genvalidity-sydtest] leftIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:66)
148.66 s
[genvalidity-sydtest] rightIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:111)
148.66 s
[genvalidity-sydtest] rightIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:123)
148.66 s
[genvalidity-sydtest] Warning: 'Spec' is out of scope.
148.66 s
[genvalidity-sydtest] If you qualify the identifier, haddock can try to link it anyway.
148.66 s
[genvalidity-sydtest] 14% ( 1 / 7) in 'Test.Syd.Validity.Utils'
148.66 s
[genvalidity-sydtest] Missing documentation for:
148.66 s
[genvalidity-sydtest] nameOf (src/Test/Syd/Validity/Utils.hs:27)
148.66 s
[genvalidity-sydtest] genDescr (src/Test/Syd/Validity/Utils.hs:38)
148.66 s
[genvalidity-sydtest] binRelStr (src/Test/Syd/Validity/Utils.hs:45)
148.66 s
[genvalidity-sydtest] shouldBeValid (src/Test/Syd/Validity/Property/Utils.hs:24)
148.66 s
[genvalidity-sydtest] shouldBeInvalid (src/Test/Syd/Validity/Property/Utils.hs:40)
148.66 s
[genvalidity-sydtest] Anon (src/Test/Syd/Validity/Utils.hs:49)
148.66 s
[genvalidity-sydtest] 45% ( 5 / 11) in 'Test.Syd.Validity.Shrinking'
148.66 s
[genvalidity-sydtest] Missing documentation for:
148.66 s
[genvalidity-sydtest] shrinkValidSpec (src/Test/Syd/Validity/Shrinking.hs:35)
148.66 s
[genvalidity-sydtest] shrinkValidSpecWithLimit (src/Test/Syd/Validity/Shrinking.hs:48)
148.66 s
[genvalidity-sydtest] shrinkValidPreservesValidOnGenValid (src/Test/Syd/Validity/Shrinking.hs:66)
148.66 s
[genvalidity-sydtest] shrinkValidPreservesValidOnGenValidWithLimit (src/Test/Syd/Validity/Shrinking.hs:74)
148.66 s
[genvalidity-sydtest] shrinkValidDoesNotShrinkToItself (src/Test/Syd/Validity/Shrinking.hs:81)
148.66 s
[genvalidity-sydtest] shrinkValidDoesNotShrinkToItselfWithLimit (src/Test/Syd/Validity/Shrinking.hs:89)
148.66 s
[genvalidity-sydtest] 100% ( 7 / 7) in 'Test.Syd.Validity.Show'
148.66 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Ord'
148.66 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Monoid'
148.66 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Monad'
148.66 s
[genvalidity-sydtest] 100% ( 5 / 5) in 'Test.Syd.Validity.GenValidity'
148.66 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Functor'
148.66 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Eq'
148.66 s
[genvalidity-sydtest] 100% ( 3 / 3) in 'Test.Syd.Validity.Arbitrary'
148.66 s
[genvalidity-sydtest] 100% ( 4 / 4) in 'Test.Syd.Validity.Applicative'
148.66 s
[genvalidity-sydtest] Warning: 'Spec' is out of scope.
148.66 s
[genvalidity-sydtest] If you qualify the identifier, haddock can try to link it anyway.
148.67 s
[genvalidity-sydtest] 63% (122 /192) in 'Test.Syd.Validity'
148.67 s
[genvalidity-sydtest] Missing documentation for:
148.67 s
[genvalidity-sydtest] forAllValid (src/Test/Syd/Validity/Property/Utils.hs:15)
148.67 s
[genvalidity-sydtest] shouldBeValid (src/Test/Syd/Validity/Property/Utils.hs:24)
148.67 s
[genvalidity-sydtest] shouldBeInvalid (src/Test/Syd/Validity/Property/Utils.hs:40)
148.67 s
[genvalidity-sydtest] shrinkValidSpec (src/Test/Syd/Validity/Shrinking.hs:35)
148.67 s
[genvalidity-sydtest] shrinkValidSpecWithLimit (src/Test/Syd/Validity/Shrinking.hs:48)
148.67 s
[genvalidity-sydtest] shrinkValidPreservesValidOnGenValid (src/Test/Syd/Validity/Shrinking.hs:66)
148.67 s
[genvalidity-sydtest] producesValidsOnGens2 (src/Test/Syd/Validity/Functions/Validity.hs:51)
148.67 s
[genvalidity-sydtest] producesValid2 (src/Test/Syd/Validity/Functions/Validity.hs:58)
148.67 s
[genvalidity-sydtest] producesValidsOnArbitrary2 (src/Test/Syd/Validity/Functions/Validity.hs:64)
148.67 s
[genvalidity-sydtest] producesValidsOnGens3 (src/Test/Syd/Validity/Functions/Validity.hs:72)
148.67 s
[genvalidity-sydtest] producesValid3 (src/Test/Syd/Validity/Functions/Validity.hs:87)
148.67 s
[genvalidity-sydtest] producesValidsOnArbitrary3 (src/Test/Syd/Validity/Functions/Validity.hs:101)
148.67 s
[genvalidity-sydtest] succeedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:77)
148.67 s
[genvalidity-sydtest] succeeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:84)
148.67 s
[genvalidity-sydtest] succeedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:90)
148.67 s
[genvalidity-sydtest] failsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:100)
148.67 s
[genvalidity-sydtest] validIfSucceedsOnGens2 (src/Test/Syd/Validity/Functions/CanFail.hs:109)
148.67 s
[genvalidity-sydtest] validIfSucceeds2 (src/Test/Syd/Validity/Functions/CanFail.hs:119)
148.67 s
[genvalidity-sydtest] validIfSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/CanFail.hs:125)
148.67 s
[genvalidity-sydtest] validIfSucceedsOnGens3 (src/Test/Syd/Validity/Functions/CanFail.hs:133)
148.67 s
[genvalidity-sydtest] validIfSucceeds3 (src/Test/Syd/Validity/Functions/CanFail.hs:152)
148.67 s
[genvalidity-sydtest] validIfSucceedsOnArbitrary3 (src/Test/Syd/Validity/Functions/CanFail.hs:158)
148.67 s
[genvalidity-sydtest] equivalentOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:47)
148.67 s
[genvalidity-sydtest] equivalent (src/Test/Syd/Validity/Functions/Equivalence.hs:54)
148.67 s
[genvalidity-sydtest] equivalentOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:73)
148.67 s
[genvalidity-sydtest] equivalent2 (src/Test/Syd/Validity/Functions/Equivalence.hs:81)
148.67 s
[genvalidity-sydtest] equivalentOnGens3 (src/Test/Syd/Validity/Functions/Equivalence.hs:322)
148.67 s
[genvalidity-sydtest] equivalent3 (src/Test/Syd/Validity/Functions/Equivalence.hs:338)
148.67 s
[genvalidity-sydtest] equivalentOnArbitrary3 (src/Test/Syd/Validity/Functions/Equivalence.hs:353)
148.67 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:100)
148.67 s
[genvalidity-sydtest] equivalentWhenFirstSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:119)
148.67 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:111)
148.67 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:129)
148.67 s
[genvalidity-sydtest] equivalentWhenFirstSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:162)
148.67 s
[genvalidity-sydtest] equivalentWhenFirstSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:147)
148.67 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:172)
148.67 s
[genvalidity-sydtest] equivalentWhenSecondSucceeds (src/Test/Syd/Validity/Functions/Equivalence.hs:191)
148.67 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:183)
148.67 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:201)
148.67 s
[genvalidity-sydtest] equivalentWhenSecondSucceeds2 (src/Test/Syd/Validity/Functions/Equivalence.hs:234)
148.67 s
[genvalidity-sydtest] equivalentWhenSecondSucceedsOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:219)
148.67 s
[genvalidity-sydtest] equivalentWhenSucceedOnGen (src/Test/Syd/Validity/Functions/Equivalence.hs:244)
148.67 s
[genvalidity-sydtest] equivalentWhenSucceed (src/Test/Syd/Validity/Functions/Equivalence.hs:258)
148.67 s
[genvalidity-sydtest] equivalentWhenSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Equivalence.hs:266)
148.67 s
[genvalidity-sydtest] equivalentWhenSucceedOnGens2 (src/Test/Syd/Validity/Functions/Equivalence.hs:276)
148.67 s
[genvalidity-sydtest] equivalentWhenSucceed2 (src/Test/Syd/Validity/Functions/Equivalence.hs:312)
148.67 s
[genvalidity-sydtest] equivalentWhenSucceedOnArbitrary2 (src/Test/Syd/Validity/Functions/Equivalence.hs:297)
148.67 s
[genvalidity-sydtest] inverseFunctionsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:28)
148.67 s
[genvalidity-sydtest] inverseFunctions (src/Test/Syd/Validity/Functions/Inverse.hs:33)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:49)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:60)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfFirstSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:68)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:78)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceeds (src/Test/Syd/Validity/Functions/Inverse.hs:89)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfSecondSucceedsOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:97)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfSucceedOnGen (src/Test/Syd/Validity/Functions/Inverse.hs:107)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfSucceed (src/Test/Syd/Validity/Functions/Inverse.hs:120)
148.67 s
[genvalidity-sydtest] inverseFunctionsIfSucceedOnArbitrary (src/Test/Syd/Validity/Functions/Inverse.hs:128)
148.67 s
[genvalidity-sydtest] idempotentOnGen (src/Test/Syd/Validity/Functions/Idempotence.hs:17)
148.67 s
[genvalidity-sydtest] idempotent (src/Test/Syd/Validity/Functions/Idempotence.hs:20)
148.67 s
[genvalidity-sydtest] reflexivityOnGen (src/Test/Syd/Validity/Relations/Reflexivity.hs:32)
148.67 s
[genvalidity-sydtest] transitivityOnGens (src/Test/Syd/Validity/Relations/Transitivity.hs:35)
148.67 s
[genvalidity-sydtest] antisymmetryOnGensWithEquality (src/Test/Syd/Validity/Relations/Antisymmetry.hs:43)
148.67 s
[genvalidity-sydtest] antisymmetryOnGens (src/Test/Syd/Validity/Relations/Antisymmetry.hs:54)
148.67 s
[genvalidity-sydtest] antireflexivityOnGen (src/Test/Syd/Validity/Relations/Antireflexivity.hs:32)
148.67 s
[genvalidity-sydtest] symmetryOnGens (src/Test/Syd/Validity/Relations/Symmetry.hs:34)
148.67 s
[genvalidity-sydtest] leftIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:54)
148.67 s
[genvalidity-sydtest] leftIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:66)
148.67 s
[genvalidity-sydtest] rightIdentityOnGenWithEquality (src/Test/Syd/Validity/Operations/Identity.hs:111)
148.67 s
[genvalidity-sydtest] rightIdentityOnGen (src/Test/Syd/Validity/Operations/Identity.hs:123)
149.11 s
[really-safe-money-autodocodec] Dependency autodocodec: using autodocodec-0.5.0.0
149.11 s
[really-safe-money-autodocodec] Dependency base >=4.7 && <5: using base-4.20.2.0
149.11 s
[really-safe-money-autodocodec] Dependency really-safe-money: using really-safe-money-0.0.0.0
149.11 s
[really-safe-money-autodocodec] Source component graph: component lib
149.11 s
[really-safe-money-autodocodec] Configured component graph:
149.11 s
[really-safe-money-autodocodec] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
149.11 s
[really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
149.11 s
[really-safe-money-autodocodec] include base-4.20.2.0-64da
149.11 s
[really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
149.11 s
[really-safe-money-autodocodec] Linked component graph:
149.11 s
[really-safe-money-autodocodec] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
149.11 s
[really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
149.11 s
[really-safe-money-autodocodec] include base-4.20.2.0-64da
149.11 s
[really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
149.11 s
[really-safe-money-autodocodec] Money.Account.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Account.Codec,Money.AccountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AccountOf.Codec,Money.Amount.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.Amount.Codec,Money.AmountOf.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.AmountOf.Codec,Money.QuantisationFactor.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Money.QuantisationFactor.Codec,Numeric.DecimalLiteral.Codec=really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk:Numeric.DecimalLiteral.Codec
149.11 s
[really-safe-money-autodocodec] Ready component graph:
149.11 s
[really-safe-money-autodocodec] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
149.11 s
[really-safe-money-autodocodec] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
149.11 s
[really-safe-money-autodocodec] depends base-4.20.2.0-64da
149.11 s
[really-safe-money-autodocodec] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
149.11 s
[really-safe-money-autodocodec] Using Cabal-3.12.1.0 compiled by ghc-9.10
149.11 s
[really-safe-money-autodocodec] Using compiler: ghc-9.10.3
149.11 s
[really-safe-money-autodocodec] Using install prefix:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0
149.11 s
[really-safe-money-autodocodec] Executables installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/bin
149.11 s
[really-safe-money-autodocodec] Libraries installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
149.11 s
[really-safe-money-autodocodec] Dynamic Libraries installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
149.11 s
[really-safe-money-autodocodec] Private executables installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
149.11 s
[really-safe-money-autodocodec] Data files installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
149.11 s
[really-safe-money-autodocodec] Documentation installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0
149.11 s
[really-safe-money-autodocodec] Configuration files installed in:
149.11 s
[really-safe-money-autodocodec] /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/etc
149.11 s
[really-safe-money-autodocodec] No alex found
149.11 s
[really-safe-money-autodocodec] Using ar found on system at:
149.11 s
[really-safe-money-autodocodec] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
149.11 s
[really-safe-money-autodocodec] No c2hs found
149.11 s
[really-safe-money-autodocodec] No cpphs found
149.11 s
[really-safe-money-autodocodec] No doctest found
149.11 s
[really-safe-money-autodocodec] Using gcc version 14.3.0 given by user at:
149.11 s
[really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
149.11 s
[really-safe-money-autodocodec] Using ghc version 9.10.3 found on system at:
149.11 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
149.11 s
[really-safe-money-autodocodec] Using ghc-pkg version 9.10.3 found on system at:
149.11 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
149.11 s
[really-safe-money-autodocodec] No ghcjs found
149.11 s
[really-safe-money-autodocodec] No ghcjs-pkg found
149.11 s
[really-safe-money-autodocodec] No greencard found
149.11 s
[really-safe-money-autodocodec] Using haddock version 2.31.1 found on system at:
149.11 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
149.11 s
[really-safe-money-autodocodec] No happy found
149.11 s
[really-safe-money-autodocodec] Using haskell-suite found on system at: haskell-suite-dummy-location
149.11 s
[really-safe-money-autodocodec] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
149.11 s
[really-safe-money-autodocodec] No hmake found
149.11 s
[really-safe-money-autodocodec] Using hpc version 0.69 found on system at:
149.11 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
149.11 s
[really-safe-money-autodocodec] Using hsc2hs version 0.68.10 found on system at:
149.11 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
149.11 s
[really-safe-money-autodocodec] Using hscolour version 1.25 found on system at:
149.12 s
[really-safe-money-autodocodec] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
149.12 s
[really-safe-money-autodocodec] No jhc found
149.12 s
[really-safe-money-autodocodec] Using ld found on system at:
149.12 s
[really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
149.12 s
[really-safe-money-autodocodec] No pkg-config found
149.12 s
[really-safe-money-autodocodec] Using runghc version 9.10.3 found on system at:
149.12 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
149.12 s
[really-safe-money-autodocodec] Using strip version 2.44 found on system at:
149.12 s
[really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
149.12 s
[really-safe-money-autodocodec] Using tar found on system at:
149.12 s
[really-safe-money-autodocodec] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
149.12 s
[really-safe-money-autodocodec] No uhc found
149.38 s
[really-safe-money-autodocodec] Phase: buildPhase
149.39 s
[really-safe-money-autodocodec] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest
149.45 s
[really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
149.45 s
[really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
149.68 s
[really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.o, dist/build/Money/Account/Codec.dyn_o )
149.79 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
149.79 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
149.79 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
149.79 s
[really-safe-money-autodocodec] where
149.79 s
[really-safe-money-autodocodec] f :: String -> Either String Account
149.79 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
149.79 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
149.79 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
149.79 s
[really-safe-money-autodocodec] Just a -> Right a
149.79 s
[really-safe-money-autodocodec] g :: Account -> String
149.79 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
149.79 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
149.79 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
149.79 s
[really-safe-money-autodocodec] where
149.79 s
[really-safe-money-autodocodec] f :: String -> Either String Account
149.79 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
149.79 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
149.79 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
149.79 s
[really-safe-money-autodocodec] Just a -> Right a
149.79 s
[really-safe-money-autodocodec] g :: Account -> String
149.79 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
149.79 s
[really-safe-money-autodocodec] added 2 mutations
150.34 s
[really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.o, dist/build/Money/AccountOf/Codec.dyn_o )
150.51 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
150.51 s
[really-safe-money-autodocodec] added 0 mutations
150.51 s
[really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.o, dist/build/Money/Amount/Codec.dyn_o )
150.51 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
150.51 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
150.51 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
150.51 s
[really-safe-money-autodocodec] where
150.51 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
150.51 s
[really-safe-money-autodocodec] f s = case readMaybe s of
150.51 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.51 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
150.51 s
[really-safe-money-autodocodec] Just i ->
150.51 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.51 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.51 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
150.51 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
150.51 s
[really-safe-money-autodocodec] where
150.51 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
150.51 s
[really-safe-money-autodocodec] f s = case readMaybe s of
150.51 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.51 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.51 s
[really-safe-money-autodocodec] Just i ->
150.51 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.51 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.51 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
150.51 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
150.51 s
[really-safe-money-autodocodec] f s = case readMaybe s of
150.51 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.51 s
[really-safe-money-autodocodec] Just i ->
150.51 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
150.51 s
[really-safe-money-autodocodec] + if True
150.51 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.51 s
[really-safe-money-autodocodec] else
150.51 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.51 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
150.51 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
150.51 s
[really-safe-money-autodocodec] f s = case readMaybe s of
150.51 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.51 s
[really-safe-money-autodocodec] Just i ->
150.51 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
150.51 s
[really-safe-money-autodocodec] + if False
150.51 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.51 s
[really-safe-money-autodocodec] else
150.51 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.51 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
150.51 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
150.51 s
[really-safe-money-autodocodec] f s = case readMaybe s of
150.51 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.51 s
[really-safe-money-autodocodec] Just i ->
150.51 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
150.51 s
[really-safe-money-autodocodec] + if not ((i :: Integer) < toInteger (minBound :: Word64))
150.51 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.51 s
[really-safe-money-autodocodec] else
150.51 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
150.52 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
150.52 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.52 s
[really-safe-money-autodocodec] Just i ->
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords []
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
150.52 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
150.52 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.52 s
[really-safe-money-autodocodec] Just i ->
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
150.52 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] + if True
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
150.52 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] + if False
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
150.52 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
150.52 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords []
150.52 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
150.52 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
150.52 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
150.52 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
150.52 s
[really-safe-money-autodocodec] @@ -49,9 +49,9 @@
150.52 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] else
150.52 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
150.52 s
[really-safe-money-autodocodec]
150.52 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
150.52 s
[really-safe-money-autodocodec] @@ -46,12 +46,12 @@
150.52 s
[really-safe-money-autodocodec] f s = case readMaybe s of
150.52 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
150.52 s
[really-safe-money-autodocodec] Just i ->
150.52 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] - else
150.52 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
150.52 s
[really-safe-money-autodocodec] + else
150.52 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
150.52 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
150.52 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
150.52 s
[really-safe-money-autodocodec] g :: Amount -> String
150.52 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
150.52 s
[really-safe-money-autodocodec]
150.52 s
[really-safe-money-autodocodec] added 14 mutations
150.52 s
[really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.o, dist/build/Money/AmountOf/Codec.dyn_o )
150.52 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
150.52 s
[really-safe-money-autodocodec] added 0 mutations
150.55 s
[really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.o, dist/build/Money/QuantisationFactor/Codec.dyn_o )
150.56 s
[really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
150.56 s
[really-safe-money-autodocodec] added 0 mutations
150.60 s
[really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.o, dist/build/Numeric/DecimalLiteral/Codec.dyn_o )
150.61 s
[really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
150.61 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
150.61 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
150.61 s
[really-safe-money-autodocodec] where
150.61 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
150.61 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
150.61 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
150.61 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
150.61 s
[really-safe-money-autodocodec] Just a -> Right a
150.61 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
150.61 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
150.61 s
[really-safe-money-autodocodec] where
150.61 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
150.61 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
150.61 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
150.61 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
150.61 s
[really-safe-money-autodocodec] Just a -> Right a
150.61 s
[really-safe-money-autodocodec] added 2 mutations
150.67 s
[really-safe-money-autodocodec] [7 of 7] Compiling Paths_really_safe_money_autodocodec ( dist/build/autogen/Paths_really_safe_money_autodocodec.hs, dist/build/Paths_really_safe_money_autodocodec.o, dist/build/Paths_really_safe_money_autodocodec.dyn_o )
151.00 s
[really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.p_o )
151.02 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
151.02 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
151.02 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
151.02 s
[really-safe-money-autodocodec] where
151.02 s
[really-safe-money-autodocodec] f :: String -> Either String Account
151.02 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
151.02 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
151.02 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
151.02 s
[really-safe-money-autodocodec] Just a -> Right a
151.02 s
[really-safe-money-autodocodec] g :: Account -> String
151.02 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
151.02 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
151.02 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
151.02 s
[really-safe-money-autodocodec] where
151.02 s
[really-safe-money-autodocodec] f :: String -> Either String Account
151.02 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
151.02 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
151.02 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
151.02 s
[really-safe-money-autodocodec] Just a -> Right a
151.02 s
[really-safe-money-autodocodec] g :: Account -> String
151.02 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
151.02 s
[really-safe-money-autodocodec] added 2 mutations
151.72 s
[really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.p_o )
151.73 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
151.73 s
[really-safe-money-autodocodec] added 0 mutations
151.86 s
[really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.p_o )
151.86 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
151.86 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
151.86 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
151.86 s
[really-safe-money-autodocodec] where
151.86 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
151.86 s
[really-safe-money-autodocodec] f s = case readMaybe s of
151.86 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.86 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
151.86 s
[really-safe-money-autodocodec] Just i ->
151.86 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.86 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.86 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
151.86 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
151.86 s
[really-safe-money-autodocodec] where
151.86 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
151.86 s
[really-safe-money-autodocodec] f s = case readMaybe s of
151.86 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.86 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.86 s
[really-safe-money-autodocodec] Just i ->
151.86 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.86 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.86 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
151.86 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
151.86 s
[really-safe-money-autodocodec] f s = case readMaybe s of
151.86 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.86 s
[really-safe-money-autodocodec] Just i ->
151.86 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
151.86 s
[really-safe-money-autodocodec] + if True
151.86 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.86 s
[really-safe-money-autodocodec] else
151.86 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.86 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
151.86 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
151.86 s
[really-safe-money-autodocodec] f s = case readMaybe s of
151.86 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.87 s
[really-safe-money-autodocodec] Just i ->
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + if False
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
151.87 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
151.87 s
[really-safe-money-autodocodec] f s = case readMaybe s of
151.87 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.87 s
[really-safe-money-autodocodec] Just i ->
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + if not ((i :: Integer) < toInteger (minBound :: Word64))
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
151.87 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
151.87 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.87 s
[really-safe-money-autodocodec] Just i ->
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords []
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
151.87 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
151.87 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.87 s
[really-safe-money-autodocodec] Just i ->
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
151.87 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + if True
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
151.87 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + if False
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
151.87 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
151.87 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords []
151.87 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
151.87 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
151.87 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
151.87 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
151.87 s
[really-safe-money-autodocodec] @@ -49,9 +49,9 @@
151.87 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] else
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
151.87 s
[really-safe-money-autodocodec]
151.87 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
151.87 s
[really-safe-money-autodocodec] @@ -46,12 +46,12 @@
151.87 s
[really-safe-money-autodocodec] f s = case readMaybe s of
151.87 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
151.87 s
[really-safe-money-autodocodec] Just i ->
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] - else
151.87 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
151.87 s
[really-safe-money-autodocodec] + else
151.87 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
151.87 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
151.87 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
151.87 s
[really-safe-money-autodocodec] g :: Amount -> String
151.87 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
151.87 s
[really-safe-money-autodocodec]
151.87 s
[really-safe-money-autodocodec] added 14 mutations
152.14 s
[really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.p_o )
152.15 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
152.15 s
[really-safe-money-autodocodec] added 0 mutations
152.27 s
[really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.p_o )
152.28 s
[really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
152.28 s
[really-safe-money-autodocodec] added 0 mutations
152.42 s
[really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.p_o )
152.42 s
[really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
152.42 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
152.42 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
152.42 s
[really-safe-money-autodocodec] where
152.42 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
152.42 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
152.42 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
152.42 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
152.42 s
[really-safe-money-autodocodec] Just a -> Right a
152.42 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
152.42 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
152.42 s
[really-safe-money-autodocodec] where
152.42 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
152.42 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
152.42 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
152.42 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
152.42 s
[really-safe-money-autodocodec] Just a -> Right a
152.42 s
[really-safe-money-autodocodec] added 2 mutations
152.57 s
[really-safe-money-autodocodec] [7 of 7] Compiling Paths_really_safe_money_autodocodec ( dist/build/autogen/Paths_really_safe_money_autodocodec.hs, dist/build/Paths_really_safe_money_autodocodec.p_o )
152.99 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
152.99 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
152.99 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
152.99 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
153.00 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
153.00 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
153.00 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
153.81 s
[really-safe-money-autodocodec] mutation-nix: manifest output at /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest:
153.81 s
[really-safe-money-autodocodec] total 64
153.81 s
[really-safe-money-autodocodec] drwxr-xr-x 2 nixbld nixbld 4096 May 13 15:57 .
153.81 s
[really-safe-money-autodocodec] drwxrwxr-t 239 nobody nixbld 28672 May 13 15:57 ..
153.81 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1366 May 13 15:57 Money.Account.Codec.json
153.81 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AccountOf.Codec.json
153.81 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 11479 May 13 15:57 Money.Amount.Codec.json
153.81 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.AmountOf.Codec.json
153.81 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 15:57 Money.QuantisationFactor.Codec.json
153.81 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1256 May 13 15:57 Numeric.DecimalLiteral.Codec.json
153.81 s
[really-safe-money-autodocodec] Phase: haddockPhase
153.82 s
[really-safe-money-autodocodec] Phase: installPhase
153.88 s
[really-safe-money-autodocodec] Installing library in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
154.07 s
[really-safe-money-autodocodec] Phase: fixupPhase
154.09 s
[really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0
154.09 s
[really-safe-money-autodocodec] shrinking /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk-ghc9.10.3.so
154.11 s
[really-safe-money-autodocodec] checking for references to /build/ in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0...
154.13 s
[really-safe-money-autodocodec] patching script interpreter paths in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0
154.14 s
[really-safe-money-autodocodec] stripping (with command strip and flags -S -p) in /nix/store/gkybnabq9azixw6kwm4pphijkhlfcw32-really-safe-money-autodocodec-0.0.0.0/lib
154.18 s
[really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest
154.19 s
[really-safe-money-autodocodec] checking for references to /build/ in /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest...
154.20 s
[really-safe-money-autodocodec] patching script interpreter paths in /nix/store/2d0wx5kv9jsdzffmjqc9z3ai2yzwd9hc-really-safe-money-autodocodec-0.0.0.0-manifest
154.26 s
Progress: 10 of 13 built (1 building)
156.16 s
[genvalidity-sydtest] Documentation created: dist/doc/html/genvalidity-sydtest/,
156.16 s
[genvalidity-sydtest] dist/doc/html/genvalidity-sydtest/genvalidity-sydtest.txt
156.23 s
[genvalidity-sydtest] Preprocessing test suite 'genvalidity-sydtest-test' for genvalidity-sydtest-1.0.1.0...
156.23 s
[genvalidity-sydtest] Phase: installPhase
156.35 s
[genvalidity-sydtest] Installing library in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
156.93 s
[genvalidity-sydtest] Phase: fixupPhase
156.96 s
[genvalidity-sydtest] shrinking RPATHs of ELF executables and libraries in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0
156.96 s
[genvalidity-sydtest] shrinking /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSgenvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1-ghc9.10.3.so
157.01 s
[genvalidity-sydtest] checking for references to /build/ in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0...
157.06 s
[genvalidity-sydtest] patching script interpreter paths in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0
157.06 s
[genvalidity-sydtest] stripping (with command strip and flags -S -p) in /nix/store/m2fa87mg66gmm13zvf23g8p0ngh37pjx-genvalidity-sydtest-1.0.1.0/lib
157.17 s
[genvalidity-sydtest] shrinking RPATHs of ELF executables and libraries in /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc
157.19 s
[genvalidity-sydtest] checking for references to /build/ in /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc...
157.22 s
[genvalidity-sydtest] patching script interpreter paths in /nix/store/l6amjycgg70zkz2vsxpxssjr1gfyzfc4-genvalidity-sydtest-1.0.1.0-doc
157.39 s
Progress: 11 of 13 built
157.45 s
Building really-safe-money-gen
157.83 s
[really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
157.84 s
[really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
158.32 s
[really-safe-money-gen] Phase: unpackPhase
158.32 s
[really-safe-money-gen] unpacking source archive /nix/store/wyxdcj39a7i2k4n55rzgr5bgfpgmaqdy-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
158.33 s
[really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
158.34 s
[really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778687845 of file "really-safe-money-gen-0.0.0.0/test/Spec.hs"
158.34 s
[really-safe-money-gen] warning: file "really-safe-money-gen-0.0.0.0/test/Spec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
158.34 s
[really-safe-money-gen] Phase: patchPhase
158.35 s
[really-safe-money-gen] Phase: compileBuildDriverPhase
158.35 s
[really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.OqOO6sOrMV/setup-package.conf.d -threaded
158.41 s
[really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.OqOO6sOrMV/Main.o )
158.45 s
[really-safe-money-gen] [2 of 2] Linking Setup
159.76 s
[really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
159.77 s
[really-safe-money-gen] Phase: configurePhase
159.77 s
[really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0 --with-gcc=gcc --package-db=/build/tmp.OqOO6sOrMV/package.conf.d --ghc-option=-j16 --ghc-option=+RTS --ghc-option=-A64M --ghc-option=-RTS --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --disable-benchmarks --enable-library-vanilla --disable-library-for-ghci --enable-split-sections --enable-library-stripping --enable-executable-stripping --ghc-option=-haddock --ghc-options=-O2 --ghc-options=-Wall --ghc-options=-Wincomplete-uni-patterns --ghc-options=-Wincomplete-record-updates --ghc-options=-Wpartial-fields --ghc-options=-Widentities --ghc-options=-Wredundant-constraints --ghc-options=-Wcpp-undef --ghc-options=-Werror --extra-lib-dirs=/nix/store/ffyzkisqs4vc4mg28bwwlyqjf8i9ph6b-ncurses-6.5/lib --extra-lib-dirs=/nix/store/n28qgdj8c1q41kf7n4y1jxa6ckp85m3c-libffi-3.5.2/lib --extra-lib-dirs=/nix/store/1b6h99dw7bk4wbn77kbalih42zbc67m1-elfutils-0.194/lib --extra-lib-dirs=/nix/store/hi0ar880110k6jsmmili7dh1gq3cg2a9-gmp-with-cxx-6.3.0/lib --extra-lib-dirs=/nix/store/g09cflpnp4g80q56sj9dng1qzv4v4ybc-numactl-2.0.18/lib --extra-lib-dirs=/nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/lib
159.78 s
[really-safe-money-gen] Using Parsec parser
159.78 s
[really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
160.49 s
[really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
160.49 s
[really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
160.49 s
[really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
160.49 s
[really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
160.49 s
[really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
160.49 s
[really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
160.49 s
[really-safe-money-gen] Dependency containers: using containers-0.7
160.49 s
[really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
160.49 s
[really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
160.49 s
[really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
160.49 s
[really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
160.49 s
[really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
160.49 s
[really-safe-money-gen] Dependency vector: using vector-0.13.2.0
160.49 s
[really-safe-money-gen] Source component graph:
160.49 s
[really-safe-money-gen] component lib
160.49 s
[really-safe-money-gen] component test:really-safe-money-test dependency lib
160.49 s
[really-safe-money-gen] Configured component graph:
160.49 s
[really-safe-money-gen] component really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
160.49 s
[really-safe-money-gen] include base-4.20.2.0-64da
160.49 s
[really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
160.49 s
[really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
160.49 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
160.49 s
[really-safe-money-gen] component really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
160.49 s
[really-safe-money-gen] include base-4.20.2.0-64da
160.49 s
[really-safe-money-gen] include containers-0.7-504a
160.49 s
[really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
160.49 s
[really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
160.49 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
160.49 s
[really-safe-money-gen] include really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
160.49 s
[really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
160.49 s
[really-safe-money-gen] Linked component graph:
160.49 s
[really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
160.49 s
[really-safe-money-gen] include base-4.20.2.0-64da
160.49 s
[really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
160.49 s
[really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
160.49 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
160.49 s
[really-safe-money-gen] Money.Account.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Account.Gen,Money.AccountOf.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.AccountOf.Gen,Money.Amount.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Amount.Gen,Money.AmountOf.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.AmountOf.Gen,Money.ConversionRate.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.ConversionRate.Gen,Money.ConversionRateOf.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.ConversionRateOf.Gen,Money.Currency.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Currency.Gen,Money.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.Gen,Money.MultiAccount.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.MultiAccount.Gen,Money.MultiAmount.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.MultiAmount.Gen,Money.QuantisationFactor.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Money.QuantisationFactor.Gen,Numeric.DecimalLiteral.Gen=really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h:Numeric.DecimalLiteral.Gen
160.49 s
[really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
160.49 s
[really-safe-money-gen] include base-4.20.2.0-64da
160.49 s
[really-safe-money-gen] include containers-0.7-504a
160.49 s
[really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
160.49 s
[really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
160.49 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
160.49 s
[really-safe-money-gen] include really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
160.49 s
[really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
160.49 s
[really-safe-money-gen] Ready component graph:
160.49 s
[really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
160.49 s
[really-safe-money-gen] depends base-4.20.2.0-64da
160.49 s
[really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
160.49 s
[really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
160.49 s
[really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
160.49 s
[really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
160.49 s
[really-safe-money-gen] depends base-4.20.2.0-64da
160.49 s
[really-safe-money-gen] depends containers-0.7-504a
160.49 s
[really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
160.49 s
[really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
160.49 s
[really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
160.49 s
[really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
160.49 s
[really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
160.49 s
[really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
160.49 s
[really-safe-money-gen] Using compiler: ghc-9.10.3
160.49 s
[really-safe-money-gen] Using install prefix:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0
160.49 s
[really-safe-money-gen] Executables installed in:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/bin
160.49 s
[really-safe-money-gen] Libraries installed in:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
160.49 s
[really-safe-money-gen] Dynamic Libraries installed in:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
160.49 s
[really-safe-money-gen] Private executables installed in:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
160.49 s
[really-safe-money-gen] Data files installed in:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0
160.49 s
[really-safe-money-gen] Documentation installed in:
160.49 s
[really-safe-money-gen] /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
160.49 s
[really-safe-money-gen] Configuration files installed in:
160.49 s
[really-safe-money-gen] /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/etc
160.49 s
[really-safe-money-gen] No alex found
160.49 s
[really-safe-money-gen] Using ar found on system at:
160.49 s
[really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
160.49 s
[really-safe-money-gen] No c2hs found
160.49 s
[really-safe-money-gen] No cpphs found
160.49 s
[really-safe-money-gen] No doctest found
160.49 s
[really-safe-money-gen] Using gcc version 14.3.0 given by user at:
160.49 s
[really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
160.49 s
[really-safe-money-gen] Using ghc version 9.10.3 found on system at:
160.49 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
160.49 s
[really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
160.49 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
160.49 s
[really-safe-money-gen] No ghcjs found
160.49 s
[really-safe-money-gen] No ghcjs-pkg found
160.49 s
[really-safe-money-gen] No greencard found
160.49 s
[really-safe-money-gen] Using haddock version 2.31.1 found on system at:
160.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
160.50 s
[really-safe-money-gen] No happy found
160.50 s
[really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
160.50 s
[really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
160.50 s
[really-safe-money-gen] No hmake found
160.50 s
[really-safe-money-gen] Using hpc version 0.69 found on system at:
160.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
160.50 s
[really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
160.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
160.50 s
[really-safe-money-gen] Using hscolour version 1.25 found on system at:
160.50 s
[really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
160.50 s
[really-safe-money-gen] No jhc found
160.50 s
[really-safe-money-gen] Using ld found on system at:
160.50 s
[really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
160.50 s
[really-safe-money-gen] No pkg-config found
160.50 s
[really-safe-money-gen] Using runghc version 9.10.3 found on system at:
160.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
160.50 s
[really-safe-money-gen] Using strip version 2.44 found on system at:
160.50 s
[really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
160.50 s
[really-safe-money-gen] Using tar found on system at:
160.50 s
[really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
160.50 s
[really-safe-money-gen] No uhc found
160.94 s
[really-safe-money-gen] Phase: buildPhase
161.06 s
[really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
161.06 s
[really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
161.24 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.o, dist/build/Money/Amount/Gen.dyn_o )
161.53 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.o, dist/build/Money/Account/Gen.dyn_o )
161.60 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.o, dist/build/Money/AccountOf/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.o, dist/build/Money/AmountOf/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.o, dist/build/Money/ConversionRate/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.o, dist/build/Money/ConversionRateOf/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.o, dist/build/Money/QuantisationFactor/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.o, dist/build/Money/Currency/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.o, dist/build/Money/MultiAmount/Gen.dyn_o )
161.65 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.o, dist/build/Money/MultiAccount/Gen.dyn_o )
161.68 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.o, dist/build/Money/Gen.dyn_o )
161.72 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.o, dist/build/Numeric/DecimalLiteral/Gen.dyn_o )
161.72 s
[really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, dist/build/Paths_really_safe_money_gen.o, dist/build/Paths_really_safe_money_gen.dyn_o )
161.94 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
162.42 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
162.81 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
162.95 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
162.95 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
162.95 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
162.95 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
162.95 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
162.95 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
162.95 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
162.99 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
163.12 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
163.12 s
[really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, dist/build/Paths_really_safe_money_gen.p_o )
164.79 s
[really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
164.79 s
[really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
165.05 s
[really-safe-money-gen] [ 1 of 14] Compiling Money.AccountSpec ( test/Money/AccountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AccountSpec.o )
168.04 s
[really-safe-money-gen] [ 2 of 14] Compiling Money.AmountSpec ( test/Money/AmountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AmountSpec.o )
168.25 s
[really-safe-money-gen] [ 3 of 14] Compiling Money.ConversionRateSpec ( test/Money/ConversionRateSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/ConversionRateSpec.o )
168.25 s
[really-safe-money-gen] [ 4 of 14] Compiling Money.Currency.TestUtils ( test/Money/Currency/TestUtils.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/Currency/TestUtils.o )
168.25 s
[really-safe-money-gen] [ 5 of 14] Compiling Money.ConversionRateOfSpec ( test/Money/ConversionRateOfSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/ConversionRateOfSpec.o )
168.25 s
[really-safe-money-gen] [ 6 of 14] Compiling Money.AmountOfSpec ( test/Money/AmountOfSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AmountOfSpec.o )
168.25 s
[really-safe-money-gen] [ 7 of 14] Compiling Money.AccountOfSpec ( test/Money/AccountOfSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/AccountOfSpec.o )
168.25 s
[really-safe-money-gen] [ 8 of 14] Compiling Money.CurrencySpec ( test/Money/CurrencySpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/CurrencySpec.o )
168.25 s
[really-safe-money-gen] [ 9 of 14] Compiling Money.MultiAccountSpec ( test/Money/MultiAccountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/MultiAccountSpec.o )
168.25 s
[really-safe-money-gen] [10 of 14] Compiling Money.MultiAmountSpec ( test/Money/MultiAmountSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/MultiAmountSpec.o )
168.25 s
[really-safe-money-gen] [11 of 14] Compiling Money.QuantisationFactorSpec ( test/Money/QuantisationFactorSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Money/QuantisationFactorSpec.o )
168.25 s
[really-safe-money-gen] [12 of 14] Compiling Numeric.DecimalLiteralSpec ( test/Numeric/DecimalLiteralSpec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Numeric/DecimalLiteralSpec.o )
168.25 s
[really-safe-money-gen] [13 of 14] Compiling Main ( test/Spec.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Main.o )
168.31 s
[really-safe-money-gen] [14 of 14] Compiling Paths_really_safe_money_gen ( dist/build/really-safe-money-test/autogen/Paths_really_safe_money_gen.hs, dist/build/really-safe-money-test/really-safe-money-test-tmp/Paths_really_safe_money_gen.o )
168.67 s
[really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
170.29 s
[really-safe-money-gen] Phase: checkPhase
170.30 s
[really-safe-money-gen] mutation-nix: collecting coverage for suite really-safe-money-gen
172.01 s
[really-safe-money-gen] coverage (12/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 5 % 1 into DecimalLiteral Nothing 5 0 (18 mutations)
173.04 s
[really-safe-money-gen] coverage (17/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 20 4 into rational 1 % 500 (4 mutations)
173.27 s
[really-safe-money-gen] coverage (27/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 240009 % 20000 into DecimalLiteral Nothing 1200045 5 (22 mutations)
173.37 s
[really-safe-money-gen] coverage (14/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.renders to valid decimal literals (23 mutations)
173.47 s
[really-safe-money-gen] coverage (5/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 (18 mutations)
173.63 s
[really-safe-money-gen] coverage (10/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-1) % 1000 into DecimalLiteral (Just False) 1 3 (21 mutations)
173.67 s
[really-safe-money-gen] coverage (1/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.renders to valid decimal literals (1 mutations)
173.71 s
[really-safe-money-gen] coverage (25/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 7 % 1 into DecimalLiteral Nothing 7 0 (18 mutations)
173.74 s
[really-safe-money-gen] coverage (9/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 50 1 into rational 5 % 1 (4 mutations)
173.79 s
[really-safe-money-gen] coverage (24/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 1 into DecimalLiteral Nothing 1 0 (18 mutations)
173.85 s
[really-safe-money-gen] coverage (3/1610): Numeric\.DecimalLiteralSpec.Natural.toNatural.renders to valid naturals (0 mutations)
173.88 s
[really-safe-money-gen] coverage (2/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.can parse any rendered literal (4 mutations)
173.91 s
[really-safe-money-gen] coverage (22/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 9 % 100 into DecimalLiteral Nothing 9 2 (20 mutations)
173.96 s
[really-safe-money-gen] coverage (4/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 9 2 into rational 9 % 100 (4 mutations)
173.98 s
[really-safe-money-gen] coverage (7/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-6) % 1 into DecimalLiteral (Just False) 6 0 (19 mutations)
174.05 s
[really-safe-money-gen] coverage (8/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 10 0 into rational 10 % 1 (4 mutations)
174.08 s
[really-safe-money-gen] coverage (23/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 3 0 into rational (-3) % 1 (4 mutations)
174.22 s
[really-safe-money-gen] coverage (19/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1 into DecimalLiteral (Just False) 3 0 (19 mutations)
174.23 s
[really-safe-money-gen] coverage (13/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.can parse any rendered rational (26 mutations)
174.23 s
[really-safe-money-gen] coverage (6/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 500 into DecimalLiteral Nothing 2 3 (20 mutations)
174.28 s
[really-safe-money-gen] coverage (11/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-4) % 5 into DecimalLiteral (Just False) 8 1 (21 mutations)
174.46 s
[really-safe-money-gen] coverage (20/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 7000 3 into rational 7 % 1 (4 mutations)
174.46 s
[really-safe-money-gen] coverage (28/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 1 3 into rational (-1) % 1000 (4 mutations)
174.47 s
[really-safe-money-gen] coverage (21/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 2 0 into rational 2 % 1 (4 mutations)
174.49 s
[really-safe-money-gen] coverage (26/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1 0 into rational 1 % 1 (4 mutations)
174.55 s
[really-safe-money-gen] coverage (18/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 10 % 1 into DecimalLiteral Nothing 10 0 (18 mutations)
174.80 s
[really-safe-money-gen] coverage (15/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 600 2 into rational (-6) % 1 (4 mutations)
174.81 s
[really-safe-money-gen] coverage (16/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 400 0 into rational 400 % 1 (4 mutations)
175.73 s
[really-safe-money-gen] coverage (29/1610): Numeric\.DecimalLiteralSpec.Rational.toRational.renders to valid rationals (4 mutations)
176.76 s
[really-safe-money-gen] coverage (30/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1000 into DecimalLiteral (Just False) 3 3 (21 mutations)
177.23 s
[really-safe-money-gen] coverage (32/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1200045 5 into rational 240009 % 20000 (4 mutations)
177.27 s
[really-safe-money-gen] coverage (31/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 2 % 1 into DecimalLiteral Nothing 2 0 (18 mutations)
177.31 s
[really-safe-money-gen] coverage (33/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 8 1 into rational (-4) % 5 (4 mutations)
177.31 s
[really-safe-money-gen] coverage (34/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 300 5 into rational (-3) % 1000 (4 mutations)
177.41 s
[really-safe-money-gen] coverage (37/1610): Numeric\.DecimalLiteralSpec.Ratio.toRatio.renders to valid rationals (3 mutations)
177.44 s
[really-safe-money-gen] coverage (41/1610): Numeric\.DecimalLiteralSpec.GenValid DecimalLiteral.genValid \:\: Gen DecimalLiteral.only generates valid 'DecimalLiteral's (0 mutations)
177.46 s
[really-safe-money-gen] coverage (35/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.can parse any rendered rational (21 mutations)
177.52 s
[really-safe-money-gen] coverage (38/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.does not change the value of the literal (9 mutations)
177.57 s
[really-safe-money-gen] coverage (40/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces values with more than the given number of digits (6 mutations)
177.64 s
[really-safe-money-gen] coverage (42/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.fails to parse scientific notation (15 mutations)
177.66 s
[really-safe-money-gen] coverage (39/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces valid literals (6 mutations)
177.72 s
[really-safe-money-gen] coverage (36/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.renders to valid decimal literals (18 mutations)
177.72 s
[really-safe-money-gen] coverage (44/1610): Numeric\.DecimalLiteralSpec.setSignOptional.produces valid values (0 mutations)
177.79 s
[really-safe-money-gen] coverage (43/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.can parse any rendered decimal literal (30 mutations)
177.87 s
[really-safe-money-gen] coverage (45/1610): Numeric\.DecimalLiteralSpec.Int.toInt.renders to valid words (6 mutations)
177.93 s
[really-safe-money-gen] coverage (46/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.can parse any rendered literal (13 mutations)
178.01 s
[really-safe-money-gen] coverage (47/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.renders to valid decimal literals (7 mutations)
178.08 s
[really-safe-money-gen] coverage (50/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.can parse any rendered literal (4 mutations)
178.11 s
[really-safe-money-gen] coverage (49/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.renders to valid decimal literals (1 mutations)
178.14 s
[really-safe-money-gen] coverage (48/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromStringM.does the same as DecimalLiteral\.fromString (9 mutations)
178.20 s
[really-safe-money-gen] coverage (54/1610): Numeric\.DecimalLiteralSpec.examples.can parse "1" (15 mutations)
178.28 s
[really-safe-money-gen] coverage (51/1610): Numeric\.DecimalLiteralSpec.Word.toWord.renders to valid words (0 mutations)
178.39 s
[really-safe-money-gen] coverage (53/1610): Numeric\.DecimalLiteralSpec.examples.can parse "+2" (18 mutations)
178.40 s
[really-safe-money-gen] coverage (52/1610): Numeric\.DecimalLiteralSpec.toString.can render any decimal literal (2 mutations)
178.74 s
[really-safe-money-gen] coverage (56/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 50 1 (1 mutations)
178.99 s
[really-safe-money-gen] coverage (55/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 300 5 (3 mutations)
179.60 s
[really-safe-money-gen] coverage (57/1610): Numeric\.DecimalLiteralSpec.examples.can parse "400" (22 mutations)
180.68 s
[really-safe-money-gen] coverage (58/1610): Numeric\.DecimalLiteralSpec.examples.can parse "5\.0" (19 mutations)
181.29 s
[really-safe-money-gen] coverage (59/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 8 1 (3 mutations)
181.32 s
[really-safe-money-gen] coverage (60/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 3 (3 mutations)
181.35 s
[really-safe-money-gen] coverage (62/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 7000 3 (1 mutations)
181.36 s
[really-safe-money-gen] coverage (63/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 20 4 (3 mutations)
181.44 s
[really-safe-money-gen] coverage (66/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just True) 2 0 (1 mutations)
181.45 s
[really-safe-money-gen] coverage (61/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.00300" (22 mutations)
181.46 s
[really-safe-money-gen] coverage (64/1610): Numeric\.DecimalLiteralSpec.examples.can parse "12\.00045" (24 mutations)
181.52 s
[really-safe-money-gen] coverage (76/1610): Numeric\.DecimalLiteralSpec.examples.can parse "-3" (15 mutations)
181.59 s
[really-safe-money-gen] coverage (65/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 0 (1 mutations)
181.63 s
[really-safe-money-gen] coverage (67/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1200045 5 (1 mutations)
181.63 s
[really-safe-money-gen] coverage (72/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.8" (17 mutations)
181.65 s
[really-safe-money-gen] coverage (69/1610): Numeric\.DecimalLiteralSpec.examples.can parse "6\.00" (22 mutations)
181.78 s
[really-safe-money-gen] coverage (68/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.001" (20 mutations)
181.80 s
[really-safe-money-gen] coverage (71/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 9 2 (3 mutations)
181.93 s
[really-safe-money-gen] coverage (70/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 600 2 (1 mutations)
181.99 s
[really-safe-money-gen] coverage (80/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.renders to valid decimal literals (7 mutations)
182.22 s
[really-safe-money-gen] coverage (74/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.09" (20 mutations)
182.27 s
[really-safe-money-gen] coverage (75/1610): Numeric\.DecimalLiteralSpec.examples.can parse "7\.000" (22 mutations)
182.27 s
[really-safe-money-gen] coverage (82/1610): Numeric\.DecimalLiteralSpec.digits.produces valid numbers of digits (0 mutations)
182.28 s
[really-safe-money-gen] coverage (73/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 400 0 (1 mutations)
182.34 s
[really-safe-money-gen] coverage (78/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.0020" (22 mutations)
182.38 s
[really-safe-money-gen] coverage (77/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just False) 3 0 (1 mutations)
182.44 s
[really-safe-money-gen] coverage (79/1610): Numeric\.DecimalLiteralSpec.Integer.toInteger.renders to valid words (0 mutations)
182.62 s
[really-safe-money-gen] coverage (81/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.can parse any rendered literal (7 mutations)
182.86 s
[really-safe-money-gen] coverage (83/1610): Numeric\.DecimalLiteralSpec.setSignRequired.produces valid values (1 mutations)
183.33 s
[really-safe-money-gen] coverage (84/1610): Money\.ConversionRateSpec.Rational.toRational.produces valid rationals (0 mutations)
184.39 s
[really-safe-money-gen] coverage (85/1610): Money\.ConversionRateSpec.Rational.fromRational.roundtrips with toRational (11 mutations)
184.55 s
[really-safe-money-gen] coverage (88/1610): Money\.ConversionRateSpec.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
185.21 s
[really-safe-money-gen] coverage (90/1610): Money\.ConversionRateSpec.invert.produces valid rates (8 mutations)
185.65 s
[really-safe-money-gen] coverage (86/1610): Money\.ConversionRateSpec.Rational.fromRational.produces valid conversion rates (11 mutations)
185.79 s
[really-safe-money-gen] coverage (89/1610): Money\.ConversionRateSpec.Ratio.toRatio.produces valid ratios (0 mutations)
185.89 s
[really-safe-money-gen] coverage (101/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is symmetric for "valid Account"s (0 mutations)
185.89 s
[really-safe-money-gen] coverage (99/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Account"s (0 mutations)
185.89 s
[really-safe-money-gen] coverage (98/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"s (0 mutations)
185.91 s
[really-safe-money-gen] coverage (87/1610): Money\.ConversionRateSpec.Ratio.fromRatio.produces valid conversion rates (6 mutations)
186.02 s
[really-safe-money-gen] coverage (95/1610): Money\.ConversionRateSpec.GenValid ConversionRate.genValid \:\: Gen ConversionRate.only generates valid 'ConversionRate's (6 mutations)
186.02 s
[really-safe-money-gen] coverage (97/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Account"s (0 mutations)
186.13 s
[really-safe-money-gen] coverage (100/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is transitive for "valid Account"s (0 mutations)
186.40 s
[really-safe-money-gen] coverage (103/1610): Money\.AccountSpec.Eq.says negative 0 equals positive 0 (1 mutations)
186.41 s
[really-safe-money-gen] coverage (102/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is reflexive for "valid Account"s (0 mutations)
186.44 s
[really-safe-money-gen] coverage (108/1610): Money\.AccountSpec.convert.converts this USD to CHF correctly (10 mutations)
186.45 s
[really-safe-money-gen] coverage (104/1610): Money\.AccountSpec.negate.produces valid amounts (0 mutations)
186.48 s
[really-safe-money-gen] coverage (96/1610): Money\.AccountSpec.Show Account and Read Account.are implemented such that read \. show == id for valid values (1 mutations)
186.52 s
[really-safe-money-gen] coverage (94/1610): Money\.ConversionRateSpec.compose.produces valid rates (6 mutations)
186.59 s
[really-safe-money-gen] coverage (92/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
186.65 s
[really-safe-money-gen] coverage (109/1610): Money\.AccountSpec.distribute.correctly distributes 5 into 3 (11 mutations)
186.73 s
[really-safe-money-gen] coverage (110/1610): Money\.AccountSpec.distribute.correctly distributes 3 into 3 (11 mutations)
186.94 s
[really-safe-money-gen] coverage (106/1610): Money\.AccountSpec.convert.succeeds in converting 1\:1 without rounding if the quantisation factor is the same (11 mutations)
186.96 s
[really-safe-money-gen] coverage (105/1610): Money\.AccountSpec.format.produces valid strings (3 mutations)
187.60 s
[really-safe-money-gen] coverage (112/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is transitive for "valid (Distribution Account)"s (1 mutations)
187.79 s
[really-safe-money-gen] coverage (113/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution Account)"s (1 mutations)
188.80 s
[really-safe-money-gen] coverage (107/1610): Money\.AccountSpec.convert.produces valid amounts (11 mutations)
188.92 s
[really-safe-money-gen] coverage (115/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is antireflexive for "valid (Distribution Account)"s (1 mutations)
189.18 s
[really-safe-money-gen] coverage (114/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is reflexive for "valid (Distribution Account)"s (1 mutations)
189.79 s
[really-safe-money-gen] coverage (111/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is symmetric for "valid (Distribution Account)"s (1 mutations)
189.94 s
[really-safe-money-gen] coverage (118/1610): Money\.AccountSpec.distribute.correctly distributes 10 into 4 (11 mutations)
190.00 s
[really-safe-money-gen] coverage (131/1610): Money\.AccountSpec.rate.computes this USD to CHF rate correctly (6 mutations)
190.21 s
[really-safe-money-gen] coverage (122/1610): Money\.AccountSpec.fromAmount.produces valid accounts (0 mutations)
190.31 s
[really-safe-money-gen] coverage (127/1610): Money\.AccountSpec.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
190.48 s
[really-safe-money-gen] coverage (116/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution Account)"s (1 mutations)
190.51 s
[really-safe-money-gen] coverage (121/1610): Money\.AccountSpec.abs.produces valid amounts (0 mutations)
190.59 s
[really-safe-money-gen] coverage (120/1610): Money\.AccountSpec.distribute.produces valid amounts (19 mutations)
190.67 s
[really-safe-money-gen] coverage (117/1610): Money\.AccountSpec.distribute.produces results that sum up to the greater whole (32 mutations)
190.70 s
[really-safe-money-gen] coverage (137/1610): Money\.AccountSpec.Ord.Ord Account."max \:\: (Account -> Account -> Account)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Account"'s (0 mutations)
190.73 s
[really-safe-money-gen] coverage (124/1610): Money\.AccountSpec.fromRational.produces valid rational (18 mutations)
190.79 s
[really-safe-money-gen] coverage (133/1610): Money\.AccountSpec.toDouble.produces an infinite or NaN Double with quantisation factor 0 (0 mutations)
190.79 s
[really-safe-money-gen] coverage (132/1610): Money\.AccountSpec.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
190.97 s
[really-safe-money-gen] coverage (126/1610): Money\.AccountSpec.fromRatio.roundtrips with toRatio (13 mutations)
191.04 s
[really-safe-money-gen] coverage (136/1610): Money\.AccountSpec.Ord.says -3 is smaller than 2 (0 mutations)
191.19 s
[really-safe-money-gen] coverage (128/1610): Money\.AccountSpec.fromMinimalQuantisations.produces valid accounts (9 mutations)
191.21 s
[really-safe-money-gen] coverage (123/1610): Money\.AccountSpec.fromRational.roundtrips with toRational (18 mutations)
191.23 s
[really-safe-money-gen] coverage (138/1610): Money\.AccountSpec.Ord.Ord Account."min \:\: (Account -> Account -> Account)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Account"'s (0 mutations)
191.38 s
[really-safe-money-gen] coverage (134/1610): Money\.AccountSpec.Ord.says -6 is greater than -7 (0 mutations)
191.48 s
[really-safe-money-gen] coverage (129/1610): Money\.AccountSpec.rate.computes a rate that can be used to do a conversion without rounding (10 mutations)
191.50 s
[really-safe-money-gen] coverage (125/1610): Money\.AccountSpec.fromRatio.produces valid rational (13 mutations)
191.58 s
[really-safe-money-gen] coverage (130/1610): Money\.AccountSpec.rate.produces valid conversion rates (6 mutations)
191.73 s
[really-safe-money-gen] coverage (140/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Account"'s (0 mutations)
192.19 s
[really-safe-money-gen] coverage (119/1610): Money\.AccountSpec.distribute.Show (Distribution Account) and Read (Distribution Account).are implemented such that read \. show == id for valid values (1 mutations)
192.26 s
[really-safe-money-gen] coverage (141/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (0 mutations)
192.68 s
[really-safe-money-gen] coverage (139/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
193.08 s
[really-safe-money-gen] coverage (149/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (0 mutations)
193.58 s
[really-safe-money-gen] coverage (151/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid Account"'s (0 mutations)
193.76 s
[really-safe-money-gen] coverage (152/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
193.92 s
[really-safe-money-gen] coverage (157/1610): Money\.AccountSpec.sum.fails to sum above maxBound (5 mutations)
194.06 s
[really-safe-money-gen] coverage (153/1610): Money\.AccountSpec.toRatio.produces valid Ratios when the quantisation factor is nonzero (0 mutations)
194.10 s
[really-safe-money-gen] coverage (156/1610): Money\.AccountSpec.sum.fails to sum above maxBound even if the result is back below maxBound (5 mutations)
194.16 s
[really-safe-money-gen] coverage (155/1610): Money\.AccountSpec.sum.produces valid amounts (14 mutations)
194.25 s
[really-safe-money-gen] coverage (162/1610): Money\.AccountSpec.add.fails for minBound + (-1) (4 mutations)
194.34 s
[really-safe-money-gen] coverage (154/1610): Money\.AccountSpec.fractionRatio.produces valid amounts (6 mutations)
194.43 s
[really-safe-money-gen] coverage (163/1610): Money\.AccountSpec.add.fails for minBound + minBound (4 mutations)
194.57 s
[really-safe-money-gen] coverage (160/1610): Money\.AccountSpec.toMinimalQuantisations.produces valid accounts (0 mutations)
194.60 s
[really-safe-money-gen] coverage (161/1610): Money\.AccountSpec.add.is commutative (13 mutations)
194.63 s
[really-safe-money-gen] coverage (164/1610): Money\.AccountSpec.add.produces valid amounts (13 mutations)
194.65 s
[really-safe-money-gen] coverage (167/1610): Money\.AccountSpec.add.fails for maxBound + maxBound (4 mutations)
194.74 s
[really-safe-money-gen] coverage (166/1610): Money\.AccountSpec.add.fails for maxBound + 1 (4 mutations)
194.78 s
[really-safe-money-gen] coverage (135/1610): Money\.AccountSpec.Ord.says 4 is smaller than 5 (0 mutations)
194.87 s
[really-safe-money-gen] coverage (165/1610): Money\.AccountSpec.add.has a right-identity\: zero (14 mutations)
195.07 s
[really-safe-money-gen] coverage (144/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Account"'s (0 mutations)
195.08 s
[really-safe-money-gen] coverage (173/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (22 mutations)
195.11 s
[really-safe-money-gen] coverage (169/1610): Money\.AccountSpec.add.has a left-identity\: zero (14 mutations)
195.25 s
[really-safe-money-gen] coverage (170/1610): Money\.AccountSpec.add.matches what you would get with Integer, if nothing fails (13 mutations)
195.53 s
[really-safe-money-gen] coverage (168/1610): Money\.AccountSpec.add.is associative when both succeed (13 mutations)
195.64 s
[really-safe-money-gen] coverage (146/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
195.66 s
[really-safe-money-gen] coverage (159/1610): Money\.AccountSpec.sum.matches what you would get with Integer, if nothing fails (14 mutations)
195.74 s
[really-safe-money-gen] coverage (142/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (0 mutations)
196.00 s
[really-safe-money-gen] coverage (175/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 200 2 (25 mutations)
196.66 s
[really-safe-money-gen] coverage (145/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (0 mutations)
197.01 s
[really-safe-money-gen] coverage (143/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (0 mutations)
197.22 s
[really-safe-money-gen] coverage (178/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 600 2 (25 mutations)
197.30 s
[really-safe-money-gen] coverage (176/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
197.33 s
[really-safe-money-gen] coverage (147/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Account"'s (0 mutations)
197.33 s
[really-safe-money-gen] coverage (177/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (25 mutations)
197.56 s
[really-safe-money-gen] coverage (158/1610): Money\.AccountSpec.sum.correctly sums [1,2,3] to 6 (5 mutations)
197.61 s
[really-safe-money-gen] coverage (174/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 4 2 (25 mutations)
197.64 s
[really-safe-money-gen] coverage (150/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (0 mutations)
197.65 s
[really-safe-money-gen] coverage (148/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (0 mutations)
197.75 s
[really-safe-money-gen] coverage (180/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (25 mutations)
197.80 s
[really-safe-money-gen] coverage (179/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
197.97 s
[really-safe-money-gen] coverage (181/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (27 mutations)
198.14 s
[really-safe-money-gen] coverage (185/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (23 mutations)
198.15 s
[really-safe-money-gen] coverage (182/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (25 mutations)
198.15 s
[really-safe-money-gen] coverage (171/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
198.43 s
[really-safe-money-gen] coverage (172/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (22 mutations)
198.66 s
[really-safe-money-gen] coverage (187/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
198.67 s
[really-safe-money-gen] coverage (189/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just False) 2 0 (23 mutations)
198.83 s
[really-safe-money-gen] coverage (188/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 20 2 (27 mutations)
199.00 s
[really-safe-money-gen] coverage (186/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
199.08 s
[really-safe-money-gen] coverage (190/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
199.12 s
[really-safe-money-gen] coverage (199/1610): Money\.AccountSpec.fromDouble.roundtrips with toDouble back to double (27 mutations)
199.36 s
[really-safe-money-gen] coverage (191/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise (13 mutations)
199.80 s
[really-safe-money-gen] coverage (193/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise:1 (13 mutations)
199.92 s
[really-safe-money-gen] coverage (192/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.produces valid factors (22 mutations)
200.39 s
[really-safe-money-gen] coverage (195/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (22 mutations)
200.44 s
[really-safe-money-gen] coverage (194/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (27 mutations)
201.00 s
[really-safe-money-gen] coverage (197/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (22 mutations)
201.24 s
[really-safe-money-gen] coverage (220/1610): Money\.AccountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
201.46 s
[really-safe-money-gen] coverage (196/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (22 mutations)
201.68 s
[really-safe-money-gen] coverage (200/1610): Money\.AccountSpec.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
201.77 s
[really-safe-money-gen] coverage (201/1610): Money\.AccountSpec.subtract.fails for minBound - 1 (4 mutations)
201.82 s
[really-safe-money-gen] coverage (198/1610): Money\.AccountSpec.fromDouble.produces valid rational (27 mutations)
201.82 s
[really-safe-money-gen] coverage (221/1610): Money\.MultiAmountSpec.fromAmount.produces valid amounts (16 mutations)
202.09 s
[really-safe-money-gen] coverage (225/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(/=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (MultiAmount Currency)"s (1 mutations)
202.31 s
[really-safe-money-gen] coverage (223/1610): Money\.MultiAmountSpec.zero.is valid (2 mutations)
202.45 s
[really-safe-money-gen] coverage (218/1610): Money\.AccountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundUp (12 mutations)
202.79 s
[really-safe-money-gen] coverage (228/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (MultiAmount Currency)"s (1 mutations)
202.92 s
[really-safe-money-gen] coverage (226/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"s (1 mutations)
202.98 s
[really-safe-money-gen] coverage (229/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is reflexive for "valid (MultiAmount Currency)"s (2 mutations)
202.98 s
[really-safe-money-gen] coverage (227/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(==) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is symmetric for "valid (MultiAmount Currency)"s (1 mutations)
203.11 s
[really-safe-money-gen] coverage (222/1610): Money\.MultiAmountSpec.Show (MultiAmount Currency) and Read (MultiAmount Currency).are implemented such that read \. show == id for valid values (2 mutations)
203.18 s
[really-safe-money-gen] coverage (233/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (MultiAmount Currency)"'s (2 mutations)
203.47 s
[really-safe-money-gen] coverage (231/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antireflexive for "valid (MultiAmount Currency)"'s (2 mutations)
203.83 s
[really-safe-money-gen] coverage (208/1610): Money\.AccountSpec.multiply.has an identity\: 1 (6 mutations)
203.91 s
[really-safe-money-gen] coverage (219/1610): Money\.AccountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
204.28 s
[really-safe-money-gen] coverage (206/1610): Money\.AccountSpec.multiply.produces valid amounts (6 mutations)
204.44 s
[really-safe-money-gen] coverage (230/1610): Money\.MultiAmountSpec.sum.produces valid amounts (21 mutations)
204.80 s
[really-safe-money-gen] coverage (217/1610): Money\.AccountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundDown (12 mutations)
205.24 s
[really-safe-money-gen] coverage (207/1610): Money\.AccountSpec.multiply.succeeds for 3 * 6 (6 mutations)
205.36 s
[really-safe-money-gen] coverage (224/1610): Money\.MultiAmountSpec.Eq (MultiAmount Currency).(/=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antireflexive for "valid (MultiAmount Currency)"s (2 mutations)
205.49 s
[really-safe-money-gen] coverage (204/1610): Money\.AccountSpec.multiply.fails for 3 * minBound (4 mutations)
205.65 s
[really-safe-money-gen] coverage (203/1610): Money\.AccountSpec.subtract.fails for maxBound - minBound (4 mutations)
205.73 s
[really-safe-money-gen] coverage (252/1610): Money\.MultiAmountSpec.add.has a left-identity\: zero (2 mutations)
205.74 s
[really-safe-money-gen] coverage (248/1610): Money\.MultiAmountSpec.convertAll.produces valid results when converting two currencies to one (7 mutations)
205.99 s
[really-safe-money-gen] coverage (202/1610): Money\.AccountSpec.subtract.fails for minBound - maxBound (4 mutations)
206.27 s
[really-safe-money-gen] coverage (254/1610): Money\.MultiAmountSpec.add.is commutative (10 mutations)
206.54 s
[really-safe-money-gen] coverage (205/1610): Money\.AccountSpec.multiply.is absorbed by 0 (6 mutations)
206.66 s
[really-safe-money-gen] coverage (235/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (MultiAmount Currency)"'s (2 mutations)
207.32 s
[really-safe-money-gen] coverage (255/1610): Money\.MultiAmountSpec.addAmount.produces valid amounts (17 mutations)
207.36 s
[really-safe-money-gen] coverage (209/1610): Money\.AccountSpec.multiply.is distributive with add when both succeed (19 mutations)
207.71 s
[really-safe-money-gen] coverage (256/1610): Money\.MultiAmountSpec.subtractAmount.produces valid amounts (22 mutations)
207.71 s
[really-safe-money-gen] coverage (242/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (MultiAmount Currency)"'s (2 mutations)
207.72 s
[really-safe-money-gen] coverage (241/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
207.85 s
[really-safe-money-gen] coverage (247/1610): Money\.MultiAmountSpec.convertAll.produces the right result in this example (5 mutations)
207.96 s
[really-safe-money-gen] coverage (251/1610): Money\.MultiAmountSpec.add.has a right-identity\: zero (2 mutations)
208.14 s
[really-safe-money-gen] coverage (236/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
208.14 s
[really-safe-money-gen] coverage (243/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency)."max \:\: (MultiAmount Currency -> MultiAmount Currency -> MultiAmount Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (MultiAmount Currency)"'s (2 mutations)
208.39 s
[really-safe-money-gen] coverage (210/1610): Money\.AccountSpec.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
208.83 s
[really-safe-money-gen] coverage (253/1610): Money\.MultiAmountSpec.add.is associative when both succeed (10 mutations)
208.91 s
[really-safe-money-gen] coverage (261/1610): Money\.MultiAmountSpec.lookupAmount.can find an added amount (1 mutations)
209.26 s
[really-safe-money-gen] coverage (258/1610): Money\.MultiAmountSpec.subtract.produces valid amounts (22 mutations)
209.40 s
[really-safe-money-gen] coverage (249/1610): Money\.MultiAmountSpec.convertAll.does the same as 'convert' when there is only one amount (13 mutations)
210.13 s
[really-safe-money-gen] coverage (213/1610): Money\.AccountSpec.fraction.Correctly fractions 101 with 1 % 100 (15 mutations)
210.22 s
[really-safe-money-gen] coverage (212/1610): Money\.AccountSpec.GenValid Account.genValid \:\: Gen Account.only generates valid 'Account's (0 mutations)
210.25 s
[really-safe-money-gen] coverage (238/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency)."min \:\: (MultiAmount Currency -> MultiAmount Currency -> MultiAmount Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (MultiAmount Currency)"'s (2 mutations)
210.43 s
[really-safe-money-gen] coverage (239/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antisymmetric for "valid (MultiAmount Currency)"'s (2 mutations)
210.47 s
[really-safe-money-gen] coverage (234/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is reflexive for "valid (MultiAmount Currency)"'s (2 mutations)
210.67 s
[really-safe-money-gen] coverage (246/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (MultiAmount Currency)"'s (2 mutations)
210.71 s
[really-safe-money-gen] coverage (259/1610): Money\.MultiAmountSpec.subtract.has a right-identity\: zero (2 mutations)
211.13 s
[really-safe-money-gen] coverage (211/1610): Money\.AccountSpec.multiply.fails for 2 * maxbound (4 mutations)
211.13 s
[really-safe-money-gen] coverage (216/1610): Money\.AccountSpec.fraction.Correctly fractions 100 with 1 % 100 (15 mutations)
211.38 s
[really-safe-money-gen] coverage (214/1610): Money\.AccountSpec.fraction.produces valid amounts (16 mutations)
211.58 s
[really-safe-money-gen] coverage (257/1610): Money\.MultiAmountSpec.GenValid (MultiAmount Currency).genValid \:\: Gen (MultiAmount Currency).only generates valid '(MultiAmount Currency)'s (13 mutations)
211.81 s
[really-safe-money-gen] coverage (263/1610): Money\.AccountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (14 mutations)
211.87 s
[really-safe-money-gen] coverage (215/1610): Money\.AccountSpec.fraction.Produces a result that can be multiplied back (16 mutations)
211.90 s
[really-safe-money-gen] coverage (265/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"s (0 mutations)
212.22 s
[really-safe-money-gen] coverage (237/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antisymmetric for "valid (MultiAmount Currency)"'s (2 mutations)
212.32 s
[really-safe-money-gen] coverage (245/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
212.33 s
[really-safe-money-gen] coverage (244/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is antireflexive for "valid (MultiAmount Currency)"'s (2 mutations)
212.71 s
[really-safe-money-gen] coverage (240/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(>=) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is reflexive for "valid (MultiAmount Currency)"'s (2 mutations)
212.72 s
[really-safe-money-gen] coverage (266/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"s (0 mutations)
212.88 s
[really-safe-money-gen] coverage (264/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * USD)"s (0 mutations)
213.10 s
[really-safe-money-gen] coverage (232/1610): Money\.MultiAmountSpec.Ord (MultiAmount Currency).(<) \:\: (MultiAmount Currency) -> (MultiAmount Currency) -> Bool.is transitive for "valid (MultiAmount Currency)"'s (2 mutations)
213.23 s
[really-safe-money-gen] coverage (262/1610): Money\.AccountOfSpec.USD.sum.produces valid amounts (14 mutations)
213.65 s
[really-safe-money-gen] coverage (267/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is symmetric for "valid (AccountOf * USD)"s (0 mutations)
213.83 s
[really-safe-money-gen] coverage (268/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"s (0 mutations)
214.01 s
[really-safe-money-gen] coverage (250/1610): Money\.MultiAmountSpec.add.produces valid amounts (21 mutations)
214.01 s
[really-safe-money-gen] coverage (91/1610): Money\.ConversionRateSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
214.38 s
[really-safe-money-gen] coverage (271/1610): Money\.AccountOfSpec.USD.add.is associative when both succeed (13 mutations)
215.05 s
[really-safe-money-gen] coverage (287/1610): Money\.AccountOfSpec.USD.INR.convert.produces valid amounts (11 mutations)
215.17 s
[really-safe-money-gen] coverage (269/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * USD)"s (0 mutations)
215.36 s
[really-safe-money-gen] coverage (282/1610): Money\.AccountOfSpec.USD.USD.rate.produces valid amounts (6 mutations)
215.47 s
[really-safe-money-gen] coverage (272/1610): Money\.AccountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (13 mutations)
215.50 s
[really-safe-money-gen] coverage (260/1610): Money\.MultiAmountSpec.lookupAmount.produces valid amounts (2 mutations)
215.53 s
[really-safe-money-gen] coverage (286/1610): Money\.AccountOfSpec.USD.INR.rate.produces valid amounts (6 mutations)
215.73 s
[really-safe-money-gen] coverage (273/1610): Money\.AccountOfSpec.USD.add.produces valid amounts (13 mutations)
215.75 s
[really-safe-money-gen] coverage (288/1610): Money\.AccountOfSpec.USD.ADA.rate.produces valid amounts (6 mutations)
216.14 s
[really-safe-money-gen] coverage (289/1610): Money\.AccountOfSpec.USD.ADA.convert.produces valid amounts (11 mutations)
216.42 s
[really-safe-money-gen] coverage (294/1610): Money\.AccountOfSpec.USD.fraction.Produces a result that can be multiplied back (16 mutations)
216.57 s
[really-safe-money-gen] coverage (297/1610): Money\.AccountOfSpec.USD.GenValid (AccountOf * USD).genValid \:\: Gen (AccountOf * USD).only generates valid '(AccountOf * USD)'s (0 mutations)
216.95 s
[really-safe-money-gen] coverage (298/1610): Money\.AccountOfSpec.USD.fromDouble.produces valid rational (27 mutations)
216.99 s
[really-safe-money-gen] coverage (291/1610): Money\.AccountOfSpec.USD.CHF.rate.produces valid amounts (6 mutations)
217.03 s
[really-safe-money-gen] coverage (93/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
217.18 s
[really-safe-money-gen] coverage (293/1610): Money\.AccountOfSpec.USD.fraction.produces valid amounts (16 mutations)
217.18 s
[really-safe-money-gen] coverage (290/1610): Money\.AccountOfSpec.USD.CHF.convert.produces valid amounts (11 mutations)
217.20 s
[really-safe-money-gen] coverage (285/1610): Money\.AccountOfSpec.USD.BTC.convert.produces valid amounts (11 mutations)
217.34 s
[really-safe-money-gen] coverage (292/1610): Money\.AccountOfSpec.USD.abs.produces valid amounts (0 mutations)
217.39 s
[really-safe-money-gen] coverage (284/1610): Money\.AccountOfSpec.USD.BTC.rate.produces valid amounts (6 mutations)
217.43 s
[really-safe-money-gen] coverage (296/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.produces valid accounts (9 mutations)
217.79 s
[really-safe-money-gen] coverage (295/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
217.79 s
[really-safe-money-gen] coverage (277/1610): Money\.AccountOfSpec.USD.toMinimalQuantisations.produces valid accounts (0 mutations)
217.92 s
[really-safe-money-gen] coverage (280/1610): Money\.AccountOfSpec.USD.negate.produces valid amounts (0 mutations)
217.95 s
[really-safe-money-gen] coverage (279/1610): Money\.AccountOfSpec.USD.fromAmount.produces valid AccountOfs (0 mutations)
218.14 s
[really-safe-money-gen] coverage (276/1610): Money\.AccountOfSpec.USD.fromAmountOf.produces valid AccountOfs (0 mutations)
218.37 s
[really-safe-money-gen] coverage (299/1610): Money\.AccountOfSpec.USD.fromDouble.roundtrips with toDouble (27 mutations)
218.95 s
[really-safe-money-gen] coverage (278/1610): Money\.AccountOfSpec.USD.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
219.47 s
[really-safe-money-gen] coverage (274/1610): Money\.AccountOfSpec.USD.add.is commutative (13 mutations)
219.85 s
[really-safe-money-gen] coverage (275/1610): Money\.AccountOfSpec.USD.add.has a left-identity\: zero (14 mutations)
220.03 s
[really-safe-money-gen] coverage (302/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (0 mutations)
220.14 s
[really-safe-money-gen] coverage (270/1610): Money\.AccountOfSpec.USD.add.has a right-identity\: zero (14 mutations)
220.43 s
[really-safe-money-gen] coverage (301/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"'s (0 mutations)
220.50 s
[really-safe-money-gen] coverage (300/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * USD)"'s (0 mutations)
220.80 s
[really-safe-money-gen] coverage (281/1610): Money\.AccountOfSpec.USD.USD.convert.produces valid amounts (11 mutations)
220.80 s
[really-safe-money-gen] coverage (303/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (0 mutations)
220.94 s
[really-safe-money-gen] coverage (283/1610): Money\.AccountOfSpec.USD.Show (AccountOf * USD) and Read (AccountOf * USD).are implemented such that read \. show == id for valid values (1 mutations)
221.41 s
[really-safe-money-gen] coverage (319/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(/=) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * USD))"s (1 mutations)
221.41 s
[really-safe-money-gen] coverage (306/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * USD)"'s (0 mutations)
221.49 s
[really-safe-money-gen] coverage (308/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"'s (0 mutations)
221.50 s
[really-safe-money-gen] coverage (304/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"'s (0 mutations)
221.52 s
[really-safe-money-gen] coverage (307/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antisymmetric for "valid (AccountOf * USD)"'s (0 mutations)
221.68 s
[really-safe-money-gen] coverage (310/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD)."max \:\: (AccountOf * USD -> AccountOf * USD -> AccountOf * USD)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * USD)"'s (0 mutations)
221.92 s
[really-safe-money-gen] coverage (309/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (0 mutations)
221.93 s
[really-safe-money-gen] coverage (311/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * USD)"'s (0 mutations)
222.09 s
[really-safe-money-gen] coverage (315/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD)."min \:\: (AccountOf * USD -> AccountOf * USD -> AccountOf * USD)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * USD)"'s (0 mutations)
222.31 s
[really-safe-money-gen] coverage (312/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"'s (0 mutations)
222.34 s
[really-safe-money-gen] coverage (314/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (0 mutations)
222.43 s
[really-safe-money-gen] coverage (317/1610): Money\.AccountOfSpec.USD.distribute.Show (Distribution (AccountOf * USD)) and Read (Distribution (AccountOf * USD)).are implemented such that read \. show == id for valid values (1 mutations)
222.43 s
[really-safe-money-gen] coverage (313/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antisymmetric for "valid (AccountOf * USD)"'s (0 mutations)
222.56 s
[really-safe-money-gen] coverage (316/1610): Money\.AccountOfSpec.USD.distribute.produces results that sum up to the greater whole (28 mutations)
222.72 s
[really-safe-money-gen] coverage (321/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is transitive for "valid (Distribution (AccountOf * USD))"s (1 mutations)
223.26 s
[really-safe-money-gen] coverage (322/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is symmetric for "valid (Distribution (AccountOf * USD))"s (1 mutations)
223.35 s
[really-safe-money-gen] coverage (305/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * USD)"'s (0 mutations)
223.89 s
[really-safe-money-gen] coverage (332/1610): Money\.AccountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
223.91 s
[really-safe-money-gen] coverage (329/1610): Money\.AccountOfSpec.USD.multiply.is absorbed by 0 (6 mutations)
223.96 s
[really-safe-money-gen] coverage (331/1610): Money\.AccountOfSpec.USD.multiply.produces valid amounts (6 mutations)
224.26 s
[really-safe-money-gen] coverage (334/1610): Money\.AccountOfSpec.USD.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
224.47 s
[really-safe-money-gen] coverage (333/1610): Money\.AccountOfSpec.USD.multiply.is distributive with add when both succeed (19 mutations)
224.62 s
[really-safe-money-gen] coverage (320/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is reflexive for "valid (Distribution (AccountOf * USD))"s (1 mutations)
224.71 s
[really-safe-money-gen] coverage (327/1610): Money\.AccountOfSpec.USD.fromRational.produces valid rational (18 mutations)
224.88 s
[really-safe-money-gen] coverage (326/1610): Money\.AccountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
224.91 s
[really-safe-money-gen] coverage (330/1610): Money\.AccountOfSpec.USD.multiply.has an identity\: 1 (6 mutations)
225.01 s
[really-safe-money-gen] coverage (318/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(/=) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * USD))"s (1 mutations)
225.59 s
[really-safe-money-gen] coverage (337/1610): Money\.AccountOfSpec.INR.USD.rate.produces valid amounts (6 mutations)
225.61 s
[really-safe-money-gen] coverage (340/1610): Money\.AccountOfSpec.INR.add.produces valid amounts (13 mutations)
225.68 s
[really-safe-money-gen] coverage (335/1610): Money\.AccountOfSpec.INR.fromAmount.produces valid AccountOfs (0 mutations)
225.68 s
[really-safe-money-gen] coverage (342/1610): Money\.AccountOfSpec.INR.add.has a left-identity\: zero (14 mutations)
225.70 s
[really-safe-money-gen] coverage (339/1610): Money\.AccountOfSpec.INR.abs.produces valid amounts (0 mutations)
225.70 s
[really-safe-money-gen] coverage (324/1610): Money\.AccountOfSpec.USD.distribute.produces valid amounts (15 mutations)
225.79 s
[really-safe-money-gen] coverage (336/1610): Money\.AccountOfSpec.INR.USD.convert.produces valid amounts (11 mutations)
226.12 s
[really-safe-money-gen] coverage (338/1610): Money\.AccountOfSpec.INR.GenValid (AccountOf * INR).genValid \:\: Gen (AccountOf * INR).only generates valid '(AccountOf * INR)'s (0 mutations)
226.43 s
[really-safe-money-gen] coverage (359/1610): Money\.AccountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (14 mutations)
226.46 s
[really-safe-money-gen] coverage (343/1610): Money\.AccountOfSpec.INR.add.is commutative (13 mutations)
226.49 s
[really-safe-money-gen] coverage (341/1610): Money\.AccountOfSpec.INR.add.is associative when both succeed (13 mutations)
226.62 s
[really-safe-money-gen] coverage (346/1610): Money\.AccountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
226.87 s
[really-safe-money-gen] coverage (355/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is symmetric for "valid (Distribution (AccountOf * INR))"s (1 mutations)
226.99 s
[really-safe-money-gen] coverage (352/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is transitive for "valid (Distribution (AccountOf * INR))"s (1 mutations)
227.40 s
[really-safe-money-gen] coverage (350/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(/=) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * INR))"s (1 mutations)
227.42 s
[really-safe-money-gen] coverage (351/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(/=) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * INR))"s (1 mutations)
227.64 s
[really-safe-money-gen] coverage (361/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."min \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * INR)"'s (0 mutations)
227.67 s
[really-safe-money-gen] coverage (349/1610): Money\.AccountOfSpec.INR.distribute.produces results that sum up to the greater whole (28 mutations)
227.77 s
[really-safe-money-gen] coverage (348/1610): Money\.AccountOfSpec.INR.fraction.Produces a result that can be multiplied back (16 mutations)
227.82 s
[really-safe-money-gen] coverage (354/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is reflexive for "valid (Distribution (AccountOf * INR))"s (1 mutations)
228.40 s
[really-safe-money-gen] coverage (358/1610): Money\.AccountOfSpec.INR.fromAmountOf.produces valid AccountOfs (0 mutations)
228.49 s
[really-safe-money-gen] coverage (344/1610): Money\.AccountOfSpec.INR.add.has a right-identity\: zero (14 mutations)
228.58 s
[really-safe-money-gen] coverage (345/1610): Money\.AccountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (13 mutations)
228.58 s
[really-safe-money-gen] coverage (325/1610): Money\.AccountOfSpec.USD.format.produces valid strings (3 mutations)
228.64 s
[really-safe-money-gen] coverage (323/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * USD))"s (1 mutations)
228.87 s
[really-safe-money-gen] coverage (347/1610): Money\.AccountOfSpec.INR.fraction.produces valid amounts (16 mutations)
229.31 s
[really-safe-money-gen] coverage (360/1610): Money\.AccountOfSpec.INR.sum.produces valid amounts (14 mutations)
229.53 s
[really-safe-money-gen] coverage (386/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
229.56 s
[really-safe-money-gen] coverage (376/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * INR)"'s (0 mutations)
229.57 s
[really-safe-money-gen] coverage (389/1610): Money\.AccountOfSpec.INR.fromRational.roundtrips with toRational (18 mutations)
229.57 s
[really-safe-money-gen] coverage (328/1610): Money\.AccountOfSpec.USD.fromRational.roundtrips with toRational (18 mutations)
229.87 s
[really-safe-money-gen] coverage (388/1610): Money\.AccountOfSpec.INR.fromRational.produces valid rational (18 mutations)
229.88 s
[really-safe-money-gen] coverage (390/1610): Money\.AccountOfSpec.INR.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
229.89 s
[really-safe-money-gen] coverage (387/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.produces valid accounts (9 mutations)
230.15 s
[really-safe-money-gen] coverage (393/1610): Money\.AccountOfSpec.INR.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
230.29 s
[really-safe-money-gen] coverage (392/1610): Money\.AccountOfSpec.INR.BTC.convert.produces valid amounts (11 mutations)
230.40 s
[really-safe-money-gen] coverage (391/1610): Money\.AccountOfSpec.INR.BTC.rate.produces valid amounts (6 mutations)
230.73 s
[really-safe-money-gen] coverage (394/1610): Money\.AccountOfSpec.INR.fromDouble.roundtrips with toDouble (27 mutations)
231.03 s
[really-safe-money-gen] coverage (395/1610): Money\.AccountOfSpec.INR.fromDouble.produces valid rational (27 mutations)
231.26 s
[really-safe-money-gen] coverage (396/1610): Money\.AccountOfSpec.INR.ADA.convert.produces valid amounts (11 mutations)
231.80 s
[really-safe-money-gen] coverage (398/1610): Money\.AccountOfSpec.INR.format.produces valid strings (3 mutations)
231.97 s
[really-safe-money-gen] coverage (397/1610): Money\.AccountOfSpec.INR.ADA.rate.produces valid amounts (6 mutations)
231.97 s
[really-safe-money-gen] coverage (400/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(/=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * INR)"s (0 mutations)
232.02 s
[really-safe-money-gen] coverage (401/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(/=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"s (0 mutations)
232.04 s
[really-safe-money-gen] coverage (402/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"s (0 mutations)
232.12 s
[really-safe-money-gen] coverage (362/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antisymmetric for "valid (AccountOf * INR)"'s (0 mutations)
232.14 s
[really-safe-money-gen] coverage (399/1610): Money\.AccountOfSpec.INR.toMinimalQuantisations.produces valid accounts (0 mutations)
232.86 s
[really-safe-money-gen] coverage (404/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"s (0 mutations)
232.90 s
[really-safe-money-gen] coverage (406/1610): Money\.AccountOfSpec.INR.INR.convert.produces valid amounts (11 mutations)
233.20 s
[really-safe-money-gen] coverage (407/1610): Money\.AccountOfSpec.INR.INR.rate.produces valid amounts (6 mutations)
233.33 s
[really-safe-money-gen] coverage (408/1610): Money\.AccountOfSpec.CHF.fromAmount.produces valid AccountOfs (0 mutations)
233.42 s
[really-safe-money-gen] coverage (363/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * INR)"'s (0 mutations)
233.43 s
[really-safe-money-gen] coverage (405/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * INR)"s (0 mutations)
233.53 s
[really-safe-money-gen] coverage (403/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is symmetric for "valid (AccountOf * INR)"s (0 mutations)
233.70 s
[really-safe-money-gen] coverage (353/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * INR))"s (1 mutations)
233.86 s
[really-safe-money-gen] coverage (411/1610): Money\.AccountOfSpec.CHF.multiply.produces valid amounts (6 mutations)
233.86 s
[really-safe-money-gen] coverage (416/1610): Money\.AccountOfSpec.CHF.distribute.produces valid amounts (15 mutations)
233.98 s
[really-safe-money-gen] coverage (375/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antisymmetric for "valid (AccountOf * INR)"'s (0 mutations)
234.02 s
[really-safe-money-gen] coverage (412/1610): Money\.AccountOfSpec.CHF.multiply.is absorbed by 0 (6 mutations)
234.05 s
[really-safe-money-gen] coverage (409/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
234.07 s
[really-safe-money-gen] coverage (410/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.produces valid accounts (9 mutations)
234.24 s
[really-safe-money-gen] coverage (370/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (0 mutations)
234.40 s
[really-safe-money-gen] coverage (413/1610): Money\.AccountOfSpec.CHF.multiply.is distributive with add when both succeed (19 mutations)
234.54 s
[really-safe-money-gen] coverage (357/1610): Money\.AccountOfSpec.INR.distribute.produces valid amounts (15 mutations)
234.63 s
[really-safe-money-gen] coverage (414/1610): Money\.AccountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
235.66 s
[really-safe-money-gen] coverage (184/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.produces valid decimal literals (30 mutations)
235.90 s
[really-safe-money-gen] coverage (356/1610): Money\.AccountOfSpec.INR.distribute.Show (Distribution (AccountOf * INR)) and Read (Distribution (AccountOf * INR)).are implemented such that read \. show == id for valid values (1 mutations)
236.00 s
[really-safe-money-gen] coverage (426/1610): Money\.AccountOfSpec.CHF.sum.produces valid amounts (14 mutations)
236.10 s
[really-safe-money-gen] coverage (379/1610): Money\.AccountOfSpec.INR.multiply.is distributive with add when both succeed (19 mutations)
236.31 s
[really-safe-money-gen] coverage (380/1610): Money\.AccountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
236.37 s
[really-safe-money-gen] coverage (377/1610): Money\.AccountOfSpec.INR.CHF.rate.produces valid amounts (6 mutations)
236.42 s
[really-safe-money-gen] coverage (415/1610): Money\.AccountOfSpec.CHF.multiply.has an identity\: 1 (6 mutations)
236.53 s
[really-safe-money-gen] coverage (419/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(/=) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * CHF))"s (1 mutations)
236.74 s
[really-safe-money-gen] coverage (365/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (0 mutations)
236.94 s
[really-safe-money-gen] coverage (382/1610): Money\.AccountOfSpec.INR.multiply.produces valid amounts (6 mutations)
237.47 s
[really-safe-money-gen] coverage (378/1610): Money\.AccountOfSpec.INR.CHF.convert.produces valid amounts (11 mutations)
237.77 s
[really-safe-money-gen] coverage (385/1610): Money\.AccountOfSpec.INR.Show (AccountOf * INR) and Read (AccountOf * INR).are implemented such that read \. show == id for valid values (1 mutations)
237.81 s
[really-safe-money-gen] coverage (423/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * CHF))"s (1 mutations)
237.82 s
[really-safe-money-gen] coverage (372/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"'s (0 mutations)
237.97 s
[really-safe-money-gen] coverage (429/1610): Money\.AccountOfSpec.CHF.USD.rate.produces valid amounts (6 mutations)
238.28 s
[really-safe-money-gen] coverage (369/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."max \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * INR)"'s (0 mutations)
238.30 s
[really-safe-money-gen] coverage (383/1610): Money\.AccountOfSpec.INR.multiply.has an identity\: 1 (6 mutations)
238.33 s
[really-safe-money-gen] coverage (371/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * INR)"'s (0 mutations)
238.49 s
[really-safe-money-gen] coverage (374/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (0 mutations)
238.50 s
[really-safe-money-gen] coverage (364/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"'s (0 mutations)
238.92 s
[really-safe-money-gen] coverage (367/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"'s (0 mutations)
239.16 s
[really-safe-money-gen] coverage (373/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"'s (0 mutations)
239.54 s
[really-safe-money-gen] coverage (424/1610): Money\.AccountOfSpec.CHF.distribute.Show (Distribution (AccountOf * CHF)) and Read (Distribution (AccountOf * CHF)).are implemented such that read \. show == id for valid values (1 mutations)
239.55 s
[really-safe-money-gen] coverage (368/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * INR)"'s (0 mutations)
239.55 s
[really-safe-money-gen] coverage (381/1610): Money\.AccountOfSpec.INR.multiply.is absorbed by 0 (6 mutations)
239.73 s
[really-safe-money-gen] coverage (425/1610): Money\.AccountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (14 mutations)
240.07 s
[really-safe-money-gen] coverage (427/1610): Money\.AccountOfSpec.CHF.Show (AccountOf * CHF) and Read (AccountOf * CHF).are implemented such that read \. show == id for valid values (1 mutations)
240.70 s
[really-safe-money-gen] coverage (428/1610): Money\.AccountOfSpec.CHF.abs.produces valid amounts (0 mutations)
241.24 s
[really-safe-money-gen] coverage (438/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"s (0 mutations)
241.50 s
[really-safe-money-gen] coverage (430/1610): Money\.AccountOfSpec.CHF.USD.convert.produces valid amounts (11 mutations)
241.50 s
[really-safe-money-gen] coverage (431/1610): Money\.AccountOfSpec.CHF.BTC.convert.produces valid amounts (11 mutations)
241.58 s
[really-safe-money-gen] coverage (432/1610): Money\.AccountOfSpec.CHF.BTC.rate.produces valid amounts (6 mutations)
241.74 s
[really-safe-money-gen] coverage (435/1610): Money\.AccountOfSpec.CHF.fraction.produces valid amounts (16 mutations)
241.75 s
[really-safe-money-gen] coverage (437/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"s (0 mutations)
241.94 s
[really-safe-money-gen] coverage (441/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(/=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"s (0 mutations)
242.06 s
[really-safe-money-gen] coverage (183/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.roundtrips with Account\.fromDecimalLiteral (51 mutations)
242.10 s
[really-safe-money-gen] coverage (439/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is symmetric for "valid (AccountOf * CHF)"s (0 mutations)
242.22 s
[really-safe-money-gen] coverage (440/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(/=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * CHF)"s (0 mutations)
242.74 s
[really-safe-money-gen] coverage (443/1610): Money\.AccountOfSpec.CHF.fromAmountOf.produces valid AccountOfs (0 mutations)
243.01 s
[really-safe-money-gen] coverage (444/1610): Money\.AccountOfSpec.CHF.negate.produces valid amounts (0 mutations)
243.14 s
[really-safe-money-gen] coverage (447/1610): Money\.AccountOfSpec.CHF.fromRational.produces valid rational (18 mutations)
243.64 s
[really-safe-money-gen] coverage (442/1610): Money\.AccountOfSpec.CHF.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
243.64 s
[really-safe-money-gen] coverage (448/1610): Money\.AccountOfSpec.CHF.fromRational.roundtrips with toRational (18 mutations)
243.65 s
[really-safe-money-gen] coverage (453/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF)."min \:\: (AccountOf * CHF -> AccountOf * CHF -> AccountOf * CHF)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * CHF)"'s (0 mutations)
243.65 s
[really-safe-money-gen] coverage (449/1610): Money\.AccountOfSpec.CHF.fromDouble.produces valid rational (27 mutations)
243.77 s
[really-safe-money-gen] coverage (452/1610): Money\.AccountOfSpec.CHF.ADA.rate.produces valid amounts (6 mutations)
243.80 s
[really-safe-money-gen] coverage (434/1610): Money\.AccountOfSpec.CHF.fraction.Produces a result that can be multiplied back (16 mutations)
243.83 s
[really-safe-money-gen] coverage (451/1610): Money\.AccountOfSpec.CHF.ADA.convert.produces valid amounts (11 mutations)
244.18 s
[really-safe-money-gen] coverage (450/1610): Money\.AccountOfSpec.CHF.fromDouble.roundtrips with toDouble (27 mutations)
244.53 s
[really-safe-money-gen] coverage (446/1610): Money\.AccountOfSpec.CHF.format.produces valid strings (3 mutations)
244.53 s
[really-safe-money-gen] coverage (417/1610): Money\.AccountOfSpec.CHF.distribute.produces results that sum up to the greater whole (28 mutations)
244.62 s
[really-safe-money-gen] coverage (459/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (0 mutations)
244.71 s
[really-safe-money-gen] coverage (454/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * CHF)"'s (0 mutations)
244.75 s
[really-safe-money-gen] coverage (457/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * CHF)"'s (0 mutations)
245.02 s
[really-safe-money-gen] coverage (421/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is transitive for "valid (Distribution (AccountOf * CHF))"s (1 mutations)
245.08 s
[really-safe-money-gen] coverage (458/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antisymmetric for "valid (AccountOf * CHF)"'s (0 mutations)
245.69 s
[really-safe-money-gen] coverage (465/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * CHF)"'s (0 mutations)
245.75 s
[really-safe-money-gen] coverage (463/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"'s (0 mutations)
245.80 s
[really-safe-money-gen] coverage (461/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF)."max \:\: (AccountOf * CHF -> AccountOf * CHF -> AccountOf * CHF)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * CHF)"'s (0 mutations)
245.91 s
[really-safe-money-gen] coverage (462/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * CHF)"'s (0 mutations)
245.97 s
[really-safe-money-gen] coverage (464/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (0 mutations)
246.03 s
[really-safe-money-gen] coverage (460/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"'s (0 mutations)
246.30 s
[really-safe-money-gen] coverage (468/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (0 mutations)
246.37 s
[really-safe-money-gen] coverage (466/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"'s (0 mutations)
246.54 s
[really-safe-money-gen] coverage (469/1610): Money\.AccountOfSpec.CHF.GenValid (AccountOf * CHF).genValid \:\: Gen (AccountOf * CHF).only generates valid '(AccountOf * CHF)'s (0 mutations)
246.63 s
[really-safe-money-gen] coverage (470/1610): Money\.AccountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
246.81 s
[really-safe-money-gen] coverage (472/1610): Money\.AccountOfSpec.CHF.CHF.convert.produces valid amounts (11 mutations)
246.96 s
[really-safe-money-gen] coverage (471/1610): Money\.AccountOfSpec.CHF.CHF.rate.produces valid amounts (6 mutations)
247.18 s
[really-safe-money-gen] coverage (473/1610): Money\.AccountOfSpec.CHF.add.is associative when both succeed (13 mutations)
247.62 s
[really-safe-money-gen] coverage (477/1610): Money\.AccountOfSpec.CHF.add.is commutative (13 mutations)
247.67 s
[really-safe-money-gen] coverage (475/1610): Money\.AccountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (13 mutations)
247.77 s
[really-safe-money-gen] coverage (479/1610): Money\.AccountOfSpec.CHF.INR.convert.produces valid amounts (11 mutations)
247.94 s
[really-safe-money-gen] coverage (476/1610): Money\.AccountOfSpec.CHF.add.has a right-identity\: zero (14 mutations)
247.99 s
[really-safe-money-gen] coverage (474/1610): Money\.AccountOfSpec.CHF.add.has a left-identity\: zero (14 mutations)
248.14 s
[really-safe-money-gen] coverage (478/1610): Money\.AccountOfSpec.CHF.add.produces valid amounts (13 mutations)
248.19 s
[really-safe-money-gen] coverage (480/1610): Money\.AccountOfSpec.CHF.INR.rate.produces valid amounts (6 mutations)
248.40 s
[really-safe-money-gen] coverage (482/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
248.67 s
[really-safe-money-gen] coverage (484/1610): Money\.AccountOfSpec.ADA.fromDouble.roundtrips with toDouble (27 mutations)
248.69 s
[really-safe-money-gen] coverage (483/1610): Money\.AccountOfSpec.ADA.fromDouble.produces valid rational (27 mutations)
248.70 s
[really-safe-money-gen] coverage (384/1610): Money\.AccountOfSpec.INR.negate.produces valid amounts (0 mutations)
248.96 s
[really-safe-money-gen] coverage (366/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (0 mutations)
248.96 s
[really-safe-money-gen] coverage (485/1610): Money\.AccountOfSpec.ADA.fromRational.produces valid rational (18 mutations)
249.19 s
[really-safe-money-gen] coverage (487/1610): Money\.AccountOfSpec.ADA.Show (AccountOf * ADA) and Read (AccountOf * ADA).are implemented such that read \. show == id for valid values (1 mutations)
249.21 s
[really-safe-money-gen] coverage (486/1610): Money\.AccountOfSpec.ADA.fromRational.roundtrips with toRational (18 mutations)
249.68 s
[really-safe-money-gen] coverage (489/1610): Money\.AccountOfSpec.ADA.fraction.produces valid amounts (16 mutations)
249.90 s
[really-safe-money-gen] coverage (488/1610): Money\.AccountOfSpec.ADA.fraction.Produces a result that can be multiplied back (16 mutations)
250.00 s
[really-safe-money-gen] coverage (494/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antisymmetric for "valid (AccountOf * ADA)"'s (0 mutations)
250.01 s
[really-safe-money-gen] coverage (492/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (0 mutations)
250.03 s
[really-safe-money-gen] coverage (495/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * ADA)"'s (0 mutations)
250.15 s
[really-safe-money-gen] coverage (497/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"'s (0 mutations)
250.45 s
[really-safe-money-gen] coverage (498/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA)."min \:\: (AccountOf * ADA -> AccountOf * ADA -> AccountOf * ADA)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * ADA)"'s (0 mutations)
250.50 s
[really-safe-money-gen] coverage (501/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * ADA)"'s (0 mutations)
250.70 s
[really-safe-money-gen] coverage (506/1610): Money\.AccountOfSpec.ADA.fromAmountOf.produces valid AccountOfs (0 mutations)
250.89 s
[really-safe-money-gen] coverage (505/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"'s (0 mutations)
250.90 s
[really-safe-money-gen] coverage (504/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (0 mutations)
251.11 s
[really-safe-money-gen] coverage (507/1610): Money\.AccountOfSpec.ADA.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
251.31 s
[really-safe-money-gen] coverage (517/1610): Money\.AccountOfSpec.ADA.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
251.81 s
[really-safe-money-gen] coverage (516/1610): Money\.AccountOfSpec.ADA.distribute.produces results that sum up to the greater whole (28 mutations)
251.88 s
[really-safe-money-gen] coverage (521/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"s (0 mutations)
251.94 s
[really-safe-money-gen] coverage (518/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(/=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"s (0 mutations)
251.98 s
[really-safe-money-gen] coverage (508/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is reflexive for "valid (Distribution (AccountOf * ADA))"s (1 mutations)
252.10 s
[really-safe-money-gen] coverage (522/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is symmetric for "valid (AccountOf * ADA)"s (0 mutations)
252.11 s
[really-safe-money-gen] coverage (520/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"s (0 mutations)
252.15 s
[really-safe-money-gen] coverage (509/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is transitive for "valid (Distribution (AccountOf * ADA))"s (1 mutations)
252.51 s
[really-safe-money-gen] coverage (511/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * ADA))"s (1 mutations)
252.56 s
[really-safe-money-gen] coverage (515/1610): Money\.AccountOfSpec.ADA.distribute.produces valid amounts (15 mutations)
252.58 s
[really-safe-money-gen] coverage (490/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antisymmetric for "valid (AccountOf * ADA)"'s (0 mutations)
252.80 s
[really-safe-money-gen] coverage (510/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is symmetric for "valid (Distribution (AccountOf * ADA))"s (1 mutations)
253.05 s
[really-safe-money-gen] coverage (500/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (0 mutations)
253.10 s
[really-safe-money-gen] coverage (513/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(/=) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * ADA))"s (1 mutations)
253.22 s
[really-safe-money-gen] coverage (493/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * ADA)"'s (0 mutations)
253.36 s
[really-safe-money-gen] coverage (456/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"'s (0 mutations)
253.80 s
[really-safe-money-gen] coverage (491/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"'s (0 mutations)
253.98 s
[really-safe-money-gen] coverage (420/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is reflexive for "valid (Distribution (AccountOf * CHF))"s (1 mutations)
254.03 s
[really-safe-money-gen] coverage (445/1610): Money\.AccountOfSpec.CHF.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
254.06 s
[really-safe-money-gen] coverage (503/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * ADA)"'s (0 mutations)
254.07 s
[really-safe-money-gen] coverage (481/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.produces valid accounts (9 mutations)
254.13 s
[really-safe-money-gen] coverage (418/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(/=) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * CHF))"s (1 mutations)
254.37 s
[really-safe-money-gen] coverage (496/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (0 mutations)
254.46 s
[really-safe-money-gen] coverage (535/1610): Money\.AccountOfSpec.ADA.toMinimalQuantisations.produces valid accounts (0 mutations)
254.65 s
[really-safe-money-gen] coverage (536/1610): Money\.AccountOfSpec.ADA.ADA.convert.produces valid amounts (11 mutations)
254.73 s
[really-safe-money-gen] coverage (539/1610): Money\.AccountOfSpec.ADA.add.produces valid amounts (13 mutations)
255.13 s
[really-safe-money-gen] coverage (538/1610): Money\.AccountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (13 mutations)
255.36 s
[really-safe-money-gen] coverage (537/1610): Money\.AccountOfSpec.ADA.ADA.rate.produces valid amounts (6 mutations)
255.47 s
[really-safe-money-gen] coverage (540/1610): Money\.AccountOfSpec.ADA.add.is commutative (13 mutations)
255.86 s
[really-safe-money-gen] coverage (542/1610): Money\.AccountOfSpec.ADA.add.has a left-identity\: zero (14 mutations)
255.90 s
[really-safe-money-gen] coverage (541/1610): Money\.AccountOfSpec.ADA.add.is associative when both succeed (13 mutations)
256.29 s
[really-safe-money-gen] coverage (543/1610): Money\.AccountOfSpec.ADA.add.has a right-identity\: zero (14 mutations)
256.43 s
[really-safe-money-gen] coverage (533/1610): Money\.AccountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (14 mutations)
256.53 s
[really-safe-money-gen] coverage (436/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * CHF)"s (0 mutations)
256.67 s
[really-safe-money-gen] coverage (512/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(/=) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * ADA))"s (1 mutations)
256.69 s
[really-safe-money-gen] coverage (529/1610): Money\.AccountOfSpec.ADA.CHF.convert.produces valid amounts (11 mutations)
257.07 s
[really-safe-money-gen] coverage (544/1610): Money\.AccountOfSpec.ADA.GenValid (AccountOf * ADA).genValid \:\: Gen (AccountOf * ADA).only generates valid '(AccountOf * ADA)'s (0 mutations)
257.29 s
[really-safe-money-gen] coverage (526/1610): Money\.AccountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
257.35 s
[really-safe-money-gen] coverage (433/1610): Money\.AccountOfSpec.CHF.toMinimalQuantisations.produces valid accounts (0 mutations)
257.40 s
[really-safe-money-gen] coverage (527/1610): Money\.AccountOfSpec.ADA.negate.produces valid amounts (0 mutations)
257.56 s
[really-safe-money-gen] coverage (525/1610): Money\.AccountOfSpec.ADA.format.produces valid strings (3 mutations)
257.57 s
[really-safe-money-gen] coverage (534/1610): Money\.AccountOfSpec.ADA.sum.produces valid amounts (14 mutations)
258.18 s
[really-safe-money-gen] coverage (528/1610): Money\.AccountOfSpec.ADA.CHF.rate.produces valid amounts (6 mutations)
258.28 s
[really-safe-money-gen] coverage (550/1610): Money\.AccountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
258.60 s
[really-safe-money-gen] coverage (532/1610): Money\.AccountOfSpec.ADA.fromAmount.produces valid AccountOfs (0 mutations)
258.61 s
[really-safe-money-gen] coverage (530/1610): Money\.AccountOfSpec.ADA.INR.rate.produces valid amounts (6 mutations)
258.65 s
[really-safe-money-gen] coverage (554/1610): Money\.AccountOfSpec.BTC.add.is commutative (13 mutations)
258.75 s
[really-safe-money-gen] coverage (531/1610): Money\.AccountOfSpec.ADA.INR.convert.produces valid amounts (11 mutations)
258.87 s
[really-safe-money-gen] coverage (523/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * ADA)"s (0 mutations)
258.95 s
[really-safe-money-gen] coverage (553/1610): Money\.AccountOfSpec.ADA.USD.rate.produces valid amounts (6 mutations)
258.97 s
[really-safe-money-gen] coverage (558/1610): Money\.AccountOfSpec.BTC.add.is associative when both succeed (13 mutations)
258.99 s
[really-safe-money-gen] coverage (562/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"'s (0 mutations)
259.20 s
[really-safe-money-gen] coverage (519/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(/=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * ADA)"s (0 mutations)
259.35 s
[really-safe-money-gen] coverage (559/1610): Money\.AccountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (13 mutations)
259.66 s
[really-safe-money-gen] coverage (560/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * BTC)"'s (0 mutations)
259.75 s
[really-safe-money-gen] coverage (564/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antisymmetric for "valid (AccountOf * BTC)"'s (0 mutations)
259.97 s
[really-safe-money-gen] coverage (561/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (0 mutations)
260.11 s
[really-safe-money-gen] coverage (563/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * BTC)"'s (0 mutations)
260.74 s
[really-safe-money-gen] coverage (546/1610): Money\.AccountOfSpec.ADA.BTC.rate.produces valid amounts (6 mutations)
261.22 s
[really-safe-money-gen] coverage (551/1610): Money\.AccountOfSpec.ADA.multiply.is absorbed by 0 (6 mutations)
261.27 s
[really-safe-money-gen] coverage (555/1610): Money\.AccountOfSpec.BTC.add.produces valid amounts (13 mutations)
261.70 s
[really-safe-money-gen] coverage (549/1610): Money\.AccountOfSpec.ADA.multiply.has an identity\: 1 (6 mutations)
261.87 s
[really-safe-money-gen] coverage (557/1610): Money\.AccountOfSpec.BTC.add.has a right-identity\: zero (14 mutations)
261.92 s
[really-safe-money-gen] coverage (548/1610): Money\.AccountOfSpec.ADA.multiply.is distributive with add when both succeed (19 mutations)
262.21 s
[really-safe-money-gen] coverage (547/1610): Money\.AccountOfSpec.ADA.multiply.produces valid amounts (6 mutations)
262.35 s
[really-safe-money-gen] coverage (422/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is symmetric for "valid (Distribution (AccountOf * CHF))"s (1 mutations)
262.49 s
[really-safe-money-gen] coverage (545/1610): Money\.AccountOfSpec.ADA.BTC.convert.produces valid amounts (11 mutations)
262.87 s
[really-safe-money-gen] coverage (569/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"'s (0 mutations)
262.88 s
[really-safe-money-gen] coverage (455/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (0 mutations)
262.93 s
[really-safe-money-gen] coverage (570/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC)."min \:\: (AccountOf * BTC -> AccountOf * BTC -> AccountOf * BTC)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * BTC)"'s (0 mutations)
263.45 s
[really-safe-money-gen] coverage (572/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antisymmetric for "valid (AccountOf * BTC)"'s (0 mutations)
263.64 s
[really-safe-money-gen] coverage (571/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC)."max \:\: (AccountOf * BTC -> AccountOf * BTC -> AccountOf * BTC)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * BTC)"'s (0 mutations)
263.89 s
[really-safe-money-gen] coverage (575/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"'s (0 mutations)
264.24 s
[really-safe-money-gen] coverage (573/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * BTC)"'s (0 mutations)
264.30 s
[really-safe-money-gen] coverage (574/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (0 mutations)
264.32 s
[really-safe-money-gen] coverage (579/1610): Money\.AccountOfSpec.BTC.distribute.produces results that sum up to the greater whole (28 mutations)
264.52 s
[really-safe-money-gen] coverage (576/1610): Money\.AccountOfSpec.BTC.BTC.convert.produces valid amounts (11 mutations)
264.53 s
[really-safe-money-gen] coverage (583/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is symmetric for "valid (Distribution (AccountOf * BTC))"s (1 mutations)
264.56 s
[really-safe-money-gen] coverage (578/1610): Money\.AccountOfSpec.BTC.distribute.produces valid amounts (15 mutations)
264.56 s
[really-safe-money-gen] coverage (577/1610): Money\.AccountOfSpec.BTC.BTC.rate.produces valid amounts (6 mutations)
264.60 s
[really-safe-money-gen] coverage (582/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is reflexive for "valid (Distribution (AccountOf * BTC))"s (1 mutations)
264.72 s
[really-safe-money-gen] coverage (580/1610): Money\.AccountOfSpec.BTC.distribute.Show (Distribution (AccountOf * BTC)) and Read (Distribution (AccountOf * BTC)).are implemented such that read \. show == id for valid values (1 mutations)
264.74 s
[really-safe-money-gen] coverage (556/1610): Money\.AccountOfSpec.BTC.add.has a left-identity\: zero (14 mutations)
264.92 s
[really-safe-money-gen] coverage (581/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * BTC))"s (1 mutations)
264.96 s
[really-safe-money-gen] coverage (467/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antisymmetric for "valid (AccountOf * CHF)"'s (0 mutations)
265.16 s
[really-safe-money-gen] coverage (566/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (0 mutations)
265.33 s
[really-safe-money-gen] coverage (584/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is transitive for "valid (Distribution (AccountOf * BTC))"s (1 mutations)
265.45 s
[really-safe-money-gen] coverage (587/1610): Money\.AccountOfSpec.BTC.toDouble.produces valid Doubles when the quantisation factor is nonzero (0 mutations)
265.57 s
[really-safe-money-gen] coverage (588/1610): Money\.AccountOfSpec.BTC.negate.produces valid amounts (0 mutations)
265.86 s
[really-safe-money-gen] coverage (585/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(/=) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * BTC))"s (1 mutations)
265.96 s
[really-safe-money-gen] coverage (499/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"'s (0 mutations)
266.32 s
[really-safe-money-gen] coverage (586/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(/=) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * BTC))"s (1 mutations)
266.51 s
[really-safe-money-gen] coverage (524/1610): Money\.AccountOfSpec.ADA.abs.produces valid amounts (0 mutations)
266.52 s
[really-safe-money-gen] coverage (514/1610): Money\.AccountOfSpec.ADA.distribute.Show (Distribution (AccountOf * ADA)) and Read (Distribution (AccountOf * ADA)).are implemented such that read \. show == id for valid values (1 mutations)
266.53 s
[really-safe-money-gen] coverage (502/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA)."max \:\: (AccountOf * ADA -> AccountOf * ADA -> AccountOf * ADA)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * ADA)"'s (0 mutations)
266.62 s
[really-safe-money-gen] coverage (592/1610): Money\.AccountOfSpec.BTC.multiply.is absorbed by 0 (6 mutations)
266.99 s
[really-safe-money-gen] coverage (552/1610): Money\.AccountOfSpec.ADA.USD.convert.produces valid amounts (11 mutations)
267.39 s
[really-safe-money-gen] coverage (594/1610): Money\.AccountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (6 mutations)
267.43 s
[really-safe-money-gen] coverage (591/1610): Money\.AccountOfSpec.BTC.multiply.is distributive with add when both succeed (19 mutations)
268.07 s
[really-safe-money-gen] coverage (593/1610): Money\.AccountOfSpec.BTC.multiply.has an identity\: 1 (6 mutations)
268.18 s
[really-safe-money-gen] coverage (590/1610): Money\.AccountOfSpec.BTC.multiply.produces valid amounts (6 mutations)
268.57 s
[really-safe-money-gen] coverage (589/1610): Money\.AccountOfSpec.BTC.fromAmountOf.produces valid AccountOfs (0 mutations)
268.62 s
[really-safe-money-gen] coverage (595/1610): Money\.AccountOfSpec.BTC.sum.produces valid amounts (14 mutations)
268.72 s
[really-safe-money-gen] coverage (565/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"'s (0 mutations)
268.78 s
[really-safe-money-gen] coverage (567/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (0 mutations)
268.89 s
[really-safe-money-gen] coverage (611/1610): Money\.AccountOfSpec.BTC.Show (AccountOf * BTC) and Read (AccountOf * BTC).are implemented such that read \. show == id for valid values (1 mutations)
268.93 s
[really-safe-money-gen] coverage (568/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * BTC)"'s (0 mutations)
268.96 s
[really-safe-money-gen] coverage (615/1610): Money\.AccountOfSpec.BTC.INR.rate.produces valid amounts (6 mutations)
268.98 s
[really-safe-money-gen] coverage (612/1610): Money\.AccountOfSpec.BTC.toMinimalQuantisations.produces valid accounts (0 mutations)
269.01 s
[really-safe-money-gen] coverage (609/1610): Money\.AccountOfSpec.BTC.fromRational.produces valid rational (18 mutations)
269.26 s
[really-safe-money-gen] coverage (616/1610): Money\.AccountOfSpec.BTC.INR.convert.produces valid amounts (11 mutations)
269.28 s
[really-safe-money-gen] coverage (613/1610): Money\.AccountOfSpec.BTC.GenValid (AccountOf * BTC).genValid \:\: Gen (AccountOf * BTC).only generates valid '(AccountOf * BTC)'s (0 mutations)
269.39 s
[really-safe-money-gen] coverage (621/1610): Money\.AccountOfSpec.BTC.CHF.rate.produces valid amounts (6 mutations)
269.43 s
[really-safe-money-gen] coverage (618/1610): Money\.AccountOfSpec.BTC.fromDouble.produces valid rational (27 mutations)
269.70 s
[really-safe-money-gen] coverage (623/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (9 mutations)
269.76 s
[really-safe-money-gen] coverage (627/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
269.80 s
[really-safe-money-gen] coverage (629/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
269.85 s
[really-safe-money-gen] coverage (625/1610): Money\.AccountOfSpec.BTC.fromAmount.produces valid AccountOfs (0 mutations)
270.17 s
[really-safe-money-gen] coverage (630/1610): Money\.ConversionRateOfSpec.INR.ADA.GenValid (ConversionRateOf INR ADA).genValid \:\: Gen (ConversionRateOf INR ADA).only generates valid '(ConversionRateOf INR ADA)'s (6 mutations)
270.40 s
[really-safe-money-gen] coverage (633/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
270.47 s
[really-safe-money-gen] coverage (620/1610): Money\.AccountOfSpec.BTC.fraction.Produces a result that can be multiplied back (16 mutations)
270.54 s
[really-safe-money-gen] coverage (603/1610): Money\.AccountOfSpec.BTC.format.produces valid strings (3 mutations)
270.54 s
[really-safe-money-gen] coverage (631/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.toRational.produces valid rationals (0 mutations)
270.78 s
[really-safe-money-gen] coverage (626/1610): Money\.AccountOfSpec.BTC.abs.produces valid amounts (0 mutations)
271.15 s
[really-safe-money-gen] coverage (619/1610): Money\.AccountOfSpec.BTC.fraction.produces valid amounts (16 mutations)
271.41 s
[really-safe-money-gen] coverage (622/1610): Money\.AccountOfSpec.BTC.CHF.convert.produces valid amounts (11 mutations)
271.46 s
[really-safe-money-gen] coverage (608/1610): Money\.AccountOfSpec.BTC.ADA.rate.produces valid amounts (6 mutations)
272.05 s
[really-safe-money-gen] coverage (614/1610): Money\.AccountOfSpec.BTC.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
272.30 s
[really-safe-money-gen] coverage (628/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
272.59 s
[really-safe-money-gen] coverage (604/1610): Money\.AccountOfSpec.BTC.USD.convert.produces valid amounts (11 mutations)
272.64 s
[really-safe-money-gen] coverage (607/1610): Money\.AccountOfSpec.BTC.ADA.convert.produces valid amounts (11 mutations)
272.70 s
[really-safe-money-gen] coverage (610/1610): Money\.AccountOfSpec.BTC.fromRational.roundtrips with toRational (18 mutations)
272.71 s
[really-safe-money-gen] coverage (600/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is symmetric for "valid (AccountOf * BTC)"s (0 mutations)
272.75 s
[really-safe-money-gen] coverage (599/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * BTC)"s (0 mutations)
272.79 s
[really-safe-money-gen] coverage (606/1610): Money\.AccountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (13 mutations)
272.83 s
[really-safe-money-gen] coverage (605/1610): Money\.AccountOfSpec.BTC.USD.rate.produces valid amounts (6 mutations)
272.99 s
[really-safe-money-gen] coverage (632/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
273.00 s
[really-safe-money-gen] coverage (601/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(/=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"s (0 mutations)
273.12 s
[really-safe-money-gen] coverage (597/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"s (0 mutations)
273.16 s
[really-safe-money-gen] coverage (598/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"s (0 mutations)
273.26 s
[really-safe-money-gen] coverage (596/1610): Money\.AccountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (14 mutations)
273.42 s
[really-safe-money-gen] coverage (624/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.produces valid accounts (9 mutations)
273.61 s
[really-safe-money-gen] coverage (634/1610): Money\.ConversionRateOfSpec.INR.ADA.compose.produces valid rates (6 mutations)
273.88 s
[really-safe-money-gen] coverage (639/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
273.94 s
[really-safe-money-gen] coverage (638/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
273.94 s
[really-safe-money-gen] coverage (640/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
274.09 s
[really-safe-money-gen] coverage (636/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
274.34 s
[really-safe-money-gen] coverage (641/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
274.40 s
[really-safe-money-gen] coverage (642/1610): Money\.ConversionRateOfSpec.INR.BTC.invert.produces valid rates (8 mutations)
274.57 s
[really-safe-money-gen] coverage (643/1610): Money\.ConversionRateOfSpec.INR.BTC.compose.produces valid rates (6 mutations)
274.57 s
[really-safe-money-gen] coverage (644/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.toRational.produces valid rationals (0 mutations)
274.80 s
[really-safe-money-gen] coverage (645/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
275.19 s
[really-safe-money-gen] coverage (647/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
275.55 s
[really-safe-money-gen] coverage (650/1610): Money\.ConversionRateOfSpec.INR.BTC.GenValid (ConversionRateOf INR BTC).genValid \:\: Gen (ConversionRateOf INR BTC).only generates valid '(ConversionRateOf INR BTC)'s (6 mutations)
275.95 s
[really-safe-money-gen] coverage (649/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
276.06 s
[really-safe-money-gen] coverage (651/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
276.77 s
[really-safe-money-gen] coverage (661/1610): Money\.ConversionRateOfSpec.INR.CHF.compose.produces valid rates (6 mutations)
276.77 s
[really-safe-money-gen] coverage (602/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(/=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * BTC)"s (0 mutations)
276.77 s
[really-safe-money-gen] coverage (646/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
276.78 s
[really-safe-money-gen] coverage (652/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
276.78 s
[really-safe-money-gen] coverage (617/1610): Money\.AccountOfSpec.BTC.fromDouble.roundtrips with toDouble (27 mutations)
276.87 s
[really-safe-money-gen] coverage (637/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
277.02 s
[really-safe-money-gen] coverage (648/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
277.11 s
[really-safe-money-gen] coverage (635/1610): Money\.ConversionRateOfSpec.INR.ADA.invert.produces valid rates (8 mutations)
277.14 s
[really-safe-money-gen] coverage (662/1610): Money\.ConversionRateOfSpec.INR.CHF.GenValid (ConversionRateOf INR CHF).genValid \:\: Gen (ConversionRateOf INR CHF).only generates valid '(ConversionRateOf INR CHF)'s (6 mutations)
277.18 s
[really-safe-money-gen] coverage (660/1610): Money\.ConversionRateOfSpec.INR.CHF.invert.produces valid rates (8 mutations)
277.18 s
[really-safe-money-gen] coverage (659/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.toRational.produces valid rationals (0 mutations)
277.40 s
[really-safe-money-gen] coverage (663/1610): Money\.ConversionRateOfSpec.INR.USD.GenValid (ConversionRateOf INR USD).genValid \:\: Gen (ConversionRateOf INR USD).only generates valid '(ConversionRateOf INR USD)'s (6 mutations)
277.43 s
[really-safe-money-gen] coverage (658/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
277.57 s
[really-safe-money-gen] coverage (656/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
277.69 s
[really-safe-money-gen] coverage (664/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.toRational.produces valid rationals (0 mutations)
278.01 s
[really-safe-money-gen] coverage (669/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
278.01 s
[really-safe-money-gen] coverage (668/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
278.10 s
[really-safe-money-gen] coverage (666/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
278.22 s
[really-safe-money-gen] coverage (667/1610): Money\.ConversionRateOfSpec.INR.USD.invert.produces valid rates (8 mutations)
278.28 s
[really-safe-money-gen] coverage (671/1610): Money\.ConversionRateOfSpec.INR.USD.compose.produces valid rates (6 mutations)
278.37 s
[really-safe-money-gen] coverage (673/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
278.43 s
[really-safe-money-gen] coverage (670/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.toRatio.produces valid ratios (0 mutations)
279.12 s
[really-safe-money-gen] coverage (675/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.toRational.produces valid rationals (0 mutations)
279.12 s
[really-safe-money-gen] coverage (672/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
279.12 s
[really-safe-money-gen] coverage (674/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
279.42 s
[really-safe-money-gen] coverage (676/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
280.02 s
[really-safe-money-gen] coverage (677/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
280.41 s
[really-safe-money-gen] coverage (657/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
280.94 s
[really-safe-money-gen] coverage (682/1610): Money\.ConversionRateOfSpec.INR.INR.compose.produces valid rates (6 mutations)
281.29 s
[really-safe-money-gen] coverage (655/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
281.34 s
[really-safe-money-gen] coverage (665/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
281.35 s
[really-safe-money-gen] coverage (654/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
281.47 s
[really-safe-money-gen] coverage (687/1610): Money\.ConversionRateOfSpec.ADA.USD.compose.produces valid rates (6 mutations)
281.51 s
[really-safe-money-gen] coverage (690/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
282.04 s
[really-safe-money-gen] coverage (692/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
282.15 s
[really-safe-money-gen] coverage (688/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.toRatio.produces valid ratios (0 mutations)
282.20 s
[really-safe-money-gen] coverage (691/1610): Money\.ConversionRateOfSpec.ADA.USD.invert.produces valid rates (8 mutations)
282.40 s
[really-safe-money-gen] coverage (693/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
282.43 s
[really-safe-money-gen] coverage (694/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.toRational.produces valid rationals (0 mutations)
282.48 s
[really-safe-money-gen] coverage (689/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
282.54 s
[really-safe-money-gen] coverage (695/1610): Money\.ConversionRateOfSpec.ADA.USD.GenValid (ConversionRateOf ADA USD).genValid \:\: Gen (ConversionRateOf ADA USD).only generates valid '(ConversionRateOf ADA USD)'s (6 mutations)
282.79 s
[really-safe-money-gen] coverage (684/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
283.10 s
[really-safe-money-gen] coverage (653/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
283.77 s
[really-safe-money-gen] coverage (685/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
283.86 s
[really-safe-money-gen] coverage (696/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
283.93 s
[really-safe-money-gen] coverage (686/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.toRatio.produces valid ratios (0 mutations)
284.26 s
[really-safe-money-gen] coverage (697/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
284.41 s
[really-safe-money-gen] coverage (680/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
284.58 s
[really-safe-money-gen] coverage (683/1610): Money\.ConversionRateOfSpec.INR.INR.invert.produces valid rates (8 mutations)
284.86 s
[really-safe-money-gen] coverage (679/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
285.47 s
[really-safe-money-gen] coverage (706/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
285.92 s
[really-safe-money-gen] coverage (708/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
285.96 s
[really-safe-money-gen] coverage (702/1610): Money\.ConversionRateOfSpec.ADA.CHF.compose.produces valid rates (6 mutations)
285.97 s
[really-safe-money-gen] coverage (681/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
286.19 s
[really-safe-money-gen] coverage (678/1610): Money\.ConversionRateOfSpec.INR.INR.GenValid (ConversionRateOf INR INR).genValid \:\: Gen (ConversionRateOf INR INR).only generates valid '(ConversionRateOf INR INR)'s (6 mutations)
286.36 s
[really-safe-money-gen] coverage (703/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.toRational.produces valid rationals (0 mutations)
286.39 s
[really-safe-money-gen] coverage (704/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
286.79 s
[really-safe-money-gen] coverage (709/1610): Money\.ConversionRateOfSpec.ADA.CHF.GenValid (ConversionRateOf ADA CHF).genValid \:\: Gen (ConversionRateOf ADA CHF).only generates valid '(ConversionRateOf ADA CHF)'s (6 mutations)
287.08 s
[really-safe-money-gen] coverage (735/1610): Money\.ConversionRateOfSpec.ADA.INR.GenValid (ConversionRateOf ADA INR).genValid \:\: Gen (ConversionRateOf ADA INR).only generates valid '(ConversionRateOf ADA INR)'s (6 mutations)
287.14 s
[really-safe-money-gen] coverage (700/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
287.26 s
[really-safe-money-gen] coverage (739/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.toRatio.produces valid ratios (0 mutations)
287.31 s
[really-safe-money-gen] coverage (701/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
287.37 s
[really-safe-money-gen] coverage (707/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
287.45 s
[really-safe-money-gen] coverage (734/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
287.50 s
[really-safe-money-gen] coverage (737/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
287.89 s
[really-safe-money-gen] coverage (740/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
288.04 s
[really-safe-money-gen] coverage (736/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
288.15 s
[really-safe-money-gen] coverage (741/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
288.43 s
[really-safe-money-gen] coverage (738/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.toRational.produces valid rationals (0 mutations)
288.95 s
[really-safe-money-gen] coverage (742/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
289.24 s
[really-safe-money-gen] coverage (743/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
289.28 s
[really-safe-money-gen] coverage (745/1610): Money\.ConversionRateOfSpec.ADA.INR.compose.produces valid rates (6 mutations)
289.49 s
[really-safe-money-gen] coverage (744/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
289.71 s
[really-safe-money-gen] coverage (746/1610): Money\.ConversionRateOfSpec.ADA.INR.invert.produces valid rates (8 mutations)
289.74 s
[really-safe-money-gen] coverage (748/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
289.78 s
[really-safe-money-gen] coverage (747/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.toRational.produces valid rationals (0 mutations)
290.07 s
[really-safe-money-gen] coverage (749/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
290.26 s
[really-safe-money-gen] coverage (751/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
290.36 s
[really-safe-money-gen] coverage (750/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
290.77 s
[really-safe-money-gen] coverage (765/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
290.79 s
[really-safe-money-gen] coverage (754/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
290.84 s
[really-safe-money-gen] coverage (753/1610): Money\.ConversionRateOfSpec.CHF.BTC.compose.produces valid rates (6 mutations)
290.92 s
[really-safe-money-gen] coverage (755/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
290.95 s
[really-safe-money-gen] coverage (752/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
291.03 s
[really-safe-money-gen] coverage (758/1610): Money\.ConversionRateOfSpec.CHF.BTC.GenValid (ConversionRateOf CHF BTC).genValid \:\: Gen (ConversionRateOf CHF BTC).only generates valid '(ConversionRateOf CHF BTC)'s (6 mutations)
291.11 s
[really-safe-money-gen] coverage (757/1610): Money\.ConversionRateOfSpec.CHF.BTC.invert.produces valid rates (8 mutations)
291.21 s
[really-safe-money-gen] coverage (756/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
291.40 s
[really-safe-money-gen] coverage (759/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
291.67 s
[really-safe-money-gen] coverage (764/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
291.67 s
[really-safe-money-gen] coverage (762/1610): Money\.ConversionRateOfSpec.CHF.ADA.invert.produces valid rates (8 mutations)
291.95 s
[really-safe-money-gen] coverage (763/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
292.00 s
[really-safe-money-gen] coverage (761/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
292.00 s
[really-safe-money-gen] coverage (766/1610): Money\.ConversionRateOfSpec.CHF.ADA.compose.produces valid rates (6 mutations)
292.04 s
[really-safe-money-gen] coverage (767/1610): Money\.ConversionRateOfSpec.CHF.ADA.GenValid (ConversionRateOf CHF ADA).genValid \:\: Gen (ConversionRateOf CHF ADA).only generates valid '(ConversionRateOf CHF ADA)'s (6 mutations)
292.08 s
[really-safe-money-gen] coverage (760/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
292.24 s
[really-safe-money-gen] coverage (768/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.toRational.produces valid rationals (0 mutations)
292.46 s
[really-safe-money-gen] coverage (769/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
293.02 s
[really-safe-money-gen] coverage (770/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
293.28 s
[really-safe-money-gen] coverage (771/1610): Money\.ConversionRateOfSpec.CHF.USD.invert.produces valid rates (8 mutations)
293.38 s
[really-safe-money-gen] coverage (772/1610): Money\.ConversionRateOfSpec.CHF.USD.GenValid (ConversionRateOf CHF USD).genValid \:\: Gen (ConversionRateOf CHF USD).only generates valid '(ConversionRateOf CHF USD)'s (6 mutations)
294.01 s
[really-safe-money-gen] coverage (775/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
294.06 s
[really-safe-money-gen] coverage (776/1610): Money\.ConversionRateOfSpec.CHF.USD.compose.produces valid rates (6 mutations)
294.13 s
[really-safe-money-gen] coverage (773/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
294.43 s
[really-safe-money-gen] coverage (778/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
294.53 s
[really-safe-money-gen] coverage (777/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
294.55 s
[really-safe-money-gen] coverage (774/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
294.81 s
[really-safe-money-gen] coverage (779/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.toRational.produces valid rationals (0 mutations)
295.08 s
[really-safe-money-gen] coverage (782/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.toRatio.produces valid ratios (0 mutations)
295.28 s
[really-safe-money-gen] coverage (780/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
295.30 s
[really-safe-money-gen] coverage (781/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
295.47 s
[really-safe-money-gen] coverage (783/1610): Money\.ConversionRateOfSpec.CHF.CHF.GenValid (ConversionRateOf CHF CHF).genValid \:\: Gen (ConversionRateOf CHF CHF).only generates valid '(ConversionRateOf CHF CHF)'s (6 mutations)
295.85 s
[really-safe-money-gen] coverage (787/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.toRational.produces valid rationals (0 mutations)
295.85 s
[really-safe-money-gen] coverage (786/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
295.94 s
[really-safe-money-gen] coverage (785/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
296.00 s
[really-safe-money-gen] coverage (784/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
296.40 s
[really-safe-money-gen] coverage (789/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
296.40 s
[really-safe-money-gen] coverage (790/1610): Money\.ConversionRateOfSpec.CHF.CHF.invert.produces valid rates (8 mutations)
296.48 s
[really-safe-money-gen] coverage (788/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
296.70 s
[really-safe-money-gen] coverage (792/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
296.81 s
[really-safe-money-gen] coverage (791/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
296.91 s
[really-safe-money-gen] coverage (793/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
296.95 s
[really-safe-money-gen] coverage (794/1610): Money\.ConversionRateOfSpec.CHF.CHF.compose.produces valid rates (6 mutations)
296.97 s
[really-safe-money-gen] coverage (795/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.toRatio.produces valid ratios (0 mutations)
297.15 s
[really-safe-money-gen] coverage (796/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
297.23 s
[really-safe-money-gen] coverage (797/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
297.53 s
[really-safe-money-gen] coverage (798/1610): Money\.ConversionRateOfSpec.CHF.INR.compose.produces valid rates (6 mutations)
297.99 s
[really-safe-money-gen] coverage (799/1610): Money\.ConversionRateOfSpec.CHF.INR.invert.produces valid rates (8 mutations)
298.34 s
[really-safe-money-gen] coverage (801/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
298.41 s
[really-safe-money-gen] coverage (800/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
298.62 s
[really-safe-money-gen] coverage (803/1610): Money\.ConversionRateOfSpec.CHF.INR.GenValid (ConversionRateOf CHF INR).genValid \:\: Gen (ConversionRateOf CHF INR).only generates valid '(ConversionRateOf CHF INR)'s (6 mutations)
298.74 s
[really-safe-money-gen] coverage (802/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
298.90 s
[really-safe-money-gen] coverage (804/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
298.97 s
[really-safe-money-gen] coverage (805/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
299.11 s
[really-safe-money-gen] coverage (806/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.toRational.produces valid rationals (0 mutations)
299.33 s
[really-safe-money-gen] coverage (807/1610): Money\.ConversionRateOfSpec.USD.CHF.GenValid (ConversionRateOf USD CHF).genValid \:\: Gen (ConversionRateOf USD CHF).only generates valid '(ConversionRateOf USD CHF)'s (6 mutations)
299.57 s
[really-safe-money-gen] coverage (808/1610): Money\.ConversionRateOfSpec.USD.CHF.invert.produces valid rates (8 mutations)
299.77 s
[really-safe-money-gen] coverage (810/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
299.79 s
[really-safe-money-gen] coverage (809/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
299.98 s
[really-safe-money-gen] coverage (814/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
300.05 s
[really-safe-money-gen] coverage (811/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
300.16 s
[really-safe-money-gen] coverage (817/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
300.17 s
[really-safe-money-gen] coverage (813/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
300.24 s
[really-safe-money-gen] coverage (812/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.toRational.produces valid rationals (0 mutations)
300.32 s
[really-safe-money-gen] coverage (815/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
300.69 s
[really-safe-money-gen] coverage (816/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
300.80 s
[really-safe-money-gen] coverage (818/1610): Money\.ConversionRateOfSpec.USD.CHF.compose.produces valid rates (6 mutations)
300.84 s
[really-safe-money-gen] coverage (819/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.toRatio.produces valid ratios (0 mutations)
300.91 s
[really-safe-money-gen] coverage (820/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
301.00 s
[really-safe-money-gen] coverage (821/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
301.14 s
[really-safe-money-gen] coverage (823/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
301.15 s
[really-safe-money-gen] coverage (825/1610): Money\.ConversionRateOfSpec.USD.USD.invert.produces valid rates (8 mutations)
301.30 s
[really-safe-money-gen] coverage (822/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
301.54 s
[really-safe-money-gen] coverage (824/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
301.58 s
[really-safe-money-gen] coverage (826/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.toRational.produces valid rationals (0 mutations)
301.84 s
[really-safe-money-gen] coverage (827/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
302.27 s
[really-safe-money-gen] coverage (828/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
302.40 s
[really-safe-money-gen] coverage (829/1610): Money\.ConversionRateOfSpec.USD.USD.compose.produces valid rates (6 mutations)
302.61 s
[really-safe-money-gen] coverage (830/1610): Money\.ConversionRateOfSpec.USD.USD.GenValid (ConversionRateOf USD USD).genValid \:\: Gen (ConversionRateOf USD USD).only generates valid '(ConversionRateOf USD USD)'s (6 mutations)
302.82 s
[really-safe-money-gen] coverage (832/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
302.93 s
[really-safe-money-gen] coverage (834/1610): Money\.ConversionRateOfSpec.USD.INR.compose.produces valid rates (6 mutations)
302.94 s
[really-safe-money-gen] coverage (831/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
303.16 s
[really-safe-money-gen] coverage (835/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
303.29 s
[really-safe-money-gen] coverage (833/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
303.33 s
[really-safe-money-gen] coverage (836/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
303.37 s
[really-safe-money-gen] coverage (837/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.toRational.produces valid rationals (0 mutations)
303.65 s
[really-safe-money-gen] coverage (839/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
303.65 s
[really-safe-money-gen] coverage (838/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.toRatio.produces valid ratios (0 mutations)
303.83 s
[really-safe-money-gen] coverage (840/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
303.89 s
[really-safe-money-gen] coverage (842/1610): Money\.ConversionRateOfSpec.USD.INR.GenValid (ConversionRateOf USD INR).genValid \:\: Gen (ConversionRateOf USD INR).only generates valid '(ConversionRateOf USD INR)'s (6 mutations)
303.94 s
[really-safe-money-gen] coverage (844/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
304.05 s
[really-safe-money-gen] coverage (841/1610): Money\.ConversionRateOfSpec.USD.INR.invert.produces valid rates (8 mutations)
304.07 s
[really-safe-money-gen] coverage (843/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
304.32 s
[really-safe-money-gen] coverage (846/1610): Money\.ConversionRateOfSpec.USD.BTC.compose.produces valid rates (6 mutations)
304.38 s
[really-safe-money-gen] coverage (845/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
304.59 s
[really-safe-money-gen] coverage (847/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.toRational.produces valid rationals (0 mutations)
304.62 s
[really-safe-money-gen] coverage (848/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
304.71 s
[really-safe-money-gen] coverage (849/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
304.90 s
[really-safe-money-gen] coverage (850/1610): Money\.ConversionRateOfSpec.USD.BTC.GenValid (ConversionRateOf USD BTC).genValid \:\: Gen (ConversionRateOf USD BTC).only generates valid '(ConversionRateOf USD BTC)'s (6 mutations)
304.95 s
[really-safe-money-gen] coverage (851/1610): Money\.ConversionRateOfSpec.USD.BTC.invert.produces valid rates (8 mutations)
305.15 s
[really-safe-money-gen] coverage (854/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
305.25 s
[really-safe-money-gen] coverage (856/1610): Money\.ConversionRateOfSpec.USD.ADA.compose.produces valid rates (6 mutations)
305.30 s
[really-safe-money-gen] coverage (852/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
305.43 s
[really-safe-money-gen] coverage (855/1610): Money\.ConversionRateOfSpec.USD.ADA.GenValid (ConversionRateOf USD ADA).genValid \:\: Gen (ConversionRateOf USD ADA).only generates valid '(ConversionRateOf USD ADA)'s (6 mutations)
305.56 s
[really-safe-money-gen] coverage (853/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
305.71 s
[really-safe-money-gen] coverage (857/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
305.88 s
[really-safe-money-gen] coverage (858/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
306.14 s
[really-safe-money-gen] coverage (860/1610): Money\.ConversionRateOfSpec.USD.ADA.invert.produces valid rates (8 mutations)
306.20 s
[really-safe-money-gen] coverage (861/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
306.37 s
[really-safe-money-gen] coverage (862/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
306.42 s
[really-safe-money-gen] coverage (859/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
306.49 s
[really-safe-money-gen] coverage (864/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
306.51 s
[really-safe-money-gen] coverage (863/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
306.52 s
[really-safe-money-gen] coverage (865/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
306.82 s
[really-safe-money-gen] coverage (866/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.toRational.produces valid rationals (0 mutations)
306.92 s
[really-safe-money-gen] coverage (867/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
307.09 s
[really-safe-money-gen] coverage (868/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
307.25 s
[really-safe-money-gen] coverage (869/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
307.31 s
[really-safe-money-gen] coverage (871/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
307.41 s
[really-safe-money-gen] coverage (870/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
307.54 s
[really-safe-money-gen] coverage (874/1610): Money\.ConversionRateOfSpec.BTC.ADA.invert.produces valid rates (8 mutations)
307.56 s
[really-safe-money-gen] coverage (872/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
307.66 s
[really-safe-money-gen] coverage (873/1610): Money\.ConversionRateOfSpec.BTC.ADA.compose.produces valid rates (6 mutations)
307.85 s
[really-safe-money-gen] coverage (875/1610): Money\.ConversionRateOfSpec.BTC.ADA.GenValid (ConversionRateOf BTC ADA).genValid \:\: Gen (ConversionRateOf BTC ADA).only generates valid '(ConversionRateOf BTC ADA)'s (6 mutations)
307.98 s
[really-safe-money-gen] coverage (876/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
308.07 s
[really-safe-money-gen] coverage (877/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
308.22 s
[really-safe-money-gen] coverage (878/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.toRational.produces valid rationals (0 mutations)
308.33 s
[really-safe-money-gen] coverage (879/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.toRational.produces valid rationals (0 mutations)
308.40 s
[really-safe-money-gen] coverage (880/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
308.51 s
[really-safe-money-gen] coverage (881/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
308.82 s
[really-safe-money-gen] coverage (883/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
308.96 s
[really-safe-money-gen] coverage (882/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
309.04 s
[really-safe-money-gen] coverage (885/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
309.12 s
[really-safe-money-gen] coverage (886/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
309.22 s
[really-safe-money-gen] coverage (884/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
309.49 s
[really-safe-money-gen] coverage (888/1610): Money\.ConversionRateOfSpec.BTC.USD.compose.produces valid rates (6 mutations)
309.57 s
[really-safe-money-gen] coverage (887/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.toRatio.produces valid ratios (0 mutations)
309.78 s
[really-safe-money-gen] coverage (890/1610): Money\.ConversionRateOfSpec.BTC.USD.GenValid (ConversionRateOf BTC USD).genValid \:\: Gen (ConversionRateOf BTC USD).only generates valid '(ConversionRateOf BTC USD)'s (6 mutations)
309.78 s
[really-safe-money-gen] coverage (889/1610): Money\.ConversionRateOfSpec.BTC.USD.invert.produces valid rates (8 mutations)
309.92 s
[really-safe-money-gen] coverage (891/1610): Money\.ConversionRateOfSpec.BTC.INR.compose.produces valid rates (6 mutations)
309.93 s
[really-safe-money-gen] coverage (892/1610): Money\.ConversionRateOfSpec.BTC.INR.GenValid (ConversionRateOf BTC INR).genValid \:\: Gen (ConversionRateOf BTC INR).only generates valid '(ConversionRateOf BTC INR)'s (6 mutations)
310.15 s
[really-safe-money-gen] coverage (893/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
310.39 s
[really-safe-money-gen] coverage (732/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
310.57 s
[really-safe-money-gen] coverage (724/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
310.59 s
[really-safe-money-gen] coverage (730/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
310.85 s
[really-safe-money-gen] coverage (725/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
310.90 s
[really-safe-money-gen] coverage (723/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
310.95 s
[really-safe-money-gen] coverage (733/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
311.02 s
[really-safe-money-gen] coverage (727/1610): Money\.ConversionRateOfSpec.ADA.BTC.invert.produces valid rates (8 mutations)
311.11 s
[really-safe-money-gen] coverage (729/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
311.40 s
[really-safe-money-gen] coverage (698/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
311.56 s
[really-safe-money-gen] coverage (699/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
311.62 s
[really-safe-money-gen] coverage (716/1610): Money\.ConversionRateOfSpec.ADA.ADA.compose.produces valid rates (6 mutations)
311.67 s
[really-safe-money-gen] coverage (712/1610): Money\.ConversionRateOfSpec.ADA.ADA.invert.produces valid rates (8 mutations)
311.95 s
[really-safe-money-gen] coverage (731/1610): Money\.ConversionRateOfSpec.ADA.BTC.compose.produces valid rates (6 mutations)
311.95 s
[really-safe-money-gen] coverage (711/1610): Money\.ConversionRateOfSpec.ADA.ADA.GenValid (ConversionRateOf ADA ADA).genValid \:\: Gen (ConversionRateOf ADA ADA).only generates valid '(ConversionRateOf ADA ADA)'s (6 mutations)
312.08 s
[really-safe-money-gen] coverage (720/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
312.12 s
[really-safe-money-gen] coverage (722/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
312.46 s
[really-safe-money-gen] coverage (717/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.toRational.produces valid rationals (0 mutations)
312.64 s
[really-safe-money-gen] coverage (719/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
312.68 s
[really-safe-money-gen] coverage (721/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
312.75 s
[really-safe-money-gen] coverage (728/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.toRational.produces valid rationals (0 mutations)
312.82 s
[really-safe-money-gen] coverage (705/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
313.05 s
[really-safe-money-gen] coverage (714/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
313.13 s
[really-safe-money-gen] coverage (713/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
313.35 s
[really-safe-money-gen] coverage (710/1610): Money\.ConversionRateOfSpec.ADA.CHF.invert.produces valid rates (8 mutations)
313.50 s
[really-safe-money-gen] coverage (718/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
313.53 s
[really-safe-money-gen] coverage (715/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
313.62 s
[really-safe-money-gen] coverage (726/1610): Money\.ConversionRateOfSpec.ADA.BTC.GenValid (ConversionRateOf ADA BTC).genValid \:\: Gen (ConversionRateOf ADA BTC).only generates valid '(ConversionRateOf ADA BTC)'s (6 mutations)
314.07 s
[really-safe-money-gen] coverage (912/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
314.07 s
[really-safe-money-gen] coverage (905/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
314.15 s
[really-safe-money-gen] coverage (916/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.toRational.produces valid rationals (0 mutations)
314.27 s
[really-safe-money-gen] coverage (914/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.toRational.produces valid rationals (0 mutations)
314.38 s
[really-safe-money-gen] coverage (903/1610): Money\.ConversionRateOfSpec.BTC.CHF.compose.produces valid rates (6 mutations)
314.46 s
[really-safe-money-gen] coverage (911/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
314.53 s
[really-safe-money-gen] coverage (913/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
314.62 s
[really-safe-money-gen] coverage (899/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.toRational.produces valid rationals (0 mutations)
314.64 s
[really-safe-money-gen] coverage (908/1610): Money\.ConversionRateOfSpec.BTC.CHF.invert.produces valid rates (8 mutations)
315.01 s
[really-safe-money-gen] coverage (915/1610): Money\.ConversionRateOfSpec.BTC.BTC.invert.produces valid rates (8 mutations)
315.13 s
[really-safe-money-gen] coverage (910/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
315.15 s
[really-safe-money-gen] coverage (909/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
315.38 s
[really-safe-money-gen] coverage (907/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
315.42 s
[really-safe-money-gen] coverage (902/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.toRatio.produces valid ratios (0 mutations)
315.43 s
[really-safe-money-gen] coverage (917/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
315.50 s
[really-safe-money-gen] coverage (906/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
315.51 s
[really-safe-money-gen] coverage (901/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
315.94 s
[really-safe-money-gen] coverage (904/1610): Money\.ConversionRateOfSpec.BTC.CHF.GenValid (ConversionRateOf BTC CHF).genValid \:\: Gen (ConversionRateOf BTC CHF).only generates valid '(ConversionRateOf BTC CHF)'s (6 mutations)
316.05 s
[really-safe-money-gen] coverage (900/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
316.09 s
[really-safe-money-gen] coverage (897/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
316.10 s
[really-safe-money-gen] coverage (919/1610): Money\.ConversionRateOfSpec.BTC.BTC.compose.produces valid rates (6 mutations)
316.15 s
[really-safe-money-gen] coverage (898/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
316.70 s
[really-safe-money-gen] coverage (896/1610): Money\.ConversionRateOfSpec.BTC.INR.invert.produces valid rates (8 mutations)
316.74 s
[really-safe-money-gen] coverage (894/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
316.83 s
[really-safe-money-gen] coverage (895/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
316.83 s
[really-safe-money-gen] coverage (932/1610): Money\.QuantisationFactorSpec.digits.works on 1 (0 mutations)
317.06 s
[really-safe-money-gen] coverage (931/1610): Money\.QuantisationFactorSpec.digits.produces valid numbers of digits (0 mutations)
317.31 s
[really-safe-money-gen] coverage (933/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a non-1 integer (22 mutations)
317.45 s
[really-safe-money-gen] coverage (928/1610): Money\.QuantisationFactorSpec.digits.works on 10 (0 mutations)
317.47 s
[really-safe-money-gen] coverage (929/1610): Money\.QuantisationFactorSpec.digits.works on 20 (0 mutations)
317.61 s
[really-safe-money-gen] coverage (951/1610): Money\.QuantisationFactorSpec.GenValid QuantisationFactor.genValid \:\: Gen QuantisationFactor.only generates valid 'QuantisationFactor's (6 mutations)
317.77 s
[really-safe-money-gen] coverage (954/1610): Money\.MultiAccountSpec.subtractAmount.adds a non zero amount (1 mutations)
317.84 s
[really-safe-money-gen] coverage (953/1610): Money\.MultiAccountSpec.subtractAmount.computes this example correctly (15 mutations)
317.92 s
[really-safe-money-gen] coverage (955/1610): Money\.MultiAccountSpec.subtractAmount.removes a zero amount (14 mutations)
318.03 s
[really-safe-money-gen] coverage (952/1610): Money\.MultiAccountSpec.subtractAmount.produces valid amounts (30 mutations)
318.32 s
[really-safe-money-gen] coverage (956/1610): Money\.MultiAccountSpec.add.has a right-identity\: zero (2 mutations)
318.64 s
[really-safe-money-gen] coverage (957/1610): Money\.MultiAccountSpec.add.is commutative (19 mutations)
318.74 s
[really-safe-money-gen] coverage (958/1610): Money\.MultiAccountSpec.add.produces valid amounts (30 mutations)
318.85 s
[really-safe-money-gen] coverage (960/1610): Money\.MultiAccountSpec.add.has a left-identity\: zero (2 mutations)
319.05 s
[really-safe-money-gen] coverage (962/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"s (2 mutations)
319.11 s
[really-safe-money-gen] coverage (963/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is symmetric for "valid (MultiAccount Currency)"s (1 mutations)
319.16 s
[really-safe-money-gen] coverage (964/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"s (1 mutations)
319.23 s
[really-safe-money-gen] coverage (961/1610): Money\.MultiAccountSpec.GenValid (MultiAccount Currency).genValid \:\: Gen (MultiAccount Currency).only generates valid '(MultiAccount Currency)'s (13 mutations)
319.30 s
[really-safe-money-gen] coverage (965/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (MultiAccount Currency)"s (1 mutations)
319.45 s
[really-safe-money-gen] coverage (959/1610): Money\.MultiAccountSpec.add.is associative when both succeed (19 mutations)
319.56 s
[really-safe-money-gen] coverage (966/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(/=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (MultiAccount Currency)"s (1 mutations)
319.68 s
[really-safe-money-gen] coverage (970/1610): Money\.MultiAccountSpec.zero.is valid (2 mutations)
319.70 s
[really-safe-money-gen] coverage (967/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(/=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"s (2 mutations)
320.23 s
[really-safe-money-gen] coverage (968/1610): Money\.MultiAccountSpec.sum.produces valid amounts (30 mutations)
320.33 s
[really-safe-money-gen] coverage (971/1610): Money\.MultiAccountSpec.fromAccount.produces valid amounts (16 mutations)
320.39 s
[really-safe-money-gen] coverage (969/1610): Money\.MultiAccountSpec.Show (MultiAccount Currency) and Read (MultiAccount Currency).are implemented such that read \. show == id for valid values (2 mutations)
320.47 s
[really-safe-money-gen] coverage (972/1610): Money\.MultiAccountSpec.addAccount.produces valid amounts (30 mutations)
320.60 s
[really-safe-money-gen] coverage (973/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"'s (2 mutations)
320.62 s
[really-safe-money-gen] coverage (974/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (2 mutations)
320.89 s
[really-safe-money-gen] coverage (975/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antisymmetric for "valid (MultiAccount Currency)"'s (2 mutations)
321.34 s
[really-safe-money-gen] coverage (976/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (MultiAccount Currency)"'s (2 mutations)
321.63 s
[really-safe-money-gen] coverage (978/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (MultiAccount Currency)"'s (2 mutations)
321.66 s
[really-safe-money-gen] coverage (977/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency)."min \:\: (MultiAccount Currency -> MultiAccount Currency -> MultiAccount Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (MultiAccount Currency)"'s (2 mutations)
321.68 s
[really-safe-money-gen] coverage (979/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"'s (2 mutations)
322.04 s
[really-safe-money-gen] coverage (981/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (MultiAccount Currency)"'s (2 mutations)
322.13 s
[really-safe-money-gen] coverage (980/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (2 mutations)
322.15 s
[really-safe-money-gen] coverage (982/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"'s (2 mutations)
322.34 s
[really-safe-money-gen] coverage (983/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antisymmetric for "valid (MultiAccount Currency)"'s (2 mutations)
322.80 s
[really-safe-money-gen] coverage (984/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (2 mutations)
323.10 s
[really-safe-money-gen] coverage (985/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (2 mutations)
323.32 s
[really-safe-money-gen] coverage (987/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (MultiAccount Currency)"'s (2 mutations)
323.38 s
[really-safe-money-gen] coverage (986/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"'s (2 mutations)
323.56 s
[really-safe-money-gen] coverage (992/1610): Money\.MultiAccountSpec.addAmount.computes this example correctly (10 mutations)
323.70 s
[really-safe-money-gen] coverage (988/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency)."max \:\: (MultiAccount Currency -> MultiAccount Currency -> MultiAccount Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (MultiAccount Currency)"'s (2 mutations)
323.74 s
[really-safe-money-gen] coverage (993/1610): Money\.MultiAccountSpec.addAmount.adds a non zero amount (1 mutations)
323.76 s
[really-safe-money-gen] coverage (989/1610): Money\.MultiAccountSpec.subtract.produces valid amounts (30 mutations)
323.82 s
[really-safe-money-gen] coverage (991/1610): Money\.MultiAccountSpec.addAmount.produces valid amounts (30 mutations)
323.85 s
[really-safe-money-gen] coverage (990/1610): Money\.MultiAccountSpec.subtract.has a right-identity\: zero (2 mutations)
323.90 s
[really-safe-money-gen] coverage (994/1610): Money\.MultiAccountSpec.addAmount.removes a zero amount (14 mutations)
324.39 s
[really-safe-money-gen] coverage (996/1610): Money\.MultiAccountSpec.lookupAccount.can find an added amount (1 mutations)
324.63 s
[really-safe-money-gen] coverage (995/1610): Money\.MultiAccountSpec.subtractAccount.produces valid amounts (30 mutations)
324.76 s
[really-safe-money-gen] coverage (1000/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.produces valid Int64s (0 mutations)
324.80 s
[really-safe-money-gen] coverage (997/1610): Money\.MultiAccountSpec.lookupAccount.produces valid amounts (2 mutations)
325.00 s
[really-safe-money-gen] coverage (999/1610): Money\.MultiAccountSpec.convertAll.produces the right result in this example (10 mutations)
325.09 s
[really-safe-money-gen] coverage (1002/1610): Money\.AmountOfSpec.USD.CHF.rate.produces valid amounts (6 mutations)
325.18 s
[really-safe-money-gen] coverage (998/1610): Money\.MultiAccountSpec.convertAll.produces valid results when converting two currencies to one (12 mutations)
325.44 s
[really-safe-money-gen] coverage (1003/1610): Money\.AmountOfSpec.USD.CHF.convert.produces valid amounts (11 mutations)
325.49 s
[really-safe-money-gen] coverage (1001/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
325.90 s
[really-safe-money-gen] coverage (1004/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 1 (13 mutations)
326.15 s
[really-safe-money-gen] coverage (1005/1610): Money\.AmountOfSpec.USD.fromRatio.roundtrips with toRatio (13 mutations)
326.21 s
[really-safe-money-gen] coverage (1007/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 77 (13 mutations)
326.27 s
[really-safe-money-gen] coverage (1006/1610): Money\.AmountOfSpec.USD.fromRatio.produces valid AmountOfs (13 mutations)
326.33 s
[really-safe-money-gen] coverage (1008/1610): Money\.AmountOfSpec.USD.fromRatio.fails on NaN (2 mutations)
326.41 s
[really-safe-money-gen] coverage (1009/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 0 (14 mutations)
326.54 s
[really-safe-money-gen] coverage (1010/1610): Money\.AmountOfSpec.USD.fromRatio.fails on 7\.123 (9 mutations)
326.67 s
[really-safe-money-gen] coverage (1011/1610): Money\.AmountOfSpec.USD.fromRatio.fails on +Infinity (2 mutations)
327.28 s
[really-safe-money-gen] coverage (1012/1610): Money\.AmountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (4 mutations)
327.40 s
[really-safe-money-gen] coverage (1013/1610): Money\.AmountOfSpec.USD.add.has a right-identity\: zero (5 mutations)
327.55 s
[really-safe-money-gen] coverage (1014/1610): Money\.AmountOfSpec.USD.add.produces valid amounts (4 mutations)
327.72 s
[really-safe-money-gen] coverage (1018/1610): Money\.AmountOfSpec.USD.fromMinimalQuantisations.produces valid amounts (0 mutations)
327.73 s
[really-safe-money-gen] coverage (1016/1610): Money\.AmountOfSpec.USD.add.is commutative (4 mutations)
327.81 s
[really-safe-money-gen] coverage (1021/1610): Money\.AmountOfSpec.USD.fromRational.fails on +Infinity (2 mutations)
327.86 s
[really-safe-money-gen] coverage (1015/1610): Money\.AmountOfSpec.USD.add.has a left-identity\: zero (5 mutations)
328.04 s
[really-safe-money-gen] coverage (1022/1610): Money\.AmountOfSpec.USD.fromRational.produces valid Amounts (13 mutations)
328.05 s
[really-safe-money-gen] coverage (1020/1610): Money\.AmountOfSpec.USD.fromRational.fails on -1 (5 mutations)
328.06 s
[really-safe-money-gen] coverage (1017/1610): Money\.AmountOfSpec.USD.add.is associative when both succeed (4 mutations)
328.18 s
[really-safe-money-gen] coverage (1019/1610): Money\.AmountOfSpec.USD.fromRational.roundtrips with toRational (13 mutations)
328.54 s
[really-safe-money-gen] coverage (1023/1610): Money\.AmountOfSpec.USD.fromRational.fails on NaN (2 mutations)
328.63 s
[really-safe-money-gen] coverage (1024/1610): Money\.AmountOfSpec.USD.fromRational.fails on -Infinity (2 mutations)
328.74 s
[really-safe-money-gen] coverage (1026/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 0 (13 mutations)
328.77 s
[really-safe-money-gen] coverage (1025/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 1 (13 mutations)
328.89 s
[really-safe-money-gen] coverage (1027/1610): Money\.AmountOfSpec.USD.toRational.produces valid Rationals (0 mutations)
329.00 s
[really-safe-money-gen] coverage (943/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 10 into DecimalLiteral Nothing 1 1 (22 mutations)
329.22 s
[really-safe-money-gen] coverage (1028/1610): Money\.AmountOfSpec.USD.GenValid (AmountOf * USD).genValid \:\: Gen (AmountOf * USD).only generates valid '(AmountOf * USD)'s (0 mutations)
329.34 s
[really-safe-money-gen] coverage (1029/1610): Money\.AmountOfSpec.USD.zero.is valid (1 mutations)
329.38 s
[really-safe-money-gen] coverage (942/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 3 into quantisation factor 1000 (25 mutations)
329.66 s
[really-safe-money-gen] coverage (1030/1610): Money\.AmountOfSpec.USD.Show (AmountOf * USD) and Read (AmountOf * USD).are implemented such that read \. show == id for valid values (1 mutations)
329.86 s
[really-safe-money-gen] coverage (949/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 2 into quantisation factor 100 (25 mutations)
329.88 s
[really-safe-money-gen] coverage (948/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1 into DecimalLiteral Nothing 1 0 (20 mutations)
329.91 s
[really-safe-money-gen] coverage (950/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1000 into DecimalLiteral Nothing 1 3 (22 mutations)
329.96 s
[really-safe-money-gen] coverage (946/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 20 into DecimalLiteral Nothing 5 2 (22 mutations)
329.98 s
[really-safe-money-gen] coverage (947/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 5 2 into quantisation factor 20 (25 mutations)
330.29 s
[really-safe-money-gen] coverage (926/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
330.50 s
[really-safe-money-gen] coverage (927/1610): Money\.QuantisationFactorSpec.fromWord32.produces valid quantisation factors (6 mutations)
330.80 s
[really-safe-money-gen] coverage (930/1610): Money\.QuantisationFactorSpec.digits.works on 100 (0 mutations)
331.03 s
[really-safe-money-gen] coverage (924/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
331.07 s
[really-safe-money-gen] coverage (920/1610): Money\.ConversionRateOfSpec.BTC.BTC.GenValid (ConversionRateOf BTC BTC).genValid \:\: Gen (ConversionRateOf BTC BTC).only generates valid '(ConversionRateOf BTC BTC)'s (6 mutations)
331.29 s
[really-safe-money-gen] coverage (921/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
331.29 s
[really-safe-money-gen] coverage (944/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 2 2 into quantisation factor 50 (25 mutations)
331.36 s
[really-safe-money-gen] coverage (925/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
331.42 s
[really-safe-money-gen] coverage (923/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
331.46 s
[really-safe-money-gen] coverage (1039/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -1 (3 mutations)
331.63 s
[really-safe-money-gen] coverage (1041/1610): Money\.AmountOfSpec.USD.INR.convert.produces valid amounts (11 mutations)
331.68 s
[really-safe-money-gen] coverage (1042/1610): Money\.AmountOfSpec.USD.INR.rate.produces valid amounts (6 mutations)
331.73 s
[really-safe-money-gen] coverage (1040/1610): Money\.AmountOfSpec.USD.fraction.produces valid amounts (6 mutations)
332.11 s
[really-safe-money-gen] coverage (1044/1610): Money\.AmountOfSpec.USD.USD.convert.produces valid amounts (11 mutations)
332.11 s
[really-safe-money-gen] coverage (1043/1610): Money\.AmountOfSpec.USD.USD.rate.produces valid amounts (6 mutations)
332.22 s
[really-safe-money-gen] coverage (1046/1610): Money\.AmountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (5 mutations)
332.31 s
[really-safe-money-gen] coverage (1045/1610): Money\.AmountOfSpec.USD.sum.produces valid amounts (5 mutations)
332.43 s
[really-safe-money-gen] coverage (1047/1610): Money\.AmountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
332.53 s
[really-safe-money-gen] coverage (1048/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"'s (0 mutations)
332.82 s
[really-safe-money-gen] coverage (1049/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
332.85 s
[really-safe-money-gen] coverage (1050/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * USD)"'s (0 mutations)
332.89 s
[really-safe-money-gen] coverage (1051/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"'s (0 mutations)
333.24 s
[really-safe-money-gen] coverage (1052/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
333.37 s
[really-safe-money-gen] coverage (1031/1610): Money\.AmountOfSpec.USD.BTC.convert.produces valid amounts (11 mutations)
333.47 s
[really-safe-money-gen] coverage (1054/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
333.54 s
[really-safe-money-gen] coverage (1053/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * USD)"'s (0 mutations)
333.57 s
[really-safe-money-gen] coverage (1055/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is reflexive for "valid (AmountOf * USD)"'s (0 mutations)
333.60 s
[really-safe-money-gen] coverage (939/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 1 into quantisation factor 10 (25 mutations)
334.22 s
[really-safe-money-gen] coverage (1038/1610): Money\.AmountOfSpec.USD.fromDouble.fails on NaN (5 mutations)
334.45 s
[really-safe-money-gen] coverage (918/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
334.48 s
[really-safe-money-gen] coverage (934/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render negative fractionals (16 mutations)
334.49 s
[really-safe-money-gen] coverage (1036/1610): Money\.AmountOfSpec.USD.fromDouble.fails on +Infinity (7 mutations)
334.73 s
[really-safe-money-gen] coverage (1034/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 0 (22 mutations)
334.74 s
[really-safe-money-gen] coverage (1035/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 1 (22 mutations)
334.82 s
[really-safe-money-gen] coverage (1033/1610): Money\.AmountOfSpec.USD.fromDouble.produces valid amounts (22 mutations)
334.90 s
[really-safe-money-gen] coverage (922/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
334.91 s
[really-safe-money-gen] coverage (945/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 0 into quantisation factor 1 (25 mutations)
335.02 s
[really-safe-money-gen] coverage (1037/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -Infinity (3 mutations)
335.21 s
[really-safe-money-gen] coverage (1063/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"'s (0 mutations)
335.22 s
[really-safe-money-gen] coverage (1032/1610): Money\.AmountOfSpec.USD.BTC.rate.produces valid amounts (6 mutations)
335.29 s
[really-safe-money-gen] coverage (1065/1610): Money\.AmountOfSpec.USD.format.produces valid strings (3 mutations)
335.37 s
[really-safe-money-gen] coverage (1061/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antisymmetric for "valid (AmountOf * USD)"'s (0 mutations)
335.46 s
[really-safe-money-gen] coverage (1064/1610): Money\.AmountOfSpec.USD.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
335.77 s
[really-safe-money-gen] coverage (1062/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is reflexive for "valid (AmountOf * USD)"'s (0 mutations)
335.85 s
[really-safe-money-gen] coverage (1060/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(>=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * USD)"'s (0 mutations)
335.89 s
[really-safe-money-gen] coverage (1059/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD)."max \:\: (AmountOf * USD -> AmountOf * USD -> AmountOf * USD)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * USD)"'s (0 mutations)
336.24 s
[really-safe-money-gen] coverage (1057/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * USD)"'s (0 mutations)
336.25 s
[really-safe-money-gen] coverage (1075/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(/=) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * USD))"s (1 mutations)
336.36 s
[really-safe-money-gen] coverage (1078/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is reflexive for "valid (Distribution (AmountOf * USD))"s (1 mutations)
336.74 s
[really-safe-money-gen] coverage (1077/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is transitive for "valid (Distribution (AmountOf * USD))"s (1 mutations)
336.80 s
[really-safe-money-gen] coverage (1079/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is symmetric for "valid (Distribution (AmountOf * USD))"s (1 mutations)
336.98 s
[really-safe-money-gen] coverage (1080/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(==) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * USD))"s (1 mutations)
337.11 s
[really-safe-money-gen] coverage (1085/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is reflexive for "valid (AmountOf * USD)"s (0 mutations)
337.16 s
[really-safe-money-gen] coverage (1081/1610): Money\.AmountOfSpec.USD.ADA.convert.produces valid amounts (11 mutations)
337.26 s
[really-safe-money-gen] coverage (1082/1610): Money\.AmountOfSpec.USD.ADA.rate.produces valid amounts (6 mutations)
337.70 s
[really-safe-money-gen] coverage (1074/1610): Money\.AmountOfSpec.USD.distribute.produces results that sum up to the greater whole (14 mutations)
337.93 s
[really-safe-money-gen] coverage (1086/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"s (0 mutations)
337.97 s
[really-safe-money-gen] coverage (1088/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(/=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antireflexive for "valid (AmountOf * USD)"s (0 mutations)
338.04 s
[really-safe-money-gen] coverage (1083/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * USD)"s (0 mutations)
338.21 s
[really-safe-money-gen] coverage (1087/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(/=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * USD)"s (0 mutations)
338.22 s
[really-safe-money-gen] coverage (1089/1610): Money\.AmountOfSpec.ADA.BTC.convert.produces valid amounts (11 mutations)
338.22 s
[really-safe-money-gen] coverage (1076/1610): Money\.AmountOfSpec.USD.distribute.Eq (Distribution (AmountOf * USD)).(/=) \:\: (Distribution (AmountOf * USD)) -> (Distribution (AmountOf * USD)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * USD))"s (1 mutations)
338.40 s
[really-safe-money-gen] coverage (1090/1610): Money\.AmountOfSpec.ADA.BTC.rate.produces valid amounts (6 mutations)
338.46 s
[really-safe-money-gen] coverage (1092/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is symmetric for "valid (AmountOf * ADA)"s (0 mutations)
338.48 s
[really-safe-money-gen] coverage (1091/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"s (0 mutations)
338.68 s
[really-safe-money-gen] coverage (1093/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * ADA)"s (0 mutations)
338.71 s
[really-safe-money-gen] coverage (1094/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(==) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is reflexive for "valid (AmountOf * ADA)"s (0 mutations)
338.74 s
[really-safe-money-gen] coverage (1084/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is symmetric for "valid (AmountOf * USD)"s (0 mutations)
338.76 s
[really-safe-money-gen] coverage (1095/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(/=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antireflexive for "valid (AmountOf * ADA)"s (0 mutations)
338.87 s
[really-safe-money-gen] coverage (1073/1610): Money\.AmountOfSpec.USD.distribute.produces valid amounts (10 mutations)
338.91 s
[really-safe-money-gen] coverage (1071/1610): Money\.AmountOfSpec.USD.toDouble.produces valid Doubles (0 mutations)
339.30 s
[really-safe-money-gen] coverage (1070/1610): Money\.AmountOfSpec.USD.multiply.produces valid amounts (4 mutations)
339.37 s
[really-safe-money-gen] coverage (1069/1610): Money\.AmountOfSpec.USD.multiply.has an identity\: 1 (4 mutations)
339.60 s
[really-safe-money-gen] coverage (1067/1610): Money\.AmountOfSpec.USD.multiply.is absorbed by 0 (5 mutations)
339.61 s
[really-safe-money-gen] coverage (1066/1610): Money\.AmountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
339.65 s
[really-safe-money-gen] coverage (1058/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD)."min \:\: (AmountOf * USD -> AmountOf * USD -> AmountOf * USD)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * USD)"'s (0 mutations)
339.83 s
[really-safe-money-gen] coverage (941/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 50 into DecimalLiteral Nothing 2 2 (22 mutations)
340.09 s
[really-safe-money-gen] coverage (1056/1610): Money\.AmountOfSpec.USD.Ord (AmountOf * USD).(<=) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is antisymmetric for "valid (AmountOf * USD)"'s (0 mutations)
340.15 s
[really-safe-money-gen] coverage (940/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 100 into DecimalLiteral Nothing 1 2 (22 mutations)
340.63 s
[really-safe-money-gen] coverage (936/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a 0 (9 mutations)
340.69 s
[really-safe-money-gen] coverage (1097/1610): Money\.AmountOfSpec.ADA.zero.is valid (1 mutations)
340.70 s
[really-safe-money-gen] coverage (935/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.produces valid factors (31 mutations)
340.99 s
[really-safe-money-gen] coverage (1072/1610): Money\.AmountOfSpec.USD.distribute.Show (Distribution (AmountOf * USD)) and Read (Distribution (AmountOf * USD)).are implemented such that read \. show == id for valid values (1 mutations)
341.01 s
[really-safe-money-gen] coverage (1096/1610): Money\.AmountOfSpec.ADA.Eq (AmountOf * ADA).(/=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * ADA)"s (0 mutations)
341.05 s
[really-safe-money-gen] coverage (1068/1610): Money\.AmountOfSpec.USD.multiply.is distributive with add when both succeed (8 mutations)
341.09 s
[really-safe-money-gen] coverage (1098/1610): Money\.AmountOfSpec.ADA.Show (AmountOf * ADA) and Read (AmountOf * ADA).are implemented such that read \. show == id for valid values (1 mutations)
341.35 s
[really-safe-money-gen] coverage (1109/1610): Money\.AmountOfSpec.ADA.fromRational.fails on NaN (2 mutations)
341.36 s
[really-safe-money-gen] coverage (1100/1610): Money\.AmountOfSpec.ADA.toRational.produces valid Rationals (0 mutations)
341.56 s
[really-safe-money-gen] coverage (1112/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -1 (5 mutations)
341.58 s
[really-safe-money-gen] coverage (1122/1610): Money\.AmountOfSpec.ADA.add.has a right-identity\: zero (5 mutations)
341.69 s
[really-safe-money-gen] coverage (1121/1610): Money\.AmountOfSpec.ADA.add.has a left-identity\: zero (5 mutations)
341.79 s
[really-safe-money-gen] coverage (1117/1610): Money\.AmountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (5 mutations)
341.87 s
[really-safe-money-gen] coverage (1119/1610): Money\.AmountOfSpec.ADA.toDouble.produces valid Doubles (0 mutations)
341.89 s
[really-safe-money-gen] coverage (1116/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 0 (13 mutations)
341.89 s
[really-safe-money-gen] coverage (1114/1610): Money\.AmountOfSpec.ADA.fromRational.fails on +Infinity (2 mutations)
341.94 s
[really-safe-money-gen] coverage (1120/1610): Money\.AmountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (4 mutations)
342.19 s
[really-safe-money-gen] coverage (1118/1610): Money\.AmountOfSpec.ADA.sum.produces valid amounts (5 mutations)
342.39 s
[really-safe-money-gen] coverage (1113/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -Infinity (2 mutations)
342.59 s
[really-safe-money-gen] coverage (1115/1610): Money\.AmountOfSpec.ADA.fromRational.produces valid Amounts (13 mutations)
342.69 s
[really-safe-money-gen] coverage (1111/1610): Money\.AmountOfSpec.ADA.fromRational.roundtrips with toRational (13 mutations)
342.73 s
[really-safe-money-gen] coverage (1110/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 1 (13 mutations)
342.84 s
[really-safe-money-gen] coverage (1108/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on 7\.123 (9 mutations)
342.99 s
[really-safe-money-gen] coverage (1123/1610): Money\.AmountOfSpec.ADA.add.is associative when both succeed (4 mutations)
343.41 s
[really-safe-money-gen] coverage (1107/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 77 (13 mutations)
343.53 s
[really-safe-money-gen] coverage (1106/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on NaN (2 mutations)
343.87 s
[really-safe-money-gen] coverage (1105/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 1 (13 mutations)
343.90 s
[really-safe-money-gen] coverage (1104/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on +Infinity (2 mutations)
344.00 s
[really-safe-money-gen] coverage (1103/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 0 (14 mutations)
344.18 s
[really-safe-money-gen] coverage (1102/1610): Money\.AmountOfSpec.ADA.fromRatio.roundtrips with toRatio (13 mutations)
344.29 s
[really-safe-money-gen] coverage (1101/1610): Money\.AmountOfSpec.ADA.fromRatio.produces valid AmountOfs (13 mutations)
344.43 s
[really-safe-money-gen] coverage (1099/1610): Money\.AmountOfSpec.ADA.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
344.43 s
[really-safe-money-gen] coverage (1124/1610): Money\.AmountOfSpec.ADA.add.produces valid amounts (4 mutations)
344.78 s
[really-safe-money-gen] coverage (1125/1610): Money\.AmountOfSpec.ADA.add.is commutative (4 mutations)
344.83 s
[really-safe-money-gen] coverage (1126/1610): Money\.AmountOfSpec.ADA.USD.rate.produces valid amounts (6 mutations)
345.02 s
[really-safe-money-gen] coverage (1129/1610): Money\.AmountOfSpec.ADA.distribute.Show (Distribution (AmountOf * ADA)) and Read (Distribution (AmountOf * ADA)).are implemented such that read \. show == id for valid values (1 mutations)
345.10 s
[really-safe-money-gen] coverage (1128/1610): Money\.AmountOfSpec.ADA.fromMinimalQuantisations.produces valid amounts (0 mutations)
345.16 s
[really-safe-money-gen] coverage (1132/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(/=) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
345.23 s
[really-safe-money-gen] coverage (1131/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(/=) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
345.28 s
[really-safe-money-gen] coverage (1139/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.produces valid Int64s (0 mutations)
345.33 s
[really-safe-money-gen] coverage (1141/1610): Money\.AmountOfSpec.ADA.CHF.rate.produces valid amounts (6 mutations)
345.44 s
[really-safe-money-gen] coverage (1135/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is transitive for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
345.65 s
[really-safe-money-gen] coverage (1138/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
345.86 s
[really-safe-money-gen] coverage (1134/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is reflexive for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
345.94 s
[really-safe-money-gen] coverage (1142/1610): Money\.AmountOfSpec.ADA.format.produces valid strings (3 mutations)
346.24 s
[really-safe-money-gen] coverage (1136/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is symmetric for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
346.33 s
[really-safe-money-gen] coverage (1133/1610): Money\.AmountOfSpec.ADA.distribute.Eq (Distribution (AmountOf * ADA)).(==) \:\: (Distribution (AmountOf * ADA)) -> (Distribution (AmountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * ADA))"s (1 mutations)
346.61 s
[really-safe-money-gen] coverage (1130/1610): Money\.AmountOfSpec.ADA.distribute.produces results that sum up to the greater whole (14 mutations)
346.71 s
[really-safe-money-gen] coverage (1127/1610): Money\.AmountOfSpec.ADA.USD.convert.produces valid amounts (11 mutations)
346.81 s
[really-safe-money-gen] coverage (1160/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -1 (3 mutations)
347.20 s
[really-safe-money-gen] coverage (1161/1610): Money\.AmountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
347.57 s
[really-safe-money-gen] coverage (1162/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antireflexive for "valid (AmountOf * ADA)"'s (0 mutations)
347.58 s
[really-safe-money-gen] coverage (1164/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * ADA)"'s (0 mutations)
347.74 s
[really-safe-money-gen] coverage (1163/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
347.99 s
[really-safe-money-gen] coverage (1166/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA)."min \:\: (AmountOf * ADA -> AmountOf * ADA -> AmountOf * ADA)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * ADA)"'s (0 mutations)
348.42 s
[really-safe-money-gen] coverage (1167/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * ADA)"'s (0 mutations)
348.43 s
[really-safe-money-gen] coverage (1165/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA)."max \:\: (AmountOf * ADA -> AmountOf * ADA -> AmountOf * ADA)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * ADA)"'s (0 mutations)
348.55 s
[really-safe-money-gen] coverage (1169/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is reflexive for "valid (AmountOf * ADA)"'s (0 mutations)
348.59 s
[really-safe-money-gen] coverage (1168/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
348.68 s
[really-safe-money-gen] coverage (1171/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * ADA)"'s (0 mutations)
348.69 s
[really-safe-money-gen] coverage (1170/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antisymmetric for "valid (AmountOf * ADA)"'s (0 mutations)
348.85 s
[really-safe-money-gen] coverage (1155/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on +Infinity (7 mutations)
348.96 s
[really-safe-money-gen] coverage (1157/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on NaN (5 mutations)
349.34 s
[really-safe-money-gen] coverage (1154/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 0 (22 mutations)
349.35 s
[really-safe-money-gen] coverage (1153/1610): Money\.AmountOfSpec.ADA.multiply.has an identity\: 1 (4 mutations)
349.39 s
[really-safe-money-gen] coverage (1152/1610): Money\.AmountOfSpec.ADA.multiply.is distributive with add when both succeed (8 mutations)
349.66 s
[really-safe-money-gen] coverage (1156/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 1 (22 mutations)
349.71 s
[really-safe-money-gen] coverage (1175/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * ADA)"'s (0 mutations)
350.01 s
[really-safe-money-gen] coverage (1151/1610): Money\.AmountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
350.23 s
[really-safe-money-gen] coverage (1150/1610): Money\.AmountOfSpec.ADA.multiply.is absorbed by 0 (5 mutations)
350.86 s
[really-safe-money-gen] coverage (1148/1610): Money\.AmountOfSpec.ADA.INR.convert.produces valid amounts (11 mutations)
350.93 s
[really-safe-money-gen] coverage (1159/1610): Money\.AmountOfSpec.ADA.fromDouble.produces valid amounts (22 mutations)
351.08 s
[really-safe-money-gen] coverage (1149/1610): Money\.AmountOfSpec.ADA.multiply.produces valid amounts (4 mutations)
351.11 s
[really-safe-money-gen] coverage (1146/1610): Money\.AmountOfSpec.ADA.fraction.produces valid amounts (6 mutations)
351.21 s
[really-safe-money-gen] coverage (1145/1610): Money\.AmountOfSpec.ADA.ADA.convert.produces valid amounts (11 mutations)
351.49 s
[really-safe-money-gen] coverage (1147/1610): Money\.AmountOfSpec.ADA.INR.rate.produces valid amounts (6 mutations)
351.86 s
[really-safe-money-gen] coverage (1158/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -Infinity (3 mutations)
351.87 s
[really-safe-money-gen] coverage (1143/1610): Money\.AmountOfSpec.ADA.GenValid (AmountOf * ADA).genValid \:\: Gen (AmountOf * ADA).only generates valid '(AmountOf * ADA)'s (0 mutations)
351.97 s
[really-safe-money-gen] coverage (1144/1610): Money\.AmountOfSpec.ADA.ADA.rate.produces valid amounts (6 mutations)
352.24 s
[really-safe-money-gen] coverage (1181/1610): Money\.AmountOfSpec.INR.distribute.produces valid amounts (10 mutations)
352.61 s
[really-safe-money-gen] coverage (1177/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antireflexive for "valid (AmountOf * ADA)"'s (0 mutations)
352.62 s
[really-safe-money-gen] coverage (1178/1610): Money\.AmountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
352.77 s
[really-safe-money-gen] coverage (1140/1610): Money\.AmountOfSpec.ADA.CHF.convert.produces valid amounts (11 mutations)
353.13 s
[really-safe-money-gen] coverage (1179/1610): Money\.AmountOfSpec.INR.toDouble.produces valid Doubles (0 mutations)
353.27 s
[really-safe-money-gen] coverage (1137/1610): Money\.AmountOfSpec.ADA.distribute.produces valid amounts (10 mutations)
353.36 s
[really-safe-money-gen] coverage (1180/1610): Money\.AmountOfSpec.INR.distribute.produces results that sum up to the greater whole (14 mutations)
353.66 s
[really-safe-money-gen] coverage (1187/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(/=) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * INR))"s (1 mutations)
353.66 s
[really-safe-money-gen] coverage (1185/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * INR))"s (1 mutations)
353.74 s
[really-safe-money-gen] coverage (1186/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is transitive for "valid (Distribution (AmountOf * INR))"s (1 mutations)
353.83 s
[really-safe-money-gen] coverage (1184/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is symmetric for "valid (Distribution (AmountOf * INR))"s (1 mutations)
353.94 s
[really-safe-money-gen] coverage (1183/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(==) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is reflexive for "valid (Distribution (AmountOf * INR))"s (1 mutations)
354.05 s
[really-safe-money-gen] coverage (1182/1610): Money\.AmountOfSpec.INR.distribute.Show (Distribution (AmountOf * INR)) and Read (Distribution (AmountOf * INR)).are implemented such that read \. show == id for valid values (1 mutations)
354.23 s
[really-safe-money-gen] coverage (1190/1610): Money\.AmountOfSpec.INR.fromMinimalQuantisations.produces valid amounts (0 mutations)
354.59 s
[really-safe-money-gen] coverage (1189/1610): Money\.AmountOfSpec.INR.zero.is valid (1 mutations)
354.74 s
[really-safe-money-gen] coverage (1188/1610): Money\.AmountOfSpec.INR.distribute.Eq (Distribution (AmountOf * INR)).(/=) \:\: (Distribution (AmountOf * INR)) -> (Distribution (AmountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * INR))"s (1 mutations)
355.02 s
[really-safe-money-gen] coverage (1193/1610): Money\.AmountOfSpec.INR.ADA.convert.produces valid amounts (11 mutations)
355.13 s
[really-safe-money-gen] coverage (1191/1610): Money\.AmountOfSpec.INR.fraction.produces valid amounts (6 mutations)
355.21 s
[really-safe-money-gen] coverage (1192/1610): Money\.AmountOfSpec.INR.ADA.rate.produces valid amounts (6 mutations)
355.43 s
[really-safe-money-gen] coverage (1200/1610): Money\.AmountOfSpec.INR.fromDouble.produces valid amounts (22 mutations)
355.45 s
[really-safe-money-gen] coverage (1196/1610): Money\.AmountOfSpec.INR.fromDouble.fails on NaN (5 mutations)
355.47 s
[really-safe-money-gen] coverage (1197/1610): Money\.AmountOfSpec.INR.fromDouble.fails on +Infinity (7 mutations)
355.56 s
[really-safe-money-gen] coverage (1194/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -Infinity (3 mutations)
355.74 s
[really-safe-money-gen] coverage (1195/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 1 (22 mutations)
355.85 s
[really-safe-money-gen] coverage (1198/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -1 (3 mutations)
356.15 s
[really-safe-money-gen] coverage (1199/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 0 (22 mutations)
356.75 s
[really-safe-money-gen] coverage (1201/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR)."max \:\: (AmountOf * INR -> AmountOf * INR -> AmountOf * INR)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * INR)"'s (0 mutations)
356.91 s
[really-safe-money-gen] coverage (1203/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * INR)"'s (0 mutations)
357.25 s
[really-safe-money-gen] coverage (1202/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
357.25 s
[really-safe-money-gen] coverage (1204/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antireflexive for "valid (AmountOf * INR)"'s (0 mutations)
357.86 s
[really-safe-money-gen] coverage (1207/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is reflexive for "valid (AmountOf * INR)"'s (0 mutations)
357.87 s
[really-safe-money-gen] coverage (1206/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * INR)"'s (0 mutations)
358.01 s
[really-safe-money-gen] coverage (1205/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
358.04 s
[really-safe-money-gen] coverage (1209/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * INR)"'s (0 mutations)
358.27 s
[really-safe-money-gen] coverage (1211/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
358.50 s
[really-safe-money-gen] coverage (1208/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antisymmetric for "valid (AmountOf * INR)"'s (0 mutations)
358.70 s
[really-safe-money-gen] coverage (1212/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antisymmetric for "valid (AmountOf * INR)"'s (0 mutations)
358.92 s
[really-safe-money-gen] coverage (1210/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(>=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is reflexive for "valid (AmountOf * INR)"'s (0 mutations)
359.06 s
[really-safe-money-gen] coverage (1214/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * INR)"'s (0 mutations)
359.12 s
[really-safe-money-gen] coverage (1213/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"'s (0 mutations)
359.16 s
[really-safe-money-gen] coverage (1215/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR).(<) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antireflexive for "valid (AmountOf * INR)"'s (0 mutations)
359.17 s
[really-safe-money-gen] coverage (1217/1610): Money\.AmountOfSpec.INR.CHF.convert.produces valid amounts (11 mutations)
359.90 s
[really-safe-money-gen] coverage (1219/1610): Money\.AmountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
359.90 s
[really-safe-money-gen] coverage (1216/1610): Money\.AmountOfSpec.INR.Ord (AmountOf * INR)."min \:\: (AmountOf * INR -> AmountOf * INR -> AmountOf * INR)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * INR)"'s (0 mutations)
359.97 s
[really-safe-money-gen] coverage (1218/1610): Money\.AmountOfSpec.INR.CHF.rate.produces valid amounts (6 mutations)
360.19 s
[really-safe-money-gen] coverage (1221/1610): Money\.AmountOfSpec.INR.multiply.is absorbed by 0 (5 mutations)
360.27 s
[really-safe-money-gen] coverage (1224/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
360.46 s
[really-safe-money-gen] coverage (1225/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.produces valid Int64s (0 mutations)
360.49 s
[really-safe-money-gen] coverage (1223/1610): Money\.AmountOfSpec.INR.multiply.is distributive with add when both succeed (8 mutations)
360.55 s
[really-safe-money-gen] coverage (1220/1610): Money\.AmountOfSpec.INR.multiply.produces valid amounts (4 mutations)
360.82 s
[really-safe-money-gen] coverage (1222/1610): Money\.AmountOfSpec.INR.multiply.has an identity\: 1 (4 mutations)
361.03 s
[really-safe-money-gen] coverage (1226/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 0 (13 mutations)
361.28 s
[really-safe-money-gen] coverage (1227/1610): Money\.AmountOfSpec.INR.fromRational.fails on -Infinity (2 mutations)
361.47 s
[really-safe-money-gen] coverage (1228/1610): Money\.AmountOfSpec.INR.fromRational.roundtrips with toRational (13 mutations)
361.65 s
[really-safe-money-gen] coverage (1229/1610): Money\.AmountOfSpec.INR.fromRational.fails on +Infinity (2 mutations)
361.70 s
[really-safe-money-gen] coverage (1230/1610): Money\.AmountOfSpec.INR.fromRational.fails on NaN (2 mutations)
361.88 s
[really-safe-money-gen] coverage (1231/1610): Money\.AmountOfSpec.INR.fromRational.produces valid Amounts (13 mutations)
362.08 s
[really-safe-money-gen] coverage (1232/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 1 (13 mutations)
362.13 s
[really-safe-money-gen] coverage (1233/1610): Money\.AmountOfSpec.INR.fromRational.fails on -1 (5 mutations)
362.43 s
[really-safe-money-gen] coverage (1234/1610): Money\.AmountOfSpec.INR.add.is commutative (4 mutations)
362.65 s
[really-safe-money-gen] coverage (1235/1610): Money\.AmountOfSpec.INR.add.is associative when both succeed (4 mutations)
362.81 s
[really-safe-money-gen] coverage (1236/1610): Money\.AmountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (4 mutations)
363.00 s
[really-safe-money-gen] coverage (1238/1610): Money\.AmountOfSpec.INR.add.has a right-identity\: zero (5 mutations)
363.10 s
[really-safe-money-gen] coverage (1239/1610): Money\.AmountOfSpec.INR.add.produces valid amounts (4 mutations)
363.20 s
[really-safe-money-gen] coverage (1240/1610): Money\.AmountOfSpec.INR.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
363.20 s
[really-safe-money-gen] coverage (1237/1610): Money\.AmountOfSpec.INR.add.has a left-identity\: zero (5 mutations)
363.34 s
[really-safe-money-gen] coverage (1242/1610): Money\.AmountOfSpec.INR.toRational.produces valid Rationals (0 mutations)
363.41 s
[really-safe-money-gen] coverage (1241/1610): Money\.AmountOfSpec.INR.Show (AmountOf * INR) and Read (AmountOf * INR).are implemented such that read \. show == id for valid values (1 mutations)
363.91 s
[really-safe-money-gen] coverage (1245/1610): Money\.AmountOfSpec.INR.format.produces valid strings (3 mutations)
364.00 s
[really-safe-money-gen] coverage (1243/1610): Money\.AmountOfSpec.INR.sum.produces valid amounts (5 mutations)
364.03 s
[really-safe-money-gen] coverage (1244/1610): Money\.AmountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (5 mutations)
364.20 s
[really-safe-money-gen] coverage (1247/1610): Money\.AmountOfSpec.INR.INR.convert.produces valid amounts (11 mutations)
364.26 s
[really-safe-money-gen] coverage (1246/1610): Money\.AmountOfSpec.INR.INR.rate.produces valid amounts (6 mutations)
364.45 s
[really-safe-money-gen] coverage (1248/1610): Money\.AmountOfSpec.INR.BTC.rate.produces valid amounts (6 mutations)
364.50 s
[really-safe-money-gen] coverage (1250/1610): Money\.AmountOfSpec.INR.fromRatio.fails on NaN (2 mutations)
364.56 s
[really-safe-money-gen] coverage (1249/1610): Money\.AmountOfSpec.INR.BTC.convert.produces valid amounts (11 mutations)
364.77 s
[really-safe-money-gen] coverage (1251/1610): Money\.AmountOfSpec.INR.fromRatio.fails on +Infinity (2 mutations)
364.98 s
[really-safe-money-gen] coverage (1252/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 1 (13 mutations)
365.12 s
[really-safe-money-gen] coverage (1253/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 0 (14 mutations)
365.49 s
[really-safe-money-gen] coverage (1254/1610): Money\.AmountOfSpec.INR.fromRatio.roundtrips with toRatio (13 mutations)
365.53 s
[really-safe-money-gen] coverage (1256/1610): Money\.AmountOfSpec.INR.fromRatio.fails on 7\.123 (9 mutations)
365.61 s
[really-safe-money-gen] coverage (1258/1610): Money\.AmountOfSpec.INR.GenValid (AmountOf * INR).genValid \:\: Gen (AmountOf * INR).only generates valid '(AmountOf * INR)'s (0 mutations)
365.65 s
[really-safe-money-gen] coverage (1255/1610): Money\.AmountOfSpec.INR.fromRatio.produces valid AmountOfs (13 mutations)
365.67 s
[really-safe-money-gen] coverage (1257/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 77 (13 mutations)
365.97 s
[really-safe-money-gen] coverage (1259/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is symmetric for "valid (AmountOf * INR)"s (0 mutations)
366.32 s
[really-safe-money-gen] coverage (1261/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is reflexive for "valid (AmountOf * INR)"s (0 mutations)
366.57 s
[really-safe-money-gen] coverage (1260/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is transitive for "valid (AmountOf * INR)"s (0 mutations)
366.87 s
[really-safe-money-gen] coverage (1262/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(==) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * INR)"s (0 mutations)
366.95 s
[really-safe-money-gen] coverage (1264/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(/=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is antireflexive for "valid (AmountOf * INR)"s (0 mutations)
366.95 s
[really-safe-money-gen] coverage (1265/1610): Money\.AmountOfSpec.INR.USD.convert.produces valid amounts (11 mutations)
367.01 s
[really-safe-money-gen] coverage (1263/1610): Money\.AmountOfSpec.INR.Eq (AmountOf * INR).(/=) \:\: (AmountOf * INR) -> (AmountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * INR)"s (0 mutations)
367.11 s
[really-safe-money-gen] coverage (1266/1610): Money\.AmountOfSpec.INR.USD.rate.produces valid amounts (6 mutations)
367.13 s
[really-safe-money-gen] coverage (1267/1610): Money\.AmountOfSpec.BTC.format.produces valid strings (3 mutations)
367.14 s
[really-safe-money-gen] coverage (1268/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
367.73 s
[really-safe-money-gen] coverage (1269/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.produces valid Int64s (0 mutations)
367.74 s
[really-safe-money-gen] coverage (1271/1610): Money\.AmountOfSpec.BTC.INR.convert.produces valid amounts (11 mutations)
367.79 s
[really-safe-money-gen] coverage (1273/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
367.79 s
[really-safe-money-gen] coverage (1270/1610): Money\.AmountOfSpec.BTC.INR.rate.produces valid amounts (6 mutations)
367.97 s
[really-safe-money-gen] coverage (1272/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * BTC)"'s (0 mutations)
368.22 s
[really-safe-money-gen] coverage (1275/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antisymmetric for "valid (AmountOf * BTC)"'s (0 mutations)
368.33 s
[really-safe-money-gen] coverage (1274/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is reflexive for "valid (AmountOf * BTC)"'s (0 mutations)
368.52 s
[really-safe-money-gen] coverage (1277/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antisymmetric for "valid (AmountOf * BTC)"'s (0 mutations)
368.66 s
[really-safe-money-gen] coverage (1276/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC)."min \:\: (AmountOf * BTC -> AmountOf * BTC -> AmountOf * BTC)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * BTC)"'s (0 mutations)
368.83 s
[really-safe-money-gen] coverage (1278/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is reflexive for "valid (AmountOf * BTC)"'s (0 mutations)
369.19 s
[really-safe-money-gen] coverage (1279/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * BTC)"'s (0 mutations)
369.20 s
[really-safe-money-gen] coverage (1282/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * BTC)"'s (0 mutations)
369.22 s
[really-safe-money-gen] coverage (1280/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
369.43 s
[really-safe-money-gen] coverage (1281/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC)."max \:\: (AmountOf * BTC -> AmountOf * BTC -> AmountOf * BTC)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * BTC)"'s (0 mutations)
369.48 s
[really-safe-money-gen] coverage (1283/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antireflexive for "valid (AmountOf * BTC)"'s (0 mutations)
369.60 s
[really-safe-money-gen] coverage (1284/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(<) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
370.06 s
[really-safe-money-gen] coverage (1285/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antireflexive for "valid (AmountOf * BTC)"'s (0 mutations)
370.86 s
[really-safe-money-gen] coverage (1286/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"'s (0 mutations)
371.15 s
[really-safe-money-gen] coverage (1287/1610): Money\.AmountOfSpec.BTC.Ord (AmountOf * BTC).(>) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * BTC)"'s (0 mutations)
371.19 s
[really-safe-money-gen] coverage (1288/1610): Money\.AmountOfSpec.BTC.fromRatio.roundtrips with toRatio (13 mutations)
371.31 s
[really-safe-money-gen] coverage (1290/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 77 (13 mutations)
371.46 s
[really-safe-money-gen] coverage (1289/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on NaN (2 mutations)
371.47 s
[really-safe-money-gen] coverage (1291/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 0 (14 mutations)
371.89 s
[really-safe-money-gen] coverage (1292/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 1 (13 mutations)
371.99 s
[really-safe-money-gen] coverage (1294/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on +Infinity (2 mutations)
372.06 s
[really-safe-money-gen] coverage (1293/1610): Money\.AmountOfSpec.BTC.fromRatio.produces valid AmountOfs (13 mutations)
372.30 s
[really-safe-money-gen] coverage (1173/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
372.60 s
[really-safe-money-gen] coverage (1297/1610): Money\.AmountOfSpec.BTC.CHF.rate.produces valid amounts (6 mutations)
372.67 s
[really-safe-money-gen] coverage (1172/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is reflexive for "valid (AmountOf * ADA)"'s (0 mutations)
372.73 s
[really-safe-money-gen] coverage (1296/1610): Money\.AmountOfSpec.BTC.CHF.convert.produces valid amounts (11 mutations)
372.74 s
[really-safe-money-gen] coverage (1295/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on 7\.123 (9 mutations)
373.16 s
[really-safe-money-gen] coverage (1174/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(>=) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is antisymmetric for "valid (AmountOf * ADA)"'s (0 mutations)
373.20 s
[really-safe-money-gen] coverage (1301/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 1 (13 mutations)
373.28 s
[really-safe-money-gen] coverage (1305/1610): Money\.AmountOfSpec.BTC.fromRational.roundtrips with toRational (13 mutations)
373.46 s
[really-safe-money-gen] coverage (937/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.roundtrips with fromDecimalLiteral (48 mutations)
373.58 s
[really-safe-money-gen] coverage (1299/1610): Money\.AmountOfSpec.BTC.fromRational.produces valid Amounts (13 mutations)
373.60 s
[really-safe-money-gen] coverage (1309/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -1 (3 mutations)
373.70 s
[really-safe-money-gen] coverage (1298/1610): Money\.AmountOfSpec.BTC.fromRational.fails on NaN (2 mutations)
373.86 s
[really-safe-money-gen] coverage (1176/1610): Money\.AmountOfSpec.ADA.Ord (AmountOf * ADA).(<) \:\: (AmountOf * ADA) -> (AmountOf * ADA) -> Bool.is transitive for "valid (AmountOf * ADA)"'s (0 mutations)
373.92 s
[really-safe-money-gen] coverage (1300/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -1 (5 mutations)
373.97 s
[really-safe-money-gen] coverage (1302/1610): Money\.AmountOfSpec.BTC.fromRational.fails on +Infinity (2 mutations)
374.05 s
[really-safe-money-gen] coverage (1307/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 1 (22 mutations)
374.44 s
[really-safe-money-gen] coverage (1308/1610): Money\.AmountOfSpec.BTC.fromDouble.produces valid amounts (22 mutations)
374.86 s
[really-safe-money-gen] coverage (1306/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on +Infinity (7 mutations)
375.17 s
[really-safe-money-gen] coverage (1338/1610): Money\.AmountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (5 mutations)
375.27 s
[really-safe-money-gen] coverage (1304/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 0 (13 mutations)
375.36 s
[really-safe-money-gen] coverage (1337/1610): Money\.AmountOfSpec.BTC.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
375.37 s
[really-safe-money-gen] coverage (1327/1610): Money\.AmountOfSpec.BTC.add.is associative when both succeed (4 mutations)
375.53 s
[really-safe-money-gen] coverage (1340/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(/=) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
375.68 s
[really-safe-money-gen] coverage (1339/1610): Money\.AmountOfSpec.BTC.sum.produces valid amounts (5 mutations)
375.83 s
[really-safe-money-gen] coverage (1341/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(/=) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
375.89 s
[really-safe-money-gen] coverage (1342/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is reflexive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
376.06 s
[really-safe-money-gen] coverage (1343/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is symmetric for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
376.22 s
[really-safe-money-gen] coverage (1344/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
376.31 s
[really-safe-money-gen] coverage (1345/1610): Money\.AmountOfSpec.BTC.distribute.Eq (Distribution (AmountOf * BTC)).(==) \:\: (Distribution (AmountOf * BTC)) -> (Distribution (AmountOf * BTC)) -> Bool.is transitive for "valid (Distribution (AmountOf * BTC))"s (1 mutations)
376.49 s
[really-safe-money-gen] coverage (1348/1610): Money\.AmountOfSpec.BTC.distribute.Show (Distribution (AmountOf * BTC)) and Read (Distribution (AmountOf * BTC)).are implemented such that read \. show == id for valid values (1 mutations)
376.62 s
[really-safe-money-gen] coverage (1346/1610): Money\.AmountOfSpec.BTC.distribute.produces valid amounts (10 mutations)
376.71 s
[really-safe-money-gen] coverage (1347/1610): Money\.AmountOfSpec.BTC.distribute.produces results that sum up to the greater whole (14 mutations)
376.80 s
[really-safe-money-gen] coverage (1349/1610): Money\.AmountOfSpec.BTC.toRational.produces valid Rationals (0 mutations)
377.05 s
[really-safe-money-gen] coverage (1350/1610): Money\.AmountOfSpec.BTC.fraction.produces valid amounts (6 mutations)
377.23 s
[really-safe-money-gen] coverage (1351/1610): Money\.AmountOfSpec.BTC.multiply.is absorbed by 0 (5 mutations)
377.52 s
[really-safe-money-gen] coverage (1352/1610): Money\.AmountOfSpec.BTC.multiply.has an identity\: 1 (4 mutations)
377.63 s
[really-safe-money-gen] coverage (1354/1610): Money\.AmountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
377.71 s
[really-safe-money-gen] coverage (1355/1610): Money\.AmountOfSpec.BTC.multiply.is distributive with add when both succeed (8 mutations)
377.88 s
[really-safe-money-gen] coverage (1353/1610): Money\.AmountOfSpec.BTC.multiply.produces valid amounts (4 mutations)
377.88 s
[really-safe-money-gen] coverage (1356/1610): Money\.AmountOfSpec.CHF.INR.convert.produces valid amounts (11 mutations)
377.98 s
[really-safe-money-gen] coverage (1357/1610): Money\.AmountOfSpec.CHF.INR.rate.produces valid amounts (6 mutations)
378.17 s
[really-safe-money-gen] coverage (1359/1610): Money\.AmountOfSpec.CHF.USD.rate.produces valid amounts (6 mutations)
378.31 s
[really-safe-money-gen] coverage (1358/1610): Money\.AmountOfSpec.CHF.USD.convert.produces valid amounts (11 mutations)
378.88 s
[really-safe-money-gen] coverage (1360/1610): Money\.AmountOfSpec.CHF.fromMinimalQuantisations.produces valid amounts (0 mutations)
379.18 s
[really-safe-money-gen] coverage (938/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (24 mutations)
379.25 s
[really-safe-money-gen] coverage (1361/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 0 (14 mutations)
379.56 s
[really-safe-money-gen] coverage (1362/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on +Infinity (2 mutations)
379.63 s
[really-safe-money-gen] coverage (1366/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on 7\.123 (9 mutations)
379.67 s
[really-safe-money-gen] coverage (1364/1610): Money\.AmountOfSpec.CHF.fromRatio.roundtrips with toRatio (13 mutations)
379.72 s
[really-safe-money-gen] coverage (1365/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 1 (13 mutations)
379.79 s
[really-safe-money-gen] coverage (1363/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on NaN (2 mutations)
379.89 s
[really-safe-money-gen] coverage (1367/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 77 (13 mutations)
380.15 s
[really-safe-money-gen] coverage (1369/1610): Money\.AmountOfSpec.CHF.fraction.produces valid amounts (6 mutations)
380.16 s
[really-safe-money-gen] coverage (1374/1610): Money\.AmountOfSpec.CHF.multiply.produces valid amounts (4 mutations)
380.24 s
[really-safe-money-gen] coverage (1368/1610): Money\.AmountOfSpec.CHF.fromRatio.produces valid AmountOfs (13 mutations)
380.37 s
[really-safe-money-gen] coverage (1370/1610): Money\.AmountOfSpec.CHF.multiply.has an identity\: 1 (4 mutations)
380.57 s
[really-safe-money-gen] coverage (1373/1610): Money\.AmountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
380.58 s
[really-safe-money-gen] coverage (1371/1610): Money\.AmountOfSpec.CHF.multiply.is absorbed by 0 (5 mutations)
380.65 s
[really-safe-money-gen] coverage (1372/1610): Money\.AmountOfSpec.CHF.multiply.is distributive with add when both succeed (8 mutations)
380.82 s
[really-safe-money-gen] coverage (1377/1610): Money\.AmountOfSpec.CHF.fromRational.produces valid Amounts (13 mutations)
380.95 s
[really-safe-money-gen] coverage (1376/1610): Money\.AmountOfSpec.CHF.fromRational.fails on +Infinity (2 mutations)
380.98 s
[really-safe-money-gen] coverage (1375/1610): Money\.AmountOfSpec.CHF.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
381.24 s
[really-safe-money-gen] coverage (1333/1610): Money\.AmountOfSpec.BTC.toDouble.produces valid Doubles (0 mutations)
381.50 s
[really-safe-money-gen] coverage (1321/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(/=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is antireflexive for "valid (AmountOf * BTC)"s (0 mutations)
381.53 s
[really-safe-money-gen] coverage (1332/1610): Money\.AmountOfSpec.BTC.BTC.rate.produces valid amounts (6 mutations)
381.76 s
[really-safe-money-gen] coverage (1317/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is transitive for "valid (AmountOf * BTC)"s (0 mutations)
381.80 s
[really-safe-money-gen] coverage (1336/1610): Money\.AmountOfSpec.BTC.fromMinimalQuantisations.produces valid amounts (0 mutations)
381.84 s
[really-safe-money-gen] coverage (1318/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * BTC)"s (0 mutations)
381.88 s
[really-safe-money-gen] coverage (1320/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(/=) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * BTC)"s (0 mutations)
382.24 s
[really-safe-money-gen] coverage (1319/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is symmetric for "valid (AmountOf * BTC)"s (0 mutations)
382.24 s
[really-safe-money-gen] coverage (1330/1610): Money\.AmountOfSpec.BTC.zero.is valid (1 mutations)
383.25 s
[really-safe-money-gen] coverage (1328/1610): Money\.AmountOfSpec.BTC.ADA.convert.produces valid amounts (11 mutations)
383.48 s
[really-safe-money-gen] coverage (1326/1610): Money\.AmountOfSpec.BTC.add.produces valid amounts (4 mutations)
383.50 s
[really-safe-money-gen] coverage (1316/1610): Money\.AmountOfSpec.BTC.Eq (AmountOf * BTC).(==) \:\: (AmountOf * BTC) -> (AmountOf * BTC) -> Bool.is reflexive for "valid (AmountOf * BTC)"s (0 mutations)
383.78 s
[really-safe-money-gen] coverage (1329/1610): Money\.AmountOfSpec.BTC.ADA.rate.produces valid amounts (6 mutations)
383.92 s
[really-safe-money-gen] coverage (1314/1610): Money\.AmountOfSpec.BTC.USD.rate.produces valid amounts (6 mutations)
384.00 s
[really-safe-money-gen] coverage (1313/1610): Money\.AmountOfSpec.BTC.GenValid (AmountOf * BTC).genValid \:\: Gen (AmountOf * BTC).only generates valid '(AmountOf * BTC)'s (0 mutations)
384.13 s
[really-safe-money-gen] coverage (1303/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -Infinity (2 mutations)
384.17 s
[really-safe-money-gen] coverage (1312/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on NaN (5 mutations)
384.32 s
[really-safe-money-gen] coverage (1325/1610): Money\.AmountOfSpec.BTC.add.is commutative (4 mutations)
384.70 s
[really-safe-money-gen] coverage (1315/1610): Money\.AmountOfSpec.BTC.USD.convert.produces valid amounts (11 mutations)
384.80 s
[really-safe-money-gen] coverage (1310/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 0 (22 mutations)
385.10 s
[really-safe-money-gen] coverage (1311/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -Infinity (3 mutations)
385.12 s
[really-safe-money-gen] coverage (1324/1610): Money\.AmountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (4 mutations)
385.20 s
[really-safe-money-gen] coverage (1331/1610): Money\.AmountOfSpec.BTC.BTC.convert.produces valid amounts (11 mutations)
385.34 s
[really-safe-money-gen] coverage (1334/1610): Money\.AmountOfSpec.BTC.Show (AmountOf * BTC) and Read (AmountOf * BTC).are implemented such that read \. show == id for valid values (1 mutations)
385.49 s
[really-safe-money-gen] coverage (1322/1610): Money\.AmountOfSpec.BTC.add.has a right-identity\: zero (5 mutations)
385.59 s
[really-safe-money-gen] coverage (1405/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 0 (22 mutations)
385.62 s
[really-safe-money-gen] coverage (1323/1610): Money\.AmountOfSpec.BTC.add.has a left-identity\: zero (5 mutations)
385.73 s
[really-safe-money-gen] coverage (1335/1610): Money\.AmountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
385.87 s
[really-safe-money-gen] coverage (1406/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -1 (3 mutations)
386.29 s
[really-safe-money-gen] coverage (1408/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -Infinity (3 mutations)
386.53 s
[really-safe-money-gen] coverage (1407/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on NaN (5 mutations)
386.66 s
[really-safe-money-gen] coverage (1410/1610): Money\.AmountOfSpec.CHF.ADA.convert.produces valid amounts (11 mutations)
386.68 s
[really-safe-money-gen] coverage (1411/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.produces valid Int64s (0 mutations)
386.78 s
[really-safe-money-gen] coverage (1409/1610): Money\.AmountOfSpec.CHF.ADA.rate.produces valid amounts (6 mutations)
386.98 s
[really-safe-money-gen] coverage (1412/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
387.07 s
[really-safe-money-gen] coverage (1413/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF)."max \:\: (AmountOf * CHF -> AmountOf * CHF -> AmountOf * CHF)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AmountOf * CHF)"'s (0 mutations)
387.08 s
[really-safe-money-gen] coverage (1414/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF)."min \:\: (AmountOf * CHF -> AmountOf * CHF -> AmountOf * CHF)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AmountOf * CHF)"'s (0 mutations)
388.04 s
[really-safe-money-gen] coverage (1415/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AmountOf * CHF)"'s (0 mutations)
388.06 s
[really-safe-money-gen] coverage (1418/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
388.30 s
[really-safe-money-gen] coverage (1417/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
388.37 s
[really-safe-money-gen] coverage (1416/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antireflexive for "valid (AmountOf * CHF)"'s (0 mutations)
388.69 s
[really-safe-money-gen] coverage (1419/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AmountOf * CHF)"'s (0 mutations)
388.81 s
[really-safe-money-gen] coverage (1421/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"'s (0 mutations)
388.85 s
[really-safe-money-gen] coverage (1420/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(>=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antisymmetric for "valid (AmountOf * CHF)"'s (0 mutations)
388.99 s
[really-safe-money-gen] coverage (1422/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antireflexive for "valid (AmountOf * CHF)"'s (0 mutations)
389.09 s
[really-safe-money-gen] coverage (1423/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AmountOf * CHF)"'s (0 mutations)
389.37 s
[really-safe-money-gen] coverage (1424/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
389.55 s
[really-safe-money-gen] coverage (1425/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"'s (0 mutations)
389.64 s
[really-safe-money-gen] coverage (1428/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antisymmetric for "valid (AmountOf * CHF)"'s (0 mutations)
389.71 s
[really-safe-money-gen] coverage (1427/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"'s (0 mutations)
389.78 s
[really-safe-money-gen] coverage (1426/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AmountOf * CHF)"'s (0 mutations)
389.82 s
[really-safe-money-gen] coverage (1430/1610): Money\.AmountOfSpec.CHF.distribute.Show (Distribution (AmountOf * CHF)) and Read (Distribution (AmountOf * CHF)).are implemented such that read \. show == id for valid values (1 mutations)
389.89 s
[really-safe-money-gen] coverage (1429/1610): Money\.AmountOfSpec.CHF.GenValid (AmountOf * CHF).genValid \:\: Gen (AmountOf * CHF).only generates valid '(AmountOf * CHF)'s (0 mutations)
390.05 s
[really-safe-money-gen] coverage (1434/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(/=) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
390.11 s
[really-safe-money-gen] coverage (1431/1610): Money\.AmountOfSpec.CHF.distribute.produces valid amounts (10 mutations)
390.15 s
[really-safe-money-gen] coverage (1433/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(/=) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is antireflexive for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
390.23 s
[really-safe-money-gen] coverage (1432/1610): Money\.AmountOfSpec.CHF.distribute.produces results that sum up to the greater whole (14 mutations)
390.50 s
[really-safe-money-gen] coverage (1435/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is symmetric for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
390.82 s
[really-safe-money-gen] coverage (1436/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
390.87 s
[really-safe-money-gen] coverage (1437/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is reflexive for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
390.94 s
[really-safe-money-gen] coverage (1439/1610): Money\.AmountOfSpec.CHF.add.is commutative (4 mutations)
390.98 s
[really-safe-money-gen] coverage (1438/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(==) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is transitive for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
391.06 s
[really-safe-money-gen] coverage (1440/1610): Money\.AmountOfSpec.CHF.add.has a left-identity\: zero (5 mutations)
391.17 s
[really-safe-money-gen] coverage (1441/1610): Money\.AmountOfSpec.CHF.add.is associative when both succeed (4 mutations)
391.19 s
[really-safe-money-gen] coverage (1442/1610): Money\.AmountOfSpec.CHF.add.produces valid amounts (4 mutations)
391.75 s
[really-safe-money-gen] coverage (1443/1610): Money\.AmountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (4 mutations)
391.85 s
[really-safe-money-gen] coverage (1444/1610): Money\.AmountOfSpec.CHF.add.has a right-identity\: zero (5 mutations)
392.36 s
[really-safe-money-gen] coverage (1446/1610): Money\.AmountSpec.fraction.Correctly fractions 101 with 1 % 100 (4 mutations)
392.56 s
[really-safe-money-gen] coverage (1449/1610): Money\.AmountSpec.fraction.Correctly fractions 100 with 1 % 100 (4 mutations)
392.80 s
[really-safe-money-gen] coverage (1445/1610): Money\.AmountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundDown (1 mutations)
392.88 s
[really-safe-money-gen] coverage (1451/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 1 (3 mutations)
393.25 s
[really-safe-money-gen] coverage (1452/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 10 (3 mutations)
393.32 s
[really-safe-money-gen] coverage (1448/1610): Money\.AmountSpec.fraction.produces valid amounts (6 mutations)
393.34 s
[really-safe-money-gen] coverage (1447/1610): Money\.AmountSpec.fraction.Produces a result that can be multiplied back (6 mutations)
393.37 s
[really-safe-money-gen] coverage (1455/1610): Money\.AmountSpec.fromRatio.roundtrips with toRatio (13 mutations)
393.60 s
[really-safe-money-gen] coverage (1450/1610): Money\.AmountSpec.fraction.Produces a result that has been rounded in the right direction when using RoundUp (1 mutations)
393.97 s
[really-safe-money-gen] coverage (1457/1610): Money\.AmountSpec.fromRatio.fails on NaN (2 mutations)
394.04 s
[really-safe-money-gen] coverage (1454/1610): Money\.AmountSpec.fromRatio.produces valid Amounts (13 mutations)
394.09 s
[really-safe-money-gen] coverage (1456/1610): Money\.AmountSpec.fromRatio.succeeds on 1 (13 mutations)
394.11 s
[really-safe-money-gen] coverage (1459/1610): Money\.AmountSpec.fromRatio.succeeds on 77\.02 with quantisation factor 100 (13 mutations)
394.13 s
[really-safe-money-gen] coverage (1458/1610): Money\.AmountSpec.fromRatio.fails on +Infinity (2 mutations)
394.17 s
[really-safe-money-gen] coverage (1461/1610): Money\.AmountSpec.fromRatio.fails on 7\.123 with quantisation factor 10 (9 mutations)
394.19 s
[really-safe-money-gen] coverage (1462/1610): Money\.AmountSpec.distribute.correctly distributes 3 into 3 (6 mutations)
394.19 s
[really-safe-money-gen] coverage (1453/1610): Money\.AmountSpec.format.produces valid strings (3 mutations)
394.32 s
[really-safe-money-gen] coverage (1460/1610): Money\.AmountSpec.fromRatio.succeeds on 0 (13 mutations)
394.81 s
[really-safe-money-gen] coverage (1385/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is symmetric for "valid (AmountOf * CHF)"s (0 mutations)
394.82 s
[really-safe-money-gen] coverage (1465/1610): Money\.AmountSpec.distribute.correctly distributes 10 into 4 (6 mutations)
394.90 s
[really-safe-money-gen] coverage (1400/1610): Money\.AmountOfSpec.CHF.Show (AmountOf * CHF) and Read (AmountOf * CHF).are implemented such that read \. show == id for valid values (1 mutations)
394.99 s
[really-safe-money-gen] coverage (1463/1610): Money\.AmountSpec.distribute.produces results that sum up to the greater whole (14 mutations)
395.14 s
[really-safe-money-gen] coverage (1390/1610): Money\.AmountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (5 mutations)
395.23 s
[really-safe-money-gen] coverage (1389/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(/=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AmountOf * CHF)"s (0 mutations)
395.24 s
[really-safe-money-gen] coverage (1387/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is transitive for "valid (AmountOf * CHF)"s (0 mutations)
395.59 s
[really-safe-money-gen] coverage (1386/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"s (0 mutations)
395.77 s
[really-safe-money-gen] coverage (1384/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(==) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AmountOf * CHF)"s (0 mutations)
396.39 s
[really-safe-money-gen] coverage (1402/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 1 (22 mutations)
396.51 s
[really-safe-money-gen] coverage (1395/1610): Money\.AmountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
396.52 s
[really-safe-money-gen] coverage (1464/1610): Money\.AmountSpec.distribute.Show (Distribution Amount) and Read (Distribution Amount).are implemented such that read \. show == id for valid values (1 mutations)
396.66 s
[really-safe-money-gen] coverage (1403/1610): Money\.AmountOfSpec.CHF.fromDouble.produces valid amounts (22 mutations)
396.83 s
[really-safe-money-gen] coverage (1393/1610): Money\.AmountOfSpec.CHF.BTC.rate.produces valid amounts (6 mutations)
396.94 s
[really-safe-money-gen] coverage (1382/1610): Money\.AmountOfSpec.CHF.fromRational.roundtrips with toRational (13 mutations)
397.17 s
[really-safe-money-gen] coverage (1378/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 0 (13 mutations)
397.34 s
[really-safe-money-gen] coverage (1383/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 1 (13 mutations)
397.52 s
[really-safe-money-gen] coverage (1388/1610): Money\.AmountOfSpec.CHF.Eq (AmountOf * CHF).(/=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is antireflexive for "valid (AmountOf * CHF)"s (0 mutations)
397.57 s
[really-safe-money-gen] coverage (1381/1610): Money\.AmountOfSpec.CHF.fromRational.fails on NaN (2 mutations)
397.92 s
[really-safe-money-gen] coverage (1391/1610): Money\.AmountOfSpec.CHF.sum.produces valid amounts (5 mutations)
397.95 s
[really-safe-money-gen] coverage (1392/1610): Money\.AmountOfSpec.CHF.BTC.convert.produces valid amounts (11 mutations)
397.97 s
[really-safe-money-gen] coverage (1478/1610): Money\.AmountSpec.sum.correctly sums [1,2,3] to 6 (5 mutations)
398.12 s
[really-safe-money-gen] coverage (1473/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(/=) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution Amount)"s (1 mutations)
398.20 s
[really-safe-money-gen] coverage (1477/1610): Money\.AmountSpec.sum.fails to sum above maxBound (5 mutations)
398.39 s
[really-safe-money-gen] coverage (1472/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(/=) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is antireflexive for "valid (Distribution Amount)"s (1 mutations)
398.47 s
[really-safe-money-gen] coverage (1474/1610): Money\.AmountSpec.distribute.produces valid amounts (10 mutations)
398.91 s
[really-safe-money-gen] coverage (1468/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is symmetric for "valid (Distribution Amount)"s (1 mutations)
398.97 s
[really-safe-money-gen] coverage (1470/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is reflexive for "valid (Distribution Amount)"s (1 mutations)
398.98 s
[really-safe-money-gen] coverage (1471/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is transitive for "valid (Distribution Amount)"s (1 mutations)
399.00 s
[really-safe-money-gen] coverage (1469/1610): Money\.AmountSpec.distribute.Eq (Distribution Amount).(==) \:\: (Distribution Amount) -> (Distribution Amount) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution Amount)"s (1 mutations)
399.19 s
[really-safe-money-gen] coverage (1467/1610): Money\.AmountSpec.distribute.correctly distributes 5 into 3 (6 mutations)
399.40 s
[really-safe-money-gen] coverage (1482/1610): Money\.AmountSpec.multiply.is absorbed by 0 (5 mutations)
399.43 s
[really-safe-money-gen] coverage (1466/1610): Money\.AmountSpec.distribute.GenValid (Distribution Amount).genValid \:\: Gen (Distribution Amount).only generates valid '(Distribution Amount)'s (5 mutations)
399.80 s
[really-safe-money-gen] coverage (1476/1610): Money\.AmountSpec.sum.matches what you would get with Integer, if nothing fails (5 mutations)
399.88 s
[really-safe-money-gen] coverage (1404/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on +Infinity (7 mutations)
399.96 s
[really-safe-money-gen] coverage (1401/1610): Money\.AmountOfSpec.CHF.format.produces valid strings (3 mutations)
400.13 s
[really-safe-money-gen] coverage (1475/1610): Money\.AmountSpec.sum.produces valid amounts (5 mutations)
400.50 s
[really-safe-money-gen] coverage (1399/1610): Money\.AmountOfSpec.CHF.CHF.rate.produces valid amounts (6 mutations)
400.58 s
[really-safe-money-gen] coverage (1398/1610): Money\.AmountOfSpec.CHF.CHF.convert.produces valid amounts (11 mutations)
400.77 s
[really-safe-money-gen] coverage (1489/1610): Money\.AmountSpec.fromDouble.succeeds on 77\.02 with quantisation factor 100 (22 mutations)
400.90 s
[really-safe-money-gen] coverage (1485/1610): Money\.AmountSpec.multiply.succeeds for 3 * 6 (4 mutations)
400.92 s
[really-safe-money-gen] coverage (1487/1610): Money\.AmountSpec.fromDouble.fails on really large numbers (14 mutations)
401.30 s
[really-safe-money-gen] coverage (1397/1610): Money\.AmountOfSpec.CHF.toRational.produces valid Rationals (0 mutations)
401.77 s
[really-safe-money-gen] coverage (1396/1610): Money\.AmountOfSpec.CHF.toDouble.produces valid Doubles (0 mutations)
401.99 s
[really-safe-money-gen] coverage (1379/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -Infinity (2 mutations)
402.07 s
[really-safe-money-gen] coverage (1484/1610): Money\.AmountSpec.multiply.has an identity\: 1 (4 mutations)
402.09 s
[really-safe-money-gen] coverage (1483/1610): Money\.AmountSpec.multiply.is distributive with add when both succeed (8 mutations)
402.11 s
[really-safe-money-gen] coverage (1486/1610): Money\.AmountSpec.Show Amount and Read Amount.are implemented such that read \. show == id for valid values (1 mutations)
402.20 s
[really-safe-money-gen] coverage (1480/1610): Money\.AmountSpec.multiply.fails for 2 * maxbound (4 mutations)
402.31 s
[really-safe-money-gen] coverage (1394/1610): Money\.AmountOfSpec.CHF.zero.is valid (1 mutations)
402.41 s
[really-safe-money-gen] coverage (1481/1610): Money\.AmountSpec.multiply.produces valid amounts (4 mutations)
402.60 s
[really-safe-money-gen] coverage (1380/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -1 (5 mutations)
402.96 s
[really-safe-money-gen] coverage (1479/1610): Money\.AmountSpec.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
403.02 s
[really-safe-money-gen] coverage (1500/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Amount"'s (0 mutations)
403.17 s
[really-safe-money-gen] coverage (1488/1610): Money\.AmountSpec.fromDouble.roundtrips with toDouble, back to double (22 mutations)
403.22 s
[really-safe-money-gen] coverage (1502/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
403.27 s
[really-safe-money-gen] coverage (1504/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid Amount"'s (0 mutations)
403.43 s
[really-safe-money-gen] coverage (1496/1610): Money\.AmountSpec.fromDouble.fails on +Infinity (7 mutations)
403.47 s
[really-safe-money-gen] coverage (1501/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
403.56 s
[really-safe-money-gen] coverage (1495/1610): Money\.AmountSpec.fromDouble.fails on -Infinity (3 mutations)
403.67 s
[really-safe-money-gen] coverage (1503/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
403.95 s
[really-safe-money-gen] coverage (1498/1610): Money\.AmountSpec.fromDouble.succeeds on 0 (22 mutations)
404.11 s
[really-safe-money-gen] coverage (1497/1610): Money\.AmountSpec.fromDouble.succeeds on 1 (22 mutations)
404.27 s
[really-safe-money-gen] coverage (1491/1610): Money\.AmountSpec.fromDouble.fails on really large numbers:1 (7 mutations)
404.27 s
[really-safe-money-gen] coverage (1492/1610): Money\.AmountSpec.fromDouble.fails on NaN (5 mutations)
404.28 s
[really-safe-money-gen] coverage (1499/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
404.51 s
[really-safe-money-gen] coverage (1490/1610): Money\.AmountSpec.fromDouble.produces valid amounts (22 mutations)
404.60 s
[really-safe-money-gen] coverage (1526/1610): Money\.AmountSpec.fromRational.fails on NaN (2 mutations)
404.95 s
[really-safe-money-gen] coverage (1532/1610): Money\.AmountSpec.add.has a right-identity\: zero (5 mutations)
405.05 s
[really-safe-money-gen] coverage (1533/1610): Money\.AmountSpec.add.produces valid amounts (4 mutations)
405.20 s
[really-safe-money-gen] coverage (1527/1610): Money\.AmountSpec.fromRational.produces valid Amounts (13 mutations)
405.42 s
[really-safe-money-gen] coverage (1534/1610): Money\.AmountSpec.add.fails for maxBound + maxBound (4 mutations)
405.82 s
[really-safe-money-gen] coverage (1536/1610): Money\.AmountSpec.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
405.83 s
[really-safe-money-gen] coverage (1535/1610): Money\.AmountSpec.add.has a left-identity\: zero (5 mutations)
405.86 s
[really-safe-money-gen] coverage (1537/1610): Money\.AmountSpec.toMinimalQuantisations.produces valid Int64s (0 mutations)
405.87 s
[really-safe-money-gen] coverage (1510/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Amount"'s (0 mutations)
405.87 s
[really-safe-money-gen] coverage (1538/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"s (0 mutations)
406.04 s
[really-safe-money-gen] coverage (1508/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
406.13 s
[really-safe-money-gen] coverage (1539/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Amount"s (0 mutations)
406.36 s
[really-safe-money-gen] coverage (1520/1610): Money\.AmountSpec.fromRational.fails on -Infinity (2 mutations)
406.40 s
[really-safe-money-gen] coverage (1524/1610): Money\.AmountSpec.fromRational.fails on +Infinity (2 mutations)
406.40 s
[really-safe-money-gen] coverage (1525/1610): Money\.AmountSpec.fromRational.fails on -1 (5 mutations)
406.52 s
[really-safe-money-gen] coverage (1531/1610): Money\.AmountSpec.add.matches what you would get with Integer, if nothing fails (4 mutations)
406.73 s
[really-safe-money-gen] coverage (1523/1610): Money\.AmountSpec.fromRational.fails on 7\.123 with quantisation factor 10 (9 mutations)
406.93 s
[really-safe-money-gen] coverage (1522/1610): Money\.AmountSpec.fromRational.succeeds on 77\.02 with quantisation factor 100 (13 mutations)
406.93 s
[really-safe-money-gen] coverage (1521/1610): Money\.AmountSpec.fromRational.succeeds on 1 (13 mutations)
407.11 s
[really-safe-money-gen] coverage (1550/1610): Money\.AmountSpec.rate.computes this USD to CHF rate correctly (6 mutations)
407.14 s
[really-safe-money-gen] coverage (1551/1610): Money\.AmountSpec.zero.is valid (1 mutations)
407.57 s
[really-safe-money-gen] coverage (1553/1610): Money\.AmountSpec.convert.converts this USD to CHF correctly (10 mutations)
407.94 s
[really-safe-money-gen] coverage (1519/1610): Money\.AmountSpec.fromRational.fails on really large numbers (13 mutations)
408.21 s
[really-safe-money-gen] coverage (1514/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
408.41 s
[really-safe-money-gen] coverage (1552/1610): Money\.AmountSpec.convert.succeeds in converting 1\:1 without rounding if the quantisation factor is the same (11 mutations)
408.42 s
[really-safe-money-gen] coverage (1517/1610): Money\.AmountSpec.fromRational.roundtrips with toRational (13 mutations)
408.65 s
[really-safe-money-gen] coverage (1518/1610): Money\.AmountSpec.fromRational.succeeds on 0 (13 mutations)
408.80 s
[really-safe-money-gen] coverage (1530/1610): Money\.AmountSpec.add.fails for maxBound + 1 (4 mutations)
409.21 s
[really-safe-money-gen] coverage (1556/1610): Money\.AmountSpec.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
409.25 s
[really-safe-money-gen] coverage (1513/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
409.36 s
[really-safe-money-gen] coverage (1515/1610): Money\.AmountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
409.38 s
[really-safe-money-gen] coverage (1549/1610): Money\.AmountSpec.rate.computes a rate that can be used to do a conversion without rounding (10 mutations)
409.82 s
[really-safe-money-gen] coverage (1558/1610): Money\.AmountSpec.subtract.fails for 0 - 1 (5 mutations)
409.89 s
[really-safe-money-gen] coverage (1511/1610): Money\.AmountSpec.Ord Amount."min \:\: (Amount -> Amount -> Amount)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Amount"'s (0 mutations)
409.94 s
[really-safe-money-gen] coverage (1494/1610): Money\.AmountSpec.fromDouble.fails on 7\.123 with quantisation factor 10 (18 mutations)
410.08 s
[really-safe-money-gen] coverage (1509/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
410.40 s
[really-safe-money-gen] coverage (1557/1610): Money\.AmountSpec.subtract.fails for 0 - maxBound (5 mutations)
410.60 s
[really-safe-money-gen] coverage (1512/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Amount"'s (0 mutations)
410.61 s
[really-safe-money-gen] coverage (1493/1610): Money\.AmountSpec.fromDouble.fails on -1 (3 mutations)
410.74 s
[really-safe-money-gen] coverage (1559/1610): Money\.AmountSpec.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
410.86 s
[really-safe-money-gen] coverage (1563/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 600 2 (25 mutations)
410.90 s
[really-safe-money-gen] coverage (1566/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
411.13 s
[really-safe-money-gen] coverage (1564/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
411.14 s
[really-safe-money-gen] coverage (1562/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (17 mutations)
411.15 s
[really-safe-money-gen] coverage (1565/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (17 mutations)
411.63 s
[really-safe-money-gen] coverage (1568/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
411.71 s
[really-safe-money-gen] coverage (1567/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (27 mutations)
411.83 s
[really-safe-money-gen] coverage (1561/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (27 mutations)
412.20 s
[really-safe-money-gen] coverage (1571/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise:1 (13 mutations)
412.23 s
[really-safe-money-gen] coverage (1560/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
412.47 s
[really-safe-money-gen] coverage (1570/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise (13 mutations)
412.69 s
[really-safe-money-gen] coverage (1569/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.produces valid factors (17 mutations)
412.90 s
[really-safe-money-gen] coverage (1516/1610): Money\.AmountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
413.21 s
[really-safe-money-gen] coverage (1529/1610): Money\.AmountSpec.add.is commutative (4 mutations)
413.27 s
[really-safe-money-gen] coverage (1573/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (23 mutations)
413.50 s
[really-safe-money-gen] coverage (1574/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (25 mutations)
413.71 s
[really-safe-money-gen] coverage (1572/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 2 0 (23 mutations)
413.75 s
[really-safe-money-gen] coverage (1528/1610): Money\.AmountSpec.add.is associative when both succeed (4 mutations)
413.76 s
[really-safe-money-gen] coverage (1575/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
413.83 s
[really-safe-money-gen] coverage (1576/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (25 mutations)
413.88 s
[really-safe-money-gen] coverage (1577/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
414.02 s
[really-safe-money-gen] coverage (1578/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 200 2 (25 mutations)
414.30 s
[really-safe-money-gen] coverage (1555/1610): Money\.AmountSpec.toRatio.produces an invalid Rational with quantisation factor 0 (1 mutations)
414.54 s
[really-safe-money-gen] coverage (1579/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (17 mutations)
414.94 s
[really-safe-money-gen] coverage (1547/1610): Money\.AmountSpec.toDouble.produces an infinite Double with quantisation factor 0 (0 mutations)
414.97 s
[really-safe-money-gen] coverage (1543/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is symmetric for "valid Amount"s (0 mutations)
415.13 s
[really-safe-money-gen] coverage (1546/1610): Money\.AmountSpec.toDouble.succeeds on 7702 with quantisation factor 100 (0 mutations)
415.27 s
[really-safe-money-gen] coverage (1545/1610): Money\.AmountSpec.toDouble.produces valid Doubles (0 mutations)
415.34 s
[really-safe-money-gen] coverage (1544/1610): Money\.AmountSpec.GenValid Amount.genValid \:\: Gen Amount.only generates valid 'Amount's (0 mutations)
415.37 s
[really-safe-money-gen] coverage (1584/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 20 2 (27 mutations)
415.49 s
[really-safe-money-gen] coverage (1542/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"s (0 mutations)
415.93 s
[really-safe-money-gen] coverage (1540/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Amount"s (0 mutations)
416.04 s
[really-safe-money-gen] coverage (1506/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
416.13 s
[really-safe-money-gen] coverage (1548/1610): Money\.AmountSpec.rate.produces valid conversion rates (6 mutations)
416.23 s
[really-safe-money-gen] coverage (1554/1610): Money\.AmountSpec.convert.produces valid amounts (11 mutations)
416.26 s
[really-safe-money-gen] coverage (1541/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"s (0 mutations)
416.53 s
[really-safe-money-gen] coverage (1507/1610): Money\.AmountSpec.Ord Amount."max \:\: (Amount -> Amount -> Amount)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Amount"'s (0 mutations)
416.60 s
[really-safe-money-gen] coverage (1588/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"s (1 mutations)
416.65 s
[really-safe-money-gen] coverage (1593/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"s (1 mutations)
416.76 s
[really-safe-money-gen] coverage (1505/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
416.85 s
[really-safe-money-gen] coverage (1594/1610): Money\.CurrencySpec.Show Currency and Read Currency.are implemented such that read \. show == id for valid values (1 mutations)
417.84 s
[really-safe-money-gen] coverage (1585/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (17 mutations)
417.86 s
[really-safe-money-gen] coverage (1603/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
417.89 s
[really-safe-money-gen] coverage (1602/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Currency"'s (1 mutations)
417.97 s
[really-safe-money-gen] coverage (1586/1610): Money\.AmountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (17 mutations)
418.11 s
[really-safe-money-gen] coverage (1592/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"s (1 mutations)
418.14 s
[really-safe-money-gen] coverage (1589/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Currency"s (1 mutations)
418.15 s
[really-safe-money-gen] coverage (1610/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
418.18 s
[really-safe-money-gen] coverage (1608/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Currency"'s (1 mutations)
418.20 s
[really-safe-money-gen] coverage (1591/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is symmetric for "valid Currency"s (1 mutations)
418.56 s
[really-safe-money-gen] coverage (1587/1610): Money\.AmountSpec.fromMinimalQuantisations.produces valid amounts (0 mutations)
418.65 s
[really-safe-money-gen] coverage (1581/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 4 2 (25 mutations)
418.80 s
[really-safe-money-gen] coverage (1580/1610): Money\.AmountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (25 mutations)
418.82 s
[really-safe-money-gen] coverage (1606/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
419.00 s
[really-safe-money-gen] coverage (1609/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
419.00 s
[really-safe-money-gen] coverage (1590/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Currency"s (1 mutations)
419.14 s
[really-safe-money-gen] coverage (1600/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
419.34 s
[really-safe-money-gen] coverage (1607/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid Currency"'s (1 mutations)
419.37 s
[really-safe-money-gen] coverage (1599/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Currency"'s (1 mutations)
419.45 s
[really-safe-money-gen] coverage (1598/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
419.47 s
[really-safe-money-gen] coverage (1601/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
419.51 s
[really-safe-money-gen] coverage (1605/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
419.51 s
[really-safe-money-gen] coverage (1596/1610): Money\.CurrencySpec.Ord Currency."min \:\: (Currency -> Currency -> Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Currency"'s (1 mutations)
419.53 s
[really-safe-money-gen] coverage (1595/1610): Money\.CurrencySpec.Ord Currency."max \:\: (Currency -> Currency -> Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Currency"'s (1 mutations)
419.55 s
[really-safe-money-gen] coverage (1597/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
419.57 s
[really-safe-money-gen] coverage (1604/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
431.96 s
[really-safe-money-gen] coverage (1582/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.produces valid decimal literals (29 mutations)
435.82 s
[really-safe-money-gen] coverage (1583/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.roundtrips with Amount\.fromDecimalLiteral (45 mutations)
436.04 s
[really-safe-money-gen] mutation-nix: running mutations
438.37 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
438.39 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
438.39 s
[really-safe-money-gen] Just a -> do
438.39 s
[really-safe-money-gen] r <- Account.subtract a account
438.39 s
[really-safe-money-gen] Just $
438.39 s
[really-safe-money-gen] - if r == Account.zero
438.39 s
[really-safe-money-gen] + if True
438.39 s
[really-safe-money-gen] then M.delete currency m
438.39 s
[really-safe-money-gen] else M.insert currency r m
438.39 s
[really-safe-money-gen]
438.39 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
438.39 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
438.40 s
[really-safe-money-gen] Just a -> do
438.40 s
[really-safe-money-gen] r <- Account.subtract a account
438.40 s
[really-safe-money-gen] Just $
438.40 s
[really-safe-money-gen] - if r == Account.zero
438.40 s
[really-safe-money-gen] + if False
438.40 s
[really-safe-money-gen] then M.delete currency m
438.40 s
[really-safe-money-gen] else M.insert currency r m
438.40 s
[really-safe-money-gen]
438.40 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
438.40 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
438.40 s
[really-safe-money-gen] Just a -> do
438.40 s
[really-safe-money-gen] r <- Account.subtract a account
438.40 s
[really-safe-money-gen] Just $
438.40 s
[really-safe-money-gen] - if r == Account.zero
438.40 s
[really-safe-money-gen] + if not (r == Account.zero)
438.40 s
[really-safe-money-gen] then M.delete currency m
438.40 s
[really-safe-money-gen] else M.insert currency r m
438.40 s
[really-safe-money-gen]
438.40 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
438.40 s
[really-safe-money-gen] @@ -131,9 +131,9 @@
438.40 s
[really-safe-money-gen] Just a -> do
438.40 s
[really-safe-money-gen] r <- Account.subtract a account
438.40 s
[really-safe-money-gen] Just $
438.40 s
[really-safe-money-gen] - if r == Account.zero
438.40 s
[really-safe-money-gen] - then M.delete currency m
438.40 s
[really-safe-money-gen] - else M.insert currency r m
438.40 s
[really-safe-money-gen] + if r == Account.zero
438.40 s
[really-safe-money-gen] + then M.delete currency m
438.40 s
[really-safe-money-gen] + else M.insert currency r m
438.40 s
[really-safe-money-gen]
438.40 s
[really-safe-money-gen] -- | Try to convert every account to one currency.
438.40 s
[really-safe-money-gen] --
438.40 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
438.40 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
438.40 s
[really-safe-money-gen] Just a -> do
438.40 s
[really-safe-money-gen] r <- Account.add a account
438.40 s
[really-safe-money-gen] Just $
438.40 s
[really-safe-money-gen] - if r == Account.zero
438.40 s
[really-safe-money-gen] + if True
438.40 s
[really-safe-money-gen] then M.delete currency m
438.40 s
[really-safe-money-gen] else M.insert currency r m
438.40 s
[really-safe-money-gen]
438.40 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
438.40 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
438.40 s
[really-safe-money-gen] Just a -> do
438.40 s
[really-safe-money-gen] r <- Account.add a account
438.40 s
[really-safe-money-gen] Just $
438.40 s
[really-safe-money-gen] - if r == Account.zero
438.40 s
[really-safe-money-gen] + if not (r == Account.zero)
438.41 s
[really-safe-money-gen] then M.delete currency m
438.41 s
[really-safe-money-gen] else M.insert currency r m
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
438.41 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
438.41 s
[really-safe-money-gen] fromAccount currency amount =
438.41 s
[really-safe-money-gen] - if amount == Account.zero
438.41 s
[really-safe-money-gen] + if False
438.41 s
[really-safe-money-gen] then zero
438.41 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
438.41 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
438.41 s
[really-safe-money-gen] Just a -> do
438.41 s
[really-safe-money-gen] r <- Account.add a account
438.41 s
[really-safe-money-gen] Just $
438.41 s
[really-safe-money-gen] - if r == Account.zero
438.41 s
[really-safe-money-gen] + if False
438.41 s
[really-safe-money-gen] then M.delete currency m
438.41 s
[really-safe-money-gen] else M.insert currency r m
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
438.41 s
[really-safe-money-gen] @@ -117,9 +117,9 @@
438.41 s
[really-safe-money-gen] Just a -> do
438.41 s
[really-safe-money-gen] r <- Account.add a account
438.41 s
[really-safe-money-gen] Just $
438.41 s
[really-safe-money-gen] - if r == Account.zero
438.41 s
[really-safe-money-gen] - then M.delete currency m
438.41 s
[really-safe-money-gen] - else M.insert currency r m
438.41 s
[really-safe-money-gen] + if r == Account.zero
438.41 s
[really-safe-money-gen] + then M.delete currency m
438.41 s
[really-safe-money-gen] + else M.insert currency r m
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
438.41 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
438.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
438.41 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
438.41 s
[really-safe-money-gen] fromAccount currency amount =
438.41 s
[really-safe-money-gen] - if amount == Account.zero
438.41 s
[really-safe-money-gen] + if True
438.41 s
[really-safe-money-gen] then zero
438.41 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
438.41 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
438.41 s
[really-safe-money-gen] [ genericValidate ma,
438.41 s
[really-safe-money-gen] decorateMap m $ \_ a ->
438.41 s
[really-safe-money-gen] declare "The account is not zero" $
438.41 s
[really-safe-money-gen] - a /= Account.zero
438.41 s
[really-safe-money-gen] + True
438.41 s
[really-safe-money-gen] ]
438.41 s
[really-safe-money-gen]
438.41 s
[really-safe-money-gen] -- TODO no empty currencies
438.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
438.41 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
438.41 s
[really-safe-money-gen] [ genericValidate ma,
438.41 s
[really-safe-money-gen] decorateMap m $ \_ a ->
438.41 s
[really-safe-money-gen] declare "The account is not zero" $
438.41 s
[really-safe-money-gen] - a /= Account.zero
438.41 s
[really-safe-money-gen] + False
438.41 s
[really-safe-money-gen] ]
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- TODO no empty currencies
438.42 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
438.42 s
[really-safe-money-gen] @@ -75,9 +75,9 @@
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
438.42 s
[really-safe-money-gen] fromAccount currency amount =
438.42 s
[really-safe-money-gen] - if amount == Account.zero
438.42 s
[really-safe-money-gen] - then zero
438.42 s
[really-safe-money-gen] - else MultiAccount $ M.singleton currency amount
438.42 s
[really-safe-money-gen] + if amount == Account.zero
438.42 s
[really-safe-money-gen] + then zero
438.42 s
[really-safe-money-gen] + else MultiAccount $ M.singleton currency amount
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- | No money of any currency
438.42 s
[really-safe-money-gen] zero :: MultiAccount currency
438.42 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
438.42 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
438.42 s
[really-safe-money-gen] [ genericValidate ma,
438.42 s
[really-safe-money-gen] decorateMap m $ \_ a ->
438.42 s
[really-safe-money-gen] declare "The account is not zero" $
438.42 s
[really-safe-money-gen] - a /= Account.zero
438.42 s
[really-safe-money-gen] + not (a /= Account.zero)
438.42 s
[really-safe-money-gen] ]
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- TODO no empty currencies
438.42 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
438.42 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
438.42 s
[really-safe-money-gen] fromAccount currency amount =
438.42 s
[really-safe-money-gen] - if amount == Account.zero
438.42 s
[really-safe-money-gen] + if not (amount == Account.zero)
438.42 s
[really-safe-money-gen] then zero
438.42 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
438.42 s
[really-safe-money-gen] @@ -113,7 +113,7 @@
438.42 s
[really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
438.42 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
438.42 s
[really-safe-money-gen] invert :: ConversionRate -> ConversionRate
438.42 s
[really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
438.42 s
[really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- | Compose two conversion rates
438.42 s
[really-safe-money-gen] --
438.42 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
438.42 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
438.42 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
438.42 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
438.42 s
[really-safe-money-gen] mconcat
438.42 s
[really-safe-money-gen] - [ genericValidate ma,
438.42 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
438.42 s
[really-safe-money-gen] - declare "The account is not zero" $
438.42 s
[really-safe-money-gen] - a /= Account.zero
438.42 s
[really-safe-money-gen] - ]
438.42 s
[really-safe-money-gen] + []
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- TODO no empty currencies
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
438.42 s
[really-safe-money-gen] @@ -113,7 +113,7 @@
438.42 s
[really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
438.42 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
438.42 s
[really-safe-money-gen] invert :: ConversionRate -> ConversionRate
438.42 s
[really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
438.42 s
[really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- | Compose two conversion rates
438.42 s
[really-safe-money-gen] --
438.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
438.42 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- | One-to-one conversion rate
438.42 s
[really-safe-money-gen] oneToOne :: ConversionRate
438.42 s
[really-safe-money-gen] -oneToOne = ConversionRate 1
438.42 s
[really-safe-money-gen] +oneToOne = ConversionRate -1
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
438.42 s
[really-safe-money-gen] --
438.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
438.42 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
438.42 s
[really-safe-money-gen]
438.42 s
[really-safe-money-gen] -- | One-to-one conversion rate
438.42 s
[really-safe-money-gen] oneToOne :: ConversionRate
438.43 s
[really-safe-money-gen] -oneToOne = ConversionRate 1
438.43 s
[really-safe-money-gen] +oneToOne = ConversionRate 0
438.43 s
[really-safe-money-gen]
438.43 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
438.43 s
[really-safe-money-gen] --
438.43 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
438.43 s
[really-safe-money-gen] @@ -63,11 +63,11 @@
438.43 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
438.43 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
438.43 s
[really-safe-money-gen] mconcat
438.43 s
[really-safe-money-gen] - [ genericValidate ma,
438.43 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
438.43 s
[really-safe-money-gen] - declare "The account is not zero" $
438.43 s
[really-safe-money-gen] - a /= Account.zero
438.43 s
[really-safe-money-gen] - ]
438.43 s
[really-safe-money-gen] + [ genericValidate ma,
438.43 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
438.43 s
[really-safe-money-gen] + declare "The account is not zero" $
438.43 s
[really-safe-money-gen] + a /= Account.zero
438.43 s
[really-safe-money-gen] + ]
438.43 s
[really-safe-money-gen]
438.43 s
[really-safe-money-gen] -- TODO no empty currencies
438.43 s
[really-safe-money-gen]
438.43 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
438.43 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
438.43 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
438.43 s
[really-safe-money-gen] -- Nothing
438.43 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
438.43 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
438.43 s
[really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
438.43 s
[really-safe-money-gen]
438.43 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
438.43 s
[really-safe-money-gen] --
438.43 s
[really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
438.43 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
438.43 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
438.43 s
[really-safe-money-gen] -- Nothing
438.43 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
438.43 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
438.43 s
[really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
438.43 s
[really-safe-money-gen]
438.43 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
438.43 s
[really-safe-money-gen] --
438.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
438.43 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
438.43 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
438.43 s
[really-safe-money-gen] -- Nothing
438.43 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
438.43 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
438.43 s
[really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
438.43 s
[really-safe-money-gen]
441.52 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
441.52 s
[really-safe-money-gen] --
441.52 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
441.52 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
441.52 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
441.52 s
[really-safe-money-gen] mconcat
441.52 s
[really-safe-money-gen] [ genericValidate cr,
441.52 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
441.52 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
441.52 s
[really-safe-money-gen] ]
441.52 s
[really-safe-money-gen]
441.52 s
[really-safe-money-gen] instance NFData ConversionRate
441.52 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
441.52 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
441.52 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
441.52 s
[really-safe-money-gen] -- Nothing
441.52 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
441.52 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
441.52 s
[really-safe-money-gen] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
441.52 s
[really-safe-money-gen]
441.52 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
441.52 s
[really-safe-money-gen] --
441.52 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
441.52 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
441.52 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
441.52 s
[really-safe-money-gen] mconcat
441.52 s
[really-safe-money-gen] [ genericValidate cr,
441.52 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
441.52 s
[really-safe-money-gen] + declare "The rate is nonzero" $ True
441.52 s
[really-safe-money-gen] ]
441.52 s
[really-safe-money-gen]
441.53 s
[really-safe-money-gen] instance NFData ConversionRate
441.53 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
441.53 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
441.53 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
441.53 s
[really-safe-money-gen] -- Nothing
441.53 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
441.53 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
441.53 s
[really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
441.53 s
[really-safe-money-gen]
441.53 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
441.53 s
[really-safe-money-gen] --
441.53 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
441.53 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
441.53 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
441.53 s
[really-safe-money-gen] mconcat
441.53 s
[really-safe-money-gen] [ genericValidate cr,
441.53 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
441.53 s
[really-safe-money-gen] + declare "The rate is nonzero" $ False
441.53 s
[really-safe-money-gen] ]
441.53 s
[really-safe-money-gen]
441.53 s
[really-safe-money-gen] instance NFData ConversionRate
441.53 s
[really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
441.53 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
441.53 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
441.53 s
[really-safe-money-gen] mconcat
441.53 s
[really-safe-money-gen] [ genericValidate cr,
441.53 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
441.53 s
[really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
441.53 s
[really-safe-money-gen] ]
441.53 s
[really-safe-money-gen]
441.53 s
[really-safe-money-gen] instance NFData ConversionRate
441.53 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
441.53 s
[really-safe-money-gen] @@ -34,9 +34,7 @@
441.53 s
[really-safe-money-gen] instance Validity ConversionRate where
441.53 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
441.53 s
[really-safe-money-gen] mconcat
441.53 s
[really-safe-money-gen] - [ genericValidate cr,
441.53 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
441.53 s
[really-safe-money-gen] - ]
441.53 s
[really-safe-money-gen] + []
441.53 s
[really-safe-money-gen]
441.53 s
[really-safe-money-gen] instance NFData ConversionRate
441.53 s
[really-safe-money-gen]
441.53 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
441.53 s
[really-safe-money-gen] @@ -34,9 +34,9 @@
441.53 s
[really-safe-money-gen] instance Validity ConversionRate where
441.53 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
441.53 s
[really-safe-money-gen] mconcat
441.54 s
[really-safe-money-gen] - [ genericValidate cr,
441.54 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
441.54 s
[really-safe-money-gen] - ]
441.54 s
[really-safe-money-gen] + [ genericValidate cr,
441.54 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 0
441.54 s
[really-safe-money-gen] + ]
441.54 s
[really-safe-money-gen]
441.54 s
[really-safe-money-gen] instance NFData ConversionRate
441.54 s
[really-safe-money-gen]
441.54 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
441.54 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
441.54 s
[really-safe-money-gen] maxBoundN :: Natural
441.54 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
441.54 s
[really-safe-money-gen] actualResult =
441.54 s
[really-safe-money-gen] - if roundedResult > maxBoundN
441.54 s
[really-safe-money-gen] + if True
441.54 s
[really-safe-money-gen] then Nothing
441.54 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
441.54 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
441.54 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
441.54 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
441.54 s
[really-safe-money-gen] maxBoundN :: Natural
441.54 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
441.54 s
[really-safe-money-gen] actualResult =
441.54 s
[really-safe-money-gen] - if roundedResult > maxBoundN
441.54 s
[really-safe-money-gen] + if not (roundedResult > maxBoundN)
441.54 s
[really-safe-money-gen] then Nothing
441.54 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
441.54 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
441.54 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
441.54 s
[really-safe-money-gen] @@ -165,9 +165,9 @@
441.54 s
[really-safe-money-gen] maxBoundN :: Natural
441.54 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
441.54 s
[really-safe-money-gen] actualResult =
441.54 s
[really-safe-money-gen] - if roundedResult > maxBoundN
441.54 s
[really-safe-money-gen] - then Nothing
441.54 s
[really-safe-money-gen] - else Just (fromIntegral roundedResult)
441.54 s
[really-safe-money-gen] + if roundedResult > maxBoundN
441.54 s
[really-safe-money-gen] + then Nothing
441.54 s
[really-safe-money-gen] + else Just (fromIntegral roundedResult)
441.54 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
441.54 s
[really-safe-money-gen] LT -> RoundedDown
441.54 s
[really-safe-money-gen] EQ -> DidNotRound
441.54 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
441.54 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
441.54 s
[really-safe-money-gen] maxBoundN :: Natural
441.54 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
441.54 s
[really-safe-money-gen] actualResult =
441.54 s
[really-safe-money-gen] - if roundedResult > maxBoundN
441.54 s
[really-safe-money-gen] + if False
441.54 s
[really-safe-money-gen] then Nothing
441.54 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
441.54 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
441.54 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
441.54 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
441.54 s
[really-safe-money-gen] Just a -> do
441.54 s
[really-safe-money-gen] r <- Amount.subtract a amount
441.54 s
[really-safe-money-gen] Just $
441.55 s
[really-safe-money-gen] - if r == Amount.zero
441.55 s
[really-safe-money-gen] + if True
441.55 s
[really-safe-money-gen] then M.delete currency m
441.55 s
[really-safe-money-gen] else M.insert currency r m
441.55 s
[really-safe-money-gen]
441.55 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
441.55 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
441.55 s
[really-safe-money-gen] Just a -> do
441.55 s
[really-safe-money-gen] r <- Amount.subtract a amount
441.55 s
[really-safe-money-gen] Just $
441.55 s
[really-safe-money-gen] - if r == Amount.zero
441.55 s
[really-safe-money-gen] + if False
441.55 s
[really-safe-money-gen] then M.delete currency m
441.55 s
[really-safe-money-gen] else M.insert currency r m
441.55 s
[really-safe-money-gen]
441.55 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
441.55 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
441.55 s
[really-safe-money-gen] Just a -> do
441.55 s
[really-safe-money-gen] r <- Amount.subtract a amount
441.55 s
[really-safe-money-gen] Just $
441.55 s
[really-safe-money-gen] - if r == Amount.zero
441.55 s
[really-safe-money-gen] + if not (r == Amount.zero)
441.55 s
[really-safe-money-gen] then M.delete currency m
441.55 s
[really-safe-money-gen] else M.insert currency r m
441.55 s
[really-safe-money-gen]
441.55 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
441.55 s
[really-safe-money-gen] @@ -116,9 +116,9 @@
441.55 s
[really-safe-money-gen] Just a -> do
441.55 s
[really-safe-money-gen] r <- Amount.subtract a amount
441.55 s
[really-safe-money-gen] Just $
441.55 s
[really-safe-money-gen] - if r == Amount.zero
441.55 s
[really-safe-money-gen] - then M.delete currency m
441.55 s
[really-safe-money-gen] - else M.insert currency r m
441.55 s
[really-safe-money-gen] + if r == Amount.zero
441.55 s
[really-safe-money-gen] + then M.delete currency m
441.55 s
[really-safe-money-gen] + else M.insert currency r m
441.55 s
[really-safe-money-gen]
441.55 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
441.55 s
[really-safe-money-gen] --
441.55 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
441.55 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
441.55 s
[really-safe-money-gen] Just a -> do
441.55 s
[really-safe-money-gen] r <- Amount.add a amount
441.55 s
[really-safe-money-gen] Just $
441.55 s
[really-safe-money-gen] - if r == Amount.zero
441.55 s
[really-safe-money-gen] + if True
441.55 s
[really-safe-money-gen] then M.delete currency m
441.55 s
[really-safe-money-gen] else M.insert currency r m
441.55 s
[really-safe-money-gen]
441.55 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
441.55 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
441.55 s
[really-safe-money-gen] Just a -> do
441.55 s
[really-safe-money-gen] r <- Amount.add a amount
441.55 s
[really-safe-money-gen] Just $
441.55 s
[really-safe-money-gen] - if r == Amount.zero
441.55 s
[really-safe-money-gen] + if False
441.55 s
[really-safe-money-gen] then M.delete currency m
441.55 s
[really-safe-money-gen] else M.insert currency r m
441.55 s
[really-safe-money-gen]
441.55 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
441.55 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
441.55 s
[really-safe-money-gen] Just a -> do
441.55 s
[really-safe-money-gen] r <- Amount.add a amount
441.55 s
[really-safe-money-gen] Just $
441.56 s
[really-safe-money-gen] - if r == Amount.zero
441.56 s
[really-safe-money-gen] + if not (r == Amount.zero)
441.56 s
[really-safe-money-gen] then M.delete currency m
441.56 s
[really-safe-money-gen] else M.insert currency r m
441.56 s
[really-safe-money-gen]
441.56 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
441.56 s
[really-safe-money-gen] @@ -103,9 +103,9 @@
441.56 s
[really-safe-money-gen] Just a -> do
441.56 s
[really-safe-money-gen] r <- Amount.add a amount
441.56 s
[really-safe-money-gen] Just $
441.56 s
[really-safe-money-gen] - if r == Amount.zero
441.56 s
[really-safe-money-gen] - then M.delete currency m
441.56 s
[really-safe-money-gen] - else M.insert currency r m
441.56 s
[really-safe-money-gen] + if r == Amount.zero
441.56 s
[really-safe-money-gen] + then M.delete currency m
441.56 s
[really-safe-money-gen] + else M.insert currency r m
441.56 s
[really-safe-money-gen]
441.56 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
441.56 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
441.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
441.56 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
441.56 s
[really-safe-money-gen]
441.56 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
441.56 s
[really-safe-money-gen] fromAmount currency amount =
441.56 s
[really-safe-money-gen] - if amount == Amount.zero
441.56 s
[really-safe-money-gen] + if True
441.56 s
[really-safe-money-gen] then zero
441.56 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
441.56 s
[really-safe-money-gen]
441.56 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
441.56 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
441.56 s
[really-safe-money-gen]
441.56 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
441.56 s
[really-safe-money-gen] fromAmount currency amount =
441.56 s
[really-safe-money-gen] - if amount == Amount.zero
441.56 s
[really-safe-money-gen] + if not (amount == Amount.zero)
441.56 s
[really-safe-money-gen] then zero
441.56 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
441.56 s
[really-safe-money-gen]
441.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
441.56 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
441.56 s
[really-safe-money-gen] [ genericValidate ma,
441.56 s
[really-safe-money-gen] decorateMap m $ \_ a ->
441.56 s
[really-safe-money-gen] declare "The amount is not zero" $
441.56 s
[really-safe-money-gen] - a /= Amount.zero
444.56 s
[really-safe-money-gen] + True
444.56 s
[really-safe-money-gen] ]
444.56 s
[really-safe-money-gen]
444.56 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
444.65 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
444.65 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
444.65 s
[really-safe-money-gen] [ genericValidate ma,
444.65 s
[really-safe-money-gen] decorateMap m $ \_ a ->
444.65 s
[really-safe-money-gen] declare "The amount is not zero" $
444.65 s
[really-safe-money-gen] - a /= Amount.zero
444.65 s
[really-safe-money-gen] + False
444.65 s
[really-safe-money-gen] ]
444.65 s
[really-safe-money-gen]
444.65 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
444.65 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
444.65 s
[really-safe-money-gen] @@ -70,9 +70,9 @@
444.65 s
[really-safe-money-gen]
444.65 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
444.65 s
[really-safe-money-gen] fromAmount currency amount =
444.65 s
[really-safe-money-gen] - if amount == Amount.zero
444.65 s
[really-safe-money-gen] - then zero
444.65 s
[really-safe-money-gen] - else MultiAmount $ M.singleton currency amount
444.65 s
[really-safe-money-gen] + if amount == Amount.zero
444.65 s
[really-safe-money-gen] + then zero
444.65 s
[really-safe-money-gen] + else MultiAmount $ M.singleton currency amount
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] -- | No money of any currency
444.66 s
[really-safe-money-gen] zero :: MultiAmount currency
444.66 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
444.66 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
444.66 s
[really-safe-money-gen] fromAmount currency amount =
444.66 s
[really-safe-money-gen] - if amount == Amount.zero
444.66 s
[really-safe-money-gen] + if False
444.66 s
[really-safe-money-gen] then zero
444.66 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
444.66 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
444.66 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
444.66 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
444.66 s
[really-safe-money-gen] mconcat
444.66 s
[really-safe-money-gen] - [ genericValidate ma,
444.66 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
444.66 s
[really-safe-money-gen] - declare "The amount is not zero" $
444.66 s
[really-safe-money-gen] - a /= Amount.zero
444.66 s
[really-safe-money-gen] - ]
444.66 s
[really-safe-money-gen] + []
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
444.66 s
[really-safe-money-gen] @@ -60,11 +60,11 @@
444.66 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
444.66 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
444.66 s
[really-safe-money-gen] mconcat
444.66 s
[really-safe-money-gen] - [ genericValidate ma,
444.66 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
444.66 s
[really-safe-money-gen] - declare "The amount is not zero" $
444.66 s
[really-safe-money-gen] - a /= Amount.zero
444.66 s
[really-safe-money-gen] - ]
444.66 s
[really-safe-money-gen] + [ genericValidate ma,
444.66 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
444.66 s
[really-safe-money-gen] + declare "The amount is not zero" $
444.66 s
[really-safe-money-gen] + a /= Amount.zero
444.66 s
[really-safe-money-gen] + ]
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
444.66 s
[really-safe-money-gen]
444.66 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
444.66 s
[really-safe-money-gen] @@ -365,7 +365,7 @@
444.66 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
444.66 s
[really-safe-money-gen] let currentDigits :: Word8
444.66 s
[really-safe-money-gen] currentDigits = digits dl
444.66 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
444.66 s
[really-safe-money-gen] + in if True
444.66 s
[really-safe-money-gen] then dl
444.66 s
[really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
444.66 s
[really-safe-money-gen] where
444.66 s
[really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
444.66 s
[really-safe-money-gen] @@ -393,5 +393,5 @@
444.66 s
[really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
444.66 s
[really-safe-money-gen] where
444.66 s
[really-safe-money-gen] go = \case
444.66 s
[really-safe-money-gen] - Nothing -> Just True
444.66 s
[really-safe-money-gen] + Nothing -> Just False
444.66 s
[really-safe-money-gen] s -> s
444.66 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
444.66 s
[really-safe-money-gen] @@ -365,7 +365,7 @@
444.66 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
444.66 s
[really-safe-money-gen] let currentDigits :: Word8
444.66 s
[really-safe-money-gen] currentDigits = digits dl
444.66 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
444.66 s
[really-safe-money-gen] + in if False
444.66 s
[really-safe-money-gen] then dl
444.66 s
[really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
444.66 s
[really-safe-money-gen] where
444.66 s
[really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
444.66 s
[really-safe-money-gen] @@ -365,9 +365,9 @@
444.66 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
444.66 s
[really-safe-money-gen] let currentDigits :: Word8
444.66 s
[really-safe-money-gen] currentDigits = digits dl
444.66 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
444.66 s
[really-safe-money-gen] - then dl
444.66 s
[really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
444.66 s
[really-safe-money-gen] + in if wantedDigits <= currentDigits
444.66 s
[really-safe-money-gen] + then dl
444.66 s
[really-safe-money-gen] + else increaseDigits (wantedDigits - currentDigits) dl
444.66 s
[really-safe-money-gen] where
444.66 s
[really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
444.66 s
[really-safe-money-gen] increaseDigits 0 = id
444.66 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
444.66 s
[really-safe-money-gen] @@ -372,7 +372,7 @@
444.66 s
[really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
444.66 s
[really-safe-money-gen] increaseDigits 0 = id
444.66 s
[really-safe-money-gen] increaseDigits w = \case
444.67 s
[really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
444.67 s
[really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] -- | Ensures that a positive literal has no sign
444.67 s
[really-safe-money-gen] --
444.67 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
444.67 s
[really-safe-money-gen] @@ -372,7 +372,7 @@
444.67 s
[really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
444.67 s
[really-safe-money-gen] increaseDigits 0 = id
444.67 s
[really-safe-money-gen] increaseDigits w = \case
444.67 s
[really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
444.67 s
[really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] -- | Ensures that a positive literal has no sign
444.67 s
[really-safe-money-gen] --
444.67 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
444.67 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.67 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
444.67 s
[really-safe-money-gen] +numSign a = if True then Nothing else Just False
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
444.67 s
[really-safe-money-gen] signSignum = \case
444.67 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
444.67 s
[really-safe-money-gen] @@ -365,7 +365,7 @@
444.67 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
444.67 s
[really-safe-money-gen] let currentDigits :: Word8
444.67 s
[really-safe-money-gen] currentDigits = digits dl
444.67 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
444.67 s
[really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
444.67 s
[really-safe-money-gen] then dl
444.67 s
[really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
444.67 s
[really-safe-money-gen] where
444.67 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
444.67 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.67 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
444.67 s
[really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
444.67 s
[really-safe-money-gen] signSignum = \case
444.67 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
444.67 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.67 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
444.67 s
[really-safe-money-gen] +numSign a = if False then Nothing else Just False
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
444.67 s
[really-safe-money-gen] signSignum = \case
444.67 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
444.67 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.67 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
444.67 s
[really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
444.67 s
[really-safe-money-gen] signSignum = \case
444.67 s
[really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
444.67 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.67 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
444.67 s
[really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just False
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
444.67 s
[really-safe-money-gen] signSignum = \case
444.67 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
444.67 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
444.67 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
444.67 s
[really-safe-money-gen] toInt dl = do
444.67 s
[really-safe-money-gen] n <- toInteger dl
444.67 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
444.67 s
[really-safe-money-gen] + guard $ True
444.67 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
444.67 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
444.67 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
444.67 s
[really-safe-money-gen] toInt dl = do
444.67 s
[really-safe-money-gen] n <- toInteger dl
444.67 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
444.67 s
[really-safe-money-gen] + guard $ False
444.67 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
444.67 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
444.67 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
444.67 s
[really-safe-money-gen] toInt dl = do
444.67 s
[really-safe-money-gen] n <- toInteger dl
444.67 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
444.67 s
[really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
444.67 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
444.67 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
444.67 s
[really-safe-money-gen] toInt dl = do
444.67 s
[really-safe-money-gen] n <- toInteger dl
444.67 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
444.67 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
444.67 s
[really-safe-money-gen] + guard $ False
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.67 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
444.67 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
444.67 s
[really-safe-money-gen] toInt dl = do
444.67 s
[really-safe-money-gen] n <- toInteger dl
444.67 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
444.67 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
444.67 s
[really-safe-money-gen] + guard $ True
444.67 s
[really-safe-money-gen] pure $ fromIntegral n
444.67 s
[really-safe-money-gen]
444.67 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
444.68 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
444.68 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
444.68 s
[really-safe-money-gen] toInt dl = do
444.68 s
[really-safe-money-gen] n <- toInteger dl
446.01 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
446.01 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
446.01 s
[really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
446.01 s
[really-safe-money-gen] pure $ fromIntegral n
446.01 s
[really-safe-money-gen]
446.01 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
446.01 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
446.01 s
[really-safe-money-gen] @@ -312,7 +312,7 @@
446.01 s
[really-safe-money-gen]
446.01 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
446.01 s
[really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
446.01 s
[really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
446.01 s
[really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
446.01 s
[really-safe-money-gen]
446.01 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
446.01 s
[really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
446.01 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
446.01 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
446.01 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
446.01 s
[really-safe-money-gen] toWord dl = do
446.01 s
[really-safe-money-gen] n <- toNatural dl
446.01 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
446.01 s
[really-safe-money-gen] + guard $ True
446.01 s
[really-safe-money-gen] pure $ fromIntegral n
446.01 s
[really-safe-money-gen]
446.01 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
446.01 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
446.01 s
[really-safe-money-gen] @@ -301,7 +301,7 @@
446.01 s
[really-safe-money-gen]
446.01 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
446.01 s
[really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
446.01 s
[really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
446.01 s
[really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
446.01 s
[really-safe-money-gen]
446.01 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
446.01 s
[really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
446.01 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
446.01 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
446.01 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
446.01 s
[really-safe-money-gen] toWord dl = do
446.02 s
[really-safe-money-gen] n <- toNatural dl
446.02 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
446.02 s
[really-safe-money-gen] + guard $ False
446.02 s
[really-safe-money-gen] pure $ fromIntegral n
446.02 s
[really-safe-money-gen]
446.02 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
446.02 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
446.02 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
446.02 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
446.02 s
[really-safe-money-gen] toWord dl = do
446.02 s
[really-safe-money-gen] n <- toNatural dl
446.02 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
446.02 s
[really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
446.02 s
[really-safe-money-gen] pure $ fromIntegral n
446.02 s
[really-safe-money-gen]
446.02 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
446.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
446.02 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
446.02 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
446.02 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
446.02 s
[really-safe-money-gen] Just False -> Nothing
446.02 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
446.02 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
446.02 s
[really-safe-money-gen]
446.02 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
446.02 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
446.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
446.02 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
446.02 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
446.02 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
446.02 s
[really-safe-money-gen] Just False -> Nothing
446.02 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
446.02 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
446.02 s
[really-safe-money-gen]
446.02 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
446.02 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
446.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
446.02 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
446.02 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
446.02 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
446.02 s
[really-safe-money-gen] Just False -> Nothing
446.02 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
446.02 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
446.02 s
[really-safe-money-gen]
446.02 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
446.02 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
446.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
446.02 s
[really-safe-money-gen] @@ -233,7 +233,7 @@
446.02 s
[really-safe-money-gen] -- >>> fromRatio (1 % 3)
446.02 s
[really-safe-money-gen] -- Nothing
446.02 s
[really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
446.02 s
[really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
446.02 s
[really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
446.02 s
[really-safe-money-gen] where
446.02 s
[really-safe-money-gen] fromRationalRepetendLimited ::
446.02 s
[really-safe-money-gen] -- limit
446.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
446.02 s
[really-safe-money-gen] @@ -233,7 +233,7 @@
446.02 s
[really-safe-money-gen] -- >>> fromRatio (1 % 3)
446.02 s
[really-safe-money-gen] -- Nothing
446.02 s
[really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
446.02 s
[really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
446.02 s
[really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
446.02 s
[really-safe-money-gen] where
446.02 s
[really-safe-money-gen] fromRationalRepetendLimited ::
446.03 s
[really-safe-money-gen] -- limit
446.03 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
446.03 s
[really-safe-money-gen] @@ -233,7 +233,7 @@
446.03 s
[really-safe-money-gen] -- >>> fromRatio (1 % 3)
446.03 s
[really-safe-money-gen] -- Nothing
446.03 s
[really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
446.03 s
[really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
446.03 s
[really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
446.03 s
[really-safe-money-gen] where
446.03 s
[really-safe-money-gen] fromRationalRepetendLimited ::
446.03 s
[really-safe-money-gen] -- limit
446.03 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
446.03 s
[really-safe-money-gen] @@ -241,7 +241,7 @@
446.03 s
[really-safe-money-gen] Ratio Natural ->
446.03 s
[really-safe-money-gen] Maybe DecimalLiteral
446.03 s
[really-safe-money-gen] fromRationalRepetendLimited l rational
446.03 s
[really-safe-money-gen] - | d == 0 = Nothing
446.03 s
[really-safe-money-gen] + | d == 1 = Nothing
446.03 s
[really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
446.03 s
[really-safe-money-gen] where
446.03 s
[really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
446.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
446.03 s
[really-safe-money-gen] @@ -241,7 +241,7 @@
446.03 s
[really-safe-money-gen] Ratio Natural ->
446.03 s
[really-safe-money-gen] Maybe DecimalLiteral
446.03 s
[really-safe-money-gen] fromRationalRepetendLimited l rational
446.03 s
[really-safe-money-gen] - | d == 0 = Nothing
446.03 s
[really-safe-money-gen] + | True = Nothing
446.03 s
[really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
446.03 s
[really-safe-money-gen] where
446.03 s
[really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
446.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
446.03 s
[really-safe-money-gen] @@ -261,7 +261,7 @@
446.03 s
[really-safe-money-gen] Just (c, e)
446.03 s
[really-safe-money-gen] longDivWithLimit !c !e ns !n
446.03 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
446.03 s
[really-safe-money-gen] - | S.member n ns = Nothing
446.03 s
[really-safe-money-gen] + | True = Nothing
446.03 s
[really-safe-money-gen] -- Over the limit, stop trying
446.03 s
[really-safe-money-gen] | e >= l = Nothing
446.03 s
[really-safe-money-gen] | n < d =
446.03 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
446.03 s
[really-safe-money-gen] @@ -261,7 +261,7 @@
446.03 s
[really-safe-money-gen] Just (c, e)
446.03 s
[really-safe-money-gen] longDivWithLimit !c !e ns !n
446.03 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
446.03 s
[really-safe-money-gen] - | S.member n ns = Nothing
446.03 s
[really-safe-money-gen] + | not (S.member n ns) = Nothing
446.03 s
[really-safe-money-gen] -- Over the limit, stop trying
446.03 s
[really-safe-money-gen] | e >= l = Nothing
446.03 s
[really-safe-money-gen] | n < d =
446.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
446.03 s
[really-safe-money-gen] @@ -263,7 +263,7 @@
446.03 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
446.03 s
[really-safe-money-gen] | S.member n ns = Nothing
446.03 s
[really-safe-money-gen] -- Over the limit, stop trying
446.03 s
[really-safe-money-gen] - | e >= l = Nothing
446.03 s
[really-safe-money-gen] + | True = Nothing
446.03 s
[really-safe-money-gen] | n < d =
446.03 s
[really-safe-money-gen] let !ns' = S.insert n ns
446.03 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
446.03 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
446.03 s
[really-safe-money-gen] @@ -263,7 +263,7 @@
446.03 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
446.03 s
[really-safe-money-gen] | S.member n ns = Nothing
446.03 s
[really-safe-money-gen] -- Over the limit, stop trying
446.03 s
[really-safe-money-gen] - | e >= l = Nothing
446.03 s
[really-safe-money-gen] + | not (e >= l) = Nothing
446.03 s
[really-safe-money-gen] | n < d =
446.03 s
[really-safe-money-gen] let !ns' = S.insert n ns
446.03 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
446.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
446.03 s
[really-safe-money-gen] @@ -264,7 +264,7 @@
446.03 s
[really-safe-money-gen] | S.member n ns = Nothing
446.03 s
[really-safe-money-gen] -- Over the limit, stop trying
446.04 s
[really-safe-money-gen] | e >= l = Nothing
446.04 s
[really-safe-money-gen] - | n < d =
446.04 s
[really-safe-money-gen] + | True =
446.04 s
[really-safe-money-gen] let !ns' = S.insert n ns
446.04 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
446.04 s
[really-safe-money-gen] | otherwise =
446.04 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
446.04 s
[really-safe-money-gen] @@ -264,7 +264,7 @@
446.04 s
[really-safe-money-gen] | S.member n ns = Nothing
446.04 s
[really-safe-money-gen] -- Over the limit, stop trying
446.04 s
[really-safe-money-gen] | e >= l = Nothing
446.04 s
[really-safe-money-gen] - | n < d =
446.04 s
[really-safe-money-gen] + | not (n < d) =
446.04 s
[really-safe-money-gen] let !ns' = S.insert n ns
446.04 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
446.04 s
[really-safe-money-gen] | otherwise =
446.04 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
446.04 s
[really-safe-money-gen] @@ -241,7 +241,7 @@
446.04 s
[really-safe-money-gen] Ratio Natural ->
446.04 s
[really-safe-money-gen] Maybe DecimalLiteral
446.04 s
[really-safe-money-gen] fromRationalRepetendLimited l rational
446.04 s
[really-safe-money-gen] - | d == 0 = Nothing
446.04 s
[really-safe-money-gen] + | not (d == 0) = Nothing
446.04 s
[really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
446.04 s
[really-safe-money-gen] where
446.04 s
[really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
446.04 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
446.04 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
446.04 s
[really-safe-money-gen] | e >= l = Nothing
446.04 s
[really-safe-money-gen] | n < d =
446.04 s
[really-safe-money-gen] let !ns' = S.insert n ns
446.04 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
446.04 s
[really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
446.04 s
[really-safe-money-gen] | otherwise =
446.04 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
446.04 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
446.04 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
446.04 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
446.04 s
[really-safe-money-gen] | e >= l = Nothing
448.13 s
[really-safe-money-gen] | n < d =
448.13 s
[really-safe-money-gen] let !ns' = S.insert n ns
448.13 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
448.13 s
[really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
448.13 s
[really-safe-money-gen] | otherwise =
448.13 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
448.13 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
448.13 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
448.13 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
448.13 s
[really-safe-money-gen] [ genericValidate ma,
448.13 s
[really-safe-money-gen] decorateMap m $ \_ a ->
448.13 s
[really-safe-money-gen] declare "The amount is not zero" $
448.13 s
[really-safe-money-gen] - a /= Amount.zero
448.14 s
[really-safe-money-gen] + not (a /= Amount.zero)
448.14 s
[really-safe-money-gen] ]
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
448.14 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
448.14 s
[really-safe-money-gen] | e >= l = Nothing
448.14 s
[really-safe-money-gen] | n < d =
448.14 s
[really-safe-money-gen] let !ns' = S.insert n ns
448.14 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
448.14 s
[really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
448.14 s
[really-safe-money-gen] | otherwise =
448.14 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
448.14 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
448.14 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
448.14 s
[really-safe-money-gen] | e >= l = Nothing
448.14 s
[really-safe-money-gen] | n < d =
448.14 s
[really-safe-money-gen] let !ns' = S.insert n ns
448.14 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
448.14 s
[really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
448.14 s
[really-safe-money-gen] | otherwise =
448.14 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
448.14 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
448.14 s
[really-safe-money-gen] @@ -249,7 +249,7 @@
448.14 s
[really-safe-money-gen] num = numerator rational
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
448.14 s
[really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
448.14 s
[really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] longDivWithLimit ::
448.14 s
[really-safe-money-gen] Natural ->
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
448.14 s
[really-safe-money-gen] @@ -249,7 +249,7 @@
448.14 s
[really-safe-money-gen] num = numerator rational
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
448.14 s
[really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
448.14 s
[really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] longDivWithLimit ::
448.14 s
[really-safe-money-gen] Natural ->
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
448.14 s
[really-safe-money-gen] @@ -220,7 +220,7 @@
448.14 s
[really-safe-money-gen] -- (-3) % 10
448.14 s
[really-safe-money-gen] toRational :: DecimalLiteral -> Rational
448.14 s
[really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
448.14 s
[really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
448.14 s
[really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
448.14 s
[really-safe-money-gen] --
448.14 s
[really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
448.14 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
448.14 s
[really-safe-money-gen] pure $ fromIntegral n
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
448.14 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
448.14 s
[really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
448.14 s
[really-safe-money-gen] signSignum = \case
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
448.14 s
[really-safe-money-gen] @@ -220,7 +220,7 @@
448.14 s
[really-safe-money-gen] -- (-3) % 10
448.14 s
[really-safe-money-gen] toRational :: DecimalLiteral -> Rational
448.14 s
[really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
448.14 s
[really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
448.14 s
[really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
448.14 s
[really-safe-money-gen] --
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
448.14 s
[really-safe-money-gen] @@ -220,7 +220,7 @@
448.14 s
[really-safe-money-gen] -- (-3) % 10
448.14 s
[really-safe-money-gen] toRational :: DecimalLiteral -> Rational
448.14 s
[really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
448.14 s
[really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
448.14 s
[really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
448.14 s
[really-safe-money-gen]
448.14 s
[really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
448.14 s
[really-safe-money-gen] --
448.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
448.14 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
448.14 s
[really-safe-money-gen] -- Nothing
448.14 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
448.14 s
[really-safe-money-gen] fromRational (n :% d)
448.15 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
448.15 s
[really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
448.15 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
448.15 s
[really-safe-money-gen]
448.15 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
448.15 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
448.15 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
448.15 s
[really-safe-money-gen] -- Nothing
448.15 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
448.15 s
[really-safe-money-gen] fromRational (n :% d)
448.15 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
448.15 s
[really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
448.15 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
448.15 s
[really-safe-money-gen]
448.15 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
448.15 s
[really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
448.15 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
448.15 s
[really-safe-money-gen] -- Nothing
448.15 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
448.15 s
[really-safe-money-gen] fromRational (n :% d)
448.15 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
448.15 s
[really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
448.15 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
448.15 s
[really-safe-money-gen]
448.15 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
448.15 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
448.15 s
[really-safe-money-gen] @@ -183,7 +183,7 @@
448.15 s
[really-safe-money-gen]
448.15 s
[really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
448.15 s
[really-safe-money-gen] go :: Word8 -> String -> String
448.15 s
[really-safe-money-gen] - go 0 [] = ['.', '0']
448.15 s
[really-safe-money-gen] + go 0 [] = []
448.15 s
[really-safe-money-gen] go 0 s = '.' : s
448.15 s
[really-safe-money-gen] go e [] = '0' : go (pred e) []
448.15 s
[really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
448.15 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
448.15 s
[really-safe-money-gen] @@ -183,7 +183,7 @@
448.15 s
[really-safe-money-gen]
448.15 s
[really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
448.15 s
[really-safe-money-gen] go :: Word8 -> String -> String
448.15 s
[really-safe-money-gen] - go 0 [] = ['.', '0']
448.15 s
[really-safe-money-gen] + go 0 [] = ['.', '0']
448.15 s
[really-safe-money-gen] go 0 s = '.' : s
448.15 s
[really-safe-money-gen] go e [] = '0' : go (pred e) []
448.15 s
[really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
448.15 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
448.15 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
448.15 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
448.15 s
[really-safe-money-gen] parseDigits f z = do
448.15 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
448.15 s
[really-safe-money-gen] - let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] + let digit = Char.ord c - 0
448.15 s
[really-safe-money-gen] case f z digit of
448.15 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
448.15 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
448.15 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
448.15 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
448.15 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
448.15 s
[really-safe-money-gen] parseDigits f z = do
448.15 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
448.15 s
[really-safe-money-gen] - let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] + let digit = Char.ord c - 1
448.15 s
[really-safe-money-gen] case f z digit of
448.15 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
448.15 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
448.15 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
448.15 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
448.15 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
448.15 s
[really-safe-money-gen] parseDigits f z = do
448.15 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
448.15 s
[really-safe-money-gen] - let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] + let digit = Char.ord c - -48
448.15 s
[really-safe-money-gen] case f z digit of
448.15 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
448.15 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
448.15 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
448.15 s
[really-safe-money-gen] @@ -149,7 +149,7 @@
448.15 s
[really-safe-money-gen] where
448.15 s
[really-safe-money-gen] go !a [] = return a
448.15 s
[really-safe-money-gen] go !a (c : cs)
448.15 s
[really-safe-money-gen] - | Char.isDigit c = do
448.15 s
[really-safe-money-gen] + | True = do
448.15 s
[really-safe-money-gen] _ <- ReadP.get
448.15 s
[really-safe-money-gen] let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] case f a digit of
448.15 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
448.15 s
[really-safe-money-gen] @@ -149,7 +149,7 @@
448.15 s
[really-safe-money-gen] where
448.15 s
[really-safe-money-gen] go !a [] = return a
448.15 s
[really-safe-money-gen] go !a (c : cs)
448.15 s
[really-safe-money-gen] - | Char.isDigit c = do
448.15 s
[really-safe-money-gen] + | not (Char.isDigit c) = do
448.15 s
[really-safe-money-gen] _ <- ReadP.get
448.15 s
[really-safe-money-gen] let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] case f a digit of
448.15 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
448.15 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
448.15 s
[really-safe-money-gen] go !a (c : cs)
448.15 s
[really-safe-money-gen] | Char.isDigit c = do
448.15 s
[really-safe-money-gen] _ <- ReadP.get
448.15 s
[really-safe-money-gen] - let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] + let digit = Char.ord c - 0
448.15 s
[really-safe-money-gen] case f a digit of
448.15 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
448.15 s
[really-safe-money-gen] Just a' -> go a' cs
448.15 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
448.15 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
448.15 s
[really-safe-money-gen] go !a (c : cs)
448.15 s
[really-safe-money-gen] | Char.isDigit c = do
448.15 s
[really-safe-money-gen] _ <- ReadP.get
448.15 s
[really-safe-money-gen] - let digit = Char.ord c - 48
448.15 s
[really-safe-money-gen] + let digit = Char.ord c - 1
448.15 s
[really-safe-money-gen] case f a digit of
448.15 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
448.15 s
[really-safe-money-gen] Just a' -> go a' cs
449.85 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
449.86 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
449.95 s
[really-safe-money-gen] -- Nothing
449.95 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
449.95 s
[really-safe-money-gen] fromRational (n :% d)
449.95 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
449.95 s
[really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
449.95 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
449.95 s
[really-safe-money-gen]
449.95 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
449.95 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
449.95 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
449.95 s
[really-safe-money-gen] go !a (c : cs)
449.95 s
[really-safe-money-gen] | Char.isDigit c = do
449.95 s
[really-safe-money-gen] _ <- ReadP.get
449.96 s
[really-safe-money-gen] - let digit = Char.ord c - 48
449.96 s
[really-safe-money-gen] + let digit = Char.ord c - -48
449.96 s
[really-safe-money-gen] case f a digit of
449.96 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
449.96 s
[really-safe-money-gen] Just a' -> go a' cs
449.96 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
449.96 s
[really-safe-money-gen] @@ -136,7 +136,7 @@
449.96 s
[really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
449.96 s
[really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
449.96 s
[really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
449.96 s
[really-safe-money-gen] {-# INLINE step #-}
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
449.96 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
449.96 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
449.96 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
449.96 s
[really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
449.96 s
[really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
449.96 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
449.96 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
449.96 s
[really-safe-money-gen] @@ -136,7 +136,7 @@
449.96 s
[really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
449.96 s
[really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
449.96 s
[really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
449.96 s
[really-safe-money-gen] {-# INLINE step #-}
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
449.96 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
449.96 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
449.96 s
[really-safe-money-gen]
449.96 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
449.96 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
449.97 s
[really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
449.97 s
[really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
449.97 s
[really-safe-money-gen]
449.97 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
449.97 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
449.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
449.97 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.97 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.97 s
[really-safe-money-gen] decimalLiteralP = do
449.97 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.97 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.97 s
[really-safe-money-gen] + isSignChar c = False || c == '+'
449.97 s
[really-safe-money-gen]
449.97 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.97 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.97 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
449.97 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.97 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.97 s
[really-safe-money-gen] decimalLiteralP = do
449.97 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.97 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.97 s
[really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
449.97 s
[really-safe-money-gen]
449.97 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.97 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
449.97 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.97 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.97 s
[really-safe-money-gen] decimalLiteralP = do
449.97 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.97 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.97 s
[really-safe-money-gen] + isSignChar c = True || c == '+'
449.97 s
[really-safe-money-gen]
449.97 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.97 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
449.97 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.97 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.97 s
[really-safe-money-gen] decimalLiteralP = do
449.97 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.98 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.98 s
[really-safe-money-gen] + isSignChar c = c == '-' || True
449.98 s
[really-safe-money-gen]
449.98 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.98 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
449.98 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.98 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.98 s
[really-safe-money-gen] decimalLiteralP = do
449.98 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.98 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.98 s
[really-safe-money-gen] + isSignChar c = c == '-' || False
449.98 s
[really-safe-money-gen]
449.98 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.98 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.98 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
449.98 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.98 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.98 s
[really-safe-money-gen] decimalLiteralP = do
449.98 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.98 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.98 s
[really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
449.98 s
[really-safe-money-gen]
449.98 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.98 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
449.98 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.98 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.98 s
[really-safe-money-gen] decimalLiteralP = do
449.98 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.98 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.98 s
[really-safe-money-gen] + isSignChar c = True
449.98 s
[really-safe-money-gen]
449.98 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.98 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
449.98 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.98 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.98 s
[really-safe-money-gen] decimalLiteralP = do
449.98 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.98 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.98 s
[really-safe-money-gen] + isSignChar c = False
449.98 s
[really-safe-money-gen]
449.98 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.98 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.98 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
449.98 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
449.98 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
449.98 s
[really-safe-money-gen] decimalLiteralP = do
449.98 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
449.98 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
449.98 s
[really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.99 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
449.99 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.99 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.99 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
449.99 s
[really-safe-money-gen] + pure $ Just $ True
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] units <- parseDigits step 0
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
449.99 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.99 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.99 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
449.99 s
[really-safe-money-gen] + pure $ Just $ False
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] units <- parseDigits step 0
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
449.99 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
449.99 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.99 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
449.99 s
[really-safe-money-gen] + pure $ Just $ not (signChar == '+')
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] units <- parseDigits step 0
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
449.99 s
[really-safe-money-gen] @@ -122,7 +122,7 @@
449.99 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
449.99 s
[really-safe-money-gen] pure $ Just $ signChar == '+'
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] - units <- parseDigits step 0
449.99 s
[really-safe-money-gen] + units <- parseDigits step 1
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
449.99 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
449.99 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
449.99 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] units <- parseDigits step 0
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
449.99 s
[really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
449.99 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
449.99 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
449.99 s
[really-safe-money-gen] @@ -127,7 +127,7 @@
449.99 s
[really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
449.99 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
449.99 s
[really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] pure $ DecimalLiteral mSign m e
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
449.99 s
[really-safe-money-gen] @@ -798,7 +798,7 @@
449.99 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
449.99 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
449.99 s
[really-safe-money-gen] let decimals :: Int
449.99 s
[really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
449.99 s
[really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
449.99 s
[really-safe-money-gen] in printf "%%0.%df" decimals
449.99 s
[really-safe-money-gen]
449.99 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
449.99 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
449.99 s
[really-safe-money-gen] @@ -798,7 +798,7 @@
449.99 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
449.99 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
449.99 s
[really-safe-money-gen] let decimals :: Int
450.00 s
[really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
451.44 s
[really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
451.44 s
[really-safe-money-gen] in printf "%%0.%df" decimals
451.44 s
[really-safe-money-gen]
451.44 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
451.44 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
451.44 s
[really-safe-money-gen] @@ -798,7 +798,7 @@
451.44 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
451.44 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
451.44 s
[really-safe-money-gen] let decimals :: Int
451.44 s
[really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
451.44 s
[really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
451.44 s
[really-safe-money-gen] in printf "%%0.%df" decimals
451.44 s
[really-safe-money-gen]
451.44 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
451.44 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19
451.44 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
451.44 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
451.44 s
[really-safe-money-gen] smallerChunk :: Amount
451.44 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
451.44 s
[really-safe-money-gen] - in if rest == 0
451.44 s
[really-safe-money-gen] + in if rest == 1
451.44 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
451.44 s
[really-safe-money-gen] else
451.44 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
451.44 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
451.44 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
451.44 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
451.44 s
[really-safe-money-gen] smallerChunk :: Amount
451.44 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
451.44 s
[really-safe-money-gen] - in if rest == 0
451.44 s
[really-safe-money-gen] + in if True
451.44 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
451.44 s
[really-safe-money-gen] else
451.44 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
451.44 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
451.44 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
451.44 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
451.44 s
[really-safe-money-gen] smallerChunk :: Amount
451.44 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
451.44 s
[really-safe-money-gen] - in if rest == 0
451.44 s
[really-safe-money-gen] + in if False
451.44 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
451.44 s
[really-safe-money-gen] else
451.44 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
451.45 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19
451.45 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
451.45 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
451.45 s
[really-safe-money-gen] smallerChunk :: Amount
451.45 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
451.45 s
[really-safe-money-gen] - in if rest == 0
451.45 s
[really-safe-money-gen] + in if not (rest == 0)
451.45 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
451.45 s
[really-safe-money-gen] else
451.45 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
451.45 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:569:7-29
451.45 s
[really-safe-money-gen] @@ -566,22 +566,22 @@
451.45 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
451.45 s
[really-safe-money-gen] smallerChunk :: Amount
451.45 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
451.45 s
[really-safe-money-gen] - in if rest == 0
451.45 s
[really-safe-money-gen] - then DistributedIntoEqualChunks f smallerChunk
451.45 s
[really-safe-money-gen] - else
451.45 s
[really-safe-money-gen] - let -- This 'fromIntegral' is theoretically not safe, but it's
451.45 s
[really-safe-money-gen] - -- necessarily smaller than f so it will fit.
451.45 s
[really-safe-money-gen] - numberOfLargerChunks :: Word32
451.45 s
[really-safe-money-gen] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
451.45 s
[really-safe-money-gen] - numberOfSmallerChunks :: Word32
451.45 s
[really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
451.45 s
[really-safe-money-gen] - largerChunk :: Amount
451.45 s
[really-safe-money-gen] - largerChunk = Amount $ succ smallerChunkSize
451.45 s
[really-safe-money-gen] - in DistributedIntoUnequalChunks
451.45 s
[really-safe-money-gen] - numberOfLargerChunks
451.45 s
[really-safe-money-gen] - largerChunk
451.45 s
[really-safe-money-gen] - numberOfSmallerChunks
451.45 s
[really-safe-money-gen] - smallerChunk
451.45 s
[really-safe-money-gen] + in if rest == 0
451.45 s
[really-safe-money-gen] + then DistributedIntoEqualChunks f smallerChunk
451.45 s
[really-safe-money-gen] + else
451.45 s
[really-safe-money-gen] + let -- This 'fromIntegral' is theoretically not safe, but it's
451.45 s
[really-safe-money-gen] + -- necessarily smaller than f so it will fit.
451.45 s
[really-safe-money-gen] + numberOfLargerChunks :: Word32
451.45 s
[really-safe-money-gen] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
451.45 s
[really-safe-money-gen] + numberOfSmallerChunks :: Word32
451.45 s
[really-safe-money-gen] + numberOfSmallerChunks = f - numberOfLargerChunks
451.45 s
[really-safe-money-gen] + largerChunk :: Amount
451.45 s
[really-safe-money-gen] + largerChunk = Amount $ succ smallerChunkSize
451.45 s
[really-safe-money-gen] + in DistributedIntoUnequalChunks
451.45 s
[really-safe-money-gen] + numberOfLargerChunks
451.45 s
[really-safe-money-gen] + largerChunk
451.45 s
[really-safe-money-gen] + numberOfSmallerChunks
451.45 s
[really-safe-money-gen] + smallerChunk
451.45 s
[really-safe-money-gen]
451.45 s
[really-safe-money-gen] -- | The result of 'distribute'
451.45 s
[really-safe-money-gen] type AmountDistribution = Distribution Amount
451.45 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
451.45 s
[really-safe-money-gen] @@ -541,7 +541,7 @@
451.45 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
451.45 s
[really-safe-money-gen] r :: Integer
451.45 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
451.45 s
[really-safe-money-gen] - in if r > maxBoundI
451.45 s
[really-safe-money-gen] + in if True
451.45 s
[really-safe-money-gen] then Nothing
451.45 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.45 s
[really-safe-money-gen]
451.45 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
451.45 s
[really-safe-money-gen] @@ -541,7 +541,7 @@
451.45 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
451.45 s
[really-safe-money-gen] r :: Integer
451.45 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
451.45 s
[really-safe-money-gen] - in if r > maxBoundI
451.45 s
[really-safe-money-gen] + in if False
451.45 s
[really-safe-money-gen] then Nothing
451.46 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23
451.46 s
[really-safe-money-gen] @@ -541,7 +541,7 @@
451.46 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
451.46 s
[really-safe-money-gen] - in if r > maxBoundI
451.46 s
[really-safe-money-gen] + in if not (r > maxBoundI)
451.46 s
[really-safe-money-gen] then Nothing
451.46 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:544:7-66
451.46 s
[really-safe-money-gen] @@ -541,9 +541,9 @@
451.46 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
451.46 s
[really-safe-money-gen] - in if r > maxBoundI
451.46 s
[really-safe-money-gen] - then Nothing
451.46 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen] + in if r > maxBoundI
451.46 s
[really-safe-money-gen] + then Nothing
451.46 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
451.46 s
[really-safe-money-gen] --
451.46 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15
451.46 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
451.46 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = i1 - i2
451.46 s
[really-safe-money-gen] - in if r < 0
451.46 s
[really-safe-money-gen] + in if r < 1
451.46 s
[really-safe-money-gen] then Nothing
451.46 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
451.46 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
451.46 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = i1 - i2
451.46 s
[really-safe-money-gen] - in if r < 0
451.46 s
[really-safe-money-gen] + in if True
451.46 s
[really-safe-money-gen] then Nothing
451.46 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
451.46 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
451.46 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = i1 - i2
451.46 s
[really-safe-money-gen] - in if r < 0
451.46 s
[really-safe-money-gen] + in if False
451.46 s
[really-safe-money-gen] then Nothing
451.46 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15
451.46 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
451.46 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = i1 - i2
451.46 s
[really-safe-money-gen] - in if r < 0
451.46 s
[really-safe-money-gen] + in if not (r < 0)
451.46 s
[really-safe-money-gen] then Nothing
451.46 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.46 s
[really-safe-money-gen]
451.46 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:518:7-66
451.46 s
[really-safe-money-gen] @@ -515,9 +515,9 @@
451.46 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
451.46 s
[really-safe-money-gen] r :: Integer
451.46 s
[really-safe-money-gen] r = i1 - i2
451.46 s
[really-safe-money-gen] - in if r < 0
451.46 s
[really-safe-money-gen] - then Nothing
451.47 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.47 s
[really-safe-money-gen] + in if r < 0
451.47 s
[really-safe-money-gen] + then Nothing
451.47 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.47 s
[really-safe-money-gen]
451.47 s
[really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
451.47 s
[really-safe-money-gen] --
451.47 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
451.47 s
[really-safe-money-gen] @@ -473,7 +473,7 @@
451.47 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
451.47 s
[really-safe-money-gen] r :: Integer
451.47 s
[really-safe-money-gen] r = i1 + i2
451.47 s
[really-safe-money-gen] - in if r > maxBoundI
451.47 s
[really-safe-money-gen] + in if True
451.47 s
[really-safe-money-gen] then Nothing
451.47 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.47 s
[really-safe-money-gen]
451.47 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
451.47 s
[really-safe-money-gen] @@ -473,7 +473,7 @@
451.47 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
451.47 s
[really-safe-money-gen] r :: Integer
451.47 s
[really-safe-money-gen] r = i1 + i2
451.47 s
[really-safe-money-gen] - in if r > maxBoundI
451.47 s
[really-safe-money-gen] + in if False
451.47 s
[really-safe-money-gen] then Nothing
451.47 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
451.47 s
[really-safe-money-gen]
451.47 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23
451.47 s
[really-safe-money-gen] @@ -473,7 +473,7 @@
454.47 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
454.47 s
[really-safe-money-gen] r :: Integer
454.47 s
[really-safe-money-gen] r = i1 + i2
454.47 s
[really-safe-money-gen] - in if r > maxBoundI
454.47 s
[really-safe-money-gen] + in if not (r > maxBoundI)
454.47 s
[really-safe-money-gen] then Nothing
454.47 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
454.47 s
[really-safe-money-gen]
454.47 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:476:7-66
454.47 s
[really-safe-money-gen] @@ -473,9 +473,9 @@
454.47 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
454.47 s
[really-safe-money-gen] r :: Integer
454.47 s
[really-safe-money-gen] r = i1 + i2
454.47 s
[really-safe-money-gen] - in if r > maxBoundI
454.47 s
[really-safe-money-gen] - then Nothing
454.47 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
454.47 s
[really-safe-money-gen] + in if r > maxBoundI
454.47 s
[really-safe-money-gen] + then Nothing
454.47 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
454.47 s
[really-safe-money-gen]
454.47 s
[really-safe-money-gen] -- | Add a number of amounts of money together.
454.47 s
[really-safe-money-gen] --
454.47 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16
454.47 s
[really-safe-money-gen] @@ -385,7 +385,7 @@
454.47 s
[really-safe-money-gen] -- Nothing
454.47 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
454.48 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
454.48 s
[really-safe-money-gen] - | isInvalid r = Nothing
454.48 s
[really-safe-money-gen] + | True = Nothing
454.48 s
[really-safe-money-gen] | r < 0 = Nothing
454.48 s
[really-safe-money-gen] | otherwise =
454.48 s
[really-safe-money-gen] let resultRational :: Rational
454.48 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16
454.48 s
[really-safe-money-gen] @@ -385,7 +385,7 @@
454.48 s
[really-safe-money-gen] -- Nothing
454.48 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
454.48 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
454.48 s
[really-safe-money-gen] - | isInvalid r = Nothing
454.48 s
[really-safe-money-gen] + | not (isInvalid r) = Nothing
454.48 s
[really-safe-money-gen] | r < 0 = Nothing
454.48 s
[really-safe-money-gen] | otherwise =
454.48 s
[really-safe-money-gen] let resultRational :: Rational
454.48 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10
454.48 s
[really-safe-money-gen] @@ -386,7 +386,7 @@
454.48 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
454.48 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
454.48 s
[really-safe-money-gen] | isInvalid r = Nothing
454.48 s
[really-safe-money-gen] - | r < 0 = Nothing
454.48 s
[really-safe-money-gen] + | True = Nothing
454.48 s
[really-safe-money-gen] | otherwise =
454.48 s
[really-safe-money-gen] let resultRational :: Rational
454.48 s
[really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
454.48 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10
454.48 s
[really-safe-money-gen] @@ -386,7 +386,7 @@
454.48 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
454.48 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
454.48 s
[really-safe-money-gen] | isInvalid r = Nothing
454.48 s
[really-safe-money-gen] - | r < 0 = Nothing
454.48 s
[really-safe-money-gen] + | not (r < 0) = Nothing
454.48 s
[really-safe-money-gen] | otherwise =
454.48 s
[really-safe-money-gen] let resultRational :: Rational
454.48 s
[really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
454.48 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
454.48 s
[really-safe-money-gen] @@ -394,7 +394,7 @@
454.48 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
454.48 s
[really-safe-money-gen] floored :: Natural
454.48 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.48 s
[really-safe-money-gen] - in if ceiled == floored
454.48 s
[really-safe-money-gen] + in if True
454.48 s
[really-safe-money-gen] then
454.48 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.48 s
[really-safe-money-gen] then Nothing
454.48 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
454.48 s
[really-safe-money-gen] @@ -394,7 +394,7 @@
454.48 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
454.48 s
[really-safe-money-gen] floored :: Natural
454.48 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] - in if ceiled == floored
454.49 s
[really-safe-money-gen] + in if False
454.49 s
[really-safe-money-gen] then
454.49 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] then Nothing
454.49 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31
454.49 s
[really-safe-money-gen] @@ -394,7 +394,7 @@
454.49 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] floored :: Natural
454.49 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] - in if ceiled == floored
454.49 s
[really-safe-money-gen] + in if not (ceiled == floored)
454.49 s
[really-safe-money-gen] then
454.49 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] then Nothing
454.49 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
454.49 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
454.49 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] in if ceiled == floored
454.49 s
[really-safe-money-gen] then
454.49 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] + if True
454.49 s
[really-safe-money-gen] then Nothing
454.49 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
454.49 s
[really-safe-money-gen] else Nothing
454.49 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
454.49 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
454.49 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] in if ceiled == floored
454.49 s
[really-safe-money-gen] then
454.49 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] + if False
454.49 s
[really-safe-money-gen] then Nothing
454.49 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
454.49 s
[really-safe-money-gen] else Nothing
454.49 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83
454.49 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
454.49 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] in if ceiled == floored
454.49 s
[really-safe-money-gen] then
454.49 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
454.49 s
[really-safe-money-gen] then Nothing
454.49 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
454.49 s
[really-safe-money-gen] else Nothing
454.49 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10
454.49 s
[really-safe-money-gen] @@ -386,7 +386,7 @@
454.49 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
454.49 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
454.49 s
[really-safe-money-gen] | isInvalid r = Nothing
454.49 s
[really-safe-money-gen] - | r < 0 = Nothing
454.49 s
[really-safe-money-gen] + | r < 1 = Nothing
454.49 s
[really-safe-money-gen] | otherwise =
454.49 s
[really-safe-money-gen] let resultRational :: Rational
454.49 s
[really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
454.49 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:397:11-25
454.49 s
[really-safe-money-gen] @@ -394,12 +394,12 @@
454.49 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] floored :: Natural
454.49 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.49 s
[really-safe-money-gen] - in if ceiled == floored
454.49 s
[really-safe-money-gen] - then
454.49 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] - then Nothing
454.49 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
454.49 s
[really-safe-money-gen] - else Nothing
454.49 s
[really-safe-money-gen] + in if ceiled == floored
454.49 s
[really-safe-money-gen] + then
454.49 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.49 s
[really-safe-money-gen] + then Nothing
454.49 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
454.49 s
[really-safe-money-gen] + else Nothing
454.50 s
[really-safe-money-gen]
454.50 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
454.50 s
[really-safe-money-gen] --
454.50 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:399:15-57
454.50 s
[really-safe-money-gen] @@ -396,9 +396,9 @@
454.50 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
454.50 s
[really-safe-money-gen] in if ceiled == floored
454.50 s
[really-safe-money-gen] then
454.50 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.50 s
[really-safe-money-gen] - then Nothing
454.50 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
454.50 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
454.50 s
[really-safe-money-gen] + then Nothing
454.50 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
454.50 s
[really-safe-money-gen] else Nothing
454.50 s
[really-safe-money-gen]
454.50 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
454.50 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
454.50 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
454.50 s
[really-safe-money-gen] Double ->
454.50 s
[really-safe-money-gen] Maybe Amount
454.50 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
454.50 s
[really-safe-money-gen] - | d < 0 = Nothing
454.50 s
[really-safe-money-gen] + | d < 1 = Nothing
454.50 s
[really-safe-money-gen] | otherwise =
454.50 s
[really-safe-money-gen] let resultDouble :: Double
454.50 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
454.50 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16
454.50 s
[really-safe-money-gen] @@ -324,7 +324,7 @@
454.50 s
[really-safe-money-gen] in go resultDouble
454.50 s
[really-safe-money-gen] where
454.50 s
[really-safe-money-gen] go resultDouble
454.50 s
[really-safe-money-gen] - | isNaN d = Nothing
454.50 s
[really-safe-money-gen] + | True = Nothing
454.50 s
[really-safe-money-gen] | isInfinite d = Nothing
454.50 s
[really-safe-money-gen] | otherwise =
454.50 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
454.50 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16
454.50 s
[really-safe-money-gen] @@ -324,7 +324,7 @@
454.50 s
[really-safe-money-gen] in go resultDouble
454.50 s
[really-safe-money-gen] where
454.50 s
[really-safe-money-gen] go resultDouble
454.50 s
[really-safe-money-gen] - | isNaN d = Nothing
454.50 s
[really-safe-money-gen] + | not (isNaN d) = Nothing
454.50 s
[really-safe-money-gen] | isInfinite d = Nothing
454.50 s
[really-safe-money-gen] | otherwise =
454.50 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
454.50 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21
454.50 s
[really-safe-money-gen] @@ -325,7 +325,7 @@
454.50 s
[really-safe-money-gen] where
454.50 s
[really-safe-money-gen] go resultDouble
454.50 s
[really-safe-money-gen] | isNaN d = Nothing
454.50 s
[really-safe-money-gen] - | isInfinite d = Nothing
454.50 s
[really-safe-money-gen] + | True = Nothing
454.50 s
[really-safe-money-gen] | otherwise =
454.50 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
454.50 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
454.50 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21
454.50 s
[really-safe-money-gen] @@ -325,7 +325,7 @@
454.50 s
[really-safe-money-gen] where
454.50 s
[really-safe-money-gen] go resultDouble
454.50 s
[really-safe-money-gen] | isNaN d = Nothing
454.50 s
[really-safe-money-gen] - | isInfinite d = Nothing
454.50 s
[really-safe-money-gen] + | not (isInfinite d) = Nothing
454.50 s
[really-safe-money-gen] | otherwise =
454.50 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
454.50 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
454.50 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10
454.50 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
454.50 s
[really-safe-money-gen] Double ->
456.87 s
[really-safe-money-gen] Maybe Amount
456.87 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
456.87 s
[really-safe-money-gen] - | d < 0 = Nothing
456.98 s
[really-safe-money-gen] + | True = Nothing
456.98 s
[really-safe-money-gen] | otherwise =
456.98 s
[really-safe-money-gen] let resultDouble :: Double
456.98 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
456.98 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
456.98 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
456.98 s
[really-safe-money-gen] Double ->
456.98 s
[really-safe-money-gen] Maybe Amount
456.98 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
456.98 s
[really-safe-money-gen] - | d < 0 = Nothing
456.98 s
[really-safe-money-gen] + | not (d < 0) = Nothing
456.98 s
[really-safe-money-gen] | otherwise =
456.98 s
[really-safe-money-gen] let resultDouble :: Double
456.98 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
456.98 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
456.98 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
456.98 s
[really-safe-money-gen] | otherwise =
456.98 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
456.98 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
456.98 s
[really-safe-money-gen] - if exponent resultDouble > 65
456.98 s
[really-safe-money-gen] + if exponent resultDouble > 0
456.98 s
[really-safe-money-gen] then Nothing
456.98 s
[really-safe-money-gen] else
456.98 s
[really-safe-money-gen] let ceiled :: Natural
456.98 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
456.98 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
456.98 s
[really-safe-money-gen] | otherwise =
456.98 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
456.98 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
456.98 s
[really-safe-money-gen] - if exponent resultDouble > 65
456.98 s
[really-safe-money-gen] + if exponent resultDouble > 1
456.98 s
[really-safe-money-gen] then Nothing
456.98 s
[really-safe-money-gen] else
456.98 s
[really-safe-money-gen] let ceiled :: Natural
456.98 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
456.98 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
456.99 s
[really-safe-money-gen] | otherwise =
456.99 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
456.99 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
456.99 s
[really-safe-money-gen] - if exponent resultDouble > 65
456.99 s
[really-safe-money-gen] + if exponent resultDouble > -65
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] else
456.99 s
[really-safe-money-gen] let ceiled :: Natural
456.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
456.99 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
456.99 s
[really-safe-money-gen] | otherwise =
456.99 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
456.99 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
456.99 s
[really-safe-money-gen] - if exponent resultDouble > 65
456.99 s
[really-safe-money-gen] + if True
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] else
456.99 s
[really-safe-money-gen] let ceiled :: Natural
456.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
456.99 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
456.99 s
[really-safe-money-gen] | otherwise =
456.99 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
456.99 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
456.99 s
[really-safe-money-gen] - if exponent resultDouble > 65
456.99 s
[really-safe-money-gen] + if False
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] else
456.99 s
[really-safe-money-gen] let ceiled :: Natural
456.99 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40
456.99 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
456.99 s
[really-safe-money-gen] | otherwise =
456.99 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
456.99 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
456.99 s
[really-safe-money-gen] - if exponent resultDouble > 65
456.99 s
[really-safe-money-gen] + if not (exponent resultDouble > 65)
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] else
456.99 s
[really-safe-money-gen] let ceiled :: Natural
456.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
456.99 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
456.99 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] floored :: Natural
456.99 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] - in if ceiled == floored
456.99 s
[really-safe-money-gen] + in if False
456.99 s
[really-safe-money-gen] then
456.99 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
456.99 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
456.99 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] floored :: Natural
456.99 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] - in if ceiled == floored
456.99 s
[really-safe-money-gen] + in if not (ceiled == floored)
456.99 s
[really-safe-money-gen] then
456.99 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
456.99 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
456.99 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] floored :: Natural
456.99 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] - in if ceiled == floored
456.99 s
[really-safe-money-gen] + in if True
456.99 s
[really-safe-money-gen] then
456.99 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
456.99 s
[really-safe-money-gen] then Nothing
456.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
456.99 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
456.99 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
456.99 s
[really-safe-money-gen] in if ceiled == floored
456.99 s
[really-safe-money-gen] then
456.99 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] + if True
457.00 s
[really-safe-money-gen] then Nothing
457.00 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] else Nothing
457.00 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
457.00 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
457.00 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] in if ceiled == floored
457.00 s
[really-safe-money-gen] then
457.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] + if False
457.00 s
[really-safe-money-gen] then Nothing
457.00 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] else Nothing
457.00 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
457.00 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
457.00 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] in if ceiled == floored
457.00 s
[really-safe-money-gen] then
457.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
457.00 s
[really-safe-money-gen] then Nothing
457.00 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] else Nothing
457.00 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:341:23-65
457.00 s
[really-safe-money-gen] @@ -338,9 +338,9 @@
457.00 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] in if ceiled == floored
457.00 s
[really-safe-money-gen] then
457.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] - then Nothing
457.00 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] + then Nothing
457.00 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] else Nothing
457.00 s
[really-safe-money-gen]
457.00 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
457.00 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:339:19-33
457.00 s
[really-safe-money-gen] @@ -336,12 +336,12 @@
457.00 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] floored :: Natural
457.00 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] - in if ceiled == floored
457.00 s
[really-safe-money-gen] - then
457.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] - then Nothing
457.00 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] - else Nothing
457.00 s
[really-safe-money-gen] + in if ceiled == floored
457.00 s
[really-safe-money-gen] + then
457.00 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
457.00 s
[really-safe-money-gen] + then Nothing
457.00 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
457.00 s
[really-safe-money-gen] + else Nothing
457.00 s
[really-safe-money-gen]
457.00 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
457.00 s
[really-safe-money-gen] --
457.00 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:332:11-33
457.00 s
[really-safe-money-gen] @@ -329,19 +329,19 @@
457.00 s
[really-safe-money-gen] | otherwise =
457.00 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
457.00 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
457.00 s
[really-safe-money-gen] - if exponent resultDouble > 65
457.00 s
[really-safe-money-gen] - then Nothing
457.00 s
[really-safe-money-gen] - else
457.00 s
[really-safe-money-gen] - let ceiled :: Natural
457.00 s
[really-safe-money-gen] - ceiled = (ceiling :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] - floored :: Natural
457.00 s
[really-safe-money-gen] - floored = (floor :: Double -> Natural) resultDouble
457.00 s
[really-safe-money-gen] - in if ceiled == floored
457.00 s
[really-safe-money-gen] - then
457.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
458.71 s
[really-safe-money-gen] - then Nothing
458.71 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
458.71 s
[really-safe-money-gen] - else Nothing
458.71 s
[really-safe-money-gen] + if exponent resultDouble > 65
458.71 s
[really-safe-money-gen] + then Nothing
458.71 s
[really-safe-money-gen] + else
458.71 s
[really-safe-money-gen] + let ceiled :: Natural
458.71 s
[really-safe-money-gen] + ceiled = (ceiling :: Double -> Natural) resultDouble
458.71 s
[really-safe-money-gen] + floored :: Natural
458.71 s
[really-safe-money-gen] + floored = (floor :: Double -> Natural) resultDouble
458.71 s
[really-safe-money-gen] + in if ceiled == floored
458.71 s
[really-safe-money-gen] + then
458.71 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
458.71 s
[really-safe-money-gen] + then Nothing
458.71 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
458.71 s
[really-safe-money-gen] + else Nothing
458.71 s
[really-safe-money-gen]
458.71 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
458.71 s
[really-safe-money-gen] --
458.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
458.71 s
[really-safe-money-gen] @@ -287,7 +287,7 @@
458.71 s
[really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
458.71 s
[really-safe-money-gen] -- 1 % 100
458.71 s
[really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
458.71 s
[really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
458.71 s
[really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
458.71 s
[really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
458.71 s
[really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
458.71 s
[really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
458.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
458.71 s
[really-safe-money-gen] @@ -491,7 +491,7 @@
458.71 s
[really-safe-money-gen] let maxBoundI :: Integer
458.71 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
458.71 s
[really-safe-money-gen] r :: Integer
458.71 s
[really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
458.71 s
[really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
458.71 s
[really-safe-money-gen] in if r > maxBoundI
458.71 s
[really-safe-money-gen] then Nothing
458.71 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
458.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
458.71 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
458.71 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
458.71 s
[really-safe-money-gen] r :: Integer
458.71 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
458.71 s
[really-safe-money-gen] - in if r > maxBoundI
458.71 s
[really-safe-money-gen] + in if False
458.71 s
[really-safe-money-gen] then Nothing
458.72 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
458.72 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
458.72 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
458.72 s
[really-safe-money-gen] r :: Integer
458.72 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
458.72 s
[really-safe-money-gen] - in if r > maxBoundI
458.72 s
[really-safe-money-gen] + in if not (r > maxBoundI)
458.72 s
[really-safe-money-gen] then Nothing
458.72 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:495:7-66
458.72 s
[really-safe-money-gen] @@ -492,9 +492,9 @@
458.72 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
458.72 s
[really-safe-money-gen] r :: Integer
458.72 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
458.72 s
[really-safe-money-gen] - in if r > maxBoundI
458.72 s
[really-safe-money-gen] - then Nothing
458.72 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
458.72 s
[really-safe-money-gen] + in if r > maxBoundI
458.72 s
[really-safe-money-gen] + then Nothing
458.72 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] -- | Add two amounts of money.
458.72 s
[really-safe-money-gen] --
458.72 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
458.72 s
[really-safe-money-gen] @@ -247,7 +247,7 @@
458.72 s
[really-safe-money-gen] -- >>> zero
458.72 s
[really-safe-money-gen] -- Amount 0
458.72 s
[really-safe-money-gen] zero :: Amount
458.72 s
[really-safe-money-gen] -zero = Amount 0
458.72 s
[really-safe-money-gen] +zero = Amount 1
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
458.72 s
[really-safe-money-gen] --
458.72 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
458.72 s
[really-safe-money-gen] @@ -658,7 +658,7 @@
458.72 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
458.72 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
458.72 s
[really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
458.72 s
[really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
458.72 s
[really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
458.72 s
[really-safe-money-gen] fraction r (Amount a) f =
458.72 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
458.72 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
458.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
458.72 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
458.72 s
[really-safe-money-gen] maxBoundN :: Natural
458.72 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
458.72 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
458.72 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
458.72 s
[really-safe-money-gen] + in ( if True
458.72 s
[really-safe-money-gen] then Nothing
458.72 s
[really-safe-money-gen] else Just result,
458.72 s
[really-safe-money-gen] actualRate
458.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
458.72 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
458.72 s
[really-safe-money-gen] maxBoundN :: Natural
458.72 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
458.72 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
458.72 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
458.72 s
[really-safe-money-gen] + in ( if False
458.72 s
[really-safe-money-gen] then Nothing
458.72 s
[really-safe-money-gen] else Just result,
458.72 s
[really-safe-money-gen] actualRate
458.72 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
458.72 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
458.72 s
[really-safe-money-gen] maxBoundN :: Natural
458.72 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
458.72 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
458.72 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
458.72 s
[really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
458.72 s
[really-safe-money-gen] then Nothing
458.72 s
[really-safe-money-gen] else Just result,
458.72 s
[really-safe-money-gen] actualRate
458.72 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:681:9-27
458.72 s
[really-safe-money-gen] @@ -678,9 +678,9 @@
458.72 s
[really-safe-money-gen] maxBoundN :: Natural
458.72 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
458.72 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
458.72 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
458.72 s
[really-safe-money-gen] - then Nothing
458.72 s
[really-safe-money-gen] - else Just result,
458.72 s
[really-safe-money-gen] + in ( if roundedResult > maxBoundN
458.72 s
[really-safe-money-gen] + then Nothing
458.72 s
[really-safe-money-gen] + else Just result,
458.72 s
[really-safe-money-gen] actualRate
458.72 s
[really-safe-money-gen] )
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
458.72 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
458.72 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
458.72 s
[really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
458.72 s
[really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
458.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
458.72 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
458.72 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
458.72 s
[really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
458.72 s
[really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
458.72 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
458.72 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
458.72 s
[really-safe-money-gen]
458.72 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
458.72 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
458.72 s
[really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
458.72 s
[really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
458.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
458.72 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
458.72 s
[really-safe-money-gen] case ad of
458.72 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
458.72 s
[really-safe-money-gen] declare "The larger chunks are larger" $
458.72 s
[really-safe-money-gen] - a1 > a2
458.73 s
[really-safe-money-gen] + True
458.73 s
[really-safe-money-gen] _ -> valid
458.73 s
[really-safe-money-gen] ]
458.73 s
[really-safe-money-gen]
458.73 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
458.73 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
458.73 s
[really-safe-money-gen] case ad of
458.73 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
458.73 s
[really-safe-money-gen] declare "The larger chunks are larger" $
458.73 s
[really-safe-money-gen] - a1 > a2
458.73 s
[really-safe-money-gen] + False
458.73 s
[really-safe-money-gen] _ -> valid
458.73 s
[really-safe-money-gen] ]
458.73 s
[really-safe-money-gen]
458.73 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
458.73 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
458.73 s
[really-safe-money-gen] case ad of
458.73 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
458.73 s
[really-safe-money-gen] declare "The larger chunks are larger" $
458.73 s
[really-safe-money-gen] - a1 > a2
458.73 s
[really-safe-money-gen] + not (a1 > a2)
458.73 s
[really-safe-money-gen] _ -> valid
458.73 s
[really-safe-money-gen] ]
458.73 s
[really-safe-money-gen]
458.73 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
458.73 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
458.73 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
458.73 s
[really-safe-money-gen] validate ad =
458.73 s
[really-safe-money-gen] mconcat
458.73 s
[really-safe-money-gen] - [ genericValidate ad,
458.73 s
[really-safe-money-gen] - case ad of
458.73 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
458.73 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
458.73 s
[really-safe-money-gen] - a1 > a2
458.73 s
[really-safe-money-gen] - _ -> valid
458.73 s
[really-safe-money-gen] - ]
458.73 s
[really-safe-money-gen] + []
458.73 s
[really-safe-money-gen]
458.73 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
458.73 s
[really-safe-money-gen]
458.73 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
458.73 s
[really-safe-money-gen] @@ -600,13 +600,13 @@
458.73 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
458.73 s
[really-safe-money-gen] validate ad =
458.73 s
[really-safe-money-gen] mconcat
458.73 s
[really-safe-money-gen] - [ genericValidate ad,
458.73 s
[really-safe-money-gen] - case ad of
458.73 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
458.73 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
458.73 s
[really-safe-money-gen] - a1 > a2
458.73 s
[really-safe-money-gen] - _ -> valid
458.73 s
[really-safe-money-gen] - ]
461.71 s
[really-safe-money-gen] + [ genericValidate ad,
461.71 s
[really-safe-money-gen] + case ad of
461.71 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
461.71 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
461.71 s
[really-safe-money-gen] + a1 > a2
461.71 s
[really-safe-money-gen] + _ -> valid
461.71 s
[really-safe-money-gen] + ]
461.71 s
[really-safe-money-gen]
461.71 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
461.71 s
[really-safe-money-gen]
461.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
461.71 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
461.72 s
[really-safe-money-gen] fromDecimalLiteral dl = do
461.72 s
[really-safe-money-gen] irat <-
461.72 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
461.72 s
[really-safe-money-gen] - in if numerator r == 0
461.72 s
[really-safe-money-gen] + in if numerator r == 1
461.72 s
[really-safe-money-gen] then Nothing
461.72 s
[really-safe-money-gen] else pure r
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
461.72 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
461.72 s
[really-safe-money-gen] fromDecimalLiteral dl = do
461.72 s
[really-safe-money-gen] irat <-
461.72 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
461.72 s
[really-safe-money-gen] - in if numerator r == 0
461.72 s
[really-safe-money-gen] + in if True
461.72 s
[really-safe-money-gen] then Nothing
461.72 s
[really-safe-money-gen] else pure r
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
461.72 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
461.72 s
[really-safe-money-gen] fromDecimalLiteral dl = do
461.72 s
[really-safe-money-gen] irat <-
461.72 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
461.72 s
[really-safe-money-gen] - in if numerator r == 0
461.72 s
[really-safe-money-gen] + in if False
461.72 s
[really-safe-money-gen] then Nothing
461.72 s
[really-safe-money-gen] else pure r
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
461.72 s
[really-safe-money-gen] @@ -89,7 +89,7 @@
461.72 s
[really-safe-money-gen] else pure r
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] rat <-
461.72 s
[really-safe-money-gen] - let r = 1 / irat
461.72 s
[really-safe-money-gen] + let r = 0 / irat
461.72 s
[really-safe-money-gen] in if r < 0
461.72 s
[really-safe-money-gen] then Nothing
461.72 s
[really-safe-money-gen] else Just r
461.72 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
461.72 s
[really-safe-money-gen] @@ -84,9 +84,9 @@
461.72 s
[really-safe-money-gen] fromDecimalLiteral dl = do
461.72 s
[really-safe-money-gen] irat <-
461.72 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
461.72 s
[really-safe-money-gen] - in if numerator r == 0
461.72 s
[really-safe-money-gen] - then Nothing
461.72 s
[really-safe-money-gen] - else pure r
461.72 s
[really-safe-money-gen] + in if numerator r == 0
461.72 s
[really-safe-money-gen] + then Nothing
461.72 s
[really-safe-money-gen] + else pure r
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] rat <-
461.72 s
[really-safe-money-gen] let r = 1 / irat
461.72 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
461.72 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
461.72 s
[really-safe-money-gen] fromDecimalLiteral dl = do
461.72 s
[really-safe-money-gen] irat <-
461.72 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
461.72 s
[really-safe-money-gen] - in if numerator r == 0
461.72 s
[really-safe-money-gen] + in if not (numerator r == 0)
461.72 s
[really-safe-money-gen] then Nothing
461.72 s
[really-safe-money-gen] else pure r
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
461.72 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
461.72 s
[really-safe-money-gen]
461.72 s
[really-safe-money-gen] rat <-
461.73 s
[really-safe-money-gen] let r = 1 / irat
461.73 s
[really-safe-money-gen] - in if r < 0
461.73 s
[really-safe-money-gen] + in if r < 1
461.73 s
[really-safe-money-gen] then Nothing
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
461.73 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] rat <-
461.73 s
[really-safe-money-gen] let r = 1 / irat
461.73 s
[really-safe-money-gen] - in if r < 0
461.73 s
[really-safe-money-gen] + in if True
461.73 s
[really-safe-money-gen] then Nothing
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
461.73 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] rat <-
461.73 s
[really-safe-money-gen] let r = 1 / irat
461.73 s
[really-safe-money-gen] - in if r < 0
461.73 s
[really-safe-money-gen] + in if not (r < 0)
461.73 s
[really-safe-money-gen] then Nothing
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
461.73 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] rat <-
461.73 s
[really-safe-money-gen] let r = 1 / irat
461.73 s
[really-safe-money-gen] - in if r < 0
461.73 s
[really-safe-money-gen] + in if False
461.73 s
[really-safe-money-gen] then Nothing
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
461.73 s
[really-safe-money-gen] @@ -90,9 +90,9 @@
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] rat <-
461.73 s
[really-safe-money-gen] let r = 1 / irat
461.73 s
[really-safe-money-gen] - in if r < 0
461.73 s
[really-safe-money-gen] - then Nothing
461.73 s
[really-safe-money-gen] - else Just r
461.73 s
[really-safe-money-gen] + in if r < 0
461.73 s
[really-safe-money-gen] + then Nothing
461.73 s
[really-safe-money-gen] + else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] fac <-
461.73 s
[really-safe-money-gen] if denominator rat == 1
461.73 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
461.73 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] fac <-
461.73 s
[really-safe-money-gen] - if denominator rat == 1
461.73 s
[really-safe-money-gen] + if denominator rat == 0
461.73 s
[really-safe-money-gen] then Just (numerator rat)
461.73 s
[really-safe-money-gen] else Nothing
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
461.73 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] fac <-
461.73 s
[really-safe-money-gen] - if denominator rat == 1
461.73 s
[really-safe-money-gen] + if denominator rat == -1
461.73 s
[really-safe-money-gen] then Just (numerator rat)
461.73 s
[really-safe-money-gen] else Nothing
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
461.73 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] fac <-
461.73 s
[really-safe-money-gen] - if denominator rat == 1
461.73 s
[really-safe-money-gen] + if False
461.73 s
[really-safe-money-gen] then Just (numerator rat)
461.73 s
[really-safe-money-gen] else Nothing
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
461.73 s
[really-safe-money-gen] @@ -95,9 +95,9 @@
461.73 s
[really-safe-money-gen] else Just r
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] fac <-
461.73 s
[really-safe-money-gen] - if denominator rat == 1
461.73 s
[really-safe-money-gen] - then Just (numerator rat)
461.73 s
[really-safe-money-gen] - else Nothing
461.73 s
[really-safe-money-gen] + if denominator rat == 1
461.73 s
[really-safe-money-gen] + then Just (numerator rat)
461.73 s
[really-safe-money-gen] + else Nothing
461.73 s
[really-safe-money-gen]
461.73 s
[really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
461.73 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
461.73 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
461.73 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
461.74 s
[really-safe-money-gen] else Just r
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] fac <-
461.74 s
[really-safe-money-gen] - if denominator rat == 1
461.74 s
[really-safe-money-gen] + if not (denominator rat == 1)
461.74 s
[really-safe-money-gen] then Just (numerator rat)
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
461.74 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
461.74 s
[really-safe-money-gen] then Just (numerator rat)
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
461.74 s
[really-safe-money-gen] + if True
461.74 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
461.74 s
[really-safe-money-gen] @@ -89,7 +89,7 @@
461.74 s
[really-safe-money-gen] else pure r
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] rat <-
461.74 s
[really-safe-money-gen] - let r = 1 / irat
461.74 s
[really-safe-money-gen] + let r = -1 / irat
461.74 s
[really-safe-money-gen] in if r < 0
461.74 s
[really-safe-money-gen] then Nothing
461.74 s
[really-safe-money-gen] else Just r
461.74 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
461.74 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
461.74 s
[really-safe-money-gen] then Just (numerator rat)
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
461.74 s
[really-safe-money-gen] + if False
461.74 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
461.74 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
461.74 s
[really-safe-money-gen] then Just (numerator rat)
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
461.74 s
[really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
461.74 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
461.74 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
461.74 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
461.74 s
[really-safe-money-gen] r :: Integer
461.74 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
461.74 s
[really-safe-money-gen] - in if r > maxBoundI
461.74 s
[really-safe-money-gen] + in if True
461.74 s
[really-safe-money-gen] then Nothing
461.74 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
461.74 s
[really-safe-money-gen] @@ -64,7 +64,7 @@
461.74 s
[really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
461.74 s
[really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
461.74 s
[really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
461.74 s
[really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
461.74 s
[really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
461.74 s
[really-safe-money-gen] -- TODO explain that it's the inverse.
461.74 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
461.74 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
461.74 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
461.74 s
[really-safe-money-gen] mconcat
461.74 s
[really-safe-money-gen] [ genericValidate qf,
461.74 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
461.74 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
461.74 s
[really-safe-money-gen] ]
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] instance NFData QuantisationFactor
461.74 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
461.74 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
461.74 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
461.74 s
[really-safe-money-gen] mconcat
461.74 s
[really-safe-money-gen] [ genericValidate qf,
461.74 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
461.74 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
461.74 s
[really-safe-money-gen] ]
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] instance NFData QuantisationFactor
461.74 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
461.74 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
461.74 s
[really-safe-money-gen] else Just r
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] fac <-
461.74 s
[really-safe-money-gen] - if denominator rat == 1
461.74 s
[really-safe-money-gen] + if True
461.74 s
[really-safe-money-gen] then Just (numerator rat)
461.74 s
[really-safe-money-gen] else Nothing
461.74 s
[really-safe-money-gen]
461.74 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
461.74 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
461.74 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
461.74 s
[really-safe-money-gen] mconcat
461.75 s
[really-safe-money-gen] [ genericValidate qf,
461.75 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
461.75 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
461.75 s
[really-safe-money-gen] ]
461.75 s
[really-safe-money-gen]
461.75 s
[really-safe-money-gen] instance NFData QuantisationFactor
461.75 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
461.75 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
461.75 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
461.75 s
[really-safe-money-gen] mconcat
461.75 s
[really-safe-money-gen] [ genericValidate qf,
461.75 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
461.75 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
461.75 s
[really-safe-money-gen] ]
461.75 s
[really-safe-money-gen]
461.75 s
[really-safe-money-gen] instance NFData QuantisationFactor
461.75 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
461.75 s
[really-safe-money-gen] @@ -64,7 +64,7 @@
461.75 s
[really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
463.60 s
[really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
463.69 s
[really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
463.69 s
[really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
463.69 s
[really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
463.69 s
[really-safe-money-gen]
463.69 s
[really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
463.69 s
[really-safe-money-gen] -- TODO explain that it's the inverse.
463.69 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
463.69 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
463.69 s
[really-safe-money-gen] instance Validity QuantisationFactor where
463.69 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
463.69 s
[really-safe-money-gen] mconcat
463.69 s
[really-safe-money-gen] - [ genericValidate qf,
463.69 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
463.69 s
[really-safe-money-gen] - ]
463.69 s
[really-safe-money-gen] + []
463.69 s
[really-safe-money-gen]
463.69 s
[really-safe-money-gen] instance NFData QuantisationFactor
463.69 s
[really-safe-money-gen]
463.69 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
463.69 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
463.69 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
463.69 s
[really-safe-money-gen] DistributedZero -> DistributedZero
463.69 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
463.69 s
[really-safe-money-gen] - if a >= zero
463.69 s
[really-safe-money-gen] + if False
463.69 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.69 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.69 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
463.69 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:421:32-33
463.69 s
[really-safe-money-gen] @@ -418,7 +418,7 @@
463.69 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
463.69 s
[really-safe-money-gen] multiply factor account =
463.69 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
463.69 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
463.69 s
[really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
463.69 s
[really-safe-money-gen] (EQ, _) -> const zero
463.69 s
[really-safe-money-gen] (_, EQ) -> const zero
463.69 s
[really-safe-money-gen] (GT, GT) -> Positive
463.69 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
463.69 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
463.69 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.69 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.69 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
463.69 s
[really-safe-money-gen] - if a >= zero
463.69 s
[really-safe-money-gen] + if False
463.69 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
463.70 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
463.70 s
[really-safe-money-gen]
463.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
463.70 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
463.70 s
[really-safe-money-gen] fraction rounding account f =
463.70 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
463.70 s
[really-safe-money-gen] ro =
463.70 s
[really-safe-money-gen] - if f >= 0
463.70 s
[really-safe-money-gen] + if False
463.70 s
[really-safe-money-gen] then rounding
463.70 s
[really-safe-money-gen] else case rounding of
463.70 s
[really-safe-money-gen] RoundUp -> RoundDown
463.70 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
463.70 s
[really-safe-money-gen] @@ -36,9 +36,9 @@
463.70 s
[really-safe-money-gen] instance Validity QuantisationFactor where
463.70 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
463.70 s
[really-safe-money-gen] mconcat
463.70 s
[really-safe-money-gen] - [ genericValidate qf,
463.70 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
463.70 s
[really-safe-money-gen] - ]
463.70 s
[really-safe-money-gen] + [ genericValidate qf,
463.70 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 0
463.70 s
[really-safe-money-gen] + ]
463.70 s
[really-safe-money-gen]
463.70 s
[really-safe-money-gen] instance NFData QuantisationFactor
463.70 s
[really-safe-money-gen]
463.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
463.70 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
463.70 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
463.70 s
[really-safe-money-gen] DistributedZero -> DistributedZero
463.70 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
463.70 s
[really-safe-money-gen] - if a >= zero
463.70 s
[really-safe-money-gen] + if True
463.70 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.70 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.70 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
463.70 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23
463.70 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
463.70 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
463.70 s
[really-safe-money-gen] DistributedZero -> DistributedZero
463.70 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
463.70 s
[really-safe-money-gen] - if a >= zero
463.70 s
[really-safe-money-gen] + if not (a >= zero)
463.70 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.70 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.70 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
463.70 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23
463.70 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
463.70 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.70 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.70 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
463.70 s
[really-safe-money-gen] - if a >= zero
463.70 s
[really-safe-money-gen] + if not (a >= zero)
463.70 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
463.70 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
463.70 s
[really-safe-money-gen]
463.70 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:451:11-76
463.70 s
[really-safe-money-gen] @@ -448,9 +448,9 @@
463.70 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
463.70 s
[really-safe-money-gen] DistributedZero -> DistributedZero
463.70 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
463.70 s
[really-safe-money-gen] - if a >= zero
463.70 s
[really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.70 s
[really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.70 s
[really-safe-money-gen] + if a >= zero
463.70 s
[really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
463.70 s
[really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
463.70 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
463.70 s
[really-safe-money-gen] if a >= zero
463.70 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
463.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
463.70 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
463.70 s
[really-safe-money-gen] fraction rounding account f =
463.70 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
463.70 s
[really-safe-money-gen] ro =
463.70 s
[really-safe-money-gen] - if f >= 0
463.70 s
[really-safe-money-gen] + if True
463.70 s
[really-safe-money-gen] then rounding
463.70 s
[really-safe-money-gen] else case rounding of
463.70 s
[really-safe-money-gen] RoundUp -> RoundDown
463.70 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:495:9-41
463.70 s
[really-safe-money-gen] @@ -492,12 +492,12 @@
463.70 s
[really-safe-money-gen] fraction rounding account f =
463.70 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
463.70 s
[really-safe-money-gen] ro =
463.70 s
[really-safe-money-gen] - if f >= 0
463.70 s
[really-safe-money-gen] - then rounding
463.70 s
[really-safe-money-gen] - else case rounding of
463.70 s
[really-safe-money-gen] - RoundUp -> RoundDown
463.70 s
[really-safe-money-gen] - RoundDown -> RoundUp
463.70 s
[really-safe-money-gen] - RoundNearest -> RoundNearest
463.70 s
[really-safe-money-gen] + if f >= 0
463.70 s
[really-safe-money-gen] + then rounding
463.71 s
[really-safe-money-gen] + else case rounding of
463.71 s
[really-safe-money-gen] + RoundUp -> RoundDown
463.71 s
[really-safe-money-gen] + RoundDown -> RoundUp
463.71 s
[really-safe-money-gen] + RoundNearest -> RoundNearest
463.71 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
463.71 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
463.71 s
[really-safe-money-gen] in if f >= 0
463.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16
463.71 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
463.71 s
[really-safe-money-gen] RoundNearest -> RoundNearest
463.71 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
463.71 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
463.71 s
[really-safe-money-gen] - in if f >= 0
463.71 s
[really-safe-money-gen] + in if f >= 1
463.71 s
[really-safe-money-gen] then (ma, r)
463.71 s
[really-safe-money-gen] else (negate <$> ma, -r)
463.71 s
[really-safe-money-gen]
463.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
463.71 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
463.71 s
[really-safe-money-gen] RoundNearest -> RoundNearest
463.71 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
463.71 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
463.71 s
[really-safe-money-gen] - in if f >= 0
463.71 s
[really-safe-money-gen] + in if True
463.71 s
[really-safe-money-gen] then (ma, r)
463.71 s
[really-safe-money-gen] else (negate <$> ma, -r)
463.71 s
[really-safe-money-gen]
463.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
463.71 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
463.71 s
[really-safe-money-gen] RoundNearest -> RoundNearest
463.71 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
463.71 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
463.71 s
[really-safe-money-gen] - in if f >= 0
463.71 s
[really-safe-money-gen] + in if False
463.71 s
[really-safe-money-gen] then (ma, r)
463.71 s
[really-safe-money-gen] else (negate <$> ma, -r)
463.71 s
[really-safe-money-gen]
463.71 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16
463.71 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
463.71 s
[really-safe-money-gen] RoundNearest -> RoundNearest
463.71 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
463.71 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
463.71 s
[really-safe-money-gen] - in if f >= 0
463.71 s
[really-safe-money-gen] + in if not (f >= 0)
463.71 s
[really-safe-money-gen] then (ma, r)
463.71 s
[really-safe-money-gen] else (negate <$> ma, -r)
463.71 s
[really-safe-money-gen]
463.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
466.28 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
466.28 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
466.28 s
[really-safe-money-gen] fromRational quantisationFactor r =
466.28 s
[really-safe-money-gen] let r' = Prelude.abs r
466.28 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
466.28 s
[really-safe-money-gen] + f = if True then Positive else Negative
466.28 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
466.28 s
[really-safe-money-gen]
466.28 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
466.28 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:233:11-48
466.28 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
466.28 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
466.28 s
[really-safe-money-gen] fromRational quantisationFactor r =
466.28 s
[really-safe-money-gen] let r' = Prelude.abs r
466.28 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
466.28 s
[really-safe-money-gen] + f = if r >= 0 then Positive else Negative
466.28 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
466.28 s
[really-safe-money-gen]
466.28 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
466.28 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
466.28 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
466.28 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
466.28 s
[really-safe-money-gen] a :: Integer
466.28 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
466.28 s
[really-safe-money-gen] - in if a > maxBoundI
466.28 s
[really-safe-money-gen] + in if True
466.28 s
[really-safe-money-gen] then Nothing
466.28 s
[really-safe-money-gen] else
466.28 s
[really-safe-money-gen] let w :: Word64
466.28 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
466.28 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
466.28 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
466.28 s
[really-safe-money-gen] fromDouble quantisationFactor d =
466.28 s
[really-safe-money-gen] let d' = Prelude.abs d
466.28 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
466.28 s
[really-safe-money-gen] + f = if True then Positive else Negative
466.28 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
466.28 s
[really-safe-money-gen]
466.28 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
466.28 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
466.28 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
466.28 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
466.28 s
[really-safe-money-gen] fromDouble quantisationFactor d =
466.28 s
[really-safe-money-gen] let d' = Prelude.abs d
466.28 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
466.28 s
[really-safe-money-gen] + f = if False then Positive else Negative
466.28 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
466.28 s
[really-safe-money-gen]
466.28 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
466.28 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
466.28 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
466.28 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
466.28 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
466.28 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
466.28 s
[really-safe-money-gen] - if a >= zero
466.28 s
[really-safe-money-gen] + if True
466.28 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
466.28 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20
466.29 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
466.29 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
466.29 s
[really-safe-money-gen] fromRational quantisationFactor r =
466.29 s
[really-safe-money-gen] let r' = Prelude.abs r
466.29 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
466.29 s
[really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
466.29 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
466.29 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:503:7-33
466.29 s
[really-safe-money-gen] @@ -500,9 +500,9 @@
466.29 s
[really-safe-money-gen] RoundNearest -> RoundNearest
466.29 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
466.29 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
466.29 s
[really-safe-money-gen] - in if f >= 0
466.29 s
[really-safe-money-gen] - then (ma, r)
466.29 s
[really-safe-money-gen] - else (negate <$> ma, -r)
466.29 s
[really-safe-money-gen] + in if f >= 0
466.29 s
[really-safe-money-gen] + then (ma, r)
466.29 s
[really-safe-money-gen] + else (negate <$> ma, -r)
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
466.29 s
[really-safe-money-gen] --
466.29 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18
466.29 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
466.29 s
[really-safe-money-gen] fraction rounding account f =
466.29 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
466.29 s
[really-safe-money-gen] ro =
466.29 s
[really-safe-money-gen] - if f >= 0
466.29 s
[really-safe-money-gen] + if not (f >= 0)
466.29 s
[really-safe-money-gen] then rounding
466.29 s
[really-safe-money-gen] else case rounding of
466.29 s
[really-safe-money-gen] RoundUp -> RoundDown
466.29 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20
466.29 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
466.29 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
466.29 s
[really-safe-money-gen] fromRational quantisationFactor r =
466.29 s
[really-safe-money-gen] let r' = Prelude.abs r
466.29 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
466.29 s
[really-safe-money-gen] + f = if r >= 1 then Positive else Negative
466.29 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
466.29 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:455:11-136
466.29 s
[really-safe-money-gen] @@ -452,9 +452,9 @@
466.29 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
466.29 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
466.29 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
466.29 s
[really-safe-money-gen] - if a >= zero
466.29 s
[really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
466.29 s
[really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
466.29 s
[really-safe-money-gen] + if a >= zero
466.29 s
[really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
466.29 s
[really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20
466.29 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
466.29 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
466.29 s
[really-safe-money-gen] fromDouble quantisationFactor d =
466.29 s
[really-safe-money-gen] let d' = Prelude.abs d
466.29 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
466.29 s
[really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
466.29 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
466.29 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:197:11-48
466.29 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
466.29 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
466.29 s
[really-safe-money-gen] fromDouble quantisationFactor d =
466.29 s
[really-safe-money-gen] let d' = Prelude.abs d
466.29 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
466.29 s
[really-safe-money-gen] + f = if d >= 0 then Positive else Negative
466.29 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
466.29 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
466.29 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
466.29 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
466.29 s
[really-safe-money-gen] a :: Integer
466.29 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
466.29 s
[really-safe-money-gen] - in if a > maxBoundI
466.29 s
[really-safe-money-gen] + in if False
466.29 s
[really-safe-money-gen] then Nothing
466.29 s
[really-safe-money-gen] else
466.29 s
[really-safe-money-gen] let w :: Word64
466.29 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
466.29 s
[really-safe-money-gen] @@ -44,7 +44,7 @@
466.29 s
[really-safe-money-gen] where
466.29 s
[really-safe-money-gen] f :: String -> Either String Amount
466.29 s
[really-safe-money-gen] f s = case readMaybe s of
466.29 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
466.29 s
[really-safe-money-gen] + Nothing -> Left $ unwords []
466.29 s
[really-safe-money-gen] Just i ->
466.29 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
466.29 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.29 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23
466.29 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
466.29 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
466.29 s
[really-safe-money-gen] a :: Integer
466.29 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
466.29 s
[really-safe-money-gen] - in if a > maxBoundI
466.29 s
[really-safe-money-gen] + in if not (a > maxBoundI)
466.29 s
[really-safe-money-gen] then Nothing
466.29 s
[really-safe-money-gen] else
466.29 s
[really-safe-money-gen] let w :: Word64
466.29 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
466.29 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
466.29 s
[really-safe-money-gen] amount :: Amount
466.29 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
466.29 s
[really-safe-money-gen] in Just $
466.29 s
[really-safe-money-gen] - if i >= 0
466.29 s
[really-safe-money-gen] + if True
466.29 s
[really-safe-money-gen] then Positive amount
466.29 s
[really-safe-money-gen] else Negative amount
466.29 s
[really-safe-money-gen]
466.29 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
466.29 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
466.29 s
[really-safe-money-gen] amount :: Amount
466.29 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
466.29 s
[really-safe-money-gen] in Just $
466.29 s
[really-safe-money-gen] - if i >= 0
466.29 s
[really-safe-money-gen] + if False
466.29 s
[really-safe-money-gen] then Positive amount
466.29 s
[really-safe-money-gen] else Negative amount
466.30 s
[really-safe-money-gen]
466.30 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:131:17-39
466.30 s
[really-safe-money-gen] @@ -128,9 +128,9 @@
466.30 s
[really-safe-money-gen] amount :: Amount
466.30 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
466.30 s
[really-safe-money-gen] in Just $
466.30 s
[really-safe-money-gen] - if i >= 0
466.30 s
[really-safe-money-gen] - then Positive amount
466.30 s
[really-safe-money-gen] - else Negative amount
466.30 s
[really-safe-money-gen] + if i >= 0
466.30 s
[really-safe-money-gen] + then Positive amount
466.30 s
[really-safe-money-gen] + else Negative amount
466.30 s
[really-safe-money-gen]
466.49 s
[really-safe-money-gen] -- | Turn an amount into a positive account
466.49 s
[really-safe-money-gen] --
466.49 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:123:7-39
466.49 s
[really-safe-money-gen] @@ -120,17 +120,17 @@
466.49 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
466.49 s
[really-safe-money-gen] a :: Integer
466.49 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
466.49 s
[really-safe-money-gen] - in if a > maxBoundI
466.49 s
[really-safe-money-gen] - then Nothing
466.49 s
[really-safe-money-gen] - else
466.49 s
[really-safe-money-gen] - let w :: Word64
466.49 s
[really-safe-money-gen] - w = (fromIntegral :: Integer -> Word64) a
466.49 s
[really-safe-money-gen] - amount :: Amount
466.49 s
[really-safe-money-gen] - amount = Amount.fromMinimalQuantisations w
466.49 s
[really-safe-money-gen] - in Just $
466.49 s
[really-safe-money-gen] - if i >= 0
466.49 s
[really-safe-money-gen] - then Positive amount
466.49 s
[really-safe-money-gen] - else Negative amount
466.49 s
[really-safe-money-gen] + in if a > maxBoundI
466.49 s
[really-safe-money-gen] + then Nothing
466.49 s
[really-safe-money-gen] + else
466.49 s
[really-safe-money-gen] + let w :: Word64
466.49 s
[really-safe-money-gen] + w = (fromIntegral :: Integer -> Word64) a
466.49 s
[really-safe-money-gen] + amount :: Amount
466.49 s
[really-safe-money-gen] + amount = Amount.fromMinimalQuantisations w
466.49 s
[really-safe-money-gen] + in Just $
466.49 s
[really-safe-money-gen] + if i >= 0
466.49 s
[really-safe-money-gen] + then Positive amount
466.49 s
[really-safe-money-gen] + else Negative amount
466.49 s
[really-safe-money-gen]
466.49 s
[really-safe-money-gen] -- | Turn an amount into a positive account
466.49 s
[really-safe-money-gen] --
466.49 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
466.49 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
466.49 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
466.49 s
[really-safe-money-gen] fromRational quantisationFactor r =
466.49 s
[really-safe-money-gen] let r' = Prelude.abs r
466.49 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
466.49 s
[really-safe-money-gen] + f = if False then Positive else Negative
466.49 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
466.49 s
[really-safe-money-gen]
466.50 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
466.50 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
466.50 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
466.50 s
[really-safe-money-gen] f s = case readMaybe s of
466.50 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
466.50 s
[really-safe-money-gen] Just i ->
466.50 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
466.50 s
[really-safe-money-gen] + if False
466.50 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.50 s
[really-safe-money-gen] else
466.50 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
466.50 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
466.50 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
466.50 s
[really-safe-money-gen] f s = case readMaybe s of
466.50 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
466.50 s
[really-safe-money-gen] Just i ->
466.50 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
466.50 s
[really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
466.50 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.50 s
[really-safe-money-gen] else
466.50 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
466.50 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
466.50 s
[really-safe-money-gen] @@ -50,7 +50,7 @@
466.50 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.50 s
[really-safe-money-gen] else
466.50 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
466.50 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.50 s
[really-safe-money-gen] + then Left $ unwords []
466.50 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.50 s
[really-safe-money-gen] g :: Amount -> String
466.50 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
466.50 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
466.50 s
[really-safe-money-gen] @@ -50,7 +50,7 @@
466.50 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.50 s
[really-safe-money-gen] else
466.50 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
466.50 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.50 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.50 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.50 s
[really-safe-money-gen] g :: Amount -> String
466.50 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
466.50 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
466.50 s
[really-safe-money-gen] @@ -46,12 +46,12 @@
466.50 s
[really-safe-money-gen] f s = case readMaybe s of
466.50 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
466.50 s
[really-safe-money-gen] Just i ->
466.50 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
466.50 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.50 s
[really-safe-money-gen] - else
466.50 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
466.50 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.50 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.50 s
[really-safe-money-gen] + if (i :: Integer) < toInteger (minBound :: Word64)
466.50 s
[really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.50 s
[really-safe-money-gen] + else
466.50 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
466.50 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.51 s
[really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.51 s
[really-safe-money-gen] g :: Amount -> String
466.51 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
466.51 s
[really-safe-money-gen]
466.51 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
466.51 s
[really-safe-money-gen] @@ -47,7 +47,7 @@
466.51 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
466.51 s
[really-safe-money-gen] Just i ->
466.51 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
466.51 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.51 s
[really-safe-money-gen] + then Left $ unwords []
466.51 s
[really-safe-money-gen] else
466.51 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
466.51 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.51 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
466.51 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
466.51 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
466.51 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.51 s
[really-safe-money-gen] else
466.51 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
466.51 s
[really-safe-money-gen] + if False
466.51 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.51 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.51 s
[really-safe-money-gen] g :: Amount -> String
466.51 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
466.51 s
[really-safe-money-gen] @@ -48,7 +48,7 @@
466.51 s
[really-safe-money-gen] where
466.51 s
[really-safe-money-gen] f :: String -> Either String Account
466.51 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
466.51 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
466.51 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
466.51 s
[really-safe-money-gen] Just a -> Right a
466.51 s
[really-safe-money-gen] g :: Account -> String
466.51 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
466.51 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
466.51 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
466.51 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
466.51 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.51 s
[really-safe-money-gen] else
466.51 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
466.51 s
[really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
466.51 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.51 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.51 s
[really-safe-money-gen] g :: Amount -> String
466.51 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
466.51 s
[really-safe-money-gen] @@ -49,9 +49,9 @@
466.51 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
466.51 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.51 s
[really-safe-money-gen] else
466.51 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
466.51 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.51 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.51 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
466.51 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
466.51 s
[really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
466.51 s
[really-safe-money-gen] g :: Amount -> String
466.51 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
466.51 s
[really-safe-money-gen]
466.51 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
466.51 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
466.51 s
[really-safe-money-gen] f s = case readMaybe s of
466.51 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
466.51 s
[really-safe-money-gen] Just i ->
466.51 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
466.51 s
[really-safe-money-gen] + if True
466.51 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
466.51 s
[really-safe-money-gen] else
466.51 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
466.51 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
466.51 s
[really-safe-money-gen] @@ -37,5 +37,5 @@
466.51 s
[really-safe-money-gen] where
466.51 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
466.51 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
514.56 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["CouKilled: 240
514.57 s
[really-safe-money-gen] Survived: 34
514.57 s
[really-safe-money-gen] Uncovered: 21
514.57 s
[really-safe-money-gen]
514.57 s
[really-safe-money-gen] Surviving mutations:
514.57 s
[really-safe-money-gen]
514.57 s
[really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
514.57 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
514.57 s
[really-safe-money-gen] amount :: Amount
514.57 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
514.57 s
[really-safe-money-gen] in Just $
514.57 s
[really-safe-money-gen] - if i >= 0
514.57 s
[really-safe-money-gen] + if i >= 1
514.57 s
[really-safe-money-gen] then Positive amount
514.57 s
[really-safe-money-gen] else Negative amount
514.57 s
[really-safe-money-gen]
514.57 s
[really-safe-money-gen]
514.57 s
[really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
514.57 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
514.57 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
514.57 s
[really-safe-money-gen] a :: Integer
514.58 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
514.58 s
[really-safe-money-gen] - in if a > maxBoundI
514.58 s
[really-safe-money-gen] + in if False
514.58 s
[really-safe-money-gen] then Nothing
514.58 s
[really-safe-money-gen] else
514.58 s
[really-safe-money-gen] let w :: Word64
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
514.58 s
[really-safe-money-gen] @@ -36,9 +36,9 @@
514.58 s
[really-safe-money-gen] instance Validity QuantisationFactor where
514.58 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] - [ genericValidate qf,
514.58 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
514.58 s
[really-safe-money-gen] - ]
514.58 s
[really-safe-money-gen] + [ genericValidate qf,
514.58 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 0
514.58 s
[really-safe-money-gen] + ]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance NFData QuantisationFactor
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
514.58 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
514.58 s
[really-safe-money-gen] instance Validity QuantisationFactor where
514.58 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] - [ genericValidate qf,
514.58 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
514.58 s
[really-safe-money-gen] - ]
514.58 s
[really-safe-money-gen] + []
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance NFData QuantisationFactor
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
514.58 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
514.58 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] [ genericValidate qf,
514.58 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
514.58 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
514.58 s
[really-safe-money-gen] ]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance NFData QuantisationFactor
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] IntLit at src/Money/QuantisationFactor.hs:93:16-17
514.58 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] rat <-
514.58 s
[really-safe-money-gen] let r = 1 / irat
514.58 s
[really-safe-money-gen] - in if r < 0
514.58 s
[really-safe-money-gen] + in if r < 1
514.58 s
[really-safe-money-gen] then Nothing
514.58 s
[really-safe-money-gen] else Just r
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
514.58 s
[really-safe-money-gen] @@ -600,13 +600,13 @@
514.58 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
514.58 s
[really-safe-money-gen] validate ad =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] - [ genericValidate ad,
514.58 s
[really-safe-money-gen] - case ad of
514.58 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
514.58 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
514.58 s
[really-safe-money-gen] - a1 > a2
514.58 s
[really-safe-money-gen] - _ -> valid
514.58 s
[really-safe-money-gen] - ]
514.58 s
[really-safe-money-gen] + [ genericValidate ad,
514.58 s
[really-safe-money-gen] + case ad of
514.58 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
514.58 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
514.58 s
[really-safe-money-gen] + a1 > a2
514.58 s
[really-safe-money-gen] + _ -> valid
514.58 s
[really-safe-money-gen] + ]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
514.58 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
514.58 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
514.58 s
[really-safe-money-gen] validate ad =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] - [ genericValidate ad,
514.58 s
[really-safe-money-gen] - case ad of
514.58 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
514.58 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
514.58 s
[really-safe-money-gen] - a1 > a2
514.58 s
[really-safe-money-gen] - _ -> valid
514.58 s
[really-safe-money-gen] - ]
514.58 s
[really-safe-money-gen] + []
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
514.58 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
514.58 s
[really-safe-money-gen] case ad of
514.58 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
514.58 s
[really-safe-money-gen] declare "The larger chunks are larger" $
514.58 s
[really-safe-money-gen] - a1 > a2
514.58 s
[really-safe-money-gen] + True
514.58 s
[really-safe-money-gen] _ -> valid
514.58 s
[really-safe-money-gen] ]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
514.58 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
514.58 s
[really-safe-money-gen] | otherwise =
514.58 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
514.58 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
514.58 s
[really-safe-money-gen] - if exponent resultDouble > 65
514.58 s
[really-safe-money-gen] + if False
514.58 s
[really-safe-money-gen] then Nothing
514.58 s
[really-safe-money-gen] else
514.58 s
[really-safe-money-gen] let ceiled :: Natural
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
514.58 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
514.58 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
514.58 s
[really-safe-money-gen] r :: Integer
514.58 s
[really-safe-money-gen] r = i1 - i2
514.58 s
[really-safe-money-gen] - in if r < 0
514.58 s
[really-safe-money-gen] + in if True
514.58 s
[really-safe-money-gen] then Nothing
514.58 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
514.58 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
514.58 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
514.58 s
[really-safe-money-gen] r :: Integer
514.58 s
[really-safe-money-gen] r = i1 - i2
514.58 s
[really-safe-money-gen] - in if r < 0
514.58 s
[really-safe-money-gen] + in if r < 1
514.58 s
[really-safe-money-gen] then Nothing
514.58 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
514.58 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
514.58 s
[really-safe-money-gen] -- Nothing
514.58 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
514.58 s
[really-safe-money-gen] fromRational (n :% d)
514.58 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
514.58 s
[really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
514.58 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
514.58 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
514.58 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
514.58 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
514.58 s
[really-safe-money-gen] Just False -> Nothing
514.58 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
514.58 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
514.58 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
514.58 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
514.58 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
514.58 s
[really-safe-money-gen] toWord dl = do
514.58 s
[really-safe-money-gen] n <- toNatural dl
514.58 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
514.58 s
[really-safe-money-gen] + guard $ True
514.58 s
[really-safe-money-gen] pure $ fromIntegral n
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
514.58 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
514.58 s
[really-safe-money-gen] toInt dl = do
514.58 s
[really-safe-money-gen] n <- toInteger dl
514.58 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
514.58 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
514.58 s
[really-safe-money-gen] + guard $ True
514.58 s
[really-safe-money-gen] pure $ fromIntegral n
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
514.58 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
514.58 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
514.58 s
[really-safe-money-gen] toInt dl = do
514.58 s
[really-safe-money-gen] n <- toInteger dl
514.58 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
514.58 s
[really-safe-money-gen] + guard $ True
514.58 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
514.58 s
[really-safe-money-gen] pure $ fromIntegral n
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
514.58 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
514.58 s
[really-safe-money-gen] pure $ fromIntegral n
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
514.58 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
514.58 s
[really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
514.58 s
[really-safe-money-gen] signSignum = \case
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
514.58 s
[really-safe-money-gen] @@ -60,11 +60,11 @@
514.58 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
514.58 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] - [ genericValidate ma,
514.58 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
514.58 s
[really-safe-money-gen] - declare "The amount is not zero" $
514.58 s
[really-safe-money-gen] - a /= Amount.zero
514.58 s
[really-safe-money-gen] - ]
514.58 s
[really-safe-money-gen] + [ genericValidate ma,
514.58 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
514.58 s
[really-safe-money-gen] + declare "The amount is not zero" $
514.58 s
[really-safe-money-gen] + a /= Amount.zero
514.58 s
[really-safe-money-gen] + ]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
514.58 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
514.58 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
514.58 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
514.58 s
[really-safe-money-gen] mconcat
514.58 s
[really-safe-money-gen] - [ genericValidate ma,
514.58 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
514.58 s
[really-safe-money-gen] - declare "The amount is not zero" $
514.58 s
[really-safe-money-gen] - a /= Amount.zero
514.58 s
[really-safe-money-gen] - ]
514.58 s
[really-safe-money-gen] + []
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
514.58 s
[really-safe-money-gen]
514.58 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
514.59 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
514.59 s
[really-safe-money-gen] [ genericValidate ma,
514.59 s
[really-safe-money-gen] decorateMap m $ \_ a ->
514.59 s
[really-safe-money-gen] declare "The amount is not zero" $
514.59 s
[really-safe-money-gen] - a /= Amount.zero
514.59 s
[really-safe-money-gen] + True
514.59 s
[really-safe-money-gen] ]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
514.59 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
514.59 s
[really-safe-money-gen] Just a -> do
514.59 s
[really-safe-money-gen] r <- Amount.add a amount
514.59 s
[really-safe-money-gen] Just $
514.59 s
[really-safe-money-gen] - if r == Amount.zero
514.59 s
[really-safe-money-gen] + if False
514.59 s
[really-safe-money-gen] then M.delete currency m
514.59 s
[really-safe-money-gen] else M.insert currency r m
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] CondFlip at src/Money/MultiAmount.hs:119:9-37
514.59 s
[really-safe-money-gen] @@ -116,9 +116,9 @@
514.59 s
[really-safe-money-gen] Just a -> do
514.59 s
[really-safe-money-gen] r <- Amount.subtract a amount
514.59 s
[really-safe-money-gen] Just $
514.59 s
[really-safe-money-gen] - if r == Amount.zero
514.59 s
[really-safe-money-gen] - then M.delete currency m
514.59 s
[really-safe-money-gen] - else M.insert currency r m
514.59 s
[really-safe-money-gen] + if r == Amount.zero
514.59 s
[really-safe-money-gen] + then M.delete currency m
514.59 s
[really-safe-money-gen] + else M.insert currency r m
514.59 s
[really-safe-money-gen] ld not read string as a DecimalLiteral:", s]
514.59 s
[really-safe-money-gen] + Nothing -> Left $ unwords []
514.59 s
[really-safe-money-gen] Just a -> Right a
514.59 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
514.59 s
[really-safe-money-gen] @@ -37,5 +37,5 @@
514.59 s
[really-safe-money-gen] where
514.59 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
514.59 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
514.59 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
514.59 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
514.59 s
[really-safe-money-gen] Just a -> Right a
514.59 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
514.59 s
[really-safe-money-gen] @@ -48,7 +48,7 @@
514.59 s
[really-safe-money-gen] where
514.59 s
[really-safe-money-gen] f :: String -> Either String Account
514.59 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
514.59 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
514.59 s
[really-safe-money-gen] + Nothing -> Left $ unwords []
514.59 s
[really-safe-money-gen] Just a -> Right a
514.59 s
[really-safe-money-gen] g :: Account -> String
514.59 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
514.59 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
514.59 s
[really-safe-money-gen] @@ -44,7 +44,7 @@
514.59 s
[really-safe-money-gen] where
514.59 s
[really-safe-money-gen] f :: String -> Either String Amount
514.59 s
[really-safe-money-gen] f s = case readMaybe s of
514.59 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
514.59 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
514.59 s
[really-safe-money-gen] Just i ->
514.59 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
514.59 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
514.59 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26
514.59 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
514.59 s
[really-safe-money-gen] amount :: Amount
514.59 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
514.59 s
[really-safe-money-gen] in Just $
514.59 s
[really-safe-money-gen] - if i >= 0
514.59 s
[really-safe-money-gen] + if not (i >= 0)
514.59 s
[really-safe-money-gen] then Positive amount
514.59 s
[really-safe-money-gen] else Negative amount
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
514.59 s
[really-safe-money-gen] @@ -47,7 +47,7 @@
514.59 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
514.59 s
[really-safe-money-gen] Just i ->
514.59 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
514.59 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
514.59 s
[really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
514.59 s
[really-safe-money-gen] else
514.59 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
514.59 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
514.59 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26
514.59 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
514.59 s
[really-safe-money-gen] amount :: Amount
514.59 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
514.59 s
[really-safe-money-gen] in Just $
514.59 s
[really-safe-money-gen] - if i >= 0
514.59 s
[really-safe-money-gen] + if i >= 1
514.59 s
[really-safe-money-gen] then Positive amount
514.59 s
[really-safe-money-gen] else Negative amount
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
514.59 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
514.59 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
514.59 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
514.59 s
[really-safe-money-gen] else
514.59 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
514.59 s
[really-safe-money-gen] + if True
514.59 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
514.59 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
514.59 s
[really-safe-money-gen] g :: Amount -> String
514.59 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18
514.59 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
514.59 s
[really-safe-money-gen] fraction rounding account f =
514.59 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
514.59 s
[really-safe-money-gen] ro =
514.59 s
[really-safe-money-gen] - if f >= 0
514.59 s
[really-safe-money-gen] + if f >= 1
514.59 s
[really-safe-money-gen] then rounding
514.59 s
[really-safe-money-gen] else case rounding of
514.59 s
[really-safe-money-gen] RoundUp -> RoundDown
514.59 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20
514.59 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
514.59 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
514.59 s
[really-safe-money-gen] fromDouble quantisationFactor d =
514.59 s
[really-safe-money-gen] let d' = Prelude.abs d
514.59 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
514.59 s
[really-safe-money-gen] + f = if d >= 1 then Positive else Negative
514.59 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
514.59 s
[really-safe-money-gen] --
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
514.59 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
514.59 s
[really-safe-money-gen] Just a -> do
514.59 s
[really-safe-money-gen] r <- Amount.subtract a amount
514.59 s
[really-safe-money-gen] Just $
514.59 s
[really-safe-money-gen] - if r == Amount.zero
514.59 s
[really-safe-money-gen] + if not (r == Amount.zero)
514.59 s
[really-safe-money-gen] then M.delete currency m
514.59 s
[really-safe-money-gen] else M.insert currency r m
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
514.59 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
514.59 s
[really-safe-money-gen] Just a -> do
514.59 s
[really-safe-money-gen] r <- Amount.subtract a amount
514.59 s
[really-safe-money-gen] Just $
514.59 s
[really-safe-money-gen] - if r == Amount.zero
514.59 s
[really-safe-money-gen] + if False
514.59 s
[really-safe-money-gen] then M.delete currency m
514.59 s
[really-safe-money-gen] else M.insert currency r m
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
514.59 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
514.59 s
[really-safe-money-gen] Just a -> do
514.59 s
[really-safe-money-gen] r <- Amount.subtract a amount
514.59 s
[really-safe-money-gen] Just $
514.59 s
[really-safe-money-gen] - if r == Amount.zero
514.59 s
[really-safe-money-gen] + if True
514.59 s
[really-safe-money-gen] then M.delete currency m
514.59 s
[really-safe-money-gen] else M.insert currency r m
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
514.59 s
[really-safe-money-gen] @@ -34,9 +34,9 @@
514.59 s
[really-safe-money-gen] instance Validity ConversionRate where
514.59 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
514.59 s
[really-safe-money-gen] mconcat
514.59 s
[really-safe-money-gen] - [ genericValidate cr,
514.59 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
514.59 s
[really-safe-money-gen] - ]
514.59 s
[really-safe-money-gen] + [ genericValidate cr,
514.59 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 0
514.59 s
[really-safe-money-gen] + ]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] instance NFData ConversionRate
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen]
514.59 s
[really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
514.59 s
[really-safe-money-gen] @@ -34,9 +34,7 @@
514.60 s
[really-safe-money-gen] instance Validity ConversionRate where
514.60 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
514.60 s
[really-safe-money-gen] mconcat
514.60 s
[really-safe-money-gen] - [ genericValidate cr,
514.60 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
514.60 s
[really-safe-money-gen] - ]
514.60 s
[really-safe-money-gen] + []
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] instance NFData ConversionRate
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57
514.60 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
514.60 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
514.60 s
[really-safe-money-gen] mconcat
514.60 s
[really-safe-money-gen] [ genericValidate cr,
514.60 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
514.60 s
[really-safe-money-gen] + declare "The rate is nonzero" $ True
514.60 s
[really-safe-money-gen] ]
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] instance NFData ConversionRate
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
514.60 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] -- | One-to-one conversion rate
514.60 s
[really-safe-money-gen] oneToOne :: ConversionRate
514.60 s
[really-safe-money-gen] -oneToOne = ConversionRate 1
514.60 s
[really-safe-money-gen] +oneToOne = ConversionRate 0
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
514.60 s
[really-safe-money-gen] --
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
514.60 s
[really-safe-money-gen] @@ -63,11 +63,11 @@
514.60 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
514.60 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
514.60 s
[really-safe-money-gen] mconcat
514.60 s
[really-safe-money-gen] - [ genericValidate ma,
514.60 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
514.60 s
[really-safe-money-gen] - declare "The account is not zero" $
514.60 s
[really-safe-money-gen] - a /= Account.zero
514.60 s
[really-safe-money-gen] - ]
514.60 s
[really-safe-money-gen] + [ genericValidate ma,
514.60 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
514.60 s
[really-safe-money-gen] + declare "The account is not zero" $
514.60 s
[really-safe-money-gen] + a /= Account.zero
514.60 s
[really-safe-money-gen] + ]
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] -- TODO no empty currencies
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
514.60 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
514.60 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
514.60 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
514.60 s
[really-safe-money-gen] mconcat
514.60 s
[really-safe-money-gen] - [ genericValidate ma,
514.60 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
514.60 s
[really-safe-money-gen] - declare "The account is not zero" $
514.60 s
[really-safe-money-gen] - a /= Account.zero
514.60 s
[really-safe-money-gen] - ]
514.60 s
[really-safe-money-gen] + []
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] -- TODO no empty currencies
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
514.60 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
514.60 s
[really-safe-money-gen] [ genericValidate ma,
514.60 s
[really-safe-money-gen] decorateMap m $ \_ a ->
514.60 s
[really-safe-money-gen] declare "The account is not zero" $
514.60 s
[really-safe-money-gen] - a /= Account.zero
514.60 s
[really-safe-money-gen] + True
514.60 s
[really-safe-money-gen] ]
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] -- TODO no empty currencies
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
514.60 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
514.60 s
[really-safe-money-gen] fromAccount currency amount =
514.60 s
[really-safe-money-gen] - if amount == Account.zero
514.60 s
[really-safe-money-gen] + if True
514.60 s
[really-safe-money-gen] then zero
514.60 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
514.60 s
[really-safe-money-gen]
514.60 s
[really-safe-money-gen] checkPhase completed in 5 minutes 45 seconds
514.60 s
[really-safe-money-gen] Phase: haddockPhase
514.75 s
[really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
514.75 s
[really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
514.75 s
[really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
514.75 s
[really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
514.96 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
515.07 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
515.07 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
515.08 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
515.09 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
515.10 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
515.10 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
515.11 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
515.11 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
515.13 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
515.14 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
515.14 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
515.15 s
[really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
515.18 s
[really-safe-money-gen] Haddock coverage:
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
515.18 s
[really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
515.18 s
[really-safe-money-gen] Missing documentation for:
515.18 s
[really-safe-money-gen] Module header
515.18 s
[really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
515.27 s
[really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.Amount.Amount
515.27 s
[really-safe-money-gen] - Money.Amount.Distribution
515.27 s
[really-safe-money-gen] - Money.Amount.Rounding
515.27 s
[really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.Account.Account
515.27 s
[really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.AccountOf.AccountOf
515.27 s
[really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.AmountOf.AmountOf
515.27 s
[really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.ConversionRate.ConversionRate
515.27 s
[really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
515.27 s
[really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
515.27 s
[really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.Currency.Currency
515.27 s
[really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.MultiAmount.MultiAmount
515.27 s
[really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Money.MultiAccount.MultiAccount
515.27 s
[really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
515.27 s
[really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
519.65 s
[really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
519.65 s
[really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
519.74 s
[really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
519.74 s
[really-safe-money-gen] Phase: installPhase
519.81 s
[really-safe-money-gen] Installing library in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
520.12 s
[really-safe-money-gen] Phase: fixupPhase
520.14 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0
520.15 s
[really-safe-money-gen] shrinking /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h-ghc9.10.3.so
520.16 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0...
520.18 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0
520.19 s
[really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/jbb1diq6a708496dvvcall823vbysrxd-really-safe-money-gen-0.0.0.0/lib
520.24 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc
520.25 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc...
520.27 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/sjb64qh17vx2zg2hn92lp46n5dnpapk7-really-safe-money-gen-0.0.0.0-doc
520.27 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/vg6f0y05y5k8w3rnrxizrh8zi7pbr6cx-really-safe-money-gen-0.0.0.0-report
520.28 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/vg6f0y05y5k8w3rnrxizrh8zi7pbr6cx-really-safe-money-gen-0.0.0.0-report...
520.30 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/vg6f0y05y5k8w3rnrxizrh8zi7pbr6cx-really-safe-money-gen-0.0.0.0-report
520.42 s
Progress: 12 of 13 built