0.02 s
$ /nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout --kill-after=15s 7200s /nix/store/99b1z08awpxj8b6mzggn59gp1shljnff-nix-2.34.5/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link git+https://github.com/NorfairKing/sydtest?ref=mutation-testing&rev=f4e3b1708494f4658b32dcbaa6a779a0860b2840#checks.x86_64-linux.mutation-really-safe-money --print-build-logs
0.07 s
warning: ignoring untrusted flake configuration setting 'extra-substituters'.
0.07 s
Pass '--accept-flake-config' to trust it
0.07 s
warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'.
0.07 s
Pass '--accept-flake-config' to trust it
0.54 s
error (ignored): SQLite database '/var/cache/private/nix-ci-worker/eval-cache-v6/e28c825a69929d98af04f8a4c65bfea23fce8d55bae8392437213de08e4f13a0.sqlite ' is busy
1.33 s
2.84 s
Building really-safe-money
3.04 s
[really-safe-money] Phase: setupCompilerEnvironmentPhase
3.05 s
[really-safe-money] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
3.29 s
[really-safe-money] Phase: unpackPhase
3.29 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
3.29 s
[really-safe-money] source root is really-safe-money-0.0.0.0
3.30 s
[really-safe-money] setting SOURCE_DATE_EPOCH to timestamp 1778687704 of file "really-safe-money-0.0.0.0/src/Numeric/DecimalLiteral.hs"
3.30 s
[really-safe-money] Phase: patchPhase
3.31 s
[really-safe-money] Phase: compileBuildDriverPhase
3.31 s
[really-safe-money] setupCompileFlags: -package-db=/build/tmp.WjxVhChhdW/setup-package.conf.d -threaded
3.36 s
[really-safe-money] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.WjxVhChhdW/Main.o )
3.40 s
[really-safe-money] [2 of 2] Linking Setup
4.57 s
[really-safe-money] Phase: updateAutotoolsGnuConfigScriptsPhase
4.58 s
[really-safe-money] Phase: configurePhase
4.58 s
[really-safe-money] configureFlags: --verbose --prefix=/nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.WjxVhChhdW/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
4.59 s
[really-safe-money] Using Parsec parser
4.59 s
[really-safe-money] Configuring really-safe-money-0.0.0.0...
5.14 s
[really-safe-money] Dependency base >=4.7 && <5: using base-4.20.2.0
5.16 s
[really-safe-money] Dependency containers: using containers-0.7
5.16 s
[really-safe-money] Dependency deepseq: using deepseq-1.5.0.0
5.16 s
[really-safe-money] Dependency validity: using validity-0.12.1.0
5.16 s
[really-safe-money] Dependency validity-containers: using validity-containers-0.5.0.5
5.16 s
[really-safe-money] Dependency validity-scientific: using validity-scientific-0.2.0.3
5.16 s
[really-safe-money] Source component graph: component lib
5.16 s
[really-safe-money] Configured component graph:
5.16 s
[really-safe-money] component really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
5.16 s
[really-safe-money] include base-4.20.2.0-64da
5.16 s
[really-safe-money] include containers-0.7-504a
5.16 s
[really-safe-money] include deepseq-1.5.0.0-9a2c
5.16 s
[really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
5.16 s
[really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
5.16 s
[really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
5.16 s
[really-safe-money] Linked component graph:
5.16 s
[really-safe-money] unit really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
5.16 s
[really-safe-money] include base-4.20.2.0-64da
5.16 s
[really-safe-money] include containers-0.7-504a
5.16 s
[really-safe-money] include deepseq-1.5.0.0-9a2c
5.16 s
[really-safe-money] include validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
5.16 s
[really-safe-money] include validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
5.16 s
[really-safe-money] include validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
5.16 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
5.16 s
[really-safe-money] Ready component graph:
5.16 s
[really-safe-money] definite really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
5.16 s
[really-safe-money] depends base-4.20.2.0-64da
5.16 s
[really-safe-money] depends containers-0.7-504a
5.16 s
[really-safe-money] depends deepseq-1.5.0.0-9a2c
5.16 s
[really-safe-money] depends validity-0.12.1.0-2vJMqyxn6Ae2B1jlP90HgP
5.16 s
[really-safe-money] depends validity-containers-0.5.0.5-JMisIHg6jT0HAhS7h7vTA4
5.16 s
[really-safe-money] depends validity-scientific-0.2.0.3-6oQtdkDOQFR80MBRT1UQ1R
5.16 s
[really-safe-money] Using Cabal-3.12.1.0 compiled by ghc-9.10
5.16 s
[really-safe-money] Using compiler: ghc-9.10.3
5.16 s
[really-safe-money] Using install prefix:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0
5.16 s
[really-safe-money] Executables installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/bin
5.16 s
[really-safe-money] Libraries installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-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
5.16 s
[really-safe-money] Dynamic Libraries installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
5.16 s
[really-safe-money] Private executables installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/libexec/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
5.16 s
[really-safe-money] Data files installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/share/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
5.16 s
[really-safe-money] Documentation installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/share/doc/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-0.0.0.0
5.16 s
[really-safe-money] Configuration files installed in:
5.16 s
[really-safe-money] /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/etc
5.16 s
[really-safe-money] No alex found
5.16 s
[really-safe-money] Using ar found on system at:
5.16 s
[really-safe-money] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
5.16 s
[really-safe-money] No c2hs found
5.16 s
[really-safe-money] No cpphs found
5.16 s
[really-safe-money] No doctest found
5.16 s
[really-safe-money] Using gcc version 14.3.0 given by user at:
5.16 s
[really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
5.16 s
[really-safe-money] Using ghc version 9.10.3 found on system at:
5.16 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
5.16 s
[really-safe-money] Using ghc-pkg version 9.10.3 found on system at:
5.16 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
5.16 s
[really-safe-money] No ghcjs found
5.16 s
[really-safe-money] No ghcjs-pkg found
5.16 s
[really-safe-money] No greencard found
5.16 s
[really-safe-money] Using haddock version 2.31.1 found on system at:
5.16 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
5.16 s
[really-safe-money] No happy found
5.16 s
[really-safe-money] Using haskell-suite found on system at: haskell-suite-dummy-location
5.16 s
[really-safe-money] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
5.16 s
[really-safe-money] No hmake found
5.16 s
[really-safe-money] Using hpc version 0.69 found on system at:
5.16 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
5.16 s
[really-safe-money] Using hsc2hs version 0.68.10 found on system at:
5.17 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
5.17 s
[really-safe-money] Using hscolour version 1.25 found on system at:
5.17 s
[really-safe-money] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
5.17 s
[really-safe-money] No jhc found
5.17 s
[really-safe-money] Using ld found on system at:
5.17 s
[really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
5.17 s
[really-safe-money] No pkg-config found
5.17 s
[really-safe-money] Using runghc version 9.10.3 found on system at:
5.17 s
[really-safe-money] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
5.17 s
[really-safe-money] Using strip version 2.44 found on system at:
5.17 s
[really-safe-money] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
5.17 s
[really-safe-money] Using tar found on system at:
5.17 s
[really-safe-money] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
5.17 s
[really-safe-money] No uhc found
5.30 s
[really-safe-money] Phase: buildPhase
5.30 s
[really-safe-money] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest
5.35 s
[really-safe-money] Preprocessing library for really-safe-money-0.0.0.0...
5.35 s
[really-safe-money] Building library for really-safe-money-0.0.0.0...
5.50 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 )
5.81 s
[really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
5.81 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
5.81 s
[really-safe-money] @@ -393,5 +393,5 @@
5.81 s
[really-safe-money] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
5.81 s
[really-safe-money] where
5.81 s
[really-safe-money] go = \case
5.81 s
[really-safe-money] - Nothing -> Just True
5.81 s
[really-safe-money] + Nothing -> Just False
5.81 s
[really-safe-money] s -> s
5.83 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
5.83 s
[really-safe-money] @@ -365,7 +365,7 @@
5.83 s
[really-safe-money] setMinimumDigits wantedDigits dl =
5.83 s
[really-safe-money] let currentDigits :: Word8
5.83 s
[really-safe-money] currentDigits = digits dl
5.83 s
[really-safe-money] - in if wantedDigits <= currentDigits
5.83 s
[really-safe-money] + in if True
5.83 s
[really-safe-money] then dl
5.83 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
5.83 s
[really-safe-money] where
5.83 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
5.83 s
[really-safe-money] @@ -365,7 +365,7 @@
5.83 s
[really-safe-money] setMinimumDigits wantedDigits dl =
5.83 s
[really-safe-money] let currentDigits :: Word8
5.83 s
[really-safe-money] currentDigits = digits dl
5.83 s
[really-safe-money] - in if wantedDigits <= currentDigits
5.83 s
[really-safe-money] + in if False
5.83 s
[really-safe-money] then dl
5.83 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
5.83 s
[really-safe-money] where
5.83 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
5.83 s
[really-safe-money] @@ -365,7 +365,7 @@
5.83 s
[really-safe-money] setMinimumDigits wantedDigits dl =
5.83 s
[really-safe-money] let currentDigits :: Word8
5.83 s
[really-safe-money] currentDigits = digits dl
5.83 s
[really-safe-money] - in if wantedDigits <= currentDigits
5.83 s
[really-safe-money] + in if not (wantedDigits <= currentDigits)
5.83 s
[really-safe-money] then dl
5.83 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
5.83 s
[really-safe-money] where
5.83 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
5.83 s
[really-safe-money] @@ -365,9 +365,9 @@
5.83 s
[really-safe-money] setMinimumDigits wantedDigits dl =
5.83 s
[really-safe-money] let currentDigits :: Word8
5.83 s
[really-safe-money] currentDigits = digits dl
5.83 s
[really-safe-money] - in if wantedDigits <= currentDigits
5.83 s
[really-safe-money] - then dl
5.83 s
[really-safe-money] - else increaseDigits (wantedDigits - currentDigits) dl
5.83 s
[really-safe-money] + in if wantedDigits <= currentDigits
5.83 s
[really-safe-money] + then dl
5.83 s
[really-safe-money] + else increaseDigits (wantedDigits - currentDigits) dl
5.83 s
[really-safe-money] where
5.83 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
5.83 s
[really-safe-money] increaseDigits 0 = id
5.83 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
5.83 s
[really-safe-money] @@ -372,7 +372,7 @@
5.83 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
5.83 s
[really-safe-money] increaseDigits 0 = id
5.83 s
[really-safe-money] increaseDigits w = \case
5.83 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
5.83 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
5.83 s
[really-safe-money]
5.83 s
[really-safe-money] -- | Ensures that a positive literal has no sign
5.83 s
[really-safe-money] --
5.83 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
5.83 s
[really-safe-money] @@ -372,7 +372,7 @@
5.83 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
5.83 s
[really-safe-money] increaseDigits 0 = id
5.83 s
[really-safe-money] increaseDigits w = \case
5.83 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
5.84 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Ensures that a positive literal has no sign
5.84 s
[really-safe-money] --
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
5.84 s
[really-safe-money] @@ -334,7 +334,7 @@
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money] +numSign a = if a >= 1 then Nothing else Just False
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
5.84 s
[really-safe-money] signSignum = \case
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
5.84 s
[really-safe-money] @@ -334,7 +334,7 @@
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money] +numSign a = if True then Nothing else Just False
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
5.84 s
[really-safe-money] signSignum = \case
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
5.84 s
[really-safe-money] @@ -334,7 +334,7 @@
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money] +numSign a = if False then Nothing else Just False
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
5.84 s
[really-safe-money] signSignum = \case
5.84 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
5.84 s
[really-safe-money] @@ -334,7 +334,7 @@
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money] +numSign a = if not (a >= 0) then Nothing else Just False
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
5.84 s
[really-safe-money] signSignum = \case
5.84 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
5.84 s
[really-safe-money] @@ -334,7 +334,7 @@
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just True
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
5.84 s
[really-safe-money] signSignum = \case
5.84 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
5.84 s
[really-safe-money] @@ -334,7 +334,7 @@
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just False
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
5.84 s
[really-safe-money] signSignum = \case
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
5.84 s
[really-safe-money] @@ -329,7 +329,7 @@
5.84 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
5.84 s
[really-safe-money] toInt dl = do
5.84 s
[really-safe-money] n <- toInteger dl
5.84 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
5.84 s
[really-safe-money] + guard $ True
5.84 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
5.84 s
[really-safe-money] @@ -329,7 +329,7 @@
5.84 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
5.84 s
[really-safe-money] toInt dl = do
5.84 s
[really-safe-money] n <- toInteger dl
5.84 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
5.84 s
[really-safe-money] + guard $ False
5.84 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
5.84 s
[really-safe-money] @@ -329,7 +329,7 @@
5.84 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
5.84 s
[really-safe-money] toInt dl = do
5.84 s
[really-safe-money] n <- toInteger dl
5.84 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
5.84 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Int))
5.84 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
5.84 s
[really-safe-money] @@ -330,7 +330,7 @@
5.84 s
[really-safe-money] toInt dl = do
5.84 s
[really-safe-money] n <- toInteger dl
5.84 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
5.84 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
5.84 s
[really-safe-money] + guard $ True
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
5.84 s
[really-safe-money] @@ -330,7 +330,7 @@
5.84 s
[really-safe-money] toInt dl = do
5.84 s
[really-safe-money] n <- toInteger dl
5.84 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
5.84 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
5.84 s
[really-safe-money] + guard $ False
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
5.84 s
[really-safe-money] @@ -330,7 +330,7 @@
5.84 s
[really-safe-money] toInt dl = do
5.84 s
[really-safe-money] n <- toInteger dl
5.84 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
5.84 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
5.84 s
[really-safe-money] + guard $ not (n >= fromIntegral (minBound :: Int))
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
5.84 s
[really-safe-money] @@ -312,7 +312,7 @@
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from an 'Integer'
5.84 s
[really-safe-money] fromInteger :: Integer -> DecimalLiteral
5.84 s
[really-safe-money] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
5.84 s
[really-safe-money] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into an 'Integer'
5.84 s
[really-safe-money] toInteger :: DecimalLiteral -> Maybe Integer
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
5.84 s
[really-safe-money] @@ -301,7 +301,7 @@
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
5.84 s
[really-safe-money] fromNatural :: Natural -> DecimalLiteral
5.84 s
[really-safe-money] -fromNatural n = DecimalLiteral Nothing n 0
5.84 s
[really-safe-money] +fromNatural n = DecimalLiteral Nothing n 1
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Natural'
5.84 s
[really-safe-money] toNatural :: DecimalLiteral -> Maybe Natural
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
5.84 s
[really-safe-money] @@ -296,7 +296,7 @@
5.84 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
5.84 s
[really-safe-money] toWord dl = do
5.84 s
[really-safe-money] n <- toNatural dl
5.84 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
5.84 s
[really-safe-money] + guard $ True
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
5.84 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
5.84 s
[really-safe-money] @@ -296,7 +296,7 @@
5.84 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
5.84 s
[really-safe-money] toWord dl = do
5.84 s
[really-safe-money] n <- toNatural dl
5.84 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
5.84 s
[really-safe-money] + guard $ False
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
5.84 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
5.84 s
[really-safe-money] @@ -296,7 +296,7 @@
5.84 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
5.84 s
[really-safe-money] toWord dl = do
5.84 s
[really-safe-money] n <- toNatural dl
5.84 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
5.84 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Word))
5.84 s
[really-safe-money] pure $ fromIntegral n
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
5.84 s
[really-safe-money] @@ -286,7 +286,7 @@
5.84 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
5.84 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] Just False -> Nothing
5.84 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money] + _ -> Just $ fromIntegral m / (0 ^ e)
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
5.84 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
5.84 s
[really-safe-money] @@ -286,7 +286,7 @@
5.84 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
5.84 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] Just False -> Nothing
5.84 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money] + _ -> Just $ fromIntegral m / (1 ^ e)
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
5.84 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
5.84 s
[really-safe-money] @@ -286,7 +286,7 @@
5.84 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
5.84 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] Just False -> Nothing
5.84 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money] + _ -> Just $ fromIntegral m / (-10 ^ e)
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
5.84 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
5.84 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
5.84 s
[really-safe-money] @@ -284,9 +284,9 @@
5.84 s
[really-safe-money] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
5.84 s
[really-safe-money] -- Nothing
5.84 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
5.84 s
[really-safe-money] -toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] - Just False -> Nothing
5.84 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money] +toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] + Just False -> Nothing
5.84 s
[really-safe-money] + _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
5.84 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
5.84 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
5.84 s
[really-safe-money] @@ -284,9 +284,9 @@
5.84 s
[really-safe-money] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
5.84 s
[really-safe-money] -- Nothing
5.84 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
5.84 s
[really-safe-money] -toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] - Just False -> Nothing
5.84 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money] +toRatio (DecimalLiteral mSign m e) = case mSign of
5.84 s
[really-safe-money] + Just False -> Nothing
5.84 s
[really-safe-money] + _ -> Just $ fromIntegral m / (10 ^ e)
5.84 s
[really-safe-money]
5.84 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
5.84 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
5.84 s
[really-safe-money] @@ -233,7 +233,7 @@
5.84 s
[really-safe-money] -- >>> fromRatio (1 % 3)
5.84 s
[really-safe-money] -- Nothing
5.84 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
5.84 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
5.84 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 0
5.84 s
[really-safe-money] where
5.84 s
[really-safe-money] fromRationalRepetendLimited ::
5.84 s
[really-safe-money] -- limit
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
5.84 s
[really-safe-money] @@ -233,7 +233,7 @@
5.84 s
[really-safe-money] -- >>> fromRatio (1 % 3)
5.84 s
[really-safe-money] -- Nothing
5.84 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
5.84 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
5.84 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 1
5.84 s
[really-safe-money] where
5.84 s
[really-safe-money] fromRationalRepetendLimited ::
5.84 s
[really-safe-money] -- limit
5.84 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
5.84 s
[really-safe-money] @@ -233,7 +233,7 @@
5.84 s
[really-safe-money] -- >>> fromRatio (1 % 3)
5.84 s
[really-safe-money] -- Nothing
5.84 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
5.85 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
5.85 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited -256
5.85 s
[really-safe-money] where
5.85 s
[really-safe-money] fromRationalRepetendLimited ::
5.85 s
[really-safe-money] -- limit
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
5.85 s
[really-safe-money] @@ -241,7 +241,7 @@
5.85 s
[really-safe-money] Ratio Natural ->
5.85 s
[really-safe-money] Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRationalRepetendLimited l rational
5.85 s
[really-safe-money] - | d == 0 = Nothing
5.85 s
[really-safe-money] + | d == 1 = Nothing
5.85 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
5.85 s
[really-safe-money] where
5.85 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
5.85 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
5.85 s
[really-safe-money] @@ -241,7 +241,7 @@
5.85 s
[really-safe-money] Ratio Natural ->
5.85 s
[really-safe-money] Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRationalRepetendLimited l rational
5.85 s
[really-safe-money] - | d == 0 = Nothing
5.85 s
[really-safe-money] + | True = Nothing
5.85 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
5.85 s
[really-safe-money] where
5.85 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
5.85 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
5.85 s
[really-safe-money] @@ -241,7 +241,7 @@
5.85 s
[really-safe-money] Ratio Natural ->
5.85 s
[really-safe-money] Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRationalRepetendLimited l rational
5.85 s
[really-safe-money] - | d == 0 = Nothing
5.85 s
[really-safe-money] + | not (d == 0) = Nothing
5.85 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
5.85 s
[really-safe-money] where
5.85 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
5.85 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
5.85 s
[really-safe-money] @@ -261,7 +261,7 @@
5.85 s
[really-safe-money] Just (c, e)
5.85 s
[really-safe-money] longDivWithLimit !c !e ns !n
5.85 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
5.85 s
[really-safe-money] - | S.member n ns = Nothing
5.85 s
[really-safe-money] + | True = Nothing
5.85 s
[really-safe-money] -- Over the limit, stop trying
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
5.85 s
[really-safe-money] @@ -261,7 +261,7 @@
5.85 s
[really-safe-money] Just (c, e)
5.85 s
[really-safe-money] longDivWithLimit !c !e ns !n
5.85 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
5.85 s
[really-safe-money] - | S.member n ns = Nothing
5.85 s
[really-safe-money] + | not (S.member n ns) = Nothing
5.85 s
[really-safe-money] -- Over the limit, stop trying
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
5.85 s
[really-safe-money] @@ -263,7 +263,7 @@
5.85 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
5.85 s
[really-safe-money] | S.member n ns = Nothing
5.85 s
[really-safe-money] -- Over the limit, stop trying
5.85 s
[really-safe-money] - | e >= l = Nothing
5.85 s
[really-safe-money] + | True = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
5.85 s
[really-safe-money] @@ -263,7 +263,7 @@
5.85 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
5.85 s
[really-safe-money] | S.member n ns = Nothing
5.85 s
[really-safe-money] -- Over the limit, stop trying
5.85 s
[really-safe-money] - | e >= l = Nothing
5.85 s
[really-safe-money] + | not (e >= l) = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
5.85 s
[really-safe-money] @@ -264,7 +264,7 @@
5.85 s
[really-safe-money] | S.member n ns = Nothing
5.85 s
[really-safe-money] -- Over the limit, stop trying
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] - | n < d =
5.85 s
[really-safe-money] + | True =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] | otherwise =
5.85 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
5.85 s
[really-safe-money] @@ -264,7 +264,7 @@
5.85 s
[really-safe-money] | S.member n ns = Nothing
5.85 s
[really-safe-money] -- Over the limit, stop trying
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] - | n < d =
5.85 s
[really-safe-money] + | not (n < d) =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] | otherwise =
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
5.85 s
[really-safe-money] @@ -266,7 +266,7 @@
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] | otherwise =
5.85 s
[really-safe-money] let (q, r') = n `quotRem` d
5.85 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
5.85 s
[really-safe-money] @@ -266,7 +266,7 @@
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] | otherwise =
5.85 s
[really-safe-money] let (q, r') = n `quotRem` d
5.85 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
5.85 s
[really-safe-money] @@ -266,7 +266,7 @@
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
5.85 s
[really-safe-money] | otherwise =
5.85 s
[really-safe-money] let (q, r') = n `quotRem` d
5.85 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
5.85 s
[really-safe-money] @@ -266,7 +266,7 @@
5.85 s
[really-safe-money] | e >= l = Nothing
5.85 s
[really-safe-money] | n < d =
5.85 s
[really-safe-money] let !ns' = S.insert n ns
5.85 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
5.85 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
5.85 s
[really-safe-money] | otherwise =
5.85 s
[really-safe-money] let (q, r') = n `quotRem` d
5.85 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
5.85 s
[really-safe-money] @@ -249,7 +249,7 @@
5.85 s
[really-safe-money] num = numerator rational
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
5.85 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
5.85 s
[really-safe-money] + longDiv = longDivWithLimit 1 0 S.empty
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] longDivWithLimit ::
5.85 s
[really-safe-money] Natural ->
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
5.85 s
[really-safe-money] @@ -249,7 +249,7 @@
5.85 s
[really-safe-money] num = numerator rational
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
5.85 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
5.85 s
[really-safe-money] + longDiv = longDivWithLimit 0 1 S.empty
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] longDivWithLimit ::
5.85 s
[really-safe-money] Natural ->
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
5.85 s
[really-safe-money] @@ -220,7 +220,7 @@
5.85 s
[really-safe-money] -- (-3) % 10
5.85 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
5.85 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
5.85 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
5.85 s
[really-safe-money] + signSignum mSign (fromIntegral m / (0 ^ e))
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
5.85 s
[really-safe-money] --
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
5.85 s
[really-safe-money] @@ -220,7 +220,7 @@
5.85 s
[really-safe-money] -- (-3) % 10
5.85 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
5.85 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
5.85 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
5.85 s
[really-safe-money] + signSignum mSign (fromIntegral m / (1 ^ e))
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
5.85 s
[really-safe-money] --
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
5.85 s
[really-safe-money] @@ -220,7 +220,7 @@
5.85 s
[really-safe-money] -- (-3) % 10
5.85 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
5.85 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
5.85 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
5.85 s
[really-safe-money] + signSignum mSign (fromIntegral m / (-10 ^ e))
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
5.85 s
[really-safe-money] --
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
5.85 s
[really-safe-money] @@ -205,7 +205,7 @@
5.85 s
[really-safe-money] -- Nothing
5.85 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRational (n :% d)
5.85 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
5.85 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
5.85 s
[really-safe-money] @@ -205,7 +205,7 @@
5.85 s
[really-safe-money] -- Nothing
5.85 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRational (n :% d)
5.85 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
5.85 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
5.85 s
[really-safe-money] @@ -205,7 +205,7 @@
5.85 s
[really-safe-money] -- Nothing
5.85 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRational (n :% d)
5.85 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
5.85 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
5.85 s
[really-safe-money] @@ -205,7 +205,7 @@
5.85 s
[really-safe-money] -- Nothing
5.85 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
5.85 s
[really-safe-money] fromRational (n :% d)
5.85 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
5.85 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
5.85 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
5.85 s
[really-safe-money] @@ -183,7 +183,7 @@
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
5.85 s
[really-safe-money] go :: Word8 -> String -> String
5.85 s
[really-safe-money] - go 0 [] = ['.', '0']
5.85 s
[really-safe-money] + go 0 [] = []
5.85 s
[really-safe-money] go 0 s = '.' : s
5.85 s
[really-safe-money] go e [] = '0' : go (pred e) []
5.85 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
5.85 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
5.85 s
[really-safe-money] @@ -183,7 +183,7 @@
5.85 s
[really-safe-money]
5.85 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
5.85 s
[really-safe-money] go :: Word8 -> String -> String
5.85 s
[really-safe-money] - go 0 [] = ['.', '0']
5.85 s
[really-safe-money] + go 0 [] = ['.', '0']
5.85 s
[really-safe-money] go 0 s = '.' : s
5.85 s
[really-safe-money] go e [] = '0' : go (pred e) []
5.85 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
5.85 s
[really-safe-money] @@ -142,7 +142,7 @@
5.85 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
5.85 s
[really-safe-money] parseDigits f z = do
5.85 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
5.85 s
[really-safe-money] - let digit = Char.ord c - 48
5.85 s
[really-safe-money] + let digit = Char.ord c - 0
5.85 s
[really-safe-money] case f z digit of
5.85 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
5.85 s
[really-safe-money] Just a -> ReadP.look >>= go a
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
5.85 s
[really-safe-money] @@ -142,7 +142,7 @@
5.85 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
5.85 s
[really-safe-money] parseDigits f z = do
5.85 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
5.85 s
[really-safe-money] - let digit = Char.ord c - 48
5.85 s
[really-safe-money] + let digit = Char.ord c - 1
5.85 s
[really-safe-money] case f z digit of
5.85 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
5.85 s
[really-safe-money] Just a -> ReadP.look >>= go a
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
5.85 s
[really-safe-money] @@ -142,7 +142,7 @@
5.85 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
5.85 s
[really-safe-money] parseDigits f z = do
5.85 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
5.85 s
[really-safe-money] - let digit = Char.ord c - 48
5.85 s
[really-safe-money] + let digit = Char.ord c - -48
5.85 s
[really-safe-money] case f z digit of
5.85 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
5.85 s
[really-safe-money] Just a -> ReadP.look >>= go a
5.85 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
5.85 s
[really-safe-money] @@ -149,7 +149,7 @@
5.85 s
[really-safe-money] where
5.85 s
[really-safe-money] go !a [] = return a
5.85 s
[really-safe-money] go !a (c : cs)
5.85 s
[really-safe-money] - | Char.isDigit c = do
5.85 s
[really-safe-money] + | True = do
5.85 s
[really-safe-money] _ <- ReadP.get
5.85 s
[really-safe-money] let digit = Char.ord c - 48
5.85 s
[really-safe-money] case f a digit of
5.85 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
5.85 s
[really-safe-money] @@ -149,7 +149,7 @@
5.85 s
[really-safe-money] where
5.85 s
[really-safe-money] go !a [] = return a
5.85 s
[really-safe-money] go !a (c : cs)
5.85 s
[really-safe-money] - | Char.isDigit c = do
5.85 s
[really-safe-money] + | not (Char.isDigit c) = do
5.85 s
[really-safe-money] _ <- ReadP.get
5.85 s
[really-safe-money] let digit = Char.ord c - 48
5.85 s
[really-safe-money] case f a digit of
5.85 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
5.85 s
[really-safe-money] @@ -151,7 +151,7 @@
5.85 s
[really-safe-money] go !a (c : cs)
5.85 s
[really-safe-money] | Char.isDigit c = do
5.85 s
[really-safe-money] _ <- ReadP.get
5.86 s
[really-safe-money] - let digit = Char.ord c - 48
5.86 s
[really-safe-money] + let digit = Char.ord c - 0
5.86 s
[really-safe-money] case f a digit of
5.86 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
5.86 s
[really-safe-money] Just a' -> go a' cs
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
5.86 s
[really-safe-money] @@ -151,7 +151,7 @@
5.86 s
[really-safe-money] go !a (c : cs)
5.86 s
[really-safe-money] | Char.isDigit c = do
5.86 s
[really-safe-money] _ <- ReadP.get
5.86 s
[really-safe-money] - let digit = Char.ord c - 48
5.86 s
[really-safe-money] + let digit = Char.ord c - 1
5.86 s
[really-safe-money] case f a digit of
5.86 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
5.86 s
[really-safe-money] Just a' -> go a' cs
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
5.86 s
[really-safe-money] @@ -151,7 +151,7 @@
5.86 s
[really-safe-money] go !a (c : cs)
5.86 s
[really-safe-money] | Char.isDigit c = do
5.86 s
[really-safe-money] _ <- ReadP.get
5.86 s
[really-safe-money] - let digit = Char.ord c - 48
5.86 s
[really-safe-money] + let digit = Char.ord c - -48
5.86 s
[really-safe-money] case f a digit of
5.86 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
5.86 s
[really-safe-money] Just a' -> go a' cs
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
5.86 s
[really-safe-money] @@ -136,7 +136,7 @@
5.86 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
5.86 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
5.86 s
[really-safe-money] +step a digit = Just $ a * 0 + fromIntegral digit
5.86 s
[really-safe-money] {-# INLINE step #-}
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
5.86 s
[really-safe-money] @@ -136,7 +136,7 @@
5.86 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
5.86 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
5.86 s
[really-safe-money] +step a digit = Just $ a * 1 + fromIntegral digit
5.86 s
[really-safe-money] {-# INLINE step #-}
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
5.86 s
[really-safe-money] @@ -133,7 +133,7 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
5.86 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
5.86 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
5.86 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
5.86 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
5.86 s
[really-safe-money] @@ -133,7 +133,7 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
5.86 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
5.86 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
5.86 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
5.86 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = True || c == '+'
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = False || c == '+'
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = not (c == '-') || c == '+'
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = c == '-' || True
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = c == '-' || False
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = c == '-' || not (c == '+')
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = True
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = False
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
5.86 s
[really-safe-money] @@ -116,7 +116,7 @@
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] let isSignChar :: Char -> Bool
5.86 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
5.86 s
[really-safe-money] + isSignChar c = not (c == '-' || c == '+')
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
5.86 s
[really-safe-money] @@ -120,7 +120,7 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] - pure $ Just $ signChar == '+'
5.86 s
[really-safe-money] + pure $ Just $ True
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] units <- parseDigits step 0
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
5.86 s
[really-safe-money] @@ -120,7 +120,7 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] - pure $ Just $ signChar == '+'
5.86 s
[really-safe-money] + pure $ Just $ False
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] units <- parseDigits step 0
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
5.86 s
[really-safe-money] @@ -120,7 +120,7 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] - pure $ Just $ signChar == '+'
5.86 s
[really-safe-money] + pure $ Just $ not (signChar == '+')
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] units <- parseDigits step 0
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
5.86 s
[really-safe-money] @@ -122,7 +122,7 @@
5.86 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
5.86 s
[really-safe-money] pure $ Just $ signChar == '+'
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] - units <- parseDigits step 0
5.86 s
[really-safe-money] + units <- parseDigits step 1
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
5.86 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
5.86 s
[really-safe-money] @@ -124,7 +124,7 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] units <- parseDigits step 0
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] - ReadP.option (DecimalLiteral mSign units 0) $ do
5.86 s
[really-safe-money] + ReadP.option (DecimalLiteral mSign units 1) $ do
5.86 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] (m, e) <- parseDigits stepFraction (units, 0)
5.86 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
5.86 s
[really-safe-money] @@ -127,7 +127,7 @@
5.86 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
5.86 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] - (m, e) <- parseDigits stepFraction (units, 0)
5.86 s
[really-safe-money] + (m, e) <- parseDigits stepFraction (units, 1)
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] pure $ DecimalLiteral mSign m e
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
5.86 s
[really-safe-money] @@ -109,9 +109,9 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] -- | Like 'fromString' but in a 'MonadFail'
5.86 s
[really-safe-money] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
5.86 s
[really-safe-money] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
5.86 s
[really-safe-money] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
5.86 s
[really-safe-money] - Just dl -> pure dl
5.86 s
[really-safe-money] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
5.86 s
[really-safe-money] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
5.86 s
[really-safe-money] + Just dl -> pure dl
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
5.86 s
[really-safe-money] @@ -109,9 +109,9 @@
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] -- | Like 'fromString' but in a 'MonadFail'
5.86 s
[really-safe-money] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
5.86 s
[really-safe-money] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
5.86 s
[really-safe-money] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
5.86 s
[really-safe-money] - Just dl -> pure dl
5.86 s
[really-safe-money] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
5.86 s
[really-safe-money] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
5.86 s
[really-safe-money] + Just dl -> pure dl
5.86 s
[really-safe-money]
5.86 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
5.86 s
[really-safe-money] decimalLiteralP = do
5.86 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
5.86 s
[really-safe-money] @@ -83,9 +83,9 @@
5.86 s
[really-safe-money] instance NFData DecimalLiteral
5.86 s
[really-safe-money]
5.87 s
[really-safe-money] instance IsString DecimalLiteral where
5.87 s
[really-safe-money] - fromString s = case Numeric.DecimalLiteral.fromString s of
5.87 s
[really-safe-money] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
5.87 s
[really-safe-money] - Just dl -> dl
5.87 s
[really-safe-money] + fromString s = case Numeric.DecimalLiteral.fromString s of
5.87 s
[really-safe-money] + Nothing -> error $ "Invalid DecimalLiteral: " <> show s
5.87 s
[really-safe-money] + Just dl -> dl
5.87 s
[really-safe-money]
5.87 s
[really-safe-money] -- | Parse a decimal literal from a string
5.87 s
[really-safe-money] --
5.87 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
5.87 s
[really-safe-money] @@ -83,9 +83,9 @@
5.87 s
[really-safe-money] instance NFData DecimalLiteral
5.87 s
[really-safe-money]
5.87 s
[really-safe-money] instance IsString DecimalLiteral where
5.87 s
[really-safe-money] - fromString s = case Numeric.DecimalLiteral.fromString s of
5.87 s
[really-safe-money] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
5.87 s
[really-safe-money] - Just dl -> dl
5.87 s
[really-safe-money] + fromString s = case Numeric.DecimalLiteral.fromString s of
5.87 s
[really-safe-money] + Nothing -> error $ "Invalid DecimalLiteral: " <> show s
5.87 s
[really-safe-money] + Just dl -> dl
5.87 s
[really-safe-money]
5.87 s
[really-safe-money] -- | Parse a decimal literal from a string
5.87 s
[really-safe-money] --
5.87 s
[really-safe-money] added 87 mutations
7.10 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 )
7.11 s
[really-safe-money] mutation: instrumenting Money.QuantisationFactor
7.11 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
7.11 s
[really-safe-money] @@ -84,7 +84,7 @@
7.11 s
[really-safe-money] fromDecimalLiteral dl = do
7.11 s
[really-safe-money] irat <-
7.11 s
[really-safe-money] let r = DecimalLiteral.toRational dl
7.11 s
[really-safe-money] - in if numerator r == 0
7.11 s
[really-safe-money] + in if numerator r == 1
7.11 s
[really-safe-money] then Nothing
7.11 s
[really-safe-money] else pure r
7.11 s
[really-safe-money]
7.11 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
7.11 s
[really-safe-money] @@ -84,7 +84,7 @@
7.11 s
[really-safe-money] fromDecimalLiteral dl = do
7.11 s
[really-safe-money] irat <-
7.11 s
[really-safe-money] let r = DecimalLiteral.toRational dl
7.11 s
[really-safe-money] - in if numerator r == 0
7.11 s
[really-safe-money] + in if True
7.11 s
[really-safe-money] then Nothing
7.11 s
[really-safe-money] else pure r
7.11 s
[really-safe-money]
7.11 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
7.11 s
[really-safe-money] @@ -84,7 +84,7 @@
7.11 s
[really-safe-money] fromDecimalLiteral dl = do
7.11 s
[really-safe-money] irat <-
7.11 s
[really-safe-money] let r = DecimalLiteral.toRational dl
7.11 s
[really-safe-money] - in if numerator r == 0
7.11 s
[really-safe-money] + in if False
7.11 s
[really-safe-money] then Nothing
7.11 s
[really-safe-money] else pure r
7.11 s
[really-safe-money]
7.11 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
7.11 s
[really-safe-money] @@ -84,7 +84,7 @@
7.11 s
[really-safe-money] fromDecimalLiteral dl = do
7.11 s
[really-safe-money] irat <-
7.11 s
[really-safe-money] let r = DecimalLiteral.toRational dl
7.11 s
[really-safe-money] - in if numerator r == 0
7.11 s
[really-safe-money] + in if not (numerator r == 0)
7.11 s
[really-safe-money] then Nothing
7.11 s
[really-safe-money] else pure r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
7.12 s
[really-safe-money] @@ -84,9 +84,9 @@
7.12 s
[really-safe-money] fromDecimalLiteral dl = do
7.12 s
[really-safe-money] irat <-
7.12 s
[really-safe-money] let r = DecimalLiteral.toRational dl
7.12 s
[really-safe-money] - in if numerator r == 0
7.12 s
[really-safe-money] - then Nothing
7.12 s
[really-safe-money] - else pure r
7.12 s
[really-safe-money] + in if numerator r == 0
7.12 s
[really-safe-money] + then Nothing
7.12 s
[really-safe-money] + else pure r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] let r = 1 / irat
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
7.12 s
[really-safe-money] @@ -89,7 +89,7 @@
7.12 s
[really-safe-money] else pure r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] - let r = 1 / irat
7.12 s
[really-safe-money] + let r = 0 / irat
7.12 s
[really-safe-money] in if r < 0
7.12 s
[really-safe-money] then Nothing
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
7.12 s
[really-safe-money] @@ -89,7 +89,7 @@
7.12 s
[really-safe-money] else pure r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] - let r = 1 / irat
7.12 s
[really-safe-money] + let r = -1 / irat
7.12 s
[really-safe-money] in if r < 0
7.12 s
[really-safe-money] then Nothing
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
7.12 s
[really-safe-money] @@ -90,7 +90,7 @@
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] let r = 1 / irat
7.12 s
[really-safe-money] - in if r < 0
7.12 s
[really-safe-money] + in if r < 1
7.12 s
[really-safe-money] then Nothing
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
7.12 s
[really-safe-money] @@ -90,7 +90,7 @@
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] let r = 1 / irat
7.12 s
[really-safe-money] - in if r < 0
7.12 s
[really-safe-money] + in if True
7.12 s
[really-safe-money] then Nothing
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
7.12 s
[really-safe-money] @@ -90,7 +90,7 @@
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] let r = 1 / irat
7.12 s
[really-safe-money] - in if r < 0
7.12 s
[really-safe-money] + in if False
7.12 s
[really-safe-money] then Nothing
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
7.12 s
[really-safe-money] @@ -90,7 +90,7 @@
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] let r = 1 / irat
7.12 s
[really-safe-money] - in if r < 0
7.12 s
[really-safe-money] + in if not (r < 0)
7.12 s
[really-safe-money] then Nothing
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
7.12 s
[really-safe-money] @@ -90,9 +90,9 @@
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] rat <-
7.12 s
[really-safe-money] let r = 1 / irat
7.12 s
[really-safe-money] - in if r < 0
7.12 s
[really-safe-money] - then Nothing
7.12 s
[really-safe-money] - else Just r
7.12 s
[really-safe-money] + in if r < 0
7.12 s
[really-safe-money] + then Nothing
7.12 s
[really-safe-money] + else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] if denominator rat == 1
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
7.12 s
[really-safe-money] @@ -95,7 +95,7 @@
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] - if denominator rat == 1
7.12 s
[really-safe-money] + if denominator rat == 0
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
7.12 s
[really-safe-money] @@ -95,7 +95,7 @@
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] - if denominator rat == 1
7.12 s
[really-safe-money] + if denominator rat == -1
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
7.12 s
[really-safe-money] @@ -95,7 +95,7 @@
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] - if denominator rat == 1
7.12 s
[really-safe-money] + if True
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
7.12 s
[really-safe-money] @@ -95,7 +95,7 @@
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] - if denominator rat == 1
7.12 s
[really-safe-money] + if False
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
7.12 s
[really-safe-money] @@ -95,7 +95,7 @@
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] - if denominator rat == 1
7.12 s
[really-safe-money] + if not (denominator rat == 1)
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
7.12 s
[really-safe-money] @@ -95,9 +95,9 @@
7.12 s
[really-safe-money] else Just r
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] fac <-
7.12 s
[really-safe-money] - if denominator rat == 1
7.12 s
[really-safe-money] - then Just (numerator rat)
7.12 s
[really-safe-money] - else Nothing
7.12 s
[really-safe-money] + if denominator rat == 1
7.12 s
[really-safe-money] + then Just (numerator rat)
7.12 s
[really-safe-money] + else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] if fac <= fromIntegral (maxBound :: Word32)
7.12 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
7.12 s
[really-safe-money] @@ -99,6 +99,6 @@
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
7.12 s
[really-safe-money] + if True
7.12 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
7.12 s
[really-safe-money] @@ -99,6 +99,6 @@
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
7.12 s
[really-safe-money] + if False
7.12 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
7.12 s
[really-safe-money] @@ -99,6 +99,6 @@
7.12 s
[really-safe-money] then Just (numerator rat)
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
7.12 s
[really-safe-money] + if not (fac <= fromIntegral (maxBound :: Word32))
7.12 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
7.12 s
[really-safe-money] else Nothing
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
7.12 s
[really-safe-money] @@ -64,7 +64,7 @@
7.12 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
7.12 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
7.12 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
7.12 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
7.12 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
7.12 s
[really-safe-money] -- TODO explain that it's the inverse.
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
7.12 s
[really-safe-money] @@ -64,7 +64,7 @@
7.12 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
7.12 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
7.12 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
7.12 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
7.12 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
7.12 s
[really-safe-money] -- TODO explain that it's the inverse.
7.12 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
7.12 s
[really-safe-money] @@ -37,7 +37,7 @@
7.12 s
[really-safe-money] validate qf@(QuantisationFactor w) =
7.12 s
[really-safe-money] mconcat
7.12 s
[really-safe-money] [ genericValidate qf,
7.12 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 1
7.12 s
[really-safe-money] ]
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] instance NFData QuantisationFactor
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
7.12 s
[really-safe-money] @@ -37,7 +37,7 @@
7.12 s
[really-safe-money] validate qf@(QuantisationFactor w) =
7.12 s
[really-safe-money] mconcat
7.12 s
[really-safe-money] [ genericValidate qf,
7.12 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] + declare "The quantisation factor is not zero" $ True
7.12 s
[really-safe-money] ]
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] instance NFData QuantisationFactor
7.12 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
7.12 s
[really-safe-money] @@ -37,7 +37,7 @@
7.12 s
[really-safe-money] validate qf@(QuantisationFactor w) =
7.12 s
[really-safe-money] mconcat
7.12 s
[really-safe-money] [ genericValidate qf,
7.12 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] + declare "The quantisation factor is not zero" $ False
7.12 s
[really-safe-money] ]
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] instance NFData QuantisationFactor
7.12 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
7.12 s
[really-safe-money] @@ -37,7 +37,7 @@
7.12 s
[really-safe-money] validate qf@(QuantisationFactor w) =
7.12 s
[really-safe-money] mconcat
7.12 s
[really-safe-money] [ genericValidate qf,
7.12 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] + declare "The quantisation factor is not zero" $ not (w /= 0)
7.12 s
[really-safe-money] ]
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] instance NFData QuantisationFactor
7.12 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
7.12 s
[really-safe-money] @@ -36,9 +36,7 @@
7.12 s
[really-safe-money] instance Validity QuantisationFactor where
7.12 s
[really-safe-money] validate qf@(QuantisationFactor w) =
7.12 s
[really-safe-money] mconcat
7.12 s
[really-safe-money] - [ genericValidate qf,
7.12 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] - ]
7.12 s
[really-safe-money] + []
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] instance NFData QuantisationFactor
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
7.12 s
[really-safe-money] @@ -36,9 +36,9 @@
7.12 s
[really-safe-money] instance Validity QuantisationFactor where
7.12 s
[really-safe-money] validate qf@(QuantisationFactor w) =
7.12 s
[really-safe-money] mconcat
7.12 s
[really-safe-money] - [ genericValidate qf,
7.12 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] - ]
7.12 s
[really-safe-money] + [ genericValidate qf,
7.12 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 0
7.12 s
[really-safe-money] + ]
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] instance NFData QuantisationFactor
7.12 s
[really-safe-money]
7.12 s
[really-safe-money] added 29 mutations
7.38 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 )
7.39 s
[really-safe-money] mutation: instrumenting Money.Currency
7.39 s
[really-safe-money] added 0 mutations
7.66 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 )
7.67 s
[really-safe-money] mutation: instrumenting Money.ConversionRate
7.67 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
7.67 s
[really-safe-money] @@ -113,7 +113,7 @@
7.67 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
7.67 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
7.67 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
7.67 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
7.67 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (0 / r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Compose two conversion rates
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
7.67 s
[really-safe-money] @@ -113,7 +113,7 @@
7.67 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
7.67 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
7.67 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
7.67 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
7.67 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (-1 / r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Compose two conversion rates
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
7.67 s
[really-safe-money] @@ -106,7 +106,7 @@
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | One-to-one conversion rate
7.67 s
[really-safe-money] oneToOne :: ConversionRate
7.67 s
[really-safe-money] -oneToOne = ConversionRate 1
7.67 s
[really-safe-money] +oneToOne = ConversionRate 0
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
7.67 s
[really-safe-money] @@ -106,7 +106,7 @@
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | One-to-one conversion rate
7.67 s
[really-safe-money] oneToOne :: ConversionRate
7.67 s
[really-safe-money] -oneToOne = ConversionRate 1
7.67 s
[really-safe-money] +oneToOne = ConversionRate -1
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
7.67 s
[really-safe-money] @@ -69,7 +69,7 @@
7.67 s
[really-safe-money] -- >>> fromRational (0 % 1)
7.67 s
[really-safe-money] -- Nothing
7.67 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
7.67 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
7.67 s
[really-safe-money] @@ -69,7 +69,7 @@
7.67 s
[really-safe-money] -- >>> fromRational (0 % 1)
7.67 s
[really-safe-money] -- Nothing
7.67 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
7.67 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
7.67 s
[really-safe-money] @@ -69,7 +69,7 @@
7.67 s
[really-safe-money] -- >>> fromRational (0 % 1)
7.67 s
[really-safe-money] -- Nothing
7.67 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
7.67 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
7.67 s
[really-safe-money] @@ -69,7 +69,7 @@
7.67 s
[really-safe-money] -- >>> fromRational (0 % 1)
7.67 s
[really-safe-money] -- Nothing
7.67 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
7.67 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
7.67 s
[really-safe-money] @@ -69,7 +69,7 @@
7.67 s
[really-safe-money] -- >>> fromRational (0 % 1)
7.67 s
[really-safe-money] -- Nothing
7.67 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
7.67 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
7.67 s
[really-safe-money] --
7.67 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
7.67 s
[really-safe-money] @@ -35,7 +35,7 @@
7.67 s
[really-safe-money] validate cr@(ConversionRate r) =
7.67 s
[really-safe-money] mconcat
7.67 s
[really-safe-money] [ genericValidate cr,
7.67 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 1
7.67 s
[really-safe-money] ]
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] instance NFData ConversionRate
7.67 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
7.67 s
[really-safe-money] @@ -35,7 +35,7 @@
7.67 s
[really-safe-money] validate cr@(ConversionRate r) =
7.67 s
[really-safe-money] mconcat
7.67 s
[really-safe-money] [ genericValidate cr,
7.67 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] + declare "The rate is nonzero" $ True
7.67 s
[really-safe-money] ]
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] instance NFData ConversionRate
7.67 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
7.67 s
[really-safe-money] @@ -35,7 +35,7 @@
7.67 s
[really-safe-money] validate cr@(ConversionRate r) =
7.67 s
[really-safe-money] mconcat
7.67 s
[really-safe-money] [ genericValidate cr,
7.67 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] + declare "The rate is nonzero" $ False
7.67 s
[really-safe-money] ]
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] instance NFData ConversionRate
7.67 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
7.67 s
[really-safe-money] @@ -35,7 +35,7 @@
7.67 s
[really-safe-money] validate cr@(ConversionRate r) =
7.67 s
[really-safe-money] mconcat
7.67 s
[really-safe-money] [ genericValidate cr,
7.67 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] + declare "The rate is nonzero" $ not (numerator r /= 0)
7.67 s
[really-safe-money] ]
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] instance NFData ConversionRate
7.67 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
7.67 s
[really-safe-money] @@ -34,9 +34,7 @@
7.67 s
[really-safe-money] instance Validity ConversionRate where
7.67 s
[really-safe-money] validate cr@(ConversionRate r) =
7.67 s
[really-safe-money] mconcat
7.67 s
[really-safe-money] - [ genericValidate cr,
7.67 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] - ]
7.67 s
[really-safe-money] + []
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] instance NFData ConversionRate
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
7.67 s
[really-safe-money] @@ -34,9 +34,9 @@
7.67 s
[really-safe-money] instance Validity ConversionRate where
7.67 s
[really-safe-money] validate cr@(ConversionRate r) =
7.67 s
[really-safe-money] mconcat
7.67 s
[really-safe-money] - [ genericValidate cr,
7.67 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] - ]
7.67 s
[really-safe-money] + [ genericValidate cr,
7.67 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 0
7.67 s
[really-safe-money] + ]
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] instance NFData ConversionRate
7.67 s
[really-safe-money]
7.67 s
[really-safe-money] added 15 mutations
7.86 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 )
7.87 s
[really-safe-money] mutation: instrumenting Money.ConversionRateOf
7.87 s
[really-safe-money] added 0 mutations
7.94 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 )
7.99 s
[really-safe-money] mutation: instrumenting Money.Amount
7.99 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
7.99 s
[really-safe-money] @@ -798,7 +798,7 @@
7.99 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
7.99 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
7.99 s
[really-safe-money] let decimals :: Int
7.99 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
7.99 s
[really-safe-money] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
7.99 s
[really-safe-money] in printf "%%0.%df" decimals
7.99 s
[really-safe-money]
7.99 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
7.99 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
7.99 s
[really-safe-money] @@ -798,7 +798,7 @@
7.99 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
7.99 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
7.99 s
[really-safe-money] let decimals :: Int
7.99 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
7.99 s
[really-safe-money] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
7.99 s
[really-safe-money] in printf "%%0.%df" decimals
7.99 s
[really-safe-money]
7.99 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
7.99 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
7.99 s
[really-safe-money] @@ -798,7 +798,7 @@
7.99 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
7.99 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
7.99 s
[really-safe-money] let decimals :: Int
7.99 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
7.99 s
[really-safe-money] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
7.99 s
[really-safe-money] in printf "%%0.%df" decimals
7.99 s
[really-safe-money]
7.99 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
7.99 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
7.99 s
[really-safe-money] @@ -566,7 +566,7 @@
7.99 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
7.99 s
[really-safe-money] smallerChunk :: Amount
7.99 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
7.99 s
[really-safe-money] - in if rest == 0
7.99 s
[really-safe-money] + in if rest == 1
7.99 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
7.99 s
[really-safe-money] else
7.99 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
7.99 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
7.99 s
[really-safe-money] @@ -566,7 +566,7 @@
7.99 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
7.99 s
[really-safe-money] smallerChunk :: Amount
7.99 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
7.99 s
[really-safe-money] - in if rest == 0
7.99 s
[really-safe-money] + in if True
7.99 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
7.99 s
[really-safe-money] else
7.99 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
7.99 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
7.99 s
[really-safe-money] @@ -566,7 +566,7 @@
7.99 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
7.99 s
[really-safe-money] smallerChunk :: Amount
7.99 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
7.99 s
[really-safe-money] - in if rest == 0
7.99 s
[really-safe-money] + in if False
7.99 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
7.99 s
[really-safe-money] else
7.99 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
7.99 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
7.99 s
[really-safe-money] @@ -566,7 +566,7 @@
7.99 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
7.99 s
[really-safe-money] smallerChunk :: Amount
7.99 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
7.99 s
[really-safe-money] - in if rest == 0
7.99 s
[really-safe-money] + in if not (rest == 0)
7.99 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
7.99 s
[really-safe-money] else
7.99 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
7.99 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:569:7-29
7.99 s
[really-safe-money] @@ -566,22 +566,22 @@
7.99 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
7.99 s
[really-safe-money] smallerChunk :: Amount
7.99 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
7.99 s
[really-safe-money] - in if rest == 0
7.99 s
[really-safe-money] - then DistributedIntoEqualChunks f smallerChunk
7.99 s
[really-safe-money] - else
7.99 s
[really-safe-money] - let -- This 'fromIntegral' is theoretically not safe, but it's
7.99 s
[really-safe-money] - -- necessarily smaller than f so it will fit.
7.99 s
[really-safe-money] - numberOfLargerChunks :: Word32
7.99 s
[really-safe-money] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
7.99 s
[really-safe-money] - numberOfSmallerChunks :: Word32
7.99 s
[really-safe-money] - numberOfSmallerChunks = f - numberOfLargerChunks
7.99 s
[really-safe-money] - largerChunk :: Amount
7.99 s
[really-safe-money] - largerChunk = Amount $ succ smallerChunkSize
7.99 s
[really-safe-money] - in DistributedIntoUnequalChunks
7.99 s
[really-safe-money] - numberOfLargerChunks
7.99 s
[really-safe-money] - largerChunk
7.99 s
[really-safe-money] - numberOfSmallerChunks
7.99 s
[really-safe-money] - smallerChunk
7.99 s
[really-safe-money] + in if rest == 0
7.99 s
[really-safe-money] + then DistributedIntoEqualChunks f smallerChunk
7.99 s
[really-safe-money] + else
7.99 s
[really-safe-money] + let -- This 'fromIntegral' is theoretically not safe, but it's
7.99 s
[really-safe-money] + -- necessarily smaller than f so it will fit.
7.99 s
[really-safe-money] + numberOfLargerChunks :: Word32
7.99 s
[really-safe-money] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
7.99 s
[really-safe-money] + numberOfSmallerChunks :: Word32
7.99 s
[really-safe-money] + numberOfSmallerChunks = f - numberOfLargerChunks
7.99 s
[really-safe-money] + largerChunk :: Amount
7.99 s
[really-safe-money] + largerChunk = Amount $ succ smallerChunkSize
7.99 s
[really-safe-money] + in DistributedIntoUnequalChunks
7.99 s
[really-safe-money] + numberOfLargerChunks
7.99 s
[really-safe-money] + largerChunk
7.99 s
[really-safe-money] + numberOfSmallerChunks
7.99 s
[really-safe-money] + smallerChunk
7.99 s
[really-safe-money]
7.99 s
[really-safe-money] -- | The result of 'distribute'
7.99 s
[really-safe-money] type AmountDistribution = Distribution Amount
7.99 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
7.99 s
[really-safe-money] @@ -541,7 +541,7 @@
7.99 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
7.99 s
[really-safe-money] r :: Integer
7.99 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
7.99 s
[really-safe-money] - in if r > maxBoundI
7.99 s
[really-safe-money] + in if True
7.99 s
[really-safe-money] then Nothing
7.99 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
8.00 s
[really-safe-money] @@ -541,7 +541,7 @@
8.00 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] + in if False
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
8.00 s
[really-safe-money] @@ -541,7 +541,7 @@
8.00 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] + in if not (r > maxBoundI)
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:544:7-66
8.00 s
[really-safe-money] @@ -541,9 +541,9 @@
8.00 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] - then Nothing
8.00 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money] + in if r > maxBoundI
8.00 s
[really-safe-money] + then Nothing
8.00 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
8.00 s
[really-safe-money] --
8.00 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
8.00 s
[really-safe-money] @@ -515,7 +515,7 @@
8.00 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 - i2
8.00 s
[really-safe-money] - in if r < 0
8.00 s
[really-safe-money] + in if r < 1
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
8.00 s
[really-safe-money] @@ -515,7 +515,7 @@
8.00 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 - i2
8.00 s
[really-safe-money] - in if r < 0
8.00 s
[really-safe-money] + in if True
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
8.00 s
[really-safe-money] @@ -515,7 +515,7 @@
8.00 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 - i2
8.00 s
[really-safe-money] - in if r < 0
8.00 s
[really-safe-money] + in if False
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
8.00 s
[really-safe-money] @@ -515,7 +515,7 @@
8.00 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 - i2
8.00 s
[really-safe-money] - in if r < 0
8.00 s
[really-safe-money] + in if not (r < 0)
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:518:7-66
8.00 s
[really-safe-money] @@ -515,9 +515,9 @@
8.00 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 - i2
8.00 s
[really-safe-money] - in if r < 0
8.00 s
[really-safe-money] - then Nothing
8.00 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money] + in if r < 0
8.00 s
[really-safe-money] + then Nothing
8.00 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] -- | Multiply an amount of money by an integer scalar
8.00 s
[really-safe-money] --
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
8.00 s
[really-safe-money] @@ -473,7 +473,7 @@
8.00 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 + i2
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] + in if True
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
8.00 s
[really-safe-money] @@ -473,7 +473,7 @@
8.00 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 + i2
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] + in if False
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
8.00 s
[really-safe-money] @@ -473,7 +473,7 @@
8.00 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 + i2
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] + in if not (r > maxBoundI)
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:476:7-66
8.00 s
[really-safe-money] @@ -473,9 +473,9 @@
8.00 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.00 s
[really-safe-money] r :: Integer
8.00 s
[really-safe-money] r = i1 + i2
8.00 s
[really-safe-money] - in if r > maxBoundI
8.00 s
[really-safe-money] - then Nothing
8.00 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money] + in if r > maxBoundI
8.00 s
[really-safe-money] + then Nothing
8.00 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.00 s
[really-safe-money]
8.00 s
[really-safe-money] -- | Add a number of amounts of money together.
8.00 s
[really-safe-money] --
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
8.00 s
[really-safe-money] @@ -385,7 +385,7 @@
8.00 s
[really-safe-money] -- Nothing
8.00 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
8.00 s
[really-safe-money] fromRational (QuantisationFactor qf) r
8.00 s
[really-safe-money] - | isInvalid r = Nothing
8.00 s
[really-safe-money] + | True = Nothing
8.00 s
[really-safe-money] | r < 0 = Nothing
8.00 s
[really-safe-money] | otherwise =
8.00 s
[really-safe-money] let resultRational :: Rational
8.00 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
8.00 s
[really-safe-money] @@ -385,7 +385,7 @@
8.00 s
[really-safe-money] -- Nothing
8.00 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
8.00 s
[really-safe-money] fromRational (QuantisationFactor qf) r
8.00 s
[really-safe-money] - | isInvalid r = Nothing
8.00 s
[really-safe-money] + | not (isInvalid r) = Nothing
8.00 s
[really-safe-money] | r < 0 = Nothing
8.00 s
[really-safe-money] | otherwise =
8.00 s
[really-safe-money] let resultRational :: Rational
8.00 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
8.00 s
[really-safe-money] @@ -386,7 +386,7 @@
8.00 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
8.00 s
[really-safe-money] fromRational (QuantisationFactor qf) r
8.00 s
[really-safe-money] | isInvalid r = Nothing
8.00 s
[really-safe-money] - | r < 0 = Nothing
8.00 s
[really-safe-money] + | r < 1 = Nothing
8.00 s
[really-safe-money] | otherwise =
8.00 s
[really-safe-money] let resultRational :: Rational
8.00 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
8.00 s
[really-safe-money] @@ -386,7 +386,7 @@
8.00 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
8.00 s
[really-safe-money] fromRational (QuantisationFactor qf) r
8.00 s
[really-safe-money] | isInvalid r = Nothing
8.00 s
[really-safe-money] - | r < 0 = Nothing
8.00 s
[really-safe-money] + | True = Nothing
8.00 s
[really-safe-money] | otherwise =
8.00 s
[really-safe-money] let resultRational :: Rational
8.00 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
8.00 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
8.00 s
[really-safe-money] @@ -386,7 +386,7 @@
8.00 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
8.00 s
[really-safe-money] fromRational (QuantisationFactor qf) r
8.00 s
[really-safe-money] | isInvalid r = Nothing
8.00 s
[really-safe-money] - | r < 0 = Nothing
8.00 s
[really-safe-money] + | not (r < 0) = Nothing
8.00 s
[really-safe-money] | otherwise =
8.00 s
[really-safe-money] let resultRational :: Rational
8.00 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
8.00 s
[really-safe-money] @@ -394,7 +394,7 @@
8.00 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
8.00 s
[really-safe-money] floored :: Natural
8.00 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.00 s
[really-safe-money] - in if ceiled == floored
8.00 s
[really-safe-money] + in if True
8.00 s
[really-safe-money] then
8.00 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.00 s
[really-safe-money] then Nothing
8.00 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
8.00 s
[really-safe-money] @@ -394,7 +394,7 @@
8.00 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
8.00 s
[really-safe-money] floored :: Natural
8.00 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.00 s
[really-safe-money] - in if ceiled == floored
8.00 s
[really-safe-money] + in if False
8.00 s
[really-safe-money] then
8.00 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.00 s
[really-safe-money] then Nothing
8.01 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
8.01 s
[really-safe-money] @@ -394,7 +394,7 @@
8.01 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] floored :: Natural
8.01 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] - in if ceiled == floored
8.01 s
[really-safe-money] + in if not (ceiled == floored)
8.01 s
[really-safe-money] then
8.01 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] then Nothing
8.01 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
8.01 s
[really-safe-money] @@ -396,7 +396,7 @@
8.01 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] in if ceiled == floored
8.01 s
[really-safe-money] then
8.01 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] + if True
8.01 s
[really-safe-money] then Nothing
8.01 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] else Nothing
8.01 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
8.01 s
[really-safe-money] @@ -396,7 +396,7 @@
8.01 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] in if ceiled == floored
8.01 s
[really-safe-money] then
8.01 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] + if False
8.01 s
[really-safe-money] then Nothing
8.01 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] else Nothing
8.01 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
8.01 s
[really-safe-money] @@ -396,7 +396,7 @@
8.01 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] in if ceiled == floored
8.01 s
[really-safe-money] then
8.01 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
8.01 s
[really-safe-money] then Nothing
8.01 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] else Nothing
8.01 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:399:15-57
8.01 s
[really-safe-money] @@ -396,9 +396,9 @@
8.01 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] in if ceiled == floored
8.01 s
[really-safe-money] then
8.01 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] - then Nothing
8.01 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] + then Nothing
8.01 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] else Nothing
8.01 s
[really-safe-money]
8.01 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
8.01 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:397:11-25
8.01 s
[really-safe-money] @@ -394,12 +394,12 @@
8.01 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] floored :: Natural
8.01 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
8.01 s
[really-safe-money] - in if ceiled == floored
8.01 s
[really-safe-money] - then
8.01 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] - then Nothing
8.01 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] - else Nothing
8.01 s
[really-safe-money] + in if ceiled == floored
8.01 s
[really-safe-money] + then
8.01 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.01 s
[really-safe-money] + then Nothing
8.01 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
8.01 s
[really-safe-money] + else Nothing
8.01 s
[really-safe-money]
8.01 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
8.01 s
[really-safe-money] --
8.01 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
8.01 s
[really-safe-money] @@ -317,7 +317,7 @@
8.01 s
[really-safe-money] Double ->
8.01 s
[really-safe-money] Maybe Amount
8.01 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
8.01 s
[really-safe-money] - | d < 0 = Nothing
8.01 s
[really-safe-money] + | d < 1 = Nothing
8.01 s
[really-safe-money] | otherwise =
8.01 s
[really-safe-money] let resultDouble :: Double
8.01 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
8.01 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
8.01 s
[really-safe-money] @@ -317,7 +317,7 @@
8.01 s
[really-safe-money] Double ->
8.01 s
[really-safe-money] Maybe Amount
8.01 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
8.01 s
[really-safe-money] - | d < 0 = Nothing
8.01 s
[really-safe-money] + | True = Nothing
8.01 s
[really-safe-money] | otherwise =
8.01 s
[really-safe-money] let resultDouble :: Double
8.01 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
8.01 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
8.01 s
[really-safe-money] @@ -317,7 +317,7 @@
8.01 s
[really-safe-money] Double ->
8.01 s
[really-safe-money] Maybe Amount
8.01 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
8.01 s
[really-safe-money] - | d < 0 = Nothing
8.01 s
[really-safe-money] + | not (d < 0) = Nothing
8.01 s
[really-safe-money] | otherwise =
8.01 s
[really-safe-money] let resultDouble :: Double
8.01 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
8.01 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
8.01 s
[really-safe-money] @@ -324,7 +324,7 @@
8.01 s
[really-safe-money] in go resultDouble
8.01 s
[really-safe-money] where
8.01 s
[really-safe-money] go resultDouble
8.02 s
[really-safe-money] - | isNaN d = Nothing
8.02 s
[really-safe-money] + | True = Nothing
8.02 s
[really-safe-money] | isInfinite d = Nothing
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
8.02 s
[really-safe-money] @@ -324,7 +324,7 @@
8.02 s
[really-safe-money] in go resultDouble
8.02 s
[really-safe-money] where
8.02 s
[really-safe-money] go resultDouble
8.02 s
[really-safe-money] - | isNaN d = Nothing
8.02 s
[really-safe-money] + | not (isNaN d) = Nothing
8.02 s
[really-safe-money] | isInfinite d = Nothing
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
8.02 s
[really-safe-money] @@ -325,7 +325,7 @@
8.02 s
[really-safe-money] where
8.02 s
[really-safe-money] go resultDouble
8.02 s
[really-safe-money] | isNaN d = Nothing
8.02 s
[really-safe-money] - | isInfinite d = Nothing
8.02 s
[really-safe-money] + | True = Nothing
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
8.02 s
[really-safe-money] @@ -325,7 +325,7 @@
8.02 s
[really-safe-money] where
8.02 s
[really-safe-money] go resultDouble
8.02 s
[really-safe-money] | isNaN d = Nothing
8.02 s
[really-safe-money] - | isInfinite d = Nothing
8.02 s
[really-safe-money] + | not (isInfinite d) = Nothing
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
8.02 s
[really-safe-money] @@ -329,7 +329,7 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] + if exponent resultDouble > 0
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else
8.02 s
[really-safe-money] let ceiled :: Natural
8.02 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
8.02 s
[really-safe-money] @@ -329,7 +329,7 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] + if exponent resultDouble > 1
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else
8.02 s
[really-safe-money] let ceiled :: Natural
8.02 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
8.02 s
[really-safe-money] @@ -329,7 +329,7 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] + if exponent resultDouble > -65
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else
8.02 s
[really-safe-money] let ceiled :: Natural
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
8.02 s
[really-safe-money] @@ -329,7 +329,7 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] + if True
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else
8.02 s
[really-safe-money] let ceiled :: Natural
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
8.02 s
[really-safe-money] @@ -329,7 +329,7 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] + if False
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else
8.02 s
[really-safe-money] let ceiled :: Natural
8.02 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
8.02 s
[really-safe-money] @@ -329,7 +329,7 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] + if not (exponent resultDouble > 65)
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else
8.02 s
[really-safe-money] let ceiled :: Natural
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
8.02 s
[really-safe-money] @@ -336,7 +336,7 @@
8.02 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] floored :: Natural
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] - in if ceiled == floored
8.02 s
[really-safe-money] + in if True
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
8.02 s
[really-safe-money] @@ -336,7 +336,7 @@
8.02 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] floored :: Natural
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] - in if ceiled == floored
8.02 s
[really-safe-money] + in if False
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
8.02 s
[really-safe-money] @@ -336,7 +336,7 @@
8.02 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] floored :: Natural
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] - in if ceiled == floored
8.02 s
[really-safe-money] + in if not (ceiled == floored)
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
8.02 s
[really-safe-money] @@ -338,7 +338,7 @@
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] in if ceiled == floored
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] + if True
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] else Nothing
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
8.02 s
[really-safe-money] @@ -338,7 +338,7 @@
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] in if ceiled == floored
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] + if False
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] else Nothing
8.02 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
8.02 s
[really-safe-money] @@ -338,7 +338,7 @@
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] in if ceiled == floored
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] else Nothing
8.02 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:341:23-65
8.02 s
[really-safe-money] @@ -338,9 +338,9 @@
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] in if ceiled == floored
8.02 s
[really-safe-money] then
8.02 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] - then Nothing
8.02 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] + then Nothing
8.02 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] else Nothing
8.02 s
[really-safe-money]
8.02 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
8.02 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:339:19-33
8.02 s
[really-safe-money] @@ -336,12 +336,12 @@
8.02 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] floored :: Natural
8.02 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] - in if ceiled == floored
8.02 s
[really-safe-money] - then
8.02 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] - then Nothing
8.02 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] - else Nothing
8.02 s
[really-safe-money] + in if ceiled == floored
8.02 s
[really-safe-money] + then
8.02 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] + then Nothing
8.02 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] + else Nothing
8.02 s
[really-safe-money]
8.02 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
8.02 s
[really-safe-money] --
8.02 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:332:11-33
8.02 s
[really-safe-money] @@ -329,19 +329,19 @@
8.02 s
[really-safe-money] | otherwise =
8.02 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
8.02 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
8.02 s
[really-safe-money] - if exponent resultDouble > 65
8.02 s
[really-safe-money] - then Nothing
8.02 s
[really-safe-money] - else
8.02 s
[really-safe-money] - let ceiled :: Natural
8.02 s
[really-safe-money] - ceiled = (ceiling :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] - floored :: Natural
8.02 s
[really-safe-money] - floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] - in if ceiled == floored
8.02 s
[really-safe-money] - then
8.02 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] - then Nothing
8.02 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] - else Nothing
8.02 s
[really-safe-money] + if exponent resultDouble > 65
8.02 s
[really-safe-money] + then Nothing
8.02 s
[really-safe-money] + else
8.02 s
[really-safe-money] + let ceiled :: Natural
8.02 s
[really-safe-money] + ceiled = (ceiling :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] + floored :: Natural
8.02 s
[really-safe-money] + floored = (floor :: Double -> Natural) resultDouble
8.02 s
[really-safe-money] + in if ceiled == floored
8.02 s
[really-safe-money] + then
8.02 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
8.02 s
[really-safe-money] + then Nothing
8.02 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
8.02 s
[really-safe-money] + else Nothing
8.02 s
[really-safe-money]
8.02 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
8.02 s
[really-safe-money] --
8.02 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
8.02 s
[really-safe-money] @@ -287,7 +287,7 @@
8.02 s
[really-safe-money] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
8.02 s
[really-safe-money] -- 1 % 100
8.02 s
[really-safe-money] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
8.02 s
[really-safe-money] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
8.02 s
[really-safe-money] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
8.02 s
[really-safe-money] toRatio (QuantisationFactor quantisationFactor) a =
8.02 s
[really-safe-money] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
8.02 s
[really-safe-money] % (fromIntegral :: Word32 -> Natural) quantisationFactor
8.02 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
8.02 s
[really-safe-money] @@ -491,7 +491,7 @@
8.02 s
[really-safe-money] let maxBoundI :: Integer
8.02 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.02 s
[really-safe-money] r :: Integer
8.02 s
[really-safe-money] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
8.02 s
[really-safe-money] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
8.02 s
[really-safe-money] in if r > maxBoundI
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
8.02 s
[really-safe-money] @@ -492,7 +492,7 @@
8.02 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.02 s
[really-safe-money] r :: Integer
8.02 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
8.02 s
[really-safe-money] - in if r > maxBoundI
8.02 s
[really-safe-money] + in if True
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.02 s
[really-safe-money]
8.02 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
8.02 s
[really-safe-money] @@ -492,7 +492,7 @@
8.02 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.02 s
[really-safe-money] r :: Integer
8.02 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
8.02 s
[really-safe-money] - in if r > maxBoundI
8.02 s
[really-safe-money] + in if False
8.02 s
[really-safe-money] then Nothing
8.02 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
8.03 s
[really-safe-money] @@ -492,7 +492,7 @@
8.03 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.03 s
[really-safe-money] r :: Integer
8.03 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
8.03 s
[really-safe-money] - in if r > maxBoundI
8.03 s
[really-safe-money] + in if not (r > maxBoundI)
8.03 s
[really-safe-money] then Nothing
8.03 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:495:7-66
8.03 s
[really-safe-money] @@ -492,9 +492,9 @@
8.03 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
8.03 s
[really-safe-money] r :: Integer
8.03 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
8.03 s
[really-safe-money] - in if r > maxBoundI
8.03 s
[really-safe-money] - then Nothing
8.03 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.03 s
[really-safe-money] + in if r > maxBoundI
8.03 s
[really-safe-money] + then Nothing
8.03 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] -- | Add two amounts of money.
8.03 s
[really-safe-money] --
8.03 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
8.03 s
[really-safe-money] @@ -247,7 +247,7 @@
8.03 s
[really-safe-money] -- >>> zero
8.03 s
[really-safe-money] -- Amount 0
8.03 s
[really-safe-money] zero :: Amount
8.03 s
[really-safe-money] -zero = Amount 0
8.03 s
[really-safe-money] +zero = Amount 1
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] -- | Turn an amount into a number of minimal quantisations.
8.03 s
[really-safe-money] --
8.03 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
8.03 s
[really-safe-money] @@ -658,7 +658,7 @@
8.03 s
[really-safe-money] -- | The amount and the real rate that was used, considering the 'Rounding'
8.03 s
[really-safe-money] (Maybe Amount, Ratio Natural)
8.03 s
[really-safe-money] fraction _ (Amount 0) f = (Just zero, f)
8.03 s
[really-safe-money] -fraction _ _ 0 = (Just zero, 0)
8.03 s
[really-safe-money] +fraction _ _ 0 = (Just zero, 1)
8.03 s
[really-safe-money] fraction r (Amount a) f =
8.03 s
[really-safe-money] let amountAsRatio :: Ratio Natural
8.03 s
[really-safe-money] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
8.03 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
8.03 s
[really-safe-money] @@ -665,10 +665,10 @@
8.03 s
[really-safe-money] theoreticalResult :: Ratio Natural
8.03 s
[really-safe-money] theoreticalResult = amountAsRatio * f
8.03 s
[really-safe-money] rounder :: Ratio Natural -> Natural
8.03 s
[really-safe-money] - rounder = case r of
8.03 s
[really-safe-money] - RoundUp -> ceiling
8.03 s
[really-safe-money] - RoundDown -> floor
8.03 s
[really-safe-money] - RoundNearest -> round
8.03 s
[really-safe-money] + rounder = case r of
8.03 s
[really-safe-money] + RoundUp -> ceiling
8.03 s
[really-safe-money] + RoundDown -> floor
8.03 s
[really-safe-money] + RoundNearest -> round
8.03 s
[really-safe-money] roundedResult :: Natural
8.03 s
[really-safe-money] roundedResult = rounder theoreticalResult
8.03 s
[really-safe-money] actualRate :: Ratio Natural
8.03 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
8.03 s
[really-safe-money] @@ -665,10 +665,10 @@
8.03 s
[really-safe-money] theoreticalResult :: Ratio Natural
8.03 s
[really-safe-money] theoreticalResult = amountAsRatio * f
8.03 s
[really-safe-money] rounder :: Ratio Natural -> Natural
8.03 s
[really-safe-money] - rounder = case r of
8.03 s
[really-safe-money] - RoundUp -> ceiling
8.03 s
[really-safe-money] - RoundDown -> floor
8.03 s
[really-safe-money] - RoundNearest -> round
8.03 s
[really-safe-money] + rounder = case r of
8.03 s
[really-safe-money] + RoundUp -> ceiling
8.03 s
[really-safe-money] + RoundDown -> floor
8.03 s
[really-safe-money] + RoundNearest -> round
8.03 s
[really-safe-money] roundedResult :: Natural
8.03 s
[really-safe-money] roundedResult = rounder theoreticalResult
8.03 s
[really-safe-money] actualRate :: Ratio Natural
8.03 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
8.03 s
[really-safe-money] @@ -665,10 +665,10 @@
8.03 s
[really-safe-money] theoreticalResult :: Ratio Natural
8.03 s
[really-safe-money] theoreticalResult = amountAsRatio * f
8.03 s
[really-safe-money] rounder :: Ratio Natural -> Natural
8.03 s
[really-safe-money] - rounder = case r of
8.03 s
[really-safe-money] - RoundUp -> ceiling
8.03 s
[really-safe-money] - RoundDown -> floor
8.03 s
[really-safe-money] - RoundNearest -> round
8.03 s
[really-safe-money] + rounder = case r of
8.03 s
[really-safe-money] + RoundUp -> ceiling
8.03 s
[really-safe-money] + RoundDown -> floor
8.03 s
[really-safe-money] + RoundNearest -> round
8.03 s
[really-safe-money] roundedResult :: Natural
8.03 s
[really-safe-money] roundedResult = rounder theoreticalResult
8.03 s
[really-safe-money] actualRate :: Ratio Natural
8.03 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
8.03 s
[really-safe-money] @@ -678,7 +678,7 @@
8.03 s
[really-safe-money] maxBoundN :: Natural
8.03 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
8.03 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
8.03 s
[really-safe-money] - in ( if roundedResult > maxBoundN
8.03 s
[really-safe-money] + in ( if True
8.03 s
[really-safe-money] then Nothing
8.03 s
[really-safe-money] else Just result,
8.03 s
[really-safe-money] actualRate
8.03 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
8.03 s
[really-safe-money] @@ -678,7 +678,7 @@
8.03 s
[really-safe-money] maxBoundN :: Natural
8.03 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
8.03 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
8.03 s
[really-safe-money] - in ( if roundedResult > maxBoundN
8.03 s
[really-safe-money] + in ( if False
8.03 s
[really-safe-money] then Nothing
8.03 s
[really-safe-money] else Just result,
8.03 s
[really-safe-money] actualRate
8.03 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
8.03 s
[really-safe-money] @@ -678,7 +678,7 @@
8.03 s
[really-safe-money] maxBoundN :: Natural
8.03 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
8.03 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
8.03 s
[really-safe-money] - in ( if roundedResult > maxBoundN
8.03 s
[really-safe-money] + in ( if not (roundedResult > maxBoundN)
8.03 s
[really-safe-money] then Nothing
8.03 s
[really-safe-money] else Just result,
8.03 s
[really-safe-money] actualRate
8.03 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:681:9-27
8.03 s
[really-safe-money] @@ -678,9 +678,9 @@
8.03 s
[really-safe-money] maxBoundN :: Natural
8.03 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
8.03 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
8.03 s
[really-safe-money] - in ( if roundedResult > maxBoundN
8.03 s
[really-safe-money] - then Nothing
8.03 s
[really-safe-money] - else Just result,
8.03 s
[really-safe-money] + in ( if roundedResult > maxBoundN
8.03 s
[really-safe-money] + then Nothing
8.03 s
[really-safe-money] + else Just result,
8.03 s
[really-safe-money] actualRate
8.03 s
[really-safe-money] )
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
8.03 s
[really-safe-money] @@ -803,4 +803,4 @@
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
8.03 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
8.03 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
8.03 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
8.03 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
8.03 s
[really-safe-money] @@ -803,4 +803,4 @@
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
8.03 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
8.03 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
8.03 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
8.03 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
8.03 s
[really-safe-money] @@ -803,4 +803,4 @@
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
8.03 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
8.03 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
8.03 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
8.03 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
8.03 s
[really-safe-money] @@ -604,7 +604,7 @@
8.03 s
[really-safe-money] case ad of
8.03 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] + True
8.03 s
[really-safe-money] _ -> valid
8.03 s
[really-safe-money] ]
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
8.03 s
[really-safe-money] @@ -604,7 +604,7 @@
8.03 s
[really-safe-money] case ad of
8.03 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] + False
8.03 s
[really-safe-money] _ -> valid
8.03 s
[really-safe-money] ]
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
8.03 s
[really-safe-money] @@ -604,7 +604,7 @@
8.03 s
[really-safe-money] case ad of
8.03 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] + not (a1 > a2)
8.03 s
[really-safe-money] _ -> valid
8.03 s
[really-safe-money] ]
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
8.03 s
[really-safe-money] @@ -601,11 +601,11 @@
8.03 s
[really-safe-money] validate ad =
8.03 s
[really-safe-money] mconcat
8.03 s
[really-safe-money] [ genericValidate ad,
8.03 s
[really-safe-money] - case ad of
8.03 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] - declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] - _ -> valid
8.03 s
[really-safe-money] + case ad of
8.03 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] + declare "The larger chunks are larger" $
8.03 s
[really-safe-money] + a1 > a2
8.03 s
[really-safe-money] + _ -> valid
8.03 s
[really-safe-money] ]
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
8.03 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
8.03 s
[really-safe-money] @@ -601,11 +601,11 @@
8.03 s
[really-safe-money] validate ad =
8.03 s
[really-safe-money] mconcat
8.03 s
[really-safe-money] [ genericValidate ad,
8.03 s
[really-safe-money] - case ad of
8.03 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] - declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] - _ -> valid
8.03 s
[really-safe-money] + case ad of
8.03 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] + declare "The larger chunks are larger" $
8.03 s
[really-safe-money] + a1 > a2
8.03 s
[really-safe-money] + _ -> valid
8.03 s
[really-safe-money] ]
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
8.03 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
8.03 s
[really-safe-money] @@ -600,13 +600,7 @@
8.03 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
8.03 s
[really-safe-money] validate ad =
8.03 s
[really-safe-money] mconcat
8.03 s
[really-safe-money] - [ genericValidate ad,
8.03 s
[really-safe-money] - case ad of
8.03 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] - declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] - _ -> valid
8.03 s
[really-safe-money] - ]
8.03 s
[really-safe-money] + []
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
8.03 s
[really-safe-money] @@ -600,13 +600,13 @@
8.03 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
8.03 s
[really-safe-money] validate ad =
8.03 s
[really-safe-money] mconcat
8.03 s
[really-safe-money] - [ genericValidate ad,
8.03 s
[really-safe-money] - case ad of
8.03 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] - declare "The larger chunks are larger" $
8.03 s
[really-safe-money] - a1 > a2
8.03 s
[really-safe-money] - _ -> valid
8.03 s
[really-safe-money] - ]
8.03 s
[really-safe-money] + [ genericValidate ad,
8.03 s
[really-safe-money] + case ad of
8.03 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
8.03 s
[really-safe-money] + declare "The larger chunks are larger" $
8.03 s
[really-safe-money] + a1 > a2
8.03 s
[really-safe-money] + _ -> valid
8.03 s
[really-safe-money] + ]
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
8.03 s
[really-safe-money]
8.03 s
[really-safe-money] added 81 mutations
9.63 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 )
9.65 s
[really-safe-money] mutation: instrumenting Money.MultiAmount
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
9.66 s
[really-safe-money] @@ -156,10 +156,10 @@
9.66 s
[really-safe-money] fmap
9.66 s
[really-safe-money] ( ( \theoreticalResult ->
9.66 s
[really-safe-money] let rounder :: Ratio Natural -> Natural
9.66 s
[really-safe-money] - rounder = case r of
9.66 s
[really-safe-money] - RoundUp -> ceiling
9.66 s
[really-safe-money] - RoundDown -> floor
9.66 s
[really-safe-money] - RoundNearest -> round
9.66 s
[really-safe-money] + rounder = case r of
9.66 s
[really-safe-money] + RoundUp -> ceiling
9.66 s
[really-safe-money] + RoundDown -> floor
9.66 s
[really-safe-money] + RoundNearest -> round
9.66 s
[really-safe-money] roundedResult :: Natural
9.66 s
[really-safe-money] roundedResult = rounder theoreticalResult
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
9.66 s
[really-safe-money] @@ -156,10 +156,10 @@
9.66 s
[really-safe-money] fmap
9.66 s
[really-safe-money] ( ( \theoreticalResult ->
9.66 s
[really-safe-money] let rounder :: Ratio Natural -> Natural
9.66 s
[really-safe-money] - rounder = case r of
9.66 s
[really-safe-money] - RoundUp -> ceiling
9.66 s
[really-safe-money] - RoundDown -> floor
9.66 s
[really-safe-money] - RoundNearest -> round
9.66 s
[really-safe-money] + rounder = case r of
9.66 s
[really-safe-money] + RoundUp -> ceiling
9.66 s
[really-safe-money] + RoundDown -> floor
9.66 s
[really-safe-money] + RoundNearest -> round
9.66 s
[really-safe-money] roundedResult :: Natural
9.66 s
[really-safe-money] roundedResult = rounder theoreticalResult
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
9.66 s
[really-safe-money] @@ -156,10 +156,10 @@
9.66 s
[really-safe-money] fmap
9.66 s
[really-safe-money] ( ( \theoreticalResult ->
9.66 s
[really-safe-money] let rounder :: Ratio Natural -> Natural
9.66 s
[really-safe-money] - rounder = case r of
9.66 s
[really-safe-money] - RoundUp -> ceiling
9.66 s
[really-safe-money] - RoundDown -> floor
9.66 s
[really-safe-money] - RoundNearest -> round
9.66 s
[really-safe-money] + rounder = case r of
9.66 s
[really-safe-money] + RoundUp -> ceiling
9.66 s
[really-safe-money] + RoundDown -> floor
9.66 s
[really-safe-money] + RoundNearest -> round
9.66 s
[really-safe-money] roundedResult :: Natural
9.66 s
[really-safe-money] roundedResult = rounder theoreticalResult
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
9.66 s
[really-safe-money] @@ -165,7 +165,7 @@
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
9.66 s
[really-safe-money] actualResult =
9.66 s
[really-safe-money] - if roundedResult > maxBoundN
9.66 s
[really-safe-money] + if True
9.66 s
[really-safe-money] then Nothing
9.66 s
[really-safe-money] else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
9.66 s
[really-safe-money] @@ -165,7 +165,7 @@
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
9.66 s
[really-safe-money] actualResult =
9.66 s
[really-safe-money] - if roundedResult > maxBoundN
9.66 s
[really-safe-money] + if False
9.66 s
[really-safe-money] then Nothing
9.66 s
[really-safe-money] else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
9.66 s
[really-safe-money] @@ -165,7 +165,7 @@
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
9.66 s
[really-safe-money] actualResult =
9.66 s
[really-safe-money] - if roundedResult > maxBoundN
9.66 s
[really-safe-money] + if not (roundedResult > maxBoundN)
9.66 s
[really-safe-money] then Nothing
9.66 s
[really-safe-money] else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
9.66 s
[really-safe-money] @@ -165,9 +165,9 @@
9.66 s
[really-safe-money] maxBoundN :: Natural
9.66 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
9.66 s
[really-safe-money] actualResult =
9.66 s
[really-safe-money] - if roundedResult > maxBoundN
9.66 s
[really-safe-money] - then Nothing
9.66 s
[really-safe-money] - else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] + if roundedResult > maxBoundN
9.66 s
[really-safe-money] + then Nothing
9.66 s
[really-safe-money] + else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] LT -> RoundedDown
9.66 s
[really-safe-money] EQ -> DidNotRound
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
9.66 s
[really-safe-money] @@ -168,10 +168,10 @@
9.66 s
[really-safe-money] if roundedResult > maxBoundN
9.66 s
[really-safe-money] then Nothing
9.66 s
[really-safe-money] else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] - LT -> RoundedDown
9.66 s
[really-safe-money] - EQ -> DidNotRound
9.66 s
[really-safe-money] - GT -> RoundedUp
9.66 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] + LT -> RoundedDown
9.66 s
[really-safe-money] + EQ -> DidNotRound
9.66 s
[really-safe-money] + GT -> RoundedUp
9.66 s
[really-safe-money] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
9.66 s
[really-safe-money] )
9.66 s
[really-safe-money] . Prelude.sum
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
9.66 s
[really-safe-money] @@ -168,10 +168,10 @@
9.66 s
[really-safe-money] if roundedResult > maxBoundN
9.66 s
[really-safe-money] then Nothing
9.66 s
[really-safe-money] else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] - LT -> RoundedDown
9.66 s
[really-safe-money] - EQ -> DidNotRound
9.66 s
[really-safe-money] - GT -> RoundedUp
9.66 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] + LT -> RoundedDown
9.66 s
[really-safe-money] + EQ -> DidNotRound
9.66 s
[really-safe-money] + GT -> RoundedUp
9.66 s
[really-safe-money] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
9.66 s
[really-safe-money] )
9.66 s
[really-safe-money] . Prelude.sum
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
9.66 s
[really-safe-money] @@ -168,10 +168,10 @@
9.66 s
[really-safe-money] if roundedResult > maxBoundN
9.66 s
[really-safe-money] then Nothing
9.66 s
[really-safe-money] else Just (fromIntegral roundedResult)
9.66 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] - LT -> RoundedDown
9.66 s
[really-safe-money] - EQ -> DidNotRound
9.66 s
[really-safe-money] - GT -> RoundedUp
9.66 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
9.66 s
[really-safe-money] + LT -> RoundedDown
9.66 s
[really-safe-money] + EQ -> DidNotRound
9.66 s
[really-safe-money] + GT -> RoundedUp
9.66 s
[really-safe-money] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
9.66 s
[really-safe-money] )
9.66 s
[really-safe-money] . Prelude.sum
9.66 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
9.66 s
[really-safe-money] @@ -116,7 +116,7 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.subtract a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] + if True
9.66 s
[really-safe-money] then M.delete currency m
9.66 s
[really-safe-money] else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
9.66 s
[really-safe-money] @@ -116,7 +116,7 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.subtract a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] + if False
9.66 s
[really-safe-money] then M.delete currency m
9.66 s
[really-safe-money] else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
9.66 s
[really-safe-money] @@ -116,7 +116,7 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.subtract a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] + if not (r == Amount.zero)
9.66 s
[really-safe-money] then M.delete currency m
9.66 s
[really-safe-money] else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
9.66 s
[really-safe-money] @@ -116,9 +116,9 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.subtract a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] - then M.delete currency m
9.66 s
[really-safe-money] - else M.insert currency r m
9.66 s
[really-safe-money] + if r == Amount.zero
9.66 s
[really-safe-money] + then M.delete currency m
9.66 s
[really-safe-money] + else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] -- | Try to convert every amount to one currency.
9.66 s
[really-safe-money] --
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
9.66 s
[really-safe-money] @@ -111,14 +111,14 @@
9.66 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.66 s
[really-safe-money] subtractAmount m _ (Amount 0) = Just m
9.66 s
[really-safe-money] subtractAmount (MultiAmount m) currency amount =
9.66 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
9.66 s
[really-safe-money] - Nothing -> Nothing -- Can't go below zero
9.66 s
[really-safe-money] - Just a -> do
9.66 s
[really-safe-money] - r <- Amount.subtract a amount
9.66 s
[really-safe-money] - Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] - then M.delete currency m
9.66 s
[really-safe-money] - else M.insert currency r m
9.66 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
9.66 s
[really-safe-money] + Nothing -> Nothing -- Can't go below zero
9.66 s
[really-safe-money] + Just a -> do
9.66 s
[really-safe-money] + r <- Amount.subtract a amount
9.66 s
[really-safe-money] + Just $
9.66 s
[really-safe-money] + if r == Amount.zero
9.66 s
[really-safe-money] + then M.delete currency m
9.66 s
[really-safe-money] + else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] -- | Try to convert every amount to one currency.
9.66 s
[really-safe-money] --
9.66 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
9.66 s
[really-safe-money] @@ -111,14 +111,14 @@
9.66 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.66 s
[really-safe-money] subtractAmount m _ (Amount 0) = Just m
9.66 s
[really-safe-money] subtractAmount (MultiAmount m) currency amount =
9.66 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
9.66 s
[really-safe-money] - Nothing -> Nothing -- Can't go below zero
9.66 s
[really-safe-money] - Just a -> do
9.66 s
[really-safe-money] - r <- Amount.subtract a amount
9.66 s
[really-safe-money] - Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] - then M.delete currency m
9.66 s
[really-safe-money] - else M.insert currency r m
9.66 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
9.66 s
[really-safe-money] + Nothing -> Nothing -- Can't go below zero
9.66 s
[really-safe-money] + Just a -> do
9.66 s
[really-safe-money] + r <- Amount.subtract a amount
9.66 s
[really-safe-money] + Just $
9.66 s
[really-safe-money] + if r == Amount.zero
9.66 s
[really-safe-money] + then M.delete currency m
9.66 s
[really-safe-money] + else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] -- | Try to convert every amount to one currency.
9.66 s
[really-safe-money] --
9.66 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
9.66 s
[really-safe-money] @@ -103,7 +103,7 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.add a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] + if True
9.66 s
[really-safe-money] then M.delete currency m
9.66 s
[really-safe-money] else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
9.66 s
[really-safe-money] @@ -103,7 +103,7 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.add a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] + if False
9.66 s
[really-safe-money] then M.delete currency m
9.66 s
[really-safe-money] else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
9.66 s
[really-safe-money] @@ -103,7 +103,7 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.add a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] + if not (r == Amount.zero)
9.66 s
[really-safe-money] then M.delete currency m
9.66 s
[really-safe-money] else M.insert currency r m
9.66 s
[really-safe-money]
9.66 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
9.66 s
[really-safe-money] @@ -103,9 +103,9 @@
9.66 s
[really-safe-money] Just a -> do
9.66 s
[really-safe-money] r <- Amount.add a amount
9.66 s
[really-safe-money] Just $
9.66 s
[really-safe-money] - if r == Amount.zero
9.66 s
[really-safe-money] - then M.delete currency m
9.66 s
[really-safe-money] - else M.insert currency r m
9.66 s
[really-safe-money] + if r == Amount.zero
9.66 s
[really-safe-money] + then M.delete currency m
9.67 s
[really-safe-money] + else M.insert currency r m
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
9.67 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.67 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
9.67 s
[really-safe-money] @@ -98,14 +98,14 @@
9.67 s
[really-safe-money] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.67 s
[really-safe-money] addAmount m _ (Amount 0) = Just m
9.67 s
[really-safe-money] addAmount (MultiAmount m) currency amount =
9.67 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
9.67 s
[really-safe-money] - Nothing -> Just $ M.insert currency amount m
9.67 s
[really-safe-money] - Just a -> do
9.67 s
[really-safe-money] - r <- Amount.add a amount
9.67 s
[really-safe-money] - Just $
9.67 s
[really-safe-money] - if r == Amount.zero
9.67 s
[really-safe-money] - then M.delete currency m
9.67 s
[really-safe-money] - else M.insert currency r m
9.67 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
9.67 s
[really-safe-money] + Nothing -> Just $ M.insert currency amount m
9.67 s
[really-safe-money] + Just a -> do
9.67 s
[really-safe-money] + r <- Amount.add a amount
9.67 s
[really-safe-money] + Just $
9.67 s
[really-safe-money] + if r == Amount.zero
9.67 s
[really-safe-money] + then M.delete currency m
9.67 s
[really-safe-money] + else M.insert currency r m
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
9.67 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.67 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
9.67 s
[really-safe-money] @@ -98,14 +98,14 @@
9.67 s
[really-safe-money] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.67 s
[really-safe-money] addAmount m _ (Amount 0) = Just m
9.67 s
[really-safe-money] addAmount (MultiAmount m) currency amount =
9.67 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
9.67 s
[really-safe-money] - Nothing -> Just $ M.insert currency amount m
9.67 s
[really-safe-money] - Just a -> do
9.67 s
[really-safe-money] - r <- Amount.add a amount
9.67 s
[really-safe-money] - Just $
9.67 s
[really-safe-money] - if r == Amount.zero
9.67 s
[really-safe-money] - then M.delete currency m
9.67 s
[really-safe-money] - else M.insert currency r m
9.67 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
9.67 s
[really-safe-money] + Nothing -> Just $ M.insert currency amount m
9.67 s
[really-safe-money] + Just a -> do
9.67 s
[really-safe-money] + r <- Amount.add a amount
9.67 s
[really-safe-money] + Just $
9.67 s
[really-safe-money] + if r == Amount.zero
9.67 s
[really-safe-money] + then M.delete currency m
9.67 s
[really-safe-money] + else M.insert currency r m
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
9.67 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
9.67 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
9.67 s
[really-safe-money] @@ -70,7 +70,7 @@
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
9.67 s
[really-safe-money] fromAmount currency amount =
9.67 s
[really-safe-money] - if amount == Amount.zero
9.67 s
[really-safe-money] + if True
9.67 s
[really-safe-money] then zero
9.67 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
9.67 s
[really-safe-money] @@ -70,7 +70,7 @@
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
9.67 s
[really-safe-money] fromAmount currency amount =
9.67 s
[really-safe-money] - if amount == Amount.zero
9.67 s
[really-safe-money] + if False
9.67 s
[really-safe-money] then zero
9.67 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
9.67 s
[really-safe-money] @@ -70,7 +70,7 @@
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
9.67 s
[really-safe-money] fromAmount currency amount =
9.67 s
[really-safe-money] - if amount == Amount.zero
9.67 s
[really-safe-money] + if not (amount == Amount.zero)
9.67 s
[really-safe-money] then zero
9.67 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
9.67 s
[really-safe-money] @@ -70,9 +70,9 @@
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
9.67 s
[really-safe-money] fromAmount currency amount =
9.67 s
[really-safe-money] - if amount == Amount.zero
9.67 s
[really-safe-money] - then zero
9.67 s
[really-safe-money] - else MultiAmount $ M.singleton currency amount
9.67 s
[really-safe-money] + if amount == Amount.zero
9.67 s
[really-safe-money] + then zero
9.67 s
[really-safe-money] + else MultiAmount $ M.singleton currency amount
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] -- | No money of any currency
9.67 s
[really-safe-money] zero :: MultiAmount currency
9.67 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
9.67 s
[really-safe-money] @@ -63,7 +63,7 @@
9.67 s
[really-safe-money] [ genericValidate ma,
9.67 s
[really-safe-money] decorateMap m $ \_ a ->
9.67 s
[really-safe-money] declare "The amount is not zero" $
9.67 s
[really-safe-money] - a /= Amount.zero
9.67 s
[really-safe-money] + True
9.67 s
[really-safe-money] ]
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
9.67 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
9.67 s
[really-safe-money] @@ -63,7 +63,7 @@
9.67 s
[really-safe-money] [ genericValidate ma,
9.67 s
[really-safe-money] decorateMap m $ \_ a ->
9.67 s
[really-safe-money] declare "The amount is not zero" $
9.67 s
[really-safe-money] - a /= Amount.zero
9.67 s
[really-safe-money] + False
9.67 s
[really-safe-money] ]
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
9.67 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
9.67 s
[really-safe-money] @@ -63,7 +63,7 @@
9.67 s
[really-safe-money] [ genericValidate ma,
9.67 s
[really-safe-money] decorateMap m $ \_ a ->
9.67 s
[really-safe-money] declare "The amount is not zero" $
9.67 s
[really-safe-money] - a /= Amount.zero
9.67 s
[really-safe-money] + not (a /= Amount.zero)
9.67 s
[really-safe-money] ]
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
9.67 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
9.67 s
[really-safe-money] @@ -60,11 +60,7 @@
9.67 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
9.67 s
[really-safe-money] validate ma@(MultiAmount m) =
9.67 s
[really-safe-money] mconcat
9.67 s
[really-safe-money] - [ genericValidate ma,
9.67 s
[really-safe-money] - decorateMap m $ \_ a ->
9.67 s
[really-safe-money] - declare "The amount is not zero" $
9.67 s
[really-safe-money] - a /= Amount.zero
9.67 s
[really-safe-money] - ]
9.67 s
[really-safe-money] + []
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
9.67 s
[really-safe-money] @@ -60,11 +60,11 @@
9.67 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
9.67 s
[really-safe-money] validate ma@(MultiAmount m) =
9.67 s
[really-safe-money] mconcat
9.67 s
[really-safe-money] - [ genericValidate ma,
9.67 s
[really-safe-money] - decorateMap m $ \_ a ->
9.67 s
[really-safe-money] - declare "The amount is not zero" $
9.67 s
[really-safe-money] - a /= Amount.zero
9.67 s
[really-safe-money] - ]
9.67 s
[really-safe-money] + [ genericValidate ma,
9.67 s
[really-safe-money] + decorateMap m $ \_ a ->
9.67 s
[really-safe-money] + declare "The amount is not zero" $
9.67 s
[really-safe-money] + a /= Amount.zero
9.67 s
[really-safe-money] + ]
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
9.67 s
[really-safe-money]
9.67 s
[really-safe-money] added 31 mutations
10.20 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 )
10.49 s
[really-safe-money] mutation: instrumenting Money.AmountOf
10.49 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
10.49 s
[really-safe-money] @@ -212,11 +212,11 @@
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] -- | See 'Amount.distribute'
10.49 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
10.49 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
10.49 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.49 s
[really-safe-money] - DistributedZero -> DistributedZero
10.49 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.49 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.49 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
10.49 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.49 s
[really-safe-money] + DistributedZero -> DistributedZero
10.49 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.49 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
10.49 s
[really-safe-money] @@ -212,11 +212,11 @@
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] -- | See 'Amount.distribute'
10.49 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
10.49 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
10.49 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.49 s
[really-safe-money] - DistributedZero -> DistributedZero
10.49 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.49 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.49 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
10.49 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.49 s
[really-safe-money] + DistributedZero -> DistributedZero
10.49 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.49 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
10.49 s
[really-safe-money] @@ -212,11 +212,11 @@
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] -- | See 'Amount.distribute'
10.49 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
10.49 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
10.49 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.49 s
[really-safe-money] - DistributedZero -> DistributedZero
10.49 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.49 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.49 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
10.49 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.49 s
[really-safe-money] + DistributedZero -> DistributedZero
10.49 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.49 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
10.49 s
[really-safe-money]
10.49 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
10.50 s
[really-safe-money] @@ -212,11 +212,11 @@
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | See 'Amount.distribute'
10.50 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
10.50 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
10.50 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.50 s
[really-safe-money] - DistributedZero -> DistributedZero
10.50 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.50 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.50 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
10.50 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.50 s
[really-safe-money] + DistributedZero -> DistributedZero
10.50 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
10.50 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] added 4 mutations
10.50 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 )
10.50 s
[really-safe-money] mutation: instrumenting Money.Account
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
10.50 s
[really-safe-money] @@ -550,11 +550,11 @@
10.50 s
[really-safe-money] let aa1 = abs a1
10.50 s
[really-safe-money] aa2 = abs a2
10.50 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
10.50 s
[really-safe-money] - in case (a1, a2) of
10.50 s
[really-safe-money] - (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Negative _) -> mr
10.50 s
[really-safe-money] + in case (a1, a2) of
10.50 s
[really-safe-money] + (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Negative _) -> mr
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
10.50 s
[really-safe-money] -- another currency using a conversion rate.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
10.50 s
[really-safe-money] @@ -550,11 +550,11 @@
10.50 s
[really-safe-money] let aa1 = abs a1
10.50 s
[really-safe-money] aa2 = abs a2
10.50 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
10.50 s
[really-safe-money] - in case (a1, a2) of
10.50 s
[really-safe-money] - (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Negative _) -> mr
10.50 s
[really-safe-money] + in case (a1, a2) of
10.50 s
[really-safe-money] + (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Negative _) -> mr
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
10.50 s
[really-safe-money] -- another currency using a conversion rate.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
10.50 s
[really-safe-money] @@ -550,11 +550,11 @@
10.50 s
[really-safe-money] let aa1 = abs a1
10.50 s
[really-safe-money] aa2 = abs a2
10.50 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
10.50 s
[really-safe-money] - in case (a1, a2) of
10.50 s
[really-safe-money] - (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Negative _) -> mr
10.50 s
[really-safe-money] + in case (a1, a2) of
10.50 s
[really-safe-money] + (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Negative _) -> mr
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
10.50 s
[really-safe-money] -- another currency using a conversion rate.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
10.50 s
[really-safe-money] @@ -550,11 +550,11 @@
10.50 s
[really-safe-money] let aa1 = abs a1
10.50 s
[really-safe-money] aa2 = abs a2
10.50 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
10.50 s
[really-safe-money] - in case (a1, a2) of
10.50 s
[really-safe-money] - (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] - (Negative _, Negative _) -> mr
10.50 s
[really-safe-money] + in case (a1, a2) of
10.50 s
[really-safe-money] + (Positive _, Positive _) -> mr
10.50 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
10.50 s
[really-safe-money] + (Negative _, Negative _) -> mr
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
10.50 s
[really-safe-money] -- another currency using a conversion rate.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
10.50 s
[really-safe-money] @@ -588,9 +588,9 @@
10.50 s
[really-safe-money] (Maybe Account, Maybe ConversionRate)
10.50 s
[really-safe-money] convert r qf1 a cr qf2 =
10.50 s
[really-safe-money] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
10.50 s
[really-safe-money] - in case a of
10.50 s
[really-safe-money] - Positive _ -> (Positive <$> ma, mr)
10.50 s
[really-safe-money] - Negative _ -> (Negative <$> ma, mr)
10.50 s
[really-safe-money] + in case a of
10.50 s
[really-safe-money] + Positive _ -> (Positive <$> ma, mr)
10.50 s
[really-safe-money] + Negative _ -> (Negative <$> ma, mr)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Format an account of money without a symbol.
10.50 s
[really-safe-money] --
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
10.50 s
[really-safe-money] @@ -588,9 +588,9 @@
10.50 s
[really-safe-money] (Maybe Account, Maybe ConversionRate)
10.50 s
[really-safe-money] convert r qf1 a cr qf2 =
10.50 s
[really-safe-money] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
10.50 s
[really-safe-money] - in case a of
10.50 s
[really-safe-money] - Positive _ -> (Positive <$> ma, mr)
10.50 s
[really-safe-money] - Negative _ -> (Negative <$> ma, mr)
10.50 s
[really-safe-money] + in case a of
10.50 s
[really-safe-money] + Positive _ -> (Positive <$> ma, mr)
10.50 s
[really-safe-money] + Negative _ -> (Negative <$> ma, mr)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Format an account of money without a symbol.
10.50 s
[really-safe-money] --
10.50 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
10.50 s
[really-safe-money] @@ -418,7 +418,7 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] + f = case (compare factor 1, compare account zero) of
10.50 s
[really-safe-money] (EQ, _) -> const zero
10.50 s
[really-safe-money] (_, EQ) -> const zero
10.50 s
[really-safe-money] (GT, GT) -> Positive
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
10.50 s
[really-safe-money] @@ -418,13 +418,13 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] - (EQ, _) -> const zero
10.50 s
[really-safe-money] - (_, EQ) -> const zero
10.50 s
[really-safe-money] - (GT, GT) -> Positive
10.50 s
[really-safe-money] - (GT, LT) -> Negative
10.50 s
[really-safe-money] - (LT, GT) -> Negative
10.50 s
[really-safe-money] - (LT, LT) -> Positive
10.50 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] + (EQ, _) -> const zero
10.50 s
[really-safe-money] + (_, EQ) -> const zero
10.50 s
[really-safe-money] + (GT, GT) -> Positive
10.50 s
[really-safe-money] + (GT, LT) -> Negative
10.50 s
[really-safe-money] + (LT, GT) -> Negative
10.50 s
[really-safe-money] + (LT, LT) -> Positive
10.50 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
10.50 s
[really-safe-money] @@ -418,13 +418,13 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] - (EQ, _) -> const zero
10.50 s
[really-safe-money] - (_, EQ) -> const zero
10.50 s
[really-safe-money] - (GT, GT) -> Positive
10.50 s
[really-safe-money] - (GT, LT) -> Negative
10.50 s
[really-safe-money] - (LT, GT) -> Negative
10.50 s
[really-safe-money] - (LT, LT) -> Positive
10.50 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] + (EQ, _) -> const zero
10.50 s
[really-safe-money] + (_, EQ) -> const zero
10.50 s
[really-safe-money] + (GT, GT) -> Positive
10.50 s
[really-safe-money] + (GT, LT) -> Negative
10.50 s
[really-safe-money] + (LT, GT) -> Negative
10.50 s
[really-safe-money] + (LT, LT) -> Positive
10.50 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
10.50 s
[really-safe-money] @@ -418,13 +418,13 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] - (EQ, _) -> const zero
10.50 s
[really-safe-money] - (_, EQ) -> const zero
10.50 s
[really-safe-money] - (GT, GT) -> Positive
10.50 s
[really-safe-money] - (GT, LT) -> Negative
10.50 s
[really-safe-money] - (LT, GT) -> Negative
10.50 s
[really-safe-money] - (LT, LT) -> Positive
10.50 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] + (EQ, _) -> const zero
10.50 s
[really-safe-money] + (_, EQ) -> const zero
10.50 s
[really-safe-money] + (GT, GT) -> Positive
10.50 s
[really-safe-money] + (GT, LT) -> Negative
10.50 s
[really-safe-money] + (LT, GT) -> Negative
10.50 s
[really-safe-money] + (LT, LT) -> Positive
10.50 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
10.50 s
[really-safe-money] @@ -418,13 +418,13 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] - (EQ, _) -> const zero
10.50 s
[really-safe-money] - (_, EQ) -> const zero
10.50 s
[really-safe-money] - (GT, GT) -> Positive
10.50 s
[really-safe-money] - (GT, LT) -> Negative
10.50 s
[really-safe-money] - (LT, GT) -> Negative
10.50 s
[really-safe-money] - (LT, LT) -> Positive
10.50 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] + (EQ, _) -> const zero
10.50 s
[really-safe-money] + (_, EQ) -> const zero
10.50 s
[really-safe-money] + (GT, GT) -> Positive
10.50 s
[really-safe-money] + (GT, LT) -> Negative
10.50 s
[really-safe-money] + (LT, GT) -> Negative
10.50 s
[really-safe-money] + (LT, LT) -> Positive
10.50 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
10.50 s
[really-safe-money] @@ -418,13 +418,13 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] - (EQ, _) -> const zero
10.50 s
[really-safe-money] - (_, EQ) -> const zero
10.50 s
[really-safe-money] - (GT, GT) -> Positive
10.50 s
[really-safe-money] - (GT, LT) -> Negative
10.50 s
[really-safe-money] - (LT, GT) -> Negative
10.50 s
[really-safe-money] - (LT, LT) -> Positive
10.50 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] + (EQ, _) -> const zero
10.50 s
[really-safe-money] + (_, EQ) -> const zero
10.50 s
[really-safe-money] + (GT, GT) -> Positive
10.50 s
[really-safe-money] + (GT, LT) -> Negative
10.50 s
[really-safe-money] + (LT, GT) -> Negative
10.50 s
[really-safe-money] + (LT, LT) -> Positive
10.50 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
10.50 s
[really-safe-money]
10.50 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
10.50 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
10.50 s
[really-safe-money] @@ -418,13 +418,13 @@
10.50 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
10.50 s
[really-safe-money] multiply factor account =
10.50 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
10.50 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
10.50 s
[really-safe-money] - (EQ, _) -> const zero
10.50 s
[really-safe-money] - (_, EQ) -> const zero
10.50 s
[really-safe-money] - (GT, GT) -> Positive
10.50 s
[really-safe-money] - (GT, LT) -> Negative
10.50 s
[really-safe-money] - (LT, GT) -> Negative
10.50 s
[really-safe-money] - (LT, LT) -> Positive
10.50 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
10.51 s
[really-safe-money] + (EQ, _) -> const zero
10.51 s
[really-safe-money] + (_, EQ) -> const zero
10.51 s
[really-safe-money] + (GT, GT) -> Positive
10.51 s
[really-safe-money] + (GT, LT) -> Negative
10.51 s
[really-safe-money] + (LT, GT) -> Negative
10.51 s
[really-safe-money] + (LT, LT) -> Positive
10.51 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
10.51 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
10.51 s
[really-safe-money] @@ -448,7 +448,7 @@
10.51 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] DistributedZero -> DistributedZero
10.51 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] + if True
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
10.51 s
[really-safe-money] @@ -448,7 +448,7 @@
10.51 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] DistributedZero -> DistributedZero
10.51 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] + if False
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
10.51 s
[really-safe-money] @@ -448,7 +448,7 @@
10.51 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] DistributedZero -> DistributedZero
10.51 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] + if not (a >= zero)
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:451:11-76
10.51 s
[really-safe-money] @@ -448,9 +448,9 @@
10.51 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] DistributedZero -> DistributedZero
10.51 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] if a >= zero
10.51 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
10.51 s
[really-safe-money] @@ -452,7 +452,7 @@
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] + if True
10.51 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
10.51 s
[really-safe-money] @@ -452,7 +452,7 @@
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] + if False
10.51 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
10.51 s
[really-safe-money] @@ -452,7 +452,7 @@
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] + if not (a >= zero)
10.51 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:455:11-136
10.51 s
[really-safe-money] @@ -452,9 +452,9 @@
10.51 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
10.51 s
[really-safe-money] @@ -444,17 +444,17 @@
10.51 s
[really-safe-money] distribute a f =
10.51 s
[really-safe-money] let aa = abs a
10.51 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
10.51 s
[really-safe-money] - in case Amount.distribute aa af of
10.51 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] - DistributedZero -> DistributedZero
10.51 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money] + in case Amount.distribute aa af of
10.51 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] + DistributedZero -> DistributedZero
10.51 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
10.51 s
[really-safe-money] @@ -444,17 +444,17 @@
10.51 s
[really-safe-money] distribute a f =
10.51 s
[really-safe-money] let aa = abs a
10.51 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
10.51 s
[really-safe-money] - in case Amount.distribute aa af of
10.51 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] - DistributedZero -> DistributedZero
10.51 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money] + in case Amount.distribute aa af of
10.51 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] + DistributedZero -> DistributedZero
10.51 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
10.51 s
[really-safe-money] @@ -444,17 +444,17 @@
10.51 s
[really-safe-money] distribute a f =
10.51 s
[really-safe-money] let aa = abs a
10.51 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
10.51 s
[really-safe-money] - in case Amount.distribute aa af of
10.51 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] - DistributedZero -> DistributedZero
10.51 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money] + in case Amount.distribute aa af of
10.51 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] + DistributedZero -> DistributedZero
10.51 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
10.51 s
[really-safe-money] @@ -444,17 +444,17 @@
10.51 s
[really-safe-money] distribute a f =
10.51 s
[really-safe-money] let aa = abs a
10.51 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
10.51 s
[really-safe-money] - in case Amount.distribute aa af of
10.51 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] - DistributedZero -> DistributedZero
10.51 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] - if a >= zero
10.51 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money] + in case Amount.distribute aa af of
10.51 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
10.51 s
[really-safe-money] + DistributedZero -> DistributedZero
10.51 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
10.51 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
10.51 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
10.51 s
[really-safe-money] + if a >= zero
10.51 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
10.51 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
10.51 s
[really-safe-money]
10.51 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
10.51 s
[really-safe-money] @@ -519,10 +519,10 @@
10.51 s
[really-safe-money] let aa = abs account
10.51 s
[really-safe-money] (amount, actualFraction) = Amount.fraction ro aa af
10.51 s
[really-safe-money] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
10.51 s
[really-safe-money] - func ma r = case compare account zero of
10.51 s
[really-safe-money] - EQ -> (Just zero, r)
10.51 s
[really-safe-money] - GT -> (Positive <$> ma, r)
10.51 s
[really-safe-money] - LT -> (Negative <$> ma, r)
10.51 s
[really-safe-money] + func ma r = case compare account zero of
10.51 s
[really-safe-money] + EQ -> (Just zero, r)
10.51 s
[really-safe-money] + GT -> (Positive <$> ma, r)
10.51 s
[really-safe-money] + LT -> (Negative <$> ma, r)
10.52 s
[really-safe-money] in func amount actualFraction
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Compute the currency conversion rate between two accounts of money of
10.52 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
10.52 s
[really-safe-money] @@ -519,10 +519,10 @@
10.52 s
[really-safe-money] let aa = abs account
10.52 s
[really-safe-money] (amount, actualFraction) = Amount.fraction ro aa af
10.52 s
[really-safe-money] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
10.52 s
[really-safe-money] - func ma r = case compare account zero of
10.52 s
[really-safe-money] - EQ -> (Just zero, r)
10.52 s
[really-safe-money] - GT -> (Positive <$> ma, r)
10.52 s
[really-safe-money] - LT -> (Negative <$> ma, r)
10.52 s
[really-safe-money] + func ma r = case compare account zero of
10.52 s
[really-safe-money] + EQ -> (Just zero, r)
10.52 s
[really-safe-money] + GT -> (Positive <$> ma, r)
10.52 s
[really-safe-money] + LT -> (Negative <$> ma, r)
10.52 s
[really-safe-money] in func amount actualFraction
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Compute the currency conversion rate between two accounts of money of
10.52 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
10.52 s
[really-safe-money] @@ -519,10 +519,10 @@
10.52 s
[really-safe-money] let aa = abs account
10.52 s
[really-safe-money] (amount, actualFraction) = Amount.fraction ro aa af
10.52 s
[really-safe-money] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
10.52 s
[really-safe-money] - func ma r = case compare account zero of
10.52 s
[really-safe-money] - EQ -> (Just zero, r)
10.52 s
[really-safe-money] - GT -> (Positive <$> ma, r)
10.52 s
[really-safe-money] - LT -> (Negative <$> ma, r)
10.52 s
[really-safe-money] + func ma r = case compare account zero of
10.52 s
[really-safe-money] + EQ -> (Just zero, r)
10.52 s
[really-safe-money] + GT -> (Positive <$> ma, r)
10.52 s
[really-safe-money] + LT -> (Negative <$> ma, r)
10.52 s
[really-safe-money] in func amount actualFraction
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Compute the currency conversion rate between two accounts of money of
10.52 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
10.52 s
[really-safe-money] @@ -492,7 +492,7 @@
10.52 s
[really-safe-money] fraction rounding account f =
10.52 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] - if f >= 0
10.52 s
[really-safe-money] + if f >= 1
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] else case rounding of
10.52 s
[really-safe-money] RoundUp -> RoundDown
10.52 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
10.52 s
[really-safe-money] @@ -492,7 +492,7 @@
10.52 s
[really-safe-money] fraction rounding account f =
10.52 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] - if f >= 0
10.52 s
[really-safe-money] + if True
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] else case rounding of
10.52 s
[really-safe-money] RoundUp -> RoundDown
10.52 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
10.52 s
[really-safe-money] @@ -492,7 +492,7 @@
10.52 s
[really-safe-money] fraction rounding account f =
10.52 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] - if f >= 0
10.52 s
[really-safe-money] + if False
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] else case rounding of
10.52 s
[really-safe-money] RoundUp -> RoundDown
10.52 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
10.52 s
[really-safe-money] @@ -492,7 +492,7 @@
10.52 s
[really-safe-money] fraction rounding account f =
10.52 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] - if f >= 0
10.52 s
[really-safe-money] + if not (f >= 0)
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] else case rounding of
10.52 s
[really-safe-money] RoundUp -> RoundDown
10.52 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
10.52 s
[really-safe-money] @@ -494,10 +494,10 @@
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] if f >= 0
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] - else case rounding of
10.52 s
[really-safe-money] - RoundUp -> RoundDown
10.52 s
[really-safe-money] - RoundDown -> RoundUp
10.52 s
[really-safe-money] - RoundNearest -> RoundNearest
10.52 s
[really-safe-money] + else case rounding of
10.52 s
[really-safe-money] + RoundUp -> RoundDown
10.52 s
[really-safe-money] + RoundDown -> RoundUp
10.52 s
[really-safe-money] + RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] in if f >= 0
10.52 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
10.52 s
[really-safe-money] @@ -494,10 +494,10 @@
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] if f >= 0
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] - else case rounding of
10.52 s
[really-safe-money] - RoundUp -> RoundDown
10.52 s
[really-safe-money] - RoundDown -> RoundUp
10.52 s
[really-safe-money] - RoundNearest -> RoundNearest
10.52 s
[really-safe-money] + else case rounding of
10.52 s
[really-safe-money] + RoundUp -> RoundDown
10.52 s
[really-safe-money] + RoundDown -> RoundUp
10.52 s
[really-safe-money] + RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] in if f >= 0
10.52 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
10.52 s
[really-safe-money] @@ -494,10 +494,10 @@
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] if f >= 0
10.52 s
[really-safe-money] then rounding
10.52 s
[really-safe-money] - else case rounding of
10.52 s
[really-safe-money] - RoundUp -> RoundDown
10.52 s
[really-safe-money] - RoundDown -> RoundUp
10.52 s
[really-safe-money] - RoundNearest -> RoundNearest
10.52 s
[really-safe-money] + else case rounding of
10.52 s
[really-safe-money] + RoundUp -> RoundDown
10.52 s
[really-safe-money] + RoundDown -> RoundUp
10.52 s
[really-safe-money] + RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] in if f >= 0
10.52 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:495:9-41
10.52 s
[really-safe-money] @@ -492,12 +492,12 @@
10.52 s
[really-safe-money] fraction rounding account f =
10.52 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
10.52 s
[really-safe-money] ro =
10.52 s
[really-safe-money] - if f >= 0
10.52 s
[really-safe-money] - then rounding
10.52 s
[really-safe-money] - else case rounding of
10.52 s
[really-safe-money] - RoundUp -> RoundDown
10.52 s
[really-safe-money] - RoundDown -> RoundUp
10.52 s
[really-safe-money] - RoundNearest -> RoundNearest
10.52 s
[really-safe-money] + if f >= 0
10.52 s
[really-safe-money] + then rounding
10.52 s
[really-safe-money] + else case rounding of
10.52 s
[really-safe-money] + RoundUp -> RoundDown
10.52 s
[really-safe-money] + RoundDown -> RoundUp
10.52 s
[really-safe-money] + RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] in if f >= 0
10.52 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
10.52 s
[really-safe-money] @@ -500,7 +500,7 @@
10.52 s
[really-safe-money] RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] - in if f >= 0
10.52 s
[really-safe-money] + in if f >= 1
10.52 s
[really-safe-money] then (ma, r)
10.52 s
[really-safe-money] else (negate <$> ma, -r)
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
10.52 s
[really-safe-money] @@ -500,7 +500,7 @@
10.52 s
[really-safe-money] RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] - in if f >= 0
10.52 s
[really-safe-money] + in if True
10.52 s
[really-safe-money] then (ma, r)
10.52 s
[really-safe-money] else (negate <$> ma, -r)
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
10.52 s
[really-safe-money] @@ -500,7 +500,7 @@
10.52 s
[really-safe-money] RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] - in if f >= 0
10.52 s
[really-safe-money] + in if False
10.52 s
[really-safe-money] then (ma, r)
10.52 s
[really-safe-money] else (negate <$> ma, -r)
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
10.52 s
[really-safe-money] @@ -500,7 +500,7 @@
10.52 s
[really-safe-money] RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] - in if f >= 0
10.52 s
[really-safe-money] + in if not (f >= 0)
10.52 s
[really-safe-money] then (ma, r)
10.52 s
[really-safe-money] else (negate <$> ma, -r)
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:503:7-33
10.52 s
[really-safe-money] @@ -500,9 +500,9 @@
10.52 s
[really-safe-money] RoundNearest -> RoundNearest
10.52 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
10.52 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
10.52 s
[really-safe-money] - in if f >= 0
10.52 s
[really-safe-money] - then (ma, r)
10.52 s
[really-safe-money] - else (negate <$> ma, -r)
10.52 s
[really-safe-money] + in if f >= 0
10.52 s
[really-safe-money] + then (ma, r)
10.52 s
[really-safe-money] + else (negate <$> ma, -r)
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
10.52 s
[really-safe-money] --
10.52 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
10.52 s
[really-safe-money] @@ -230,7 +230,7 @@
10.52 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
10.52 s
[really-safe-money] fromRational quantisationFactor r =
10.52 s
[really-safe-money] let r' = Prelude.abs r
10.52 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
10.52 s
[really-safe-money] + f = if r >= 1 then Positive else Negative
10.52 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.52 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
10.52 s
[really-safe-money] @@ -230,7 +230,7 @@
10.52 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
10.52 s
[really-safe-money] fromRational quantisationFactor r =
10.52 s
[really-safe-money] let r' = Prelude.abs r
10.52 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
10.52 s
[really-safe-money] + f = if True then Positive else Negative
10.52 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.52 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
10.52 s
[really-safe-money] @@ -230,7 +230,7 @@
10.52 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
10.52 s
[really-safe-money] fromRational quantisationFactor r =
10.52 s
[really-safe-money] let r' = Prelude.abs r
10.52 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
10.52 s
[really-safe-money] + f = if False then Positive else Negative
10.52 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.52 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
10.52 s
[really-safe-money] @@ -230,7 +230,7 @@
10.52 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
10.52 s
[really-safe-money] fromRational quantisationFactor r =
10.52 s
[really-safe-money] let r' = Prelude.abs r
10.52 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
10.52 s
[really-safe-money] + f = if not (r >= 0) then Positive else Negative
10.52 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.52 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:233:11-48
10.52 s
[really-safe-money] @@ -230,7 +230,7 @@
10.52 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
10.52 s
[really-safe-money] fromRational quantisationFactor r =
10.52 s
[really-safe-money] let r' = Prelude.abs r
10.52 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
10.52 s
[really-safe-money] + f = if r >= 0 then Positive else Negative
10.52 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
10.52 s
[really-safe-money]
10.52 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.52 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
10.52 s
[really-safe-money] @@ -208,9 +208,9 @@
10.52 s
[really-safe-money] -- (-3) % 20
10.52 s
[really-safe-money] toRational :: QuantisationFactor -> Account -> Rational
10.52 s
[really-safe-money] toRational quantisationFactor account =
10.52 s
[really-safe-money] - let f = case account of
10.52 s
[really-safe-money] - Positive _ -> id
10.52 s
[really-safe-money] - Negative _ -> Prelude.negate
10.52 s
[really-safe-money] + let f = case account of
10.52 s
[really-safe-money] + Positive _ -> id
10.52 s
[really-safe-money] + Negative _ -> Prelude.negate
10.52 s
[really-safe-money] in f $ Amount.toRational quantisationFactor (abs account)
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.53 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
10.53 s
[really-safe-money] @@ -208,9 +208,9 @@
10.53 s
[really-safe-money] -- (-3) % 20
10.53 s
[really-safe-money] toRational :: QuantisationFactor -> Account -> Rational
10.53 s
[really-safe-money] toRational quantisationFactor account =
10.53 s
[really-safe-money] - let f = case account of
10.53 s
[really-safe-money] - Positive _ -> id
10.53 s
[really-safe-money] - Negative _ -> Prelude.negate
10.53 s
[really-safe-money] + let f = case account of
10.53 s
[really-safe-money] + Positive _ -> id
10.53 s
[really-safe-money] + Negative _ -> Prelude.negate
10.53 s
[really-safe-money] in f $ Amount.toRational quantisationFactor (abs account)
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
10.53 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
10.53 s
[really-safe-money] @@ -194,7 +194,7 @@
10.53 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
10.53 s
[really-safe-money] fromDouble quantisationFactor d =
10.53 s
[really-safe-money] let d' = Prelude.abs d
10.53 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
10.53 s
[really-safe-money] + f = if d >= 1 then Positive else Negative
10.53 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
10.53 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
10.53 s
[really-safe-money] @@ -194,7 +194,7 @@
10.53 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
10.53 s
[really-safe-money] fromDouble quantisationFactor d =
10.53 s
[really-safe-money] let d' = Prelude.abs d
10.53 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
10.53 s
[really-safe-money] + f = if True then Positive else Negative
10.53 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
10.53 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
10.53 s
[really-safe-money] @@ -194,7 +194,7 @@
10.53 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
10.53 s
[really-safe-money] fromDouble quantisationFactor d =
10.53 s
[really-safe-money] let d' = Prelude.abs d
10.53 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
10.53 s
[really-safe-money] + f = if False then Positive else Negative
10.53 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
10.53 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
10.53 s
[really-safe-money] @@ -194,7 +194,7 @@
10.53 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
10.53 s
[really-safe-money] fromDouble quantisationFactor d =
10.53 s
[really-safe-money] let d' = Prelude.abs d
10.53 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
10.53 s
[really-safe-money] + f = if not (d >= 0) then Positive else Negative
10.53 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
10.53 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:197:11-48
10.53 s
[really-safe-money] @@ -194,7 +194,7 @@
10.53 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
10.53 s
[really-safe-money] fromDouble quantisationFactor d =
10.53 s
[really-safe-money] let d' = Prelude.abs d
10.53 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
10.53 s
[really-safe-money] + f = if d >= 0 then Positive else Negative
10.53 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
10.53 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
10.53 s
[really-safe-money] @@ -168,9 +168,9 @@
10.53 s
[really-safe-money] -- -0.25
10.53 s
[really-safe-money] toDouble :: QuantisationFactor -> Account -> Double
10.53 s
[really-safe-money] toDouble quantisationFactor account =
10.53 s
[really-safe-money] - let f = case account of
10.53 s
[really-safe-money] - Positive _ -> id
10.53 s
[really-safe-money] - Negative _ -> Prelude.negate
10.53 s
[really-safe-money] + let f = case account of
10.53 s
[really-safe-money] + Positive _ -> id
10.53 s
[really-safe-money] + Negative _ -> Prelude.negate
10.53 s
[really-safe-money] in f $ Amount.toDouble quantisationFactor (abs account)
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn a 'Double' into an amount of money.
10.53 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
10.53 s
[really-safe-money] @@ -168,9 +168,9 @@
10.53 s
[really-safe-money] -- -0.25
10.53 s
[really-safe-money] toDouble :: QuantisationFactor -> Account -> Double
10.53 s
[really-safe-money] toDouble quantisationFactor account =
10.53 s
[really-safe-money] - let f = case account of
10.53 s
[really-safe-money] - Positive _ -> id
10.53 s
[really-safe-money] - Negative _ -> Prelude.negate
10.53 s
[really-safe-money] + let f = case account of
10.53 s
[really-safe-money] + Positive _ -> id
10.53 s
[really-safe-money] + Negative _ -> Prelude.negate
10.53 s
[really-safe-money] in f $ Amount.toDouble quantisationFactor (abs account)
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn a 'Double' into an amount of money.
10.53 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
10.53 s
[really-safe-money] @@ -152,9 +152,9 @@
10.53 s
[really-safe-money] -- We return 'Integer' because the result does not fit into a 'Word64'
10.53 s
[really-safe-money] toMinimalQuantisations :: Account -> Integer
10.53 s
[really-safe-money] toMinimalQuantisations account =
10.53 s
[really-safe-money] - let f = case account of
10.53 s
[really-safe-money] - Positive _ -> id
10.53 s
[really-safe-money] - Negative _ -> Prelude.negate
10.53 s
[really-safe-money] + let f = case account of
10.53 s
[really-safe-money] + Positive _ -> id
10.53 s
[really-safe-money] + Negative _ -> Prelude.negate
10.53 s
[really-safe-money] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
10.53 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
10.53 s
[really-safe-money] @@ -152,9 +152,9 @@
10.53 s
[really-safe-money] -- We return 'Integer' because the result does not fit into a 'Word64'
10.53 s
[really-safe-money] toMinimalQuantisations :: Account -> Integer
10.53 s
[really-safe-money] toMinimalQuantisations account =
10.53 s
[really-safe-money] - let f = case account of
10.53 s
[really-safe-money] - Positive _ -> id
10.53 s
[really-safe-money] - Negative _ -> Prelude.negate
10.53 s
[really-safe-money] + let f = case account of
10.53 s
[really-safe-money] + Positive _ -> id
10.53 s
[really-safe-money] + Negative _ -> Prelude.negate
10.53 s
[really-safe-money] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
10.53 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
10.53 s
[really-safe-money] @@ -120,7 +120,7 @@
10.53 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
10.53 s
[really-safe-money] a :: Integer
10.53 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
10.53 s
[really-safe-money] - in if a > maxBoundI
10.53 s
[really-safe-money] + in if True
10.53 s
[really-safe-money] then Nothing
10.53 s
[really-safe-money] else
10.53 s
[really-safe-money] let w :: Word64
10.53 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
10.53 s
[really-safe-money] @@ -120,7 +120,7 @@
10.53 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
10.53 s
[really-safe-money] a :: Integer
10.53 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
10.53 s
[really-safe-money] - in if a > maxBoundI
10.53 s
[really-safe-money] + in if False
10.53 s
[really-safe-money] then Nothing
10.53 s
[really-safe-money] else
10.53 s
[really-safe-money] let w :: Word64
10.53 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
10.53 s
[really-safe-money] @@ -120,7 +120,7 @@
10.53 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
10.53 s
[really-safe-money] a :: Integer
10.53 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
10.53 s
[really-safe-money] - in if a > maxBoundI
10.53 s
[really-safe-money] + in if not (a > maxBoundI)
10.53 s
[really-safe-money] then Nothing
10.53 s
[really-safe-money] else
10.53 s
[really-safe-money] let w :: Word64
10.53 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
10.53 s
[really-safe-money] @@ -128,7 +128,7 @@
10.53 s
[really-safe-money] amount :: Amount
10.53 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] in Just $
10.53 s
[really-safe-money] - if i >= 0
10.53 s
[really-safe-money] + if i >= 1
10.53 s
[really-safe-money] then Positive amount
10.53 s
[really-safe-money] else Negative amount
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
10.53 s
[really-safe-money] @@ -128,7 +128,7 @@
10.53 s
[really-safe-money] amount :: Amount
10.53 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] in Just $
10.53 s
[really-safe-money] - if i >= 0
10.53 s
[really-safe-money] + if True
10.53 s
[really-safe-money] then Positive amount
10.53 s
[really-safe-money] else Negative amount
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
10.53 s
[really-safe-money] @@ -128,7 +128,7 @@
10.53 s
[really-safe-money] amount :: Amount
10.53 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] in Just $
10.53 s
[really-safe-money] - if i >= 0
10.53 s
[really-safe-money] + if False
10.53 s
[really-safe-money] then Positive amount
10.53 s
[really-safe-money] else Negative amount
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
10.53 s
[really-safe-money] @@ -128,7 +128,7 @@
10.53 s
[really-safe-money] amount :: Amount
10.53 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] in Just $
10.53 s
[really-safe-money] - if i >= 0
10.53 s
[really-safe-money] + if not (i >= 0)
10.53 s
[really-safe-money] then Positive amount
10.53 s
[really-safe-money] else Negative amount
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:131:17-39
10.53 s
[really-safe-money] @@ -128,9 +128,9 @@
10.53 s
[really-safe-money] amount :: Amount
10.53 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] in Just $
10.53 s
[really-safe-money] - if i >= 0
10.53 s
[really-safe-money] - then Positive amount
10.53 s
[really-safe-money] - else Negative amount
10.53 s
[really-safe-money] + if i >= 0
10.53 s
[really-safe-money] + then Positive amount
10.53 s
[really-safe-money] + else Negative amount
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount into a positive account
10.53 s
[really-safe-money] --
10.53 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:123:7-39
10.53 s
[really-safe-money] @@ -120,17 +120,17 @@
10.53 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
10.53 s
[really-safe-money] a :: Integer
10.53 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
10.53 s
[really-safe-money] - in if a > maxBoundI
10.53 s
[really-safe-money] - then Nothing
10.53 s
[really-safe-money] - else
10.53 s
[really-safe-money] - let w :: Word64
10.53 s
[really-safe-money] - w = (fromIntegral :: Integer -> Word64) a
10.53 s
[really-safe-money] - amount :: Amount
10.53 s
[really-safe-money] - amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] - in Just $
10.53 s
[really-safe-money] - if i >= 0
10.53 s
[really-safe-money] - then Positive amount
10.53 s
[really-safe-money] - else Negative amount
10.53 s
[really-safe-money] + in if a > maxBoundI
10.53 s
[really-safe-money] + then Nothing
10.53 s
[really-safe-money] + else
10.53 s
[really-safe-money] + let w :: Word64
10.53 s
[really-safe-money] + w = (fromIntegral :: Integer -> Word64) a
10.53 s
[really-safe-money] + amount :: Amount
10.53 s
[really-safe-money] + amount = Amount.fromMinimalQuantisations w
10.53 s
[really-safe-money] + in Just $
10.53 s
[really-safe-money] + if i >= 0
10.53 s
[really-safe-money] + then Positive amount
10.53 s
[really-safe-money] + else Negative amount
10.53 s
[really-safe-money]
10.53 s
[really-safe-money] -- | Turn an amount into a positive account
10.53 s
[really-safe-money] --
10.53 s
[really-safe-money] added 66 mutations
11.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 )
11.18 s
[really-safe-money] mutation: instrumenting Money.MultiAccount
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
11.18 s
[really-safe-money] @@ -171,10 +171,10 @@
11.18 s
[really-safe-money] fmap
11.18 s
[really-safe-money] ( ( \theoreticalResult ->
11.18 s
[really-safe-money] let rounder :: Rational -> Integer
11.18 s
[really-safe-money] - rounder = case r of
11.18 s
[really-safe-money] - RoundUp -> ceiling
11.18 s
[really-safe-money] - RoundDown -> floor
11.18 s
[really-safe-money] - RoundNearest -> round
11.18 s
[really-safe-money] + rounder = case r of
11.18 s
[really-safe-money] + RoundUp -> ceiling
11.18 s
[really-safe-money] + RoundDown -> floor
11.18 s
[really-safe-money] + RoundNearest -> round
11.18 s
[really-safe-money] roundedResult :: Integer
11.18 s
[really-safe-money] roundedResult = rounder theoreticalResult
11.18 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
11.18 s
[really-safe-money] @@ -171,10 +171,10 @@
11.18 s
[really-safe-money] fmap
11.18 s
[really-safe-money] ( ( \theoreticalResult ->
11.18 s
[really-safe-money] let rounder :: Rational -> Integer
11.18 s
[really-safe-money] - rounder = case r of
11.18 s
[really-safe-money] - RoundUp -> ceiling
11.18 s
[really-safe-money] - RoundDown -> floor
11.18 s
[really-safe-money] - RoundNearest -> round
11.18 s
[really-safe-money] + rounder = case r of
11.18 s
[really-safe-money] + RoundUp -> ceiling
11.18 s
[really-safe-money] + RoundDown -> floor
11.18 s
[really-safe-money] + RoundNearest -> round
11.18 s
[really-safe-money] roundedResult :: Integer
11.18 s
[really-safe-money] roundedResult = rounder theoreticalResult
11.18 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
11.18 s
[really-safe-money] @@ -171,10 +171,10 @@
11.18 s
[really-safe-money] fmap
11.18 s
[really-safe-money] ( ( \theoreticalResult ->
11.18 s
[really-safe-money] let rounder :: Rational -> Integer
11.18 s
[really-safe-money] - rounder = case r of
11.18 s
[really-safe-money] - RoundUp -> ceiling
11.18 s
[really-safe-money] - RoundDown -> floor
11.18 s
[really-safe-money] - RoundNearest -> round
11.18 s
[really-safe-money] + rounder = case r of
11.18 s
[really-safe-money] + RoundUp -> ceiling
11.18 s
[really-safe-money] + RoundDown -> floor
11.18 s
[really-safe-money] + RoundNearest -> round
11.18 s
[really-safe-money] roundedResult :: Integer
11.18 s
[really-safe-money] roundedResult = rounder theoreticalResult
11.18 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
11.18 s
[really-safe-money] @@ -177,10 +177,10 @@
11.18 s
[really-safe-money] RoundNearest -> round
11.18 s
[really-safe-money] roundedResult :: Integer
11.18 s
[really-safe-money] roundedResult = rounder theoreticalResult
11.18 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] - LT -> RoundedDown
11.18 s
[really-safe-money] - EQ -> DidNotRound
11.18 s
[really-safe-money] - GT -> RoundedUp
11.18 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] + LT -> RoundedDown
11.18 s
[really-safe-money] + EQ -> DidNotRound
11.18 s
[really-safe-money] + GT -> RoundedUp
11.18 s
[really-safe-money] in (Account.fromMinimalQuantisations roundedResult, rounded)
11.18 s
[really-safe-money] )
11.18 s
[really-safe-money] . Prelude.sum
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
11.18 s
[really-safe-money] @@ -177,10 +177,10 @@
11.18 s
[really-safe-money] RoundNearest -> round
11.18 s
[really-safe-money] roundedResult :: Integer
11.18 s
[really-safe-money] roundedResult = rounder theoreticalResult
11.18 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] - LT -> RoundedDown
11.18 s
[really-safe-money] - EQ -> DidNotRound
11.18 s
[really-safe-money] - GT -> RoundedUp
11.18 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] + LT -> RoundedDown
11.18 s
[really-safe-money] + EQ -> DidNotRound
11.18 s
[really-safe-money] + GT -> RoundedUp
11.18 s
[really-safe-money] in (Account.fromMinimalQuantisations roundedResult, rounded)
11.18 s
[really-safe-money] )
11.18 s
[really-safe-money] . Prelude.sum
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
11.18 s
[really-safe-money] @@ -177,10 +177,10 @@
11.18 s
[really-safe-money] RoundNearest -> round
11.18 s
[really-safe-money] roundedResult :: Integer
11.18 s
[really-safe-money] roundedResult = rounder theoreticalResult
11.18 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] - LT -> RoundedDown
11.18 s
[really-safe-money] - EQ -> DidNotRound
11.18 s
[really-safe-money] - GT -> RoundedUp
11.18 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
11.18 s
[really-safe-money] + LT -> RoundedDown
11.18 s
[really-safe-money] + EQ -> DidNotRound
11.18 s
[really-safe-money] + GT -> RoundedUp
11.18 s
[really-safe-money] in (Account.fromMinimalQuantisations roundedResult, rounded)
11.18 s
[really-safe-money] )
11.18 s
[really-safe-money] . Prelude.sum
11.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
11.18 s
[really-safe-money] @@ -131,7 +131,7 @@
11.18 s
[really-safe-money] Just a -> do
11.18 s
[really-safe-money] r <- Account.subtract a account
11.18 s
[really-safe-money] Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] + if True
11.18 s
[really-safe-money] then M.delete currency m
11.18 s
[really-safe-money] else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
11.18 s
[really-safe-money] @@ -131,7 +131,7 @@
11.18 s
[really-safe-money] Just a -> do
11.18 s
[really-safe-money] r <- Account.subtract a account
11.18 s
[really-safe-money] Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] + if False
11.18 s
[really-safe-money] then M.delete currency m
11.18 s
[really-safe-money] else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
11.18 s
[really-safe-money] @@ -131,7 +131,7 @@
11.18 s
[really-safe-money] Just a -> do
11.18 s
[really-safe-money] r <- Account.subtract a account
11.18 s
[really-safe-money] Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] + if not (r == Account.zero)
11.18 s
[really-safe-money] then M.delete currency m
11.18 s
[really-safe-money] else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
11.18 s
[really-safe-money] @@ -131,9 +131,9 @@
11.18 s
[really-safe-money] Just a -> do
11.18 s
[really-safe-money] r <- Account.subtract a account
11.18 s
[really-safe-money] Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] - then M.delete currency m
11.18 s
[really-safe-money] - else M.insert currency r m
11.18 s
[really-safe-money] + if r == Account.zero
11.18 s
[really-safe-money] + then M.delete currency m
11.18 s
[really-safe-money] + else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] -- | Try to convert every account to one currency.
11.18 s
[really-safe-money] --
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
11.18 s
[really-safe-money] @@ -126,14 +126,14 @@
11.18 s
[really-safe-money] subtractAccount m _ (Positive (Amount 0)) = Just m
11.18 s
[really-safe-money] subtractAccount m _ (Negative (Amount 0)) = Just m
11.18 s
[really-safe-money] subtractAccount (MultiAccount m) currency account =
11.18 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
11.18 s
[really-safe-money] - Nothing -> Just $ M.insert currency (Account.negate account) m
11.18 s
[really-safe-money] - Just a -> do
11.18 s
[really-safe-money] - r <- Account.subtract a account
11.18 s
[really-safe-money] - Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] - then M.delete currency m
11.18 s
[really-safe-money] - else M.insert currency r m
11.18 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
11.18 s
[really-safe-money] + Nothing -> Just $ M.insert currency (Account.negate account) m
11.18 s
[really-safe-money] + Just a -> do
11.18 s
[really-safe-money] + r <- Account.subtract a account
11.18 s
[really-safe-money] + Just $
11.18 s
[really-safe-money] + if r == Account.zero
11.18 s
[really-safe-money] + then M.delete currency m
11.18 s
[really-safe-money] + else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] -- | Try to convert every account to one currency.
11.18 s
[really-safe-money] --
11.18 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
11.18 s
[really-safe-money] @@ -126,14 +126,14 @@
11.18 s
[really-safe-money] subtractAccount m _ (Positive (Amount 0)) = Just m
11.18 s
[really-safe-money] subtractAccount m _ (Negative (Amount 0)) = Just m
11.18 s
[really-safe-money] subtractAccount (MultiAccount m) currency account =
11.18 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
11.18 s
[really-safe-money] - Nothing -> Just $ M.insert currency (Account.negate account) m
11.18 s
[really-safe-money] - Just a -> do
11.18 s
[really-safe-money] - r <- Account.subtract a account
11.18 s
[really-safe-money] - Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] - then M.delete currency m
11.18 s
[really-safe-money] - else M.insert currency r m
11.18 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
11.18 s
[really-safe-money] + Nothing -> Just $ M.insert currency (Account.negate account) m
11.18 s
[really-safe-money] + Just a -> do
11.18 s
[really-safe-money] + r <- Account.subtract a account
11.18 s
[really-safe-money] + Just $
11.18 s
[really-safe-money] + if r == Account.zero
11.18 s
[really-safe-money] + then M.delete currency m
11.18 s
[really-safe-money] + else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] -- | Try to convert every account to one currency.
11.18 s
[really-safe-money] --
11.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
11.18 s
[really-safe-money] @@ -117,7 +117,7 @@
11.18 s
[really-safe-money] Just a -> do
11.18 s
[really-safe-money] r <- Account.add a account
11.18 s
[really-safe-money] Just $
11.18 s
[really-safe-money] - if r == Account.zero
11.18 s
[really-safe-money] + if True
11.18 s
[really-safe-money] then M.delete currency m
11.18 s
[really-safe-money] else M.insert currency r m
11.18 s
[really-safe-money]
11.18 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
11.19 s
[really-safe-money] @@ -117,7 +117,7 @@
11.19 s
[really-safe-money] Just a -> do
11.19 s
[really-safe-money] r <- Account.add a account
11.19 s
[really-safe-money] Just $
11.19 s
[really-safe-money] - if r == Account.zero
11.19 s
[really-safe-money] + if False
11.19 s
[really-safe-money] then M.delete currency m
11.19 s
[really-safe-money] else M.insert currency r m
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
11.19 s
[really-safe-money] @@ -117,7 +117,7 @@
11.19 s
[really-safe-money] Just a -> do
11.19 s
[really-safe-money] r <- Account.add a account
11.19 s
[really-safe-money] Just $
11.19 s
[really-safe-money] - if r == Account.zero
11.19 s
[really-safe-money] + if not (r == Account.zero)
11.19 s
[really-safe-money] then M.delete currency m
11.19 s
[really-safe-money] else M.insert currency r m
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
11.19 s
[really-safe-money] @@ -117,9 +117,9 @@
11.19 s
[really-safe-money] Just a -> do
11.19 s
[really-safe-money] r <- Account.add a account
11.19 s
[really-safe-money] Just $
11.19 s
[really-safe-money] - if r == Account.zero
11.19 s
[really-safe-money] - then M.delete currency m
11.19 s
[really-safe-money] - else M.insert currency r m
11.19 s
[really-safe-money] + if r == Account.zero
11.19 s
[really-safe-money] + then M.delete currency m
11.19 s
[really-safe-money] + else M.insert currency r m
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
11.19 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
11.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
11.19 s
[really-safe-money] @@ -112,14 +112,14 @@
11.19 s
[really-safe-money] addAccount m _ (Positive (Amount 0)) = Just m
11.19 s
[really-safe-money] addAccount m _ (Negative (Amount 0)) = Just m
11.19 s
[really-safe-money] addAccount (MultiAccount m) currency account =
11.19 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
11.19 s
[really-safe-money] - Nothing -> Just $ M.insert currency account m
11.19 s
[really-safe-money] - Just a -> do
11.19 s
[really-safe-money] - r <- Account.add a account
11.19 s
[really-safe-money] - Just $
11.19 s
[really-safe-money] - if r == Account.zero
11.19 s
[really-safe-money] - then M.delete currency m
11.19 s
[really-safe-money] - else M.insert currency r m
11.19 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
11.19 s
[really-safe-money] + Nothing -> Just $ M.insert currency account m
11.19 s
[really-safe-money] + Just a -> do
11.19 s
[really-safe-money] + r <- Account.add a account
11.19 s
[really-safe-money] + Just $
11.19 s
[really-safe-money] + if r == Account.zero
11.19 s
[really-safe-money] + then M.delete currency m
11.19 s
[really-safe-money] + else M.insert currency r m
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
11.19 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
11.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
11.19 s
[really-safe-money] @@ -112,14 +112,14 @@
11.19 s
[really-safe-money] addAccount m _ (Positive (Amount 0)) = Just m
11.19 s
[really-safe-money] addAccount m _ (Negative (Amount 0)) = Just m
11.19 s
[really-safe-money] addAccount (MultiAccount m) currency account =
11.19 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
11.19 s
[really-safe-money] - Nothing -> Just $ M.insert currency account m
11.19 s
[really-safe-money] - Just a -> do
11.19 s
[really-safe-money] - r <- Account.add a account
11.19 s
[really-safe-money] - Just $
11.19 s
[really-safe-money] - if r == Account.zero
11.19 s
[really-safe-money] - then M.delete currency m
11.19 s
[really-safe-money] - else M.insert currency r m
11.19 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
11.19 s
[really-safe-money] + Nothing -> Just $ M.insert currency account m
11.19 s
[really-safe-money] + Just a -> do
11.19 s
[really-safe-money] + r <- Account.add a account
11.19 s
[really-safe-money] + Just $
11.19 s
[really-safe-money] + if r == Account.zero
11.19 s
[really-safe-money] + then M.delete currency m
11.19 s
[really-safe-money] + else M.insert currency r m
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
11.19 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
11.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
11.19 s
[really-safe-money] @@ -75,7 +75,7 @@
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
11.19 s
[really-safe-money] fromAccount currency amount =
11.19 s
[really-safe-money] - if amount == Account.zero
11.19 s
[really-safe-money] + if True
11.19 s
[really-safe-money] then zero
11.19 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
11.19 s
[really-safe-money] @@ -75,7 +75,7 @@
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
11.19 s
[really-safe-money] fromAccount currency amount =
11.19 s
[really-safe-money] - if amount == Account.zero
11.19 s
[really-safe-money] + if False
11.19 s
[really-safe-money] then zero
11.19 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
11.19 s
[really-safe-money] @@ -75,7 +75,7 @@
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
11.19 s
[really-safe-money] fromAccount currency amount =
11.19 s
[really-safe-money] - if amount == Account.zero
11.19 s
[really-safe-money] + if not (amount == Account.zero)
11.19 s
[really-safe-money] then zero
11.19 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
11.19 s
[really-safe-money] @@ -75,9 +75,9 @@
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
11.19 s
[really-safe-money] fromAccount currency amount =
11.19 s
[really-safe-money] - if amount == Account.zero
11.19 s
[really-safe-money] - then zero
11.19 s
[really-safe-money] - else MultiAccount $ M.singleton currency amount
11.19 s
[really-safe-money] + if amount == Account.zero
11.19 s
[really-safe-money] + then zero
11.19 s
[really-safe-money] + else MultiAccount $ M.singleton currency amount
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- | No money of any currency
11.19 s
[really-safe-money] zero :: MultiAccount currency
11.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
11.19 s
[really-safe-money] @@ -66,7 +66,7 @@
11.19 s
[really-safe-money] [ genericValidate ma,
11.19 s
[really-safe-money] decorateMap m $ \_ a ->
11.19 s
[really-safe-money] declare "The account is not zero" $
11.19 s
[really-safe-money] - a /= Account.zero
11.19 s
[really-safe-money] + True
11.19 s
[really-safe-money] ]
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- TODO no empty currencies
11.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
11.19 s
[really-safe-money] @@ -66,7 +66,7 @@
11.19 s
[really-safe-money] [ genericValidate ma,
11.19 s
[really-safe-money] decorateMap m $ \_ a ->
11.19 s
[really-safe-money] declare "The account is not zero" $
11.19 s
[really-safe-money] - a /= Account.zero
11.19 s
[really-safe-money] + False
11.19 s
[really-safe-money] ]
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- TODO no empty currencies
11.19 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
11.19 s
[really-safe-money] @@ -66,7 +66,7 @@
11.19 s
[really-safe-money] [ genericValidate ma,
11.19 s
[really-safe-money] decorateMap m $ \_ a ->
11.19 s
[really-safe-money] declare "The account is not zero" $
11.19 s
[really-safe-money] - a /= Account.zero
11.19 s
[really-safe-money] + not (a /= Account.zero)
11.19 s
[really-safe-money] ]
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- TODO no empty currencies
11.19 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
11.19 s
[really-safe-money] @@ -63,11 +63,7 @@
11.19 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
11.19 s
[really-safe-money] validate ma@(MultiAccount m) =
11.19 s
[really-safe-money] mconcat
11.19 s
[really-safe-money] - [ genericValidate ma,
11.19 s
[really-safe-money] - decorateMap m $ \_ a ->
11.19 s
[really-safe-money] - declare "The account is not zero" $
11.19 s
[really-safe-money] - a /= Account.zero
11.19 s
[really-safe-money] - ]
11.19 s
[really-safe-money] + []
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- TODO no empty currencies
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
11.19 s
[really-safe-money] @@ -63,11 +63,11 @@
11.19 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
11.19 s
[really-safe-money] validate ma@(MultiAccount m) =
11.19 s
[really-safe-money] mconcat
11.19 s
[really-safe-money] - [ genericValidate ma,
11.19 s
[really-safe-money] - decorateMap m $ \_ a ->
11.19 s
[really-safe-money] - declare "The account is not zero" $
11.19 s
[really-safe-money] - a /= Account.zero
11.19 s
[really-safe-money] - ]
11.19 s
[really-safe-money] + [ genericValidate ma,
11.19 s
[really-safe-money] + decorateMap m $ \_ a ->
11.19 s
[really-safe-money] + declare "The account is not zero" $
11.19 s
[really-safe-money] + a /= Account.zero
11.19 s
[really-safe-money] + ]
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] -- TODO no empty currencies
11.19 s
[really-safe-money]
11.19 s
[really-safe-money] added 27 mutations
11.59 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 )
11.60 s
[really-safe-money] mutation: instrumenting Money.AccountOf
11.60 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
11.60 s
[really-safe-money] @@ -177,11 +177,11 @@
11.60 s
[really-safe-money]
11.60 s
[really-safe-money] -- | See 'Account.distribute'
11.60 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
11.60 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
11.60 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] - DistributedZero -> DistributedZero
11.61 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] + DistributedZero -> DistributedZero
11.61 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | The result of 'distribute'
11.61 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
11.61 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
11.61 s
[really-safe-money] @@ -177,11 +177,11 @@
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | See 'Account.distribute'
11.61 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
11.61 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] - DistributedZero -> DistributedZero
11.61 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] + DistributedZero -> DistributedZero
11.61 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | The result of 'distribute'
11.61 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
11.61 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
11.61 s
[really-safe-money] @@ -177,11 +177,11 @@
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | See 'Account.distribute'
11.61 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
11.61 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] - DistributedZero -> DistributedZero
11.61 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] + DistributedZero -> DistributedZero
11.61 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | The result of 'distribute'
11.61 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
11.61 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
11.61 s
[really-safe-money] @@ -177,11 +177,11 @@
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | See 'Account.distribute'
11.61 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
11.61 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] - DistributedZero -> DistributedZero
11.61 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
11.61 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
11.61 s
[really-safe-money] + DistributedZero -> DistributedZero
11.61 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
11.61 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
11.61 s
[really-safe-money]
11.61 s
[really-safe-money] -- | The result of 'distribute'
11.61 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
11.61 s
[really-safe-money] added 4 mutations
11.75 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 )
12.02 s
[really-safe-money] [ 1 of 12] Compiling Numeric.DecimalLiteral ( src/Numeric/DecimalLiteral.hs, dist/build/Numeric/DecimalLiteral.p_o )
12.28 s
[really-safe-money] mutation: instrumenting Numeric.DecimalLiteral
12.28 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
12.28 s
[really-safe-money] @@ -393,5 +393,5 @@
12.29 s
[really-safe-money] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
12.29 s
[really-safe-money] where
12.29 s
[really-safe-money] go = \case
12.29 s
[really-safe-money] - Nothing -> Just True
12.29 s
[really-safe-money] + Nothing -> Just False
12.29 s
[really-safe-money] s -> s
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
12.29 s
[really-safe-money] @@ -365,7 +365,7 @@
12.29 s
[really-safe-money] setMinimumDigits wantedDigits dl =
12.29 s
[really-safe-money] let currentDigits :: Word8
12.29 s
[really-safe-money] currentDigits = digits dl
12.29 s
[really-safe-money] - in if wantedDigits <= currentDigits
12.29 s
[really-safe-money] + in if True
12.29 s
[really-safe-money] then dl
12.29 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
12.29 s
[really-safe-money] where
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
12.29 s
[really-safe-money] @@ -365,7 +365,7 @@
12.29 s
[really-safe-money] setMinimumDigits wantedDigits dl =
12.29 s
[really-safe-money] let currentDigits :: Word8
12.29 s
[really-safe-money] currentDigits = digits dl
12.29 s
[really-safe-money] - in if wantedDigits <= currentDigits
12.29 s
[really-safe-money] + in if False
12.29 s
[really-safe-money] then dl
12.29 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
12.29 s
[really-safe-money] where
12.29 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
12.29 s
[really-safe-money] @@ -365,7 +365,7 @@
12.29 s
[really-safe-money] setMinimumDigits wantedDigits dl =
12.29 s
[really-safe-money] let currentDigits :: Word8
12.29 s
[really-safe-money] currentDigits = digits dl
12.29 s
[really-safe-money] - in if wantedDigits <= currentDigits
12.29 s
[really-safe-money] + in if not (wantedDigits <= currentDigits)
12.29 s
[really-safe-money] then dl
12.29 s
[really-safe-money] else increaseDigits (wantedDigits - currentDigits) dl
12.29 s
[really-safe-money] where
12.29 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
12.29 s
[really-safe-money] @@ -365,9 +365,9 @@
12.29 s
[really-safe-money] setMinimumDigits wantedDigits dl =
12.29 s
[really-safe-money] let currentDigits :: Word8
12.29 s
[really-safe-money] currentDigits = digits dl
12.29 s
[really-safe-money] - in if wantedDigits <= currentDigits
12.29 s
[really-safe-money] - then dl
12.29 s
[really-safe-money] - else increaseDigits (wantedDigits - currentDigits) dl
12.29 s
[really-safe-money] + in if wantedDigits <= currentDigits
12.29 s
[really-safe-money] + then dl
12.29 s
[really-safe-money] + else increaseDigits (wantedDigits - currentDigits) dl
12.29 s
[really-safe-money] where
12.29 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
12.29 s
[really-safe-money] increaseDigits 0 = id
12.29 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
12.29 s
[really-safe-money] @@ -372,7 +372,7 @@
12.29 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
12.29 s
[really-safe-money] increaseDigits 0 = id
12.29 s
[really-safe-money] increaseDigits w = \case
12.29 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
12.29 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Ensures that a positive literal has no sign
12.29 s
[really-safe-money] --
12.29 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
12.29 s
[really-safe-money] @@ -372,7 +372,7 @@
12.29 s
[really-safe-money] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
12.29 s
[really-safe-money] increaseDigits 0 = id
12.29 s
[really-safe-money] increaseDigits w = \case
12.29 s
[really-safe-money] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
12.29 s
[really-safe-money] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Ensures that a positive literal has no sign
12.29 s
[really-safe-money] --
12.29 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
12.29 s
[really-safe-money] @@ -334,7 +334,7 @@
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money] +numSign a = if a >= 1 then Nothing else Just False
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
12.29 s
[really-safe-money] signSignum = \case
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
12.29 s
[really-safe-money] @@ -334,7 +334,7 @@
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money] +numSign a = if True then Nothing else Just False
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
12.29 s
[really-safe-money] signSignum = \case
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
12.29 s
[really-safe-money] @@ -334,7 +334,7 @@
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money] +numSign a = if False then Nothing else Just False
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
12.29 s
[really-safe-money] signSignum = \case
12.29 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
12.29 s
[really-safe-money] @@ -334,7 +334,7 @@
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money] +numSign a = if not (a >= 0) then Nothing else Just False
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
12.29 s
[really-safe-money] signSignum = \case
12.29 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
12.29 s
[really-safe-money] @@ -334,7 +334,7 @@
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just True
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
12.29 s
[really-safe-money] signSignum = \case
12.29 s
[really-safe-money] added mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
12.29 s
[really-safe-money] @@ -334,7 +334,7 @@
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] -numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money] +numSign a = if a >= 0 then Nothing else Just False
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] signSignum :: (Num a) => Maybe Bool -> (a -> a)
12.29 s
[really-safe-money] signSignum = \case
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
12.29 s
[really-safe-money] @@ -329,7 +329,7 @@
12.29 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
12.29 s
[really-safe-money] toInt dl = do
12.29 s
[really-safe-money] n <- toInteger dl
12.29 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
12.29 s
[really-safe-money] + guard $ True
12.29 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
12.29 s
[really-safe-money] @@ -329,7 +329,7 @@
12.29 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
12.29 s
[really-safe-money] toInt dl = do
12.29 s
[really-safe-money] n <- toInteger dl
12.29 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
12.29 s
[really-safe-money] + guard $ False
12.29 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
12.29 s
[really-safe-money] @@ -329,7 +329,7 @@
12.29 s
[really-safe-money] toInt :: DecimalLiteral -> Maybe Int
12.29 s
[really-safe-money] toInt dl = do
12.29 s
[really-safe-money] n <- toInteger dl
12.29 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Int)
12.29 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Int))
12.29 s
[really-safe-money] guard $ n >= fromIntegral (minBound :: Int)
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
12.29 s
[really-safe-money] @@ -330,7 +330,7 @@
12.29 s
[really-safe-money] toInt dl = do
12.29 s
[really-safe-money] n <- toInteger dl
12.29 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
12.29 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
12.29 s
[really-safe-money] + guard $ True
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
12.29 s
[really-safe-money] @@ -330,7 +330,7 @@
12.29 s
[really-safe-money] toInt dl = do
12.29 s
[really-safe-money] n <- toInteger dl
12.29 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
12.29 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
12.29 s
[really-safe-money] + guard $ False
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
12.29 s
[really-safe-money] @@ -330,7 +330,7 @@
12.29 s
[really-safe-money] toInt dl = do
12.29 s
[really-safe-money] n <- toInteger dl
12.29 s
[really-safe-money] guard $ n <= fromIntegral (maxBound :: Int)
12.29 s
[really-safe-money] - guard $ n >= fromIntegral (minBound :: Int)
12.29 s
[really-safe-money] + guard $ not (n >= fromIntegral (minBound :: Int))
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] numSign :: (Ord a, Num a) => a -> Maybe Bool
12.29 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
12.29 s
[really-safe-money] @@ -312,7 +312,7 @@
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from an 'Integer'
12.29 s
[really-safe-money] fromInteger :: Integer -> DecimalLiteral
12.29 s
[really-safe-money] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
12.29 s
[really-safe-money] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into an 'Integer'
12.29 s
[really-safe-money] toInteger :: DecimalLiteral -> Maybe Integer
12.29 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
12.29 s
[really-safe-money] @@ -301,7 +301,7 @@
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
12.29 s
[really-safe-money] fromNatural :: Natural -> DecimalLiteral
12.29 s
[really-safe-money] -fromNatural n = DecimalLiteral Nothing n 0
12.29 s
[really-safe-money] +fromNatural n = DecimalLiteral Nothing n 1
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Natural'
12.29 s
[really-safe-money] toNatural :: DecimalLiteral -> Maybe Natural
12.29 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
12.29 s
[really-safe-money] @@ -296,7 +296,7 @@
12.29 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
12.29 s
[really-safe-money] toWord dl = do
12.29 s
[really-safe-money] n <- toNatural dl
12.29 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
12.29 s
[really-safe-money] + guard $ True
12.29 s
[really-safe-money] pure $ fromIntegral n
12.29 s
[really-safe-money]
12.29 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
12.30 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
12.30 s
[really-safe-money] @@ -296,7 +296,7 @@
12.30 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
12.30 s
[really-safe-money] toWord dl = do
12.30 s
[really-safe-money] n <- toNatural dl
12.30 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
12.30 s
[really-safe-money] + guard $ False
12.30 s
[really-safe-money] pure $ fromIntegral n
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
12.30 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
12.30 s
[really-safe-money] @@ -296,7 +296,7 @@
12.30 s
[really-safe-money] toWord :: DecimalLiteral -> Maybe Word
12.30 s
[really-safe-money] toWord dl = do
12.30 s
[really-safe-money] n <- toNatural dl
12.30 s
[really-safe-money] - guard $ n <= fromIntegral (maxBound :: Word)
12.30 s
[really-safe-money] + guard $ not (n <= fromIntegral (maxBound :: Word))
12.30 s
[really-safe-money] pure $ fromIntegral n
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Natural'
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
12.30 s
[really-safe-money] @@ -286,7 +286,7 @@
12.30 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
12.30 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] Just False -> Nothing
12.30 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money] + _ -> Just $ fromIntegral m / (0 ^ e)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
12.30 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
12.30 s
[really-safe-money] @@ -286,7 +286,7 @@
12.30 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
12.30 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] Just False -> Nothing
12.30 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money] + _ -> Just $ fromIntegral m / (1 ^ e)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
12.30 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
12.30 s
[really-safe-money] @@ -286,7 +286,7 @@
12.30 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
12.30 s
[really-safe-money] toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] Just False -> Nothing
12.30 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money] + _ -> Just $ fromIntegral m / (-10 ^ e)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
12.30 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
12.30 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
12.30 s
[really-safe-money] @@ -284,9 +284,9 @@
12.30 s
[really-safe-money] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
12.30 s
[really-safe-money] -toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] - Just False -> Nothing
12.30 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money] +toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] + Just False -> Nothing
12.30 s
[really-safe-money] + _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
12.30 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
12.30 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
12.30 s
[really-safe-money] @@ -284,9 +284,9 @@
12.30 s
[really-safe-money] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
12.30 s
[really-safe-money] -toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] - Just False -> Nothing
12.30 s
[really-safe-money] - _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money] +toRatio (DecimalLiteral mSign m e) = case mSign of
12.30 s
[really-safe-money] + Just False -> Nothing
12.30 s
[really-safe-money] + _ -> Just $ fromIntegral m / (10 ^ e)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Construct a 'DecimalLiteral' from a 'Word'
12.30 s
[really-safe-money] fromWord :: Word -> DecimalLiteral
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
12.30 s
[really-safe-money] @@ -233,7 +233,7 @@
12.30 s
[really-safe-money] -- >>> fromRatio (1 % 3)
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
12.30 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
12.30 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 0
12.30 s
[really-safe-money] where
12.30 s
[really-safe-money] fromRationalRepetendLimited ::
12.30 s
[really-safe-money] -- limit
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
12.30 s
[really-safe-money] @@ -233,7 +233,7 @@
12.30 s
[really-safe-money] -- >>> fromRatio (1 % 3)
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
12.30 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
12.30 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited 1
12.30 s
[really-safe-money] where
12.30 s
[really-safe-money] fromRationalRepetendLimited ::
12.30 s
[really-safe-money] -- limit
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
12.30 s
[really-safe-money] @@ -233,7 +233,7 @@
12.30 s
[really-safe-money] -- >>> fromRatio (1 % 3)
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
12.30 s
[really-safe-money] -fromRatio = fromRationalRepetendLimited 256
12.30 s
[really-safe-money] +fromRatio = fromRationalRepetendLimited -256
12.30 s
[really-safe-money] where
12.30 s
[really-safe-money] fromRationalRepetendLimited ::
12.30 s
[really-safe-money] -- limit
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
12.30 s
[really-safe-money] @@ -241,7 +241,7 @@
12.30 s
[really-safe-money] Ratio Natural ->
12.30 s
[really-safe-money] Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRationalRepetendLimited l rational
12.30 s
[really-safe-money] - | d == 0 = Nothing
12.30 s
[really-safe-money] + | d == 1 = Nothing
12.30 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
12.30 s
[really-safe-money] where
12.30 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
12.30 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
12.30 s
[really-safe-money] @@ -241,7 +241,7 @@
12.30 s
[really-safe-money] Ratio Natural ->
12.30 s
[really-safe-money] Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRationalRepetendLimited l rational
12.30 s
[really-safe-money] - | d == 0 = Nothing
12.30 s
[really-safe-money] + | True = Nothing
12.30 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
12.30 s
[really-safe-money] where
12.30 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
12.30 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
12.30 s
[really-safe-money] @@ -241,7 +241,7 @@
12.30 s
[really-safe-money] Ratio Natural ->
12.30 s
[really-safe-money] Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRationalRepetendLimited l rational
12.30 s
[really-safe-money] - | d == 0 = Nothing
12.30 s
[really-safe-money] + | not (d == 0) = Nothing
12.30 s
[really-safe-money] | otherwise = toLiteral Nothing <$> longDiv num
12.30 s
[really-safe-money] where
12.30 s
[really-safe-money] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
12.30 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
12.30 s
[really-safe-money] @@ -261,7 +261,7 @@
12.30 s
[really-safe-money] Just (c, e)
12.30 s
[really-safe-money] longDivWithLimit !c !e ns !n
12.30 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
12.30 s
[really-safe-money] - | S.member n ns = Nothing
12.30 s
[really-safe-money] + | True = Nothing
12.30 s
[really-safe-money] -- Over the limit, stop trying
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
12.30 s
[really-safe-money] @@ -261,7 +261,7 @@
12.30 s
[really-safe-money] Just (c, e)
12.30 s
[really-safe-money] longDivWithLimit !c !e ns !n
12.30 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
12.30 s
[really-safe-money] - | S.member n ns = Nothing
12.30 s
[really-safe-money] + | not (S.member n ns) = Nothing
12.30 s
[really-safe-money] -- Over the limit, stop trying
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
12.30 s
[really-safe-money] @@ -263,7 +263,7 @@
12.30 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
12.30 s
[really-safe-money] | S.member n ns = Nothing
12.30 s
[really-safe-money] -- Over the limit, stop trying
12.30 s
[really-safe-money] - | e >= l = Nothing
12.30 s
[really-safe-money] + | True = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
12.30 s
[really-safe-money] @@ -263,7 +263,7 @@
12.30 s
[really-safe-money] -- If there's a repetend, we can't turn it into a decimal literal
12.30 s
[really-safe-money] | S.member n ns = Nothing
12.30 s
[really-safe-money] -- Over the limit, stop trying
12.30 s
[really-safe-money] - | e >= l = Nothing
12.30 s
[really-safe-money] + | not (e >= l) = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
12.30 s
[really-safe-money] @@ -264,7 +264,7 @@
12.30 s
[really-safe-money] | S.member n ns = Nothing
12.30 s
[really-safe-money] -- Over the limit, stop trying
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] - | n < d =
12.30 s
[really-safe-money] + | True =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] | otherwise =
12.30 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
12.30 s
[really-safe-money] @@ -264,7 +264,7 @@
12.30 s
[really-safe-money] | S.member n ns = Nothing
12.30 s
[really-safe-money] -- Over the limit, stop trying
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] - | n < d =
12.30 s
[really-safe-money] + | not (n < d) =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] | otherwise =
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
12.30 s
[really-safe-money] @@ -266,7 +266,7 @@
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] | otherwise =
12.30 s
[really-safe-money] let (q, r') = n `quotRem` d
12.30 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
12.30 s
[really-safe-money] @@ -266,7 +266,7 @@
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] | otherwise =
12.30 s
[really-safe-money] let (q, r') = n `quotRem` d
12.30 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
12.30 s
[really-safe-money] @@ -266,7 +266,7 @@
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
12.30 s
[really-safe-money] | otherwise =
12.30 s
[really-safe-money] let (q, r') = n `quotRem` d
12.30 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
12.30 s
[really-safe-money] @@ -266,7 +266,7 @@
12.30 s
[really-safe-money] | e >= l = Nothing
12.30 s
[really-safe-money] | n < d =
12.30 s
[really-safe-money] let !ns' = S.insert n ns
12.30 s
[really-safe-money] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
12.30 s
[really-safe-money] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
12.30 s
[really-safe-money] | otherwise =
12.30 s
[really-safe-money] let (q, r') = n `quotRem` d
12.30 s
[really-safe-money] in longDivWithLimit (c + q) e ns r'
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
12.30 s
[really-safe-money] @@ -249,7 +249,7 @@
12.30 s
[really-safe-money] num = numerator rational
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
12.30 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
12.30 s
[really-safe-money] + longDiv = longDivWithLimit 1 0 S.empty
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] longDivWithLimit ::
12.30 s
[really-safe-money] Natural ->
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
12.30 s
[really-safe-money] @@ -249,7 +249,7 @@
12.30 s
[really-safe-money] num = numerator rational
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] longDiv :: Natural -> Maybe (Natural, Int)
12.30 s
[really-safe-money] - longDiv = longDivWithLimit 0 0 S.empty
12.30 s
[really-safe-money] + longDiv = longDivWithLimit 0 1 S.empty
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] longDivWithLimit ::
12.30 s
[really-safe-money] Natural ->
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
12.30 s
[really-safe-money] @@ -220,7 +220,7 @@
12.30 s
[really-safe-money] -- (-3) % 10
12.30 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
12.30 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
12.30 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
12.30 s
[really-safe-money] + signSignum mSign (fromIntegral m / (0 ^ e))
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
12.30 s
[really-safe-money] --
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
12.30 s
[really-safe-money] @@ -220,7 +220,7 @@
12.30 s
[really-safe-money] -- (-3) % 10
12.30 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
12.30 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
12.30 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
12.30 s
[really-safe-money] + signSignum mSign (fromIntegral m / (1 ^ e))
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
12.30 s
[really-safe-money] --
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
12.30 s
[really-safe-money] @@ -220,7 +220,7 @@
12.30 s
[really-safe-money] -- (-3) % 10
12.30 s
[really-safe-money] toRational :: DecimalLiteral -> Rational
12.30 s
[really-safe-money] toRational (DecimalLiteral mSign m e) =
12.30 s
[really-safe-money] - signSignum mSign (fromIntegral m / (10 ^ e))
12.30 s
[really-safe-money] + signSignum mSign (fromIntegral m / (-10 ^ e))
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
12.30 s
[really-safe-money] --
12.30 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
12.30 s
[really-safe-money] @@ -205,7 +205,7 @@
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRational (n :% d)
12.30 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
12.30 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
12.30 s
[really-safe-money] @@ -205,7 +205,7 @@
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRational (n :% d)
12.30 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
12.30 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
12.30 s
[really-safe-money] @@ -205,7 +205,7 @@
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRational (n :% d)
12.30 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
12.30 s
[really-safe-money] added mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
12.30 s
[really-safe-money] @@ -205,7 +205,7 @@
12.30 s
[really-safe-money] -- Nothing
12.30 s
[really-safe-money] fromRational :: Rational -> Maybe DecimalLiteral
12.30 s
[really-safe-money] fromRational (n :% d)
12.30 s
[really-safe-money] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
12.30 s
[really-safe-money] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
12.30 s
[really-safe-money]
12.30 s
[really-safe-money] -- | Turn a 'DecimalLiteral' into a 'Rational'
12.30 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
12.31 s
[really-safe-money] @@ -183,7 +183,7 @@
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
12.31 s
[really-safe-money] go :: Word8 -> String -> String
12.31 s
[really-safe-money] - go 0 [] = ['.', '0']
12.31 s
[really-safe-money] + go 0 [] = []
12.31 s
[really-safe-money] go 0 s = '.' : s
12.31 s
[really-safe-money] go e [] = '0' : go (pred e) []
12.31 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
12.31 s
[really-safe-money] added mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
12.31 s
[really-safe-money] @@ -183,7 +183,7 @@
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] goFrac m e = reverse (go e (reverse (show m)))
12.31 s
[really-safe-money] go :: Word8 -> String -> String
12.31 s
[really-safe-money] - go 0 [] = ['.', '0']
12.31 s
[really-safe-money] + go 0 [] = ['.', '0']
12.31 s
[really-safe-money] go 0 s = '.' : s
12.31 s
[really-safe-money] go e [] = '0' : go (pred e) []
12.31 s
[really-safe-money] go e (c : cs) = c : go (pred e) cs
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
12.31 s
[really-safe-money] @@ -142,7 +142,7 @@
12.31 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
12.31 s
[really-safe-money] parseDigits f z = do
12.31 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
12.31 s
[really-safe-money] - let digit = Char.ord c - 48
12.31 s
[really-safe-money] + let digit = Char.ord c - 0
12.31 s
[really-safe-money] case f z digit of
12.31 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
12.31 s
[really-safe-money] Just a -> ReadP.look >>= go a
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
12.31 s
[really-safe-money] @@ -142,7 +142,7 @@
12.31 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
12.31 s
[really-safe-money] parseDigits f z = do
12.31 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
12.31 s
[really-safe-money] - let digit = Char.ord c - 48
12.31 s
[really-safe-money] + let digit = Char.ord c - 1
12.31 s
[really-safe-money] case f z digit of
12.31 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
12.31 s
[really-safe-money] Just a -> ReadP.look >>= go a
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
12.31 s
[really-safe-money] @@ -142,7 +142,7 @@
12.31 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
12.31 s
[really-safe-money] parseDigits f z = do
12.31 s
[really-safe-money] c <- ReadP.satisfy Char.isDigit
12.31 s
[really-safe-money] - let digit = Char.ord c - 48
12.31 s
[really-safe-money] + let digit = Char.ord c - -48
12.31 s
[really-safe-money] case f z digit of
12.31 s
[really-safe-money] Nothing -> fail "Failed to step the first digit"
12.31 s
[really-safe-money] Just a -> ReadP.look >>= go a
12.31 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
12.31 s
[really-safe-money] @@ -149,7 +149,7 @@
12.31 s
[really-safe-money] where
12.31 s
[really-safe-money] go !a [] = return a
12.31 s
[really-safe-money] go !a (c : cs)
12.31 s
[really-safe-money] - | Char.isDigit c = do
12.31 s
[really-safe-money] + | True = do
12.31 s
[really-safe-money] _ <- ReadP.get
12.31 s
[really-safe-money] let digit = Char.ord c - 48
12.31 s
[really-safe-money] case f a digit of
12.31 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
12.31 s
[really-safe-money] @@ -149,7 +149,7 @@
12.31 s
[really-safe-money] where
12.31 s
[really-safe-money] go !a [] = return a
12.31 s
[really-safe-money] go !a (c : cs)
12.31 s
[really-safe-money] - | Char.isDigit c = do
12.31 s
[really-safe-money] + | not (Char.isDigit c) = do
12.31 s
[really-safe-money] _ <- ReadP.get
12.31 s
[really-safe-money] let digit = Char.ord c - 48
12.31 s
[really-safe-money] case f a digit of
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
12.31 s
[really-safe-money] @@ -151,7 +151,7 @@
12.31 s
[really-safe-money] go !a (c : cs)
12.31 s
[really-safe-money] | Char.isDigit c = do
12.31 s
[really-safe-money] _ <- ReadP.get
12.31 s
[really-safe-money] - let digit = Char.ord c - 48
12.31 s
[really-safe-money] + let digit = Char.ord c - 0
12.31 s
[really-safe-money] case f a digit of
12.31 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
12.31 s
[really-safe-money] Just a' -> go a' cs
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
12.31 s
[really-safe-money] @@ -151,7 +151,7 @@
12.31 s
[really-safe-money] go !a (c : cs)
12.31 s
[really-safe-money] | Char.isDigit c = do
12.31 s
[really-safe-money] _ <- ReadP.get
12.31 s
[really-safe-money] - let digit = Char.ord c - 48
12.31 s
[really-safe-money] + let digit = Char.ord c - 1
12.31 s
[really-safe-money] case f a digit of
12.31 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
12.31 s
[really-safe-money] Just a' -> go a' cs
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
12.31 s
[really-safe-money] @@ -151,7 +151,7 @@
12.31 s
[really-safe-money] go !a (c : cs)
12.31 s
[really-safe-money] | Char.isDigit c = do
12.31 s
[really-safe-money] _ <- ReadP.get
12.31 s
[really-safe-money] - let digit = Char.ord c - 48
12.31 s
[really-safe-money] + let digit = Char.ord c - -48
12.31 s
[really-safe-money] case f a digit of
12.31 s
[really-safe-money] Nothing -> fail "Failed to step the digit"
12.31 s
[really-safe-money] Just a' -> go a' cs
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
12.31 s
[really-safe-money] @@ -136,7 +136,7 @@
12.31 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
12.31 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
12.31 s
[really-safe-money] +step a digit = Just $ a * 0 + fromIntegral digit
12.31 s
[really-safe-money] {-# INLINE step #-}
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
12.31 s
[really-safe-money] @@ -136,7 +136,7 @@
12.31 s
[really-safe-money] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
12.31 s
[really-safe-money] -step a digit = Just $ a * 10 + fromIntegral digit
12.31 s
[really-safe-money] +step a digit = Just $ a * 1 + fromIntegral digit
12.31 s
[really-safe-money] {-# INLINE step #-}
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
12.31 s
[really-safe-money] @@ -133,7 +133,7 @@
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
12.31 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
12.31 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
12.31 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
12.31 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
12.31 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
12.31 s
[really-safe-money] @@ -133,7 +133,7 @@
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
12.31 s
[really-safe-money] stepFraction (_, 255) _ = Nothing
12.31 s
[really-safe-money] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
12.31 s
[really-safe-money] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] step :: Natural -> Int -> Maybe Natural
12.31 s
[really-safe-money] step a digit = Just $ a * 10 + fromIntegral digit
12.31 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
12.31 s
[really-safe-money] @@ -116,7 +116,7 @@
12.31 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.31 s
[really-safe-money] decimalLiteralP = do
12.31 s
[really-safe-money] let isSignChar :: Char -> Bool
12.31 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.31 s
[really-safe-money] + isSignChar c = True || c == '+'
12.31 s
[really-safe-money]
12.31 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.31 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = False || c == '+'
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = not (c == '-') || c == '+'
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = c == '-' || True
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = c == '-' || False
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = c == '-' || not (c == '+')
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = True
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = False
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
12.32 s
[really-safe-money] @@ -116,7 +116,7 @@
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] let isSignChar :: Char -> Bool
12.32 s
[really-safe-money] - isSignChar c = c == '-' || c == '+'
12.32 s
[really-safe-money] + isSignChar c = not (c == '-' || c == '+')
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
12.32 s
[really-safe-money] @@ -120,7 +120,7 @@
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] - pure $ Just $ signChar == '+'
12.32 s
[really-safe-money] + pure $ Just $ True
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] units <- parseDigits step 0
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] added mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
12.32 s
[really-safe-money] @@ -120,7 +120,7 @@
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] - pure $ Just $ signChar == '+'
12.32 s
[really-safe-money] + pure $ Just $ False
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] units <- parseDigits step 0
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] added mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
12.32 s
[really-safe-money] @@ -120,7 +120,7 @@
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] mSign <- ReadP.option Nothing $ do
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] - pure $ Just $ signChar == '+'
12.32 s
[really-safe-money] + pure $ Just $ not (signChar == '+')
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] units <- parseDigits step 0
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
12.32 s
[really-safe-money] @@ -122,7 +122,7 @@
12.32 s
[really-safe-money] signChar <- ReadP.satisfy isSignChar
12.32 s
[really-safe-money] pure $ Just $ signChar == '+'
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] - units <- parseDigits step 0
12.32 s
[really-safe-money] + units <- parseDigits step 1
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
12.32 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
12.32 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
12.32 s
[really-safe-money] @@ -124,7 +124,7 @@
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] units <- parseDigits step 0
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] - ReadP.option (DecimalLiteral mSign units 0) $ do
12.32 s
[really-safe-money] + ReadP.option (DecimalLiteral mSign units 1) $ do
12.32 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] (m, e) <- parseDigits stepFraction (units, 0)
12.32 s
[really-safe-money] added mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
12.32 s
[really-safe-money] @@ -127,7 +127,7 @@
12.32 s
[really-safe-money] ReadP.option (DecimalLiteral mSign units 0) $ do
12.32 s
[really-safe-money] _ <- ReadP.satisfy (== '.')
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] - (m, e) <- parseDigits stepFraction (units, 0)
12.32 s
[really-safe-money] + (m, e) <- parseDigits stepFraction (units, 1)
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] pure $ DecimalLiteral mSign m e
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
12.32 s
[really-safe-money] @@ -109,9 +109,9 @@
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] -- | Like 'fromString' but in a 'MonadFail'
12.32 s
[really-safe-money] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
12.32 s
[really-safe-money] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
12.32 s
[really-safe-money] - Just dl -> pure dl
12.32 s
[really-safe-money] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
12.32 s
[really-safe-money] + Just dl -> pure dl
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
12.32 s
[really-safe-money] @@ -109,9 +109,9 @@
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] -- | Like 'fromString' but in a 'MonadFail'
12.32 s
[really-safe-money] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
12.32 s
[really-safe-money] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
12.32 s
[really-safe-money] - Just dl -> pure dl
12.32 s
[really-safe-money] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
12.32 s
[really-safe-money] + Just dl -> pure dl
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] decimalLiteralP :: ReadP DecimalLiteral
12.32 s
[really-safe-money] decimalLiteralP = do
12.32 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
12.32 s
[really-safe-money] @@ -83,9 +83,9 @@
12.32 s
[really-safe-money] instance NFData DecimalLiteral
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] instance IsString DecimalLiteral where
12.32 s
[really-safe-money] - fromString s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
12.32 s
[really-safe-money] - Just dl -> dl
12.32 s
[really-safe-money] + fromString s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] + Nothing -> error $ "Invalid DecimalLiteral: " <> show s
12.32 s
[really-safe-money] + Just dl -> dl
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] -- | Parse a decimal literal from a string
12.32 s
[really-safe-money] --
12.32 s
[really-safe-money] added mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
12.32 s
[really-safe-money] @@ -83,9 +83,9 @@
12.32 s
[really-safe-money] instance NFData DecimalLiteral
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] instance IsString DecimalLiteral where
12.32 s
[really-safe-money] - fromString s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
12.32 s
[really-safe-money] - Just dl -> dl
12.32 s
[really-safe-money] + fromString s = case Numeric.DecimalLiteral.fromString s of
12.32 s
[really-safe-money] + Nothing -> error $ "Invalid DecimalLiteral: " <> show s
12.32 s
[really-safe-money] + Just dl -> dl
12.32 s
[really-safe-money]
12.32 s
[really-safe-money] -- | Parse a decimal literal from a string
12.32 s
[really-safe-money] --
12.32 s
[really-safe-money] added 87 mutations
13.60 s
[really-safe-money] [ 2 of 12] Compiling Money.QuantisationFactor ( src/Money/QuantisationFactor.hs, dist/build/Money/QuantisationFactor.p_o )
13.61 s
[really-safe-money] mutation: instrumenting Money.QuantisationFactor
13.61 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
13.61 s
[really-safe-money] @@ -84,7 +84,7 @@
13.61 s
[really-safe-money] fromDecimalLiteral dl = do
13.61 s
[really-safe-money] irat <-
13.61 s
[really-safe-money] let r = DecimalLiteral.toRational dl
13.61 s
[really-safe-money] - in if numerator r == 0
13.61 s
[really-safe-money] + in if numerator r == 1
13.61 s
[really-safe-money] then Nothing
13.61 s
[really-safe-money] else pure r
13.61 s
[really-safe-money]
13.61 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
13.61 s
[really-safe-money] @@ -84,7 +84,7 @@
13.61 s
[really-safe-money] fromDecimalLiteral dl = do
13.61 s
[really-safe-money] irat <-
13.61 s
[really-safe-money] let r = DecimalLiteral.toRational dl
13.61 s
[really-safe-money] - in if numerator r == 0
13.61 s
[really-safe-money] + in if True
13.61 s
[really-safe-money] then Nothing
13.61 s
[really-safe-money] else pure r
13.61 s
[really-safe-money]
13.61 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
13.61 s
[really-safe-money] @@ -84,7 +84,7 @@
13.61 s
[really-safe-money] fromDecimalLiteral dl = do
13.61 s
[really-safe-money] irat <-
13.61 s
[really-safe-money] let r = DecimalLiteral.toRational dl
13.62 s
[really-safe-money] - in if numerator r == 0
13.62 s
[really-safe-money] + in if False
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else pure r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
13.62 s
[really-safe-money] @@ -84,7 +84,7 @@
13.62 s
[really-safe-money] fromDecimalLiteral dl = do
13.62 s
[really-safe-money] irat <-
13.62 s
[really-safe-money] let r = DecimalLiteral.toRational dl
13.62 s
[really-safe-money] - in if numerator r == 0
13.62 s
[really-safe-money] + in if not (numerator r == 0)
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else pure r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
13.62 s
[really-safe-money] @@ -84,9 +84,9 @@
13.62 s
[really-safe-money] fromDecimalLiteral dl = do
13.62 s
[really-safe-money] irat <-
13.62 s
[really-safe-money] let r = DecimalLiteral.toRational dl
13.62 s
[really-safe-money] - in if numerator r == 0
13.62 s
[really-safe-money] - then Nothing
13.62 s
[really-safe-money] - else pure r
13.62 s
[really-safe-money] + in if numerator r == 0
13.62 s
[really-safe-money] + then Nothing
13.62 s
[really-safe-money] + else pure r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] let r = 1 / irat
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
13.62 s
[really-safe-money] @@ -89,7 +89,7 @@
13.62 s
[really-safe-money] else pure r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] - let r = 1 / irat
13.62 s
[really-safe-money] + let r = 0 / irat
13.62 s
[really-safe-money] in if r < 0
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
13.62 s
[really-safe-money] @@ -89,7 +89,7 @@
13.62 s
[really-safe-money] else pure r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] - let r = 1 / irat
13.62 s
[really-safe-money] + let r = -1 / irat
13.62 s
[really-safe-money] in if r < 0
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
13.62 s
[really-safe-money] @@ -90,7 +90,7 @@
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] let r = 1 / irat
13.62 s
[really-safe-money] - in if r < 0
13.62 s
[really-safe-money] + in if r < 1
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
13.62 s
[really-safe-money] @@ -90,7 +90,7 @@
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] let r = 1 / irat
13.62 s
[really-safe-money] - in if r < 0
13.62 s
[really-safe-money] + in if True
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
13.62 s
[really-safe-money] @@ -90,7 +90,7 @@
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] let r = 1 / irat
13.62 s
[really-safe-money] - in if r < 0
13.62 s
[really-safe-money] + in if False
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
13.62 s
[really-safe-money] @@ -90,7 +90,7 @@
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] let r = 1 / irat
13.62 s
[really-safe-money] - in if r < 0
13.62 s
[really-safe-money] + in if not (r < 0)
13.62 s
[really-safe-money] then Nothing
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
13.62 s
[really-safe-money] @@ -90,9 +90,9 @@
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] rat <-
13.62 s
[really-safe-money] let r = 1 / irat
13.62 s
[really-safe-money] - in if r < 0
13.62 s
[really-safe-money] - then Nothing
13.62 s
[really-safe-money] - else Just r
13.62 s
[really-safe-money] + in if r < 0
13.62 s
[really-safe-money] + then Nothing
13.62 s
[really-safe-money] + else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] if denominator rat == 1
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
13.62 s
[really-safe-money] @@ -95,7 +95,7 @@
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] - if denominator rat == 1
13.62 s
[really-safe-money] + if denominator rat == 0
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
13.62 s
[really-safe-money] @@ -95,7 +95,7 @@
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] - if denominator rat == 1
13.62 s
[really-safe-money] + if denominator rat == -1
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
13.62 s
[really-safe-money] @@ -95,7 +95,7 @@
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] - if denominator rat == 1
13.62 s
[really-safe-money] + if True
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
13.62 s
[really-safe-money] @@ -95,7 +95,7 @@
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] - if denominator rat == 1
13.62 s
[really-safe-money] + if False
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
13.62 s
[really-safe-money] @@ -95,7 +95,7 @@
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] - if denominator rat == 1
13.62 s
[really-safe-money] + if not (denominator rat == 1)
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
13.62 s
[really-safe-money] @@ -95,9 +95,9 @@
13.62 s
[really-safe-money] else Just r
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] fac <-
13.62 s
[really-safe-money] - if denominator rat == 1
13.62 s
[really-safe-money] - then Just (numerator rat)
13.62 s
[really-safe-money] - else Nothing
13.62 s
[really-safe-money] + if denominator rat == 1
13.62 s
[really-safe-money] + then Just (numerator rat)
13.62 s
[really-safe-money] + else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] if fac <= fromIntegral (maxBound :: Word32)
13.62 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
13.62 s
[really-safe-money] @@ -99,6 +99,6 @@
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
13.62 s
[really-safe-money] + if True
13.62 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
13.62 s
[really-safe-money] @@ -99,6 +99,6 @@
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
13.62 s
[really-safe-money] + if False
13.62 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
13.62 s
[really-safe-money] @@ -99,6 +99,6 @@
13.62 s
[really-safe-money] then Just (numerator rat)
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] - if fac <= fromIntegral (maxBound :: Word32)
13.62 s
[really-safe-money] + if not (fac <= fromIntegral (maxBound :: Word32))
13.62 s
[really-safe-money] then Just (QuantisationFactor (fromIntegral fac))
13.62 s
[really-safe-money] else Nothing
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
13.62 s
[really-safe-money] @@ -64,7 +64,7 @@
13.62 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
13.62 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
13.62 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
13.62 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
13.62 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
13.62 s
[really-safe-money] -- TODO explain that it's the inverse.
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
13.62 s
[really-safe-money] @@ -64,7 +64,7 @@
13.62 s
[really-safe-money] -- Just (DecimalLiteral Nothing 1 0)
13.62 s
[really-safe-money] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
13.62 s
[really-safe-money] toDecimalLiteral (QuantisationFactor qfw) =
13.62 s
[really-safe-money] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
13.62 s
[really-safe-money] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
13.62 s
[really-safe-money] -- TODO explain that it's the inverse.
13.62 s
[really-safe-money] added mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
13.62 s
[really-safe-money] @@ -37,7 +37,7 @@
13.62 s
[really-safe-money] validate qf@(QuantisationFactor w) =
13.62 s
[really-safe-money] mconcat
13.62 s
[really-safe-money] [ genericValidate qf,
13.62 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 1
13.62 s
[really-safe-money] ]
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] instance NFData QuantisationFactor
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
13.62 s
[really-safe-money] @@ -37,7 +37,7 @@
13.62 s
[really-safe-money] validate qf@(QuantisationFactor w) =
13.62 s
[really-safe-money] mconcat
13.62 s
[really-safe-money] [ genericValidate qf,
13.62 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] + declare "The quantisation factor is not zero" $ True
13.62 s
[really-safe-money] ]
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] instance NFData QuantisationFactor
13.62 s
[really-safe-money] added mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
13.62 s
[really-safe-money] @@ -37,7 +37,7 @@
13.62 s
[really-safe-money] validate qf@(QuantisationFactor w) =
13.62 s
[really-safe-money] mconcat
13.62 s
[really-safe-money] [ genericValidate qf,
13.62 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] + declare "The quantisation factor is not zero" $ False
13.62 s
[really-safe-money] ]
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] instance NFData QuantisationFactor
13.62 s
[really-safe-money] added mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
13.62 s
[really-safe-money] @@ -37,7 +37,7 @@
13.62 s
[really-safe-money] validate qf@(QuantisationFactor w) =
13.62 s
[really-safe-money] mconcat
13.62 s
[really-safe-money] [ genericValidate qf,
13.62 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] + declare "The quantisation factor is not zero" $ not (w /= 0)
13.62 s
[really-safe-money] ]
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] instance NFData QuantisationFactor
13.62 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
13.62 s
[really-safe-money] @@ -36,9 +36,7 @@
13.62 s
[really-safe-money] instance Validity QuantisationFactor where
13.62 s
[really-safe-money] validate qf@(QuantisationFactor w) =
13.62 s
[really-safe-money] mconcat
13.62 s
[really-safe-money] - [ genericValidate qf,
13.62 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] - ]
13.62 s
[really-safe-money] + []
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] instance NFData QuantisationFactor
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
13.62 s
[really-safe-money] @@ -36,9 +36,9 @@
13.62 s
[really-safe-money] instance Validity QuantisationFactor where
13.62 s
[really-safe-money] validate qf@(QuantisationFactor w) =
13.62 s
[really-safe-money] mconcat
13.62 s
[really-safe-money] - [ genericValidate qf,
13.62 s
[really-safe-money] - declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] - ]
13.62 s
[really-safe-money] + [ genericValidate qf,
13.62 s
[really-safe-money] + declare "The quantisation factor is not zero" $ w /= 0
13.62 s
[really-safe-money] + ]
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] instance NFData QuantisationFactor
13.62 s
[really-safe-money]
13.62 s
[really-safe-money] added 29 mutations
13.95 s
[really-safe-money] [ 3 of 12] Compiling Money.Currency ( src/Money/Currency.hs, dist/build/Money/Currency.p_o )
13.96 s
[really-safe-money] mutation: instrumenting Money.Currency
13.96 s
[really-safe-money] added 0 mutations
14.28 s
[really-safe-money] [ 4 of 12] Compiling Money.ConversionRate ( src/Money/ConversionRate.hs, dist/build/Money/ConversionRate.p_o )
14.29 s
[really-safe-money] mutation: instrumenting Money.ConversionRate
14.29 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
14.29 s
[really-safe-money] @@ -113,7 +113,7 @@
14.29 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
14.29 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
14.29 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
14.29 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
14.29 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (0 / r)
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Compose two conversion rates
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:116:45-46
14.29 s
[really-safe-money] @@ -113,7 +113,7 @@
14.29 s
[really-safe-money] -- >>> invert (ConversionRate (1 % 2))
14.29 s
[really-safe-money] -- ConversionRate {unConversionRate = 2 % 1}
14.29 s
[really-safe-money] invert :: ConversionRate -> ConversionRate
14.29 s
[really-safe-money] -invert (ConversionRate r) = ConversionRate (1 / r)
14.29 s
[really-safe-money] +invert (ConversionRate r) = ConversionRate (-1 / r)
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Compose two conversion rates
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
14.29 s
[really-safe-money] @@ -106,7 +106,7 @@
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | One-to-one conversion rate
14.29 s
[really-safe-money] oneToOne :: ConversionRate
14.29 s
[really-safe-money] -oneToOne = ConversionRate 1
14.29 s
[really-safe-money] +oneToOne = ConversionRate 0
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:109:27-28
14.29 s
[really-safe-money] @@ -106,7 +106,7 @@
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | One-to-one conversion rate
14.29 s
[really-safe-money] oneToOne :: ConversionRate
14.29 s
[really-safe-money] -oneToOne = ConversionRate 1
14.29 s
[really-safe-money] +oneToOne = ConversionRate -1
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Invert a 'ConversionRate', to convert in the other direction.
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:72:25-26
14.29 s
[really-safe-money] @@ -69,7 +69,7 @@
14.29 s
[really-safe-money] -- >>> fromRational (0 % 1)
14.29 s
[really-safe-money] -- Nothing
14.29 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
14.29 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
14.29 s
[really-safe-money] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
14.29 s
[really-safe-money] @@ -69,7 +69,7 @@
14.29 s
[really-safe-money] -- >>> fromRational (0 % 1)
14.29 s
[really-safe-money] -- Nothing
14.29 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
14.29 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
14.29 s
[really-safe-money] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
14.29 s
[really-safe-money] @@ -69,7 +69,7 @@
14.29 s
[really-safe-money] -- >>> fromRational (0 % 1)
14.29 s
[really-safe-money] -- Nothing
14.29 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
14.29 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
14.29 s
[really-safe-money] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
14.29 s
[really-safe-money]
14.29 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
14.29 s
[really-safe-money] --
14.29 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:72:21-26
14.30 s
[really-safe-money] @@ -69,7 +69,7 @@
14.30 s
[really-safe-money] -- >>> fromRational (0 % 1)
14.30 s
[really-safe-money] -- Nothing
14.30 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
14.30 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
14.30 s
[really-safe-money] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
14.30 s
[really-safe-money] --
14.30 s
[really-safe-money] added mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
14.30 s
[really-safe-money] @@ -69,7 +69,7 @@
14.30 s
[really-safe-money] -- >>> fromRational (0 % 1)
14.30 s
[really-safe-money] -- Nothing
14.30 s
[really-safe-money] fromRational :: Rational -> Maybe ConversionRate
14.30 s
[really-safe-money] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
14.30 s
[really-safe-money] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] -- | Turn a 'ConversionRate' back into a 'Rational'
14.30 s
[really-safe-money] --
14.30 s
[really-safe-money] added mutation IntLit at src/Money/ConversionRate.hs:38:56-57
14.30 s
[really-safe-money] @@ -35,7 +35,7 @@
14.30 s
[really-safe-money] validate cr@(ConversionRate r) =
14.30 s
[really-safe-money] mconcat
14.30 s
[really-safe-money] [ genericValidate cr,
14.30 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 1
14.30 s
[really-safe-money] ]
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] instance NFData ConversionRate
14.30 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
14.30 s
[really-safe-money] @@ -35,7 +35,7 @@
14.30 s
[really-safe-money] validate cr@(ConversionRate r) =
14.30 s
[really-safe-money] mconcat
14.30 s
[really-safe-money] [ genericValidate cr,
14.30 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] + declare "The rate is nonzero" $ True
14.30 s
[really-safe-money] ]
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] instance NFData ConversionRate
14.30 s
[really-safe-money] added mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
14.30 s
[really-safe-money] @@ -35,7 +35,7 @@
14.30 s
[really-safe-money] validate cr@(ConversionRate r) =
14.30 s
[really-safe-money] mconcat
14.30 s
[really-safe-money] [ genericValidate cr,
14.30 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] + declare "The rate is nonzero" $ False
14.30 s
[really-safe-money] ]
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] instance NFData ConversionRate
14.30 s
[really-safe-money] added mutation Negate at src/Money/ConversionRate.hs:38:41-57
14.30 s
[really-safe-money] @@ -35,7 +35,7 @@
14.30 s
[really-safe-money] validate cr@(ConversionRate r) =
14.30 s
[really-safe-money] mconcat
14.30 s
[really-safe-money] [ genericValidate cr,
14.30 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] + declare "The rate is nonzero" $ not (numerator r /= 0)
14.30 s
[really-safe-money] ]
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] instance NFData ConversionRate
14.30 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
14.30 s
[really-safe-money] @@ -34,9 +34,7 @@
14.30 s
[really-safe-money] instance Validity ConversionRate where
14.30 s
[really-safe-money] validate cr@(ConversionRate r) =
14.30 s
[really-safe-money] mconcat
14.30 s
[really-safe-money] - [ genericValidate cr,
14.30 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] - ]
14.30 s
[really-safe-money] + []
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] instance NFData ConversionRate
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] added mutation ListLit at src/Money/ConversionRate.hs:37:7-8
14.30 s
[really-safe-money] @@ -34,9 +34,9 @@
14.30 s
[really-safe-money] instance Validity ConversionRate where
14.30 s
[really-safe-money] validate cr@(ConversionRate r) =
14.30 s
[really-safe-money] mconcat
14.30 s
[really-safe-money] - [ genericValidate cr,
14.30 s
[really-safe-money] - declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] - ]
14.30 s
[really-safe-money] + [ genericValidate cr,
14.30 s
[really-safe-money] + declare "The rate is nonzero" $ numerator r /= 0
14.30 s
[really-safe-money] + ]
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] instance NFData ConversionRate
14.30 s
[really-safe-money]
14.30 s
[really-safe-money] added 15 mutations
14.57 s
[really-safe-money] [ 5 of 12] Compiling Money.ConversionRateOf ( src/Money/ConversionRateOf.hs, dist/build/Money/ConversionRateOf.p_o )
14.58 s
[really-safe-money] mutation: instrumenting Money.ConversionRateOf
14.58 s
[really-safe-money] added 0 mutations
14.74 s
[really-safe-money] [ 6 of 12] Compiling Money.Amount ( src/Money/Amount.hs, dist/build/Money/Amount.p_o )
14.81 s
[really-safe-money] mutation: instrumenting Money.Amount
14.81 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
14.81 s
[really-safe-money] @@ -798,7 +798,7 @@
14.81 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
14.81 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
14.81 s
[really-safe-money] let decimals :: Int
14.81 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
14.81 s
[really-safe-money] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
14.81 s
[really-safe-money] in printf "%%0.%df" decimals
14.81 s
[really-safe-money]
14.81 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
14.81 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
14.81 s
[really-safe-money] @@ -798,7 +798,7 @@
14.81 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
14.81 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
14.81 s
[really-safe-money] let decimals :: Int
14.81 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
14.81 s
[really-safe-money] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
14.81 s
[really-safe-money] in printf "%%0.%df" decimals
14.81 s
[really-safe-money]
14.81 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
14.81 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:801:36-38
14.81 s
[really-safe-money] @@ -798,7 +798,7 @@
14.81 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
14.81 s
[really-safe-money] quantisationFactorFormatString (QuantisationFactor qf) =
14.81 s
[really-safe-money] let decimals :: Int
14.81 s
[really-safe-money] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
14.81 s
[really-safe-money] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
14.81 s
[really-safe-money] in printf "%%0.%df" decimals
14.81 s
[really-safe-money]
14.81 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
14.81 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:569:18-19
14.81 s
[really-safe-money] @@ -566,7 +566,7 @@
14.81 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
14.81 s
[really-safe-money] smallerChunk :: Amount
14.81 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
14.81 s
[really-safe-money] - in if rest == 0
14.81 s
[really-safe-money] + in if rest == 1
14.81 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
14.81 s
[really-safe-money] else
14.81 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
14.81 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
14.81 s
[really-safe-money] @@ -566,7 +566,7 @@
14.81 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
14.81 s
[really-safe-money] smallerChunk :: Amount
14.81 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
14.81 s
[really-safe-money] - in if rest == 0
14.81 s
[really-safe-money] + in if True
14.81 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
14.81 s
[really-safe-money] else
14.81 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
14.81 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:569:10-19
14.81 s
[really-safe-money] @@ -566,7 +566,7 @@
14.81 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
14.81 s
[really-safe-money] smallerChunk :: Amount
14.81 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
14.81 s
[really-safe-money] - in if rest == 0
14.81 s
[really-safe-money] + in if False
14.81 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
14.81 s
[really-safe-money] else
14.81 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
14.81 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:569:10-19
14.81 s
[really-safe-money] @@ -566,7 +566,7 @@
14.81 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
14.81 s
[really-safe-money] smallerChunk :: Amount
14.81 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
14.81 s
[really-safe-money] - in if rest == 0
14.81 s
[really-safe-money] + in if not (rest == 0)
14.81 s
[really-safe-money] then DistributedIntoEqualChunks f smallerChunk
14.81 s
[really-safe-money] else
14.81 s
[really-safe-money] let -- This 'fromIntegral' is theoretically not safe, but it's
14.81 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:569:7-29
14.81 s
[really-safe-money] @@ -566,22 +566,22 @@
14.81 s
[really-safe-money] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
14.81 s
[really-safe-money] smallerChunk :: Amount
14.81 s
[really-safe-money] smallerChunk = Amount smallerChunkSize
14.81 s
[really-safe-money] - in if rest == 0
14.81 s
[really-safe-money] - then DistributedIntoEqualChunks f smallerChunk
14.81 s
[really-safe-money] - else
14.81 s
[really-safe-money] - let -- This 'fromIntegral' is theoretically not safe, but it's
14.82 s
[really-safe-money] - -- necessarily smaller than f so it will fit.
14.82 s
[really-safe-money] - numberOfLargerChunks :: Word32
14.82 s
[really-safe-money] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
14.82 s
[really-safe-money] - numberOfSmallerChunks :: Word32
14.82 s
[really-safe-money] - numberOfSmallerChunks = f - numberOfLargerChunks
14.82 s
[really-safe-money] - largerChunk :: Amount
14.82 s
[really-safe-money] - largerChunk = Amount $ succ smallerChunkSize
14.82 s
[really-safe-money] - in DistributedIntoUnequalChunks
14.82 s
[really-safe-money] - numberOfLargerChunks
14.82 s
[really-safe-money] - largerChunk
14.82 s
[really-safe-money] - numberOfSmallerChunks
14.82 s
[really-safe-money] - smallerChunk
14.82 s
[really-safe-money] + in if rest == 0
14.82 s
[really-safe-money] + then DistributedIntoEqualChunks f smallerChunk
14.82 s
[really-safe-money] + else
14.82 s
[really-safe-money] + let -- This 'fromIntegral' is theoretically not safe, but it's
14.82 s
[really-safe-money] + -- necessarily smaller than f so it will fit.
14.82 s
[really-safe-money] + numberOfLargerChunks :: Word32
14.82 s
[really-safe-money] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
14.82 s
[really-safe-money] + numberOfSmallerChunks :: Word32
14.82 s
[really-safe-money] + numberOfSmallerChunks = f - numberOfLargerChunks
14.82 s
[really-safe-money] + largerChunk :: Amount
14.82 s
[really-safe-money] + largerChunk = Amount $ succ smallerChunkSize
14.82 s
[really-safe-money] + in DistributedIntoUnequalChunks
14.82 s
[really-safe-money] + numberOfLargerChunks
14.82 s
[really-safe-money] + largerChunk
14.82 s
[really-safe-money] + numberOfSmallerChunks
14.82 s
[really-safe-money] + smallerChunk
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] -- | The result of 'distribute'
14.82 s
[really-safe-money] type AmountDistribution = Distribution Amount
14.82 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
14.82 s
[really-safe-money] @@ -541,7 +541,7 @@
14.82 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
14.82 s
[really-safe-money] - in if r > maxBoundI
14.82 s
[really-safe-money] + in if True
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:544:10-23
14.82 s
[really-safe-money] @@ -541,7 +541,7 @@
14.82 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
14.82 s
[really-safe-money] - in if r > maxBoundI
14.82 s
[really-safe-money] + in if False
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:544:10-23
14.82 s
[really-safe-money] @@ -541,7 +541,7 @@
14.82 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
14.82 s
[really-safe-money] - in if r > maxBoundI
14.82 s
[really-safe-money] + in if not (r > maxBoundI)
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:544:7-66
14.82 s
[really-safe-money] @@ -541,9 +541,9 @@
14.82 s
[really-safe-money] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
14.82 s
[really-safe-money] - in if r > maxBoundI
14.82 s
[really-safe-money] - then Nothing
14.82 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money] + in if r > maxBoundI
14.82 s
[really-safe-money] + then Nothing
14.82 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
14.82 s
[really-safe-money] --
14.82 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:518:14-15
14.82 s
[really-safe-money] @@ -515,7 +515,7 @@
14.82 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 - i2
14.82 s
[really-safe-money] - in if r < 0
14.82 s
[really-safe-money] + in if r < 1
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
14.82 s
[really-safe-money] @@ -515,7 +515,7 @@
14.82 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 - i2
14.82 s
[really-safe-money] - in if r < 0
14.82 s
[really-safe-money] + in if True
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:518:10-15
14.82 s
[really-safe-money] @@ -515,7 +515,7 @@
14.82 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 - i2
14.82 s
[really-safe-money] - in if r < 0
14.82 s
[really-safe-money] + in if False
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:518:10-15
14.82 s
[really-safe-money] @@ -515,7 +515,7 @@
14.82 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 - i2
14.82 s
[really-safe-money] - in if r < 0
14.82 s
[really-safe-money] + in if not (r < 0)
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:518:7-66
14.82 s
[really-safe-money] @@ -515,9 +515,9 @@
14.82 s
[really-safe-money] i2 = (fromIntegral :: Word64 -> Integer) a2
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 - i2
14.82 s
[really-safe-money] - in if r < 0
14.82 s
[really-safe-money] - then Nothing
14.82 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money] + in if r < 0
14.82 s
[really-safe-money] + then Nothing
14.82 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] -- | Multiply an amount of money by an integer scalar
14.82 s
[really-safe-money] --
14.82 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
14.82 s
[really-safe-money] @@ -473,7 +473,7 @@
14.82 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 + i2
14.82 s
[really-safe-money] - in if r > maxBoundI
14.82 s
[really-safe-money] + in if True
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:476:10-23
14.82 s
[really-safe-money] @@ -473,7 +473,7 @@
14.82 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 + i2
14.82 s
[really-safe-money] - in if r > maxBoundI
14.82 s
[really-safe-money] + in if False
14.82 s
[really-safe-money] then Nothing
14.82 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.82 s
[really-safe-money]
14.82 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:476:10-23
14.82 s
[really-safe-money] @@ -473,7 +473,7 @@
14.82 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.82 s
[really-safe-money] r :: Integer
14.82 s
[really-safe-money] r = i1 + i2
14.82 s
[really-safe-money] - in if r > maxBoundI
14.83 s
[really-safe-money] + in if not (r > maxBoundI)
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.83 s
[really-safe-money]
14.83 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:476:7-66
14.83 s
[really-safe-money] @@ -473,9 +473,9 @@
14.83 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.83 s
[really-safe-money] r :: Integer
14.83 s
[really-safe-money] r = i1 + i2
14.83 s
[really-safe-money] - in if r > maxBoundI
14.83 s
[really-safe-money] - then Nothing
14.83 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.83 s
[really-safe-money] + in if r > maxBoundI
14.83 s
[really-safe-money] + then Nothing
14.83 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.83 s
[really-safe-money]
14.83 s
[really-safe-money] -- | Add a number of amounts of money together.
14.83 s
[really-safe-money] --
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:388:5-16
14.83 s
[really-safe-money] @@ -385,7 +385,7 @@
14.83 s
[really-safe-money] -- Nothing
14.83 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
14.83 s
[really-safe-money] fromRational (QuantisationFactor qf) r
14.83 s
[really-safe-money] - | isInvalid r = Nothing
14.83 s
[really-safe-money] + | True = Nothing
14.83 s
[really-safe-money] | r < 0 = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultRational :: Rational
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:388:5-16
14.83 s
[really-safe-money] @@ -385,7 +385,7 @@
14.83 s
[really-safe-money] -- Nothing
14.83 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
14.83 s
[really-safe-money] fromRational (QuantisationFactor qf) r
14.83 s
[really-safe-money] - | isInvalid r = Nothing
14.83 s
[really-safe-money] + | not (isInvalid r) = Nothing
14.83 s
[really-safe-money] | r < 0 = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultRational :: Rational
14.83 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:389:9-10
14.83 s
[really-safe-money] @@ -386,7 +386,7 @@
14.83 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
14.83 s
[really-safe-money] fromRational (QuantisationFactor qf) r
14.83 s
[really-safe-money] | isInvalid r = Nothing
14.83 s
[really-safe-money] - | r < 0 = Nothing
14.83 s
[really-safe-money] + | r < 1 = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultRational :: Rational
14.83 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:389:5-10
14.83 s
[really-safe-money] @@ -386,7 +386,7 @@
14.83 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
14.83 s
[really-safe-money] fromRational (QuantisationFactor qf) r
14.83 s
[really-safe-money] | isInvalid r = Nothing
14.83 s
[really-safe-money] - | r < 0 = Nothing
14.83 s
[really-safe-money] + | True = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultRational :: Rational
14.83 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:389:5-10
14.83 s
[really-safe-money] @@ -386,7 +386,7 @@
14.83 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
14.83 s
[really-safe-money] fromRational (QuantisationFactor qf) r
14.83 s
[really-safe-money] | isInvalid r = Nothing
14.83 s
[really-safe-money] - | r < 0 = Nothing
14.83 s
[really-safe-money] + | not (r < 0) = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultRational :: Rational
14.83 s
[really-safe-money] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
14.83 s
[really-safe-money] @@ -394,7 +394,7 @@
14.83 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] floored :: Natural
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] - in if ceiled == floored
14.83 s
[really-safe-money] + in if True
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:397:14-31
14.83 s
[really-safe-money] @@ -394,7 +394,7 @@
14.83 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] floored :: Natural
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] - in if ceiled == floored
14.83 s
[really-safe-money] + in if False
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:397:14-31
14.83 s
[really-safe-money] @@ -394,7 +394,7 @@
14.83 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] floored :: Natural
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] - in if ceiled == floored
14.83 s
[really-safe-money] + in if not (ceiled == floored)
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
14.83 s
[really-safe-money] @@ -396,7 +396,7 @@
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] in if ceiled == floored
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] + if True
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] else Nothing
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:399:18-83
14.83 s
[really-safe-money] @@ -396,7 +396,7 @@
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] in if ceiled == floored
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] + if False
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] else Nothing
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:399:18-83
14.83 s
[really-safe-money] @@ -396,7 +396,7 @@
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] in if ceiled == floored
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] else Nothing
14.83 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:399:15-57
14.83 s
[really-safe-money] @@ -396,9 +396,9 @@
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] in if ceiled == floored
14.83 s
[really-safe-money] then
14.83 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] - then Nothing
14.83 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] + then Nothing
14.83 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] else Nothing
14.83 s
[really-safe-money]
14.83 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
14.83 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:397:11-25
14.83 s
[really-safe-money] @@ -394,12 +394,12 @@
14.83 s
[really-safe-money] ceiled = (ceiling :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] floored :: Natural
14.83 s
[really-safe-money] floored = (floor :: Rational -> Natural) resultRational
14.83 s
[really-safe-money] - in if ceiled == floored
14.83 s
[really-safe-money] - then
14.83 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] - then Nothing
14.83 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] - else Nothing
14.83 s
[really-safe-money] + in if ceiled == floored
14.83 s
[really-safe-money] + then
14.83 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.83 s
[really-safe-money] + then Nothing
14.83 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
14.83 s
[really-safe-money] + else Nothing
14.83 s
[really-safe-money]
14.83 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
14.83 s
[really-safe-money] --
14.83 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:320:9-10
14.83 s
[really-safe-money] @@ -317,7 +317,7 @@
14.83 s
[really-safe-money] Double ->
14.83 s
[really-safe-money] Maybe Amount
14.83 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
14.83 s
[really-safe-money] - | d < 0 = Nothing
14.83 s
[really-safe-money] + | d < 1 = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultDouble :: Double
14.83 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:320:5-10
14.83 s
[really-safe-money] @@ -317,7 +317,7 @@
14.83 s
[really-safe-money] Double ->
14.83 s
[really-safe-money] Maybe Amount
14.83 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
14.83 s
[really-safe-money] - | d < 0 = Nothing
14.83 s
[really-safe-money] + | True = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultDouble :: Double
14.83 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:320:5-10
14.83 s
[really-safe-money] @@ -317,7 +317,7 @@
14.83 s
[really-safe-money] Double ->
14.83 s
[really-safe-money] Maybe Amount
14.83 s
[really-safe-money] fromDouble (QuantisationFactor qf) d
14.83 s
[really-safe-money] - | d < 0 = Nothing
14.83 s
[really-safe-money] + | not (d < 0) = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] let resultDouble :: Double
14.83 s
[really-safe-money] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:327:9-16
14.83 s
[really-safe-money] @@ -324,7 +324,7 @@
14.83 s
[really-safe-money] in go resultDouble
14.83 s
[really-safe-money] where
14.83 s
[really-safe-money] go resultDouble
14.83 s
[really-safe-money] - | isNaN d = Nothing
14.83 s
[really-safe-money] + | True = Nothing
14.83 s
[really-safe-money] | isInfinite d = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:327:9-16
14.83 s
[really-safe-money] @@ -324,7 +324,7 @@
14.83 s
[really-safe-money] in go resultDouble
14.83 s
[really-safe-money] where
14.83 s
[really-safe-money] go resultDouble
14.83 s
[really-safe-money] - | isNaN d = Nothing
14.83 s
[really-safe-money] + | not (isNaN d) = Nothing
14.83 s
[really-safe-money] | isInfinite d = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:328:9-21
14.83 s
[really-safe-money] @@ -325,7 +325,7 @@
14.83 s
[really-safe-money] where
14.83 s
[really-safe-money] go resultDouble
14.83 s
[really-safe-money] | isNaN d = Nothing
14.83 s
[really-safe-money] - | isInfinite d = Nothing
14.83 s
[really-safe-money] + | True = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.83 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:328:9-21
14.83 s
[really-safe-money] @@ -325,7 +325,7 @@
14.83 s
[really-safe-money] where
14.83 s
[really-safe-money] go resultDouble
14.83 s
[really-safe-money] | isNaN d = Nothing
14.83 s
[really-safe-money] - | isInfinite d = Nothing
14.83 s
[really-safe-money] + | not (isInfinite d) = Nothing
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.83 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
14.83 s
[really-safe-money] @@ -329,7 +329,7 @@
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.83 s
[really-safe-money] - if exponent resultDouble > 65
14.83 s
[really-safe-money] + if exponent resultDouble > 0
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else
14.83 s
[really-safe-money] let ceiled :: Natural
14.83 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
14.83 s
[really-safe-money] @@ -329,7 +329,7 @@
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.83 s
[really-safe-money] - if exponent resultDouble > 65
14.83 s
[really-safe-money] + if exponent resultDouble > 1
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else
14.83 s
[really-safe-money] let ceiled :: Natural
14.83 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:332:38-40
14.83 s
[really-safe-money] @@ -329,7 +329,7 @@
14.83 s
[really-safe-money] | otherwise =
14.83 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.83 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.83 s
[really-safe-money] - if exponent resultDouble > 65
14.83 s
[really-safe-money] + if exponent resultDouble > -65
14.83 s
[really-safe-money] then Nothing
14.83 s
[really-safe-money] else
14.83 s
[really-safe-money] let ceiled :: Natural
14.83 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
14.83 s
[really-safe-money] @@ -329,7 +329,7 @@
14.83 s
[really-safe-money] | otherwise =
14.84 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.84 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.84 s
[really-safe-money] - if exponent resultDouble > 65
14.84 s
[really-safe-money] + if True
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else
14.84 s
[really-safe-money] let ceiled :: Natural
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:332:14-40
14.84 s
[really-safe-money] @@ -329,7 +329,7 @@
14.84 s
[really-safe-money] | otherwise =
14.84 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.84 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.84 s
[really-safe-money] - if exponent resultDouble > 65
14.84 s
[really-safe-money] + if False
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else
14.84 s
[really-safe-money] let ceiled :: Natural
14.84 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:332:14-40
14.84 s
[really-safe-money] @@ -329,7 +329,7 @@
14.84 s
[really-safe-money] | otherwise =
14.84 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.84 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.84 s
[really-safe-money] - if exponent resultDouble > 65
14.84 s
[really-safe-money] + if not (exponent resultDouble > 65)
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else
14.84 s
[really-safe-money] let ceiled :: Natural
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
14.84 s
[really-safe-money] @@ -336,7 +336,7 @@
14.84 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] floored :: Natural
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] - in if ceiled == floored
14.84 s
[really-safe-money] + in if True
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:339:22-39
14.84 s
[really-safe-money] @@ -336,7 +336,7 @@
14.84 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] floored :: Natural
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] - in if ceiled == floored
14.84 s
[really-safe-money] + in if False
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:339:22-39
14.84 s
[really-safe-money] @@ -336,7 +336,7 @@
14.84 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] floored :: Natural
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] - in if ceiled == floored
14.84 s
[really-safe-money] + in if not (ceiled == floored)
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
14.84 s
[really-safe-money] @@ -338,7 +338,7 @@
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] in if ceiled == floored
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] + if True
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] else Nothing
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:341:26-91
14.84 s
[really-safe-money] @@ -338,7 +338,7 @@
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] in if ceiled == floored
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] + if False
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] else Nothing
14.84 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:341:26-91
14.84 s
[really-safe-money] @@ -338,7 +338,7 @@
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] in if ceiled == floored
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] else Nothing
14.84 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:341:23-65
14.84 s
[really-safe-money] @@ -338,9 +338,9 @@
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] in if ceiled == floored
14.84 s
[really-safe-money] then
14.84 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] - then Nothing
14.84 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] + then Nothing
14.84 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] else Nothing
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
14.84 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:339:19-33
14.84 s
[really-safe-money] @@ -336,12 +336,12 @@
14.84 s
[really-safe-money] ceiled = (ceiling :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] floored :: Natural
14.84 s
[really-safe-money] floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] - in if ceiled == floored
14.84 s
[really-safe-money] - then
14.84 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] - then Nothing
14.84 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] - else Nothing
14.84 s
[really-safe-money] + in if ceiled == floored
14.84 s
[really-safe-money] + then
14.84 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] + then Nothing
14.84 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] + else Nothing
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
14.84 s
[really-safe-money] --
14.84 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:332:11-33
14.84 s
[really-safe-money] @@ -329,19 +329,19 @@
14.84 s
[really-safe-money] | otherwise =
14.84 s
[really-safe-money] -- Shortcut for numbers that are way too big anyway
14.84 s
[really-safe-money] -- so that we don't have to compute the according 'Natural' values.
14.84 s
[really-safe-money] - if exponent resultDouble > 65
14.84 s
[really-safe-money] - then Nothing
14.84 s
[really-safe-money] - else
14.84 s
[really-safe-money] - let ceiled :: Natural
14.84 s
[really-safe-money] - ceiled = (ceiling :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] - floored :: Natural
14.84 s
[really-safe-money] - floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] - in if ceiled == floored
14.84 s
[really-safe-money] - then
14.84 s
[really-safe-money] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] - then Nothing
14.84 s
[really-safe-money] - else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] - else Nothing
14.84 s
[really-safe-money] + if exponent resultDouble > 65
14.84 s
[really-safe-money] + then Nothing
14.84 s
[really-safe-money] + else
14.84 s
[really-safe-money] + let ceiled :: Natural
14.84 s
[really-safe-money] + ceiled = (ceiling :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] + floored :: Natural
14.84 s
[really-safe-money] + floored = (floor :: Double -> Natural) resultDouble
14.84 s
[really-safe-money] + in if ceiled == floored
14.84 s
[really-safe-money] + then
14.84 s
[really-safe-money] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
14.84 s
[really-safe-money] + then Nothing
14.84 s
[really-safe-money] + else Just $ Amount (fromIntegral ceiled)
14.84 s
[really-safe-money] + else Nothing
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
14.84 s
[really-safe-money] --
14.84 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:290:79-80
14.84 s
[really-safe-money] @@ -287,7 +287,7 @@
14.84 s
[really-safe-money] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
14.84 s
[really-safe-money] -- 1 % 100
14.84 s
[really-safe-money] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
14.84 s
[really-safe-money] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
14.84 s
[really-safe-money] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
14.84 s
[really-safe-money] toRatio (QuantisationFactor quantisationFactor) a =
14.84 s
[really-safe-money] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
14.84 s
[really-safe-money] % (fromIntegral :: Word32 -> Natural) quantisationFactor
14.84 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:494:96-97
14.84 s
[really-safe-money] @@ -491,7 +491,7 @@
14.84 s
[really-safe-money] let maxBoundI :: Integer
14.84 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] r :: Integer
14.84 s
[really-safe-money] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
14.84 s
[really-safe-money] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
14.84 s
[really-safe-money] in if r > maxBoundI
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
14.84 s
[really-safe-money] @@ -492,7 +492,7 @@
14.84 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] r :: Integer
14.84 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
14.84 s
[really-safe-money] - in if r > maxBoundI
14.84 s
[really-safe-money] + in if True
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:495:10-23
14.84 s
[really-safe-money] @@ -492,7 +492,7 @@
14.84 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] r :: Integer
14.84 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
14.84 s
[really-safe-money] - in if r > maxBoundI
14.84 s
[really-safe-money] + in if False
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:495:10-23
14.84 s
[really-safe-money] @@ -492,7 +492,7 @@
14.84 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] r :: Integer
14.84 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
14.84 s
[really-safe-money] - in if r > maxBoundI
14.84 s
[really-safe-money] + in if not (r > maxBoundI)
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:495:7-66
14.84 s
[really-safe-money] @@ -492,9 +492,9 @@
14.84 s
[really-safe-money] maxBoundI = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] r :: Integer
14.84 s
[really-safe-money] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
14.84 s
[really-safe-money] - in if r > maxBoundI
14.84 s
[really-safe-money] - then Nothing
14.84 s
[really-safe-money] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.84 s
[really-safe-money] + in if r > maxBoundI
14.84 s
[really-safe-money] + then Nothing
14.84 s
[really-safe-money] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] -- | Add two amounts of money.
14.84 s
[really-safe-money] --
14.84 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:250:15-16
14.84 s
[really-safe-money] @@ -247,7 +247,7 @@
14.84 s
[really-safe-money] -- >>> zero
14.84 s
[really-safe-money] -- Amount 0
14.84 s
[really-safe-money] zero :: Amount
14.84 s
[really-safe-money] -zero = Amount 0
14.84 s
[really-safe-money] +zero = Amount 1
14.84 s
[really-safe-money]
14.84 s
[really-safe-money] -- | Turn an amount into a number of minimal quantisations.
14.84 s
[really-safe-money] --
14.84 s
[really-safe-money] added mutation IntLit at src/Money/Amount.hs:661:30-31
14.84 s
[really-safe-money] @@ -658,7 +658,7 @@
14.84 s
[really-safe-money] -- | The amount and the real rate that was used, considering the 'Rounding'
14.84 s
[really-safe-money] (Maybe Amount, Ratio Natural)
14.84 s
[really-safe-money] fraction _ (Amount 0) f = (Just zero, f)
14.84 s
[really-safe-money] -fraction _ _ 0 = (Just zero, 0)
14.84 s
[really-safe-money] +fraction _ _ 0 = (Just zero, 1)
14.84 s
[really-safe-money] fraction r (Amount a) f =
14.84 s
[really-safe-money] let amountAsRatio :: Ratio Natural
14.84 s
[really-safe-money] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
14.84 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
14.84 s
[really-safe-money] @@ -665,10 +665,10 @@
14.84 s
[really-safe-money] theoreticalResult :: Ratio Natural
14.84 s
[really-safe-money] theoreticalResult = amountAsRatio * f
14.84 s
[really-safe-money] rounder :: Ratio Natural -> Natural
14.84 s
[really-safe-money] - rounder = case r of
14.84 s
[really-safe-money] - RoundUp -> ceiling
14.84 s
[really-safe-money] - RoundDown -> floor
14.84 s
[really-safe-money] - RoundNearest -> round
14.84 s
[really-safe-money] + rounder = case r of
14.84 s
[really-safe-money] + RoundUp -> ceiling
14.84 s
[really-safe-money] + RoundDown -> floor
14.84 s
[really-safe-money] + RoundNearest -> round
14.84 s
[really-safe-money] roundedResult :: Natural
14.84 s
[really-safe-money] roundedResult = rounder theoreticalResult
14.84 s
[really-safe-money] actualRate :: Ratio Natural
14.84 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
14.84 s
[really-safe-money] @@ -665,10 +665,10 @@
14.84 s
[really-safe-money] theoreticalResult :: Ratio Natural
14.84 s
[really-safe-money] theoreticalResult = amountAsRatio * f
14.84 s
[really-safe-money] rounder :: Ratio Natural -> Natural
14.84 s
[really-safe-money] - rounder = case r of
14.84 s
[really-safe-money] - RoundUp -> ceiling
14.84 s
[really-safe-money] - RoundDown -> floor
14.84 s
[really-safe-money] - RoundNearest -> round
14.84 s
[really-safe-money] + rounder = case r of
14.84 s
[really-safe-money] + RoundUp -> ceiling
14.84 s
[really-safe-money] + RoundDown -> floor
14.84 s
[really-safe-money] + RoundNearest -> round
14.84 s
[really-safe-money] roundedResult :: Natural
14.84 s
[really-safe-money] roundedResult = rounder theoreticalResult
14.84 s
[really-safe-money] actualRate :: Ratio Natural
14.84 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:668:17-30
14.84 s
[really-safe-money] @@ -665,10 +665,10 @@
14.84 s
[really-safe-money] theoreticalResult :: Ratio Natural
14.84 s
[really-safe-money] theoreticalResult = amountAsRatio * f
14.84 s
[really-safe-money] rounder :: Ratio Natural -> Natural
14.84 s
[really-safe-money] - rounder = case r of
14.84 s
[really-safe-money] - RoundUp -> ceiling
14.84 s
[really-safe-money] - RoundDown -> floor
14.84 s
[really-safe-money] - RoundNearest -> round
14.84 s
[really-safe-money] + rounder = case r of
14.84 s
[really-safe-money] + RoundUp -> ceiling
14.84 s
[really-safe-money] + RoundDown -> floor
14.84 s
[really-safe-money] + RoundNearest -> round
14.84 s
[really-safe-money] roundedResult :: Natural
14.84 s
[really-safe-money] roundedResult = rounder theoreticalResult
14.84 s
[really-safe-money] actualRate :: Ratio Natural
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
14.84 s
[really-safe-money] @@ -678,7 +678,7 @@
14.84 s
[really-safe-money] maxBoundN :: Natural
14.84 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
14.84 s
[really-safe-money] - in ( if roundedResult > maxBoundN
14.84 s
[really-safe-money] + in ( if True
14.84 s
[really-safe-money] then Nothing
14.84 s
[really-safe-money] else Just result,
14.84 s
[really-safe-money] actualRate
14.84 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:681:12-37
14.84 s
[really-safe-money] @@ -678,7 +678,7 @@
14.84 s
[really-safe-money] maxBoundN :: Natural
14.84 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
14.84 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
14.85 s
[really-safe-money] - in ( if roundedResult > maxBoundN
14.85 s
[really-safe-money] + in ( if False
14.85 s
[really-safe-money] then Nothing
14.85 s
[really-safe-money] else Just result,
14.85 s
[really-safe-money] actualRate
14.85 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:681:12-37
14.85 s
[really-safe-money] @@ -678,7 +678,7 @@
14.85 s
[really-safe-money] maxBoundN :: Natural
14.85 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
14.85 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
14.85 s
[really-safe-money] - in ( if roundedResult > maxBoundN
14.85 s
[really-safe-money] + in ( if not (roundedResult > maxBoundN)
14.85 s
[really-safe-money] then Nothing
14.85 s
[really-safe-money] else Just result,
14.85 s
[really-safe-money] actualRate
14.85 s
[really-safe-money] added mutation CondFlip at src/Money/Amount.hs:681:9-27
14.85 s
[really-safe-money] @@ -678,9 +678,9 @@
14.85 s
[really-safe-money] maxBoundN :: Natural
14.85 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
14.85 s
[really-safe-money] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
14.85 s
[really-safe-money] - in ( if roundedResult > maxBoundN
14.85 s
[really-safe-money] - then Nothing
14.85 s
[really-safe-money] - else Just result,
14.85 s
[really-safe-money] + in ( if roundedResult > maxBoundN
14.85 s
[really-safe-money] + then Nothing
14.85 s
[really-safe-money] + else Just result,
14.85 s
[really-safe-money] actualRate
14.85 s
[really-safe-money] )
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
14.85 s
[really-safe-money] @@ -803,4 +803,4 @@
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
14.85 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
14.85 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
14.85 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
14.85 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:806:79-92
14.85 s
[really-safe-money] @@ -803,4 +803,4 @@
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
14.85 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
14.85 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
14.85 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
14.85 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:806:79-92
14.85 s
[really-safe-money] @@ -803,4 +803,4 @@
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
14.85 s
[really-safe-money] validateStrictlyPositive :: Amount -> Validation
14.85 s
[really-safe-money] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
14.85 s
[really-safe-money] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
14.85 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
14.85 s
[really-safe-money] @@ -604,7 +604,7 @@
14.85 s
[really-safe-money] case ad of
14.85 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] + True
14.85 s
[really-safe-money] _ -> valid
14.85 s
[really-safe-money] ]
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] added mutation ConstBool at src/Money/Amount.hs:607:15-22
14.85 s
[really-safe-money] @@ -604,7 +604,7 @@
14.85 s
[really-safe-money] case ad of
14.85 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] + False
14.85 s
[really-safe-money] _ -> valid
14.85 s
[really-safe-money] ]
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] added mutation Negate at src/Money/Amount.hs:607:15-22
14.85 s
[really-safe-money] @@ -604,7 +604,7 @@
14.85 s
[really-safe-money] case ad of
14.85 s
[really-safe-money] DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] + not (a1 > a2)
14.85 s
[really-safe-money] _ -> valid
14.85 s
[really-safe-money] ]
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
14.85 s
[really-safe-money] @@ -601,11 +601,11 @@
14.85 s
[really-safe-money] validate ad =
14.85 s
[really-safe-money] mconcat
14.85 s
[really-safe-money] [ genericValidate ad,
14.85 s
[really-safe-money] - case ad of
14.85 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] - declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] - _ -> valid
14.85 s
[really-safe-money] + case ad of
14.85 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] + declare "The larger chunks are larger" $
14.85 s
[really-safe-money] + a1 > a2
14.85 s
[really-safe-money] + _ -> valid
14.85 s
[really-safe-money] ]
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
14.85 s
[really-safe-money] added mutation RemoveCase at src/Money/Amount.hs:604:9-21
14.85 s
[really-safe-money] @@ -601,11 +601,11 @@
14.85 s
[really-safe-money] validate ad =
14.85 s
[really-safe-money] mconcat
14.85 s
[really-safe-money] [ genericValidate ad,
14.85 s
[really-safe-money] - case ad of
14.85 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] - declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] - _ -> valid
14.85 s
[really-safe-money] + case ad of
14.85 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] + declare "The larger chunks are larger" $
14.85 s
[really-safe-money] + a1 > a2
14.85 s
[really-safe-money] + _ -> valid
14.85 s
[really-safe-money] ]
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
14.85 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
14.85 s
[really-safe-money] @@ -600,13 +600,7 @@
14.85 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
14.85 s
[really-safe-money] validate ad =
14.85 s
[really-safe-money] mconcat
14.85 s
[really-safe-money] - [ genericValidate ad,
14.85 s
[really-safe-money] - case ad of
14.85 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] - declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] - _ -> valid
14.85 s
[really-safe-money] - ]
14.85 s
[really-safe-money] + []
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] added mutation ListLit at src/Money/Amount.hs:603:7-8
14.85 s
[really-safe-money] @@ -600,13 +600,13 @@
14.85 s
[really-safe-money] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
14.85 s
[really-safe-money] validate ad =
14.85 s
[really-safe-money] mconcat
14.85 s
[really-safe-money] - [ genericValidate ad,
14.85 s
[really-safe-money] - case ad of
14.85 s
[really-safe-money] - DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] - declare "The larger chunks are larger" $
14.85 s
[really-safe-money] - a1 > a2
14.85 s
[really-safe-money] - _ -> valid
14.85 s
[really-safe-money] - ]
14.85 s
[really-safe-money] + [ genericValidate ad,
14.85 s
[really-safe-money] + case ad of
14.85 s
[really-safe-money] + DistributedIntoUnequalChunks _ a1 _ a2 ->
14.85 s
[really-safe-money] + declare "The larger chunks are larger" $
14.85 s
[really-safe-money] + a1 > a2
14.85 s
[really-safe-money] + _ -> valid
14.85 s
[really-safe-money] + ]
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] instance (NFData amount) => NFData (Distribution amount)
14.85 s
[really-safe-money]
14.85 s
[really-safe-money] added 81 mutations
16.35 s
[really-safe-money] [ 7 of 12] Compiling Money.MultiAmount ( src/Money/MultiAmount.hs, dist/build/Money/MultiAmount.p_o )
16.37 s
[really-safe-money] mutation: instrumenting Money.MultiAmount
16.72 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
16.72 s
[really-safe-money] @@ -156,10 +156,10 @@
16.72 s
[really-safe-money] fmap
16.72 s
[really-safe-money] ( ( \theoreticalResult ->
16.72 s
[really-safe-money] let rounder :: Ratio Natural -> Natural
16.72 s
[really-safe-money] - rounder = case r of
16.72 s
[really-safe-money] - RoundUp -> ceiling
16.72 s
[really-safe-money] - RoundDown -> floor
16.72 s
[really-safe-money] - RoundNearest -> round
16.72 s
[really-safe-money] + rounder = case r of
16.72 s
[really-safe-money] + RoundUp -> ceiling
16.72 s
[really-safe-money] + RoundDown -> floor
16.72 s
[really-safe-money] + RoundNearest -> round
16.72 s
[really-safe-money] roundedResult :: Natural
16.72 s
[really-safe-money] roundedResult = rounder theoreticalResult
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
16.72 s
[really-safe-money] @@ -156,10 +156,10 @@
16.72 s
[really-safe-money] fmap
16.72 s
[really-safe-money] ( ( \theoreticalResult ->
16.72 s
[really-safe-money] let rounder :: Ratio Natural -> Natural
16.72 s
[really-safe-money] - rounder = case r of
16.72 s
[really-safe-money] - RoundUp -> ceiling
16.72 s
[really-safe-money] - RoundDown -> floor
16.72 s
[really-safe-money] - RoundNearest -> round
16.72 s
[really-safe-money] + rounder = case r of
16.72 s
[really-safe-money] + RoundUp -> ceiling
16.72 s
[really-safe-money] + RoundDown -> floor
16.72 s
[really-safe-money] + RoundNearest -> round
16.72 s
[really-safe-money] roundedResult :: Natural
16.72 s
[really-safe-money] roundedResult = rounder theoreticalResult
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
16.72 s
[really-safe-money] @@ -156,10 +156,10 @@
16.72 s
[really-safe-money] fmap
16.72 s
[really-safe-money] ( ( \theoreticalResult ->
16.72 s
[really-safe-money] let rounder :: Ratio Natural -> Natural
16.72 s
[really-safe-money] - rounder = case r of
16.72 s
[really-safe-money] - RoundUp -> ceiling
16.72 s
[really-safe-money] - RoundDown -> floor
16.72 s
[really-safe-money] - RoundNearest -> round
16.72 s
[really-safe-money] + rounder = case r of
16.72 s
[really-safe-money] + RoundUp -> ceiling
16.72 s
[really-safe-money] + RoundDown -> floor
16.72 s
[really-safe-money] + RoundNearest -> round
16.72 s
[really-safe-money] roundedResult :: Natural
16.72 s
[really-safe-money] roundedResult = rounder theoreticalResult
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
16.72 s
[really-safe-money] @@ -165,7 +165,7 @@
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
16.72 s
[really-safe-money] actualResult =
16.72 s
[really-safe-money] - if roundedResult > maxBoundN
16.72 s
[really-safe-money] + if True
16.72 s
[really-safe-money] then Nothing
16.72 s
[really-safe-money] else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
16.72 s
[really-safe-money] @@ -165,7 +165,7 @@
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
16.72 s
[really-safe-money] actualResult =
16.72 s
[really-safe-money] - if roundedResult > maxBoundN
16.72 s
[really-safe-money] + if False
16.72 s
[really-safe-money] then Nothing
16.72 s
[really-safe-money] else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:168:20-45
16.72 s
[really-safe-money] @@ -165,7 +165,7 @@
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
16.72 s
[really-safe-money] actualResult =
16.72 s
[really-safe-money] - if roundedResult > maxBoundN
16.72 s
[really-safe-money] + if not (roundedResult > maxBoundN)
16.72 s
[really-safe-money] then Nothing
16.72 s
[really-safe-money] else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
16.72 s
[really-safe-money] @@ -165,9 +165,9 @@
16.72 s
[really-safe-money] maxBoundN :: Natural
16.72 s
[really-safe-money] maxBoundN = fromIntegral (maxBound :: Word64)
16.72 s
[really-safe-money] actualResult =
16.72 s
[really-safe-money] - if roundedResult > maxBoundN
16.72 s
[really-safe-money] - then Nothing
16.72 s
[really-safe-money] - else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] + if roundedResult > maxBoundN
16.72 s
[really-safe-money] + then Nothing
16.72 s
[really-safe-money] + else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] LT -> RoundedDown
16.72 s
[really-safe-money] EQ -> DidNotRound
16.72 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
16.72 s
[really-safe-money] @@ -168,10 +168,10 @@
16.72 s
[really-safe-money] if roundedResult > maxBoundN
16.72 s
[really-safe-money] then Nothing
16.72 s
[really-safe-money] else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] - LT -> RoundedDown
16.72 s
[really-safe-money] - EQ -> DidNotRound
16.72 s
[really-safe-money] - GT -> RoundedUp
16.72 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] + LT -> RoundedDown
16.72 s
[really-safe-money] + EQ -> DidNotRound
16.72 s
[really-safe-money] + GT -> RoundedUp
16.72 s
[really-safe-money] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
16.72 s
[really-safe-money] )
16.72 s
[really-safe-money] . Prelude.sum
16.72 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
16.72 s
[really-safe-money] @@ -168,10 +168,10 @@
16.72 s
[really-safe-money] if roundedResult > maxBoundN
16.72 s
[really-safe-money] then Nothing
16.72 s
[really-safe-money] else Just (fromIntegral roundedResult)
16.72 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] - LT -> RoundedDown
16.72 s
[really-safe-money] - EQ -> DidNotRound
16.72 s
[really-safe-money] - GT -> RoundedUp
16.72 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.72 s
[really-safe-money] + LT -> RoundedDown
16.72 s
[really-safe-money] + EQ -> DidNotRound
16.72 s
[really-safe-money] + GT -> RoundedUp
16.72 s
[really-safe-money] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
16.72 s
[really-safe-money] )
16.72 s
[really-safe-money] . Prelude.sum
16.72 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
16.72 s
[really-safe-money] @@ -168,10 +168,10 @@
16.73 s
[really-safe-money] if roundedResult > maxBoundN
16.73 s
[really-safe-money] then Nothing
16.73 s
[really-safe-money] else Just (fromIntegral roundedResult)
16.73 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.73 s
[really-safe-money] - LT -> RoundedDown
16.73 s
[really-safe-money] - EQ -> DidNotRound
16.73 s
[really-safe-money] - GT -> RoundedUp
16.73 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
16.73 s
[really-safe-money] + LT -> RoundedDown
16.73 s
[really-safe-money] + EQ -> DidNotRound
16.73 s
[really-safe-money] + GT -> RoundedUp
16.73 s
[really-safe-money] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
16.73 s
[really-safe-money] )
16.73 s
[really-safe-money] . Prelude.sum
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
16.73 s
[really-safe-money] @@ -116,7 +116,7 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.subtract a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] + if True
16.73 s
[really-safe-money] then M.delete currency m
16.73 s
[really-safe-money] else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
16.73 s
[really-safe-money] @@ -116,7 +116,7 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.subtract a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] + if False
16.73 s
[really-safe-money] then M.delete currency m
16.73 s
[really-safe-money] else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:119:12-28
16.73 s
[really-safe-money] @@ -116,7 +116,7 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.subtract a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] + if not (r == Amount.zero)
16.73 s
[really-safe-money] then M.delete currency m
16.73 s
[really-safe-money] else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
16.73 s
[really-safe-money] @@ -116,9 +116,9 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.subtract a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] - then M.delete currency m
16.73 s
[really-safe-money] - else M.insert currency r m
16.73 s
[really-safe-money] + if r == Amount.zero
16.73 s
[really-safe-money] + then M.delete currency m
16.73 s
[really-safe-money] + else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | Try to convert every amount to one currency.
16.73 s
[really-safe-money] --
16.73 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
16.73 s
[really-safe-money] @@ -111,14 +111,14 @@
16.73 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] subtractAmount m _ (Amount 0) = Just m
16.73 s
[really-safe-money] subtractAmount (MultiAmount m) currency amount =
16.73 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] - Nothing -> Nothing -- Can't go below zero
16.73 s
[really-safe-money] - Just a -> do
16.73 s
[really-safe-money] - r <- Amount.subtract a amount
16.73 s
[really-safe-money] - Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] - then M.delete currency m
16.73 s
[really-safe-money] - else M.insert currency r m
16.73 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] + Nothing -> Nothing -- Can't go below zero
16.73 s
[really-safe-money] + Just a -> do
16.73 s
[really-safe-money] + r <- Amount.subtract a amount
16.73 s
[really-safe-money] + Just $
16.73 s
[really-safe-money] + if r == Amount.zero
16.73 s
[really-safe-money] + then M.delete currency m
16.73 s
[really-safe-money] + else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | Try to convert every amount to one currency.
16.73 s
[really-safe-money] --
16.73 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
16.73 s
[really-safe-money] @@ -111,14 +111,14 @@
16.73 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] subtractAmount m _ (Amount 0) = Just m
16.73 s
[really-safe-money] subtractAmount (MultiAmount m) currency amount =
16.73 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] - Nothing -> Nothing -- Can't go below zero
16.73 s
[really-safe-money] - Just a -> do
16.73 s
[really-safe-money] - r <- Amount.subtract a amount
16.73 s
[really-safe-money] - Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] - then M.delete currency m
16.73 s
[really-safe-money] - else M.insert currency r m
16.73 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] + Nothing -> Nothing -- Can't go below zero
16.73 s
[really-safe-money] + Just a -> do
16.73 s
[really-safe-money] + r <- Amount.subtract a amount
16.73 s
[really-safe-money] + Just $
16.73 s
[really-safe-money] + if r == Amount.zero
16.73 s
[really-safe-money] + then M.delete currency m
16.73 s
[really-safe-money] + else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | Try to convert every amount to one currency.
16.73 s
[really-safe-money] --
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
16.73 s
[really-safe-money] @@ -103,7 +103,7 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.add a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] + if True
16.73 s
[really-safe-money] then M.delete currency m
16.73 s
[really-safe-money] else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
16.73 s
[really-safe-money] @@ -103,7 +103,7 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.add a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] + if False
16.73 s
[really-safe-money] then M.delete currency m
16.73 s
[really-safe-money] else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:106:12-28
16.73 s
[really-safe-money] @@ -103,7 +103,7 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.add a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] + if not (r == Amount.zero)
16.73 s
[really-safe-money] then M.delete currency m
16.73 s
[really-safe-money] else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
16.73 s
[really-safe-money] @@ -103,9 +103,9 @@
16.73 s
[really-safe-money] Just a -> do
16.73 s
[really-safe-money] r <- Amount.add a amount
16.73 s
[really-safe-money] Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] - then M.delete currency m
16.73 s
[really-safe-money] - else M.insert currency r m
16.73 s
[really-safe-money] + if r == Amount.zero
16.73 s
[really-safe-money] + then M.delete currency m
16.73 s
[really-safe-money] + else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
16.73 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
16.73 s
[really-safe-money] @@ -98,14 +98,14 @@
16.73 s
[really-safe-money] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] addAmount m _ (Amount 0) = Just m
16.73 s
[really-safe-money] addAmount (MultiAmount m) currency amount =
16.73 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] - Nothing -> Just $ M.insert currency amount m
16.73 s
[really-safe-money] - Just a -> do
16.73 s
[really-safe-money] - r <- Amount.add a amount
16.73 s
[really-safe-money] - Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] - then M.delete currency m
16.73 s
[really-safe-money] - else M.insert currency r m
16.73 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] + Nothing -> Just $ M.insert currency amount m
16.73 s
[really-safe-money] + Just a -> do
16.73 s
[really-safe-money] + r <- Amount.add a amount
16.73 s
[really-safe-money] + Just $
16.73 s
[really-safe-money] + if r == Amount.zero
16.73 s
[really-safe-money] + then M.delete currency m
16.73 s
[really-safe-money] + else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
16.73 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
16.73 s
[really-safe-money] @@ -98,14 +98,14 @@
16.73 s
[really-safe-money] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] addAmount m _ (Amount 0) = Just m
16.73 s
[really-safe-money] addAmount (MultiAmount m) currency amount =
16.73 s
[really-safe-money] - fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] - Nothing -> Just $ M.insert currency amount m
16.73 s
[really-safe-money] - Just a -> do
16.73 s
[really-safe-money] - r <- Amount.add a amount
16.73 s
[really-safe-money] - Just $
16.73 s
[really-safe-money] - if r == Amount.zero
16.73 s
[really-safe-money] - then M.delete currency m
16.73 s
[really-safe-money] - else M.insert currency r m
16.73 s
[really-safe-money] + fmap MultiAmount $ case M.lookup currency m of
16.73 s
[really-safe-money] + Nothing -> Just $ M.insert currency amount m
16.73 s
[really-safe-money] + Just a -> do
16.73 s
[really-safe-money] + r <- Amount.add a amount
16.73 s
[really-safe-money] + Just $
16.73 s
[really-safe-money] + if r == Amount.zero
16.73 s
[really-safe-money] + then M.delete currency m
16.73 s
[really-safe-money] + else M.insert currency r m
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | Subtract an 'Amount' from a 'MultiAmount'
16.73 s
[really-safe-money] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
16.73 s
[really-safe-money] @@ -70,7 +70,7 @@
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
16.73 s
[really-safe-money] fromAmount currency amount =
16.73 s
[really-safe-money] - if amount == Amount.zero
16.73 s
[really-safe-money] + if True
16.73 s
[really-safe-money] then zero
16.73 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
16.73 s
[really-safe-money] @@ -70,7 +70,7 @@
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
16.73 s
[really-safe-money] fromAmount currency amount =
16.73 s
[really-safe-money] - if amount == Amount.zero
16.73 s
[really-safe-money] + if False
16.73 s
[really-safe-money] then zero
16.73 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:73:6-27
16.73 s
[really-safe-money] @@ -70,7 +70,7 @@
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
16.73 s
[really-safe-money] fromAmount currency amount =
16.73 s
[really-safe-money] - if amount == Amount.zero
16.73 s
[really-safe-money] + if not (amount == Amount.zero)
16.73 s
[really-safe-money] then zero
16.73 s
[really-safe-money] else MultiAmount $ M.singleton currency amount
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
16.73 s
[really-safe-money] @@ -70,9 +70,9 @@
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] fromAmount :: currency -> Amount -> MultiAmount currency
16.73 s
[really-safe-money] fromAmount currency amount =
16.73 s
[really-safe-money] - if amount == Amount.zero
16.73 s
[really-safe-money] - then zero
16.73 s
[really-safe-money] - else MultiAmount $ M.singleton currency amount
16.73 s
[really-safe-money] + if amount == Amount.zero
16.73 s
[really-safe-money] + then zero
16.73 s
[really-safe-money] + else MultiAmount $ M.singleton currency amount
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] -- | No money of any currency
16.73 s
[really-safe-money] zero :: MultiAmount currency
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
16.73 s
[really-safe-money] @@ -63,7 +63,7 @@
16.73 s
[really-safe-money] [ genericValidate ma,
16.73 s
[really-safe-money] decorateMap m $ \_ a ->
16.73 s
[really-safe-money] declare "The amount is not zero" $
16.73 s
[really-safe-money] - a /= Amount.zero
16.73 s
[really-safe-money] + True
16.73 s
[really-safe-money] ]
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
16.73 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
16.73 s
[really-safe-money] @@ -63,7 +63,7 @@
16.73 s
[really-safe-money] [ genericValidate ma,
16.73 s
[really-safe-money] decorateMap m $ \_ a ->
16.73 s
[really-safe-money] declare "The amount is not zero" $
16.73 s
[really-safe-money] - a /= Amount.zero
16.73 s
[really-safe-money] + False
16.73 s
[really-safe-money] ]
16.73 s
[really-safe-money]
16.73 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
16.73 s
[really-safe-money] added mutation Negate at src/Money/MultiAmount.hs:66:13-29
16.74 s
[really-safe-money] @@ -63,7 +63,7 @@
16.74 s
[really-safe-money] [ genericValidate ma,
16.74 s
[really-safe-money] decorateMap m $ \_ a ->
16.74 s
[really-safe-money] declare "The amount is not zero" $
16.74 s
[really-safe-money] - a /= Amount.zero
16.74 s
[really-safe-money] + not (a /= Amount.zero)
16.74 s
[really-safe-money] ]
16.74 s
[really-safe-money]
16.74 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
16.74 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
16.74 s
[really-safe-money] @@ -60,11 +60,7 @@
16.74 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
16.74 s
[really-safe-money] validate ma@(MultiAmount m) =
16.74 s
[really-safe-money] mconcat
16.74 s
[really-safe-money] - [ genericValidate ma,
16.74 s
[really-safe-money] - decorateMap m $ \_ a ->
16.74 s
[really-safe-money] - declare "The amount is not zero" $
16.74 s
[really-safe-money] - a /= Amount.zero
16.74 s
[really-safe-money] - ]
16.74 s
[really-safe-money] + []
16.74 s
[really-safe-money]
16.74 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
16.74 s
[really-safe-money]
16.74 s
[really-safe-money] added mutation ListLit at src/Money/MultiAmount.hs:63:7-8
16.74 s
[really-safe-money] @@ -60,11 +60,11 @@
16.74 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
16.74 s
[really-safe-money] validate ma@(MultiAmount m) =
16.74 s
[really-safe-money] mconcat
16.74 s
[really-safe-money] - [ genericValidate ma,
16.74 s
[really-safe-money] - decorateMap m $ \_ a ->
16.74 s
[really-safe-money] - declare "The amount is not zero" $
16.74 s
[really-safe-money] - a /= Amount.zero
16.74 s
[really-safe-money] - ]
16.74 s
[really-safe-money] + [ genericValidate ma,
16.74 s
[really-safe-money] + decorateMap m $ \_ a ->
16.74 s
[really-safe-money] + declare "The amount is not zero" $
16.74 s
[really-safe-money] + a /= Amount.zero
16.74 s
[really-safe-money] + ]
16.74 s
[really-safe-money]
16.74 s
[really-safe-money] instance (NFData currency) => NFData (MultiAmount currency)
16.74 s
[really-safe-money]
16.74 s
[really-safe-money] added 31 mutations
17.13 s
[really-safe-money] [ 8 of 12] Compiling Money.AmountOf ( src/Money/AmountOf.hs, dist/build/Money/AmountOf.p_o )
17.15 s
[really-safe-money] mutation: instrumenting Money.AmountOf
17.15 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
17.15 s
[really-safe-money] @@ -212,11 +212,11 @@
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] -- | See 'Amount.distribute'
17.15 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
17.15 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] - DistributedZero -> DistributedZero
17.15 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] + DistributedZero -> DistributedZero
17.15 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
17.15 s
[really-safe-money] @@ -212,11 +212,11 @@
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] -- | See 'Amount.distribute'
17.15 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
17.15 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] - DistributedZero -> DistributedZero
17.15 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] + DistributedZero -> DistributedZero
17.15 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
17.15 s
[really-safe-money] @@ -212,11 +212,11 @@
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] -- | See 'Amount.distribute'
17.15 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
17.15 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] - DistributedZero -> DistributedZero
17.15 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] + DistributedZero -> DistributedZero
17.15 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] added mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
17.15 s
[really-safe-money] @@ -212,11 +212,11 @@
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] -- | See 'Amount.distribute'
17.15 s
[really-safe-money] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
17.15 s
[really-safe-money] -distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] - DistributedZero -> DistributedZero
17.15 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money] +distribute (AmountOf a) f = case Amount.distribute a f of
17.15 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.15 s
[really-safe-money] + DistributedZero -> DistributedZero
17.15 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
17.15 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
17.15 s
[really-safe-money]
17.15 s
[really-safe-money] added 4 mutations
17.42 s
[really-safe-money] [ 9 of 12] Compiling Money.Account ( src/Money/Account.hs, dist/build/Money/Account.p_o )
17.44 s
[really-safe-money] mutation: instrumenting Money.Account
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
17.44 s
[really-safe-money] @@ -550,11 +550,11 @@
17.44 s
[really-safe-money] let aa1 = abs a1
17.44 s
[really-safe-money] aa2 = abs a2
17.44 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
17.44 s
[really-safe-money] - in case (a1, a2) of
17.44 s
[really-safe-money] - (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Negative _) -> mr
17.44 s
[really-safe-money] + in case (a1, a2) of
17.44 s
[really-safe-money] + (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Negative _) -> mr
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
17.44 s
[really-safe-money] -- another currency using a conversion rate.
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
17.44 s
[really-safe-money] @@ -550,11 +550,11 @@
17.44 s
[really-safe-money] let aa1 = abs a1
17.44 s
[really-safe-money] aa2 = abs a2
17.44 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
17.44 s
[really-safe-money] - in case (a1, a2) of
17.44 s
[really-safe-money] - (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Negative _) -> mr
17.44 s
[really-safe-money] + in case (a1, a2) of
17.44 s
[really-safe-money] + (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Negative _) -> mr
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
17.44 s
[really-safe-money] -- another currency using a conversion rate.
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
17.44 s
[really-safe-money] @@ -550,11 +550,11 @@
17.44 s
[really-safe-money] let aa1 = abs a1
17.44 s
[really-safe-money] aa2 = abs a2
17.44 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
17.44 s
[really-safe-money] - in case (a1, a2) of
17.44 s
[really-safe-money] - (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Negative _) -> mr
17.44 s
[really-safe-money] + in case (a1, a2) of
17.44 s
[really-safe-money] + (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Negative _) -> mr
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
17.44 s
[really-safe-money] -- another currency using a conversion rate.
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:553:7-39
17.44 s
[really-safe-money] @@ -550,11 +550,11 @@
17.44 s
[really-safe-money] let aa1 = abs a1
17.44 s
[really-safe-money] aa2 = abs a2
17.44 s
[really-safe-money] mr = Amount.rate qf1 aa1 qf2 aa2
17.44 s
[really-safe-money] - in case (a1, a2) of
17.44 s
[really-safe-money] - (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] - (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] - (Negative _, Negative _) -> mr
17.44 s
[really-safe-money] + in case (a1, a2) of
17.44 s
[really-safe-money] + (Positive _, Positive _) -> mr
17.44 s
[really-safe-money] + (Positive _, Negative _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Positive _) -> Nothing
17.44 s
[really-safe-money] + (Negative _, Negative _) -> mr
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Convert an amount of money of one currency into an amount of money of
17.44 s
[really-safe-money] -- another currency using a conversion rate.
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
17.44 s
[really-safe-money] @@ -588,9 +588,9 @@
17.44 s
[really-safe-money] (Maybe Account, Maybe ConversionRate)
17.44 s
[really-safe-money] convert r qf1 a cr qf2 =
17.44 s
[really-safe-money] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
17.44 s
[really-safe-money] - in case a of
17.44 s
[really-safe-money] - Positive _ -> (Positive <$> ma, mr)
17.44 s
[really-safe-money] - Negative _ -> (Negative <$> ma, mr)
17.44 s
[really-safe-money] + in case a of
17.44 s
[really-safe-money] + Positive _ -> (Positive <$> ma, mr)
17.44 s
[really-safe-money] + Negative _ -> (Negative <$> ma, mr)
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Format an account of money without a symbol.
17.44 s
[really-safe-money] --
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:591:7-44
17.44 s
[really-safe-money] @@ -588,9 +588,9 @@
17.44 s
[really-safe-money] (Maybe Account, Maybe ConversionRate)
17.44 s
[really-safe-money] convert r qf1 a cr qf2 =
17.44 s
[really-safe-money] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
17.44 s
[really-safe-money] - in case a of
17.44 s
[really-safe-money] - Positive _ -> (Positive <$> ma, mr)
17.44 s
[really-safe-money] - Negative _ -> (Negative <$> ma, mr)
17.44 s
[really-safe-money] + in case a of
17.44 s
[really-safe-money] + Positive _ -> (Positive <$> ma, mr)
17.44 s
[really-safe-money] + Negative _ -> (Negative <$> ma, mr)
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Format an account of money without a symbol.
17.44 s
[really-safe-money] --
17.44 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:421:32-33
17.44 s
[really-safe-money] @@ -418,7 +418,7 @@
17.44 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.44 s
[really-safe-money] multiply factor account =
17.44 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.44 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] + f = case (compare factor 1, compare account zero) of
17.44 s
[really-safe-money] (EQ, _) -> const zero
17.44 s
[really-safe-money] (_, EQ) -> const zero
17.44 s
[really-safe-money] (GT, GT) -> Positive
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
17.44 s
[really-safe-money] @@ -418,13 +418,13 @@
17.44 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.44 s
[really-safe-money] multiply factor account =
17.44 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.44 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] - (EQ, _) -> const zero
17.44 s
[really-safe-money] - (_, EQ) -> const zero
17.44 s
[really-safe-money] - (GT, GT) -> Positive
17.44 s
[really-safe-money] - (GT, LT) -> Negative
17.44 s
[really-safe-money] - (LT, GT) -> Negative
17.44 s
[really-safe-money] - (LT, LT) -> Positive
17.44 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] + (EQ, _) -> const zero
17.44 s
[really-safe-money] + (_, EQ) -> const zero
17.44 s
[really-safe-money] + (GT, GT) -> Positive
17.44 s
[really-safe-money] + (GT, LT) -> Negative
17.44 s
[really-safe-money] + (LT, GT) -> Negative
17.44 s
[really-safe-money] + (LT, LT) -> Positive
17.44 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
17.44 s
[really-safe-money] @@ -418,13 +418,13 @@
17.44 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.44 s
[really-safe-money] multiply factor account =
17.44 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.44 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] - (EQ, _) -> const zero
17.44 s
[really-safe-money] - (_, EQ) -> const zero
17.44 s
[really-safe-money] - (GT, GT) -> Positive
17.44 s
[really-safe-money] - (GT, LT) -> Negative
17.44 s
[really-safe-money] - (LT, GT) -> Negative
17.44 s
[really-safe-money] - (LT, LT) -> Positive
17.44 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] + (EQ, _) -> const zero
17.44 s
[really-safe-money] + (_, EQ) -> const zero
17.44 s
[really-safe-money] + (GT, GT) -> Positive
17.44 s
[really-safe-money] + (GT, LT) -> Negative
17.44 s
[really-safe-money] + (LT, GT) -> Negative
17.44 s
[really-safe-money] + (LT, LT) -> Positive
17.44 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
17.44 s
[really-safe-money]
17.44 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
17.44 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
17.44 s
[really-safe-money] @@ -418,13 +418,13 @@
17.44 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.44 s
[really-safe-money] multiply factor account =
17.44 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.44 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] - (EQ, _) -> const zero
17.44 s
[really-safe-money] - (_, EQ) -> const zero
17.44 s
[really-safe-money] - (GT, GT) -> Positive
17.44 s
[really-safe-money] - (GT, LT) -> Negative
17.44 s
[really-safe-money] - (LT, GT) -> Negative
17.44 s
[really-safe-money] - (LT, LT) -> Positive
17.44 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
17.44 s
[really-safe-money] + (EQ, _) -> const zero
17.44 s
[really-safe-money] + (_, EQ) -> const zero
17.44 s
[really-safe-money] + (GT, GT) -> Positive
17.44 s
[really-safe-money] + (GT, LT) -> Negative
17.44 s
[really-safe-money] + (LT, GT) -> Negative
17.44 s
[really-safe-money] + (LT, LT) -> Positive
17.44 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
17.45 s
[really-safe-money] @@ -418,13 +418,13 @@
17.45 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.45 s
[really-safe-money] multiply factor account =
17.45 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.45 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.45 s
[really-safe-money] - (EQ, _) -> const zero
17.45 s
[really-safe-money] - (_, EQ) -> const zero
17.45 s
[really-safe-money] - (GT, GT) -> Positive
17.45 s
[really-safe-money] - (GT, LT) -> Negative
17.45 s
[really-safe-money] - (LT, GT) -> Negative
17.45 s
[really-safe-money] - (LT, LT) -> Positive
17.45 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
17.45 s
[really-safe-money] + (EQ, _) -> const zero
17.45 s
[really-safe-money] + (_, EQ) -> const zero
17.45 s
[really-safe-money] + (GT, GT) -> Positive
17.45 s
[really-safe-money] + (GT, LT) -> Negative
17.45 s
[really-safe-money] + (LT, GT) -> Negative
17.45 s
[really-safe-money] + (LT, LT) -> Positive
17.45 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
17.45 s
[really-safe-money] @@ -418,13 +418,13 @@
17.45 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.45 s
[really-safe-money] multiply factor account =
17.45 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.45 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.45 s
[really-safe-money] - (EQ, _) -> const zero
17.45 s
[really-safe-money] - (_, EQ) -> const zero
17.45 s
[really-safe-money] - (GT, GT) -> Positive
17.45 s
[really-safe-money] - (GT, LT) -> Negative
17.45 s
[really-safe-money] - (LT, GT) -> Negative
17.45 s
[really-safe-money] - (LT, LT) -> Positive
17.45 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
17.45 s
[really-safe-money] + (EQ, _) -> const zero
17.45 s
[really-safe-money] + (_, EQ) -> const zero
17.45 s
[really-safe-money] + (GT, GT) -> Positive
17.45 s
[really-safe-money] + (GT, LT) -> Negative
17.45 s
[really-safe-money] + (LT, GT) -> Negative
17.45 s
[really-safe-money] + (LT, LT) -> Positive
17.45 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:421:11-29
17.45 s
[really-safe-money] @@ -418,13 +418,13 @@
17.45 s
[really-safe-money] multiply :: Int32 -> Account -> Maybe Account
17.45 s
[really-safe-money] multiply factor account =
17.45 s
[really-safe-money] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
17.45 s
[really-safe-money] - f = case (compare factor 0, compare account zero) of
17.45 s
[really-safe-money] - (EQ, _) -> const zero
17.45 s
[really-safe-money] - (_, EQ) -> const zero
17.45 s
[really-safe-money] - (GT, GT) -> Positive
17.45 s
[really-safe-money] - (GT, LT) -> Negative
17.45 s
[really-safe-money] - (LT, GT) -> Negative
17.45 s
[really-safe-money] - (LT, LT) -> Positive
17.45 s
[really-safe-money] + f = case (compare factor 0, compare account zero) of
17.45 s
[really-safe-money] + (EQ, _) -> const zero
17.45 s
[really-safe-money] + (_, EQ) -> const zero
17.45 s
[really-safe-money] + (GT, GT) -> Positive
17.45 s
[really-safe-money] + (GT, LT) -> Negative
17.45 s
[really-safe-money] + (LT, GT) -> Negative
17.45 s
[really-safe-money] + (LT, LT) -> Positive
17.45 s
[really-safe-money] in f <$> Amount.multiply af (abs account)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
17.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
17.45 s
[really-safe-money] @@ -448,7 +448,7 @@
17.45 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] DistributedZero -> DistributedZero
17.45 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] + if True
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:451:14-23
17.45 s
[really-safe-money] @@ -448,7 +448,7 @@
17.45 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] DistributedZero -> DistributedZero
17.45 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] + if False
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:451:14-23
17.45 s
[really-safe-money] @@ -448,7 +448,7 @@
17.45 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] DistributedZero -> DistributedZero
17.45 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] + if not (a >= zero)
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:451:11-76
17.45 s
[really-safe-money] @@ -448,9 +448,9 @@
17.45 s
[really-safe-money] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] DistributedZero -> DistributedZero
17.45 s
[really-safe-money] DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] if a >= zero
17.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
17.45 s
[really-safe-money] @@ -452,7 +452,7 @@
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] + if True
17.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:455:14-23
17.45 s
[really-safe-money] @@ -452,7 +452,7 @@
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] + if False
17.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:455:14-23
17.45 s
[really-safe-money] @@ -452,7 +452,7 @@
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] + if not (a >= zero)
17.45 s
[really-safe-money] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:455:11-136
17.45 s
[really-safe-money] @@ -452,9 +452,9 @@
17.45 s
[really-safe-money] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
17.45 s
[really-safe-money] @@ -444,17 +444,17 @@
17.45 s
[really-safe-money] distribute a f =
17.45 s
[really-safe-money] let aa = abs a
17.45 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
17.45 s
[really-safe-money] - in case Amount.distribute aa af of
17.45 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] - DistributedZero -> DistributedZero
17.45 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money] + in case Amount.distribute aa af of
17.45 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] + DistributedZero -> DistributedZero
17.45 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
17.45 s
[really-safe-money] @@ -444,17 +444,17 @@
17.45 s
[really-safe-money] distribute a f =
17.45 s
[really-safe-money] let aa = abs a
17.45 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
17.45 s
[really-safe-money] - in case Amount.distribute aa af of
17.45 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] - DistributedZero -> DistributedZero
17.45 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money] + in case Amount.distribute aa af of
17.45 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] + DistributedZero -> DistributedZero
17.45 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
17.45 s
[really-safe-money] @@ -444,17 +444,17 @@
17.45 s
[really-safe-money] distribute a f =
17.45 s
[really-safe-money] let aa = abs a
17.45 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
17.45 s
[really-safe-money] - in case Amount.distribute aa af of
17.45 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] - DistributedZero -> DistributedZero
17.45 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money] + in case Amount.distribute aa af of
17.45 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] + DistributedZero -> DistributedZero
17.45 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] + if a >= zero
17.45 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
17.45 s
[really-safe-money]
17.45 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:447:7-136
17.45 s
[really-safe-money] @@ -444,17 +444,17 @@
17.45 s
[really-safe-money] distribute a f =
17.45 s
[really-safe-money] let aa = abs a
17.45 s
[really-safe-money] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
17.45 s
[really-safe-money] - in case Amount.distribute aa af of
17.45 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.45 s
[really-safe-money] - DistributedZero -> DistributedZero
17.45 s
[really-safe-money] - DistributedIntoEqualChunks numberOfChunks chunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.45 s
[really-safe-money] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.45 s
[really-safe-money] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.45 s
[really-safe-money] - if a >= zero
17.45 s
[really-safe-money] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.45 s
[really-safe-money] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.45 s
[really-safe-money] + in case Amount.distribute aa af of
17.45 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
17.46 s
[really-safe-money] + DistributedZero -> DistributedZero
17.46 s
[really-safe-money] + DistributedIntoEqualChunks numberOfChunks chunk ->
17.46 s
[really-safe-money] + if a >= zero
17.46 s
[really-safe-money] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
17.46 s
[really-safe-money] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
17.46 s
[really-safe-money] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
17.46 s
[really-safe-money] + if a >= zero
17.46 s
[really-safe-money] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
17.46 s
[really-safe-money] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] type AccountDistribution = Amount.Distribution Account
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
17.46 s
[really-safe-money] @@ -519,10 +519,10 @@
17.46 s
[really-safe-money] let aa = abs account
17.46 s
[really-safe-money] (amount, actualFraction) = Amount.fraction ro aa af
17.46 s
[really-safe-money] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
17.46 s
[really-safe-money] - func ma r = case compare account zero of
17.46 s
[really-safe-money] - EQ -> (Just zero, r)
17.46 s
[really-safe-money] - GT -> (Positive <$> ma, r)
17.46 s
[really-safe-money] - LT -> (Negative <$> ma, r)
17.46 s
[really-safe-money] + func ma r = case compare account zero of
17.46 s
[really-safe-money] + EQ -> (Just zero, r)
17.46 s
[really-safe-money] + GT -> (Positive <$> ma, r)
17.46 s
[really-safe-money] + LT -> (Negative <$> ma, r)
17.46 s
[really-safe-money] in func amount actualFraction
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Compute the currency conversion rate between two accounts of money of
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
17.46 s
[really-safe-money] @@ -519,10 +519,10 @@
17.46 s
[really-safe-money] let aa = abs account
17.46 s
[really-safe-money] (amount, actualFraction) = Amount.fraction ro aa af
17.46 s
[really-safe-money] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
17.46 s
[really-safe-money] - func ma r = case compare account zero of
17.46 s
[really-safe-money] - EQ -> (Just zero, r)
17.46 s
[really-safe-money] - GT -> (Positive <$> ma, r)
17.46 s
[really-safe-money] - LT -> (Negative <$> ma, r)
17.46 s
[really-safe-money] + func ma r = case compare account zero of
17.46 s
[really-safe-money] + EQ -> (Just zero, r)
17.46 s
[really-safe-money] + GT -> (Positive <$> ma, r)
17.46 s
[really-safe-money] + LT -> (Negative <$> ma, r)
17.46 s
[really-safe-money] in func amount actualFraction
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Compute the currency conversion rate between two accounts of money of
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:522:19-35
17.46 s
[really-safe-money] @@ -519,10 +519,10 @@
17.46 s
[really-safe-money] let aa = abs account
17.46 s
[really-safe-money] (amount, actualFraction) = Amount.fraction ro aa af
17.46 s
[really-safe-money] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
17.46 s
[really-safe-money] - func ma r = case compare account zero of
17.46 s
[really-safe-money] - EQ -> (Just zero, r)
17.46 s
[really-safe-money] - GT -> (Positive <$> ma, r)
17.46 s
[really-safe-money] - LT -> (Negative <$> ma, r)
17.46 s
[really-safe-money] + func ma r = case compare account zero of
17.46 s
[really-safe-money] + EQ -> (Just zero, r)
17.46 s
[really-safe-money] + GT -> (Positive <$> ma, r)
17.46 s
[really-safe-money] + LT -> (Negative <$> ma, r)
17.46 s
[really-safe-money] in func amount actualFraction
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Compute the currency conversion rate between two accounts of money of
17.46 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:495:17-18
17.46 s
[really-safe-money] @@ -492,7 +492,7 @@
17.46 s
[really-safe-money] fraction rounding account f =
17.46 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] - if f >= 0
17.46 s
[really-safe-money] + if f >= 1
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] else case rounding of
17.46 s
[really-safe-money] RoundUp -> RoundDown
17.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
17.46 s
[really-safe-money] @@ -492,7 +492,7 @@
17.46 s
[really-safe-money] fraction rounding account f =
17.46 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] - if f >= 0
17.46 s
[really-safe-money] + if True
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] else case rounding of
17.46 s
[really-safe-money] RoundUp -> RoundDown
17.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:495:12-18
17.46 s
[really-safe-money] @@ -492,7 +492,7 @@
17.46 s
[really-safe-money] fraction rounding account f =
17.46 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] - if f >= 0
17.46 s
[really-safe-money] + if False
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] else case rounding of
17.46 s
[really-safe-money] RoundUp -> RoundDown
17.46 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:495:12-18
17.46 s
[really-safe-money] @@ -492,7 +492,7 @@
17.46 s
[really-safe-money] fraction rounding account f =
17.46 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] - if f >= 0
17.46 s
[really-safe-money] + if not (f >= 0)
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] else case rounding of
17.46 s
[really-safe-money] RoundUp -> RoundDown
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
17.46 s
[really-safe-money] @@ -494,10 +494,10 @@
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] if f >= 0
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] - else case rounding of
17.46 s
[really-safe-money] - RoundUp -> RoundDown
17.46 s
[really-safe-money] - RoundDown -> RoundUp
17.46 s
[really-safe-money] - RoundNearest -> RoundNearest
17.46 s
[really-safe-money] + else case rounding of
17.46 s
[really-safe-money] + RoundUp -> RoundDown
17.46 s
[really-safe-money] + RoundDown -> RoundUp
17.46 s
[really-safe-money] + RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] in if f >= 0
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
17.46 s
[really-safe-money] @@ -494,10 +494,10 @@
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] if f >= 0
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] - else case rounding of
17.46 s
[really-safe-money] - RoundUp -> RoundDown
17.46 s
[really-safe-money] - RoundDown -> RoundUp
17.46 s
[really-safe-money] - RoundNearest -> RoundNearest
17.46 s
[really-safe-money] + else case rounding of
17.46 s
[really-safe-money] + RoundUp -> RoundDown
17.46 s
[really-safe-money] + RoundDown -> RoundUp
17.46 s
[really-safe-money] + RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] in if f >= 0
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:497:16-41
17.46 s
[really-safe-money] @@ -494,10 +494,10 @@
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] if f >= 0
17.46 s
[really-safe-money] then rounding
17.46 s
[really-safe-money] - else case rounding of
17.46 s
[really-safe-money] - RoundUp -> RoundDown
17.46 s
[really-safe-money] - RoundDown -> RoundUp
17.46 s
[really-safe-money] - RoundNearest -> RoundNearest
17.46 s
[really-safe-money] + else case rounding of
17.46 s
[really-safe-money] + RoundUp -> RoundDown
17.46 s
[really-safe-money] + RoundDown -> RoundUp
17.46 s
[really-safe-money] + RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] in if f >= 0
17.46 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:495:9-41
17.46 s
[really-safe-money] @@ -492,12 +492,12 @@
17.46 s
[really-safe-money] fraction rounding account f =
17.46 s
[really-safe-money] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
17.46 s
[really-safe-money] ro =
17.46 s
[really-safe-money] - if f >= 0
17.46 s
[really-safe-money] - then rounding
17.46 s
[really-safe-money] - else case rounding of
17.46 s
[really-safe-money] - RoundUp -> RoundDown
17.46 s
[really-safe-money] - RoundDown -> RoundUp
17.46 s
[really-safe-money] - RoundNearest -> RoundNearest
17.46 s
[really-safe-money] + if f >= 0
17.46 s
[really-safe-money] + then rounding
17.46 s
[really-safe-money] + else case rounding of
17.46 s
[really-safe-money] + RoundUp -> RoundDown
17.46 s
[really-safe-money] + RoundDown -> RoundUp
17.46 s
[really-safe-money] + RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] in if f >= 0
17.46 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:503:15-16
17.46 s
[really-safe-money] @@ -500,7 +500,7 @@
17.46 s
[really-safe-money] RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] - in if f >= 0
17.46 s
[really-safe-money] + in if f >= 1
17.46 s
[really-safe-money] then (ma, r)
17.46 s
[really-safe-money] else (negate <$> ma, -r)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
17.46 s
[really-safe-money] @@ -500,7 +500,7 @@
17.46 s
[really-safe-money] RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] - in if f >= 0
17.46 s
[really-safe-money] + in if True
17.46 s
[really-safe-money] then (ma, r)
17.46 s
[really-safe-money] else (negate <$> ma, -r)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:503:10-16
17.46 s
[really-safe-money] @@ -500,7 +500,7 @@
17.46 s
[really-safe-money] RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] - in if f >= 0
17.46 s
[really-safe-money] + in if False
17.46 s
[really-safe-money] then (ma, r)
17.46 s
[really-safe-money] else (negate <$> ma, -r)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:503:10-16
17.46 s
[really-safe-money] @@ -500,7 +500,7 @@
17.46 s
[really-safe-money] RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] - in if f >= 0
17.46 s
[really-safe-money] + in if not (f >= 0)
17.46 s
[really-safe-money] then (ma, r)
17.46 s
[really-safe-money] else (negate <$> ma, -r)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:503:7-33
17.46 s
[really-safe-money] @@ -500,9 +500,9 @@
17.46 s
[really-safe-money] RoundNearest -> RoundNearest
17.46 s
[really-safe-money] (ma, ar) = fractionRatio ro account af
17.46 s
[really-safe-money] r = (realToFrac :: Ratio Natural -> Rational) ar
17.46 s
[really-safe-money] - in if f >= 0
17.46 s
[really-safe-money] - then (ma, r)
17.46 s
[really-safe-money] - else (negate <$> ma, -r)
17.46 s
[really-safe-money] + in if f >= 0
17.46 s
[really-safe-money] + then (ma, r)
17.46 s
[really-safe-money] + else (negate <$> ma, -r)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
17.46 s
[really-safe-money] --
17.46 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:233:19-20
17.46 s
[really-safe-money] @@ -230,7 +230,7 @@
17.46 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
17.46 s
[really-safe-money] fromRational quantisationFactor r =
17.46 s
[really-safe-money] let r' = Prelude.abs r
17.46 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
17.46 s
[really-safe-money] + f = if r >= 1 then Positive else Negative
17.46 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
17.46 s
[really-safe-money] @@ -230,7 +230,7 @@
17.46 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
17.46 s
[really-safe-money] fromRational quantisationFactor r =
17.46 s
[really-safe-money] let r' = Prelude.abs r
17.46 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
17.46 s
[really-safe-money] + f = if True then Positive else Negative
17.46 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:233:14-20
17.46 s
[really-safe-money] @@ -230,7 +230,7 @@
17.46 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
17.46 s
[really-safe-money] fromRational quantisationFactor r =
17.46 s
[really-safe-money] let r' = Prelude.abs r
17.46 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
17.46 s
[really-safe-money] + f = if False then Positive else Negative
17.46 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:233:14-20
17.46 s
[really-safe-money] @@ -230,7 +230,7 @@
17.46 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
17.46 s
[really-safe-money] fromRational quantisationFactor r =
17.46 s
[really-safe-money] let r' = Prelude.abs r
17.46 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
17.46 s
[really-safe-money] + f = if not (r >= 0) then Positive else Negative
17.46 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:233:11-48
17.46 s
[really-safe-money] @@ -230,7 +230,7 @@
17.46 s
[really-safe-money] fromRational :: QuantisationFactor -> Rational -> Maybe Account
17.46 s
[really-safe-money] fromRational quantisationFactor r =
17.46 s
[really-safe-money] let r' = Prelude.abs r
17.46 s
[really-safe-money] - f = if r >= 0 then Positive else Negative
17.46 s
[really-safe-money] + f = if r >= 0 then Positive else Negative
17.46 s
[really-safe-money] in f <$> Amount.fromRational quantisationFactor r'
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
17.46 s
[really-safe-money] @@ -208,9 +208,9 @@
17.46 s
[really-safe-money] -- (-3) % 20
17.46 s
[really-safe-money] toRational :: QuantisationFactor -> Account -> Rational
17.46 s
[really-safe-money] toRational quantisationFactor account =
17.46 s
[really-safe-money] - let f = case account of
17.46 s
[really-safe-money] - Positive _ -> id
17.46 s
[really-safe-money] - Negative _ -> Prelude.negate
17.46 s
[really-safe-money] + let f = case account of
17.46 s
[really-safe-money] + Positive _ -> id
17.46 s
[really-safe-money] + Negative _ -> Prelude.negate
17.46 s
[really-safe-money] in f $ Amount.toRational quantisationFactor (abs account)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:211:11-37
17.46 s
[really-safe-money] @@ -208,9 +208,9 @@
17.46 s
[really-safe-money] -- (-3) % 20
17.46 s
[really-safe-money] toRational :: QuantisationFactor -> Account -> Rational
17.46 s
[really-safe-money] toRational quantisationFactor account =
17.46 s
[really-safe-money] - let f = case account of
17.46 s
[really-safe-money] - Positive _ -> id
17.46 s
[really-safe-money] - Negative _ -> Prelude.negate
17.46 s
[really-safe-money] + let f = case account of
17.46 s
[really-safe-money] + Positive _ -> id
17.46 s
[really-safe-money] + Negative _ -> Prelude.negate
17.46 s
[really-safe-money] in f $ Amount.toRational quantisationFactor (abs account)
17.46 s
[really-safe-money]
17.46 s
[really-safe-money] -- | Turn a 'Rational' into an amount of money.
17.46 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:197:19-20
17.46 s
[really-safe-money] @@ -194,7 +194,7 @@
17.46 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
17.46 s
[really-safe-money] fromDouble quantisationFactor d =
17.46 s
[really-safe-money] let d' = Prelude.abs d
17.46 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
17.46 s
[really-safe-money] + f = if d >= 1 then Positive else Negative
17.46 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
17.46 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
17.47 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
17.47 s
[really-safe-money] @@ -194,7 +194,7 @@
17.47 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
17.47 s
[really-safe-money] fromDouble quantisationFactor d =
17.47 s
[really-safe-money] let d' = Prelude.abs d
17.47 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
17.47 s
[really-safe-money] + f = if True then Positive else Negative
17.47 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
17.47 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:197:14-20
17.47 s
[really-safe-money] @@ -194,7 +194,7 @@
17.47 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
17.47 s
[really-safe-money] fromDouble quantisationFactor d =
17.47 s
[really-safe-money] let d' = Prelude.abs d
17.47 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
17.47 s
[really-safe-money] + f = if False then Positive else Negative
17.47 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
17.47 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:197:14-20
17.47 s
[really-safe-money] @@ -194,7 +194,7 @@
17.47 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
17.47 s
[really-safe-money] fromDouble quantisationFactor d =
17.47 s
[really-safe-money] let d' = Prelude.abs d
17.47 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
17.47 s
[really-safe-money] + f = if not (d >= 0) then Positive else Negative
17.47 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
17.47 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:197:11-48
17.47 s
[really-safe-money] @@ -194,7 +194,7 @@
17.47 s
[really-safe-money] fromDouble :: QuantisationFactor -> Double -> Maybe Account
17.47 s
[really-safe-money] fromDouble quantisationFactor d =
17.47 s
[really-safe-money] let d' = Prelude.abs d
17.47 s
[really-safe-money] - f = if d >= 0 then Positive else Negative
17.47 s
[really-safe-money] + f = if d >= 0 then Positive else Negative
17.47 s
[really-safe-money] in f <$> Amount.fromDouble quantisationFactor d'
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Rational'.
17.47 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
17.47 s
[really-safe-money] @@ -168,9 +168,9 @@
17.47 s
[really-safe-money] -- -0.25
17.47 s
[really-safe-money] toDouble :: QuantisationFactor -> Account -> Double
17.47 s
[really-safe-money] toDouble quantisationFactor account =
17.47 s
[really-safe-money] - let f = case account of
17.47 s
[really-safe-money] - Positive _ -> id
17.47 s
[really-safe-money] - Negative _ -> Prelude.negate
17.47 s
[really-safe-money] + let f = case account of
17.47 s
[really-safe-money] + Positive _ -> id
17.47 s
[really-safe-money] + Negative _ -> Prelude.negate
17.47 s
[really-safe-money] in f $ Amount.toDouble quantisationFactor (abs account)
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn a 'Double' into an amount of money.
17.47 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:171:11-37
17.47 s
[really-safe-money] @@ -168,9 +168,9 @@
17.47 s
[really-safe-money] -- -0.25
17.47 s
[really-safe-money] toDouble :: QuantisationFactor -> Account -> Double
17.47 s
[really-safe-money] toDouble quantisationFactor account =
17.47 s
[really-safe-money] - let f = case account of
17.47 s
[really-safe-money] - Positive _ -> id
17.47 s
[really-safe-money] - Negative _ -> Prelude.negate
17.47 s
[really-safe-money] + let f = case account of
17.47 s
[really-safe-money] + Positive _ -> id
17.47 s
[really-safe-money] + Negative _ -> Prelude.negate
17.47 s
[really-safe-money] in f $ Amount.toDouble quantisationFactor (abs account)
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn a 'Double' into an amount of money.
17.47 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
17.47 s
[really-safe-money] @@ -152,9 +152,9 @@
17.47 s
[really-safe-money] -- We return 'Integer' because the result does not fit into a 'Word64'
17.47 s
[really-safe-money] toMinimalQuantisations :: Account -> Integer
17.47 s
[really-safe-money] toMinimalQuantisations account =
17.47 s
[really-safe-money] - let f = case account of
17.47 s
[really-safe-money] - Positive _ -> id
17.47 s
[really-safe-money] - Negative _ -> Prelude.negate
17.47 s
[really-safe-money] + let f = case account of
17.47 s
[really-safe-money] + Positive _ -> id
17.47 s
[really-safe-money] + Negative _ -> Prelude.negate
17.47 s
[really-safe-money] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
17.47 s
[really-safe-money] added mutation RemoveCase at src/Money/Account.hs:155:11-37
17.47 s
[really-safe-money] @@ -152,9 +152,9 @@
17.47 s
[really-safe-money] -- We return 'Integer' because the result does not fit into a 'Word64'
17.47 s
[really-safe-money] toMinimalQuantisations :: Account -> Integer
17.47 s
[really-safe-money] toMinimalQuantisations account =
17.47 s
[really-safe-money] - let f = case account of
17.47 s
[really-safe-money] - Positive _ -> id
17.47 s
[really-safe-money] - Negative _ -> Prelude.negate
17.47 s
[really-safe-money] + let f = case account of
17.47 s
[really-safe-money] + Positive _ -> id
17.47 s
[really-safe-money] + Negative _ -> Prelude.negate
17.47 s
[really-safe-money] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount of money into a 'Double'.
17.47 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
17.47 s
[really-safe-money] @@ -120,7 +120,7 @@
17.47 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
17.47 s
[really-safe-money] a :: Integer
17.47 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
17.47 s
[really-safe-money] - in if a > maxBoundI
17.47 s
[really-safe-money] + in if True
17.47 s
[really-safe-money] then Nothing
17.47 s
[really-safe-money] else
17.47 s
[really-safe-money] let w :: Word64
17.47 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:123:10-23
17.47 s
[really-safe-money] @@ -120,7 +120,7 @@
17.47 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
17.47 s
[really-safe-money] a :: Integer
17.47 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
17.47 s
[really-safe-money] - in if a > maxBoundI
17.47 s
[really-safe-money] + in if False
17.47 s
[really-safe-money] then Nothing
17.47 s
[really-safe-money] else
17.47 s
[really-safe-money] let w :: Word64
17.47 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:123:10-23
17.47 s
[really-safe-money] @@ -120,7 +120,7 @@
17.47 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
17.47 s
[really-safe-money] a :: Integer
17.47 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
17.47 s
[really-safe-money] - in if a > maxBoundI
17.47 s
[really-safe-money] + in if not (a > maxBoundI)
17.47 s
[really-safe-money] then Nothing
17.47 s
[really-safe-money] else
17.47 s
[really-safe-money] let w :: Word64
17.47 s
[really-safe-money] added mutation IntLit at src/Money/Account.hs:131:25-26
17.47 s
[really-safe-money] @@ -128,7 +128,7 @@
17.47 s
[really-safe-money] amount :: Amount
17.47 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] in Just $
17.47 s
[really-safe-money] - if i >= 0
17.47 s
[really-safe-money] + if i >= 1
17.47 s
[really-safe-money] then Positive amount
17.47 s
[really-safe-money] else Negative amount
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
17.47 s
[really-safe-money] @@ -128,7 +128,7 @@
17.47 s
[really-safe-money] amount :: Amount
17.47 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] in Just $
17.47 s
[really-safe-money] - if i >= 0
17.47 s
[really-safe-money] + if True
17.47 s
[really-safe-money] then Positive amount
17.47 s
[really-safe-money] else Negative amount
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] added mutation ConstBool at src/Money/Account.hs:131:20-26
17.47 s
[really-safe-money] @@ -128,7 +128,7 @@
17.47 s
[really-safe-money] amount :: Amount
17.47 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] in Just $
17.47 s
[really-safe-money] - if i >= 0
17.47 s
[really-safe-money] + if False
17.47 s
[really-safe-money] then Positive amount
17.47 s
[really-safe-money] else Negative amount
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] added mutation Negate at src/Money/Account.hs:131:20-26
17.47 s
[really-safe-money] @@ -128,7 +128,7 @@
17.47 s
[really-safe-money] amount :: Amount
17.47 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] in Just $
17.47 s
[really-safe-money] - if i >= 0
17.47 s
[really-safe-money] + if not (i >= 0)
17.47 s
[really-safe-money] then Positive amount
17.47 s
[really-safe-money] else Negative amount
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:131:17-39
17.47 s
[really-safe-money] @@ -128,9 +128,9 @@
17.47 s
[really-safe-money] amount :: Amount
17.47 s
[really-safe-money] amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] in Just $
17.47 s
[really-safe-money] - if i >= 0
17.47 s
[really-safe-money] - then Positive amount
17.47 s
[really-safe-money] - else Negative amount
17.47 s
[really-safe-money] + if i >= 0
17.47 s
[really-safe-money] + then Positive amount
17.47 s
[really-safe-money] + else Negative amount
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount into a positive account
17.47 s
[really-safe-money] --
17.47 s
[really-safe-money] added mutation CondFlip at src/Money/Account.hs:123:7-39
17.47 s
[really-safe-money] @@ -120,17 +120,17 @@
17.47 s
[really-safe-money] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
17.47 s
[really-safe-money] a :: Integer
17.47 s
[really-safe-money] a = (Prelude.abs :: Integer -> Integer) i
17.47 s
[really-safe-money] - in if a > maxBoundI
17.47 s
[really-safe-money] - then Nothing
17.47 s
[really-safe-money] - else
17.47 s
[really-safe-money] - let w :: Word64
17.47 s
[really-safe-money] - w = (fromIntegral :: Integer -> Word64) a
17.47 s
[really-safe-money] - amount :: Amount
17.47 s
[really-safe-money] - amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] - in Just $
17.47 s
[really-safe-money] - if i >= 0
17.47 s
[really-safe-money] - then Positive amount
17.47 s
[really-safe-money] - else Negative amount
17.47 s
[really-safe-money] + in if a > maxBoundI
17.47 s
[really-safe-money] + then Nothing
17.47 s
[really-safe-money] + else
17.47 s
[really-safe-money] + let w :: Word64
17.47 s
[really-safe-money] + w = (fromIntegral :: Integer -> Word64) a
17.47 s
[really-safe-money] + amount :: Amount
17.47 s
[really-safe-money] + amount = Amount.fromMinimalQuantisations w
17.47 s
[really-safe-money] + in Just $
17.47 s
[really-safe-money] + if i >= 0
17.47 s
[really-safe-money] + then Positive amount
17.47 s
[really-safe-money] + else Negative amount
17.47 s
[really-safe-money]
17.47 s
[really-safe-money] -- | Turn an amount into a positive account
17.47 s
[really-safe-money] --
17.47 s
[really-safe-money] added 66 mutations
18.18 s
[really-safe-money] [10 of 12] Compiling Money.MultiAccount ( src/Money/MultiAccount.hs, dist/build/Money/MultiAccount.p_o )
18.19 s
[really-safe-money] mutation: instrumenting Money.MultiAccount
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
18.19 s
[really-safe-money] @@ -171,10 +171,10 @@
18.19 s
[really-safe-money] fmap
18.19 s
[really-safe-money] ( ( \theoreticalResult ->
18.19 s
[really-safe-money] let rounder :: Rational -> Integer
18.19 s
[really-safe-money] - rounder = case r of
18.19 s
[really-safe-money] - RoundUp -> ceiling
18.19 s
[really-safe-money] - RoundDown -> floor
18.19 s
[really-safe-money] - RoundNearest -> round
18.19 s
[really-safe-money] + rounder = case r of
18.19 s
[really-safe-money] + RoundUp -> ceiling
18.19 s
[really-safe-money] + RoundDown -> floor
18.19 s
[really-safe-money] + RoundNearest -> round
18.19 s
[really-safe-money] roundedResult :: Integer
18.19 s
[really-safe-money] roundedResult = rounder theoreticalResult
18.19 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
18.19 s
[really-safe-money] @@ -171,10 +171,10 @@
18.19 s
[really-safe-money] fmap
18.19 s
[really-safe-money] ( ( \theoreticalResult ->
18.19 s
[really-safe-money] let rounder :: Rational -> Integer
18.19 s
[really-safe-money] - rounder = case r of
18.19 s
[really-safe-money] - RoundUp -> ceiling
18.19 s
[really-safe-money] - RoundDown -> floor
18.19 s
[really-safe-money] - RoundNearest -> round
18.19 s
[really-safe-money] + rounder = case r of
18.19 s
[really-safe-money] + RoundUp -> ceiling
18.19 s
[really-safe-money] + RoundDown -> floor
18.19 s
[really-safe-money] + RoundNearest -> round
18.19 s
[really-safe-money] roundedResult :: Integer
18.19 s
[really-safe-money] roundedResult = rounder theoreticalResult
18.19 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
18.19 s
[really-safe-money] @@ -171,10 +171,10 @@
18.19 s
[really-safe-money] fmap
18.19 s
[really-safe-money] ( ( \theoreticalResult ->
18.19 s
[really-safe-money] let rounder :: Rational -> Integer
18.19 s
[really-safe-money] - rounder = case r of
18.19 s
[really-safe-money] - RoundUp -> ceiling
18.19 s
[really-safe-money] - RoundDown -> floor
18.19 s
[really-safe-money] - RoundNearest -> round
18.19 s
[really-safe-money] + rounder = case r of
18.19 s
[really-safe-money] + RoundUp -> ceiling
18.19 s
[really-safe-money] + RoundDown -> floor
18.19 s
[really-safe-money] + RoundNearest -> round
18.19 s
[really-safe-money] roundedResult :: Integer
18.19 s
[really-safe-money] roundedResult = rounder theoreticalResult
18.19 s
[really-safe-money] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
18.19 s
[really-safe-money] @@ -177,10 +177,10 @@
18.19 s
[really-safe-money] RoundNearest -> round
18.19 s
[really-safe-money] roundedResult :: Integer
18.19 s
[really-safe-money] roundedResult = rounder theoreticalResult
18.19 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] - LT -> RoundedDown
18.19 s
[really-safe-money] - EQ -> DidNotRound
18.19 s
[really-safe-money] - GT -> RoundedUp
18.19 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] + LT -> RoundedDown
18.19 s
[really-safe-money] + EQ -> DidNotRound
18.19 s
[really-safe-money] + GT -> RoundedUp
18.19 s
[really-safe-money] in (Account.fromMinimalQuantisations roundedResult, rounded)
18.19 s
[really-safe-money] )
18.19 s
[really-safe-money] . Prelude.sum
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
18.19 s
[really-safe-money] @@ -177,10 +177,10 @@
18.19 s
[really-safe-money] RoundNearest -> round
18.19 s
[really-safe-money] roundedResult :: Integer
18.19 s
[really-safe-money] roundedResult = rounder theoreticalResult
18.19 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] - LT -> RoundedDown
18.19 s
[really-safe-money] - EQ -> DidNotRound
18.19 s
[really-safe-money] - GT -> RoundedUp
18.19 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] + LT -> RoundedDown
18.19 s
[really-safe-money] + EQ -> DidNotRound
18.19 s
[really-safe-money] + GT -> RoundedUp
18.19 s
[really-safe-money] in (Account.fromMinimalQuantisations roundedResult, rounded)
18.19 s
[really-safe-money] )
18.19 s
[really-safe-money] . Prelude.sum
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
18.19 s
[really-safe-money] @@ -177,10 +177,10 @@
18.19 s
[really-safe-money] RoundNearest -> round
18.19 s
[really-safe-money] roundedResult :: Integer
18.19 s
[really-safe-money] roundedResult = rounder theoreticalResult
18.19 s
[really-safe-money] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] - LT -> RoundedDown
18.19 s
[really-safe-money] - EQ -> DidNotRound
18.19 s
[really-safe-money] - GT -> RoundedUp
18.19 s
[really-safe-money] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
18.19 s
[really-safe-money] + LT -> RoundedDown
18.19 s
[really-safe-money] + EQ -> DidNotRound
18.19 s
[really-safe-money] + GT -> RoundedUp
18.19 s
[really-safe-money] in (Account.fromMinimalQuantisations roundedResult, rounded)
18.19 s
[really-safe-money] )
18.19 s
[really-safe-money] . Prelude.sum
18.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
18.19 s
[really-safe-money] @@ -131,7 +131,7 @@
18.19 s
[really-safe-money] Just a -> do
18.19 s
[really-safe-money] r <- Account.subtract a account
18.19 s
[really-safe-money] Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] + if True
18.19 s
[really-safe-money] then M.delete currency m
18.19 s
[really-safe-money] else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
18.19 s
[really-safe-money] @@ -131,7 +131,7 @@
18.19 s
[really-safe-money] Just a -> do
18.19 s
[really-safe-money] r <- Account.subtract a account
18.19 s
[really-safe-money] Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] + if False
18.19 s
[really-safe-money] then M.delete currency m
18.19 s
[really-safe-money] else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:134:12-29
18.19 s
[really-safe-money] @@ -131,7 +131,7 @@
18.19 s
[really-safe-money] Just a -> do
18.19 s
[really-safe-money] r <- Account.subtract a account
18.19 s
[really-safe-money] Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] + if not (r == Account.zero)
18.19 s
[really-safe-money] then M.delete currency m
18.19 s
[really-safe-money] else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
18.19 s
[really-safe-money] @@ -131,9 +131,9 @@
18.19 s
[really-safe-money] Just a -> do
18.19 s
[really-safe-money] r <- Account.subtract a account
18.19 s
[really-safe-money] Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] - then M.delete currency m
18.19 s
[really-safe-money] - else M.insert currency r m
18.19 s
[really-safe-money] + if r == Account.zero
18.19 s
[really-safe-money] + then M.delete currency m
18.19 s
[really-safe-money] + else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] -- | Try to convert every account to one currency.
18.19 s
[really-safe-money] --
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
18.19 s
[really-safe-money] @@ -126,14 +126,14 @@
18.19 s
[really-safe-money] subtractAccount m _ (Positive (Amount 0)) = Just m
18.19 s
[really-safe-money] subtractAccount m _ (Negative (Amount 0)) = Just m
18.19 s
[really-safe-money] subtractAccount (MultiAccount m) currency account =
18.19 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
18.19 s
[really-safe-money] - Nothing -> Just $ M.insert currency (Account.negate account) m
18.19 s
[really-safe-money] - Just a -> do
18.19 s
[really-safe-money] - r <- Account.subtract a account
18.19 s
[really-safe-money] - Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] - then M.delete currency m
18.19 s
[really-safe-money] - else M.insert currency r m
18.19 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
18.19 s
[really-safe-money] + Nothing -> Just $ M.insert currency (Account.negate account) m
18.19 s
[really-safe-money] + Just a -> do
18.19 s
[really-safe-money] + r <- Account.subtract a account
18.19 s
[really-safe-money] + Just $
18.19 s
[really-safe-money] + if r == Account.zero
18.19 s
[really-safe-money] + then M.delete currency m
18.19 s
[really-safe-money] + else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] -- | Try to convert every account to one currency.
18.19 s
[really-safe-money] --
18.19 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
18.19 s
[really-safe-money] @@ -126,14 +126,14 @@
18.19 s
[really-safe-money] subtractAccount m _ (Positive (Amount 0)) = Just m
18.19 s
[really-safe-money] subtractAccount m _ (Negative (Amount 0)) = Just m
18.19 s
[really-safe-money] subtractAccount (MultiAccount m) currency account =
18.19 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
18.19 s
[really-safe-money] - Nothing -> Just $ M.insert currency (Account.negate account) m
18.19 s
[really-safe-money] - Just a -> do
18.19 s
[really-safe-money] - r <- Account.subtract a account
18.19 s
[really-safe-money] - Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] - then M.delete currency m
18.19 s
[really-safe-money] - else M.insert currency r m
18.19 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
18.19 s
[really-safe-money] + Nothing -> Just $ M.insert currency (Account.negate account) m
18.19 s
[really-safe-money] + Just a -> do
18.19 s
[really-safe-money] + r <- Account.subtract a account
18.19 s
[really-safe-money] + Just $
18.19 s
[really-safe-money] + if r == Account.zero
18.19 s
[really-safe-money] + then M.delete currency m
18.19 s
[really-safe-money] + else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] -- | Try to convert every account to one currency.
18.19 s
[really-safe-money] --
18.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
18.19 s
[really-safe-money] @@ -117,7 +117,7 @@
18.19 s
[really-safe-money] Just a -> do
18.19 s
[really-safe-money] r <- Account.add a account
18.19 s
[really-safe-money] Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] + if True
18.19 s
[really-safe-money] then M.delete currency m
18.19 s
[really-safe-money] else M.insert currency r m
18.19 s
[really-safe-money]
18.19 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
18.19 s
[really-safe-money] @@ -117,7 +117,7 @@
18.19 s
[really-safe-money] Just a -> do
18.19 s
[really-safe-money] r <- Account.add a account
18.19 s
[really-safe-money] Just $
18.19 s
[really-safe-money] - if r == Account.zero
18.19 s
[really-safe-money] + if False
18.20 s
[really-safe-money] then M.delete currency m
18.20 s
[really-safe-money] else M.insert currency r m
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:120:12-29
18.20 s
[really-safe-money] @@ -117,7 +117,7 @@
18.20 s
[really-safe-money] Just a -> do
18.20 s
[really-safe-money] r <- Account.add a account
18.20 s
[really-safe-money] Just $
18.20 s
[really-safe-money] - if r == Account.zero
18.20 s
[really-safe-money] + if not (r == Account.zero)
18.20 s
[really-safe-money] then M.delete currency m
18.20 s
[really-safe-money] else M.insert currency r m
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
18.20 s
[really-safe-money] @@ -117,9 +117,9 @@
18.20 s
[really-safe-money] Just a -> do
18.20 s
[really-safe-money] r <- Account.add a account
18.20 s
[really-safe-money] Just $
18.20 s
[really-safe-money] - if r == Account.zero
18.20 s
[really-safe-money] - then M.delete currency m
18.20 s
[really-safe-money] - else M.insert currency r m
18.20 s
[really-safe-money] + if r == Account.zero
18.20 s
[really-safe-money] + then M.delete currency m
18.20 s
[really-safe-money] + else M.insert currency r m
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
18.20 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
18.20 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
18.20 s
[really-safe-money] @@ -112,14 +112,14 @@
18.20 s
[really-safe-money] addAccount m _ (Positive (Amount 0)) = Just m
18.20 s
[really-safe-money] addAccount m _ (Negative (Amount 0)) = Just m
18.20 s
[really-safe-money] addAccount (MultiAccount m) currency account =
18.20 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
18.20 s
[really-safe-money] - Nothing -> Just $ M.insert currency account m
18.20 s
[really-safe-money] - Just a -> do
18.20 s
[really-safe-money] - r <- Account.add a account
18.20 s
[really-safe-money] - Just $
18.20 s
[really-safe-money] - if r == Account.zero
18.20 s
[really-safe-money] - then M.delete currency m
18.20 s
[really-safe-money] - else M.insert currency r m
18.20 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
18.20 s
[really-safe-money] + Nothing -> Just $ M.insert currency account m
18.20 s
[really-safe-money] + Just a -> do
18.20 s
[really-safe-money] + r <- Account.add a account
18.20 s
[really-safe-money] + Just $
18.20 s
[really-safe-money] + if r == Account.zero
18.20 s
[really-safe-money] + then M.delete currency m
18.20 s
[really-safe-money] + else M.insert currency r m
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
18.20 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
18.20 s
[really-safe-money] added mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
18.20 s
[really-safe-money] @@ -112,14 +112,14 @@
18.20 s
[really-safe-money] addAccount m _ (Positive (Amount 0)) = Just m
18.20 s
[really-safe-money] addAccount m _ (Negative (Amount 0)) = Just m
18.20 s
[really-safe-money] addAccount (MultiAccount m) currency account =
18.20 s
[really-safe-money] - fmap MultiAccount $ case M.lookup currency m of
18.20 s
[really-safe-money] - Nothing -> Just $ M.insert currency account m
18.20 s
[really-safe-money] - Just a -> do
18.20 s
[really-safe-money] - r <- Account.add a account
18.20 s
[really-safe-money] - Just $
18.20 s
[really-safe-money] - if r == Account.zero
18.20 s
[really-safe-money] - then M.delete currency m
18.20 s
[really-safe-money] - else M.insert currency r m
18.20 s
[really-safe-money] + fmap MultiAccount $ case M.lookup currency m of
18.20 s
[really-safe-money] + Nothing -> Just $ M.insert currency account m
18.20 s
[really-safe-money] + Just a -> do
18.20 s
[really-safe-money] + r <- Account.add a account
18.20 s
[really-safe-money] + Just $
18.20 s
[really-safe-money] + if r == Account.zero
18.20 s
[really-safe-money] + then M.delete currency m
18.20 s
[really-safe-money] + else M.insert currency r m
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- | Add an 'Account' to a 'MultiAccount'
18.20 s
[really-safe-money] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
18.20 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
18.20 s
[really-safe-money] @@ -75,7 +75,7 @@
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
18.20 s
[really-safe-money] fromAccount currency amount =
18.20 s
[really-safe-money] - if amount == Account.zero
18.20 s
[really-safe-money] + if True
18.20 s
[really-safe-money] then zero
18.20 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
18.20 s
[really-safe-money] @@ -75,7 +75,7 @@
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
18.20 s
[really-safe-money] fromAccount currency amount =
18.20 s
[really-safe-money] - if amount == Account.zero
18.20 s
[really-safe-money] + if False
18.20 s
[really-safe-money] then zero
18.20 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:78:6-28
18.20 s
[really-safe-money] @@ -75,7 +75,7 @@
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
18.20 s
[really-safe-money] fromAccount currency amount =
18.20 s
[really-safe-money] - if amount == Account.zero
18.20 s
[really-safe-money] + if not (amount == Account.zero)
18.20 s
[really-safe-money] then zero
18.20 s
[really-safe-money] else MultiAccount $ M.singleton currency amount
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
18.20 s
[really-safe-money] @@ -75,9 +75,9 @@
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] fromAccount :: currency -> Account -> MultiAccount currency
18.20 s
[really-safe-money] fromAccount currency amount =
18.20 s
[really-safe-money] - if amount == Account.zero
18.20 s
[really-safe-money] - then zero
18.20 s
[really-safe-money] - else MultiAccount $ M.singleton currency amount
18.20 s
[really-safe-money] + if amount == Account.zero
18.20 s
[really-safe-money] + then zero
18.20 s
[really-safe-money] + else MultiAccount $ M.singleton currency amount
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- | No money of any currency
18.20 s
[really-safe-money] zero :: MultiAccount currency
18.20 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
18.20 s
[really-safe-money] @@ -66,7 +66,7 @@
18.20 s
[really-safe-money] [ genericValidate ma,
18.20 s
[really-safe-money] decorateMap m $ \_ a ->
18.20 s
[really-safe-money] declare "The account is not zero" $
18.20 s
[really-safe-money] - a /= Account.zero
18.20 s
[really-safe-money] + True
18.20 s
[really-safe-money] ]
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- TODO no empty currencies
18.20 s
[really-safe-money] added mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
18.20 s
[really-safe-money] @@ -66,7 +66,7 @@
18.20 s
[really-safe-money] [ genericValidate ma,
18.20 s
[really-safe-money] decorateMap m $ \_ a ->
18.20 s
[really-safe-money] declare "The account is not zero" $
18.20 s
[really-safe-money] - a /= Account.zero
18.20 s
[really-safe-money] + False
18.20 s
[really-safe-money] ]
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- TODO no empty currencies
18.20 s
[really-safe-money] added mutation Negate at src/Money/MultiAccount.hs:69:13-30
18.20 s
[really-safe-money] @@ -66,7 +66,7 @@
18.20 s
[really-safe-money] [ genericValidate ma,
18.20 s
[really-safe-money] decorateMap m $ \_ a ->
18.20 s
[really-safe-money] declare "The account is not zero" $
18.20 s
[really-safe-money] - a /= Account.zero
18.20 s
[really-safe-money] + not (a /= Account.zero)
18.20 s
[really-safe-money] ]
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- TODO no empty currencies
18.20 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
18.20 s
[really-safe-money] @@ -63,11 +63,7 @@
18.20 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
18.20 s
[really-safe-money] validate ma@(MultiAccount m) =
18.20 s
[really-safe-money] mconcat
18.20 s
[really-safe-money] - [ genericValidate ma,
18.20 s
[really-safe-money] - decorateMap m $ \_ a ->
18.20 s
[really-safe-money] - declare "The account is not zero" $
18.20 s
[really-safe-money] - a /= Account.zero
18.20 s
[really-safe-money] - ]
18.20 s
[really-safe-money] + []
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- TODO no empty currencies
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added mutation ListLit at src/Money/MultiAccount.hs:66:7-8
18.20 s
[really-safe-money] @@ -63,11 +63,11 @@
18.20 s
[really-safe-money] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
18.20 s
[really-safe-money] validate ma@(MultiAccount m) =
18.20 s
[really-safe-money] mconcat
18.20 s
[really-safe-money] - [ genericValidate ma,
18.20 s
[really-safe-money] - decorateMap m $ \_ a ->
18.20 s
[really-safe-money] - declare "The account is not zero" $
18.20 s
[really-safe-money] - a /= Account.zero
18.20 s
[really-safe-money] - ]
18.20 s
[really-safe-money] + [ genericValidate ma,
18.20 s
[really-safe-money] + decorateMap m $ \_ a ->
18.20 s
[really-safe-money] + declare "The account is not zero" $
18.20 s
[really-safe-money] + a /= Account.zero
18.20 s
[really-safe-money] + ]
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] -- TODO no empty currencies
18.20 s
[really-safe-money]
18.20 s
[really-safe-money] added 27 mutations
18.66 s
[really-safe-money] [11 of 12] Compiling Money.AccountOf ( src/Money/AccountOf.hs, dist/build/Money/AccountOf.p_o )
18.67 s
[really-safe-money] mutation: instrumenting Money.AccountOf
18.67 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
18.67 s
[really-safe-money] @@ -177,11 +177,11 @@
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | See 'Account.distribute'
18.67 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
18.67 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] - DistributedZero -> DistributedZero
18.67 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] + DistributedZero -> DistributedZero
18.67 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | The result of 'distribute'
18.67 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
18.67 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
18.67 s
[really-safe-money] @@ -177,11 +177,11 @@
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | See 'Account.distribute'
18.67 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
18.67 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] - DistributedZero -> DistributedZero
18.67 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] + DistributedZero -> DistributedZero
18.67 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | The result of 'distribute'
18.67 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
18.67 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
18.67 s
[really-safe-money] @@ -177,11 +177,11 @@
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | See 'Account.distribute'
18.67 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
18.67 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] - DistributedZero -> DistributedZero
18.67 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] + DistributedZero -> DistributedZero
18.67 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | The result of 'distribute'
18.67 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
18.67 s
[really-safe-money] added mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
18.67 s
[really-safe-money] @@ -177,11 +177,11 @@
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | See 'Account.distribute'
18.67 s
[really-safe-money] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
18.67 s
[really-safe-money] -distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] - DistributedZero -> DistributedZero
18.67 s
[really-safe-money] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money] +distribute (AccountOf a) w = case Account.distribute a w of
18.67 s
[really-safe-money] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
18.67 s
[really-safe-money] + DistributedZero -> DistributedZero
18.67 s
[really-safe-money] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
18.67 s
[really-safe-money] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
18.67 s
[really-safe-money]
18.67 s
[really-safe-money] -- | The result of 'distribute'
18.67 s
[really-safe-money] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
18.67 s
[really-safe-money] added 4 mutations
18.92 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 )
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Account.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AccountOf.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Amount.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/AmountOf.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRate.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/ConversionRateOf.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/Currency.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAccount.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/MultiAmount.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral.dyn_o'
19.28 s
[really-safe-money] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money.dyn_o'
19.99 s
[really-safe-money] mutation-nix: manifest output at /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest:
19.99 s
[really-safe-money] total 296
19.99 s
[really-safe-money] drwxr-xr-x 2 nixbld nixbld 4096 May 13 19:58 .
19.99 s
[really-safe-money] drwxrwxr-t 238 nobody nixbld 28672 May 13 19:58 ..
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 56505 May 13 19:58 Money.Account.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 5229 May 13 19:58 Money.AccountOf.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 54786 May 13 19:58 Money.Amount.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 5033 May 13 19:58 Money.AmountOf.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 8599 May 13 19:58 Money.ConversionRate.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 19:58 Money.ConversionRateOf.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 2 May 13 19:58 Money.Currency.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 20330 May 13 19:58 Money.MultiAccount.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 23239 May 13 19:58 Money.MultiAmount.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 15615 May 13 19:58 Money.QuantisationFactor.json
19.99 s
[really-safe-money] -rw-r--r-- 1 nixbld nixbld 53101 May 13 19:58 Numeric.DecimalLiteral.json
19.99 s
[really-safe-money] Phase: haddockPhase
20.00 s
[really-safe-money] Phase: installPhase
20.04 s
[really-safe-money] Installing library in /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-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
20.30 s
[really-safe-money] Phase: fixupPhase
20.31 s
[really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0
20.32 s
[really-safe-money] shrinking /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-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
20.34 s
[really-safe-money] checking for references to /build/ in /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0...
20.36 s
[really-safe-money] patching script interpreter paths in /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0
20.37 s
[really-safe-money] stripping (with command strip and flags -S -p) in /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0/lib
20.51 s
[really-safe-money] shrinking RPATHs of ELF executables and libraries in /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest
20.51 s
[really-safe-money] checking for references to /build/ in /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest...
20.52 s
[really-safe-money] patching script interpreter paths in /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest
20.62 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0
21.27 s
[post-build-hook] Pushing 4 paths (193 are already present) using zstd to cache sydtest ⏳
21.27 s
[post-build-hook]
21.64 s
[post-build-hook] Pushing /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest (239.08 KiB)
21.82 s
[post-build-hook] Pushing /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0 (13.33 MiB)
21.82 s
[post-build-hook] Pushing /nix/store/ir474x88drsbl0cm7kxqw06i0dp8ngvh-sydtest-mutation-plugin-0.0.0.0-doc (1.17 MiB)
21.82 s
[post-build-hook] Pushing /nix/store/r14zpbn388za9xv66rzrcdllchmnfrpa-sydtest-mutation-plugin-0.0.0.0 (3.70 MiB)
22.89 s
[post-build-hook]
22.89 s
[post-build-hook] All done.
22.91 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest /nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0
22.95 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
22.97 s
[post-build-hook] copying 2 paths...
22.97 s
[post-build-hook] copying path '/nix/store/2w29jk75vz9rl5bcl7zycjf2x642m4a6-really-safe-money-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
22.97 s
[post-build-hook] copying path '/nix/store/wx40xl434mb5gla7wxs7fqcsvwdk9jiz-really-safe-money-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
25.85 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
26.05 s
[post-build-hook] copying 1 paths...
26.05 s
[post-build-hook] copying path '/nix/store/v2vs7jik4m2zh5d19kj93rbaacw5rl03-really-safe-money-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
26.23 s
Progress: 1 of 7 built
26.27 s
Building really-safe-money-autodocodec-source
26.31 s
Building really-safe-money-gen-source
26.48 s
[really-safe-money-autodocodec-source] Phase: setupCompilerEnvironmentPhase
26.48 s
[really-safe-money-autodocodec-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
26.58 s
[really-safe-money-gen-source] Phase: setupCompilerEnvironmentPhase
26.58 s
[really-safe-money-gen-source] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
26.73 s
[really-safe-money-autodocodec-source] Phase: unpackPhase
26.90 s
[really-safe-money-autodocodec-source] unpacking source archive /nix/store/8krpxqimxqvympfqdqxg1jzjg2jrcglb-really-safe-money-autodocodec
26.90 s
[really-safe-money-autodocodec-source] source root is really-safe-money-autodocodec
26.90 s
[really-safe-money-autodocodec-source] Phase: patchPhase
26.90 s
[really-safe-money-autodocodec-source] Phase: compileBuildDriverPhase
26.90 s
[really-safe-money-autodocodec-source] setupCompileFlags: -package-db=/build/tmp.GdGs4zIrDe/setup-package.conf.d -threaded
26.90 s
[really-safe-money-autodocodec-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.GdGs4zIrDe/Main.o )
26.90 s
[really-safe-money-autodocodec-source] [2 of 2] Linking Setup
26.90 s
[really-safe-money-gen-source] Phase: unpackPhase
26.90 s
[really-safe-money-gen-source] unpacking source archive /nix/store/igm3hbdpcwgfbdx9yjyf6d68w1ifih08-really-safe-money-gen
26.90 s
[really-safe-money-gen-source] source root is really-safe-money-gen
26.91 s
[really-safe-money-gen-source] Phase: patchPhase
26.92 s
[really-safe-money-gen-source] Phase: compileBuildDriverPhase
26.92 s
[really-safe-money-gen-source] setupCompileFlags: -package-db=/build/tmp.ShqLvSq3gG/setup-package.conf.d -threaded
26.97 s
[really-safe-money-gen-source] [1 of 2] Compiling Main ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/tmp.ShqLvSq3gG/Main.o )
27.01 s
[really-safe-money-gen-source] [2 of 2] Linking Setup
28.00 s
[really-safe-money-autodocodec-source] Phase: updateAutotoolsGnuConfigScriptsPhase
28.01 s
[really-safe-money-autodocodec-source] Phase: configurePhase
28.01 s
[really-safe-money-autodocodec-source] configureFlags: --verbose --prefix=/nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-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.GdGs4zIrDe/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
28.02 s
[really-safe-money-autodocodec-source] Using Parsec parser
28.02 s
[really-safe-money-autodocodec-source] Configuring really-safe-money-autodocodec-0.0.0.0...
28.15 s
[really-safe-money-gen-source] Phase: updateAutotoolsGnuConfigScriptsPhase
28.16 s
[really-safe-money-gen-source] Phase: configurePhase
28.17 s
[really-safe-money-gen-source] configureFlags: --verbose --prefix=/nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-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.ShqLvSq3gG/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
28.17 s
[really-safe-money-gen-source] Using Parsec parser
28.17 s
[really-safe-money-gen-source] Configuring really-safe-money-gen-0.0.0.0...
28.57 s
[really-safe-money-autodocodec-source] Dependency autodocodec: using autodocodec-0.5.0.0
28.57 s
[really-safe-money-autodocodec-source] Dependency base >=4.7 && <5: using base-4.20.2.0
28.57 s
[really-safe-money-autodocodec-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
28.57 s
[really-safe-money-autodocodec-source] Source component graph: component lib
28.57 s
[really-safe-money-autodocodec-source] Configured component graph:
28.57 s
[really-safe-money-autodocodec-source] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
28.57 s
[really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
28.57 s
[really-safe-money-autodocodec-source] include base-4.20.2.0-64da
28.57 s
[really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.57 s
[really-safe-money-autodocodec-source] Linked component graph:
28.57 s
[really-safe-money-autodocodec-source] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
28.57 s
[really-safe-money-autodocodec-source] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
28.57 s
[really-safe-money-autodocodec-source] include base-4.20.2.0-64da
28.57 s
[really-safe-money-autodocodec-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.57 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
28.58 s
[really-safe-money-autodocodec-source] Ready component graph:
28.58 s
[really-safe-money-autodocodec-source] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
28.58 s
[really-safe-money-autodocodec-source] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
28.58 s
[really-safe-money-autodocodec-source] depends base-4.20.2.0-64da
28.58 s
[really-safe-money-autodocodec-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.58 s
[really-safe-money-autodocodec-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
28.58 s
[really-safe-money-autodocodec-source] Using compiler: ghc-9.10.3
28.58 s
[really-safe-money-autodocodec-source] Using install prefix:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0
28.58 s
[really-safe-money-autodocodec-source] Executables installed in:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0/bin
28.58 s
[really-safe-money-autodocodec-source] Libraries installed in:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-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
28.58 s
[really-safe-money-autodocodec-source] Dynamic Libraries installed in:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
28.58 s
[really-safe-money-autodocodec-source] Private executables installed in:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-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
28.58 s
[really-safe-money-autodocodec-source] Data files installed in:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-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
28.58 s
[really-safe-money-autodocodec-source] Documentation installed in: /share/doc/really-safe-money-autodocodec-0.0.0.0
28.58 s
[really-safe-money-autodocodec-source] Configuration files installed in:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0/etc
28.58 s
[really-safe-money-autodocodec-source] No alex found
28.58 s
[really-safe-money-autodocodec-source] Using ar found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
28.58 s
[really-safe-money-autodocodec-source] No c2hs found
28.58 s
[really-safe-money-autodocodec-source] No cpphs found
28.58 s
[really-safe-money-autodocodec-source] No doctest found
28.58 s
[really-safe-money-autodocodec-source] Using gcc version 14.3.0 given by user at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
28.58 s
[really-safe-money-autodocodec-source] Using ghc version 9.10.3 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
28.58 s
[really-safe-money-autodocodec-source] Using ghc-pkg version 9.10.3 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
28.58 s
[really-safe-money-autodocodec-source] No ghcjs found
28.58 s
[really-safe-money-autodocodec-source] No ghcjs-pkg found
28.58 s
[really-safe-money-autodocodec-source] No greencard found
28.58 s
[really-safe-money-autodocodec-source] Using haddock version 2.31.1 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
28.58 s
[really-safe-money-autodocodec-source] No happy found
28.58 s
[really-safe-money-autodocodec-source] Using haskell-suite found on system at: haskell-suite-dummy-location
28.58 s
[really-safe-money-autodocodec-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
28.58 s
[really-safe-money-autodocodec-source] No hmake found
28.58 s
[really-safe-money-autodocodec-source] Using hpc version 0.69 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
28.58 s
[really-safe-money-autodocodec-source] Using hsc2hs version 0.68.10 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
28.58 s
[really-safe-money-autodocodec-source] Using hscolour version 1.25 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
28.58 s
[really-safe-money-autodocodec-source] No jhc found
28.58 s
[really-safe-money-autodocodec-source] Using ld found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
28.58 s
[really-safe-money-autodocodec-source] No pkg-config found
28.58 s
[really-safe-money-autodocodec-source] Using runghc version 9.10.3 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
28.58 s
[really-safe-money-autodocodec-source] Using strip version 2.44 found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
28.58 s
[really-safe-money-autodocodec-source] Using tar found on system at:
28.58 s
[really-safe-money-autodocodec-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
28.58 s
[really-safe-money-autodocodec-source] No uhc found
28.78 s
[really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
28.78 s
[really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
28.78 s
[really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
28.78 s
[really-safe-money-gen-source] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
28.78 s
[really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
28.78 s
[really-safe-money-gen-source] Dependency QuickCheck: using QuickCheck-2.15.0.1
28.78 s
[really-safe-money-gen-source] Dependency base >=4.7 && <5: using base-4.20.2.0
28.78 s
[really-safe-money-gen-source] Dependency criterion: using criterion-1.6.4.0
28.78 s
[really-safe-money-gen-source] Dependency deepseq: using deepseq-1.5.0.0
28.78 s
[really-safe-money-gen-source] Dependency genvalidity: using genvalidity-1.1.1.0
28.78 s
[really-safe-money-gen-source] Dependency genvalidity-criterion: using genvalidity-criterion-1.1.0.0
28.78 s
[really-safe-money-gen-source] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
28.78 s
[really-safe-money-gen-source] Dependency really-safe-money: using really-safe-money-0.0.0.0
28.78 s
[really-safe-money-gen-source] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
28.78 s
[really-safe-money-gen-source] Dependency vector: using vector-0.13.2.0
28.78 s
[really-safe-money-gen-source] Source component graph:
28.78 s
[really-safe-money-gen-source] component lib
28.78 s
[really-safe-money-gen-source] component bench:really-safe-money-bench dependency lib
28.78 s
[really-safe-money-gen-source] Configured component graph:
28.78 s
[really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
28.78 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
28.78 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
28.78 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
28.78 s
[really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
28.78 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.78 s
[really-safe-money-gen-source] component really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
28.78 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
28.78 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
28.78 s
[really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
28.78 s
[really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
28.78 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
28.78 s
[really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
28.78 s
[really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
28.78 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.78 s
[really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
28.78 s
[really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
28.78 s
[really-safe-money-gen-source] Linked component graph:
28.78 s
[really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
28.78 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
28.78 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
28.78 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
28.78 s
[really-safe-money-gen-source] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
28.78 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.78 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
28.78 s
[really-safe-money-gen-source] unit really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
28.78 s
[really-safe-money-gen-source] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
28.78 s
[really-safe-money-gen-source] include base-4.20.2.0-64da
28.78 s
[really-safe-money-gen-source] include criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
28.78 s
[really-safe-money-gen-source] include deepseq-1.5.0.0-9a2c
28.78 s
[really-safe-money-gen-source] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
28.78 s
[really-safe-money-gen-source] include genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
28.78 s
[really-safe-money-gen-source] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
28.78 s
[really-safe-money-gen-source] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.78 s
[really-safe-money-gen-source] include really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
28.79 s
[really-safe-money-gen-source] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
28.79 s
[really-safe-money-gen-source] Ready component graph:
28.79 s
[really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
28.79 s
[really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
28.79 s
[really-safe-money-gen-source] depends base-4.20.2.0-64da
28.79 s
[really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
28.79 s
[really-safe-money-gen-source] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
28.79 s
[really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.79 s
[really-safe-money-gen-source] definite really-safe-money-gen-0.0.0.0-LP0fSqTOwvk9RMpsKSu0nN-really-safe-money-bench
28.79 s
[really-safe-money-gen-source] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
28.79 s
[really-safe-money-gen-source] depends base-4.20.2.0-64da
28.79 s
[really-safe-money-gen-source] depends criterion-1.6.4.0-ExZW8LB8ON09pSIfu9sGRN
28.79 s
[really-safe-money-gen-source] depends deepseq-1.5.0.0-9a2c
28.79 s
[really-safe-money-gen-source] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
28.79 s
[really-safe-money-gen-source] depends genvalidity-criterion-1.1.0.0-9pHw4wnFNz9EtFzK0UU3g3
28.79 s
[really-safe-money-gen-source] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
28.79 s
[really-safe-money-gen-source] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
28.79 s
[really-safe-money-gen-source] depends really-safe-money-gen-0.0.0.0-6HAQXS408A94VVAcwfSL53
28.79 s
[really-safe-money-gen-source] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
28.79 s
[really-safe-money-gen-source] Using Cabal-3.12.1.0 compiled by ghc-9.10
28.79 s
[really-safe-money-gen-source] Using compiler: ghc-9.10.3
28.79 s
[really-safe-money-gen-source] Using install prefix:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0
28.79 s
[really-safe-money-gen-source] Executables installed in:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0/bin
28.79 s
[really-safe-money-gen-source] Libraries installed in:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-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
28.79 s
[really-safe-money-gen-source] Dynamic Libraries installed in:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
28.79 s
[really-safe-money-gen-source] Private executables installed in:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-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
28.79 s
[really-safe-money-gen-source] Data files installed in:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-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
28.79 s
[really-safe-money-gen-source] Documentation installed in: /share/doc/really-safe-money-gen-0.0.0.0
28.79 s
[really-safe-money-gen-source] Configuration files installed in:
28.79 s
[really-safe-money-gen-source] /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0/etc
28.79 s
[really-safe-money-gen-source] No alex found
28.79 s
[really-safe-money-gen-source] Using ar found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
28.79 s
[really-safe-money-gen-source] No c2hs found
28.79 s
[really-safe-money-gen-source] No cpphs found
28.79 s
[really-safe-money-gen-source] No doctest found
28.79 s
[really-safe-money-gen-source] Using gcc version 14.3.0 given by user at:
28.79 s
[really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
28.79 s
[really-safe-money-gen-source] Using ghc version 9.10.3 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
28.79 s
[really-safe-money-gen-source] Using ghc-pkg version 9.10.3 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
28.79 s
[really-safe-money-gen-source] No ghcjs found
28.79 s
[really-safe-money-gen-source] No ghcjs-pkg found
28.79 s
[really-safe-money-gen-source] No greencard found
28.79 s
[really-safe-money-gen-source] Using haddock version 2.31.1 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
28.79 s
[really-safe-money-gen-source] No happy found
28.79 s
[really-safe-money-gen-source] Using haskell-suite found on system at: haskell-suite-dummy-location
28.79 s
[really-safe-money-gen-source] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
28.79 s
[really-safe-money-gen-source] No hmake found
28.79 s
[really-safe-money-gen-source] Using hpc version 0.69 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
28.79 s
[really-safe-money-gen-source] Using hsc2hs version 0.68.10 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
28.79 s
[really-safe-money-gen-source] Using hscolour version 1.25 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
28.79 s
[really-safe-money-gen-source] No jhc found
28.79 s
[really-safe-money-gen-source] Using ld found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
28.79 s
[really-safe-money-gen-source] No pkg-config found
28.79 s
[really-safe-money-gen-source] Using runghc version 9.10.3 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
28.79 s
[really-safe-money-gen-source] Using strip version 2.44 found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
28.79 s
[really-safe-money-gen-source] Using tar found on system at:
28.79 s
[really-safe-money-gen-source] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
28.79 s
[really-safe-money-gen-source] No uhc found
28.82 s
[really-safe-money-autodocodec-source] Phase: buildPhase
28.83 s
[really-safe-money-autodocodec-source] Distribution quality errors:
28.83 s
[really-safe-money-autodocodec-source] [no-syn-desc] No 'synopsis' or 'description' field.
28.83 s
[really-safe-money-autodocodec-source] Distribution quality warnings:
28.83 s
[really-safe-money-autodocodec-source] [no-category] No 'category' field.
28.83 s
[really-safe-money-autodocodec-source] [no-maintainer] No 'maintainer' field.
28.83 s
[really-safe-money-autodocodec-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
28.83 s
[really-safe-money-autodocodec-source] you want?
28.83 s
[really-safe-money-autodocodec-source] [missing-upper-bounds] On library, these packages miss upper bounds:
28.83 s
[really-safe-money-autodocodec-source] - autodocodec
28.83 s
[really-safe-money-autodocodec-source] - really-safe-money
28.83 s
[really-safe-money-autodocodec-source] Please add them. There is more information at https://pvp.haskell.org/
28.83 s
[really-safe-money-autodocodec-source] Note: the public hackage server would reject this package.
28.83 s
[really-safe-money-autodocodec-source] Building source dist for really-safe-money-autodocodec-0.0.0.0...
28.85 s
[really-safe-money-autodocodec-source] Source tarball created: dist/really-safe-money-autodocodec-0.0.0.0.tar.gz
28.85 s
[really-safe-money-autodocodec-source] Phase: haddockPhase
28.85 s
[really-safe-money-autodocodec-source] Phase: installPhase
28.86 s
[really-safe-money-autodocodec-source] Phase: fixupPhase
28.89 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0
29.27 s
[post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
29.27 s
[post-build-hook]
29.72 s
[post-build-hook] Pushing /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0 (5.45 KiB)
30.79 s
[post-build-hook]
30.79 s
[post-build-hook] All done.
30.80 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0
30.84 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
30.84 s
[post-build-hook] copying 1 paths...
30.84 s
[post-build-hook] copying path '/nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
31.08 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
31.29 s
[post-build-hook] copying 1 paths...
31.29 s
[post-build-hook] copying path '/nix/store/ncr3qz7rqkbznf9s5y6213kjhl9lhnx1-really-safe-money-autodocodec-source-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
31.46 s
Progress: 2 of 6 built (1 building)
31.49 s
Building really-safe-money-autodocodec
31.49 s
[really-safe-money-gen-source] Phase: buildPhase
31.49 s
[really-safe-money-gen-source] Distribution quality errors:
31.49 s
[really-safe-money-gen-source] [no-syn-desc] No 'synopsis' or 'description' field.
31.49 s
[really-safe-money-gen-source] Distribution quality warnings:
31.49 s
[really-safe-money-gen-source] [no-category] No 'category' field.
31.49 s
[really-safe-money-gen-source] [no-maintainer] No 'maintainer' field.
31.49 s
[really-safe-money-gen-source] [all-rights-reserved] The 'license' is AllRightsReserved. Is that really what
31.49 s
[really-safe-money-gen-source] you want?
31.49 s
[really-safe-money-gen-source] [missing-upper-bounds] On library, these packages miss upper bounds:
31.49 s
[really-safe-money-gen-source] - QuickCheck
31.49 s
[really-safe-money-gen-source] - genvalidity
31.49 s
[really-safe-money-gen-source] - genvalidity-containers
31.49 s
[really-safe-money-gen-source] - really-safe-money
31.49 s
[really-safe-money-gen-source] Please add them. There is more information at https://pvp.haskell.org/
31.49 s
[really-safe-money-gen-source] Note: the public hackage server would reject this package.
31.49 s
[really-safe-money-gen-source] Building source dist for really-safe-money-gen-0.0.0.0...
31.49 s
[really-safe-money-gen-source] Source tarball created: dist/really-safe-money-gen-0.0.0.0.tar.gz
31.49 s
[really-safe-money-gen-source] Phase: haddockPhase
31.49 s
[really-safe-money-gen-source] Phase: installPhase
31.49 s
[really-safe-money-gen-source] Phase: fixupPhase
31.52 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0
31.90 s
[post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳
31.90 s
[post-build-hook]
32.26 s
[post-build-hook] Pushing /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0 (15.92 KiB)
33.14 s
[post-build-hook]
33.14 s
[post-build-hook] All done.
33.16 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0
33.20 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
33.21 s
[post-build-hook] copying 1 paths...
33.21 s
[post-build-hook] copying path '/nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
33.46 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
33.66 s
[post-build-hook] copying 1 paths...
33.66 s
[post-build-hook] copying path '/nix/store/4ir9x4jf6krdwcracq2cyycxrbwwjb9i-really-safe-money-gen-source-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
33.86 s
Progress: 3 of 6 built (1 building)
33.86 s
[really-safe-money-autodocodec] Phase: setupCompilerEnvironmentPhase
33.86 s
[really-safe-money-autodocodec] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
33.86 s
[really-safe-money-autodocodec] Phase: unpackPhase
33.86 s
[really-safe-money-autodocodec] unpacking source archive /nix/store/jnhvh9y2py7xc809y55pa5h9s0g5rmyb-really-safe-money-autodocodec-source-0.0.0.0/really-safe-money-autodocodec-0.0.0.0.tar.gz
33.86 s
[really-safe-money-autodocodec] source root is really-safe-money-autodocodec-0.0.0.0
33.86 s
[really-safe-money-autodocodec] setting SOURCE_DATE_EPOCH to timestamp 1778702309 of file "really-safe-money-autodocodec-0.0.0.0/test/Spec.hs"
33.86 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
33.86 s
[really-safe-money-autodocodec] Phase: patchPhase
33.86 s
[really-safe-money-autodocodec] Phase: compileBuildDriverPhase
33.86 s
[really-safe-money-autodocodec] setupCompileFlags: -package-db=/build/tmp.BhOqAcxRHG/setup-package.conf.d -threaded
33.86 s
[really-safe-money-autodocodec] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.BhOqAcxRHG/Main.o )
33.86 s
[really-safe-money-autodocodec] [2 of 2] Linking Setup
33.86 s
[really-safe-money-autodocodec] Phase: updateAutotoolsGnuConfigScriptsPhase
33.86 s
[really-safe-money-autodocodec] Phase: configurePhase
33.86 s
[really-safe-money-autodocodec] configureFlags: --verbose --prefix=/nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --with-gcc=gcc --package-db=/build/tmp.BhOqAcxRHG/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
33.86 s
[really-safe-money-autodocodec] Using Parsec parser
33.86 s
[really-safe-money-autodocodec] Configuring really-safe-money-autodocodec-0.0.0.0...
33.86 s
[really-safe-money-autodocodec] Dependency autodocodec: using autodocodec-0.5.0.0
33.86 s
[really-safe-money-autodocodec] Dependency base >=4.7 && <5: using base-4.20.2.0
33.86 s
[really-safe-money-autodocodec] Dependency really-safe-money: using really-safe-money-0.0.0.0
33.86 s
[really-safe-money-autodocodec] Source component graph: component lib
33.86 s
[really-safe-money-autodocodec] Configured component graph:
33.86 s
[really-safe-money-autodocodec] component really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
33.86 s
[really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
33.86 s
[really-safe-money-autodocodec] include base-4.20.2.0-64da
33.86 s
[really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
33.86 s
[really-safe-money-autodocodec] Linked component graph:
33.86 s
[really-safe-money-autodocodec] unit really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
33.86 s
[really-safe-money-autodocodec] include autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
33.86 s
[really-safe-money-autodocodec] include base-4.20.2.0-64da
33.86 s
[really-safe-money-autodocodec] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
33.86 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
33.86 s
[really-safe-money-autodocodec] Ready component graph:
33.86 s
[really-safe-money-autodocodec] definite really-safe-money-autodocodec-0.0.0.0-6uQz3PYxbwUCTmvro4lDZk
33.86 s
[really-safe-money-autodocodec] depends autodocodec-0.5.0.0-1mMvp4WI6JDKv9IH8Klk8Y
33.86 s
[really-safe-money-autodocodec] depends base-4.20.2.0-64da
33.86 s
[really-safe-money-autodocodec] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
33.86 s
[really-safe-money-autodocodec] Using Cabal-3.12.1.0 compiled by ghc-9.10
33.86 s
[really-safe-money-autodocodec] Using compiler: ghc-9.10.3
33.86 s
[really-safe-money-autodocodec] Using install prefix:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0
33.86 s
[really-safe-money-autodocodec] Executables installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0/bin
33.86 s
[really-safe-money-autodocodec] Libraries installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-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
33.86 s
[really-safe-money-autodocodec] Dynamic Libraries installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
33.86 s
[really-safe-money-autodocodec] Private executables installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-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
33.86 s
[really-safe-money-autodocodec] Data files installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-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
33.86 s
[really-safe-money-autodocodec] Documentation installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-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
33.86 s
[really-safe-money-autodocodec] Configuration files installed in:
33.86 s
[really-safe-money-autodocodec] /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0/etc
33.86 s
[really-safe-money-autodocodec] No alex found
33.86 s
[really-safe-money-autodocodec] Using ar found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
33.86 s
[really-safe-money-autodocodec] No c2hs found
33.86 s
[really-safe-money-autodocodec] No cpphs found
33.86 s
[really-safe-money-autodocodec] No doctest found
33.86 s
[really-safe-money-autodocodec] Using gcc version 14.3.0 given by user at:
33.86 s
[really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
33.86 s
[really-safe-money-autodocodec] Using ghc version 9.10.3 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
33.86 s
[really-safe-money-autodocodec] Using ghc-pkg version 9.10.3 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
33.86 s
[really-safe-money-autodocodec] No ghcjs found
33.86 s
[really-safe-money-autodocodec] No ghcjs-pkg found
33.86 s
[really-safe-money-autodocodec] No greencard found
33.86 s
[really-safe-money-autodocodec] Using haddock version 2.31.1 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
33.86 s
[really-safe-money-autodocodec] No happy found
33.86 s
[really-safe-money-autodocodec] Using haskell-suite found on system at: haskell-suite-dummy-location
33.86 s
[really-safe-money-autodocodec] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
33.86 s
[really-safe-money-autodocodec] No hmake found
33.86 s
[really-safe-money-autodocodec] Using hpc version 0.69 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
33.86 s
[really-safe-money-autodocodec] Using hsc2hs version 0.68.10 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
33.86 s
[really-safe-money-autodocodec] Using hscolour version 1.25 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
33.86 s
[really-safe-money-autodocodec] No jhc found
33.86 s
[really-safe-money-autodocodec] Using ld found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
33.86 s
[really-safe-money-autodocodec] No pkg-config found
33.86 s
[really-safe-money-autodocodec] Using runghc version 9.10.3 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
33.86 s
[really-safe-money-autodocodec] Using strip version 2.44 found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
33.86 s
[really-safe-money-autodocodec] Using tar found on system at:
33.86 s
[really-safe-money-autodocodec] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
33.86 s
[really-safe-money-autodocodec] No uhc found
33.98 s
[really-safe-money-autodocodec] Phase: buildPhase
33.99 s
[really-safe-money-autodocodec] mutation-nix: setting MUTATION_MANIFEST_DIR=/nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest
34.04 s
[really-safe-money-autodocodec] Preprocessing library for really-safe-money-autodocodec-0.0.0.0...
34.04 s
[really-safe-money-autodocodec] Building library for really-safe-money-autodocodec-0.0.0.0...
34.19 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 )
34.27 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
34.29 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
34.29 s
[really-safe-money-autodocodec] @@ -76,6 +76,6 @@
34.29 s
[really-safe-money-autodocodec] <?> "Account"
34.29 s
[really-safe-money-autodocodec] where
34.29 s
[really-safe-money-autodocodec] f :: Integer -> Either String Account
34.29 s
[really-safe-money-autodocodec] - f i = case Account.fromMinimalQuantisations i of
34.30 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
34.30 s
[really-safe-money-autodocodec] - Just a -> Right a
34.30 s
[really-safe-money-autodocodec] + f i = case Account.fromMinimalQuantisations i of
34.30 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Number did not fit into an account value: " <> show i
34.30 s
[really-safe-money-autodocodec] + Just a -> Right a
34.30 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
34.30 s
[really-safe-money-autodocodec] @@ -76,6 +76,6 @@
34.30 s
[really-safe-money-autodocodec] <?> "Account"
34.30 s
[really-safe-money-autodocodec] where
34.30 s
[really-safe-money-autodocodec] f :: Integer -> Either String Account
34.30 s
[really-safe-money-autodocodec] - f i = case Account.fromMinimalQuantisations i of
34.30 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
34.30 s
[really-safe-money-autodocodec] - Just a -> Right a
34.30 s
[really-safe-money-autodocodec] + f i = case Account.fromMinimalQuantisations i of
34.30 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Number did not fit into an account value: " <> show i
34.30 s
[really-safe-money-autodocodec] + Just a -> Right a
34.30 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
34.30 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
34.30 s
[really-safe-money-autodocodec] where
34.30 s
[really-safe-money-autodocodec] f :: String -> Either String Account
34.30 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
34.30 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
34.30 s
[really-safe-money-autodocodec] Just a -> Right a
34.30 s
[really-safe-money-autodocodec] g :: Account -> String
34.30 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
34.30 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
34.30 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
34.30 s
[really-safe-money-autodocodec] where
34.30 s
[really-safe-money-autodocodec] f :: String -> Either String Account
34.30 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
34.30 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] Just a -> Right a
34.30 s
[really-safe-money-autodocodec] g :: Account -> String
34.30 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
34.30 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
34.30 s
[really-safe-money-autodocodec] @@ -47,9 +47,9 @@
34.30 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Account"
34.30 s
[really-safe-money-autodocodec] where
34.30 s
[really-safe-money-autodocodec] f :: String -> Either String Account
34.30 s
[really-safe-money-autodocodec] - f s = case readMaybe s >>= Account.fromMinimalQuantisations of
34.30 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] - Just a -> Right a
34.30 s
[really-safe-money-autodocodec] + f s = case readMaybe s >>= Account.fromMinimalQuantisations of
34.30 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] + Just a -> Right a
34.30 s
[really-safe-money-autodocodec] g :: Account -> String
34.30 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
34.30 s
[really-safe-money-autodocodec]
34.30 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
34.30 s
[really-safe-money-autodocodec] @@ -47,9 +47,9 @@
34.30 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Account"
34.30 s
[really-safe-money-autodocodec] where
34.30 s
[really-safe-money-autodocodec] f :: String -> Either String Account
34.30 s
[really-safe-money-autodocodec] - f s = case readMaybe s >>= Account.fromMinimalQuantisations of
34.30 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] - Just a -> Right a
34.30 s
[really-safe-money-autodocodec] + f s = case readMaybe s >>= Account.fromMinimalQuantisations of
34.30 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
34.30 s
[really-safe-money-autodocodec] + Just a -> Right a
34.30 s
[really-safe-money-autodocodec] g :: Account -> String
34.30 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
34.30 s
[really-safe-money-autodocodec]
34.30 s
[really-safe-money-autodocodec] added 6 mutations
34.75 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 )
34.75 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
34.75 s
[really-safe-money-autodocodec] added 0 mutations
34.78 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 )
34.78 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
34.78 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
34.78 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
34.78 s
[really-safe-money-autodocodec] where
34.78 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
34.78 s
[really-safe-money-autodocodec] f s = case readMaybe s of
34.78 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.78 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
34.78 s
[really-safe-money-autodocodec] Just i ->
34.78 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.78 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.78 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
34.78 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
34.78 s
[really-safe-money-autodocodec] where
34.78 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
34.78 s
[really-safe-money-autodocodec] f s = case readMaybe s of
34.78 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.78 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.78 s
[really-safe-money-autodocodec] Just i ->
34.78 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.78 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.78 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
34.78 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
34.78 s
[really-safe-money-autodocodec] f s = case readMaybe s of
34.78 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.78 s
[really-safe-money-autodocodec] Just i ->
34.78 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
34.78 s
[really-safe-money-autodocodec] + if True
34.78 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.78 s
[really-safe-money-autodocodec] else
34.78 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.78 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
34.78 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
34.78 s
[really-safe-money-autodocodec] f s = case readMaybe s of
34.78 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.78 s
[really-safe-money-autodocodec] Just i ->
34.78 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
34.78 s
[really-safe-money-autodocodec] + if False
34.78 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.78 s
[really-safe-money-autodocodec] else
34.78 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.78 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
34.78 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
34.78 s
[really-safe-money-autodocodec] f s = case readMaybe s of
34.78 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.78 s
[really-safe-money-autodocodec] Just i ->
34.78 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
34.78 s
[really-safe-money-autodocodec] + if not ((i :: Integer) < toInteger (minBound :: Word64))
34.78 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
34.79 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
34.79 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] Just i ->
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords []
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
34.79 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
34.79 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] Just i ->
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
34.79 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + if True
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
34.79 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + if False
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
34.79 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
34.79 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords []
34.79 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
34.79 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
34.79 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
34.79 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
34.79 s
[really-safe-money-autodocodec] @@ -49,9 +49,9 @@
34.79 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
34.79 s
[really-safe-money-autodocodec]
34.79 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
34.79 s
[really-safe-money-autodocodec] @@ -46,12 +46,12 @@
34.79 s
[really-safe-money-autodocodec] f s = case readMaybe s of
34.79 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] Just i ->
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] - else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] + else
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
34.79 s
[really-safe-money-autodocodec]
34.79 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
34.79 s
[really-safe-money-autodocodec] @@ -43,15 +43,15 @@
34.79 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Amount"
34.79 s
[really-safe-money-autodocodec] where
34.79 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
34.79 s
[really-safe-money-autodocodec] - f s = case readMaybe s of
34.79 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] - Just i ->
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] - else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] + f s = case readMaybe s of
34.79 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] + Just i ->
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] + else
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
34.79 s
[really-safe-money-autodocodec]
34.79 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
34.79 s
[really-safe-money-autodocodec] @@ -43,15 +43,15 @@
34.79 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Amount"
34.79 s
[really-safe-money-autodocodec] where
34.79 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
34.79 s
[really-safe-money-autodocodec] - f s = case readMaybe s of
34.79 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] - Just i ->
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] - else
34.79 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] + f s = case readMaybe s of
34.79 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
34.79 s
[really-safe-money-autodocodec] + Just i ->
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
34.79 s
[really-safe-money-autodocodec] + else
34.79 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
34.79 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
34.79 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
34.79 s
[really-safe-money-autodocodec] g :: Amount -> String
34.79 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
34.79 s
[really-safe-money-autodocodec]
34.79 s
[really-safe-money-autodocodec] added 16 mutations
34.91 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 )
34.91 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
34.91 s
[really-safe-money-autodocodec] added 0 mutations
34.93 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 )
34.94 s
[really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
34.94 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
34.94 s
[really-safe-money-autodocodec] @@ -38,6 +38,6 @@
34.94 s
[really-safe-money-autodocodec] codec
34.94 s
[really-safe-money-autodocodec] <?> "QuantisationFactor"
34.94 s
[really-safe-money-autodocodec] where
34.94 s
[really-safe-money-autodocodec] - f w = case QuantisationFactor.fromWord32 w of
34.94 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
34.94 s
[really-safe-money-autodocodec] - Just qf -> Right qf
34.94 s
[really-safe-money-autodocodec] + f w = case QuantisationFactor.fromWord32 w of
34.94 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
34.94 s
[really-safe-money-autodocodec] + Just qf -> Right qf
34.94 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
34.94 s
[really-safe-money-autodocodec] @@ -38,6 +38,6 @@
34.94 s
[really-safe-money-autodocodec] codec
34.94 s
[really-safe-money-autodocodec] <?> "QuantisationFactor"
34.94 s
[really-safe-money-autodocodec] where
34.94 s
[really-safe-money-autodocodec] - f w = case QuantisationFactor.fromWord32 w of
34.94 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
34.94 s
[really-safe-money-autodocodec] - Just qf -> Right qf
34.94 s
[really-safe-money-autodocodec] + f w = case QuantisationFactor.fromWord32 w of
34.94 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
34.94 s
[really-safe-money-autodocodec] + Just qf -> Right qf
34.94 s
[really-safe-money-autodocodec] added 2 mutations
34.98 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 )
34.98 s
[really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
34.98 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
34.98 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
34.98 s
[really-safe-money-autodocodec] where
34.98 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
34.98 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
34.98 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.98 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
34.98 s
[really-safe-money-autodocodec] Just a -> Right a
34.98 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
34.98 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
34.98 s
[really-safe-money-autodocodec] where
34.98 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
34.98 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
34.99 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.99 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.99 s
[really-safe-money-autodocodec] Just a -> Right a
34.99 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
34.99 s
[really-safe-money-autodocodec] @@ -36,6 +36,6 @@
34.99 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
34.99 s
[really-safe-money-autodocodec] where
34.99 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
34.99 s
[really-safe-money-autodocodec] - f s = case DecimalLiteral.fromString s of
34.99 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.99 s
[really-safe-money-autodocodec] - Just a -> Right a
34.99 s
[really-safe-money-autodocodec] + f s = case DecimalLiteral.fromString s of
34.99 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.99 s
[really-safe-money-autodocodec] + Just a -> Right a
34.99 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
34.99 s
[really-safe-money-autodocodec] @@ -36,6 +36,6 @@
34.99 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
34.99 s
[really-safe-money-autodocodec] where
34.99 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
34.99 s
[really-safe-money-autodocodec] - f s = case DecimalLiteral.fromString s of
34.99 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.99 s
[really-safe-money-autodocodec] - Just a -> Right a
34.99 s
[really-safe-money-autodocodec] + f s = case DecimalLiteral.fromString s of
34.99 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
34.99 s
[really-safe-money-autodocodec] + Just a -> Right a
34.99 s
[really-safe-money-autodocodec] added 4 mutations
35.03 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 )
35.29 s
[really-safe-money-autodocodec] [1 of 7] Compiling Money.Account.Codec ( src/Money/Account/Codec.hs, dist/build/Money/Account/Codec.p_o )
35.31 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Account.Codec
35.35 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
35.35 s
[really-safe-money-autodocodec] @@ -76,6 +76,6 @@
35.35 s
[really-safe-money-autodocodec] <?> "Account"
35.36 s
[really-safe-money-autodocodec] where
35.36 s
[really-safe-money-autodocodec] f :: Integer -> Either String Account
35.36 s
[really-safe-money-autodocodec] - f i = case Account.fromMinimalQuantisations i of
35.36 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
35.36 s
[really-safe-money-autodocodec] - Just a -> Right a
35.36 s
[really-safe-money-autodocodec] + f i = case Account.fromMinimalQuantisations i of
35.36 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Number did not fit into an account value: " <> show i
35.36 s
[really-safe-money-autodocodec] + Just a -> Right a
35.36 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
35.36 s
[really-safe-money-autodocodec] @@ -76,6 +76,6 @@
35.36 s
[really-safe-money-autodocodec] <?> "Account"
35.36 s
[really-safe-money-autodocodec] where
35.36 s
[really-safe-money-autodocodec] f :: Integer -> Either String Account
35.36 s
[really-safe-money-autodocodec] - f i = case Account.fromMinimalQuantisations i of
35.36 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
35.36 s
[really-safe-money-autodocodec] - Just a -> Right a
35.36 s
[really-safe-money-autodocodec] + f i = case Account.fromMinimalQuantisations i of
35.36 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Number did not fit into an account value: " <> show i
35.36 s
[really-safe-money-autodocodec] + Just a -> Right a
35.36 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
35.36 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
35.36 s
[really-safe-money-autodocodec] where
35.36 s
[really-safe-money-autodocodec] f :: String -> Either String Account
35.36 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
35.36 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
35.36 s
[really-safe-money-autodocodec] Just a -> Right a
35.36 s
[really-safe-money-autodocodec] g :: Account -> String
35.36 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
35.36 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Account/Codec.hs:51:33-76
35.36 s
[really-safe-money-autodocodec] @@ -48,7 +48,7 @@
35.36 s
[really-safe-money-autodocodec] where
35.36 s
[really-safe-money-autodocodec] f :: String -> Either String Account
35.36 s
[really-safe-money-autodocodec] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
35.36 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] Just a -> Right a
35.36 s
[really-safe-money-autodocodec] g :: Account -> String
35.36 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
35.36 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
35.36 s
[really-safe-money-autodocodec] @@ -47,9 +47,9 @@
35.36 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Account"
35.36 s
[really-safe-money-autodocodec] where
35.36 s
[really-safe-money-autodocodec] f :: String -> Either String Account
35.36 s
[really-safe-money-autodocodec] - f s = case readMaybe s >>= Account.fromMinimalQuantisations of
35.36 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] - Just a -> Right a
35.36 s
[really-safe-money-autodocodec] + f s = case readMaybe s >>= Account.fromMinimalQuantisations of
35.36 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] + Just a -> Right a
35.36 s
[really-safe-money-autodocodec] g :: Account -> String
35.36 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
35.36 s
[really-safe-money-autodocodec]
35.36 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
35.36 s
[really-safe-money-autodocodec] @@ -47,9 +47,9 @@
35.36 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Account"
35.36 s
[really-safe-money-autodocodec] where
35.36 s
[really-safe-money-autodocodec] f :: String -> Either String Account
35.36 s
[really-safe-money-autodocodec] - f s = case readMaybe s >>= Account.fromMinimalQuantisations of
35.36 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] - Just a -> Right a
35.36 s
[really-safe-money-autodocodec] + f s = case readMaybe s >>= Account.fromMinimalQuantisations of
35.36 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
35.36 s
[really-safe-money-autodocodec] + Just a -> Right a
35.36 s
[really-safe-money-autodocodec] g :: Account -> String
35.36 s
[really-safe-money-autodocodec] g = show . Account.toMinimalQuantisations
35.36 s
[really-safe-money-autodocodec]
35.36 s
[really-safe-money-autodocodec] added 6 mutations
35.94 s
[really-safe-money-autodocodec] [2 of 7] Compiling Money.AccountOf.Codec ( src/Money/AccountOf/Codec.hs, dist/build/Money/AccountOf/Codec.p_o )
35.94 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AccountOf.Codec
35.94 s
[really-safe-money-autodocodec] added 0 mutations
36.06 s
[really-safe-money-autodocodec] [3 of 7] Compiling Money.Amount.Codec ( src/Money/Amount/Codec.hs, dist/build/Money/Amount/Codec.p_o )
36.06 s
[really-safe-money-autodocodec] mutation: instrumenting Money.Amount.Codec
36.06 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
36.06 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
36.06 s
[really-safe-money-autodocodec] where
36.06 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
36.06 s
[really-safe-money-autodocodec] f s = case readMaybe s of
36.06 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.06 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
36.06 s
[really-safe-money-autodocodec] Just i ->
36.06 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.06 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.06 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
36.06 s
[really-safe-money-autodocodec] @@ -44,7 +44,7 @@
36.06 s
[really-safe-money-autodocodec] where
36.06 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
36.06 s
[really-safe-money-autodocodec] f s = case readMaybe s of
36.06 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.06 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.06 s
[really-safe-money-autodocodec] Just i ->
36.06 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.06 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.06 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
36.06 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
36.06 s
[really-safe-money-autodocodec] f s = case readMaybe s of
36.06 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] Just i ->
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + if True
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
36.07 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
36.07 s
[really-safe-money-autodocodec] f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] Just i ->
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + if False
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:49:12-59
36.07 s
[really-safe-money-autodocodec] @@ -46,7 +46,7 @@
36.07 s
[really-safe-money-autodocodec] f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] Just i ->
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + if not ((i :: Integer) < toInteger (minBound :: Word64))
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
36.07 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
36.07 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] Just i ->
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords []
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
36.07 s
[really-safe-money-autodocodec] @@ -47,7 +47,7 @@
36.07 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] Just i ->
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
36.07 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + if True
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] added mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
36.07 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + if False
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] added mutation Negate at src/Money/Amount/Codec.hs:52:16-63
36.07 s
[really-safe-money-autodocodec] @@ -49,7 +49,7 @@
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
36.07 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords []
36.07 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
36.07 s
[really-safe-money-autodocodec] added mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
36.07 s
[really-safe-money-autodocodec] @@ -50,7 +50,7 @@
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
36.07 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
36.07 s
[really-safe-money-autodocodec] @@ -49,9 +49,9 @@
36.07 s
[really-safe-money-autodocodec] if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
36.07 s
[really-safe-money-autodocodec]
36.07 s
[really-safe-money-autodocodec] added mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
36.07 s
[really-safe-money-autodocodec] @@ -46,12 +46,12 @@
36.07 s
[really-safe-money-autodocodec] f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] Just i ->
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] - else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] + else
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
36.07 s
[really-safe-money-autodocodec]
36.07 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
36.07 s
[really-safe-money-autodocodec] @@ -43,15 +43,15 @@
36.07 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Amount"
36.07 s
[really-safe-money-autodocodec] where
36.07 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
36.07 s
[really-safe-money-autodocodec] - f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] - Just i ->
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] - else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] + f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] + Just i ->
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] + else
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
36.07 s
[really-safe-money-autodocodec]
36.07 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
36.07 s
[really-safe-money-autodocodec] @@ -43,15 +43,15 @@
36.07 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f g stringCodec <?> "Amount"
36.07 s
[really-safe-money-autodocodec] where
36.07 s
[really-safe-money-autodocodec] f :: String -> Either String Amount
36.07 s
[really-safe-money-autodocodec] - f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] - Just i ->
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] - else
36.07 s
[really-safe-money-autodocodec] - if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] + f s = case readMaybe s of
36.07 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
36.07 s
[really-safe-money-autodocodec] + Just i ->
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) < toInteger (minBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
36.07 s
[really-safe-money-autodocodec] + else
36.07 s
[really-safe-money-autodocodec] + if (i :: Integer) > toInteger (maxBound :: Word64)
36.07 s
[really-safe-money-autodocodec] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
36.07 s
[really-safe-money-autodocodec] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
36.07 s
[really-safe-money-autodocodec] g :: Amount -> String
36.07 s
[really-safe-money-autodocodec] g = show . Amount.toMinimalQuantisations
36.07 s
[really-safe-money-autodocodec]
36.07 s
[really-safe-money-autodocodec] added 16 mutations
36.29 s
[really-safe-money-autodocodec] [4 of 7] Compiling Money.AmountOf.Codec ( src/Money/AmountOf/Codec.hs, dist/build/Money/AmountOf/Codec.p_o )
36.29 s
[really-safe-money-autodocodec] mutation: instrumenting Money.AmountOf.Codec
36.29 s
[really-safe-money-autodocodec] added 0 mutations
36.41 s
[really-safe-money-autodocodec] [5 of 7] Compiling Money.QuantisationFactor.Codec ( src/Money/QuantisationFactor/Codec.hs, dist/build/Money/QuantisationFactor/Codec.p_o )
36.42 s
[really-safe-money-autodocodec] mutation: instrumenting Money.QuantisationFactor.Codec
36.42 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
36.42 s
[really-safe-money-autodocodec] @@ -38,6 +38,6 @@
36.42 s
[really-safe-money-autodocodec] codec
36.42 s
[really-safe-money-autodocodec] <?> "QuantisationFactor"
36.42 s
[really-safe-money-autodocodec] where
36.42 s
[really-safe-money-autodocodec] - f w = case QuantisationFactor.fromWord32 w of
36.42 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
36.42 s
[really-safe-money-autodocodec] - Just qf -> Right qf
36.42 s
[really-safe-money-autodocodec] + f w = case QuantisationFactor.fromWord32 w of
36.42 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
36.42 s
[really-safe-money-autodocodec] + Just qf -> Right qf
36.42 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
36.42 s
[really-safe-money-autodocodec] @@ -38,6 +38,6 @@
36.42 s
[really-safe-money-autodocodec] codec
36.42 s
[really-safe-money-autodocodec] <?> "QuantisationFactor"
36.42 s
[really-safe-money-autodocodec] where
36.42 s
[really-safe-money-autodocodec] - f w = case QuantisationFactor.fromWord32 w of
36.42 s
[really-safe-money-autodocodec] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
36.42 s
[really-safe-money-autodocodec] - Just qf -> Right qf
36.42 s
[really-safe-money-autodocodec] + f w = case QuantisationFactor.fromWord32 w of
36.42 s
[really-safe-money-autodocodec] + Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
36.42 s
[really-safe-money-autodocodec] + Just qf -> Right qf
36.42 s
[really-safe-money-autodocodec] added 2 mutations
36.55 s
[really-safe-money-autodocodec] [6 of 7] Compiling Numeric.DecimalLiteral.Codec ( src/Numeric/DecimalLiteral/Codec.hs, dist/build/Numeric/DecimalLiteral/Codec.p_o )
36.55 s
[really-safe-money-autodocodec] mutation: instrumenting Numeric.DecimalLiteral.Codec
36.55 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
36.55 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
36.55 s
[really-safe-money-autodocodec] where
36.55 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
36.55 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
36.55 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.55 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords []
36.55 s
[really-safe-money-autodocodec] Just a -> Right a
36.55 s
[really-safe-money-autodocodec] added mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
36.55 s
[really-safe-money-autodocodec] @@ -37,5 +37,5 @@
36.55 s
[really-safe-money-autodocodec] where
36.55 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
36.55 s
[really-safe-money-autodocodec] f s = case DecimalLiteral.fromString s of
36.55 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.55 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.55 s
[really-safe-money-autodocodec] Just a -> Right a
36.55 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
36.55 s
[really-safe-money-autodocodec] @@ -36,6 +36,6 @@
36.55 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
36.55 s
[really-safe-money-autodocodec] where
36.55 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
36.55 s
[really-safe-money-autodocodec] - f s = case DecimalLiteral.fromString s of
36.56 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.56 s
[really-safe-money-autodocodec] - Just a -> Right a
36.56 s
[really-safe-money-autodocodec] + f s = case DecimalLiteral.fromString s of
36.56 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.56 s
[really-safe-money-autodocodec] + Just a -> Right a
36.56 s
[really-safe-money-autodocodec] added mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
36.56 s
[really-safe-money-autodocodec] @@ -36,6 +36,6 @@
36.56 s
[really-safe-money-autodocodec] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
36.56 s
[really-safe-money-autodocodec] where
36.56 s
[really-safe-money-autodocodec] f :: String -> Either String DecimalLiteral
36.56 s
[really-safe-money-autodocodec] - f s = case DecimalLiteral.fromString s of
36.56 s
[really-safe-money-autodocodec] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.56 s
[really-safe-money-autodocodec] - Just a -> Right a
36.56 s
[really-safe-money-autodocodec] + f s = case DecimalLiteral.fromString s of
36.56 s
[really-safe-money-autodocodec] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
36.56 s
[really-safe-money-autodocodec] + Just a -> Right a
36.56 s
[really-safe-money-autodocodec] added 4 mutations
36.70 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 )
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Account/Codec.dyn_o'
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AccountOf/Codec.dyn_o'
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/Amount/Codec.dyn_o'
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/AmountOf/Codec.dyn_o'
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Money/QuantisationFactor/Codec.dyn_o'
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Numeric/DecimalLiteral/Codec.dyn_o'
37.04 s
[really-safe-money-autodocodec] Warning: ignoring unrecognised input `dist/build/Paths_really_safe_money_autodocodec.dyn_o'
37.75 s
[really-safe-money-autodocodec] mutation-nix: manifest output at /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest:
38.05 s
[really-safe-money-autodocodec] total 76
38.05 s
[really-safe-money-autodocodec] drwxr-xr-x 2 nixbld nixbld 4096 May 13 19:58 .
38.05 s
[really-safe-money-autodocodec] drwxrwxr-t 239 nobody nixbld 28672 May 13 19:58 ..
38.05 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 4702 May 13 19:58 Money.Account.Codec.json
38.05 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 19:58 Money.AccountOf.Codec.json
38.05 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 14717 May 13 19:58 Money.Amount.Codec.json
38.05 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2 May 13 19:58 Money.AmountOf.Codec.json
38.05 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 1549 May 13 19:58 Money.QuantisationFactor.Codec.json
38.05 s
[really-safe-money-autodocodec] -rw-r--r-- 1 nixbld nixbld 2972 May 13 19:58 Numeric.DecimalLiteral.Codec.json
38.06 s
[really-safe-money-autodocodec] Phase: haddockPhase
38.06 s
[really-safe-money-autodocodec] Phase: installPhase
38.06 s
[really-safe-money-autodocodec] Installing library in /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-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
38.06 s
[really-safe-money-autodocodec] Phase: fixupPhase
38.06 s
[really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0
38.06 s
[really-safe-money-autodocodec] shrinking /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-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
38.06 s
[really-safe-money-autodocodec] checking for references to /build/ in /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0...
38.06 s
[really-safe-money-autodocodec] patching script interpreter paths in /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0
38.06 s
[really-safe-money-autodocodec] stripping (with command strip and flags -S -p) in /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0/lib
38.08 s
[really-safe-money-autodocodec] shrinking RPATHs of ELF executables and libraries in /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest
38.09 s
[really-safe-money-autodocodec] checking for references to /build/ in /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest...
38.10 s
[really-safe-money-autodocodec] patching script interpreter paths in /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest
38.16 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0
38.67 s
[post-build-hook] Pushing 2 paths (196 are already present) using zstd to cache sydtest ⏳
38.67 s
[post-build-hook]
39.06 s
[post-build-hook] Pushing /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0 (1.59 MiB)
39.26 s
[post-build-hook] Pushing /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest (24.72 KiB)
40.68 s
[post-build-hook]
40.68 s
[post-build-hook] All done.
40.70 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest /nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0
40.74 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
41.02 s
[post-build-hook] copying 2 paths...
41.02 s
[post-build-hook] copying path '/nix/store/xvvwhghc770bcvz090cfmycpx9xp6imm-really-safe-money-autodocodec-0.0.0.0-manifest' to 'https://cache.staging.nix-ci.com'...
41.02 s
[post-build-hook] copying path '/nix/store/ydvznira3pm6dmmm1rqphldzyskfiw4k-really-safe-money-autodocodec-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
42.98 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
43.32 s
[post-build-hook] copying 1 paths...
43.35 s
[post-build-hook] copying path '/nix/store/ac9bqj0z4qkqm9vddbkzqmb844y4wbhm-really-safe-money-autodocodec-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
43.61 s
Progress: 4 of 6 built
43.72 s
Building really-safe-money-gen
44.16 s
[really-safe-money-gen] Phase: setupCompilerEnvironmentPhase
44.17 s
[really-safe-money-gen] Build with /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3.
44.97 s
[really-safe-money-gen] Phase: unpackPhase
44.97 s
[really-safe-money-gen] unpacking source archive /nix/store/ia8w50w9xynkdxz4912jk7k7skl0hrcd-really-safe-money-gen-source-0.0.0.0/really-safe-money-gen-0.0.0.0.tar.gz
44.98 s
[really-safe-money-gen] source root is really-safe-money-gen-0.0.0.0
44.99 s
[really-safe-money-gen] setting SOURCE_DATE_EPOCH to timestamp 1778702310 of file "really-safe-money-gen-0.0.0.0/test/Numeric/DecimalLiteralSpec.hs"
44.99 s
[really-safe-money-gen] warning: file "really-safe-money-gen-0.0.0.0/test/Numeric/DecimalLiteralSpec.hs" may be generated; SOURCE_DATE_EPOCH may be non-deterministic
44.99 s
[really-safe-money-gen] Phase: patchPhase
45.00 s
[really-safe-money-gen] Phase: compileBuildDriverPhase
45.01 s
[really-safe-money-gen] setupCompileFlags: -package-db=/build/tmp.sKAZeQPUfv/setup-package.conf.d -threaded
45.06 s
[really-safe-money-gen] [1 of 2] Compiling Main ( Setup.hs, /build/tmp.sKAZeQPUfv/Main.o )
45.10 s
[really-safe-money-gen] [2 of 2] Linking Setup
46.86 s
[really-safe-money-gen] Phase: updateAutotoolsGnuConfigScriptsPhase
46.87 s
[really-safe-money-gen] Phase: configurePhase
46.88 s
[really-safe-money-gen] configureFlags: --verbose --prefix=/nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0 --libdir=$prefix/lib/$compiler/lib --libsubdir=$abi/$libname --docdir=/nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-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.sKAZeQPUfv/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
46.89 s
[really-safe-money-gen] Using Parsec parser
46.89 s
[really-safe-money-gen] Configuring really-safe-money-gen-0.0.0.0...
47.49 s
[really-safe-money-gen] Dependency QuickCheck: using QuickCheck-2.15.0.1
47.49 s
[really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
47.49 s
[really-safe-money-gen] Dependency genvalidity: using genvalidity-1.1.1.0
47.50 s
[really-safe-money-gen] Dependency genvalidity-containers: using genvalidity-containers-1.0.0.2
47.50 s
[really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
47.50 s
[really-safe-money-gen] Dependency base >=4.7 && <5: using base-4.20.2.0
47.50 s
[really-safe-money-gen] Dependency containers: using containers-0.7
47.50 s
[really-safe-money-gen] Dependency genvalidity-sydtest: using genvalidity-sydtest-1.0.1.0
47.50 s
[really-safe-money-gen] Dependency genvalidity-vector: using genvalidity-vector-1.0.0.0
47.50 s
[really-safe-money-gen] Dependency really-safe-money: using really-safe-money-0.0.0.0
47.50 s
[really-safe-money-gen] Dependency really-safe-money-gen: using really-safe-money-gen-0.0.0.0
47.50 s
[really-safe-money-gen] Dependency sydtest: using sydtest-0.23.0.2
47.50 s
[really-safe-money-gen] Dependency vector: using vector-0.13.2.0
47.50 s
[really-safe-money-gen] Source component graph:
47.50 s
[really-safe-money-gen] component lib
47.50 s
[really-safe-money-gen] component test:really-safe-money-test dependency lib
47.50 s
[really-safe-money-gen] Configured component graph:
47.50 s
[really-safe-money-gen] component really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
47.50 s
[really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
47.50 s
[really-safe-money-gen] include base-4.20.2.0-64da
47.50 s
[really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
47.50 s
[really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
47.50 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
47.50 s
[really-safe-money-gen] component really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
47.50 s
[really-safe-money-gen] include base-4.20.2.0-64da
47.50 s
[really-safe-money-gen] include containers-0.7-504a
47.50 s
[really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
47.50 s
[really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
47.50 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
47.50 s
[really-safe-money-gen] include really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
47.50 s
[really-safe-money-gen] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
47.50 s
[really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
47.50 s
[really-safe-money-gen] Linked component graph:
47.50 s
[really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
47.50 s
[really-safe-money-gen] include QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
47.50 s
[really-safe-money-gen] include base-4.20.2.0-64da
47.50 s
[really-safe-money-gen] include genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
47.50 s
[really-safe-money-gen] include genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
47.50 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
47.50 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
47.50 s
[really-safe-money-gen] unit really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
47.50 s
[really-safe-money-gen] include base-4.20.2.0-64da
47.50 s
[really-safe-money-gen] include containers-0.7-504a
47.50 s
[really-safe-money-gen] include genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
47.50 s
[really-safe-money-gen] include genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
47.50 s
[really-safe-money-gen] include really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
47.50 s
[really-safe-money-gen] include really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
47.50 s
[really-safe-money-gen] include sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
47.50 s
[really-safe-money-gen] include vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
47.50 s
[really-safe-money-gen] Ready component graph:
47.50 s
[really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
47.50 s
[really-safe-money-gen] depends QuickCheck-2.15.0.1-8fVC1qSJKj9H9pvMjJXUwU
47.50 s
[really-safe-money-gen] depends base-4.20.2.0-64da
47.50 s
[really-safe-money-gen] depends genvalidity-1.1.1.0-KJOcA1wEUno9vXRiVdno1L
47.50 s
[really-safe-money-gen] depends genvalidity-containers-1.0.0.2-DXaOCEBh8iJ1c8u2LwVlK1
47.50 s
[really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
47.50 s
[really-safe-money-gen] definite really-safe-money-gen-0.0.0.0-8cvRTlTZbe8HClZztIkEoX-really-safe-money-test
47.50 s
[really-safe-money-gen] depends base-4.20.2.0-64da
47.50 s
[really-safe-money-gen] depends containers-0.7-504a
47.50 s
[really-safe-money-gen] depends genvalidity-sydtest-1.0.1.0-Cj9ZxpByhih2ReY6BClfG1
47.50 s
[really-safe-money-gen] depends genvalidity-vector-1.0.0.0-6KKiduowklk7hSxSW05Gxi
47.50 s
[really-safe-money-gen] depends really-safe-money-0.0.0.0-KH9ltLBvnn0Cn1rgifGPh9
47.50 s
[really-safe-money-gen] depends really-safe-money-gen-0.0.0.0-9DfdU4DcgbWHMkem9yRL5h
47.50 s
[really-safe-money-gen] depends sydtest-0.23.0.2-RzVaEpJISaERaSrCHYFLw
47.50 s
[really-safe-money-gen] depends vector-0.13.2.0-GDUCoiHhVuq2SKPTzzTr3a
47.50 s
[really-safe-money-gen] Using Cabal-3.12.1.0 compiled by ghc-9.10
47.50 s
[really-safe-money-gen] Using compiler: ghc-9.10.3
47.50 s
[really-safe-money-gen] Using install prefix:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0
47.50 s
[really-safe-money-gen] Executables installed in:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0/bin
47.50 s
[really-safe-money-gen] Libraries installed in:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-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
47.50 s
[really-safe-money-gen] Dynamic Libraries installed in:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6
47.50 s
[really-safe-money-gen] Private executables installed in:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-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
47.50 s
[really-safe-money-gen] Data files installed in:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-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
47.50 s
[really-safe-money-gen] Documentation installed in:
47.50 s
[really-safe-money-gen] /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc/share/doc/really-safe-money-gen-0.0.0.0
47.50 s
[really-safe-money-gen] Configuration files installed in:
47.50 s
[really-safe-money-gen] /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0/etc
47.50 s
[really-safe-money-gen] No alex found
47.50 s
[really-safe-money-gen] Using ar found on system at:
47.50 s
[really-safe-money-gen] /nix/store/iz5lckcsg66r223si2gck7csk2hihj0m-binutils-wrapper-2.44/bin/ar
47.50 s
[really-safe-money-gen] No c2hs found
47.50 s
[really-safe-money-gen] No cpphs found
47.50 s
[really-safe-money-gen] No doctest found
47.50 s
[really-safe-money-gen] Using gcc version 14.3.0 given by user at:
47.50 s
[really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/gcc
47.50 s
[really-safe-money-gen] Using ghc version 9.10.3 found on system at:
47.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc
47.50 s
[really-safe-money-gen] Using ghc-pkg version 9.10.3 found on system at:
47.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/ghc-pkg-9.10.3
47.50 s
[really-safe-money-gen] No ghcjs found
47.50 s
[really-safe-money-gen] No ghcjs-pkg found
47.50 s
[really-safe-money-gen] No greencard found
47.50 s
[really-safe-money-gen] Using haddock version 2.31.1 found on system at:
47.50 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/haddock-ghc-9.10.3
47.51 s
[really-safe-money-gen] No happy found
47.51 s
[really-safe-money-gen] Using haskell-suite found on system at: haskell-suite-dummy-location
47.51 s
[really-safe-money-gen] Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
47.51 s
[really-safe-money-gen] No hmake found
47.51 s
[really-safe-money-gen] Using hpc version 0.69 found on system at:
47.51 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hpc-ghc-9.10.3
47.51 s
[really-safe-money-gen] Using hsc2hs version 0.68.10 found on system at:
47.51 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/hsc2hs-ghc-9.10.3
47.51 s
[really-safe-money-gen] Using hscolour version 1.25 found on system at:
47.51 s
[really-safe-money-gen] /nix/store/f755skyzf4jvfx3crwq9mmh3x4lsaz8i-hscolour-1.25/bin/HsColour
47.51 s
[really-safe-money-gen] No jhc found
47.51 s
[really-safe-money-gen] Using ld found on system at:
47.51 s
[really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/ld
47.51 s
[really-safe-money-gen] No pkg-config found
47.51 s
[really-safe-money-gen] Using runghc version 9.10.3 found on system at:
47.51 s
[really-safe-money-gen] /nix/store/s9jd43rkwc2syl9cvgj6f786avy8bgzy-ghc-9.10.3/bin/runghc-9.10.3
47.51 s
[really-safe-money-gen] Using strip version 2.44 found on system at:
47.51 s
[really-safe-money-gen] /nix/store/8v97ngkcpfzgghwnnr7fsz33p2x22gy9-gcc-wrapper-14.3.0/bin/strip
47.51 s
[really-safe-money-gen] Using tar found on system at:
47.51 s
[really-safe-money-gen] /nix/store/xl6pd2spjajwcpq09fnmnjv5psqmlmma-gnutar-1.35/bin/tar
47.51 s
[really-safe-money-gen] No uhc found
47.86 s
[really-safe-money-gen] Phase: buildPhase
47.93 s
[really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
47.93 s
[really-safe-money-gen] Building library for really-safe-money-gen-0.0.0.0...
48.02 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 )
48.35 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 )
48.44 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 )
48.48 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 )
48.48 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 )
48.48 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 )
48.48 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 )
48.48 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 )
48.48 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 )
48.48 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 )
48.53 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 )
48.55 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 )
48.55 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 )
48.76 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, dist/build/Money/Amount/Gen.p_o )
49.14 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, dist/build/Money/Account/Gen.p_o )
49.32 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, dist/build/Money/AccountOf/Gen.p_o )
49.46 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, dist/build/Money/AmountOf/Gen.p_o )
49.46 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, dist/build/Money/ConversionRate/Gen.p_o )
49.46 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, dist/build/Money/ConversionRateOf/Gen.p_o )
49.46 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, dist/build/Money/QuantisationFactor/Gen.p_o )
49.46 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, dist/build/Money/Currency/Gen.p_o )
49.46 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, dist/build/Money/MultiAmount/Gen.p_o )
49.46 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, dist/build/Money/MultiAccount/Gen.p_o )
49.47 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, dist/build/Money/Gen.p_o )
49.58 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, dist/build/Numeric/DecimalLiteral/Gen.p_o )
49.58 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 )
50.91 s
[really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
50.91 s
[really-safe-money-gen] Building test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
51.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 )
53.24 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 )
53.46 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.48 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 )
53.52 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 )
53.83 s
[really-safe-money-gen] [15 of 15] Linking dist/build/really-safe-money-test/really-safe-money-test
55.32 s
[really-safe-money-gen] Phase: checkPhase
55.33 s
[really-safe-money-gen] mutation-nix: collecting coverage for suite really-safe-money-gen
57.04 s
[really-safe-money-gen] coverage (3/1610): Numeric\.DecimalLiteralSpec.Natural.toNatural.renders to valid naturals (0 mutations)
57.44 s
[really-safe-money-gen] coverage (22/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 9 % 100 into DecimalLiteral Nothing 9 2 (20 mutations)
57.79 s
[really-safe-money-gen] coverage (12/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 5 % 1 into DecimalLiteral Nothing 5 0 (18 mutations)
57.97 s
[really-safe-money-gen] coverage (4/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 9 2 into rational 9 % 100 (4 mutations)
58.22 s
[really-safe-money-gen] coverage (11/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-4) % 5 into DecimalLiteral (Just False) 8 1 (21 mutations)
58.29 s
[really-safe-money-gen] coverage (23/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 3 0 into rational (-3) % 1 (4 mutations)
58.34 s
[really-safe-money-gen] coverage (25/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 7 % 1 into DecimalLiteral Nothing 7 0 (18 mutations)
58.38 s
[really-safe-money-gen] coverage (8/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 10 0 into rational 10 % 1 (4 mutations)
58.43 s
[really-safe-money-gen] coverage (27/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 240009 % 20000 into DecimalLiteral Nothing 1200045 5 (22 mutations)
58.46 s
[really-safe-money-gen] coverage (19/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1 into DecimalLiteral (Just False) 3 0 (19 mutations)
58.50 s
[really-safe-money-gen] coverage (9/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 50 1 into rational 5 % 1 (4 mutations)
58.52 s
[really-safe-money-gen] coverage (17/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 20 4 into rational 1 % 500 (4 mutations)
58.56 s
[really-safe-money-gen] coverage (7/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-6) % 1 into DecimalLiteral (Just False) 6 0 (19 mutations)
58.57 s
[really-safe-money-gen] coverage (14/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.renders to valid decimal literals (23 mutations)
58.59 s
[really-safe-money-gen] coverage (15/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 600 2 into rational (-6) % 1 (4 mutations)
58.63 s
[really-safe-money-gen] coverage (28/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 1 3 into rational (-1) % 1000 (4 mutations)
58.67 s
[really-safe-money-gen] coverage (26/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1 0 into rational 1 % 1 (4 mutations)
58.73 s
[really-safe-money-gen] coverage (6/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 500 into DecimalLiteral Nothing 2 3 (20 mutations)
58.76 s
[really-safe-money-gen] coverage (24/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 1 % 1 into DecimalLiteral Nothing 1 0 (18 mutations)
58.78 s
[really-safe-money-gen] coverage (5/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 400 % 1 into DecimalLiteral Nothing 400 0 (18 mutations)
58.84 s
[really-safe-money-gen] coverage (18/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 10 % 1 into DecimalLiteral Nothing 10 0 (18 mutations)
58.86 s
[really-safe-money-gen] coverage (21/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 2 0 into rational 2 % 1 (4 mutations)
58.87 s
[really-safe-money-gen] coverage (10/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-1) % 1000 into DecimalLiteral (Just False) 1 3 (21 mutations)
58.94 s
[really-safe-money-gen] coverage (2/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.can parse any rendered literal (4 mutations)
58.95 s
[really-safe-money-gen] coverage (16/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 400 0 into rational 400 % 1 (4 mutations)
59.02 s
[really-safe-money-gen] coverage (20/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 7000 3 into rational 7 % 1 (4 mutations)
59.02 s
[really-safe-money-gen] coverage (1/1610): Numeric\.DecimalLiteralSpec.Natural.fromNatural.renders to valid decimal literals (1 mutations)
59.09 s
[really-safe-money-gen] coverage (13/1610): Numeric\.DecimalLiteralSpec.Rational.fromRational.can parse any rendered rational (26 mutations)
60.11 s
[really-safe-money-gen] coverage (29/1610): Numeric\.DecimalLiteralSpec.Rational.toRational.renders to valid rationals (4 mutations)
60.40 s
[really-safe-money-gen] coverage (31/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational 2 % 1 into DecimalLiteral Nothing 2 0 (18 mutations)
60.68 s
[really-safe-money-gen] coverage (32/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral Nothing 1200045 5 into rational 240009 % 20000 (4 mutations)
60.93 s
[really-safe-money-gen] coverage (34/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 300 5 into rational (-3) % 1000 (4 mutations)
60.94 s
[really-safe-money-gen] coverage (33/1610): Numeric\.DecimalLiteralSpec.Rational.can turn DecimalLiteral (Just False) 8 1 into rational (-4) % 5 (4 mutations)
61.11 s
[really-safe-money-gen] coverage (40/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces values with more than the given number of digits (6 mutations)
61.14 s
[really-safe-money-gen] coverage (38/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.does not change the value of the literal (9 mutations)
61.18 s
[really-safe-money-gen] coverage (37/1610): Numeric\.DecimalLiteralSpec.Ratio.toRatio.renders to valid rationals (5 mutations)
61.19 s
[really-safe-money-gen] coverage (42/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.fails to parse scientific notation (15 mutations)
61.19 s
[really-safe-money-gen] coverage (41/1610): Numeric\.DecimalLiteralSpec.GenValid DecimalLiteral.genValid \:\: Gen DecimalLiteral.only generates valid 'DecimalLiteral's (0 mutations)
61.19 s
[really-safe-money-gen] coverage (36/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.renders to valid decimal literals (18 mutations)
61.19 s
[really-safe-money-gen] coverage (43/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromString.can parse any rendered decimal literal (30 mutations)
61.20 s
[really-safe-money-gen] coverage (35/1610): Numeric\.DecimalLiteralSpec.Ratio.fromRatio.can parse any rendered rational (23 mutations)
61.20 s
[really-safe-money-gen] coverage (39/1610): Numeric\.DecimalLiteralSpec.setMinimumDigits.produces valid literals (6 mutations)
61.20 s
[really-safe-money-gen] coverage (30/1610): Numeric\.DecimalLiteralSpec.Rational.can turn rational (-3) % 1000 into DecimalLiteral (Just False) 3 3 (21 mutations)
61.31 s
[really-safe-money-gen] coverage (45/1610): Numeric\.DecimalLiteralSpec.Int.toInt.renders to valid words (6 mutations)
61.45 s
[really-safe-money-gen] coverage (44/1610): Numeric\.DecimalLiteralSpec.setSignOptional.produces valid values (0 mutations)
61.45 s
[really-safe-money-gen] coverage (47/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.renders to valid decimal literals (7 mutations)
61.48 s
[really-safe-money-gen] coverage (46/1610): Numeric\.DecimalLiteralSpec.Int.fromInt.can parse any rendered literal (13 mutations)
61.54 s
[really-safe-money-gen] coverage (49/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.renders to valid decimal literals (1 mutations)
61.57 s
[really-safe-money-gen] coverage (48/1610): Numeric\.DecimalLiteralSpec.DecimalLiteral\.fromStringM.does the same as DecimalLiteral\.fromString (11 mutations)
61.58 s
[really-safe-money-gen] coverage (51/1610): Numeric\.DecimalLiteralSpec.Word.toWord.renders to valid words (0 mutations)
61.64 s
[really-safe-money-gen] coverage (50/1610): Numeric\.DecimalLiteralSpec.Word.fromWord.can parse any rendered literal (4 mutations)
61.75 s
[really-safe-money-gen] coverage (55/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 300 5 (3 mutations)
61.75 s
[really-safe-money-gen] coverage (52/1610): Numeric\.DecimalLiteralSpec.toString.can render any decimal literal (2 mutations)
61.84 s
[really-safe-money-gen] coverage (53/1610): Numeric\.DecimalLiteralSpec.examples.can parse "+2" (18 mutations)
61.84 s
[really-safe-money-gen] coverage (54/1610): Numeric\.DecimalLiteralSpec.examples.can parse "1" (15 mutations)
61.89 s
[really-safe-money-gen] coverage (56/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 50 1 (1 mutations)
63.00 s
[really-safe-money-gen] coverage (57/1610): Numeric\.DecimalLiteralSpec.examples.can parse "400" (22 mutations)
63.34 s
[really-safe-money-gen] coverage (58/1610): Numeric\.DecimalLiteralSpec.examples.can parse "5\.0" (19 mutations)
63.50 s
[really-safe-money-gen] coverage (59/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 8 1 (3 mutations)
63.83 s
[really-safe-money-gen] coverage (60/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 3 (3 mutations)
63.93 s
[really-safe-money-gen] coverage (61/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.00300" (22 mutations)
63.95 s
[really-safe-money-gen] coverage (62/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 7000 3 (1 mutations)
64.01 s
[really-safe-money-gen] coverage (63/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 20 4 (3 mutations)
64.09 s
[really-safe-money-gen] coverage (67/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1200045 5 (1 mutations)
64.10 s
[really-safe-money-gen] coverage (64/1610): Numeric\.DecimalLiteralSpec.examples.can parse "12\.00045" (24 mutations)
64.13 s
[really-safe-money-gen] coverage (65/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 1 0 (1 mutations)
64.14 s
[really-safe-money-gen] coverage (69/1610): Numeric\.DecimalLiteralSpec.examples.can parse "6\.00" (22 mutations)
64.15 s
[really-safe-money-gen] coverage (70/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 600 2 (1 mutations)
64.15 s
[really-safe-money-gen] coverage (66/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just True) 2 0 (1 mutations)
64.16 s
[really-safe-money-gen] coverage (68/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.001" (20 mutations)
64.20 s
[really-safe-money-gen] coverage (71/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 9 2 (3 mutations)
64.31 s
[really-safe-money-gen] coverage (72/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.8" (17 mutations)
64.40 s
[really-safe-money-gen] coverage (73/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral Nothing 400 0 (1 mutations)
64.51 s
[really-safe-money-gen] coverage (79/1610): Numeric\.DecimalLiteralSpec.Integer.toInteger.renders to valid words (0 mutations)
64.54 s
[really-safe-money-gen] coverage (77/1610): Numeric\.DecimalLiteralSpec.examples.can render DecimalLiteral (Just False) 3 0 (1 mutations)
64.54 s
[really-safe-money-gen] coverage (76/1610): Numeric\.DecimalLiteralSpec.examples.can parse "-3" (15 mutations)
64.55 s
[really-safe-money-gen] coverage (75/1610): Numeric\.DecimalLiteralSpec.examples.can parse "7\.000" (22 mutations)
64.55 s
[really-safe-money-gen] coverage (74/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.09" (20 mutations)
64.65 s
[really-safe-money-gen] coverage (78/1610): Numeric\.DecimalLiteralSpec.examples.can parse "0\.0020" (22 mutations)
64.69 s
[really-safe-money-gen] coverage (80/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.renders to valid decimal literals (7 mutations)
64.73 s
[really-safe-money-gen] coverage (81/1610): Numeric\.DecimalLiteralSpec.Integer.fromInteger.can parse any rendered literal (7 mutations)
64.83 s
[really-safe-money-gen] coverage (83/1610): Numeric\.DecimalLiteralSpec.setSignRequired.produces valid values (1 mutations)
64.84 s
[really-safe-money-gen] coverage (82/1610): Numeric\.DecimalLiteralSpec.digits.produces valid numbers of digits (0 mutations)
65.06 s
[really-safe-money-gen] coverage (84/1610): Money\.ConversionRateSpec.Rational.toRational.produces valid rationals (0 mutations)
66.45 s
[really-safe-money-gen] coverage (85/1610): Money\.ConversionRateSpec.Rational.fromRational.roundtrips with toRational (11 mutations)
66.82 s
[really-safe-money-gen] coverage (87/1610): Money\.ConversionRateSpec.Ratio.fromRatio.produces valid conversion rates (6 mutations)
66.88 s
[really-safe-money-gen] coverage (86/1610): Money\.ConversionRateSpec.Rational.fromRational.produces valid conversion rates (11 mutations)
66.89 s
[really-safe-money-gen] coverage (89/1610): Money\.ConversionRateSpec.Ratio.toRatio.produces valid ratios (0 mutations)
67.18 s
[really-safe-money-gen] coverage (88/1610): Money\.ConversionRateSpec.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
67.20 s
[really-safe-money-gen] coverage (90/1610): Money\.ConversionRateSpec.invert.produces valid rates (8 mutations)
67.27 s
[really-safe-money-gen] coverage (98/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"s (3 mutations)
67.37 s
[really-safe-money-gen] coverage (97/1610): Money\.AccountSpec.Eq.Eq Account.(/=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid Account"s (3 mutations)
67.39 s
[really-safe-money-gen] coverage (99/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid Account"s (3 mutations)
67.42 s
[really-safe-money-gen] coverage (95/1610): Money\.ConversionRateSpec.GenValid ConversionRate.genValid \:\: Gen ConversionRate.only generates valid 'ConversionRate's (6 mutations)
67.47 s
[really-safe-money-gen] coverage (103/1610): Money\.AccountSpec.Eq.says negative 0 equals positive 0 (3 mutations)
67.50 s
[really-safe-money-gen] coverage (100/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is transitive for "valid Account"s (3 mutations)
67.56 s
[really-safe-money-gen] coverage (101/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is symmetric for "valid Account"s (3 mutations)
67.57 s
[really-safe-money-gen] coverage (104/1610): Money\.AccountSpec.negate.produces valid amounts (1 mutations)
67.58 s
[really-safe-money-gen] coverage (94/1610): Money\.ConversionRateSpec.compose.produces valid rates (6 mutations)
67.59 s
[really-safe-money-gen] coverage (92/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
67.61 s
[really-safe-money-gen] coverage (109/1610): Money\.AccountSpec.distribute.correctly distributes 5 into 3 (17 mutations)
67.62 s
[really-safe-money-gen] coverage (102/1610): Money\.AccountSpec.Eq.Eq Account.(==) \:\: Account -> Account -> Bool.is reflexive for "valid Account"s (3 mutations)
67.71 s
[really-safe-money-gen] coverage (110/1610): Money\.AccountSpec.distribute.correctly distributes 3 into 3 (17 mutations)
67.71 s
[really-safe-money-gen] coverage (108/1610): Money\.AccountSpec.convert.converts this USD to CHF correctly (17 mutations)
67.72 s
[really-safe-money-gen] coverage (96/1610): Money\.AccountSpec.Show Account and Read Account.are implemented such that read \. show == id for valid values (3 mutations)
67.97 s
[really-safe-money-gen] coverage (111/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is symmetric for "valid (Distribution Account)"s (3 mutations)
68.14 s
[really-safe-money-gen] coverage (105/1610): Money\.AccountSpec.format.produces valid strings (6 mutations)
68.20 s
[really-safe-money-gen] coverage (112/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is transitive for "valid (Distribution Account)"s (3 mutations)
68.28 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 (19 mutations)
68.88 s
[really-safe-money-gen] coverage (107/1610): Money\.AccountSpec.convert.produces valid amounts (17 mutations)
69.45 s
[really-safe-money-gen] coverage (113/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution Account)"s (3 mutations)
69.82 s
[really-safe-money-gen] coverage (115/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is antireflexive for "valid (Distribution Account)"s (3 mutations)
69.87 s
[really-safe-money-gen] coverage (116/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(/=) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution Account)"s (3 mutations)
69.87 s
[really-safe-money-gen] coverage (114/1610): Money\.AccountSpec.distribute.Eq (Distribution Account).(==) \:\: (Distribution Account) -> (Distribution Account) -> Bool.is reflexive for "valid (Distribution Account)"s (3 mutations)
69.93 s
[really-safe-money-gen] coverage (118/1610): Money\.AccountSpec.distribute.correctly distributes 10 into 4 (17 mutations)
70.26 s
[really-safe-money-gen] coverage (121/1610): Money\.AccountSpec.abs.produces valid amounts (1 mutations)
70.27 s
[really-safe-money-gen] coverage (131/1610): Money\.AccountSpec.rate.computes this USD to CHF rate correctly (10 mutations)
70.27 s
[really-safe-money-gen] coverage (122/1610): Money\.AccountSpec.fromAmount.produces valid accounts (1 mutations)
70.32 s
[really-safe-money-gen] coverage (134/1610): Money\.AccountSpec.Ord.says -6 is greater than -7 (2 mutations)
70.46 s
[really-safe-money-gen] coverage (117/1610): Money\.AccountSpec.distribute.produces results that sum up to the greater whole (45 mutations)
70.47 s
[really-safe-money-gen] coverage (127/1610): Money\.AccountSpec.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (12 mutations)
70.47 s
[really-safe-money-gen] coverage (133/1610): Money\.AccountSpec.toDouble.produces an infinite or NaN Double with quantisation factor 0 (3 mutations)
70.47 s
[really-safe-money-gen] coverage (132/1610): Money\.AccountSpec.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
70.52 s
[really-safe-money-gen] coverage (120/1610): Money\.AccountSpec.distribute.produces valid amounts (28 mutations)
70.55 s
[really-safe-money-gen] coverage (128/1610): Money\.AccountSpec.fromMinimalQuantisations.produces valid accounts (10 mutations)
70.55 s
[really-safe-money-gen] coverage (124/1610): Money\.AccountSpec.fromRational.produces valid rational (19 mutations)
70.61 s
[really-safe-money-gen] coverage (126/1610): Money\.AccountSpec.fromRatio.roundtrips with toRatio (16 mutations)
70.62 s
[really-safe-money-gen] coverage (125/1610): Money\.AccountSpec.fromRatio.produces valid rational (14 mutations)
70.63 s
[really-safe-money-gen] coverage (123/1610): Money\.AccountSpec.fromRational.roundtrips with toRational (23 mutations)
70.92 s
[really-safe-money-gen] coverage (138/1610): Money\.AccountSpec.Ord.Ord Account."min \:\: (Account -> Account -> Account)".is equivalent to (\\a b -> if a <= b then a else b) for "valid Account"'s (3 mutations)
70.96 s
[really-safe-money-gen] coverage (130/1610): Money\.AccountSpec.rate.produces valid conversion rates (11 mutations)
71.16 s
[really-safe-money-gen] coverage (140/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid Account"'s (3 mutations)
71.19 s
[really-safe-money-gen] coverage (139/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
71.47 s
[really-safe-money-gen] coverage (119/1610): Money\.AccountSpec.distribute.Show (Distribution Account) and Read (Distribution Account).are implemented such that read \. show == id for valid values (3 mutations)
71.98 s
[really-safe-money-gen] coverage (141/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
72.09 s
[really-safe-money-gen] coverage (129/1610): Money\.AccountSpec.rate.computes a rate that can be used to do a conversion without rounding (22 mutations)
72.53 s
[really-safe-money-gen] coverage (142/1610): Money\.AccountSpec.Ord.Ord Account.(<=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
72.55 s
[really-safe-money-gen] coverage (136/1610): Money\.AccountSpec.Ord.says -3 is smaller than 2 (2 mutations)
72.89 s
[really-safe-money-gen] coverage (145/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
72.89 s
[really-safe-money-gen] coverage (143/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
73.09 s
[really-safe-money-gen] coverage (144/1610): Money\.AccountSpec.Ord.Ord Account.(>) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid Account"'s (3 mutations)
73.34 s
[really-safe-money-gen] coverage (148/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is antireflexive for "valid Account"'s (3 mutations)
73.46 s
[really-safe-money-gen] coverage (150/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is antisymmetric for "valid Account"'s (3 mutations)
73.55 s
[really-safe-money-gen] coverage (146/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
73.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 (3 mutations)
73.61 s
[really-safe-money-gen] coverage (135/1610): Money\.AccountSpec.Ord.says 4 is smaller than 5 (2 mutations)
73.65 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)
73.69 s
[really-safe-money-gen] coverage (157/1610): Money\.AccountSpec.sum.fails to sum above maxBound (5 mutations)
73.70 s
[really-safe-money-gen] coverage (158/1610): Money\.AccountSpec.sum.correctly sums [1,2,3] to 6 (7 mutations)
73.73 s
[really-safe-money-gen] coverage (147/1610): Money\.AccountSpec.Ord.Ord Account.(<) \:\: Account -> Account -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid Account"'s (3 mutations)
73.79 s
[really-safe-money-gen] coverage (152/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is transitive for "valid Account"'s (3 mutations)
73.80 s
[really-safe-money-gen] coverage (149/1610): Money\.AccountSpec.Ord.Ord Account.(>=) \:\: Account -> Account -> Bool.is reflexive for "valid Account"'s (3 mutations)
73.90 s
[really-safe-money-gen] coverage (153/1610): Money\.AccountSpec.toRatio.produces valid Ratios when the quantisation factor is nonzero (1 mutations)
74.24 s
[really-safe-money-gen] coverage (154/1610): Money\.AccountSpec.fractionRatio.produces valid amounts (15 mutations)
74.31 s
[really-safe-money-gen] coverage (160/1610): Money\.AccountSpec.toMinimalQuantisations.produces valid accounts (3 mutations)
74.33 s
[really-safe-money-gen] coverage (162/1610): Money\.AccountSpec.add.fails for minBound + (-1) (4 mutations)
74.72 s
[really-safe-money-gen] coverage (163/1610): Money\.AccountSpec.add.fails for minBound + minBound (4 mutations)
74.78 s
[really-safe-money-gen] coverage (161/1610): Money\.AccountSpec.add.is commutative (16 mutations)
74.98 s
[really-safe-money-gen] coverage (155/1610): Money\.AccountSpec.sum.produces valid amounts (17 mutations)
75.48 s
[really-safe-money-gen] coverage (164/1610): Money\.AccountSpec.add.produces valid amounts (16 mutations)
75.48 s
[really-safe-money-gen] coverage (159/1610): Money\.AccountSpec.sum.matches what you would get with Integer, if nothing fails (17 mutations)
75.62 s
[really-safe-money-gen] coverage (165/1610): Money\.AccountSpec.add.has a right-identity\: zero (17 mutations)
75.72 s
[really-safe-money-gen] coverage (166/1610): Money\.AccountSpec.add.fails for maxBound + 1 (4 mutations)
75.79 s
[really-safe-money-gen] coverage (167/1610): Money\.AccountSpec.add.fails for maxBound + maxBound (4 mutations)
76.42 s
[really-safe-money-gen] coverage (169/1610): Money\.AccountSpec.add.has a left-identity\: zero (17 mutations)
76.57 s
[really-safe-money-gen] coverage (172/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 1 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (24 mutations)
76.74 s
[really-safe-money-gen] coverage (174/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 4 2 (27 mutations)
76.74 s
[really-safe-money-gen] coverage (173/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 8 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} (24 mutations)
76.77 s
[really-safe-money-gen] coverage (171/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 3 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (24 mutations)
76.80 s
[really-safe-money-gen] coverage (175/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just False) 200 2 (27 mutations)
76.82 s
[really-safe-money-gen] coverage (170/1610): Money\.AccountSpec.add.matches what you would get with Integer, if nothing fails (16 mutations)
76.83 s
[really-safe-money-gen] coverage (137/1610): Money\.AccountSpec.Ord.Ord Account."max \:\: (Account -> Account -> Account)".is equivalent to (\\a b -> if a >= b then a else b) for "valid Account"'s (3 mutations)
76.85 s
[really-safe-money-gen] coverage (168/1610): Money\.AccountSpec.add.is associative when both succeed (16 mutations)
76.88 s
[really-safe-money-gen] coverage (176/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 100 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (24 mutations)
76.89 s
[really-safe-money-gen] coverage (179/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 500 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (24 mutations)
76.98 s
[really-safe-money-gen] coverage (180/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 3 2 (27 mutations)
77.00 s
[really-safe-money-gen] coverage (178/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 600 2 (27 mutations)
77.02 s
[really-safe-money-gen] coverage (177/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 500 2 (27 mutations)
77.27 s
[really-safe-money-gen] coverage (181/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just True) 10 2 (29 mutations)
77.48 s
[really-safe-money-gen] coverage (182/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100} into DecimalLiteral (Just True) 100 2 (27 mutations)
77.88 s
[really-safe-money-gen] coverage (187/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 600 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (24 mutations)
77.97 s
[really-safe-money-gen] coverage (186/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 4 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (24 mutations)
78.10 s
[really-safe-money-gen] coverage (185/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just True) 1 0 (25 mutations)
78.62 s
[really-safe-money-gen] coverage (189/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 1} into DecimalLiteral (Just False) 2 0 (25 mutations)
78.65 s
[really-safe-money-gen] coverage (193/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise:1 (13 mutations)
78.67 s
[really-safe-money-gen] coverage (195/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 2 0 into decimalLiteral QuantisationFactor {unQuantisationFactor = 1} (24 mutations)
78.77 s
[really-safe-money-gen] coverage (188/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 20} into DecimalLiteral (Just False) 20 2 (29 mutations)
78.77 s
[really-safe-money-gen] coverage (190/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 20 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (24 mutations)
79.49 s
[really-safe-money-gen] coverage (194/1610): Money\.AccountSpec.DecimalLiteral.can turn decimalLiteral QuantisationFactor {unQuantisationFactor = 100000000} into DecimalLiteral (Just True) 500 8 (29 mutations)
79.61 s
[really-safe-money-gen] coverage (197/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just False) 200 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 100} (24 mutations)
79.70 s
[really-safe-money-gen] coverage (191/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.fails on this amount that is too precise (13 mutations)
79.77 s
[really-safe-money-gen] coverage (201/1610): Money\.AccountSpec.subtract.fails for minBound - 1 (4 mutations)
79.85 s
[really-safe-money-gen] coverage (203/1610): Money\.AccountSpec.subtract.fails for maxBound - minBound (4 mutations)
79.88 s
[really-safe-money-gen] coverage (204/1610): Money\.AccountSpec.multiply.fails for 3 * minBound (4 mutations)
79.89 s
[really-safe-money-gen] coverage (202/1610): Money\.AccountSpec.subtract.fails for minBound - maxBound (4 mutations)
79.90 s
[really-safe-money-gen] coverage (196/1610): Money\.AccountSpec.DecimalLiteral.can turn DecimalLiteral (Just True) 10 2 into decimalLiteral QuantisationFactor {unQuantisationFactor = 20} (24 mutations)
79.92 s
[really-safe-money-gen] coverage (192/1610): Money\.AccountSpec.DecimalLiteral.Account\.fromDecimalLiteral.produces valid factors (22 mutations)
80.16 s
[really-safe-money-gen] coverage (198/1610): Money\.AccountSpec.fromDouble.produces valid rational (28 mutations)
80.20 s
[really-safe-money-gen] coverage (200/1610): Money\.AccountSpec.subtract.matches what you would get with Integer, if nothing fails (16 mutations)
80.22 s
[really-safe-money-gen] coverage (205/1610): Money\.AccountSpec.multiply.is absorbed by 0 (15 mutations)
80.23 s
[really-safe-money-gen] coverage (206/1610): Money\.AccountSpec.multiply.produces valid amounts (15 mutations)
80.26 s
[really-safe-money-gen] coverage (199/1610): Money\.AccountSpec.fromDouble.roundtrips with toDouble back to double (30 mutations)
80.28 s
[really-safe-money-gen] coverage (207/1610): Money\.AccountSpec.multiply.succeeds for 3 * 6 (14 mutations)
80.69 s
[really-safe-money-gen] coverage (212/1610): Money\.AccountSpec.GenValid Account.genValid \:\: Gen Account.only generates valid 'Account's (1 mutations)
81.04 s
[really-safe-money-gen] coverage (211/1610): Money\.AccountSpec.multiply.fails for 2 * maxbound (4 mutations)
81.07 s
[really-safe-money-gen] coverage (210/1610): Money\.AccountSpec.multiply.matches what you would get with Integer, if nothing fails (15 mutations)
81.24 s
[really-safe-money-gen] coverage (208/1610): Money\.AccountSpec.multiply.has an identity\: 1 (15 mutations)
81.44 s
[really-safe-money-gen] coverage (213/1610): Money\.AccountSpec.fraction.Correctly fractions 101 with 1 % 100 (23 mutations)
81.50 s
[really-safe-money-gen] coverage (223/1610): Money\.MultiAmountSpec.zero.is valid (2 mutations)
81.87 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)
81.89 s
[really-safe-money-gen] coverage (219/1610): Money\.AccountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
82.06 s
[really-safe-money-gen] coverage (209/1610): Money\.AccountSpec.multiply.is distributive with add when both succeed (28 mutations)
82.47 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)
82.78 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)
82.78 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)
82.89 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)
82.98 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)
82.99 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)
83.03 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)
83.13 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)
83.29 s
[really-safe-money-gen] coverage (221/1610): Money\.MultiAmountSpec.fromAmount.produces valid amounts (16 mutations)
83.57 s
[really-safe-money-gen] coverage (230/1610): Money\.MultiAmountSpec.sum.produces valid amounts (23 mutations)
83.60 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)
83.88 s
[really-safe-money-gen] coverage (220/1610): Money\.AccountSpec.toRational.produces an invalid Rational with quantisation factor 0 (4 mutations)
83.88 s
[really-safe-money-gen] coverage (214/1610): Money\.AccountSpec.fraction.produces valid amounts (28 mutations)
84.03 s
[really-safe-money-gen] coverage (215/1610): Money\.AccountSpec.fraction.Produces a result that can be multiplied back (28 mutations)
84.04 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 (24 mutations)
84.04 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 (24 mutations)
84.22 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)
84.31 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)
84.31 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)
84.67 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)
84.86 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)
85.12 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)
85.27 s
[really-safe-money-gen] coverage (252/1610): Money\.MultiAmountSpec.add.has a left-identity\: zero (4 mutations)
85.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)
85.86 s
[really-safe-money-gen] coverage (256/1610): Money\.MultiAmountSpec.subtractAmount.produces valid amounts (24 mutations)
85.90 s
[really-safe-money-gen] coverage (255/1610): Money\.MultiAmountSpec.addAmount.produces valid amounts (19 mutations)
86.07 s
[really-safe-money-gen] coverage (258/1610): Money\.MultiAmountSpec.subtract.produces valid amounts (24 mutations)
86.08 s
[really-safe-money-gen] coverage (248/1610): Money\.MultiAmountSpec.convertAll.produces valid results when converting two currencies to one (13 mutations)
86.28 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)
86.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)
86.52 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)
86.53 s
[really-safe-money-gen] coverage (254/1610): Money\.MultiAmountSpec.add.is commutative (12 mutations)
86.54 s
[really-safe-money-gen] coverage (247/1610): Money\.MultiAmountSpec.convertAll.produces the right result in this example (8 mutations)
86.69 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)
86.90 s
[really-safe-money-gen] coverage (264/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * USD)"s (3 mutations)
86.94 s
[really-safe-money-gen] coverage (261/1610): Money\.MultiAmountSpec.lookupAmount.can find an added amount (4 mutations)
86.98 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)
87.11 s
[really-safe-money-gen] coverage (253/1610): Money\.MultiAmountSpec.add.is associative when both succeed (12 mutations)
87.13 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)
87.19 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)
87.21 s
[really-safe-money-gen] coverage (260/1610): Money\.MultiAmountSpec.lookupAmount.produces valid amounts (2 mutations)
87.22 s
[really-safe-money-gen] coverage (266/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"s (3 mutations)
87.40 s
[really-safe-money-gen] coverage (251/1610): Money\.MultiAmountSpec.add.has a right-identity\: zero (2 mutations)
87.74 s
[really-safe-money-gen] coverage (263/1610): Money\.AccountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (17 mutations)
87.74 s
[really-safe-money-gen] coverage (268/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"s (3 mutations)
87.89 s
[really-safe-money-gen] coverage (265/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(/=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"s (3 mutations)
88.12 s
[really-safe-money-gen] coverage (216/1610): Money\.AccountSpec.fraction.Correctly fractions 100 with 1 % 100 (23 mutations)
88.19 s
[really-safe-money-gen] coverage (269/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * USD)"s (3 mutations)
88.64 s
[really-safe-money-gen] coverage (270/1610): Money\.AccountOfSpec.USD.add.has a right-identity\: zero (17 mutations)
88.64 s
[really-safe-money-gen] coverage (267/1610): Money\.AccountOfSpec.USD.Eq (AccountOf * USD).(==) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is symmetric for "valid (AccountOf * USD)"s (3 mutations)
88.95 s
[really-safe-money-gen] coverage (262/1610): Money\.AccountOfSpec.USD.sum.produces valid amounts (17 mutations)
89.12 s
[really-safe-money-gen] coverage (271/1610): Money\.AccountOfSpec.USD.add.is associative when both succeed (16 mutations)
89.33 s
[really-safe-money-gen] coverage (273/1610): Money\.AccountOfSpec.USD.add.produces valid amounts (16 mutations)
89.36 s
[really-safe-money-gen] coverage (272/1610): Money\.AccountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (16 mutations)
89.38 s
[really-safe-money-gen] coverage (283/1610): Money\.AccountOfSpec.USD.Show (AccountOf * USD) and Read (AccountOf * USD).are implemented such that read \. show == id for valid values (3 mutations)
89.39 s
[really-safe-money-gen] coverage (259/1610): Money\.MultiAmountSpec.subtract.has a right-identity\: zero (2 mutations)
89.41 s
[really-safe-money-gen] coverage (249/1610): Money\.MultiAmountSpec.convertAll.does the same as 'convert' when there is only one amount (20 mutations)
89.49 s
[really-safe-money-gen] coverage (250/1610): Money\.MultiAmountSpec.add.produces valid amounts (23 mutations)
89.70 s
[really-safe-money-gen] coverage (287/1610): Money\.AccountOfSpec.USD.INR.convert.produces valid amounts (17 mutations)
89.76 s
[really-safe-money-gen] coverage (279/1610): Money\.AccountOfSpec.USD.fromAmount.produces valid AccountOfs (1 mutations)
89.79 s
[really-safe-money-gen] coverage (294/1610): Money\.AccountOfSpec.USD.fraction.Produces a result that can be multiplied back (28 mutations)
89.94 s
[really-safe-money-gen] coverage (296/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.produces valid accounts (10 mutations)
89.97 s
[really-safe-money-gen] coverage (288/1610): Money\.AccountOfSpec.USD.ADA.rate.produces valid amounts (11 mutations)
90.03 s
[really-safe-money-gen] coverage (293/1610): Money\.AccountOfSpec.USD.fraction.produces valid amounts (28 mutations)
90.05 s
[really-safe-money-gen] coverage (297/1610): Money\.AccountOfSpec.USD.GenValid (AccountOf * USD).genValid \:\: Gen (AccountOf * USD).only generates valid '(AccountOf * USD)'s (1 mutations)
90.12 s
[really-safe-money-gen] coverage (292/1610): Money\.AccountOfSpec.USD.abs.produces valid amounts (1 mutations)
90.23 s
[really-safe-money-gen] coverage (298/1610): Money\.AccountOfSpec.USD.fromDouble.produces valid rational (28 mutations)
90.57 s
[really-safe-money-gen] coverage (286/1610): Money\.AccountOfSpec.USD.INR.rate.produces valid amounts (11 mutations)
90.65 s
[really-safe-money-gen] coverage (275/1610): Money\.AccountOfSpec.USD.add.has a left-identity\: zero (17 mutations)
90.79 s
[really-safe-money-gen] coverage (295/1610): Money\.AccountOfSpec.USD.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (12 mutations)
90.88 s
[really-safe-money-gen] coverage (276/1610): Money\.AccountOfSpec.USD.fromAmountOf.produces valid AccountOfs (1 mutations)
90.96 s
[really-safe-money-gen] coverage (277/1610): Money\.AccountOfSpec.USD.toMinimalQuantisations.produces valid accounts (3 mutations)
91.35 s
[really-safe-money-gen] coverage (280/1610): Money\.AccountOfSpec.USD.negate.produces valid amounts (1 mutations)
91.41 s
[really-safe-money-gen] coverage (278/1610): Money\.AccountOfSpec.USD.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
91.73 s
[really-safe-money-gen] coverage (281/1610): Money\.AccountOfSpec.USD.USD.convert.produces valid amounts (17 mutations)
91.88 s
[really-safe-money-gen] coverage (282/1610): Money\.AccountOfSpec.USD.USD.rate.produces valid amounts (11 mutations)
92.05 s
[really-safe-money-gen] coverage (274/1610): Money\.AccountOfSpec.USD.add.is commutative (16 mutations)
92.11 s
[really-safe-money-gen] coverage (299/1610): Money\.AccountOfSpec.USD.fromDouble.roundtrips with toDouble (30 mutations)
92.21 s
[really-safe-money-gen] coverage (311/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * USD)"'s (3 mutations)
92.21 s
[really-safe-money-gen] coverage (313/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antisymmetric for "valid (AccountOf * USD)"'s (3 mutations)
92.21 s
[really-safe-money-gen] coverage (325/1610): Money\.AccountOfSpec.USD.format.produces valid strings (6 mutations)
92.22 s
[really-safe-money-gen] coverage (314/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
92.47 s
[really-safe-money-gen] coverage (326/1610): Money\.AccountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (16 mutations)
92.55 s
[really-safe-money-gen] coverage (328/1610): Money\.AccountOfSpec.USD.fromRational.roundtrips with toRational (23 mutations)
92.58 s
[really-safe-money-gen] coverage (327/1610): Money\.AccountOfSpec.USD.fromRational.produces valid rational (19 mutations)
92.65 s
[really-safe-money-gen] coverage (323/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * USD))"s (3 mutations)
92.70 s
[really-safe-money-gen] coverage (91/1610): Money\.ConversionRateSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
92.72 s
[really-safe-money-gen] coverage (330/1610): Money\.AccountOfSpec.USD.multiply.has an identity\: 1 (15 mutations)
92.74 s
[really-safe-money-gen] coverage (329/1610): Money\.AccountOfSpec.USD.multiply.is absorbed by 0 (15 mutations)
92.82 s
[really-safe-money-gen] coverage (324/1610): Money\.AccountOfSpec.USD.distribute.produces valid amounts (28 mutations)
92.87 s
[really-safe-money-gen] coverage (331/1610): Money\.AccountOfSpec.USD.multiply.produces valid amounts (15 mutations)
93.12 s
[really-safe-money-gen] coverage (333/1610): Money\.AccountOfSpec.USD.multiply.is distributive with add when both succeed (28 mutations)
93.33 s
[really-safe-money-gen] coverage (335/1610): Money\.AccountOfSpec.INR.fromAmount.produces valid AccountOfs (1 mutations)
93.40 s
[really-safe-money-gen] coverage (332/1610): Money\.AccountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (15 mutations)
93.40 s
[really-safe-money-gen] coverage (334/1610): Money\.AccountOfSpec.USD.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
93.53 s
[really-safe-money-gen] coverage (336/1610): Money\.AccountOfSpec.INR.USD.convert.produces valid amounts (17 mutations)
93.79 s
[really-safe-money-gen] coverage (339/1610): Money\.AccountOfSpec.INR.abs.produces valid amounts (1 mutations)
94.06 s
[really-safe-money-gen] coverage (93/1610): Money\.ConversionRateSpec.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
94.06 s
[really-safe-money-gen] coverage (316/1610): Money\.AccountOfSpec.USD.distribute.produces results that sum up to the greater whole (45 mutations)
94.16 s
[really-safe-money-gen] coverage (309/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
94.46 s
[really-safe-money-gen] coverage (340/1610): Money\.AccountOfSpec.INR.add.produces valid amounts (16 mutations)
94.67 s
[really-safe-money-gen] coverage (300/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * USD)"'s (3 mutations)
94.84 s
[really-safe-money-gen] coverage (310/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD)."max \:\: (AccountOf * USD -> AccountOf * USD -> AccountOf * USD)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * USD)"'s (3 mutations)
94.84 s
[really-safe-money-gen] coverage (322/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is symmetric for "valid (Distribution (AccountOf * USD))"s (3 mutations)
94.96 s
[really-safe-money-gen] coverage (308/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"'s (3 mutations)
94.97 s
[really-safe-money-gen] coverage (315/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD)."min \:\: (AccountOf * USD -> AccountOf * USD -> AccountOf * USD)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * USD)"'s (3 mutations)
95.02 s
[really-safe-money-gen] coverage (317/1610): Money\.AccountOfSpec.USD.distribute.Show (Distribution (AccountOf * USD)) and Read (Distribution (AccountOf * USD)).are implemented such that read \. show == id for valid values (3 mutations)
95.06 s
[really-safe-money-gen] coverage (321/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is transitive for "valid (Distribution (AccountOf * USD))"s (3 mutations)
95.35 s
[really-safe-money-gen] coverage (307/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antisymmetric for "valid (AccountOf * USD)"'s (3 mutations)
95.38 s
[really-safe-money-gen] coverage (306/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * USD)"'s (3 mutations)
95.42 s
[really-safe-money-gen] coverage (305/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * USD)"'s (3 mutations)
95.45 s
[really-safe-money-gen] coverage (312/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<=) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is reflexive for "valid (AccountOf * USD)"'s (3 mutations)
95.53 s
[really-safe-money-gen] coverage (285/1610): Money\.AccountOfSpec.USD.BTC.convert.produces valid amounts (17 mutations)
95.59 s
[really-safe-money-gen] coverage (320/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(==) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is reflexive for "valid (Distribution (AccountOf * USD))"s (3 mutations)
95.60 s
[really-safe-money-gen] coverage (343/1610): Money\.AccountOfSpec.INR.add.is commutative (16 mutations)
95.69 s
[really-safe-money-gen] coverage (301/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"'s (3 mutations)
95.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 (3 mutations)
96.04 s
[really-safe-money-gen] coverage (304/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(<) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is antireflexive for "valid (AccountOf * USD)"'s (3 mutations)
96.18 s
[really-safe-money-gen] coverage (318/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(/=) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * USD))"s (3 mutations)
96.32 s
[really-safe-money-gen] coverage (291/1610): Money\.AccountOfSpec.USD.CHF.rate.produces valid amounts (11 mutations)
96.36 s
[really-safe-money-gen] coverage (357/1610): Money\.AccountOfSpec.INR.distribute.produces valid amounts (28 mutations)
96.50 s
[really-safe-money-gen] coverage (319/1610): Money\.AccountOfSpec.USD.distribute.Eq (Distribution (AccountOf * USD)).(/=) \:\: (Distribution (AccountOf * USD)) -> (Distribution (AccountOf * USD)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * USD))"s (3 mutations)
96.77 s
[really-safe-money-gen] coverage (358/1610): Money\.AccountOfSpec.INR.fromAmountOf.produces valid AccountOfs (1 mutations)
96.93 s
[really-safe-money-gen] coverage (362/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antisymmetric for "valid (AccountOf * INR)"'s (3 mutations)
96.96 s
[really-safe-money-gen] coverage (359/1610): Money\.AccountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (17 mutations)
97.10 s
[really-safe-money-gen] coverage (360/1610): Money\.AccountOfSpec.INR.sum.produces valid amounts (17 mutations)
97.45 s
[really-safe-money-gen] coverage (363/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * INR)"'s (3 mutations)
97.64 s
[really-safe-money-gen] coverage (364/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"'s (3 mutations)
97.72 s
[really-safe-money-gen] coverage (289/1610): Money\.AccountOfSpec.USD.ADA.convert.produces valid amounts (17 mutations)
97.77 s
[really-safe-money-gen] coverage (365/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
97.85 s
[really-safe-money-gen] coverage (368/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * INR)"'s (3 mutations)
97.89 s
[really-safe-money-gen] coverage (366/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
97.95 s
[really-safe-money-gen] coverage (367/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"'s (3 mutations)
98.02 s
[really-safe-money-gen] coverage (290/1610): Money\.AccountOfSpec.USD.CHF.convert.produces valid amounts (17 mutations)
98.23 s
[really-safe-money-gen] coverage (370/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
98.34 s
[really-safe-money-gen] coverage (369/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."max \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * INR)"'s (3 mutations)
98.36 s
[really-safe-money-gen] coverage (302/1610): Money\.AccountOfSpec.USD.Ord (AccountOf * USD).(>) \:\: (AccountOf * USD) -> (AccountOf * USD) -> Bool.is transitive for "valid (AccountOf * USD)"'s (3 mutations)
98.47 s
[really-safe-money-gen] coverage (373/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"'s (3 mutations)
98.51 s
[really-safe-money-gen] coverage (351/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(/=) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * INR))"s (3 mutations)
98.59 s
[really-safe-money-gen] coverage (349/1610): Money\.AccountOfSpec.INR.distribute.produces results that sum up to the greater whole (45 mutations)
98.61 s
[really-safe-money-gen] coverage (347/1610): Money\.AccountOfSpec.INR.fraction.produces valid amounts (28 mutations)
98.62 s
[really-safe-money-gen] coverage (342/1610): Money\.AccountOfSpec.INR.add.has a left-identity\: zero (17 mutations)
98.72 s
[really-safe-money-gen] coverage (356/1610): Money\.AccountOfSpec.INR.distribute.Show (Distribution (AccountOf * INR)) and Read (Distribution (AccountOf * INR)).are implemented such that read \. show == id for valid values (3 mutations)
98.91 s
[really-safe-money-gen] coverage (346/1610): Money\.AccountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (16 mutations)
99.12 s
[really-safe-money-gen] coverage (348/1610): Money\.AccountOfSpec.INR.fraction.Produces a result that can be multiplied back (28 mutations)
99.16 s
[really-safe-money-gen] coverage (371/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * INR)"'s (3 mutations)
99.28 s
[really-safe-money-gen] coverage (345/1610): Money\.AccountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (16 mutations)
99.41 s
[really-safe-money-gen] coverage (350/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(/=) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * INR))"s (3 mutations)
99.70 s
[really-safe-money-gen] coverage (355/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is symmetric for "valid (Distribution (AccountOf * INR))"s (3 mutations)
99.88 s
[really-safe-money-gen] coverage (354/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is reflexive for "valid (Distribution (AccountOf * INR))"s (3 mutations)
99.90 s
[really-safe-money-gen] coverage (352/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is transitive for "valid (Distribution (AccountOf * INR))"s (3 mutations)
100.07 s
[really-safe-money-gen] coverage (353/1610): Money\.AccountOfSpec.INR.distribute.Eq (Distribution (AccountOf * INR)).(==) \:\: (Distribution (AccountOf * INR)) -> (Distribution (AccountOf * INR)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * INR))"s (3 mutations)
100.27 s
[really-safe-money-gen] coverage (374/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"'s (3 mutations)
100.44 s
[really-safe-money-gen] coverage (361/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR)."min \:\: (AccountOf * INR -> AccountOf * INR -> AccountOf * INR)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * INR)"'s (3 mutations)
100.51 s
[really-safe-money-gen] coverage (344/1610): Money\.AccountOfSpec.INR.add.has a right-identity\: zero (17 mutations)
100.63 s
[really-safe-money-gen] coverage (341/1610): Money\.AccountOfSpec.INR.add.is associative when both succeed (16 mutations)
100.68 s
[really-safe-money-gen] coverage (372/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(>) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"'s (3 mutations)
100.72 s
[really-safe-money-gen] coverage (379/1610): Money\.AccountOfSpec.INR.multiply.is distributive with add when both succeed (28 mutations)
100.73 s
[really-safe-money-gen] coverage (377/1610): Money\.AccountOfSpec.INR.CHF.rate.produces valid amounts (11 mutations)
100.89 s
[really-safe-money-gen] coverage (284/1610): Money\.AccountOfSpec.USD.BTC.rate.produces valid amounts (11 mutations)
100.96 s
[really-safe-money-gen] coverage (385/1610): Money\.AccountOfSpec.INR.Show (AccountOf * INR) and Read (AccountOf * INR).are implemented such that read \. show == id for valid values (3 mutations)
101.21 s
[really-safe-money-gen] coverage (380/1610): Money\.AccountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (15 mutations)
101.21 s
[really-safe-money-gen] coverage (381/1610): Money\.AccountOfSpec.INR.multiply.is absorbed by 0 (15 mutations)
101.38 s
[really-safe-money-gen] coverage (376/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * INR)"'s (3 mutations)
101.39 s
[really-safe-money-gen] coverage (378/1610): Money\.AccountOfSpec.INR.CHF.convert.produces valid amounts (17 mutations)
101.41 s
[really-safe-money-gen] coverage (387/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.produces valid accounts (10 mutations)
101.44 s
[really-safe-money-gen] coverage (375/1610): Money\.AccountOfSpec.INR.Ord (AccountOf * INR).(<=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antisymmetric for "valid (AccountOf * INR)"'s (3 mutations)
101.53 s
[really-safe-money-gen] coverage (384/1610): Money\.AccountOfSpec.INR.negate.produces valid amounts (1 mutations)
101.58 s
[really-safe-money-gen] coverage (386/1610): Money\.AccountOfSpec.INR.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (12 mutations)
101.78 s
[really-safe-money-gen] coverage (383/1610): Money\.AccountOfSpec.INR.multiply.has an identity\: 1 (15 mutations)
101.92 s
[really-safe-money-gen] coverage (388/1610): Money\.AccountOfSpec.INR.fromRational.produces valid rational (19 mutations)
102.05 s
[really-safe-money-gen] coverage (382/1610): Money\.AccountOfSpec.INR.multiply.produces valid amounts (15 mutations)
102.18 s
[really-safe-money-gen] coverage (391/1610): Money\.AccountOfSpec.INR.BTC.rate.produces valid amounts (11 mutations)
102.34 s
[really-safe-money-gen] coverage (392/1610): Money\.AccountOfSpec.INR.BTC.convert.produces valid amounts (17 mutations)
102.56 s
[really-safe-money-gen] coverage (389/1610): Money\.AccountOfSpec.INR.fromRational.roundtrips with toRational (23 mutations)
102.74 s
[really-safe-money-gen] coverage (395/1610): Money\.AccountOfSpec.INR.fromDouble.produces valid rational (28 mutations)
102.74 s
[really-safe-money-gen] coverage (393/1610): Money\.AccountOfSpec.INR.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
102.93 s
[really-safe-money-gen] coverage (396/1610): Money\.AccountOfSpec.INR.ADA.convert.produces valid amounts (17 mutations)
103.08 s
[really-safe-money-gen] coverage (399/1610): Money\.AccountOfSpec.INR.toMinimalQuantisations.produces valid accounts (3 mutations)
103.28 s
[really-safe-money-gen] coverage (398/1610): Money\.AccountOfSpec.INR.format.produces valid strings (6 mutations)
103.33 s
[really-safe-money-gen] coverage (400/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(/=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * INR)"s (3 mutations)
103.40 s
[really-safe-money-gen] coverage (402/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is reflexive for "valid (AccountOf * INR)"s (3 mutations)
103.43 s
[really-safe-money-gen] coverage (401/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(/=) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is antireflexive for "valid (AccountOf * INR)"s (3 mutations)
103.50 s
[really-safe-money-gen] coverage (403/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is symmetric for "valid (AccountOf * INR)"s (3 mutations)
103.50 s
[really-safe-money-gen] coverage (404/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is transitive for "valid (AccountOf * INR)"s (3 mutations)
103.65 s
[really-safe-money-gen] coverage (405/1610): Money\.AccountOfSpec.INR.Eq (AccountOf * INR).(==) \:\: (AccountOf * INR) -> (AccountOf * INR) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * INR)"s (3 mutations)
103.72 s
[really-safe-money-gen] coverage (406/1610): Money\.AccountOfSpec.INR.INR.convert.produces valid amounts (17 mutations)
103.90 s
[really-safe-money-gen] coverage (338/1610): Money\.AccountOfSpec.INR.GenValid (AccountOf * INR).genValid \:\: Gen (AccountOf * INR).only generates valid '(AccountOf * INR)'s (1 mutations)
104.02 s
[really-safe-money-gen] coverage (407/1610): Money\.AccountOfSpec.INR.INR.rate.produces valid amounts (11 mutations)
104.04 s
[really-safe-money-gen] coverage (410/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.produces valid accounts (10 mutations)
104.09 s
[really-safe-money-gen] coverage (337/1610): Money\.AccountOfSpec.INR.USD.rate.produces valid amounts (11 mutations)
104.13 s
[really-safe-money-gen] coverage (412/1610): Money\.AccountOfSpec.CHF.multiply.is absorbed by 0 (15 mutations)
104.13 s
[really-safe-money-gen] coverage (409/1610): Money\.AccountOfSpec.CHF.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (12 mutations)
104.20 s
[really-safe-money-gen] coverage (413/1610): Money\.AccountOfSpec.CHF.multiply.is distributive with add when both succeed (28 mutations)
104.33 s
[really-safe-money-gen] coverage (414/1610): Money\.AccountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (15 mutations)
104.55 s
[really-safe-money-gen] coverage (411/1610): Money\.AccountOfSpec.CHF.multiply.produces valid amounts (15 mutations)
104.62 s
[really-safe-money-gen] coverage (416/1610): Money\.AccountOfSpec.CHF.distribute.produces valid amounts (28 mutations)
104.73 s
[really-safe-money-gen] coverage (417/1610): Money\.AccountOfSpec.CHF.distribute.produces results that sum up to the greater whole (45 mutations)
104.89 s
[really-safe-money-gen] coverage (418/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(/=) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
105.03 s
[really-safe-money-gen] coverage (419/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(/=) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
105.21 s
[really-safe-money-gen] coverage (415/1610): Money\.AccountOfSpec.CHF.multiply.has an identity\: 1 (15 mutations)
105.39 s
[really-safe-money-gen] coverage (426/1610): Money\.AccountOfSpec.CHF.sum.produces valid amounts (17 mutations)
105.51 s
[really-safe-money-gen] coverage (420/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is reflexive for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
105.70 s
[really-safe-money-gen] coverage (394/1610): Money\.AccountOfSpec.INR.fromDouble.roundtrips with toDouble (30 mutations)
105.78 s
[really-safe-money-gen] coverage (431/1610): Money\.AccountOfSpec.CHF.BTC.convert.produces valid amounts (17 mutations)
105.97 s
[really-safe-money-gen] coverage (433/1610): Money\.AccountOfSpec.CHF.toMinimalQuantisations.produces valid accounts (3 mutations)
106.00 s
[really-safe-money-gen] coverage (432/1610): Money\.AccountOfSpec.CHF.BTC.rate.produces valid amounts (11 mutations)
106.01 s
[really-safe-money-gen] coverage (435/1610): Money\.AccountOfSpec.CHF.fraction.produces valid amounts (28 mutations)
106.04 s
[really-safe-money-gen] coverage (397/1610): Money\.AccountOfSpec.INR.ADA.rate.produces valid amounts (11 mutations)
106.25 s
[really-safe-money-gen] coverage (436/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * CHF)"s (3 mutations)
106.28 s
[really-safe-money-gen] coverage (424/1610): Money\.AccountOfSpec.CHF.distribute.Show (Distribution (AccountOf * CHF)) and Read (Distribution (AccountOf * CHF)).are implemented such that read \. show == id for valid values (3 mutations)
106.37 s
[really-safe-money-gen] coverage (437/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"s (3 mutations)
106.39 s
[really-safe-money-gen] coverage (390/1610): Money\.AccountOfSpec.INR.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
106.60 s
[really-safe-money-gen] coverage (440/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(/=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * CHF)"s (3 mutations)
106.72 s
[really-safe-money-gen] coverage (442/1610): Money\.AccountOfSpec.CHF.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
106.72 s
[really-safe-money-gen] coverage (441/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(/=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"s (3 mutations)
106.76 s
[really-safe-money-gen] coverage (444/1610): Money\.AccountOfSpec.CHF.negate.produces valid amounts (1 mutations)
106.76 s
[really-safe-money-gen] coverage (443/1610): Money\.AccountOfSpec.CHF.fromAmountOf.produces valid AccountOfs (1 mutations)
106.80 s
[really-safe-money-gen] coverage (445/1610): Money\.AccountOfSpec.CHF.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
106.90 s
[really-safe-money-gen] coverage (439/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is symmetric for "valid (AccountOf * CHF)"s (3 mutations)
107.19 s
[really-safe-money-gen] coverage (446/1610): Money\.AccountOfSpec.CHF.format.produces valid strings (6 mutations)
107.30 s
[really-safe-money-gen] coverage (428/1610): Money\.AccountOfSpec.CHF.abs.produces valid amounts (1 mutations)
107.36 s
[really-safe-money-gen] coverage (438/1610): Money\.AccountOfSpec.CHF.Eq (AccountOf * CHF).(==) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"s (3 mutations)
107.38 s
[really-safe-money-gen] coverage (422/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is symmetric for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
107.61 s
[really-safe-money-gen] coverage (408/1610): Money\.AccountOfSpec.CHF.fromAmount.produces valid AccountOfs (1 mutations)
107.70 s
[really-safe-money-gen] coverage (449/1610): Money\.AccountOfSpec.CHF.fromDouble.produces valid rational (28 mutations)
107.98 s
[really-safe-money-gen] coverage (447/1610): Money\.AccountOfSpec.CHF.fromRational.produces valid rational (19 mutations)
108.02 s
[really-safe-money-gen] coverage (448/1610): Money\.AccountOfSpec.CHF.fromRational.roundtrips with toRational (23 mutations)
108.21 s
[really-safe-money-gen] coverage (450/1610): Money\.AccountOfSpec.CHF.fromDouble.roundtrips with toDouble (30 mutations)
108.42 s
[really-safe-money-gen] coverage (451/1610): Money\.AccountOfSpec.CHF.ADA.convert.produces valid amounts (17 mutations)
108.49 s
[really-safe-money-gen] coverage (452/1610): Money\.AccountOfSpec.CHF.ADA.rate.produces valid amounts (11 mutations)
108.66 s
[really-safe-money-gen] coverage (455/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
108.67 s
[really-safe-money-gen] coverage (453/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF)."min \:\: (AccountOf * CHF -> AccountOf * CHF -> AccountOf * CHF)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * CHF)"'s (3 mutations)
108.68 s
[really-safe-money-gen] coverage (454/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * CHF)"'s (3 mutations)
108.73 s
[really-safe-money-gen] coverage (456/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"'s (3 mutations)
108.95 s
[really-safe-money-gen] coverage (425/1610): Money\.AccountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (17 mutations)
109.02 s
[really-safe-money-gen] coverage (423/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
109.03 s
[really-safe-money-gen] coverage (427/1610): Money\.AccountOfSpec.CHF.Show (AccountOf * CHF) and Read (AccountOf * CHF).are implemented such that read \. show == id for valid values (3 mutations)
109.15 s
[really-safe-money-gen] coverage (463/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antireflexive for "valid (AccountOf * CHF)"'s (3 mutations)
109.21 s
[really-safe-money-gen] coverage (461/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF)."max \:\: (AccountOf * CHF -> AccountOf * CHF -> AccountOf * CHF)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * CHF)"'s (3 mutations)
109.35 s
[really-safe-money-gen] coverage (467/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antisymmetric for "valid (AccountOf * CHF)"'s (3 mutations)
109.40 s
[really-safe-money-gen] coverage (471/1610): Money\.AccountOfSpec.CHF.CHF.rate.produces valid amounts (11 mutations)
109.45 s
[really-safe-money-gen] coverage (465/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * CHF)"'s (3 mutations)
109.47 s
[really-safe-money-gen] coverage (469/1610): Money\.AccountOfSpec.CHF.GenValid (AccountOf * CHF).genValid \:\: Gen (AccountOf * CHF).only generates valid '(AccountOf * CHF)'s (1 mutations)
109.51 s
[really-safe-money-gen] coverage (470/1610): Money\.AccountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (16 mutations)
109.66 s
[really-safe-money-gen] coverage (184/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.produces valid decimal literals (32 mutations)
109.68 s
[really-safe-money-gen] coverage (464/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
109.92 s
[really-safe-money-gen] coverage (468/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
110.00 s
[really-safe-money-gen] coverage (462/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * CHF)"'s (3 mutations)
110.12 s
[really-safe-money-gen] coverage (472/1610): Money\.AccountOfSpec.CHF.CHF.convert.produces valid amounts (17 mutations)
110.12 s
[really-safe-money-gen] coverage (482/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (12 mutations)
110.38 s
[really-safe-money-gen] coverage (473/1610): Money\.AccountOfSpec.CHF.add.is associative when both succeed (16 mutations)
110.54 s
[really-safe-money-gen] coverage (481/1610): Money\.AccountOfSpec.ADA.fromMinimalQuantisations.produces valid accounts (10 mutations)
110.84 s
[really-safe-money-gen] coverage (466/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(>=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"'s (3 mutations)
110.84 s
[really-safe-money-gen] coverage (479/1610): Money\.AccountOfSpec.CHF.INR.convert.produces valid amounts (17 mutations)
111.07 s
[really-safe-money-gen] coverage (478/1610): Money\.AccountOfSpec.CHF.add.produces valid amounts (16 mutations)
111.32 s
[really-safe-money-gen] coverage (460/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is reflexive for "valid (AccountOf * CHF)"'s (3 mutations)
111.36 s
[really-safe-money-gen] coverage (477/1610): Money\.AccountOfSpec.CHF.add.is commutative (16 mutations)
111.44 s
[really-safe-money-gen] coverage (480/1610): Money\.AccountOfSpec.CHF.INR.rate.produces valid amounts (11 mutations)
111.50 s
[really-safe-money-gen] coverage (486/1610): Money\.AccountOfSpec.ADA.fromRational.roundtrips with toRational (23 mutations)
111.55 s
[really-safe-money-gen] coverage (485/1610): Money\.AccountOfSpec.ADA.fromRational.produces valid rational (19 mutations)
111.61 s
[really-safe-money-gen] coverage (459/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is transitive for "valid (AccountOf * CHF)"'s (3 mutations)
111.83 s
[really-safe-money-gen] coverage (483/1610): Money\.AccountOfSpec.ADA.fromDouble.produces valid rational (28 mutations)
111.86 s
[really-safe-money-gen] coverage (430/1610): Money\.AccountOfSpec.CHF.USD.convert.produces valid amounts (17 mutations)
111.87 s
[really-safe-money-gen] coverage (484/1610): Money\.AccountOfSpec.ADA.fromDouble.roundtrips with toDouble (30 mutations)
112.12 s
[really-safe-money-gen] coverage (474/1610): Money\.AccountOfSpec.CHF.add.has a left-identity\: zero (17 mutations)
112.13 s
[really-safe-money-gen] coverage (429/1610): Money\.AccountOfSpec.CHF.USD.rate.produces valid amounts (11 mutations)
112.21 s
[really-safe-money-gen] coverage (475/1610): Money\.AccountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (16 mutations)
112.33 s
[really-safe-money-gen] coverage (434/1610): Money\.AccountOfSpec.CHF.fraction.Produces a result that can be multiplied back (28 mutations)
112.34 s
[really-safe-money-gen] coverage (487/1610): Money\.AccountOfSpec.ADA.Show (AccountOf * ADA) and Read (AccountOf * ADA).are implemented such that read \. show == id for valid values (3 mutations)
112.41 s
[really-safe-money-gen] coverage (476/1610): Money\.AccountOfSpec.CHF.add.has a right-identity\: zero (17 mutations)
112.43 s
[really-safe-money-gen] coverage (458/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is antisymmetric for "valid (AccountOf * CHF)"'s (3 mutations)
112.50 s
[really-safe-money-gen] coverage (488/1610): Money\.AccountOfSpec.ADA.fraction.Produces a result that can be multiplied back (28 mutations)
112.61 s
[really-safe-money-gen] coverage (489/1610): Money\.AccountOfSpec.ADA.fraction.produces valid amounts (28 mutations)
112.83 s
[really-safe-money-gen] coverage (490/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antisymmetric for "valid (AccountOf * ADA)"'s (3 mutations)
112.85 s
[really-safe-money-gen] coverage (495/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * ADA)"'s (3 mutations)
113.00 s
[really-safe-money-gen] coverage (498/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA)."min \:\: (AccountOf * ADA -> AccountOf * ADA -> AccountOf * ADA)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * ADA)"'s (3 mutations)
113.01 s
[really-safe-money-gen] coverage (497/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"'s (3 mutations)
113.30 s
[really-safe-money-gen] coverage (499/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"'s (3 mutations)
113.43 s
[really-safe-money-gen] coverage (496/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
113.70 s
[really-safe-money-gen] coverage (500/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
113.70 s
[really-safe-money-gen] coverage (501/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * ADA)"'s (3 mutations)
113.99 s
[really-safe-money-gen] coverage (502/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA)."max \:\: (AccountOf * ADA -> AccountOf * ADA -> AccountOf * ADA)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * ADA)"'s (3 mutations)
114.22 s
[really-safe-money-gen] coverage (503/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * ADA)"'s (3 mutations)
114.22 s
[really-safe-money-gen] coverage (457/1610): Money\.AccountOfSpec.CHF.Ord (AccountOf * CHF).(<=) \:\: (AccountOf * CHF) -> (AccountOf * CHF) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * CHF)"'s (3 mutations)
114.39 s
[really-safe-money-gen] coverage (505/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"'s (3 mutations)
114.41 s
[really-safe-money-gen] coverage (504/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
114.49 s
[really-safe-money-gen] coverage (506/1610): Money\.AccountOfSpec.ADA.fromAmountOf.produces valid AccountOfs (1 mutations)
114.57 s
[really-safe-money-gen] coverage (507/1610): Money\.AccountOfSpec.ADA.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
114.58 s
[really-safe-money-gen] coverage (508/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is reflexive for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
114.73 s
[really-safe-money-gen] coverage (509/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is transitive for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
114.75 s
[really-safe-money-gen] coverage (491/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"'s (3 mutations)
114.99 s
[really-safe-money-gen] coverage (510/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is symmetric for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
115.03 s
[really-safe-money-gen] coverage (513/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(/=) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
115.18 s
[really-safe-money-gen] coverage (492/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"'s (3 mutations)
115.24 s
[really-safe-money-gen] coverage (493/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(<=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * ADA)"'s (3 mutations)
115.32 s
[really-safe-money-gen] coverage (421/1610): Money\.AccountOfSpec.CHF.distribute.Eq (Distribution (AccountOf * CHF)).(==) \:\: (Distribution (AccountOf * CHF)) -> (Distribution (AccountOf * CHF)) -> Bool.is transitive for "valid (Distribution (AccountOf * CHF))"s (3 mutations)
115.35 s
[really-safe-money-gen] coverage (515/1610): Money\.AccountOfSpec.ADA.distribute.produces valid amounts (28 mutations)
115.37 s
[really-safe-money-gen] coverage (494/1610): Money\.AccountOfSpec.ADA.Ord (AccountOf * ADA).(>=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antisymmetric for "valid (AccountOf * ADA)"'s (3 mutations)
115.39 s
[really-safe-money-gen] coverage (516/1610): Money\.AccountOfSpec.ADA.distribute.produces results that sum up to the greater whole (45 mutations)
115.54 s
[really-safe-money-gen] coverage (517/1610): Money\.AccountOfSpec.ADA.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
115.70 s
[really-safe-money-gen] coverage (518/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(/=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is antireflexive for "valid (AccountOf * ADA)"s (3 mutations)
115.77 s
[really-safe-money-gen] coverage (519/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(/=) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * ADA)"s (3 mutations)
115.89 s
[really-safe-money-gen] coverage (521/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is transitive for "valid (AccountOf * ADA)"s (3 mutations)
115.98 s
[really-safe-money-gen] coverage (520/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is reflexive for "valid (AccountOf * ADA)"s (3 mutations)
116.21 s
[really-safe-money-gen] coverage (522/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is symmetric for "valid (AccountOf * ADA)"s (3 mutations)
116.31 s
[really-safe-money-gen] coverage (512/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(/=) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
116.57 s
[really-safe-money-gen] coverage (524/1610): Money\.AccountOfSpec.ADA.abs.produces valid amounts (1 mutations)
116.59 s
[really-safe-money-gen] coverage (514/1610): Money\.AccountOfSpec.ADA.distribute.Show (Distribution (AccountOf * ADA)) and Read (Distribution (AccountOf * ADA)).are implemented such that read \. show == id for valid values (3 mutations)
116.84 s
[really-safe-money-gen] coverage (525/1610): Money\.AccountOfSpec.ADA.format.produces valid strings (6 mutations)
117.05 s
[really-safe-money-gen] coverage (523/1610): Money\.AccountOfSpec.ADA.Eq (AccountOf * ADA).(==) \:\: (AccountOf * ADA) -> (AccountOf * ADA) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * ADA)"s (3 mutations)
117.07 s
[really-safe-money-gen] coverage (183/1610): Money\.AccountSpec.DecimalLiteral.Account\.toDecimalLiteral.roundtrips with Account\.fromDecimalLiteral (55 mutations)
117.11 s
[really-safe-money-gen] coverage (527/1610): Money\.AccountOfSpec.ADA.negate.produces valid amounts (1 mutations)
117.25 s
[really-safe-money-gen] coverage (528/1610): Money\.AccountOfSpec.ADA.CHF.rate.produces valid amounts (11 mutations)
117.25 s
[really-safe-money-gen] coverage (537/1610): Money\.AccountOfSpec.ADA.ADA.rate.produces valid amounts (11 mutations)
117.26 s
[really-safe-money-gen] coverage (535/1610): Money\.AccountOfSpec.ADA.toMinimalQuantisations.produces valid accounts (3 mutations)
117.46 s
[really-safe-money-gen] coverage (533/1610): Money\.AccountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (17 mutations)
117.54 s
[really-safe-money-gen] coverage (530/1610): Money\.AccountOfSpec.ADA.INR.rate.produces valid amounts (11 mutations)
117.57 s
[really-safe-money-gen] coverage (526/1610): Money\.AccountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (16 mutations)
117.67 s
[really-safe-money-gen] coverage (534/1610): Money\.AccountOfSpec.ADA.sum.produces valid amounts (17 mutations)
117.81 s
[really-safe-money-gen] coverage (536/1610): Money\.AccountOfSpec.ADA.ADA.convert.produces valid amounts (17 mutations)
117.84 s
[really-safe-money-gen] coverage (529/1610): Money\.AccountOfSpec.ADA.CHF.convert.produces valid amounts (17 mutations)
117.99 s
[really-safe-money-gen] coverage (531/1610): Money\.AccountOfSpec.ADA.INR.convert.produces valid amounts (17 mutations)
118.13 s
[really-safe-money-gen] coverage (548/1610): Money\.AccountOfSpec.ADA.multiply.is distributive with add when both succeed (28 mutations)
118.16 s
[really-safe-money-gen] coverage (541/1610): Money\.AccountOfSpec.ADA.add.is associative when both succeed (16 mutations)
118.18 s
[really-safe-money-gen] coverage (550/1610): Money\.AccountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (15 mutations)
118.21 s
[really-safe-money-gen] coverage (532/1610): Money\.AccountOfSpec.ADA.fromAmount.produces valid AccountOfs (1 mutations)
118.21 s
[really-safe-money-gen] coverage (511/1610): Money\.AccountOfSpec.ADA.distribute.Eq (Distribution (AccountOf * ADA)).(==) \:\: (Distribution (AccountOf * ADA)) -> (Distribution (AccountOf * ADA)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * ADA))"s (3 mutations)
118.41 s
[really-safe-money-gen] coverage (549/1610): Money\.AccountOfSpec.ADA.multiply.has an identity\: 1 (15 mutations)
118.60 s
[really-safe-money-gen] coverage (551/1610): Money\.AccountOfSpec.ADA.multiply.is absorbed by 0 (15 mutations)
118.62 s
[really-safe-money-gen] coverage (547/1610): Money\.AccountOfSpec.ADA.multiply.produces valid amounts (15 mutations)
118.83 s
[really-safe-money-gen] coverage (546/1610): Money\.AccountOfSpec.ADA.BTC.rate.produces valid amounts (11 mutations)
118.98 s
[really-safe-money-gen] coverage (545/1610): Money\.AccountOfSpec.ADA.BTC.convert.produces valid amounts (17 mutations)
119.04 s
[really-safe-money-gen] coverage (543/1610): Money\.AccountOfSpec.ADA.add.has a right-identity\: zero (17 mutations)
119.05 s
[really-safe-money-gen] coverage (542/1610): Money\.AccountOfSpec.ADA.add.has a left-identity\: zero (17 mutations)
119.39 s
[really-safe-money-gen] coverage (555/1610): Money\.AccountOfSpec.BTC.add.produces valid amounts (16 mutations)
119.49 s
[really-safe-money-gen] coverage (556/1610): Money\.AccountOfSpec.BTC.add.has a left-identity\: zero (17 mutations)
119.82 s
[really-safe-money-gen] coverage (557/1610): Money\.AccountOfSpec.BTC.add.has a right-identity\: zero (17 mutations)
119.96 s
[really-safe-money-gen] coverage (559/1610): Money\.AccountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (16 mutations)
119.99 s
[really-safe-money-gen] coverage (552/1610): Money\.AccountOfSpec.ADA.USD.convert.produces valid amounts (17 mutations)
120.05 s
[really-safe-money-gen] coverage (558/1610): Money\.AccountOfSpec.BTC.add.is associative when both succeed (16 mutations)
120.16 s
[really-safe-money-gen] coverage (560/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == GT) for "valid (AccountOf * BTC)"'s (3 mutations)
120.21 s
[really-safe-money-gen] coverage (553/1610): Money\.AccountOfSpec.ADA.USD.rate.produces valid amounts (11 mutations)
120.25 s
[really-safe-money-gen] coverage (554/1610): Money\.AccountOfSpec.BTC.add.is commutative (16 mutations)
120.41 s
[really-safe-money-gen] coverage (540/1610): Money\.AccountOfSpec.ADA.add.is commutative (16 mutations)
120.48 s
[really-safe-money-gen] coverage (539/1610): Money\.AccountOfSpec.ADA.add.produces valid amounts (16 mutations)
120.52 s
[really-safe-money-gen] coverage (538/1610): Money\.AccountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (16 mutations)
120.63 s
[really-safe-money-gen] coverage (544/1610): Money\.AccountOfSpec.ADA.GenValid (AccountOf * ADA).genValid \:\: Gen (AccountOf * ADA).only generates valid '(AccountOf * ADA)'s (1 mutations)
120.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 (3 mutations)
120.76 s
[really-safe-money-gen] coverage (564/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antisymmetric for "valid (AccountOf * BTC)"'s (3 mutations)
120.95 s
[really-safe-money-gen] coverage (566/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
121.01 s
[really-safe-money-gen] coverage (567/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
121.07 s
[really-safe-money-gen] coverage (561/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
121.08 s
[really-safe-money-gen] coverage (563/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (AccountOf * BTC)"'s (3 mutations)
121.13 s
[really-safe-money-gen] coverage (568/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (AccountOf * BTC)"'s (3 mutations)
121.17 s
[really-safe-money-gen] coverage (569/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(<) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"'s (3 mutations)
121.40 s
[really-safe-money-gen] coverage (570/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC)."min \:\: (AccountOf * BTC -> AccountOf * BTC -> AccountOf * BTC)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (AccountOf * BTC)"'s (3 mutations)
121.49 s
[really-safe-money-gen] coverage (571/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC)."max \:\: (AccountOf * BTC -> AccountOf * BTC -> AccountOf * BTC)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (AccountOf * BTC)"'s (3 mutations)
121.57 s
[really-safe-money-gen] coverage (572/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antisymmetric for "valid (AccountOf * BTC)"'s (3 mutations)
121.66 s
[really-safe-money-gen] coverage (588/1610): Money\.AccountOfSpec.BTC.negate.produces valid amounts (1 mutations)
121.80 s
[really-safe-money-gen] coverage (589/1610): Money\.AccountOfSpec.BTC.fromAmountOf.produces valid AccountOfs (1 mutations)
121.87 s
[really-safe-money-gen] coverage (590/1610): Money\.AccountOfSpec.BTC.multiply.produces valid amounts (15 mutations)
121.90 s
[really-safe-money-gen] coverage (591/1610): Money\.AccountOfSpec.BTC.multiply.is distributive with add when both succeed (28 mutations)
122.24 s
[really-safe-money-gen] coverage (592/1610): Money\.AccountOfSpec.BTC.multiply.is absorbed by 0 (15 mutations)
122.28 s
[really-safe-money-gen] coverage (593/1610): Money\.AccountOfSpec.BTC.multiply.has an identity\: 1 (15 mutations)
122.70 s
[really-safe-money-gen] coverage (594/1610): Money\.AccountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (15 mutations)
122.78 s
[really-safe-money-gen] coverage (595/1610): Money\.AccountOfSpec.BTC.sum.produces valid amounts (17 mutations)
122.89 s
[really-safe-money-gen] coverage (596/1610): Money\.AccountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (17 mutations)
122.91 s
[really-safe-money-gen] coverage (597/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"s (3 mutations)
122.97 s
[really-safe-money-gen] coverage (598/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"s (3 mutations)
123.07 s
[really-safe-money-gen] coverage (599/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (AccountOf * BTC)"s (3 mutations)
123.17 s
[really-safe-money-gen] coverage (600/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(==) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is symmetric for "valid (AccountOf * BTC)"s (3 mutations)
123.28 s
[really-safe-money-gen] coverage (602/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(/=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (AccountOf * BTC)"s (3 mutations)
123.33 s
[really-safe-money-gen] coverage (601/1610): Money\.AccountOfSpec.BTC.Eq (AccountOf * BTC).(/=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"s (3 mutations)
123.38 s
[really-safe-money-gen] coverage (603/1610): Money\.AccountOfSpec.BTC.format.produces valid strings (6 mutations)
123.56 s
[really-safe-money-gen] coverage (604/1610): Money\.AccountOfSpec.BTC.USD.convert.produces valid amounts (17 mutations)
123.62 s
[really-safe-money-gen] coverage (605/1610): Money\.AccountOfSpec.BTC.USD.rate.produces valid amounts (11 mutations)
123.68 s
[really-safe-money-gen] coverage (606/1610): Money\.AccountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (16 mutations)
123.81 s
[really-safe-money-gen] coverage (607/1610): Money\.AccountOfSpec.BTC.ADA.convert.produces valid amounts (17 mutations)
123.89 s
[really-safe-money-gen] coverage (609/1610): Money\.AccountOfSpec.BTC.fromRational.produces valid rational (19 mutations)
123.90 s
[really-safe-money-gen] coverage (608/1610): Money\.AccountOfSpec.BTC.ADA.rate.produces valid amounts (11 mutations)
124.07 s
[really-safe-money-gen] coverage (610/1610): Money\.AccountOfSpec.BTC.fromRational.roundtrips with toRational (23 mutations)
124.08 s
[really-safe-money-gen] coverage (611/1610): Money\.AccountOfSpec.BTC.Show (AccountOf * BTC) and Read (AccountOf * BTC).are implemented such that read \. show == id for valid values (3 mutations)
124.10 s
[really-safe-money-gen] coverage (612/1610): Money\.AccountOfSpec.BTC.toMinimalQuantisations.produces valid accounts (3 mutations)
124.34 s
[really-safe-money-gen] coverage (613/1610): Money\.AccountOfSpec.BTC.GenValid (AccountOf * BTC).genValid \:\: Gen (AccountOf * BTC).only generates valid '(AccountOf * BTC)'s (1 mutations)
124.43 s
[really-safe-money-gen] coverage (614/1610): Money\.AccountOfSpec.BTC.toRational.produces valid Rationals when the quantisation factor is nonzero (3 mutations)
124.53 s
[really-safe-money-gen] coverage (615/1610): Money\.AccountOfSpec.BTC.INR.rate.produces valid amounts (11 mutations)
124.57 s
[really-safe-money-gen] coverage (616/1610): Money\.AccountOfSpec.BTC.INR.convert.produces valid amounts (17 mutations)
124.78 s
[really-safe-money-gen] coverage (618/1610): Money\.AccountOfSpec.BTC.fromDouble.produces valid rational (28 mutations)
124.78 s
[really-safe-money-gen] coverage (619/1610): Money\.AccountOfSpec.BTC.fraction.produces valid amounts (28 mutations)
124.83 s
[really-safe-money-gen] coverage (617/1610): Money\.AccountOfSpec.BTC.fromDouble.roundtrips with toDouble (30 mutations)
125.28 s
[really-safe-money-gen] coverage (620/1610): Money\.AccountOfSpec.BTC.fraction.Produces a result that can be multiplied back (28 mutations)
125.33 s
[really-safe-money-gen] coverage (621/1610): Money\.AccountOfSpec.BTC.CHF.rate.produces valid amounts (11 mutations)
125.66 s
[really-safe-money-gen] coverage (623/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.roundtrips with toMinimalQuantisations (12 mutations)
125.71 s
[really-safe-money-gen] coverage (622/1610): Money\.AccountOfSpec.BTC.CHF.convert.produces valid amounts (17 mutations)
125.77 s
[really-safe-money-gen] coverage (625/1610): Money\.AccountOfSpec.BTC.fromAmount.produces valid AccountOfs (1 mutations)
125.82 s
[really-safe-money-gen] coverage (624/1610): Money\.AccountOfSpec.BTC.fromMinimalQuantisations.produces valid accounts (10 mutations)
125.91 s
[really-safe-money-gen] coverage (626/1610): Money\.AccountOfSpec.BTC.abs.produces valid amounts (1 mutations)
126.05 s
[really-safe-money-gen] coverage (627/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
126.07 s
[really-safe-money-gen] coverage (628/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
126.23 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)
126.27 s
[really-safe-money-gen] coverage (629/1610): Money\.ConversionRateOfSpec.INR.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
126.37 s
[really-safe-money-gen] coverage (586/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(/=) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
126.56 s
[really-safe-money-gen] coverage (631/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.toRational.produces valid rationals (0 mutations)
126.67 s
[really-safe-money-gen] coverage (633/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
126.68 s
[really-safe-money-gen] coverage (632/1610): Money\.ConversionRateOfSpec.INR.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
126.82 s
[really-safe-money-gen] coverage (634/1610): Money\.ConversionRateOfSpec.INR.ADA.compose.produces valid rates (6 mutations)
126.94 s
[really-safe-money-gen] coverage (637/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
126.94 s
[really-safe-money-gen] coverage (635/1610): Money\.ConversionRateOfSpec.INR.ADA.invert.produces valid rates (8 mutations)
127.07 s
[really-safe-money-gen] coverage (639/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
127.29 s
[really-safe-money-gen] coverage (638/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
127.33 s
[really-safe-money-gen] coverage (640/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
127.46 s
[really-safe-money-gen] coverage (636/1610): Money\.ConversionRateOfSpec.INR.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
127.51 s
[really-safe-money-gen] coverage (641/1610): Money\.ConversionRateOfSpec.INR.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
127.54 s
[really-safe-money-gen] coverage (642/1610): Money\.ConversionRateOfSpec.INR.BTC.invert.produces valid rates (8 mutations)
127.59 s
[really-safe-money-gen] coverage (643/1610): Money\.ConversionRateOfSpec.INR.BTC.compose.produces valid rates (6 mutations)
127.78 s
[really-safe-money-gen] coverage (644/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.toRational.produces valid rationals (0 mutations)
128.11 s
[really-safe-money-gen] coverage (648/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
128.14 s
[really-safe-money-gen] coverage (647/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
128.22 s
[really-safe-money-gen] coverage (649/1610): Money\.ConversionRateOfSpec.INR.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
128.37 s
[really-safe-money-gen] coverage (646/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
128.52 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)
128.56 s
[really-safe-money-gen] coverage (645/1610): Money\.ConversionRateOfSpec.INR.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
128.66 s
[really-safe-money-gen] coverage (651/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
128.84 s
[really-safe-money-gen] coverage (654/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
129.02 s
[really-safe-money-gen] coverage (655/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
129.18 s
[really-safe-money-gen] coverage (658/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
129.24 s
[really-safe-money-gen] coverage (656/1610): Money\.ConversionRateOfSpec.INR.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
129.40 s
[really-safe-money-gen] coverage (653/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
129.41 s
[really-safe-money-gen] coverage (562/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is antireflexive for "valid (AccountOf * BTC)"'s (3 mutations)
129.50 s
[really-safe-money-gen] coverage (652/1610): Money\.ConversionRateOfSpec.INR.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
129.80 s
[really-safe-money-gen] coverage (659/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.toRational.produces valid rationals (0 mutations)
129.91 s
[really-safe-money-gen] coverage (584/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is transitive for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
129.92 s
[really-safe-money-gen] coverage (573/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (AccountOf * BTC)"'s (3 mutations)
129.99 s
[really-safe-money-gen] coverage (657/1610): Money\.ConversionRateOfSpec.INR.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
130.09 s
[really-safe-money-gen] coverage (579/1610): Money\.AccountOfSpec.BTC.distribute.produces results that sum up to the greater whole (45 mutations)
130.10 s
[really-safe-money-gen] coverage (583/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is symmetric for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
130.15 s
[really-safe-money-gen] coverage (581/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is equivalent to (\\a b -> not $ a /= b) for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
130.55 s
[really-safe-money-gen] coverage (585/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(/=) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is antireflexive for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
130.56 s
[really-safe-money-gen] coverage (660/1610): Money\.ConversionRateOfSpec.INR.CHF.invert.produces valid rates (8 mutations)
130.64 s
[really-safe-money-gen] coverage (661/1610): Money\.ConversionRateOfSpec.INR.CHF.compose.produces valid rates (6 mutations)
130.73 s
[really-safe-money-gen] coverage (665/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
130.75 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)
130.81 s
[really-safe-money-gen] coverage (664/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.toRational.produces valid rationals (0 mutations)
130.93 s
[really-safe-money-gen] coverage (667/1610): Money\.ConversionRateOfSpec.INR.USD.invert.produces valid rates (8 mutations)
131.33 s
[really-safe-money-gen] coverage (668/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
131.36 s
[really-safe-money-gen] coverage (670/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.toRatio.produces valid ratios (0 mutations)
131.39 s
[really-safe-money-gen] coverage (671/1610): Money\.ConversionRateOfSpec.INR.USD.compose.produces valid rates (6 mutations)
131.73 s
[really-safe-money-gen] coverage (673/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
131.75 s
[really-safe-money-gen] coverage (675/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.toRational.produces valid rationals (0 mutations)
131.78 s
[really-safe-money-gen] coverage (676/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
131.94 s
[really-safe-money-gen] coverage (672/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
131.99 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)
132.33 s
[really-safe-money-gen] coverage (682/1610): Money\.ConversionRateOfSpec.INR.INR.compose.produces valid rates (6 mutations)
132.37 s
[really-safe-money-gen] coverage (680/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
132.39 s
[really-safe-money-gen] coverage (685/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
132.40 s
[really-safe-money-gen] coverage (684/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
132.49 s
[really-safe-money-gen] coverage (679/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
132.51 s
[really-safe-money-gen] coverage (686/1610): Money\.ConversionRateOfSpec.INR.INR.Ratio.toRatio.produces valid ratios (0 mutations)
132.78 s
[really-safe-money-gen] coverage (677/1610): Money\.ConversionRateOfSpec.INR.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
132.85 s
[really-safe-money-gen] coverage (574/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is transitive for "valid (AccountOf * BTC)"'s (3 mutations)
132.88 s
[really-safe-money-gen] coverage (688/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.toRatio.produces valid ratios (0 mutations)
132.98 s
[really-safe-money-gen] coverage (575/1610): Money\.AccountOfSpec.BTC.Ord (AccountOf * BTC).(>=) \:\: (AccountOf * BTC) -> (AccountOf * BTC) -> Bool.is reflexive for "valid (AccountOf * BTC)"'s (3 mutations)
133.02 s
[really-safe-money-gen] coverage (578/1610): Money\.AccountOfSpec.BTC.distribute.produces valid amounts (28 mutations)
133.08 s
[really-safe-money-gen] coverage (576/1610): Money\.AccountOfSpec.BTC.BTC.convert.produces valid amounts (17 mutations)
133.15 s
[really-safe-money-gen] coverage (580/1610): Money\.AccountOfSpec.BTC.distribute.Show (Distribution (AccountOf * BTC)) and Read (Distribution (AccountOf * BTC)).are implemented such that read \. show == id for valid values (3 mutations)
133.42 s
[really-safe-money-gen] coverage (577/1610): Money\.AccountOfSpec.BTC.BTC.rate.produces valid amounts (11 mutations)
133.42 s
[really-safe-money-gen] coverage (582/1610): Money\.AccountOfSpec.BTC.distribute.Eq (Distribution (AccountOf * BTC)).(==) \:\: (Distribution (AccountOf * BTC)) -> (Distribution (AccountOf * BTC)) -> Bool.is reflexive for "valid (Distribution (AccountOf * BTC))"s (3 mutations)
133.51 s
[really-safe-money-gen] coverage (694/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.toRational.produces valid rationals (0 mutations)
133.71 s
[really-safe-money-gen] coverage (666/1610): Money\.ConversionRateOfSpec.INR.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
133.77 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)
133.89 s
[really-safe-money-gen] coverage (674/1610): Money\.ConversionRateOfSpec.INR.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
133.95 s
[really-safe-money-gen] coverage (696/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
134.16 s
[really-safe-money-gen] coverage (587/1610): Money\.AccountOfSpec.BTC.toDouble.produces valid Doubles when the quantisation factor is nonzero (3 mutations)
134.21 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)
134.55 s
[really-safe-money-gen] coverage (689/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
134.62 s
[really-safe-money-gen] coverage (687/1610): Money\.ConversionRateOfSpec.ADA.USD.compose.produces valid rates (6 mutations)
134.63 s
[really-safe-money-gen] coverage (690/1610): Money\.ConversionRateOfSpec.ADA.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
134.64 s
[really-safe-money-gen] coverage (697/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
134.81 s
[really-safe-money-gen] coverage (691/1610): Money\.ConversionRateOfSpec.ADA.USD.invert.produces valid rates (8 mutations)
134.85 s
[really-safe-money-gen] coverage (692/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
135.01 s
[really-safe-money-gen] coverage (683/1610): Money\.ConversionRateOfSpec.INR.INR.invert.produces valid rates (8 mutations)
135.02 s
[really-safe-money-gen] coverage (693/1610): Money\.ConversionRateOfSpec.ADA.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
135.30 s
[really-safe-money-gen] coverage (669/1610): Money\.ConversionRateOfSpec.INR.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
135.43 s
[really-safe-money-gen] coverage (706/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
135.47 s
[really-safe-money-gen] coverage (704/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
135.58 s
[really-safe-money-gen] coverage (681/1610): Money\.ConversionRateOfSpec.INR.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
135.69 s
[really-safe-money-gen] coverage (707/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
135.77 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)
135.91 s
[really-safe-money-gen] coverage (710/1610): Money\.ConversionRateOfSpec.ADA.CHF.invert.produces valid rates (8 mutations)
135.92 s
[really-safe-money-gen] coverage (708/1610): Money\.ConversionRateOfSpec.ADA.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
136.03 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)
136.03 s
[really-safe-money-gen] coverage (705/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
136.22 s
[really-safe-money-gen] coverage (714/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
136.39 s
[really-safe-money-gen] coverage (702/1610): Money\.ConversionRateOfSpec.ADA.CHF.compose.produces valid rates (6 mutations)
136.50 s
[really-safe-money-gen] coverage (712/1610): Money\.ConversionRateOfSpec.ADA.ADA.invert.produces valid rates (8 mutations)
136.53 s
[really-safe-money-gen] coverage (698/1610): Money\.ConversionRateOfSpec.ADA.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
136.77 s
[really-safe-money-gen] coverage (700/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
136.86 s
[really-safe-money-gen] coverage (703/1610): Money\.ConversionRateOfSpec.ADA.CHF.Rational.toRational.produces valid rationals (0 mutations)
137.17 s
[really-safe-money-gen] coverage (717/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.toRational.produces valid rationals (0 mutations)
137.34 s
[really-safe-money-gen] coverage (701/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
137.37 s
[really-safe-money-gen] coverage (699/1610): Money\.ConversionRateOfSpec.ADA.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
137.57 s
[really-safe-money-gen] coverage (723/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
137.74 s
[really-safe-money-gen] coverage (719/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
137.79 s
[really-safe-money-gen] coverage (721/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
137.83 s
[really-safe-money-gen] coverage (716/1610): Money\.ConversionRateOfSpec.ADA.ADA.compose.produces valid rates (6 mutations)
137.86 s
[really-safe-money-gen] coverage (728/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.toRational.produces valid rationals (0 mutations)
137.91 s
[really-safe-money-gen] coverage (722/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
137.97 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)
138.18 s
[really-safe-money-gen] coverage (713/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
138.40 s
[really-safe-money-gen] coverage (720/1610): Money\.ConversionRateOfSpec.ADA.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
138.43 s
[really-safe-money-gen] coverage (718/1610): Money\.ConversionRateOfSpec.ADA.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
138.67 s
[really-safe-money-gen] coverage (715/1610): Money\.ConversionRateOfSpec.ADA.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
138.71 s
[really-safe-money-gen] coverage (725/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
138.81 s
[really-safe-money-gen] coverage (724/1610): Money\.ConversionRateOfSpec.ADA.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
138.91 s
[really-safe-money-gen] coverage (729/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
138.92 s
[really-safe-money-gen] coverage (739/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.toRatio.produces valid ratios (0 mutations)
138.95 s
[really-safe-money-gen] coverage (733/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
139.07 s
[really-safe-money-gen] coverage (732/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
139.07 s
[really-safe-money-gen] coverage (730/1610): Money\.ConversionRateOfSpec.ADA.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
139.16 s
[really-safe-money-gen] coverage (740/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
139.24 s
[really-safe-money-gen] coverage (741/1610): Money\.ConversionRateOfSpec.ADA.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
139.53 s
[really-safe-money-gen] coverage (737/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
139.55 s
[really-safe-money-gen] coverage (736/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
139.78 s
[really-safe-money-gen] coverage (727/1610): Money\.ConversionRateOfSpec.ADA.BTC.invert.produces valid rates (8 mutations)
139.78 s
[really-safe-money-gen] coverage (742/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
139.82 s
[really-safe-money-gen] coverage (734/1610): Money\.ConversionRateOfSpec.ADA.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
140.31 s
[really-safe-money-gen] coverage (731/1610): Money\.ConversionRateOfSpec.ADA.BTC.compose.produces valid rates (6 mutations)
140.35 s
[really-safe-money-gen] coverage (743/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
140.39 s
[really-safe-money-gen] coverage (744/1610): Money\.ConversionRateOfSpec.ADA.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
140.49 s
[really-safe-money-gen] coverage (745/1610): Money\.ConversionRateOfSpec.ADA.INR.compose.produces valid rates (6 mutations)
140.60 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)
140.66 s
[really-safe-money-gen] coverage (746/1610): Money\.ConversionRateOfSpec.ADA.INR.invert.produces valid rates (8 mutations)
140.66 s
[really-safe-money-gen] coverage (738/1610): Money\.ConversionRateOfSpec.ADA.INR.Rational.toRational.produces valid rationals (0 mutations)
140.78 s
[really-safe-money-gen] coverage (748/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
140.79 s
[really-safe-money-gen] coverage (747/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.toRational.produces valid rationals (0 mutations)
140.87 s
[really-safe-money-gen] coverage (749/1610): Money\.ConversionRateOfSpec.CHF.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
141.23 s
[really-safe-money-gen] coverage (751/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
141.37 s
[really-safe-money-gen] coverage (750/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
141.58 s
[really-safe-money-gen] coverage (754/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
141.64 s
[really-safe-money-gen] coverage (753/1610): Money\.ConversionRateOfSpec.CHF.BTC.compose.produces valid rates (6 mutations)
141.66 s
[really-safe-money-gen] coverage (752/1610): Money\.ConversionRateOfSpec.CHF.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
141.70 s
[really-safe-money-gen] coverage (755/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
141.80 s
[really-safe-money-gen] coverage (756/1610): Money\.ConversionRateOfSpec.CHF.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
141.88 s
[really-safe-money-gen] coverage (757/1610): Money\.ConversionRateOfSpec.CHF.BTC.invert.produces valid rates (8 mutations)
141.98 s
[really-safe-money-gen] coverage (759/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
141.99 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)
142.11 s
[really-safe-money-gen] coverage (768/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.toRational.produces valid rationals (0 mutations)
142.29 s
[really-safe-money-gen] coverage (760/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
142.33 s
[really-safe-money-gen] coverage (761/1610): Money\.ConversionRateOfSpec.CHF.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
142.41 s
[really-safe-money-gen] coverage (763/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
142.41 s
[really-safe-money-gen] coverage (764/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
142.65 s
[really-safe-money-gen] coverage (769/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
142.66 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)
142.71 s
[really-safe-money-gen] coverage (766/1610): Money\.ConversionRateOfSpec.CHF.ADA.compose.produces valid rates (6 mutations)
143.12 s
[really-safe-money-gen] coverage (771/1610): Money\.ConversionRateOfSpec.CHF.USD.invert.produces valid rates (8 mutations)
143.15 s
[really-safe-money-gen] coverage (776/1610): Money\.ConversionRateOfSpec.CHF.USD.compose.produces valid rates (6 mutations)
143.28 s
[really-safe-money-gen] coverage (775/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
143.48 s
[really-safe-money-gen] coverage (778/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
143.50 s
[really-safe-money-gen] coverage (779/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.toRational.produces valid rationals (0 mutations)
143.51 s
[really-safe-money-gen] coverage (774/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
143.71 s
[really-safe-money-gen] coverage (777/1610): Money\.ConversionRateOfSpec.CHF.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
143.71 s
[really-safe-money-gen] coverage (781/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
143.77 s
[really-safe-money-gen] coverage (773/1610): Money\.ConversionRateOfSpec.CHF.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
143.81 s
[really-safe-money-gen] coverage (795/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.toRatio.produces valid ratios (0 mutations)
144.15 s
[really-safe-money-gen] coverage (797/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
144.18 s
[really-safe-money-gen] coverage (787/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.toRational.produces valid rationals (0 mutations)
144.43 s
[really-safe-money-gen] coverage (786/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
144.46 s
[really-safe-money-gen] coverage (780/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
144.54 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)
144.62 s
[really-safe-money-gen] coverage (804/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
144.73 s
[really-safe-money-gen] coverage (805/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
144.80 s
[really-safe-money-gen] coverage (793/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
144.84 s
[really-safe-money-gen] coverage (784/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
144.98 s
[really-safe-money-gen] coverage (801/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
145.18 s
[really-safe-money-gen] coverage (800/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
145.22 s
[really-safe-money-gen] coverage (792/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
145.24 s
[really-safe-money-gen] coverage (788/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
145.30 s
[really-safe-money-gen] coverage (791/1610): Money\.ConversionRateOfSpec.CHF.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
145.36 s
[really-safe-money-gen] coverage (796/1610): Money\.ConversionRateOfSpec.CHF.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
145.43 s
[really-safe-money-gen] coverage (802/1610): Money\.ConversionRateOfSpec.CHF.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
145.59 s
[really-safe-money-gen] coverage (790/1610): Money\.ConversionRateOfSpec.CHF.CHF.invert.produces valid rates (8 mutations)
145.66 s
[really-safe-money-gen] coverage (798/1610): Money\.ConversionRateOfSpec.CHF.INR.compose.produces valid rates (6 mutations)
145.91 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)
146.01 s
[really-safe-money-gen] coverage (765/1610): Money\.ConversionRateOfSpec.CHF.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
146.05 s
[really-safe-money-gen] coverage (794/1610): Money\.ConversionRateOfSpec.CHF.CHF.compose.produces valid rates (6 mutations)
146.39 s
[really-safe-money-gen] coverage (770/1610): Money\.ConversionRateOfSpec.CHF.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
146.44 s
[really-safe-money-gen] coverage (789/1610): Money\.ConversionRateOfSpec.CHF.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
146.44 s
[really-safe-money-gen] coverage (782/1610): Money\.ConversionRateOfSpec.CHF.USD.Ratio.toRatio.produces valid ratios (0 mutations)
146.61 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)
146.66 s
[really-safe-money-gen] coverage (762/1610): Money\.ConversionRateOfSpec.CHF.ADA.invert.produces valid rates (8 mutations)
146.95 s
[really-safe-money-gen] coverage (810/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
146.95 s
[really-safe-money-gen] coverage (785/1610): Money\.ConversionRateOfSpec.CHF.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
146.98 s
[really-safe-money-gen] coverage (809/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
147.22 s
[really-safe-money-gen] coverage (806/1610): Money\.ConversionRateOfSpec.CHF.INR.Rational.toRational.produces valid rationals (0 mutations)
147.36 s
[really-safe-money-gen] coverage (811/1610): Money\.ConversionRateOfSpec.USD.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
147.37 s
[really-safe-money-gen] coverage (812/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.toRational.produces valid rationals (0 mutations)
147.40 s
[really-safe-money-gen] coverage (808/1610): Money\.ConversionRateOfSpec.USD.CHF.invert.produces valid rates (8 mutations)
147.62 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)
147.68 s
[really-safe-money-gen] coverage (835/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
147.69 s
[really-safe-money-gen] coverage (834/1610): Money\.ConversionRateOfSpec.USD.INR.compose.produces valid rates (6 mutations)
147.78 s
[really-safe-money-gen] coverage (836/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
148.13 s
[really-safe-money-gen] coverage (837/1610): Money\.ConversionRateOfSpec.USD.INR.Rational.toRational.produces valid rationals (0 mutations)
148.31 s
[really-safe-money-gen] coverage (829/1610): Money\.ConversionRateOfSpec.USD.USD.compose.produces valid rates (6 mutations)
148.36 s
[really-safe-money-gen] coverage (819/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.toRatio.produces valid ratios (0 mutations)
148.51 s
[really-safe-money-gen] coverage (825/1610): Money\.ConversionRateOfSpec.USD.USD.invert.produces valid rates (8 mutations)
148.53 s
[really-safe-money-gen] coverage (826/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.toRational.produces valid rationals (0 mutations)
148.59 s
[really-safe-money-gen] coverage (838/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.toRatio.produces valid ratios (0 mutations)
148.61 s
[really-safe-money-gen] coverage (824/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
148.85 s
[really-safe-money-gen] coverage (815/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
149.07 s
[really-safe-money-gen] coverage (833/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
149.13 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)
149.18 s
[really-safe-money-gen] coverage (832/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
149.24 s
[really-safe-money-gen] coverage (823/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
149.48 s
[really-safe-money-gen] coverage (828/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
149.58 s
[really-safe-money-gen] coverage (827/1610): Money\.ConversionRateOfSpec.USD.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
149.58 s
[really-safe-money-gen] coverage (822/1610): Money\.ConversionRateOfSpec.USD.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
149.75 s
[really-safe-money-gen] coverage (844/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
149.87 s
[really-safe-money-gen] coverage (843/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
150.15 s
[really-safe-money-gen] coverage (817/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
150.27 s
[really-safe-money-gen] coverage (818/1610): Money\.ConversionRateOfSpec.USD.CHF.compose.produces valid rates (6 mutations)
150.41 s
[really-safe-money-gen] coverage (845/1610): Money\.ConversionRateOfSpec.USD.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
150.42 s
[really-safe-money-gen] coverage (831/1610): Money\.ConversionRateOfSpec.USD.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
150.59 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)
150.62 s
[really-safe-money-gen] coverage (840/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
150.71 s
[really-safe-money-gen] coverage (839/1610): Money\.ConversionRateOfSpec.USD.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
150.79 s
[really-safe-money-gen] coverage (847/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.toRational.produces valid rationals (0 mutations)
150.83 s
[really-safe-money-gen] coverage (854/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
151.14 s
[really-safe-money-gen] coverage (857/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
151.16 s
[really-safe-money-gen] coverage (856/1610): Money\.ConversionRateOfSpec.USD.ADA.compose.produces valid rates (6 mutations)
151.18 s
[really-safe-money-gen] coverage (852/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
151.25 s
[really-safe-money-gen] coverage (851/1610): Money\.ConversionRateOfSpec.USD.BTC.invert.produces valid rates (8 mutations)
151.44 s
[really-safe-money-gen] coverage (849/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
151.48 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)
151.59 s
[really-safe-money-gen] coverage (846/1610): Money\.ConversionRateOfSpec.USD.BTC.compose.produces valid rates (6 mutations)
151.60 s
[really-safe-money-gen] coverage (853/1610): Money\.ConversionRateOfSpec.USD.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
151.65 s
[really-safe-money-gen] coverage (848/1610): Money\.ConversionRateOfSpec.USD.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
151.81 s
[really-safe-money-gen] coverage (821/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
152.01 s
[really-safe-money-gen] coverage (861/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
152.09 s
[really-safe-money-gen] coverage (813/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
152.18 s
[really-safe-money-gen] coverage (859/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
152.21 s
[really-safe-money-gen] coverage (863/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
152.45 s
[really-safe-money-gen] coverage (864/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
152.53 s
[really-safe-money-gen] coverage (866/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.toRational.produces valid rationals (0 mutations)
152.53 s
[really-safe-money-gen] coverage (865/1610): Money\.ConversionRateOfSpec.USD.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
152.72 s
[really-safe-money-gen] coverage (816/1610): Money\.ConversionRateOfSpec.USD.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
152.78 s
[really-safe-money-gen] coverage (814/1610): Money\.ConversionRateOfSpec.USD.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
153.06 s
[really-safe-money-gen] coverage (820/1610): Money\.ConversionRateOfSpec.USD.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
153.22 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)
153.33 s
[really-safe-money-gen] coverage (867/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.toRatio.produces valid ratios (0 mutations)
153.35 s
[really-safe-money-gen] coverage (860/1610): Money\.ConversionRateOfSpec.USD.ADA.invert.produces valid rates (8 mutations)
153.51 s
[really-safe-money-gen] coverage (868/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.produces valid conversion rates (6 mutations)
153.57 s
[really-safe-money-gen] coverage (841/1610): Money\.ConversionRateOfSpec.USD.INR.invert.produces valid rates (8 mutations)
153.64 s
[really-safe-money-gen] coverage (862/1610): Money\.ConversionRateOfSpec.USD.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
153.77 s
[really-safe-money-gen] coverage (869/1610): Money\.ConversionRateOfSpec.BTC.ADA.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
154.07 s
[really-safe-money-gen] coverage (872/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
154.20 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)
154.28 s
[really-safe-money-gen] coverage (876/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.produces valid conversion rates (11 mutations)
154.29 s
[really-safe-money-gen] coverage (873/1610): Money\.ConversionRateOfSpec.BTC.ADA.compose.produces valid rates (6 mutations)
154.36 s
[really-safe-money-gen] coverage (878/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.toRational.produces valid rationals (0 mutations)
154.51 s
[really-safe-money-gen] coverage (879/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.toRational.produces valid rationals (0 mutations)
154.52 s
[really-safe-money-gen] coverage (880/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.roundtrips with toRational (11 mutations)
154.74 s
[really-safe-money-gen] coverage (881/1610): Money\.ConversionRateOfSpec.BTC.USD.Rational.fromRational.produces valid conversion rates (11 mutations)
154.74 s
[really-safe-money-gen] coverage (886/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.produces valid conversion rates (6 mutations)
154.84 s
[really-safe-money-gen] coverage (885/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
155.11 s
[really-safe-money-gen] coverage (882/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
155.25 s
[really-safe-money-gen] coverage (889/1610): Money\.ConversionRateOfSpec.BTC.USD.invert.produces valid rates (8 mutations)
155.28 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)
155.41 s
[really-safe-money-gen] coverage (888/1610): Money\.ConversionRateOfSpec.BTC.USD.compose.produces valid rates (6 mutations)
155.49 s
[really-safe-money-gen] coverage (884/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
155.65 s
[really-safe-money-gen] coverage (908/1610): Money\.ConversionRateOfSpec.BTC.CHF.invert.produces valid rates (8 mutations)
155.72 s
[really-safe-money-gen] coverage (906/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
155.95 s
[really-safe-money-gen] coverage (911/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
155.95 s
[really-safe-money-gen] coverage (909/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.toRatio.produces valid ratios (0 mutations)
155.95 s
[really-safe-money-gen] coverage (893/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
156.34 s
[really-safe-money-gen] coverage (913/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.produces valid conversion rates (11 mutations)
156.36 s
[really-safe-money-gen] coverage (914/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.toRational.produces valid rationals (0 mutations)
156.51 s
[really-safe-money-gen] coverage (915/1610): Money\.ConversionRateOfSpec.BTC.BTC.invert.produces valid rates (8 mutations)
156.57 s
[really-safe-money-gen] coverage (916/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.toRational.produces valid rationals (0 mutations)
156.62 s
[really-safe-money-gen] coverage (918/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.roundtrips with toRational (11 mutations)
156.73 s
[really-safe-money-gen] coverage (917/1610): Money\.ConversionRateOfSpec.BTC.BTC.Rational.fromRational.produces valid conversion rates (11 mutations)
156.81 s
[really-safe-money-gen] coverage (919/1610): Money\.ConversionRateOfSpec.BTC.BTC.compose.produces valid rates (6 mutations)
157.23 s
[really-safe-money-gen] coverage (922/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
157.26 s
[really-safe-money-gen] coverage (921/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
157.47 s
[really-safe-money-gen] coverage (924/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
157.47 s
[really-safe-money-gen] coverage (925/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.fromRatio.produces valid conversion rates (6 mutations)
157.56 s
[really-safe-money-gen] coverage (858/1610): Money\.ConversionRateOfSpec.USD.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
157.68 s
[really-safe-money-gen] coverage (923/1610): Money\.ConversionRateOfSpec.BTC.BTC.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
157.75 s
[really-safe-money-gen] coverage (926/1610): Money\.ConversionRateOfSpec.BTC.BTC.Ratio.toRatio.produces valid ratios (0 mutations)
157.82 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)
157.82 s
[really-safe-money-gen] coverage (928/1610): Money\.QuantisationFactorSpec.digits.works on 10 (0 mutations)
157.92 s
[really-safe-money-gen] coverage (927/1610): Money\.QuantisationFactorSpec.fromWord32.produces valid quantisation factors (6 mutations)
158.00 s
[really-safe-money-gen] coverage (930/1610): Money\.QuantisationFactorSpec.digits.works on 100 (0 mutations)
158.38 s
[really-safe-money-gen] coverage (931/1610): Money\.QuantisationFactorSpec.digits.produces valid numbers of digits (0 mutations)
158.39 s
[really-safe-money-gen] coverage (871/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
158.54 s
[really-safe-money-gen] coverage (905/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
158.56 s
[really-safe-money-gen] coverage (912/1610): Money\.ConversionRateOfSpec.BTC.CHF.Rational.fromRational.roundtrips with toRational (11 mutations)
158.67 s
[really-safe-money-gen] coverage (902/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.toRatio.produces valid ratios (0 mutations)
158.76 s
[really-safe-money-gen] coverage (903/1610): Money\.ConversionRateOfSpec.BTC.CHF.compose.produces valid rates (6 mutations)
158.87 s
[really-safe-money-gen] coverage (870/1610): Money\.ConversionRateOfSpec.BTC.ADA.DecimalLiteral.toDecimalLiteral.produces valid literals (21 mutations)
158.94 s
[really-safe-money-gen] coverage (897/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.roundtrips with toRational (11 mutations)
158.95 s
[really-safe-money-gen] coverage (901/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.roundtrips with toRatio (6 mutations)
159.04 s
[really-safe-money-gen] coverage (900/1610): Money\.ConversionRateOfSpec.BTC.INR.Ratio.fromRatio.produces valid conversion rates (6 mutations)
159.30 s
[really-safe-money-gen] coverage (896/1610): Money\.ConversionRateOfSpec.BTC.INR.invert.produces valid rates (8 mutations)
159.37 s
[really-safe-money-gen] coverage (910/1610): Money\.ConversionRateOfSpec.BTC.CHF.Ratio.fromRatio.produces valid conversion rates (6 mutations)
159.47 s
[really-safe-money-gen] coverage (895/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
159.50 s
[really-safe-money-gen] coverage (894/1610): Money\.ConversionRateOfSpec.BTC.INR.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
159.57 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)
159.70 s
[really-safe-money-gen] coverage (887/1610): Money\.ConversionRateOfSpec.BTC.USD.Ratio.toRatio.produces valid ratios (0 mutations)
159.73 s
[really-safe-money-gen] coverage (898/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.fromRational.produces valid conversion rates (11 mutations)
160.20 s
[really-safe-money-gen] coverage (891/1610): Money\.ConversionRateOfSpec.BTC.INR.compose.produces valid rates (6 mutations)
160.21 s
[really-safe-money-gen] coverage (899/1610): Money\.ConversionRateOfSpec.BTC.INR.Rational.toRational.produces valid rationals (0 mutations)
160.25 s
[really-safe-money-gen] coverage (929/1610): Money\.QuantisationFactorSpec.digits.works on 20 (0 mutations)
160.39 s
[really-safe-money-gen] coverage (874/1610): Money\.ConversionRateOfSpec.BTC.ADA.invert.produces valid rates (8 mutations)
160.46 s
[really-safe-money-gen] coverage (907/1610): Money\.ConversionRateOfSpec.BTC.CHF.DecimalLiteral.fromDecimalLiteral.roundtrips with toDecimalLiteral (35 mutations)
160.51 s
[really-safe-money-gen] coverage (877/1610): Money\.ConversionRateOfSpec.BTC.ADA.Rational.fromRational.roundtrips with toRational (11 mutations)
160.69 s
[really-safe-money-gen] coverage (932/1610): Money\.QuantisationFactorSpec.digits.works on 1 (0 mutations)
160.72 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)
160.73 s
[really-safe-money-gen] coverage (883/1610): Money\.ConversionRateOfSpec.BTC.USD.DecimalLiteral.fromDecimalLiteral.produces valid conversion rates (14 mutations)
160.83 s
[really-safe-money-gen] coverage (799/1610): Money\.ConversionRateOfSpec.CHF.INR.invert.produces valid rates (8 mutations)
161.13 s
[really-safe-money-gen] coverage (940/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 100 into DecimalLiteral Nothing 1 2 (22 mutations)
161.27 s
[really-safe-money-gen] coverage (939/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 1 into quantisation factor 10 (25 mutations)
161.37 s
[really-safe-money-gen] coverage (941/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 50 into DecimalLiteral Nothing 2 2 (22 mutations)
161.45 s
[really-safe-money-gen] coverage (942/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 3 into quantisation factor 1000 (25 mutations)
161.58 s
[really-safe-money-gen] coverage (943/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 10 into DecimalLiteral Nothing 1 1 (22 mutations)
161.68 s
[really-safe-money-gen] coverage (944/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 2 2 into quantisation factor 50 (25 mutations)
161.84 s
[really-safe-money-gen] coverage (948/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1 into DecimalLiteral Nothing 1 0 (20 mutations)
161.94 s
[really-safe-money-gen] coverage (936/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a 0 (9 mutations)
162.25 s
[really-safe-money-gen] coverage (935/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.produces valid factors (31 mutations)
162.60 s
[really-safe-money-gen] coverage (933/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render a non-1 integer (22 mutations)
162.64 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)
162.69 s
[really-safe-money-gen] coverage (934/1610): Money\.QuantisationFactorSpec.DecimalLiteral.fromDecimalLiteral.fails to render negative fractionals (16 mutations)
162.81 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)
162.82 s
[really-safe-money-gen] coverage (961/1610): Money\.MultiAccountSpec.GenValid (MultiAccount Currency).genValid \:\: Gen (MultiAccount Currency).only generates valid '(MultiAccount Currency)'s (15 mutations)
162.83 s
[really-safe-money-gen] coverage (962/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(==) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"s (4 mutations)
162.90 s
[really-safe-money-gen] coverage (967/1610): Money\.MultiAccountSpec.Eq (MultiAccount Currency).(/=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"s (4 mutations)
163.32 s
[really-safe-money-gen] coverage (952/1610): Money\.MultiAccountSpec.subtractAmount.produces valid amounts (34 mutations)
163.40 s
[really-safe-money-gen] coverage (950/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 1000 into DecimalLiteral Nothing 1 3 (22 mutations)
163.44 s
[really-safe-money-gen] coverage (949/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 2 into quantisation factor 100 (25 mutations)
163.49 s
[really-safe-money-gen] coverage (951/1610): Money\.QuantisationFactorSpec.GenValid QuantisationFactor.genValid \:\: Gen QuantisationFactor.only generates valid 'QuantisationFactor's (6 mutations)
163.54 s
[really-safe-money-gen] coverage (947/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 5 2 into quantisation factor 20 (25 mutations)
163.64 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)
163.81 s
[really-safe-money-gen] coverage (958/1610): Money\.MultiAccountSpec.add.produces valid amounts (34 mutations)
163.97 s
[really-safe-money-gen] coverage (970/1610): Money\.MultiAccountSpec.zero.is valid (2 mutations)
164.14 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)
164.23 s
[really-safe-money-gen] coverage (968/1610): Money\.MultiAccountSpec.sum.produces valid amounts (34 mutations)
164.34 s
[really-safe-money-gen] coverage (957/1610): Money\.MultiAccountSpec.add.is commutative (23 mutations)
164.40 s
[really-safe-money-gen] coverage (972/1610): Money\.MultiAccountSpec.addAccount.produces valid amounts (34 mutations)
164.56 s
[really-safe-money-gen] coverage (982/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"'s (4 mutations)
164.65 s
[really-safe-money-gen] coverage (985/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
164.88 s
[really-safe-money-gen] coverage (984/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
164.91 s
[really-safe-money-gen] coverage (981/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= GT) for "valid (MultiAccount Currency)"'s (4 mutations)
164.95 s
[really-safe-money-gen] coverage (969/1610): Money\.MultiAccountSpec.Show (MultiAccount Currency) and Read (MultiAccount Currency).are implemented such that read \. show == id for valid values (4 mutations)
165.19 s
[really-safe-money-gen] coverage (983/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antisymmetric for "valid (MultiAccount Currency)"'s (4 mutations)
165.19 s
[really-safe-money-gen] coverage (959/1610): Money\.MultiAccountSpec.add.is associative when both succeed (23 mutations)
165.45 s
[really-safe-money-gen] coverage (971/1610): Money\.MultiAccountSpec.fromAccount.produces valid amounts (19 mutations)
165.57 s
[really-safe-money-gen] coverage (979/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"'s (4 mutations)
165.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 (4 mutations)
165.66 s
[really-safe-money-gen] coverage (980/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
165.75 s
[really-safe-money-gen] coverage (975/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antisymmetric for "valid (MultiAccount Currency)"'s (4 mutations)
165.92 s
[really-safe-money-gen] coverage (974/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is transitive for "valid (MultiAccount Currency)"'s (4 mutations)
165.93 s
[really-safe-money-gen] coverage (946/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn quantisation factor 20 into DecimalLiteral Nothing 5 2 (22 mutations)
166.07 s
[really-safe-money-gen] coverage (977/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency)."min \:\: (MultiAccount Currency -> MultiAccount Currency -> MultiAccount Currency)".is equivalent to (\\a b -> if a <= b then a else b) for "valid (MultiAccount Currency)"'s (4 mutations)
166.10 s
[really-safe-money-gen] coverage (954/1610): Money\.MultiAccountSpec.subtractAmount.adds a non zero amount (5 mutations)
166.12 s
[really-safe-money-gen] coverage (953/1610): Money\.MultiAccountSpec.subtractAmount.computes this example correctly (19 mutations)
166.19 s
[really-safe-money-gen] coverage (955/1610): Money\.MultiAccountSpec.subtractAmount.removes a zero amount (19 mutations)
166.54 s
[really-safe-money-gen] coverage (945/1610): Money\.QuantisationFactorSpec.DecimalLiteral.can turn DecimalLiteral Nothing 1 0 into quantisation factor 1 (25 mutations)
166.63 s
[really-safe-money-gen] coverage (956/1610): Money\.MultiAccountSpec.add.has a right-identity\: zero (4 mutations)
166.72 s
[really-safe-money-gen] coverage (976/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b /= LT) for "valid (MultiAccount Currency)"'s (4 mutations)
166.97 s
[really-safe-money-gen] coverage (973/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(>=) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is reflexive for "valid (MultiAccount Currency)"'s (4 mutations)
167.17 s
[really-safe-money-gen] coverage (992/1610): Money\.MultiAccountSpec.addAmount.computes this example correctly (14 mutations)
167.20 s
[really-safe-money-gen] coverage (990/1610): Money\.MultiAccountSpec.subtract.has a right-identity\: zero (4 mutations)
167.22 s
[really-safe-money-gen] coverage (993/1610): Money\.MultiAccountSpec.addAmount.adds a non zero amount (5 mutations)
167.35 s
[really-safe-money-gen] coverage (991/1610): Money\.MultiAccountSpec.addAmount.produces valid amounts (34 mutations)
167.43 s
[really-safe-money-gen] coverage (994/1610): Money\.MultiAccountSpec.addAmount.removes a zero amount (19 mutations)
167.66 s
[really-safe-money-gen] coverage (996/1610): Money\.MultiAccountSpec.lookupAccount.can find an added amount (6 mutations)
167.81 s
[really-safe-money-gen] coverage (997/1610): Money\.MultiAccountSpec.lookupAccount.produces valid amounts (4 mutations)
167.86 s
[really-safe-money-gen] coverage (995/1610): Money\.MultiAccountSpec.subtractAccount.produces valid amounts (34 mutations)
167.88 s
[really-safe-money-gen] coverage (999/1610): Money\.MultiAccountSpec.convertAll.produces the right result in this example (15 mutations)
168.04 s
[really-safe-money-gen] coverage (1001/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
168.06 s
[really-safe-money-gen] coverage (1000/1610): Money\.AmountOfSpec.USD.toMinimalQuantisations.produces valid Int64s (0 mutations)
168.33 s
[really-safe-money-gen] coverage (1002/1610): Money\.AmountOfSpec.USD.CHF.rate.produces valid amounts (6 mutations)
168.51 s
[really-safe-money-gen] coverage (1005/1610): Money\.AmountOfSpec.USD.fromRatio.roundtrips with toRatio (13 mutations)
168.51 s
[really-safe-money-gen] coverage (1003/1610): Money\.AmountOfSpec.USD.CHF.convert.produces valid amounts (15 mutations)
168.52 s
[really-safe-money-gen] coverage (1004/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 1 (13 mutations)
168.55 s
[really-safe-money-gen] coverage (1006/1610): Money\.AmountOfSpec.USD.fromRatio.produces valid AmountOfs (13 mutations)
168.72 s
[really-safe-money-gen] coverage (1007/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 77 (13 mutations)
168.76 s
[really-safe-money-gen] coverage (1010/1610): Money\.AmountOfSpec.USD.fromRatio.fails on 7\.123 (9 mutations)
168.79 s
[really-safe-money-gen] coverage (1008/1610): Money\.AmountOfSpec.USD.fromRatio.fails on NaN (2 mutations)
168.98 s
[really-safe-money-gen] coverage (1009/1610): Money\.AmountOfSpec.USD.fromRatio.succeeds on 0 (14 mutations)
169.28 s
[really-safe-money-gen] coverage (998/1610): Money\.MultiAccountSpec.convertAll.produces valid results when converting two currencies to one (20 mutations)
169.34 s
[really-safe-money-gen] coverage (987/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is equivalent to (\\a b -> compare a b == LT) for "valid (MultiAccount Currency)"'s (4 mutations)
169.73 s
[really-safe-money-gen] coverage (986/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency).(<) \:\: (MultiAccount Currency) -> (MultiAccount Currency) -> Bool.is antireflexive for "valid (MultiAccount Currency)"'s (4 mutations)
169.75 s
[really-safe-money-gen] coverage (988/1610): Money\.MultiAccountSpec.Ord (MultiAccount Currency)."max \:\: (MultiAccount Currency -> MultiAccount Currency -> MultiAccount Currency)".is equivalent to (\\a b -> if a >= b then a else b) for "valid (MultiAccount Currency)"'s (4 mutations)
169.95 s
[really-safe-money-gen] coverage (1024/1610): Money\.AmountOfSpec.USD.fromRational.fails on -Infinity (2 mutations)
169.95 s
[really-safe-money-gen] coverage (1026/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 0 (13 mutations)
170.01 s
[really-safe-money-gen] coverage (1025/1610): Money\.AmountOfSpec.USD.fromRational.succeeds on 1 (13 mutations)
170.22 s
[really-safe-money-gen] coverage (989/1610): Money\.MultiAccountSpec.subtract.produces valid amounts (34 mutations)
170.23 s
[really-safe-money-gen] coverage (1022/1610): Money\.AmountOfSpec.USD.fromRational.produces valid Amounts (13 mutations)
170.23 s
[really-safe-money-gen] coverage (1023/1610): Money\.AmountOfSpec.USD.fromRational.fails on NaN (2 mutations)
170.30 s
[really-safe-money-gen] coverage (960/1610): Money\.MultiAccountSpec.add.has a left-identity\: zero (6 mutations)
170.53 s
[really-safe-money-gen] coverage (1019/1610): Money\.AmountOfSpec.USD.fromRational.roundtrips with toRational (13 mutations)
170.63 s
[really-safe-money-gen] coverage (1016/1610): Money\.AmountOfSpec.USD.add.is commutative (4 mutations)
170.64 s
[really-safe-money-gen] coverage (1018/1610): Money\.AmountOfSpec.USD.fromMinimalQuantisations.produces valid amounts (0 mutations)
170.75 s
[really-safe-money-gen] coverage (1017/1610): Money\.AmountOfSpec.USD.add.is associative when both succeed (4 mutations)
170.81 s
[really-safe-money-gen] coverage (1020/1610): Money\.AmountOfSpec.USD.fromRational.fails on -1 (5 mutations)
170.88 s
[really-safe-money-gen] coverage (1021/1610): Money\.AmountOfSpec.USD.fromRational.fails on +Infinity (2 mutations)
171.15 s
[really-safe-money-gen] coverage (1014/1610): Money\.AmountOfSpec.USD.add.produces valid amounts (4 mutations)
171.34 s
[really-safe-money-gen] coverage (1031/1610): Money\.AmountOfSpec.USD.BTC.convert.produces valid amounts (15 mutations)
171.38 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)
171.39 s
[really-safe-money-gen] coverage (1027/1610): Money\.AmountOfSpec.USD.toRational.produces valid Rationals (0 mutations)
171.41 s
[really-safe-money-gen] coverage (1032/1610): Money\.AmountOfSpec.USD.BTC.rate.produces valid amounts (6 mutations)
171.60 s
[really-safe-money-gen] coverage (1035/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 1 (22 mutations)
171.63 s
[really-safe-money-gen] coverage (1033/1610): Money\.AmountOfSpec.USD.fromDouble.produces valid amounts (22 mutations)
171.69 s
[really-safe-money-gen] coverage (1034/1610): Money\.AmountOfSpec.USD.fromDouble.succeeds on 0 (22 mutations)
171.80 s
[really-safe-money-gen] coverage (1036/1610): Money\.AmountOfSpec.USD.fromDouble.fails on +Infinity (7 mutations)
172.11 s
[really-safe-money-gen] coverage (1037/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -Infinity (3 mutations)
172.23 s
[really-safe-money-gen] coverage (1038/1610): Money\.AmountOfSpec.USD.fromDouble.fails on NaN (5 mutations)
172.53 s
[really-safe-money-gen] coverage (1039/1610): Money\.AmountOfSpec.USD.fromDouble.fails on -1 (3 mutations)
172.55 s
[really-safe-money-gen] coverage (1040/1610): Money\.AmountOfSpec.USD.fraction.produces valid amounts (10 mutations)
172.83 s
[really-safe-money-gen] coverage (1041/1610): Money\.AmountOfSpec.USD.INR.convert.produces valid amounts (15 mutations)
172.86 s
[really-safe-money-gen] coverage (1043/1610): Money\.AmountOfSpec.USD.USD.rate.produces valid amounts (6 mutations)
172.98 s
[really-safe-money-gen] coverage (1042/1610): Money\.AmountOfSpec.USD.INR.rate.produces valid amounts (6 mutations)
173.07 s
[really-safe-money-gen] coverage (1044/1610): Money\.AmountOfSpec.USD.USD.convert.produces valid amounts (15 mutations)
173.08 s
[really-safe-money-gen] coverage (1045/1610): Money\.AmountOfSpec.USD.sum.produces valid amounts (5 mutations)
173.20 s
[really-safe-money-gen] coverage (1046/1610): Money\.AmountOfSpec.USD.sum.matches what you would get with Integer, if nothing fails (5 mutations)
173.22 s
[really-safe-money-gen] coverage (1047/1610): Money\.AmountOfSpec.USD.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
173.41 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)
173.42 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)
173.60 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)
173.61 s
[really-safe-money-gen] coverage (1029/1610): Money\.AmountOfSpec.USD.zero.is valid (1 mutations)
173.71 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)
173.75 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)
174.04 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)
174.22 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)
174.25 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)
174.33 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)
174.36 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)
174.48 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)
174.50 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)
174.54 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)
174.55 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)
174.95 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)
175.07 s
[really-safe-money-gen] coverage (1064/1610): Money\.AmountOfSpec.USD.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
175.29 s
[really-safe-money-gen] coverage (1066/1610): Money\.AmountOfSpec.USD.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
175.41 s
[really-safe-money-gen] coverage (1065/1610): Money\.AmountOfSpec.USD.format.produces valid strings (3 mutations)
175.67 s
[really-safe-money-gen] coverage (1067/1610): Money\.AmountOfSpec.USD.multiply.is absorbed by 0 (5 mutations)
175.70 s
[really-safe-money-gen] coverage (1068/1610): Money\.AmountOfSpec.USD.multiply.is distributive with add when both succeed (8 mutations)
175.83 s
[really-safe-money-gen] coverage (1069/1610): Money\.AmountOfSpec.USD.multiply.has an identity\: 1 (4 mutations)
175.88 s
[really-safe-money-gen] coverage (1071/1610): Money\.AmountOfSpec.USD.toDouble.produces valid Doubles (0 mutations)
175.89 s
[really-safe-money-gen] coverage (1070/1610): Money\.AmountOfSpec.USD.multiply.produces valid amounts (4 mutations)
176.00 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)
176.08 s
[really-safe-money-gen] coverage (1073/1610): Money\.AmountOfSpec.USD.distribute.produces valid amounts (17 mutations)
176.26 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)
176.28 s
[really-safe-money-gen] coverage (1074/1610): Money\.AmountOfSpec.USD.distribute.produces results that sum up to the greater whole (18 mutations)
176.41 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)
176.46 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)
176.55 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)
176.59 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)
176.85 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)
177.05 s
[really-safe-money-gen] coverage (1082/1610): Money\.AmountOfSpec.USD.ADA.rate.produces valid amounts (6 mutations)
177.13 s
[really-safe-money-gen] coverage (1081/1610): Money\.AmountOfSpec.USD.ADA.convert.produces valid amounts (15 mutations)
177.14 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)
177.27 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)
177.36 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)
177.38 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)
177.39 s
[really-safe-money-gen] coverage (1086/1610): Money\.AmountOfSpec.USD.Eq (AmountOf * USD).(==) \:\: (AmountOf * USD) -> (AmountOf * USD) -> Bool.is transitive for "valid (AmountOf * USD)"s (0 mutations)
177.43 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)
177.68 s
[really-safe-money-gen] coverage (1013/1610): Money\.AmountOfSpec.USD.add.has a right-identity\: zero (5 mutations)
177.84 s
[really-safe-money-gen] coverage (1012/1610): Money\.AmountOfSpec.USD.add.matches what you would get with Integer, if nothing fails (4 mutations)
178.12 s
[really-safe-money-gen] coverage (1015/1610): Money\.AmountOfSpec.USD.add.has a left-identity\: zero (5 mutations)
178.30 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)
178.47 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)
178.52 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)
178.62 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)
178.76 s
[really-safe-money-gen] coverage (1105/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 1 (13 mutations)
178.81 s
[really-safe-money-gen] coverage (1106/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on NaN (2 mutations)
178.86 s
[really-safe-money-gen] coverage (1107/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 77 (13 mutations)
178.97 s
[really-safe-money-gen] coverage (1108/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on 7\.123 (9 mutations)
179.13 s
[really-safe-money-gen] coverage (1110/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 1 (13 mutations)
179.19 s
[really-safe-money-gen] coverage (1109/1610): Money\.AmountOfSpec.ADA.fromRational.fails on NaN (2 mutations)
179.29 s
[really-safe-money-gen] coverage (1112/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -1 (5 mutations)
179.30 s
[really-safe-money-gen] coverage (1111/1610): Money\.AmountOfSpec.ADA.fromRational.roundtrips with toRational (13 mutations)
179.43 s
[really-safe-money-gen] coverage (1113/1610): Money\.AmountOfSpec.ADA.fromRational.fails on -Infinity (2 mutations)
179.44 s
[really-safe-money-gen] coverage (1114/1610): Money\.AmountOfSpec.ADA.fromRational.fails on +Infinity (2 mutations)
179.70 s
[really-safe-money-gen] coverage (1115/1610): Money\.AmountOfSpec.ADA.fromRational.produces valid Amounts (13 mutations)
179.96 s
[really-safe-money-gen] coverage (1117/1610): Money\.AmountOfSpec.ADA.sum.matches what you would get with Integer, if nothing fails (5 mutations)
179.96 s
[really-safe-money-gen] coverage (1116/1610): Money\.AmountOfSpec.ADA.fromRational.succeeds on 0 (13 mutations)
180.00 s
[really-safe-money-gen] coverage (1118/1610): Money\.AmountOfSpec.ADA.sum.produces valid amounts (5 mutations)
180.12 s
[really-safe-money-gen] coverage (1119/1610): Money\.AmountOfSpec.ADA.toDouble.produces valid Doubles (0 mutations)
180.19 s
[really-safe-money-gen] coverage (1120/1610): Money\.AmountOfSpec.ADA.add.matches what you would get with Integer, if nothing fails (4 mutations)
180.19 s
[really-safe-money-gen] coverage (1122/1610): Money\.AmountOfSpec.ADA.add.has a right-identity\: zero (5 mutations)
180.26 s
[really-safe-money-gen] coverage (1121/1610): Money\.AmountOfSpec.ADA.add.has a left-identity\: zero (5 mutations)
180.26 s
[really-safe-money-gen] coverage (1123/1610): Money\.AmountOfSpec.ADA.add.is associative when both succeed (4 mutations)
180.64 s
[really-safe-money-gen] coverage (1124/1610): Money\.AmountOfSpec.ADA.add.produces valid amounts (4 mutations)
180.77 s
[really-safe-money-gen] coverage (1125/1610): Money\.AmountOfSpec.ADA.add.is commutative (4 mutations)
181.26 s
[really-safe-money-gen] coverage (1126/1610): Money\.AmountOfSpec.ADA.USD.rate.produces valid amounts (6 mutations)
181.52 s
[really-safe-money-gen] coverage (1127/1610): Money\.AmountOfSpec.ADA.USD.convert.produces valid amounts (15 mutations)
181.62 s
[really-safe-money-gen] coverage (1128/1610): Money\.AmountOfSpec.ADA.fromMinimalQuantisations.produces valid amounts (0 mutations)
181.73 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)
181.77 s
[really-safe-money-gen] coverage (1130/1610): Money\.AmountOfSpec.ADA.distribute.produces results that sum up to the greater whole (18 mutations)
181.92 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)
182.00 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)
182.12 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)
182.26 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)
182.39 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)
182.51 s
[really-safe-money-gen] coverage (1137/1610): Money\.AmountOfSpec.ADA.distribute.produces valid amounts (17 mutations)
182.51 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)
182.65 s
[really-safe-money-gen] coverage (1138/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
182.67 s
[really-safe-money-gen] coverage (1140/1610): Money\.AmountOfSpec.ADA.CHF.convert.produces valid amounts (15 mutations)
182.70 s
[really-safe-money-gen] coverage (1139/1610): Money\.AmountOfSpec.ADA.toMinimalQuantisations.produces valid Int64s (0 mutations)
182.90 s
[really-safe-money-gen] coverage (1141/1610): Money\.AmountOfSpec.ADA.CHF.rate.produces valid amounts (6 mutations)
183.27 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)
183.29 s
[really-safe-money-gen] coverage (1142/1610): Money\.AmountOfSpec.ADA.format.produces valid strings (3 mutations)
183.35 s
[really-safe-money-gen] coverage (1144/1610): Money\.AmountOfSpec.ADA.ADA.rate.produces valid amounts (6 mutations)
183.45 s
[really-safe-money-gen] coverage (1145/1610): Money\.AmountOfSpec.ADA.ADA.convert.produces valid amounts (15 mutations)
183.55 s
[really-safe-money-gen] coverage (1146/1610): Money\.AmountOfSpec.ADA.fraction.produces valid amounts (10 mutations)
183.62 s
[really-safe-money-gen] coverage (1147/1610): Money\.AmountOfSpec.ADA.INR.rate.produces valid amounts (6 mutations)
183.63 s
[really-safe-money-gen] coverage (1149/1610): Money\.AmountOfSpec.ADA.multiply.produces valid amounts (4 mutations)
183.64 s
[really-safe-money-gen] coverage (1148/1610): Money\.AmountOfSpec.ADA.INR.convert.produces valid amounts (15 mutations)
183.87 s
[really-safe-money-gen] coverage (1150/1610): Money\.AmountOfSpec.ADA.multiply.is absorbed by 0 (5 mutations)
184.10 s
[really-safe-money-gen] coverage (1151/1610): Money\.AmountOfSpec.ADA.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
184.33 s
[really-safe-money-gen] coverage (1152/1610): Money\.AmountOfSpec.ADA.multiply.is distributive with add when both succeed (8 mutations)
184.55 s
[really-safe-money-gen] coverage (1153/1610): Money\.AmountOfSpec.ADA.multiply.has an identity\: 1 (4 mutations)
184.70 s
[really-safe-money-gen] coverage (1154/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 0 (22 mutations)
184.86 s
[really-safe-money-gen] coverage (1155/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on +Infinity (7 mutations)
184.88 s
[really-safe-money-gen] coverage (1156/1610): Money\.AmountOfSpec.ADA.fromDouble.succeeds on 1 (22 mutations)
185.01 s
[really-safe-money-gen] coverage (1157/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on NaN (5 mutations)
185.07 s
[really-safe-money-gen] coverage (1158/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -Infinity (3 mutations)
185.17 s
[really-safe-money-gen] coverage (1159/1610): Money\.AmountOfSpec.ADA.fromDouble.produces valid amounts (22 mutations)
185.22 s
[really-safe-money-gen] coverage (1160/1610): Money\.AmountOfSpec.ADA.fromDouble.fails on -1 (3 mutations)
185.38 s
[really-safe-money-gen] coverage (1161/1610): Money\.AmountOfSpec.ADA.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
185.46 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)
185.54 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)
185.59 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)
185.66 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)
185.67 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)
185.96 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)
186.25 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)
186.29 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)
186.29 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)
186.38 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)
186.43 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)
186.58 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)
186.60 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)
186.61 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)
186.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)
187.06 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)
187.28 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)
187.52 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)
187.63 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)
187.82 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)
187.82 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)
187.91 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)
188.05 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)
188.13 s
[really-safe-money-gen] coverage (1189/1610): Money\.AmountOfSpec.INR.zero.is valid (1 mutations)
188.22 s
[really-safe-money-gen] coverage (1190/1610): Money\.AmountOfSpec.INR.fromMinimalQuantisations.produces valid amounts (0 mutations)
188.38 s
[really-safe-money-gen] coverage (1191/1610): Money\.AmountOfSpec.INR.fraction.produces valid amounts (10 mutations)
188.39 s
[really-safe-money-gen] coverage (1192/1610): Money\.AmountOfSpec.INR.ADA.rate.produces valid amounts (6 mutations)
188.50 s
[really-safe-money-gen] coverage (1193/1610): Money\.AmountOfSpec.INR.ADA.convert.produces valid amounts (15 mutations)
188.51 s
[really-safe-money-gen] coverage (1194/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -Infinity (3 mutations)
188.58 s
[really-safe-money-gen] coverage (1196/1610): Money\.AmountOfSpec.INR.fromDouble.fails on NaN (5 mutations)
188.62 s
[really-safe-money-gen] coverage (1195/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 1 (22 mutations)
188.96 s
[really-safe-money-gen] coverage (1197/1610): Money\.AmountOfSpec.INR.fromDouble.fails on +Infinity (7 mutations)
189.13 s
[really-safe-money-gen] coverage (1200/1610): Money\.AmountOfSpec.INR.fromDouble.produces valid amounts (22 mutations)
189.14 s
[really-safe-money-gen] coverage (1199/1610): Money\.AmountOfSpec.INR.fromDouble.succeeds on 0 (22 mutations)
189.17 s
[really-safe-money-gen] coverage (1198/1610): Money\.AmountOfSpec.INR.fromDouble.fails on -1 (3 mutations)
189.22 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)
189.31 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)
189.50 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)
189.53 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)
189.56 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)
189.84 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)
189.96 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)
190.31 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)
190.41 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)
190.55 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)
190.78 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)
190.91 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)
190.97 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)
191.07 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)
191.10 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)
191.33 s
[really-safe-money-gen] coverage (1100/1610): Money\.AmountOfSpec.ADA.toRational.produces valid Rationals (0 mutations)
191.35 s
[really-safe-money-gen] coverage (1102/1610): Money\.AmountOfSpec.ADA.fromRatio.roundtrips with toRatio (13 mutations)
191.37 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)
191.41 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)
191.50 s
[really-safe-money-gen] coverage (1099/1610): Money\.AmountOfSpec.ADA.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
191.57 s
[really-safe-money-gen] coverage (1103/1610): Money\.AmountOfSpec.ADA.fromRatio.succeeds on 0 (14 mutations)
191.61 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)
191.82 s
[really-safe-money-gen] coverage (1089/1610): Money\.AmountOfSpec.ADA.BTC.convert.produces valid amounts (15 mutations)
191.98 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)
192.01 s
[really-safe-money-gen] coverage (1101/1610): Money\.AmountOfSpec.ADA.fromRatio.produces valid AmountOfs (13 mutations)
192.03 s
[really-safe-money-gen] coverage (1090/1610): Money\.AmountOfSpec.ADA.BTC.rate.produces valid amounts (6 mutations)
192.10 s
[really-safe-money-gen] coverage (1011/1610): Money\.AmountOfSpec.USD.fromRatio.fails on +Infinity (2 mutations)
192.15 s
[really-safe-money-gen] coverage (1097/1610): Money\.AmountOfSpec.ADA.zero.is valid (1 mutations)
192.33 s
[really-safe-money-gen] coverage (1104/1610): Money\.AmountOfSpec.ADA.fromRatio.fails on +Infinity (2 mutations)
192.39 s
[really-safe-money-gen] coverage (1181/1610): Money\.AmountOfSpec.INR.distribute.produces valid amounts (17 mutations)
192.54 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)
192.72 s
[really-safe-money-gen] coverage (1180/1610): Money\.AmountOfSpec.INR.distribute.produces results that sum up to the greater whole (18 mutations)
192.90 s
[really-safe-money-gen] coverage (1179/1610): Money\.AmountOfSpec.INR.toDouble.produces valid Doubles (0 mutations)
193.07 s
[really-safe-money-gen] coverage (1178/1610): Money\.AmountOfSpec.INR.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
193.21 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)
193.42 s
[really-safe-money-gen] coverage (1229/1610): Money\.AmountOfSpec.INR.fromRational.fails on +Infinity (2 mutations)
193.58 s
[really-safe-money-gen] coverage (1220/1610): Money\.AmountOfSpec.INR.multiply.produces valid amounts (4 mutations)
193.66 s
[really-safe-money-gen] coverage (1224/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
193.74 s
[really-safe-money-gen] coverage (1231/1610): Money\.AmountOfSpec.INR.fromRational.produces valid Amounts (13 mutations)
193.89 s
[really-safe-money-gen] coverage (1230/1610): Money\.AmountOfSpec.INR.fromRational.fails on NaN (2 mutations)
193.99 s
[really-safe-money-gen] coverage (1232/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 1 (13 mutations)
194.22 s
[really-safe-money-gen] coverage (1233/1610): Money\.AmountOfSpec.INR.fromRational.fails on -1 (5 mutations)
194.22 s
[really-safe-money-gen] coverage (1235/1610): Money\.AmountOfSpec.INR.add.is associative when both succeed (4 mutations)
194.26 s
[really-safe-money-gen] coverage (1236/1610): Money\.AmountOfSpec.INR.add.matches what you would get with Integer, if nothing fails (4 mutations)
194.32 s
[really-safe-money-gen] coverage (1234/1610): Money\.AmountOfSpec.INR.add.is commutative (4 mutations)
194.39 s
[really-safe-money-gen] coverage (1238/1610): Money\.AmountOfSpec.INR.add.has a right-identity\: zero (5 mutations)
194.51 s
[really-safe-money-gen] coverage (1237/1610): Money\.AmountOfSpec.INR.add.has a left-identity\: zero (5 mutations)
194.54 s
[really-safe-money-gen] coverage (1248/1610): Money\.AmountOfSpec.INR.BTC.rate.produces valid amounts (6 mutations)
194.68 s
[really-safe-money-gen] coverage (1249/1610): Money\.AmountOfSpec.INR.BTC.convert.produces valid amounts (15 mutations)
194.77 s
[really-safe-money-gen] coverage (1252/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 1 (13 mutations)
194.82 s
[really-safe-money-gen] coverage (1250/1610): Money\.AmountOfSpec.INR.fromRatio.fails on NaN (2 mutations)
194.86 s
[really-safe-money-gen] coverage (1251/1610): Money\.AmountOfSpec.INR.fromRatio.fails on +Infinity (2 mutations)
194.93 s
[really-safe-money-gen] coverage (1253/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 0 (14 mutations)
195.00 s
[really-safe-money-gen] coverage (1254/1610): Money\.AmountOfSpec.INR.fromRatio.roundtrips with toRatio (13 mutations)
195.20 s
[really-safe-money-gen] coverage (1256/1610): Money\.AmountOfSpec.INR.fromRatio.fails on 7\.123 (9 mutations)
195.24 s
[really-safe-money-gen] coverage (1255/1610): Money\.AmountOfSpec.INR.fromRatio.produces valid AmountOfs (13 mutations)
195.36 s
[really-safe-money-gen] coverage (1257/1610): Money\.AmountOfSpec.INR.fromRatio.succeeds on 77 (13 mutations)
195.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)
195.77 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)
195.93 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)
196.05 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)
196.14 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)
196.45 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)
196.48 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)
196.55 s
[really-safe-money-gen] coverage (1265/1610): Money\.AmountOfSpec.INR.USD.convert.produces valid amounts (15 mutations)
196.68 s
[really-safe-money-gen] coverage (1266/1610): Money\.AmountOfSpec.INR.USD.rate.produces valid amounts (6 mutations)
196.77 s
[really-safe-money-gen] coverage (1227/1610): Money\.AmountOfSpec.INR.fromRational.fails on -Infinity (2 mutations)
196.90 s
[really-safe-money-gen] coverage (938/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.produces valid literals (24 mutations)
196.97 s
[really-safe-money-gen] coverage (1269/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.produces valid Int64s (0 mutations)
197.03 s
[really-safe-money-gen] coverage (1270/1610): Money\.AmountOfSpec.BTC.INR.rate.produces valid amounts (6 mutations)
197.04 s
[really-safe-money-gen] coverage (1267/1610): Money\.AmountOfSpec.BTC.format.produces valid strings (3 mutations)
197.09 s
[really-safe-money-gen] coverage (1271/1610): Money\.AmountOfSpec.BTC.INR.convert.produces valid amounts (15 mutations)
197.17 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)
197.24 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)
197.34 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)
197.39 s
[really-safe-money-gen] coverage (1268/1610): Money\.AmountOfSpec.BTC.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
197.43 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)
197.52 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)
197.74 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)
197.76 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)
197.92 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)
198.22 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)
198.30 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)
198.39 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)
198.59 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)
198.84 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)
199.02 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)
199.10 s
[really-safe-money-gen] coverage (937/1610): Money\.QuantisationFactorSpec.DecimalLiteral.toDecimalLiteral.roundtrips with fromDecimalLiteral (48 mutations)
199.26 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)
199.39 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)
199.59 s
[really-safe-money-gen] coverage (1289/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on NaN (2 mutations)
199.85 s
[really-safe-money-gen] coverage (1246/1610): Money\.AmountOfSpec.INR.INR.rate.produces valid amounts (6 mutations)
199.85 s
[really-safe-money-gen] coverage (1247/1610): Money\.AmountOfSpec.INR.INR.convert.produces valid amounts (15 mutations)
200.00 s
[really-safe-money-gen] coverage (1243/1610): Money\.AmountOfSpec.INR.sum.produces valid amounts (5 mutations)
200.08 s
[really-safe-money-gen] coverage (1292/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 1 (13 mutations)
200.28 s
[really-safe-money-gen] coverage (1244/1610): Money\.AmountOfSpec.INR.sum.matches what you would get with Integer, if nothing fails (5 mutations)
200.32 s
[really-safe-money-gen] coverage (1295/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on 7\.123 (9 mutations)
200.37 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)
200.38 s
[really-safe-money-gen] coverage (1294/1610): Money\.AmountOfSpec.BTC.fromRatio.fails on +Infinity (2 mutations)
200.45 s
[really-safe-money-gen] coverage (1297/1610): Money\.AmountOfSpec.BTC.CHF.rate.produces valid amounts (6 mutations)
200.46 s
[really-safe-money-gen] coverage (1296/1610): Money\.AmountOfSpec.BTC.CHF.convert.produces valid amounts (15 mutations)
200.58 s
[really-safe-money-gen] coverage (1239/1610): Money\.AmountOfSpec.INR.add.produces valid amounts (4 mutations)
200.68 s
[really-safe-money-gen] coverage (1298/1610): Money\.AmountOfSpec.BTC.fromRational.fails on NaN (2 mutations)
200.72 s
[really-safe-money-gen] coverage (1242/1610): Money\.AmountOfSpec.INR.toRational.produces valid Rationals (0 mutations)
200.83 s
[really-safe-money-gen] coverage (1299/1610): Money\.AmountOfSpec.BTC.fromRational.produces valid Amounts (13 mutations)
200.91 s
[really-safe-money-gen] coverage (1240/1610): Money\.AmountOfSpec.INR.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
200.99 s
[really-safe-money-gen] coverage (1228/1610): Money\.AmountOfSpec.INR.fromRational.roundtrips with toRational (13 mutations)
201.04 s
[really-safe-money-gen] coverage (1288/1610): Money\.AmountOfSpec.BTC.fromRatio.roundtrips with toRatio (13 mutations)
201.11 s
[really-safe-money-gen] coverage (1221/1610): Money\.AmountOfSpec.INR.multiply.is absorbed by 0 (5 mutations)
201.34 s
[really-safe-money-gen] coverage (1301/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 1 (13 mutations)
201.45 s
[really-safe-money-gen] coverage (1226/1610): Money\.AmountOfSpec.INR.fromRational.succeeds on 0 (13 mutations)
201.52 s
[really-safe-money-gen] coverage (1302/1610): Money\.AmountOfSpec.BTC.fromRational.fails on +Infinity (2 mutations)
201.81 s
[really-safe-money-gen] coverage (1293/1610): Money\.AmountOfSpec.BTC.fromRatio.produces valid AmountOfs (13 mutations)
201.92 s
[really-safe-money-gen] coverage (1291/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 0 (14 mutations)
202.16 s
[really-safe-money-gen] coverage (1290/1610): Money\.AmountOfSpec.BTC.fromRatio.succeeds on 77 (13 mutations)
202.19 s
[really-safe-money-gen] coverage (1315/1610): Money\.AmountOfSpec.BTC.USD.convert.produces valid amounts (15 mutations)
202.35 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)
202.43 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)
202.63 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)
202.87 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)
202.92 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)
203.06 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)
203.12 s
[really-safe-money-gen] coverage (1322/1610): Money\.AmountOfSpec.BTC.add.has a right-identity\: zero (5 mutations)
203.29 s
[really-safe-money-gen] coverage (1323/1610): Money\.AmountOfSpec.BTC.add.has a left-identity\: zero (5 mutations)
203.32 s
[really-safe-money-gen] coverage (1324/1610): Money\.AmountOfSpec.BTC.add.matches what you would get with Integer, if nothing fails (4 mutations)
203.36 s
[really-safe-money-gen] coverage (1326/1610): Money\.AmountOfSpec.BTC.add.produces valid amounts (4 mutations)
203.36 s
[really-safe-money-gen] coverage (1325/1610): Money\.AmountOfSpec.BTC.add.is commutative (4 mutations)
203.48 s
[really-safe-money-gen] coverage (1327/1610): Money\.AmountOfSpec.BTC.add.is associative when both succeed (4 mutations)
203.53 s
[really-safe-money-gen] coverage (1328/1610): Money\.AmountOfSpec.BTC.ADA.convert.produces valid amounts (15 mutations)
203.60 s
[really-safe-money-gen] coverage (1329/1610): Money\.AmountOfSpec.BTC.ADA.rate.produces valid amounts (6 mutations)
203.63 s
[really-safe-money-gen] coverage (1330/1610): Money\.AmountOfSpec.BTC.zero.is valid (1 mutations)
203.71 s
[really-safe-money-gen] coverage (1331/1610): Money\.AmountOfSpec.BTC.BTC.convert.produces valid amounts (15 mutations)
203.83 s
[really-safe-money-gen] coverage (1332/1610): Money\.AmountOfSpec.BTC.BTC.rate.produces valid amounts (6 mutations)
203.92 s
[really-safe-money-gen] coverage (1333/1610): Money\.AmountOfSpec.BTC.toDouble.produces valid Doubles (0 mutations)
203.96 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)
203.99 s
[really-safe-money-gen] coverage (1335/1610): Money\.AmountOfSpec.BTC.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
204.09 s
[really-safe-money-gen] coverage (1336/1610): Money\.AmountOfSpec.BTC.fromMinimalQuantisations.produces valid amounts (0 mutations)
204.28 s
[really-safe-money-gen] coverage (1337/1610): Money\.AmountOfSpec.BTC.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
204.40 s
[really-safe-money-gen] coverage (1338/1610): Money\.AmountOfSpec.BTC.sum.matches what you would get with Integer, if nothing fails (5 mutations)
204.49 s
[really-safe-money-gen] coverage (1339/1610): Money\.AmountOfSpec.BTC.sum.produces valid amounts (5 mutations)
204.69 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)
204.81 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)
205.11 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)
205.12 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)
205.12 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)
205.48 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)
205.56 s
[really-safe-money-gen] coverage (1346/1610): Money\.AmountOfSpec.BTC.distribute.produces valid amounts (17 mutations)
205.76 s
[really-safe-money-gen] coverage (1347/1610): Money\.AmountOfSpec.BTC.distribute.produces results that sum up to the greater whole (18 mutations)
205.86 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)
205.99 s
[really-safe-money-gen] coverage (1349/1610): Money\.AmountOfSpec.BTC.toRational.produces valid Rationals (0 mutations)
206.01 s
[really-safe-money-gen] coverage (1350/1610): Money\.AmountOfSpec.BTC.fraction.produces valid amounts (10 mutations)
206.09 s
[really-safe-money-gen] coverage (1351/1610): Money\.AmountOfSpec.BTC.multiply.is absorbed by 0 (5 mutations)
206.22 s
[really-safe-money-gen] coverage (1353/1610): Money\.AmountOfSpec.BTC.multiply.produces valid amounts (4 mutations)
206.24 s
[really-safe-money-gen] coverage (1354/1610): Money\.AmountOfSpec.BTC.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
206.26 s
[really-safe-money-gen] coverage (1352/1610): Money\.AmountOfSpec.BTC.multiply.has an identity\: 1 (4 mutations)
206.40 s
[really-safe-money-gen] coverage (1355/1610): Money\.AmountOfSpec.BTC.multiply.is distributive with add when both succeed (8 mutations)
206.43 s
[really-safe-money-gen] coverage (1356/1610): Money\.AmountOfSpec.CHF.INR.convert.produces valid amounts (15 mutations)
206.54 s
[really-safe-money-gen] coverage (1357/1610): Money\.AmountOfSpec.CHF.INR.rate.produces valid amounts (6 mutations)
206.54 s
[really-safe-money-gen] coverage (1358/1610): Money\.AmountOfSpec.CHF.USD.convert.produces valid amounts (15 mutations)
206.62 s
[really-safe-money-gen] coverage (1360/1610): Money\.AmountOfSpec.CHF.fromMinimalQuantisations.produces valid amounts (0 mutations)
206.78 s
[really-safe-money-gen] coverage (1359/1610): Money\.AmountOfSpec.CHF.USD.rate.produces valid amounts (6 mutations)
206.84 s
[really-safe-money-gen] coverage (1364/1610): Money\.AmountOfSpec.CHF.fromRatio.roundtrips with toRatio (13 mutations)
206.91 s
[really-safe-money-gen] coverage (1365/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 1 (13 mutations)
207.00 s
[really-safe-money-gen] coverage (1366/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on 7\.123 (9 mutations)
207.03 s
[really-safe-money-gen] coverage (1367/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 77 (13 mutations)
207.16 s
[really-safe-money-gen] coverage (1368/1610): Money\.AmountOfSpec.CHF.fromRatio.produces valid AmountOfs (13 mutations)
207.53 s
[really-safe-money-gen] coverage (1370/1610): Money\.AmountOfSpec.CHF.multiply.has an identity\: 1 (4 mutations)
207.54 s
[really-safe-money-gen] coverage (1369/1610): Money\.AmountOfSpec.CHF.fraction.produces valid amounts (10 mutations)
207.63 s
[really-safe-money-gen] coverage (1371/1610): Money\.AmountOfSpec.CHF.multiply.is absorbed by 0 (5 mutations)
207.73 s
[really-safe-money-gen] coverage (1372/1610): Money\.AmountOfSpec.CHF.multiply.is distributive with add when both succeed (8 mutations)
207.88 s
[really-safe-money-gen] coverage (1374/1610): Money\.AmountOfSpec.CHF.multiply.produces valid amounts (4 mutations)
208.06 s
[really-safe-money-gen] coverage (1363/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on NaN (2 mutations)
208.15 s
[really-safe-money-gen] coverage (1373/1610): Money\.AmountOfSpec.CHF.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
208.19 s
[really-safe-money-gen] coverage (1362/1610): Money\.AmountOfSpec.CHF.fromRatio.fails on +Infinity (2 mutations)
208.43 s
[really-safe-money-gen] coverage (1375/1610): Money\.AmountOfSpec.CHF.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
208.60 s
[really-safe-money-gen] coverage (1379/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -Infinity (2 mutations)
208.63 s
[really-safe-money-gen] coverage (1361/1610): Money\.AmountOfSpec.CHF.fromRatio.succeeds on 0 (14 mutations)
208.87 s
[really-safe-money-gen] coverage (1380/1610): Money\.AmountOfSpec.CHF.fromRational.fails on -1 (5 mutations)
209.05 s
[really-safe-money-gen] coverage (1381/1610): Money\.AmountOfSpec.CHF.fromRational.fails on NaN (2 mutations)
209.08 s
[really-safe-money-gen] coverage (1382/1610): Money\.AmountOfSpec.CHF.fromRational.roundtrips with toRational (13 mutations)
209.10 s
[really-safe-money-gen] coverage (1377/1610): Money\.AmountOfSpec.CHF.fromRational.produces valid Amounts (13 mutations)
209.17 s
[really-safe-money-gen] coverage (1378/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 0 (13 mutations)
209.19 s
[really-safe-money-gen] coverage (1383/1610): Money\.AmountOfSpec.CHF.fromRational.succeeds on 1 (13 mutations)
209.22 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)
209.30 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)
209.45 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)
209.52 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)
209.57 s
[really-safe-money-gen] coverage (1390/1610): Money\.AmountOfSpec.CHF.sum.matches what you would get with Integer, if nothing fails (5 mutations)
209.81 s
[really-safe-money-gen] coverage (1391/1610): Money\.AmountOfSpec.CHF.sum.produces valid amounts (5 mutations)
209.85 s
[really-safe-money-gen] coverage (1392/1610): Money\.AmountOfSpec.CHF.BTC.convert.produces valid amounts (15 mutations)
209.89 s
[really-safe-money-gen] coverage (1393/1610): Money\.AmountOfSpec.CHF.BTC.rate.produces valid amounts (6 mutations)
209.99 s
[really-safe-money-gen] coverage (1395/1610): Money\.AmountOfSpec.CHF.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
210.00 s
[really-safe-money-gen] coverage (1394/1610): Money\.AmountOfSpec.CHF.zero.is valid (1 mutations)
210.06 s
[really-safe-money-gen] coverage (1396/1610): Money\.AmountOfSpec.CHF.toDouble.produces valid Doubles (0 mutations)
210.45 s
[really-safe-money-gen] coverage (1397/1610): Money\.AmountOfSpec.CHF.toRational.produces valid Rationals (0 mutations)
210.46 s
[really-safe-money-gen] coverage (1398/1610): Money\.AmountOfSpec.CHF.CHF.convert.produces valid amounts (15 mutations)
210.64 s
[really-safe-money-gen] coverage (1399/1610): Money\.AmountOfSpec.CHF.CHF.rate.produces valid amounts (6 mutations)
210.66 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)
210.85 s
[really-safe-money-gen] coverage (1401/1610): Money\.AmountOfSpec.CHF.format.produces valid strings (3 mutations)
210.92 s
[really-safe-money-gen] coverage (1402/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 1 (22 mutations)
211.11 s
[really-safe-money-gen] coverage (1403/1610): Money\.AmountOfSpec.CHF.fromDouble.produces valid amounts (22 mutations)
211.22 s
[really-safe-money-gen] coverage (1404/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on +Infinity (7 mutations)
211.34 s
[really-safe-money-gen] coverage (1405/1610): Money\.AmountOfSpec.CHF.fromDouble.succeeds on 0 (22 mutations)
211.54 s
[really-safe-money-gen] coverage (1407/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on NaN (5 mutations)
211.58 s
[really-safe-money-gen] coverage (1406/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -1 (3 mutations)
211.77 s
[really-safe-money-gen] coverage (1408/1610): Money\.AmountOfSpec.CHF.fromDouble.fails on -Infinity (3 mutations)
212.08 s
[really-safe-money-gen] coverage (1410/1610): Money\.AmountOfSpec.CHF.ADA.convert.produces valid amounts (15 mutations)
212.09 s
[really-safe-money-gen] coverage (1409/1610): Money\.AmountOfSpec.CHF.ADA.rate.produces valid amounts (6 mutations)
212.15 s
[really-safe-money-gen] coverage (1411/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.produces valid Int64s (0 mutations)
212.19 s
[really-safe-money-gen] coverage (1412/1610): Money\.AmountOfSpec.CHF.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
212.21 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)
212.37 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)
212.42 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)
212.43 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)
212.52 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)
212.61 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)
212.73 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)
212.86 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)
212.90 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)
212.97 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)
213.05 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)
213.07 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)
213.42 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)
213.42 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)
213.61 s
[really-safe-money-gen] coverage (1427/1610): Money\.AmountOfSpec.CHF.Ord (AmountOf * CHF).(<=) \:\: (AmountOf * CHF) -> (AmountOf * CHF) -> Bool.is reflexive for "valid (AmountOf * CHF)"'s (0 mutations)
213.68 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)
213.82 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)
213.94 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)
214.01 s
[really-safe-money-gen] coverage (1431/1610): Money\.AmountOfSpec.CHF.distribute.produces valid amounts (17 mutations)
214.18 s
[really-safe-money-gen] coverage (1432/1610): Money\.AmountOfSpec.CHF.distribute.produces results that sum up to the greater whole (18 mutations)
214.25 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)
214.60 s
[really-safe-money-gen] coverage (1434/1610): Money\.AmountOfSpec.CHF.distribute.Eq (Distribution (AmountOf * CHF)).(/=) \:\: (Distribution (AmountOf * CHF)) -> (Distribution (AmountOf * CHF)) -> Bool.is equivalent to (\\a b -> not $ a == b) for "valid (Distribution (AmountOf * CHF))"s (1 mutations)
214.61 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)
214.91 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)
215.07 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)
215.09 s
[really-safe-money-gen] coverage (1439/1610): Money\.AmountOfSpec.CHF.add.is commutative (4 mutations)
215.09 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)
215.12 s
[really-safe-money-gen] coverage (1440/1610): Money\.AmountOfSpec.CHF.add.has a left-identity\: zero (5 mutations)
215.21 s
[really-safe-money-gen] coverage (1441/1610): Money\.AmountOfSpec.CHF.add.is associative when both succeed (4 mutations)
215.33 s
[really-safe-money-gen] coverage (1443/1610): Money\.AmountOfSpec.CHF.add.matches what you would get with Integer, if nothing fails (4 mutations)
215.35 s
[really-safe-money-gen] coverage (1442/1610): Money\.AmountOfSpec.CHF.add.produces valid amounts (4 mutations)
215.40 s
[really-safe-money-gen] coverage (1444/1610): Money\.AmountOfSpec.CHF.add.has a right-identity\: zero (5 mutations)
215.47 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)
215.52 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)
215.69 s
[really-safe-money-gen] coverage (1311/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -Infinity (3 mutations)
215.73 s
[really-safe-money-gen] coverage (1309/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on -1 (3 mutations)
215.77 s
[really-safe-money-gen] coverage (1308/1610): Money\.AmountOfSpec.BTC.fromDouble.produces valid amounts (22 mutations)
215.89 s
[really-safe-money-gen] coverage (1312/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on NaN (5 mutations)
215.89 s
[really-safe-money-gen] coverage (1314/1610): Money\.AmountOfSpec.BTC.USD.rate.produces valid amounts (6 mutations)
215.90 s
[really-safe-money-gen] coverage (1306/1610): Money\.AmountOfSpec.BTC.fromDouble.fails on +Infinity (7 mutations)
216.19 s
[really-safe-money-gen] coverage (1310/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 0 (22 mutations)
216.24 s
[really-safe-money-gen] coverage (1305/1610): Money\.AmountOfSpec.BTC.fromRational.roundtrips with toRational (13 mutations)
216.40 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)
216.49 s
[really-safe-money-gen] coverage (1304/1610): Money\.AmountOfSpec.BTC.fromRational.succeeds on 0 (13 mutations)
216.50 s
[really-safe-money-gen] coverage (1303/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -Infinity (2 mutations)
216.77 s
[really-safe-money-gen] coverage (1452/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 10 (3 mutations)
216.82 s
[really-safe-money-gen] coverage (1307/1610): Money\.AmountOfSpec.BTC.fromDouble.succeeds on 1 (22 mutations)
216.96 s
[really-safe-money-gen] coverage (1219/1610): Money\.AmountOfSpec.INR.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
217.02 s
[really-safe-money-gen] coverage (1218/1610): Money\.AmountOfSpec.INR.CHF.rate.produces valid amounts (6 mutations)
217.47 s
[really-safe-money-gen] coverage (1223/1610): Money\.AmountOfSpec.INR.multiply.is distributive with add when both succeed (8 mutations)
217.48 s
[really-safe-money-gen] coverage (1222/1610): Money\.AmountOfSpec.INR.multiply.has an identity\: 1 (4 mutations)
217.71 s
[really-safe-money-gen] coverage (1217/1610): Money\.AmountOfSpec.INR.CHF.convert.produces valid amounts (15 mutations)
217.80 s
[really-safe-money-gen] coverage (1225/1610): Money\.AmountOfSpec.INR.toMinimalQuantisations.produces valid Int64s (0 mutations)
218.30 s
[really-safe-money-gen] coverage (1458/1610): Money\.AmountSpec.fromRatio.fails on +Infinity (2 mutations)
218.30 s
[really-safe-money-gen] coverage (1457/1610): Money\.AmountSpec.fromRatio.fails on NaN (2 mutations)
218.32 s
[really-safe-money-gen] coverage (1456/1610): Money\.AmountSpec.fromRatio.succeeds on 1 (13 mutations)
218.32 s
[really-safe-money-gen] coverage (1459/1610): Money\.AmountSpec.fromRatio.succeeds on 77\.02 with quantisation factor 100 (13 mutations)
218.36 s
[really-safe-money-gen] coverage (1454/1610): Money\.AmountSpec.fromRatio.produces valid Amounts (13 mutations)
218.42 s
[really-safe-money-gen] coverage (1455/1610): Money\.AmountSpec.fromRatio.roundtrips with toRatio (13 mutations)
218.42 s
[really-safe-money-gen] coverage (1461/1610): Money\.AmountSpec.fromRatio.fails on 7\.123 with quantisation factor 10 (9 mutations)
218.49 s
[really-safe-money-gen] coverage (1453/1610): Money\.AmountSpec.format.produces valid strings (3 mutations)
218.55 s
[really-safe-money-gen] coverage (1462/1610): Money\.AmountSpec.distribute.correctly distributes 3 into 3 (6 mutations)
218.63 s
[really-safe-money-gen] coverage (1460/1610): Money\.AmountSpec.fromRatio.succeeds on 0 (13 mutations)
218.68 s
[really-safe-money-gen] coverage (1465/1610): Money\.AmountSpec.distribute.correctly distributes 10 into 4 (6 mutations)
218.82 s
[really-safe-money-gen] coverage (1467/1610): Money\.AmountSpec.distribute.correctly distributes 5 into 3 (6 mutations)
218.85 s
[really-safe-money-gen] coverage (1463/1610): Money\.AmountSpec.distribute.produces results that sum up to the greater whole (14 mutations)
218.89 s
[really-safe-money-gen] coverage (1466/1610): Money\.AmountSpec.distribute.GenValid (Distribution Amount).genValid \:\: Gen (Distribution Amount).only generates valid '(Distribution Amount)'s (8 mutations)
219.25 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)
219.25 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)
219.50 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)
219.53 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)
219.61 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)
219.81 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)
219.94 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)
219.96 s
[really-safe-money-gen] coverage (1474/1610): Money\.AmountSpec.distribute.produces valid amounts (13 mutations)
220.31 s
[really-safe-money-gen] coverage (1477/1610): Money\.AmountSpec.sum.fails to sum above maxBound (5 mutations)
220.47 s
[really-safe-money-gen] coverage (1478/1610): Money\.AmountSpec.sum.correctly sums [1,2,3] to 6 (5 mutations)
220.64 s
[really-safe-money-gen] coverage (1480/1610): Money\.AmountSpec.multiply.fails for 2 * maxbound (4 mutations)
220.88 s
[really-safe-money-gen] coverage (1479/1610): Money\.AmountSpec.multiply.matches what you would get with Integer, if nothing fails (4 mutations)
221.15 s
[really-safe-money-gen] coverage (1475/1610): Money\.AmountSpec.sum.produces valid amounts (5 mutations)
221.30 s
[really-safe-money-gen] coverage (1485/1610): Money\.AmountSpec.multiply.succeeds for 3 * 6 (4 mutations)
221.31 s
[really-safe-money-gen] coverage (1476/1610): Money\.AmountSpec.sum.matches what you would get with Integer, if nothing fails (5 mutations)
221.31 s
[really-safe-money-gen] coverage (1481/1610): Money\.AmountSpec.multiply.produces valid amounts (4 mutations)
221.34 s
[really-safe-money-gen] coverage (1482/1610): Money\.AmountSpec.multiply.is absorbed by 0 (5 mutations)
221.43 s
[really-safe-money-gen] coverage (1484/1610): Money\.AmountSpec.multiply.has an identity\: 1 (4 mutations)
221.44 s
[really-safe-money-gen] coverage (1487/1610): Money\.AmountSpec.fromDouble.fails on really large numbers (14 mutations)
221.57 s
[really-safe-money-gen] coverage (1489/1610): Money\.AmountSpec.fromDouble.succeeds on 77\.02 with quantisation factor 100 (22 mutations)
221.66 s
[really-safe-money-gen] coverage (1491/1610): Money\.AmountSpec.fromDouble.fails on really large numbers:1 (7 mutations)
221.67 s
[really-safe-money-gen] coverage (1483/1610): Money\.AmountSpec.multiply.is distributive with add when both succeed (8 mutations)
221.74 s
[really-safe-money-gen] coverage (1490/1610): Money\.AmountSpec.fromDouble.produces valid amounts (22 mutations)
221.81 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)
221.84 s
[really-safe-money-gen] coverage (1492/1610): Money\.AmountSpec.fromDouble.fails on NaN (5 mutations)
221.86 s
[really-safe-money-gen] coverage (1488/1610): Money\.AmountSpec.fromDouble.roundtrips with toDouble, back to double (22 mutations)
221.90 s
[really-safe-money-gen] coverage (1494/1610): Money\.AmountSpec.fromDouble.fails on 7\.123 with quantisation factor 10 (18 mutations)
221.92 s
[really-safe-money-gen] coverage (1493/1610): Money\.AmountSpec.fromDouble.fails on -1 (3 mutations)
222.17 s
[really-safe-money-gen] coverage (1496/1610): Money\.AmountSpec.fromDouble.fails on +Infinity (7 mutations)
222.26 s
[really-safe-money-gen] coverage (1495/1610): Money\.AmountSpec.fromDouble.fails on -Infinity (3 mutations)
222.62 s
[really-safe-money-gen] coverage (1499/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
222.68 s
[really-safe-money-gen] coverage (1497/1610): Money\.AmountSpec.fromDouble.succeeds on 1 (22 mutations)
222.76 s
[really-safe-money-gen] coverage (1498/1610): Money\.AmountSpec.fromDouble.succeeds on 0 (22 mutations)
222.87 s
[really-safe-money-gen] coverage (1446/1610): Money\.AmountSpec.fraction.Correctly fractions 101 with 1 % 100 (7 mutations)
222.88 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)
223.33 s
[really-safe-money-gen] coverage (1376/1610): Money\.AmountOfSpec.CHF.fromRational.fails on +Infinity (2 mutations)
223.35 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 (4 mutations)
223.39 s
[really-safe-money-gen] coverage (1451/1610): Money\.AmountSpec.format.formats 1 correctly with quantisation factor 1 (3 mutations)
223.75 s
[really-safe-money-gen] coverage (1245/1610): Money\.AmountOfSpec.INR.format.produces valid strings (3 mutations)
223.83 s
[really-safe-money-gen] coverage (1447/1610): Money\.AmountSpec.fraction.Produces a result that can be multiplied back (10 mutations)
223.99 s
[really-safe-money-gen] coverage (1449/1610): Money\.AmountSpec.fraction.Correctly fractions 100 with 1 % 100 (7 mutations)
224.20 s
[really-safe-money-gen] coverage (1300/1610): Money\.AmountOfSpec.BTC.fromRational.fails on -1 (5 mutations)
224.30 s
[really-safe-money-gen] coverage (1501/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
224.32 s
[really-safe-money-gen] coverage (1505/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is antisymmetric for "valid Amount"'s (0 mutations)
224.49 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)
224.52 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 (4 mutations)
224.56 s
[really-safe-money-gen] coverage (1503/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
224.67 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)
224.75 s
[really-safe-money-gen] coverage (1502/1610): Money\.AmountSpec.Ord Amount.(<=) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
224.80 s
[really-safe-money-gen] coverage (1448/1610): Money\.AmountSpec.fraction.produces valid amounts (10 mutations)
224.90 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)
224.92 s
[really-safe-money-gen] coverage (1513/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
224.96 s
[really-safe-money-gen] coverage (1514/1610): Money\.AmountSpec.Ord Amount.(>) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
225.02 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)
225.04 s
[really-safe-money-gen] coverage (1516/1610): Money\.AmountSpec.toRational.produces an invalid Rational with quantisation factor 0 (1 mutations)
225.17 s
[really-safe-money-gen] coverage (1515/1610): Money\.AmountSpec.toRational.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
225.55 s
[really-safe-money-gen] coverage (1518/1610): Money\.AmountSpec.fromRational.succeeds on 0 (13 mutations)
225.64 s
[really-safe-money-gen] coverage (1519/1610): Money\.AmountSpec.fromRational.fails on really large numbers (13 mutations)
225.67 s
[really-safe-money-gen] coverage (1517/1610): Money\.AmountSpec.fromRational.roundtrips with toRational (13 mutations)
225.82 s
[really-safe-money-gen] coverage (1522/1610): Money\.AmountSpec.fromRational.succeeds on 77\.02 with quantisation factor 100 (13 mutations)
225.88 s
[really-safe-money-gen] coverage (1520/1610): Money\.AmountSpec.fromRational.fails on -Infinity (2 mutations)
225.95 s
[really-safe-money-gen] coverage (1523/1610): Money\.AmountSpec.fromRational.fails on 7\.123 with quantisation factor 10 (9 mutations)
226.05 s
[really-safe-money-gen] coverage (1521/1610): Money\.AmountSpec.fromRational.succeeds on 1 (13 mutations)
226.47 s
[really-safe-money-gen] coverage (1526/1610): Money\.AmountSpec.fromRational.fails on NaN (2 mutations)
226.53 s
[really-safe-money-gen] coverage (1525/1610): Money\.AmountSpec.fromRational.fails on -1 (5 mutations)
226.80 s
[really-safe-money-gen] coverage (1527/1610): Money\.AmountSpec.fromRational.produces valid Amounts (13 mutations)
226.95 s
[really-safe-money-gen] coverage (1524/1610): Money\.AmountSpec.fromRational.fails on +Infinity (2 mutations)
226.95 s
[really-safe-money-gen] coverage (1528/1610): Money\.AmountSpec.add.is associative when both succeed (4 mutations)
227.12 s
[really-safe-money-gen] coverage (1529/1610): Money\.AmountSpec.add.is commutative (4 mutations)
227.22 s
[really-safe-money-gen] coverage (1530/1610): Money\.AmountSpec.add.fails for maxBound + 1 (4 mutations)
227.44 s
[really-safe-money-gen] coverage (1532/1610): Money\.AmountSpec.add.has a right-identity\: zero (5 mutations)
227.45 s
[really-safe-money-gen] coverage (1531/1610): Money\.AmountSpec.add.matches what you would get with Integer, if nothing fails (4 mutations)
227.49 s
[really-safe-money-gen] coverage (1534/1610): Money\.AmountSpec.add.fails for maxBound + maxBound (4 mutations)
227.60 s
[really-safe-money-gen] coverage (1533/1610): Money\.AmountSpec.add.produces valid amounts (4 mutations)
227.69 s
[really-safe-money-gen] coverage (1535/1610): Money\.AmountSpec.add.has a left-identity\: zero (5 mutations)
227.88 s
[really-safe-money-gen] coverage (1536/1610): Money\.AmountSpec.toMinimalQuantisations.roundtrips with fromMinimalQuantisations (0 mutations)
227.91 s
[really-safe-money-gen] coverage (1537/1610): Money\.AmountSpec.toMinimalQuantisations.produces valid Int64s (0 mutations)
228.02 s
[really-safe-money-gen] coverage (1538/1610): Money\.AmountSpec.Eq Amount.(/=) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"s (0 mutations)
228.08 s
[really-safe-money-gen] coverage (1509/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"'s (0 mutations)
228.10 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)
228.10 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)
228.14 s
[really-safe-money-gen] coverage (1508/1610): Money\.AmountSpec.Ord Amount.(<) \:\: Amount -> Amount -> Bool.is antireflexive for "valid Amount"'s (0 mutations)
228.14 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)
228.35 s
[really-safe-money-gen] coverage (1506/1610): Money\.AmountSpec.Ord Amount.(>=) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"'s (0 mutations)
228.43 s
[really-safe-money-gen] coverage (1546/1610): Money\.AmountSpec.toDouble.succeeds on 7702 with quantisation factor 100 (0 mutations)
228.59 s
[really-safe-money-gen] coverage (1547/1610): Money\.AmountSpec.toDouble.produces an infinite Double with quantisation factor 0 (0 mutations)
228.61 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)
228.62 s
[really-safe-money-gen] coverage (1545/1610): Money\.AmountSpec.toDouble.produces valid Doubles (0 mutations)
228.78 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)
228.86 s
[really-safe-money-gen] coverage (1550/1610): Money\.AmountSpec.rate.computes this USD to CHF rate correctly (6 mutations)
229.21 s
[really-safe-money-gen] coverage (1557/1610): Money\.AmountSpec.subtract.fails for 0 - maxBound (5 mutations)
229.50 s
[really-safe-money-gen] coverage (1551/1610): Money\.AmountSpec.zero.is valid (1 mutations)
229.62 s
[really-safe-money-gen] coverage (1559/1610): Money\.AmountSpec.subtract.matches what you would get with Integer, if nothing fails (5 mutations)
229.65 s
[really-safe-money-gen] coverage (1558/1610): Money\.AmountSpec.subtract.fails for 0 - 1 (5 mutations)
230.11 s
[really-safe-money-gen] coverage (1556/1610): Money\.AmountSpec.toRatio.produces valid Rationals when the quantisation factor is nonzero (0 mutations)
230.15 s
[really-safe-money-gen] coverage (1553/1610): Money\.AmountSpec.convert.converts this USD to CHF correctly (13 mutations)
230.37 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)
230.50 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 (15 mutations)
230.65 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)
230.67 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)
230.84 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)
231.06 s
[really-safe-money-gen] coverage (1587/1610): Money\.AmountSpec.fromMinimalQuantisations.produces valid amounts (0 mutations)
231.37 s
[really-safe-money-gen] coverage (1588/1610): Money\.CurrencySpec.Eq Currency.(/=) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"s (1 mutations)
231.44 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)
231.49 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)
231.51 s
[really-safe-money-gen] coverage (1593/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"s (1 mutations)
231.54 s
[really-safe-money-gen] coverage (1591/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is symmetric for "valid Currency"s (1 mutations)
231.55 s
[really-safe-money-gen] coverage (1592/1610): Money\.CurrencySpec.Eq Currency.(==) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"s (1 mutations)
231.57 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)
231.60 s
[really-safe-money-gen] coverage (1554/1610): Money\.AmountSpec.convert.produces valid amounts (15 mutations)
231.96 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)
232.03 s
[really-safe-money-gen] coverage (1598/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
232.08 s
[really-safe-money-gen] coverage (1597/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
232.14 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)
232.22 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)
232.28 s
[really-safe-money-gen] coverage (1600/1610): Money\.CurrencySpec.Ord Currency.(<=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
232.55 s
[really-safe-money-gen] coverage (1601/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
232.84 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)
232.88 s
[really-safe-money-gen] coverage (1603/1610): Money\.CurrencySpec.Ord Currency.(>) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
232.92 s
[really-safe-money-gen] coverage (1604/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
233.28 s
[really-safe-money-gen] coverage (1605/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is antisymmetric for "valid Currency"'s (1 mutations)
233.28 s
[really-safe-money-gen] coverage (1606/1610): Money\.CurrencySpec.Ord Currency.(>=) \:\: Currency -> Currency -> Bool.is reflexive for "valid Currency"'s (1 mutations)
233.55 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)
233.60 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)
233.64 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)
233.87 s
[really-safe-money-gen] coverage (1609/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is transitive for "valid Currency"'s (1 mutations)
233.91 s
[really-safe-money-gen] coverage (1610/1610): Money\.CurrencySpec.Ord Currency.(<) \:\: Currency -> Currency -> Bool.is antireflexive for "valid Currency"'s (1 mutations)
233.92 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)
234.19 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)
234.21 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)
234.22 s
[really-safe-money-gen] coverage (1570/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise (13 mutations)
234.29 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)
234.30 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)
234.30 s
[really-safe-money-gen] coverage (1571/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.fails on this amount that is too precise:1 (13 mutations)
234.35 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)
234.55 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)
234.59 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)
234.59 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)
234.60 s
[really-safe-money-gen] coverage (1569/1610): Money\.AmountSpec.DecimalLiteral.Amount\.fromDecimalLiteral.produces valid factors (17 mutations)
234.65 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)
234.66 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)
234.74 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)
234.77 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)
234.93 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)
234.98 s
[really-safe-money-gen] coverage (1555/1610): Money\.AmountSpec.toRatio.produces an invalid Rational with quantisation factor 0 (1 mutations)
235.04 s
[really-safe-money-gen] coverage (1543/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is symmetric for "valid Amount"s (0 mutations)
235.11 s
[really-safe-money-gen] coverage (1544/1610): Money\.AmountSpec.GenValid Amount.genValid \:\: Gen Amount.only generates valid 'Amount's (0 mutations)
235.12 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)
235.13 s
[really-safe-money-gen] coverage (1542/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is reflexive for "valid Amount"s (0 mutations)
235.14 s
[really-safe-money-gen] coverage (1548/1610): Money\.AmountSpec.rate.produces valid conversion rates (6 mutations)
235.17 s
[really-safe-money-gen] coverage (1541/1610): Money\.AmountSpec.Eq Amount.(==) \:\: Amount -> Amount -> Bool.is transitive for "valid Amount"s (0 mutations)
235.37 s
[really-safe-money-gen] coverage (1549/1610): Money\.AmountSpec.rate.computes a rate that can be used to do a conversion without rounding (14 mutations)
244.83 s
[really-safe-money-gen] coverage (1582/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.produces valid decimal literals (29 mutations)
248.79 s
[really-safe-money-gen] coverage (1583/1610): Money\.AmountSpec.DecimalLiteral.Amount\.toDecimalLiteral.roundtrips with Amount\.fromDecimalLiteral (45 mutations)
248.93 s
[really-safe-money-gen] mutation-nix: running mutations
250.71 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
250.73 s
[really-safe-money-gen] @@ -171,10 +171,10 @@
250.73 s
[really-safe-money-gen] fmap
250.73 s
[really-safe-money-gen] ( ( \theoreticalResult ->
250.73 s
[really-safe-money-gen] let rounder :: Rational -> Integer
250.73 s
[really-safe-money-gen] - rounder = case r of
250.73 s
[really-safe-money-gen] - RoundUp -> ceiling
250.73 s
[really-safe-money-gen] - RoundDown -> floor
250.73 s
[really-safe-money-gen] - RoundNearest -> round
250.73 s
[really-safe-money-gen] + rounder = case r of
250.73 s
[really-safe-money-gen] + RoundUp -> ceiling
250.73 s
[really-safe-money-gen] + RoundDown -> floor
250.73 s
[really-safe-money-gen] + RoundNearest -> round
250.73 s
[really-safe-money-gen] roundedResult :: Integer
250.73 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
250.73 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.73 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
250.73 s
[really-safe-money-gen] @@ -171,10 +171,10 @@
250.73 s
[really-safe-money-gen] fmap
250.73 s
[really-safe-money-gen] ( ( \theoreticalResult ->
250.73 s
[really-safe-money-gen] let rounder :: Rational -> Integer
250.73 s
[really-safe-money-gen] - rounder = case r of
250.73 s
[really-safe-money-gen] - RoundUp -> ceiling
250.73 s
[really-safe-money-gen] - RoundDown -> floor
250.73 s
[really-safe-money-gen] - RoundNearest -> round
250.73 s
[really-safe-money-gen] + rounder = case r of
250.73 s
[really-safe-money-gen] + RoundUp -> ceiling
250.73 s
[really-safe-money-gen] + RoundDown -> floor
250.73 s
[really-safe-money-gen] + RoundNearest -> round
250.73 s
[really-safe-money-gen] roundedResult :: Integer
250.73 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
250.73 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.73 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
250.73 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
250.73 s
[really-safe-money-gen] Just a -> do
250.74 s
[really-safe-money-gen] r <- Account.subtract a account
250.74 s
[really-safe-money-gen] Just $
250.74 s
[really-safe-money-gen] - if r == Account.zero
250.74 s
[really-safe-money-gen] + if False
250.74 s
[really-safe-money-gen] then M.delete currency m
250.74 s
[really-safe-money-gen] else M.insert currency r m
250.74 s
[really-safe-money-gen]
250.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:174:25-38
250.74 s
[really-safe-money-gen] @@ -171,10 +171,10 @@
250.74 s
[really-safe-money-gen] fmap
250.74 s
[really-safe-money-gen] ( ( \theoreticalResult ->
250.74 s
[really-safe-money-gen] let rounder :: Rational -> Integer
250.74 s
[really-safe-money-gen] - rounder = case r of
250.74 s
[really-safe-money-gen] - RoundUp -> ceiling
250.74 s
[really-safe-money-gen] - RoundDown -> floor
250.74 s
[really-safe-money-gen] - RoundNearest -> round
250.74 s
[really-safe-money-gen] + rounder = case r of
250.74 s
[really-safe-money-gen] + RoundUp -> ceiling
250.74 s
[really-safe-money-gen] + RoundDown -> floor
250.74 s
[really-safe-money-gen] + RoundNearest -> round
250.74 s
[really-safe-money-gen] roundedResult :: Integer
250.74 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
250.74 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
250.74 s
[really-safe-money-gen] @@ -177,10 +177,10 @@
250.74 s
[really-safe-money-gen] RoundNearest -> round
250.74 s
[really-safe-money-gen] roundedResult :: Integer
250.74 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
250.74 s
[really-safe-money-gen] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.74 s
[really-safe-money-gen] - LT -> RoundedDown
250.74 s
[really-safe-money-gen] - EQ -> DidNotRound
250.74 s
[really-safe-money-gen] - GT -> RoundedUp
250.74 s
[really-safe-money-gen] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.74 s
[really-safe-money-gen] + LT -> RoundedDown
250.74 s
[really-safe-money-gen] + EQ -> DidNotRound
250.74 s
[really-safe-money-gen] + GT -> RoundedUp
250.74 s
[really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
250.74 s
[really-safe-money-gen] )
250.74 s
[really-safe-money-gen] . Prelude.sum
250.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
250.74 s
[really-safe-money-gen] @@ -177,10 +177,10 @@
250.74 s
[really-safe-money-gen] RoundNearest -> round
250.74 s
[really-safe-money-gen] roundedResult :: Integer
250.74 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
250.74 s
[really-safe-money-gen] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.74 s
[really-safe-money-gen] - LT -> RoundedDown
250.74 s
[really-safe-money-gen] - EQ -> DidNotRound
250.74 s
[really-safe-money-gen] - GT -> RoundedUp
250.74 s
[really-safe-money-gen] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.74 s
[really-safe-money-gen] + LT -> RoundedDown
250.74 s
[really-safe-money-gen] + EQ -> DidNotRound
250.74 s
[really-safe-money-gen] + GT -> RoundedUp
250.74 s
[really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
250.74 s
[really-safe-money-gen] )
250.74 s
[really-safe-money-gen] . Prelude.sum
250.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
250.74 s
[really-safe-money-gen] @@ -126,14 +126,14 @@
250.74 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
250.74 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
250.74 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
250.74 s
[really-safe-money-gen] - fmap MultiAccount $ case M.lookup currency m of
250.74 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
250.74 s
[really-safe-money-gen] - Just a -> do
250.74 s
[really-safe-money-gen] - r <- Account.subtract a account
250.74 s
[really-safe-money-gen] - Just $
250.74 s
[really-safe-money-gen] - if r == Account.zero
250.74 s
[really-safe-money-gen] - then M.delete currency m
250.74 s
[really-safe-money-gen] - else M.insert currency r m
250.74 s
[really-safe-money-gen] + fmap MultiAccount $ case M.lookup currency m of
250.74 s
[really-safe-money-gen] + Nothing -> Just $ M.insert currency (Account.negate account) m
250.74 s
[really-safe-money-gen] + Just a -> do
250.74 s
[really-safe-money-gen] + r <- Account.subtract a account
250.74 s
[really-safe-money-gen] + Just $
250.74 s
[really-safe-money-gen] + if r == Account.zero
250.74 s
[really-safe-money-gen] + then M.delete currency m
250.74 s
[really-safe-money-gen] + else M.insert currency r m
250.74 s
[really-safe-money-gen]
250.74 s
[really-safe-money-gen] -- | Try to convert every account to one currency.
250.74 s
[really-safe-money-gen] --
250.74 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:180:25-32
250.75 s
[really-safe-money-gen] @@ -177,10 +177,10 @@
250.75 s
[really-safe-money-gen] RoundNearest -> round
250.75 s
[really-safe-money-gen] roundedResult :: Integer
250.75 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
250.75 s
[really-safe-money-gen] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.75 s
[really-safe-money-gen] - LT -> RoundedDown
250.75 s
[really-safe-money-gen] - EQ -> DidNotRound
250.75 s
[really-safe-money-gen] - GT -> RoundedUp
250.75 s
[really-safe-money-gen] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
250.75 s
[really-safe-money-gen] + LT -> RoundedDown
250.75 s
[really-safe-money-gen] + EQ -> DidNotRound
250.75 s
[really-safe-money-gen] + GT -> RoundedUp
250.75 s
[really-safe-money-gen] in (Account.fromMinimalQuantisations roundedResult, rounded)
250.75 s
[really-safe-money-gen] )
250.75 s
[really-safe-money-gen] . Prelude.sum
250.75 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:134:12-29
250.75 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
250.75 s
[really-safe-money-gen] Just a -> do
250.75 s
[really-safe-money-gen] r <- Account.subtract a account
250.75 s
[really-safe-money-gen] Just $
250.75 s
[really-safe-money-gen] - if r == Account.zero
250.75 s
[really-safe-money-gen] + if True
250.75 s
[really-safe-money-gen] then M.delete currency m
250.75 s
[really-safe-money-gen] else M.insert currency r m
250.75 s
[really-safe-money-gen]
250.75 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:134:12-29
250.75 s
[really-safe-money-gen] @@ -131,7 +131,7 @@
250.75 s
[really-safe-money-gen] Just a -> do
250.75 s
[really-safe-money-gen] r <- Account.subtract a account
250.75 s
[really-safe-money-gen] Just $
250.75 s
[really-safe-money-gen] - if r == Account.zero
250.75 s
[really-safe-money-gen] + if not (r == Account.zero)
250.75 s
[really-safe-money-gen] then M.delete currency m
250.75 s
[really-safe-money-gen] else M.insert currency r m
250.75 s
[really-safe-money-gen]
250.75 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:134:9-37
250.75 s
[really-safe-money-gen] @@ -131,9 +131,9 @@
250.75 s
[really-safe-money-gen] Just a -> do
250.75 s
[really-safe-money-gen] r <- Account.subtract a account
250.75 s
[really-safe-money-gen] Just $
250.75 s
[really-safe-money-gen] - if r == Account.zero
250.75 s
[really-safe-money-gen] - then M.delete currency m
250.75 s
[really-safe-money-gen] - else M.insert currency r m
250.75 s
[really-safe-money-gen] + if r == Account.zero
250.75 s
[really-safe-money-gen] + then M.delete currency m
250.75 s
[really-safe-money-gen] + else M.insert currency r m
250.75 s
[really-safe-money-gen]
250.75 s
[really-safe-money-gen] -- | Try to convert every account to one currency.
250.75 s
[really-safe-money-gen] --
250.75 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
250.75 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
250.75 s
[really-safe-money-gen] Just a -> do
250.75 s
[really-safe-money-gen] r <- Account.add a account
250.75 s
[really-safe-money-gen] Just $
250.75 s
[really-safe-money-gen] - if r == Account.zero
250.75 s
[really-safe-money-gen] + if False
250.75 s
[really-safe-money-gen] then M.delete currency m
250.75 s
[really-safe-money-gen] else M.insert currency r m
250.75 s
[really-safe-money-gen]
250.75 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:120:12-29
250.75 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
250.75 s
[really-safe-money-gen] Just a -> do
250.75 s
[really-safe-money-gen] r <- Account.add a account
250.75 s
[really-safe-money-gen] Just $
250.75 s
[really-safe-money-gen] - if r == Account.zero
250.75 s
[really-safe-money-gen] + if True
250.75 s
[really-safe-money-gen] then M.delete currency m
250.75 s
[really-safe-money-gen] else M.insert currency r m
250.75 s
[really-safe-money-gen]
250.76 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:120:12-29
250.76 s
[really-safe-money-gen] @@ -117,7 +117,7 @@
250.76 s
[really-safe-money-gen] Just a -> do
250.76 s
[really-safe-money-gen] r <- Account.add a account
250.76 s
[really-safe-money-gen] Just $
250.76 s
[really-safe-money-gen] - if r == Account.zero
250.76 s
[really-safe-money-gen] + if not (r == Account.zero)
250.76 s
[really-safe-money-gen] then M.delete currency m
250.76 s
[really-safe-money-gen] else M.insert currency r m
250.76 s
[really-safe-money-gen]
250.76 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:129:23-37
250.76 s
[really-safe-money-gen] @@ -126,14 +126,14 @@
250.76 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
250.76 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
250.76 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
250.76 s
[really-safe-money-gen] - fmap MultiAccount $ case M.lookup currency m of
250.76 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency (Account.negate account) m
250.76 s
[really-safe-money-gen] - Just a -> do
250.76 s
[really-safe-money-gen] - r <- Account.subtract a account
250.76 s
[really-safe-money-gen] - Just $
250.76 s
[really-safe-money-gen] - if r == Account.zero
250.76 s
[really-safe-money-gen] - then M.delete currency m
250.76 s
[really-safe-money-gen] - else M.insert currency r m
250.76 s
[really-safe-money-gen] + fmap MultiAccount $ case M.lookup currency m of
250.76 s
[really-safe-money-gen] + Nothing -> Just $ M.insert currency (Account.negate account) m
250.76 s
[really-safe-money-gen] + Just a -> do
250.76 s
[really-safe-money-gen] + r <- Account.subtract a account
250.76 s
[really-safe-money-gen] + Just $
250.76 s
[really-safe-money-gen] + if r == Account.zero
250.76 s
[really-safe-money-gen] + then M.delete currency m
250.76 s
[really-safe-money-gen] + else M.insert currency r m
250.76 s
[really-safe-money-gen]
250.76 s
[really-safe-money-gen] -- | Try to convert every account to one currency.
250.76 s
[really-safe-money-gen] --
250.76 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:120:9-37
250.76 s
[really-safe-money-gen] @@ -117,9 +117,9 @@
250.76 s
[really-safe-money-gen] Just a -> do
250.76 s
[really-safe-money-gen] r <- Account.add a account
250.76 s
[really-safe-money-gen] Just $
250.76 s
[really-safe-money-gen] - if r == Account.zero
252.23 s
[really-safe-money-gen] - then M.delete currency m
252.23 s
[really-safe-money-gen] - else M.insert currency r m
252.23 s
[really-safe-money-gen] + if r == Account.zero
252.23 s
[really-safe-money-gen] + then M.delete currency m
252.23 s
[really-safe-money-gen] + else M.insert currency r m
252.23 s
[really-safe-money-gen]
252.23 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
252.23 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
252.23 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
252.23 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
252.23 s
[really-safe-money-gen]
252.23 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
252.23 s
[really-safe-money-gen] fromAccount currency amount =
252.23 s
[really-safe-money-gen] - if amount == Account.zero
252.23 s
[really-safe-money-gen] + if True
252.23 s
[really-safe-money-gen] then zero
252.23 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
252.23 s
[really-safe-money-gen]
252.23 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
252.23 s
[really-safe-money-gen] @@ -112,14 +112,14 @@
252.23 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
252.23 s
[really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
252.23 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
252.23 s
[really-safe-money-gen] - fmap MultiAccount $ case M.lookup currency m of
252.23 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
252.23 s
[really-safe-money-gen] - Just a -> do
252.23 s
[really-safe-money-gen] - r <- Account.add a account
252.23 s
[really-safe-money-gen] - Just $
252.24 s
[really-safe-money-gen] - if r == Account.zero
252.24 s
[really-safe-money-gen] - then M.delete currency m
252.24 s
[really-safe-money-gen] - else M.insert currency r m
252.24 s
[really-safe-money-gen] + fmap MultiAccount $ case M.lookup currency m of
252.24 s
[really-safe-money-gen] + Nothing -> Just $ M.insert currency account m
252.24 s
[really-safe-money-gen] + Just a -> do
252.24 s
[really-safe-money-gen] + r <- Account.add a account
252.24 s
[really-safe-money-gen] + Just $
252.24 s
[really-safe-money-gen] + if r == Account.zero
252.24 s
[really-safe-money-gen] + then M.delete currency m
252.24 s
[really-safe-money-gen] + else M.insert currency r m
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
252.24 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
252.24 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:78:6-28
252.24 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
252.24 s
[really-safe-money-gen] fromAccount currency amount =
252.24 s
[really-safe-money-gen] - if amount == Account.zero
252.24 s
[really-safe-money-gen] + if False
252.24 s
[really-safe-money-gen] then zero
252.24 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:78:6-28
252.24 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
252.24 s
[really-safe-money-gen] fromAccount currency amount =
252.24 s
[really-safe-money-gen] - if amount == Account.zero
252.24 s
[really-safe-money-gen] + if not (amount == Account.zero)
252.24 s
[really-safe-money-gen] then zero
252.24 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAccount.hs:78:3-52
252.24 s
[really-safe-money-gen] @@ -75,9 +75,9 @@
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
252.24 s
[really-safe-money-gen] fromAccount currency amount =
252.24 s
[really-safe-money-gen] - if amount == Account.zero
252.24 s
[really-safe-money-gen] - then zero
252.24 s
[really-safe-money-gen] - else MultiAccount $ M.singleton currency amount
252.24 s
[really-safe-money-gen] + if amount == Account.zero
252.24 s
[really-safe-money-gen] + then zero
252.24 s
[really-safe-money-gen] + else MultiAccount $ M.singleton currency amount
252.24 s
[really-safe-money-gen]
252.24 s
[really-safe-money-gen] -- | No money of any currency
252.25 s
[really-safe-money-gen] zero :: MultiAccount currency
252.25 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAccount.hs:69:13-30
252.25 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
252.25 s
[really-safe-money-gen] [ genericValidate ma,
252.25 s
[really-safe-money-gen] decorateMap m $ \_ a ->
252.25 s
[really-safe-money-gen] declare "The account is not zero" $
252.25 s
[really-safe-money-gen] - a /= Account.zero
252.25 s
[really-safe-money-gen] + not (a /= Account.zero)
252.25 s
[really-safe-money-gen] ]
252.25 s
[really-safe-money-gen]
252.25 s
[really-safe-money-gen] -- TODO no empty currencies
252.25 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAccount.hs:115:23-37
252.25 s
[really-safe-money-gen] @@ -112,14 +112,14 @@
252.25 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
252.25 s
[really-safe-money-gen] addAccount m _ (Negative (Amount 0)) = Just m
252.25 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
252.25 s
[really-safe-money-gen] - fmap MultiAccount $ case M.lookup currency m of
252.25 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency account m
252.25 s
[really-safe-money-gen] - Just a -> do
252.25 s
[really-safe-money-gen] - r <- Account.add a account
252.25 s
[really-safe-money-gen] - Just $
252.25 s
[really-safe-money-gen] - if r == Account.zero
252.25 s
[really-safe-money-gen] - then M.delete currency m
252.25 s
[really-safe-money-gen] - else M.insert currency r m
252.25 s
[really-safe-money-gen] + fmap MultiAccount $ case M.lookup currency m of
252.25 s
[really-safe-money-gen] + Nothing -> Just $ M.insert currency account m
252.25 s
[really-safe-money-gen] + Just a -> do
252.25 s
[really-safe-money-gen] + r <- Account.add a account
252.25 s
[really-safe-money-gen] + Just $
252.25 s
[really-safe-money-gen] + if r == Account.zero
252.25 s
[really-safe-money-gen] + then M.delete currency m
252.25 s
[really-safe-money-gen] + else M.insert currency r m
252.25 s
[really-safe-money-gen]
252.25 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
252.25 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
252.25 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
252.25 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
252.25 s
[really-safe-money-gen] [ genericValidate ma,
252.25 s
[really-safe-money-gen] decorateMap m $ \_ a ->
252.25 s
[really-safe-money-gen] declare "The account is not zero" $
252.25 s
[really-safe-money-gen] - a /= Account.zero
252.25 s
[really-safe-money-gen] + True
252.25 s
[really-safe-money-gen] ]
252.25 s
[really-safe-money-gen]
252.25 s
[really-safe-money-gen] -- TODO no empty currencies
252.25 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAccount.hs:69:13-30
252.25 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
252.25 s
[really-safe-money-gen] [ genericValidate ma,
252.25 s
[really-safe-money-gen] decorateMap m $ \_ a ->
252.25 s
[really-safe-money-gen] declare "The account is not zero" $
252.25 s
[really-safe-money-gen] - a /= Account.zero
252.25 s
[really-safe-money-gen] + False
252.25 s
[really-safe-money-gen] ]
252.25 s
[really-safe-money-gen]
252.25 s
[really-safe-money-gen] -- TODO no empty currencies
252.25 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
252.25 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
252.25 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
252.26 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
252.26 s
[really-safe-money-gen] mconcat
252.26 s
[really-safe-money-gen] - [ genericValidate ma,
252.26 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
252.26 s
[really-safe-money-gen] - declare "The account is not zero" $
252.26 s
[really-safe-money-gen] - a /= Account.zero
252.26 s
[really-safe-money-gen] - ]
252.26 s
[really-safe-money-gen] + []
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] -- TODO no empty currencies
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAccount.hs:66:7-8
252.26 s
[really-safe-money-gen] @@ -63,11 +63,11 @@
252.26 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
252.26 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
252.26 s
[really-safe-money-gen] mconcat
252.26 s
[really-safe-money-gen] - [ genericValidate ma,
252.26 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
252.26 s
[really-safe-money-gen] - declare "The account is not zero" $
252.26 s
[really-safe-money-gen] - a /= Account.zero
252.26 s
[really-safe-money-gen] - ]
252.26 s
[really-safe-money-gen] + [ genericValidate ma,
252.26 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
252.26 s
[really-safe-money-gen] + declare "The account is not zero" $
252.26 s
[really-safe-money-gen] + a /= Account.zero
252.26 s
[really-safe-money-gen] + ]
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] -- TODO no empty currencies
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
252.26 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] -- | One-to-one conversion rate
252.26 s
[really-safe-money-gen] oneToOne :: ConversionRate
252.26 s
[really-safe-money-gen] -oneToOne = ConversionRate 1
252.26 s
[really-safe-money-gen] +oneToOne = ConversionRate -1
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
252.26 s
[really-safe-money-gen] --
252.26 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
252.26 s
[really-safe-money-gen] @@ -113,7 +113,7 @@
252.26 s
[really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
252.26 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
252.26 s
[really-safe-money-gen] invert :: ConversionRate -> ConversionRate
252.26 s
[really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
252.26 s
[really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (0 / r)
252.26 s
[really-safe-money-gen]
252.26 s
[really-safe-money-gen] -- | Compose two conversion rates
252.26 s
[really-safe-money-gen] --
252.26 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
252.26 s
[really-safe-money-gen] @@ -113,7 +113,7 @@
252.26 s
[really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
252.27 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
252.27 s
[really-safe-money-gen] invert :: ConversionRate -> ConversionRate
252.27 s
[really-safe-money-gen] -invert (ConversionRate r) = ConversionRate (1 / r)
252.27 s
[really-safe-money-gen] +invert (ConversionRate r) = ConversionRate (-1 / r)
252.27 s
[really-safe-money-gen]
252.27 s
[really-safe-money-gen] -- | Compose two conversion rates
252.27 s
[really-safe-money-gen] --
252.27 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
252.27 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
252.27 s
[really-safe-money-gen]
252.27 s
[really-safe-money-gen] -- | One-to-one conversion rate
252.27 s
[really-safe-money-gen] oneToOne :: ConversionRate
252.27 s
[really-safe-money-gen] -oneToOne = ConversionRate 1
252.27 s
[really-safe-money-gen] +oneToOne = ConversionRate 0
252.27 s
[really-safe-money-gen]
252.27 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
252.27 s
[really-safe-money-gen] --
252.27 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
252.27 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
252.27 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
252.27 s
[really-safe-money-gen] -- Nothing
252.27 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
252.27 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
252.27 s
[really-safe-money-gen] +fromRational r = if True then Nothing else fromRatio (realToFrac r)
252.27 s
[really-safe-money-gen]
252.27 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
252.27 s
[really-safe-money-gen] --
252.27 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
252.27 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
252.27 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
252.27 s
[really-safe-money-gen] -- Nothing
252.27 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
252.27 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
252.27 s
[really-safe-money-gen] +fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
252.27 s
[really-safe-money-gen]
252.27 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
252.27 s
[really-safe-money-gen] --
252.27 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
252.27 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
252.27 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
252.27 s
[really-safe-money-gen] -- Nothing
252.27 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
252.27 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
252.27 s
[really-safe-money-gen] +fromRational r = if False then Nothing else fromRatio (realToFrac r)
252.27 s
[really-safe-money-gen]
252.27 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
252.27 s
[really-safe-money-gen] --
252.27 s
[really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
252.27 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
252.27 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
252.28 s
[really-safe-money-gen] -- Nothing
252.28 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
252.28 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
252.28 s
[really-safe-money-gen] +fromRational r = if not (r < 0) then Nothing else fromRatio (realToFrac r)
252.28 s
[really-safe-money-gen]
252.28 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
252.28 s
[really-safe-money-gen] --
252.28 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/ConversionRate.hs:72:18-69
253.68 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
253.68 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
253.68 s
[really-safe-money-gen] -- Nothing
253.69 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
253.69 s
[really-safe-money-gen] -fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
253.69 s
[really-safe-money-gen] +fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
253.69 s
[really-safe-money-gen]
253.69 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
253.69 s
[really-safe-money-gen] --
253.69 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
253.69 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
253.69 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
253.69 s
[really-safe-money-gen] mconcat
253.69 s
[really-safe-money-gen] [ genericValidate cr,
253.69 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
253.69 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
253.69 s
[really-safe-money-gen] ]
253.69 s
[really-safe-money-gen]
253.69 s
[really-safe-money-gen] instance NFData ConversionRate
253.69 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
253.69 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
253.69 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
253.69 s
[really-safe-money-gen] mconcat
253.69 s
[really-safe-money-gen] [ genericValidate cr,
253.69 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
253.69 s
[really-safe-money-gen] + declare "The rate is nonzero" $ True
253.69 s
[really-safe-money-gen] ]
253.69 s
[really-safe-money-gen]
253.69 s
[really-safe-money-gen] instance NFData ConversionRate
253.69 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
253.69 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
253.69 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
253.69 s
[really-safe-money-gen] mconcat
253.69 s
[really-safe-money-gen] [ genericValidate cr,
253.69 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
253.69 s
[really-safe-money-gen] + declare "The rate is nonzero" $ False
253.69 s
[really-safe-money-gen] ]
253.69 s
[really-safe-money-gen]
253.69 s
[really-safe-money-gen] instance NFData ConversionRate
253.69 s
[really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
253.69 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
253.69 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
253.69 s
[really-safe-money-gen] mconcat
253.69 s
[really-safe-money-gen] [ genericValidate cr,
253.69 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
253.69 s
[really-safe-money-gen] + declare "The rate is nonzero" $ not (numerator r /= 0)
253.69 s
[really-safe-money-gen] ]
253.69 s
[really-safe-money-gen]
253.69 s
[really-safe-money-gen] instance NFData ConversionRate
253.69 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
253.69 s
[really-safe-money-gen] @@ -34,9 +34,7 @@
253.69 s
[really-safe-money-gen] instance Validity ConversionRate where
253.69 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
253.70 s
[really-safe-money-gen] mconcat
253.70 s
[really-safe-money-gen] - [ genericValidate cr,
253.70 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
253.70 s
[really-safe-money-gen] - ]
253.70 s
[really-safe-money-gen] + []
253.70 s
[really-safe-money-gen]
253.70 s
[really-safe-money-gen] instance NFData ConversionRate
253.70 s
[really-safe-money-gen]
253.70 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
253.70 s
[really-safe-money-gen] @@ -34,9 +34,9 @@
253.70 s
[really-safe-money-gen] instance Validity ConversionRate where
253.70 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
253.70 s
[really-safe-money-gen] mconcat
253.70 s
[really-safe-money-gen] - [ genericValidate cr,
253.70 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
253.70 s
[really-safe-money-gen] - ]
253.70 s
[really-safe-money-gen] + [ genericValidate cr,
253.70 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 0
253.70 s
[really-safe-money-gen] + ]
253.70 s
[really-safe-money-gen]
253.70 s
[really-safe-money-gen] instance NFData ConversionRate
253.70 s
[really-safe-money-gen]
253.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
253.70 s
[really-safe-money-gen] @@ -156,10 +156,10 @@
253.70 s
[really-safe-money-gen] fmap
253.70 s
[really-safe-money-gen] ( ( \theoreticalResult ->
253.70 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
253.70 s
[really-safe-money-gen] - rounder = case r of
253.70 s
[really-safe-money-gen] - RoundUp -> ceiling
253.70 s
[really-safe-money-gen] - RoundDown -> floor
253.70 s
[really-safe-money-gen] - RoundNearest -> round
253.70 s
[really-safe-money-gen] + rounder = case r of
253.70 s
[really-safe-money-gen] + RoundUp -> ceiling
253.70 s
[really-safe-money-gen] + RoundDown -> floor
253.70 s
[really-safe-money-gen] + RoundNearest -> round
253.70 s
[really-safe-money-gen] roundedResult :: Natural
253.70 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
253.70 s
[really-safe-money-gen] @@ -156,10 +156,10 @@
253.70 s
[really-safe-money-gen] fmap
253.70 s
[really-safe-money-gen] ( ( \theoreticalResult ->
253.70 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
253.70 s
[really-safe-money-gen] - rounder = case r of
253.70 s
[really-safe-money-gen] - RoundUp -> ceiling
253.70 s
[really-safe-money-gen] - RoundDown -> floor
253.70 s
[really-safe-money-gen] - RoundNearest -> round
253.70 s
[really-safe-money-gen] + rounder = case r of
253.70 s
[really-safe-money-gen] + RoundUp -> ceiling
253.70 s
[really-safe-money-gen] + RoundDown -> floor
253.70 s
[really-safe-money-gen] + RoundNearest -> round
253.70 s
[really-safe-money-gen] roundedResult :: Natural
253.70 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
253.70 s
[really-safe-money-gen] @@ -156,10 +156,10 @@
253.70 s
[really-safe-money-gen] fmap
253.70 s
[really-safe-money-gen] ( ( \theoreticalResult ->
253.70 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
253.70 s
[really-safe-money-gen] - rounder = case r of
253.70 s
[really-safe-money-gen] - RoundUp -> ceiling
253.70 s
[really-safe-money-gen] - RoundDown -> floor
253.70 s
[really-safe-money-gen] - RoundNearest -> round
253.70 s
[really-safe-money-gen] + rounder = case r of
253.70 s
[really-safe-money-gen] + RoundUp -> ceiling
253.70 s
[really-safe-money-gen] + RoundDown -> floor
253.70 s
[really-safe-money-gen] + RoundNearest -> round
253.70 s
[really-safe-money-gen] roundedResult :: Natural
253.70 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
253.70 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
253.70 s
[really-safe-money-gen] actualResult =
253.70 s
[really-safe-money-gen] - if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] + if True
253.70 s
[really-safe-money-gen] then Nothing
253.70 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
253.70 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
253.70 s
[really-safe-money-gen] actualResult =
253.70 s
[really-safe-money-gen] - if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] + if False
253.70 s
[really-safe-money-gen] then Nothing
253.70 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
253.70 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
253.70 s
[really-safe-money-gen] actualResult =
253.70 s
[really-safe-money-gen] - if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] + if not (roundedResult > maxBoundN)
253.70 s
[really-safe-money-gen] then Nothing
253.70 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:168:17-57
253.70 s
[really-safe-money-gen] @@ -165,9 +165,9 @@
253.70 s
[really-safe-money-gen] maxBoundN :: Natural
253.70 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
253.70 s
[really-safe-money-gen] actualResult =
253.70 s
[really-safe-money-gen] - if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] - then Nothing
253.70 s
[really-safe-money-gen] - else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] + if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] + then Nothing
253.70 s
[really-safe-money-gen] + else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] LT -> RoundedDown
253.70 s
[really-safe-money-gen] EQ -> DidNotRound
253.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
253.70 s
[really-safe-money-gen] @@ -168,10 +168,10 @@
253.70 s
[really-safe-money-gen] if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] then Nothing
253.70 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] - LT -> RoundedDown
253.70 s
[really-safe-money-gen] - EQ -> DidNotRound
253.70 s
[really-safe-money-gen] - GT -> RoundedUp
253.70 s
[really-safe-money-gen] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] + LT -> RoundedDown
253.70 s
[really-safe-money-gen] + EQ -> DidNotRound
253.70 s
[really-safe-money-gen] + GT -> RoundedUp
253.70 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
253.70 s
[really-safe-money-gen] )
253.70 s
[really-safe-money-gen] . Prelude.sum
253.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
253.70 s
[really-safe-money-gen] @@ -168,10 +168,10 @@
253.70 s
[really-safe-money-gen] if roundedResult > maxBoundN
253.70 s
[really-safe-money-gen] then Nothing
253.70 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
253.70 s
[really-safe-money-gen] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] - LT -> RoundedDown
253.70 s
[really-safe-money-gen] - EQ -> DidNotRound
253.70 s
[really-safe-money-gen] - GT -> RoundedUp
253.70 s
[really-safe-money-gen] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
253.70 s
[really-safe-money-gen] + LT -> RoundedDown
253.70 s
[really-safe-money-gen] + EQ -> DidNotRound
253.70 s
[really-safe-money-gen] + GT -> RoundedUp
253.70 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
253.70 s
[really-safe-money-gen] )
253.70 s
[really-safe-money-gen] . Prelude.sum
253.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
253.70 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
253.70 s
[really-safe-money-gen] Just a -> do
253.70 s
[really-safe-money-gen] r <- Amount.subtract a amount
253.70 s
[really-safe-money-gen] Just $
253.70 s
[really-safe-money-gen] - if r == Amount.zero
253.70 s
[really-safe-money-gen] + if True
253.70 s
[really-safe-money-gen] then M.delete currency m
253.70 s
[really-safe-money-gen] else M.insert currency r m
253.70 s
[really-safe-money-gen]
253.70 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
253.70 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
253.70 s
[really-safe-money-gen] Just a -> do
253.70 s
[really-safe-money-gen] r <- Amount.subtract a amount
253.70 s
[really-safe-money-gen] Just $
253.70 s
[really-safe-money-gen] - if r == Amount.zero
253.70 s
[really-safe-money-gen] + if False
253.70 s
[really-safe-money-gen] then M.delete currency m
253.70 s
[really-safe-money-gen] else M.insert currency r m
253.70 s
[really-safe-money-gen]
253.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
254.53 s
[really-safe-money-gen] @@ -168,10 +168,10 @@
254.53 s
[really-safe-money-gen] if roundedResult > maxBoundN
254.53 s
[really-safe-money-gen] then Nothing
254.53 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
254.53 s
[really-safe-money-gen] - rounded = case compare (fromIntegral roundedResult) theoreticalResult of
254.53 s
[really-safe-money-gen] - LT -> RoundedDown
254.53 s
[really-safe-money-gen] - EQ -> DidNotRound
254.53 s
[really-safe-money-gen] - GT -> RoundedUp
254.53 s
[really-safe-money-gen] + rounded = case compare (fromIntegral roundedResult) theoreticalResult of
254.53 s
[really-safe-money-gen] + LT -> RoundedDown
254.53 s
[really-safe-money-gen] + EQ -> DidNotRound
254.53 s
[really-safe-money-gen] + GT -> RoundedUp
254.53 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
254.53 s
[really-safe-money-gen] )
254.53 s
[really-safe-money-gen] . Prelude.sum
254.53 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
254.53 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
254.53 s
[really-safe-money-gen] Just a -> do
254.53 s
[really-safe-money-gen] r <- Amount.subtract a amount
254.53 s
[really-safe-money-gen] Just $
254.53 s
[really-safe-money-gen] - if r == Amount.zero
254.53 s
[really-safe-money-gen] + if not (r == Amount.zero)
254.53 s
[really-safe-money-gen] then M.delete currency m
254.53 s
[really-safe-money-gen] else M.insert currency r m
254.53 s
[really-safe-money-gen]
254.53 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:119:9-37
254.53 s
[really-safe-money-gen] @@ -116,9 +116,9 @@
254.53 s
[really-safe-money-gen] Just a -> do
254.53 s
[really-safe-money-gen] r <- Amount.subtract a amount
254.53 s
[really-safe-money-gen] Just $
254.53 s
[really-safe-money-gen] - if r == Amount.zero
254.53 s
[really-safe-money-gen] - then M.delete currency m
254.53 s
[really-safe-money-gen] - else M.insert currency r m
254.53 s
[really-safe-money-gen] + if r == Amount.zero
254.53 s
[really-safe-money-gen] + then M.delete currency m
254.53 s
[really-safe-money-gen] + else M.insert currency r m
254.54 s
[really-safe-money-gen]
254.54 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
254.54 s
[really-safe-money-gen] --
254.54 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
254.54 s
[really-safe-money-gen] @@ -111,14 +111,14 @@
254.54 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.54 s
[really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
254.54 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
254.54 s
[really-safe-money-gen] - fmap MultiAmount $ case M.lookup currency m of
254.54 s
[really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
254.54 s
[really-safe-money-gen] - Just a -> do
254.54 s
[really-safe-money-gen] - r <- Amount.subtract a amount
254.54 s
[really-safe-money-gen] - Just $
254.54 s
[really-safe-money-gen] - if r == Amount.zero
254.54 s
[really-safe-money-gen] - then M.delete currency m
254.54 s
[really-safe-money-gen] - else M.insert currency r m
254.54 s
[really-safe-money-gen] + fmap MultiAmount $ case M.lookup currency m of
254.54 s
[really-safe-money-gen] + Nothing -> Nothing -- Can't go below zero
254.54 s
[really-safe-money-gen] + Just a -> do
254.54 s
[really-safe-money-gen] + r <- Amount.subtract a amount
254.54 s
[really-safe-money-gen] + Just $
254.54 s
[really-safe-money-gen] + if r == Amount.zero
254.54 s
[really-safe-money-gen] + then M.delete currency m
254.54 s
[really-safe-money-gen] + else M.insert currency r m
254.54 s
[really-safe-money-gen]
254.54 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
254.54 s
[really-safe-money-gen] --
254.54 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
254.54 s
[really-safe-money-gen] @@ -111,14 +111,14 @@
254.54 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.54 s
[really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
254.54 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
254.54 s
[really-safe-money-gen] - fmap MultiAmount $ case M.lookup currency m of
254.54 s
[really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
254.54 s
[really-safe-money-gen] - Just a -> do
254.54 s
[really-safe-money-gen] - r <- Amount.subtract a amount
254.54 s
[really-safe-money-gen] - Just $
254.54 s
[really-safe-money-gen] - if r == Amount.zero
254.54 s
[really-safe-money-gen] - then M.delete currency m
254.54 s
[really-safe-money-gen] - else M.insert currency r m
254.54 s
[really-safe-money-gen] + fmap MultiAmount $ case M.lookup currency m of
254.54 s
[really-safe-money-gen] + Nothing -> Nothing -- Can't go below zero
254.54 s
[really-safe-money-gen] + Just a -> do
254.54 s
[really-safe-money-gen] + r <- Amount.subtract a amount
254.54 s
[really-safe-money-gen] + Just $
254.54 s
[really-safe-money-gen] + if r == Amount.zero
254.54 s
[really-safe-money-gen] + then M.delete currency m
254.54 s
[really-safe-money-gen] + else M.insert currency r m
254.54 s
[really-safe-money-gen]
254.54 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
254.54 s
[really-safe-money-gen] --
254.54 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
254.54 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
254.54 s
[really-safe-money-gen] Just a -> do
254.54 s
[really-safe-money-gen] r <- Amount.add a amount
254.54 s
[really-safe-money-gen] Just $
254.55 s
[really-safe-money-gen] - if r == Amount.zero
254.55 s
[really-safe-money-gen] + if True
254.55 s
[really-safe-money-gen] then M.delete currency m
254.55 s
[really-safe-money-gen] else M.insert currency r m
254.55 s
[really-safe-money-gen]
254.55 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
254.55 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
254.55 s
[really-safe-money-gen] Just a -> do
254.55 s
[really-safe-money-gen] r <- Amount.add a amount
254.55 s
[really-safe-money-gen] Just $
254.55 s
[really-safe-money-gen] - if r == Amount.zero
254.55 s
[really-safe-money-gen] + if False
254.55 s
[really-safe-money-gen] then M.delete currency m
254.55 s
[really-safe-money-gen] else M.insert currency r m
254.55 s
[really-safe-money-gen]
254.55 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
254.55 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
254.55 s
[really-safe-money-gen] Just a -> do
254.55 s
[really-safe-money-gen] r <- Amount.add a amount
254.55 s
[really-safe-money-gen] Just $
254.55 s
[really-safe-money-gen] - if r == Amount.zero
254.55 s
[really-safe-money-gen] + if not (r == Amount.zero)
254.55 s
[really-safe-money-gen] then M.delete currency m
254.55 s
[really-safe-money-gen] else M.insert currency r m
254.55 s
[really-safe-money-gen]
254.55 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
254.55 s
[really-safe-money-gen] @@ -98,14 +98,14 @@
254.55 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.55 s
[really-safe-money-gen] addAmount m _ (Amount 0) = Just m
254.55 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
254.55 s
[really-safe-money-gen] - fmap MultiAmount $ case M.lookup currency m of
254.55 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
254.55 s
[really-safe-money-gen] - Just a -> do
254.55 s
[really-safe-money-gen] - r <- Amount.add a amount
254.55 s
[really-safe-money-gen] - Just $
254.55 s
[really-safe-money-gen] - if r == Amount.zero
254.55 s
[really-safe-money-gen] - then M.delete currency m
254.55 s
[really-safe-money-gen] - else M.insert currency r m
254.55 s
[really-safe-money-gen] + fmap MultiAmount $ case M.lookup currency m of
254.55 s
[really-safe-money-gen] + Nothing -> Just $ M.insert currency amount m
254.55 s
[really-safe-money-gen] + Just a -> do
254.55 s
[really-safe-money-gen] + r <- Amount.add a amount
254.55 s
[really-safe-money-gen] + Just $
254.55 s
[really-safe-money-gen] + if r == Amount.zero
254.55 s
[really-safe-money-gen] + then M.delete currency m
254.55 s
[really-safe-money-gen] + else M.insert currency r m
254.55 s
[really-safe-money-gen]
254.55 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
254.55 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.55 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
254.55 s
[really-safe-money-gen] @@ -98,14 +98,14 @@
254.55 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.55 s
[really-safe-money-gen] addAmount m _ (Amount 0) = Just m
254.55 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
254.55 s
[really-safe-money-gen] - fmap MultiAmount $ case M.lookup currency m of
254.55 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
254.55 s
[really-safe-money-gen] - Just a -> do
254.55 s
[really-safe-money-gen] - r <- Amount.add a amount
254.55 s
[really-safe-money-gen] - Just $
254.55 s
[really-safe-money-gen] - if r == Amount.zero
254.55 s
[really-safe-money-gen] - then M.delete currency m
254.55 s
[really-safe-money-gen] - else M.insert currency r m
254.55 s
[really-safe-money-gen] + fmap MultiAmount $ case M.lookup currency m of
254.55 s
[really-safe-money-gen] + Nothing -> Just $ M.insert currency amount m
254.55 s
[really-safe-money-gen] + Just a -> do
254.55 s
[really-safe-money-gen] + r <- Amount.add a amount
254.55 s
[really-safe-money-gen] + Just $
254.55 s
[really-safe-money-gen] + if r == Amount.zero
254.56 s
[really-safe-money-gen] + then M.delete currency m
254.56 s
[really-safe-money-gen] + else M.insert currency r m
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
254.56 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
254.56 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
254.56 s
[really-safe-money-gen] fromAmount currency amount =
254.56 s
[really-safe-money-gen] - if amount == Amount.zero
254.56 s
[really-safe-money-gen] + if True
254.56 s
[really-safe-money-gen] then zero
254.56 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:106:9-37
254.56 s
[really-safe-money-gen] @@ -103,9 +103,9 @@
254.56 s
[really-safe-money-gen] Just a -> do
254.56 s
[really-safe-money-gen] r <- Amount.add a amount
254.56 s
[really-safe-money-gen] Just $
254.56 s
[really-safe-money-gen] - if r == Amount.zero
254.56 s
[really-safe-money-gen] - then M.delete currency m
254.56 s
[really-safe-money-gen] - else M.insert currency r m
254.56 s
[really-safe-money-gen] + if r == Amount.zero
254.56 s
[really-safe-money-gen] + then M.delete currency m
254.56 s
[really-safe-money-gen] + else M.insert currency r m
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
254.56 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
254.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
254.56 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
254.56 s
[really-safe-money-gen] fromAmount currency amount =
254.56 s
[really-safe-money-gen] - if amount == Amount.zero
254.56 s
[really-safe-money-gen] + if False
254.56 s
[really-safe-money-gen] then zero
254.56 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
254.56 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
254.56 s
[really-safe-money-gen] fromAmount currency amount =
254.56 s
[really-safe-money-gen] - if amount == Amount.zero
254.56 s
[really-safe-money-gen] + if not (amount == Amount.zero)
254.56 s
[really-safe-money-gen] then zero
254.56 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/MultiAmount.hs:73:3-51
254.56 s
[really-safe-money-gen] @@ -70,9 +70,9 @@
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
254.56 s
[really-safe-money-gen] fromAmount currency amount =
254.56 s
[really-safe-money-gen] - if amount == Amount.zero
254.56 s
[really-safe-money-gen] - then zero
254.56 s
[really-safe-money-gen] - else MultiAmount $ M.singleton currency amount
254.56 s
[really-safe-money-gen] + if amount == Amount.zero
254.56 s
[really-safe-money-gen] + then zero
254.56 s
[really-safe-money-gen] + else MultiAmount $ M.singleton currency amount
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] -- | No money of any currency
254.56 s
[really-safe-money-gen] zero :: MultiAmount currency
254.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
254.56 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
254.56 s
[really-safe-money-gen] [ genericValidate ma,
254.56 s
[really-safe-money-gen] decorateMap m $ \_ a ->
254.56 s
[really-safe-money-gen] declare "The amount is not zero" $
254.56 s
[really-safe-money-gen] - a /= Amount.zero
254.56 s
[really-safe-money-gen] + True
254.56 s
[really-safe-money-gen] ]
254.56 s
[really-safe-money-gen]
254.56 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
254.56 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
254.56 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
254.56 s
[really-safe-money-gen] [ genericValidate ma,
254.56 s
[really-safe-money-gen] decorateMap m $ \_ a ->
254.57 s
[really-safe-money-gen] declare "The amount is not zero" $
256.91 s
[really-safe-money-gen] - a /= Amount.zero
257.01 s
[really-safe-money-gen] + False
257.01 s
[really-safe-money-gen] ]
257.01 s
[really-safe-money-gen]
257.01 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
257.01 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
257.01 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
257.01 s
[really-safe-money-gen] [ genericValidate ma,
257.01 s
[really-safe-money-gen] decorateMap m $ \_ a ->
257.01 s
[really-safe-money-gen] declare "The amount is not zero" $
257.01 s
[really-safe-money-gen] - a /= Amount.zero
257.01 s
[really-safe-money-gen] + not (a /= Amount.zero)
257.01 s
[really-safe-money-gen] ]
257.01 s
[really-safe-money-gen]
257.01 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
257.01 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
257.01 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
257.01 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
257.01 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
257.01 s
[really-safe-money-gen] mconcat
257.01 s
[really-safe-money-gen] - [ genericValidate ma,
257.01 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
257.01 s
[really-safe-money-gen] - declare "The amount is not zero" $
257.01 s
[really-safe-money-gen] - a /= Amount.zero
257.02 s
[really-safe-money-gen] - ]
257.02 s
[really-safe-money-gen] + []
257.02 s
[really-safe-money-gen]
257.02 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
257.02 s
[really-safe-money-gen]
257.02 s
[really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:396:23-27
257.02 s
[really-safe-money-gen] @@ -393,5 +393,5 @@
257.02 s
[really-safe-money-gen] DecimalLiteral mS m e -> DecimalLiteral (go mS) m e
257.02 s
[really-safe-money-gen] where
257.02 s
[really-safe-money-gen] go = \case
257.02 s
[really-safe-money-gen] - Nothing -> Just True
257.02 s
[really-safe-money-gen] + Nothing -> Just False
257.02 s
[really-safe-money-gen] s -> s
257.02 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
257.02 s
[really-safe-money-gen] @@ -60,11 +60,11 @@
257.02 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
257.02 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
257.02 s
[really-safe-money-gen] mconcat
257.02 s
[really-safe-money-gen] - [ genericValidate ma,
257.02 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
257.02 s
[really-safe-money-gen] - declare "The amount is not zero" $
257.02 s
[really-safe-money-gen] - a /= Amount.zero
257.02 s
[really-safe-money-gen] - ]
257.02 s
[really-safe-money-gen] + [ genericValidate ma,
257.02 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
257.02 s
[really-safe-money-gen] + declare "The amount is not zero" $
257.02 s
[really-safe-money-gen] + a /= Amount.zero
257.02 s
[really-safe-money-gen] + ]
257.02 s
[really-safe-money-gen]
257.02 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
257.02 s
[really-safe-money-gen]
257.02 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
257.02 s
[really-safe-money-gen] @@ -365,7 +365,7 @@
257.02 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
257.02 s
[really-safe-money-gen] let currentDigits :: Word8
257.02 s
[really-safe-money-gen] currentDigits = digits dl
257.02 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
257.02 s
[really-safe-money-gen] + in if False
257.02 s
[really-safe-money-gen] then dl
257.02 s
[really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
257.02 s
[really-safe-money-gen] where
257.02 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:368:10-39
257.02 s
[really-safe-money-gen] @@ -365,7 +365,7 @@
257.02 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
257.02 s
[really-safe-money-gen] let currentDigits :: Word8
257.02 s
[really-safe-money-gen] currentDigits = digits dl
257.02 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
257.02 s
[really-safe-money-gen] + in if True
257.02 s
[really-safe-money-gen] then dl
257.02 s
[really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
257.02 s
[really-safe-money-gen] where
257.02 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:368:10-39
257.02 s
[really-safe-money-gen] @@ -365,7 +365,7 @@
257.02 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
257.02 s
[really-safe-money-gen] let currentDigits :: Word8
257.02 s
[really-safe-money-gen] currentDigits = digits dl
257.02 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
257.02 s
[really-safe-money-gen] + in if not (wantedDigits <= currentDigits)
257.02 s
[really-safe-money-gen] then dl
257.02 s
[really-safe-money-gen] else increaseDigits (wantedDigits - currentDigits) dl
257.02 s
[really-safe-money-gen] where
257.02 s
[really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:368:7-62
257.02 s
[really-safe-money-gen] @@ -365,9 +365,9 @@
257.02 s
[really-safe-money-gen] setMinimumDigits wantedDigits dl =
257.02 s
[really-safe-money-gen] let currentDigits :: Word8
257.02 s
[really-safe-money-gen] currentDigits = digits dl
257.02 s
[really-safe-money-gen] - in if wantedDigits <= currentDigits
257.02 s
[really-safe-money-gen] - then dl
257.02 s
[really-safe-money-gen] - else increaseDigits (wantedDigits - currentDigits) dl
257.02 s
[really-safe-money-gen] + in if wantedDigits <= currentDigits
257.02 s
[really-safe-money-gen] + then dl
257.02 s
[really-safe-money-gen] + else increaseDigits (wantedDigits - currentDigits) dl
257.02 s
[really-safe-money-gen] where
257.02 s
[really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
257.02 s
[really-safe-money-gen] increaseDigits 0 = id
257.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
257.02 s
[really-safe-money-gen] @@ -372,7 +372,7 @@
257.02 s
[really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
257.02 s
[really-safe-money-gen] increaseDigits 0 = id
257.02 s
[really-safe-money-gen] increaseDigits w = \case
257.02 s
[really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
257.02 s
[really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 1) (succ e))
257.02 s
[really-safe-money-gen]
257.02 s
[really-safe-money-gen] -- | Ensures that a positive literal has no sign
257.02 s
[really-safe-money-gen] --
257.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:375:80-82
257.02 s
[really-safe-money-gen] @@ -372,7 +372,7 @@
257.02 s
[really-safe-money-gen] increaseDigits :: Word8 -> DecimalLiteral -> DecimalLiteral
257.03 s
[really-safe-money-gen] increaseDigits 0 = id
257.03 s
[really-safe-money-gen] increaseDigits w = \case
257.03 s
[really-safe-money-gen] - DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 10) (succ e))
257.03 s
[really-safe-money-gen] + DecimalLiteral mS m e -> increaseDigits (pred w) (DecimalLiteral mS (m * 0) (succ e))
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] -- | Ensures that a positive literal has no sign
257.03 s
[really-safe-money-gen] --
257.03 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
257.03 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.03 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
257.03 s
[really-safe-money-gen] signSignum = \case
257.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
257.03 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.03 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen] +numSign a = if True then Nothing else Just False
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
257.03 s
[really-safe-money-gen] signSignum = \case
257.03 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:337:16-22
257.03 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.03 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen] +numSign a = if not (a >= 0) then Nothing else Just False
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
257.03 s
[really-safe-money-gen] signSignum = \case
257.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:337:16-22
257.03 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.03 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen] +numSign a = if False then Nothing else Just False
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
257.03 s
[really-safe-money-gen] signSignum = \case
257.03 s
[really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:337:46-51
257.03 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.03 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just True
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
257.03 s
[really-safe-money-gen] signSignum = \case
257.03 s
[really-safe-money-gen] Testing mutation CondFlip at src/Numeric/DecimalLiteral.hs:337:13-51
257.03 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.03 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen] +numSign a = if a >= 0 then Nothing else Just False
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
257.03 s
[really-safe-money-gen] signSignum = \case
257.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
257.03 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
257.03 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
257.03 s
[really-safe-money-gen] toInt dl = do
257.03 s
[really-safe-money-gen] n <- toInteger dl
257.03 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
257.03 s
[really-safe-money-gen] + guard $ True
257.03 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:332:11-46
257.03 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
257.03 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
257.03 s
[really-safe-money-gen] toInt dl = do
257.03 s
[really-safe-money-gen] n <- toInteger dl
257.03 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
257.03 s
[really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Int))
257.03 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
257.03 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
257.03 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
257.03 s
[really-safe-money-gen] toInt dl = do
257.03 s
[really-safe-money-gen] n <- toInteger dl
257.03 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
257.03 s
[really-safe-money-gen] + guard $ False
257.03 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
257.03 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
257.03 s
[really-safe-money-gen] toInt dl = do
257.03 s
[really-safe-money-gen] n <- toInteger dl
257.03 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
257.03 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
257.03 s
[really-safe-money-gen] + guard $ True
257.03 s
[really-safe-money-gen] pure $ fromIntegral n
257.03 s
[really-safe-money-gen]
257.03 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.04 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
257.04 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
257.04 s
[really-safe-money-gen] toInt dl = do
257.04 s
[really-safe-money-gen] n <- toInteger dl
257.04 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
257.04 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
257.04 s
[really-safe-money-gen] + guard $ False
257.04 s
[really-safe-money-gen] pure $ fromIntegral n
257.04 s
[really-safe-money-gen]
257.04 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
257.04 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:315:67-68
257.04 s
[really-safe-money-gen] @@ -312,7 +312,7 @@
257.04 s
[really-safe-money-gen]
257.04 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from an 'Integer'
257.04 s
[really-safe-money-gen] fromInteger :: Integer -> DecimalLiteral
257.04 s
[really-safe-money-gen] -fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 0
257.04 s
[really-safe-money-gen] +fromInteger n = DecimalLiteral (numSign n) (fromIntegral (abs n)) 1
257.04 s
[really-safe-money-gen]
257.04 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into an 'Integer'
257.04 s
[really-safe-money-gen] toInteger :: DecimalLiteral -> Maybe Integer
258.11 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:333:11-46
258.11 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
258.11 s
[really-safe-money-gen] toInt dl = do
258.11 s
[really-safe-money-gen] n <- toInteger dl
258.11 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
258.11 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
258.11 s
[really-safe-money-gen] + guard $ not (n >= fromIntegral (minBound :: Int))
258.11 s
[really-safe-money-gen] pure $ fromIntegral n
258.11 s
[really-safe-money-gen]
258.11 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
258.11 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:304:42-43
258.11 s
[really-safe-money-gen] @@ -301,7 +301,7 @@
258.11 s
[really-safe-money-gen]
258.11 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
258.11 s
[really-safe-money-gen] fromNatural :: Natural -> DecimalLiteral
258.11 s
[really-safe-money-gen] -fromNatural n = DecimalLiteral Nothing n 0
258.11 s
[really-safe-money-gen] +fromNatural n = DecimalLiteral Nothing n 1
258.11 s
[really-safe-money-gen]
258.11 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Natural'
258.11 s
[really-safe-money-gen] toNatural :: DecimalLiteral -> Maybe Natural
258.11 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
258.11 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
258.11 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
258.11 s
[really-safe-money-gen] toWord dl = do
258.11 s
[really-safe-money-gen] n <- toNatural dl
258.11 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
258.11 s
[really-safe-money-gen] + guard $ True
258.12 s
[really-safe-money-gen] pure $ fromIntegral n
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
258.12 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
258.12 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
258.12 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
258.12 s
[really-safe-money-gen] toWord dl = do
258.12 s
[really-safe-money-gen] n <- toNatural dl
258.12 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
258.12 s
[really-safe-money-gen] + guard $ False
258.12 s
[really-safe-money-gen] pure $ fromIntegral n
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
258.12 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:299:11-47
258.12 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
258.12 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
258.12 s
[really-safe-money-gen] toWord dl = do
258.12 s
[really-safe-money-gen] n <- toNatural dl
258.12 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
258.12 s
[really-safe-money-gen] + guard $ not (n <= fromIntegral (maxBound :: Word))
258.12 s
[really-safe-money-gen] pure $ fromIntegral n
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
258.12 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
258.12 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
258.12 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
258.12 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] Just False -> Nothing
258.12 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (0 ^ e)
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
258.12 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
258.12 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
258.12 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
258.12 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
258.12 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] Just False -> Nothing
258.12 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
258.12 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
258.12 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
258.12 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
258.12 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
258.12 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] Just False -> Nothing
258.12 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (-10 ^ e)
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
258.12 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
258.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
258.12 s
[really-safe-money-gen] @@ -284,9 +284,9 @@
258.12 s
[really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
258.12 s
[really-safe-money-gen] -- Nothing
258.12 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
258.12 s
[really-safe-money-gen] -toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] - Just False -> Nothing
258.12 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen] +toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] + Just False -> Nothing
258.12 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
258.12 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
258.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
258.12 s
[really-safe-money-gen] @@ -284,9 +284,9 @@
258.12 s
[really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
258.12 s
[really-safe-money-gen] -- Nothing
258.12 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
258.12 s
[really-safe-money-gen] -toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] - Just False -> Nothing
258.12 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen] +toRatio (DecimalLiteral mSign m e) = case mSign of
258.12 s
[really-safe-money-gen] + Just False -> Nothing
258.12 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (10 ^ e)
258.12 s
[really-safe-money-gen]
258.12 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
258.12 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
258.12 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
258.12 s
[really-safe-money-gen] @@ -233,7 +233,7 @@
258.13 s
[really-safe-money-gen] -- >>> fromRatio (1 % 3)
258.13 s
[really-safe-money-gen] -- Nothing
258.13 s
[really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
258.13 s
[really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
258.13 s
[really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 0
258.13 s
[really-safe-money-gen] where
258.13 s
[really-safe-money-gen] fromRationalRepetendLimited ::
258.13 s
[really-safe-money-gen] -- limit
258.13 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
258.13 s
[really-safe-money-gen] @@ -233,7 +233,7 @@
258.13 s
[really-safe-money-gen] -- >>> fromRatio (1 % 3)
258.13 s
[really-safe-money-gen] -- Nothing
258.13 s
[really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
258.13 s
[really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
258.13 s
[really-safe-money-gen] +fromRatio = fromRationalRepetendLimited 1
258.13 s
[really-safe-money-gen] where
258.13 s
[really-safe-money-gen] fromRationalRepetendLimited ::
258.13 s
[really-safe-money-gen] -- limit
258.13 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:236:41-44
258.13 s
[really-safe-money-gen] @@ -233,7 +233,7 @@
258.13 s
[really-safe-money-gen] -- >>> fromRatio (1 % 3)
258.13 s
[really-safe-money-gen] -- Nothing
258.13 s
[really-safe-money-gen] fromRatio :: Ratio Natural -> Maybe DecimalLiteral
258.13 s
[really-safe-money-gen] -fromRatio = fromRationalRepetendLimited 256
258.13 s
[really-safe-money-gen] +fromRatio = fromRationalRepetendLimited -256
258.13 s
[really-safe-money-gen] where
258.13 s
[really-safe-money-gen] fromRationalRepetendLimited ::
258.13 s
[really-safe-money-gen] -- limit
258.13 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:244:14-15
258.13 s
[really-safe-money-gen] @@ -241,7 +241,7 @@
258.13 s
[really-safe-money-gen] Ratio Natural ->
258.13 s
[really-safe-money-gen] Maybe DecimalLiteral
258.13 s
[really-safe-money-gen] fromRationalRepetendLimited l rational
258.13 s
[really-safe-money-gen] - | d == 0 = Nothing
258.13 s
[really-safe-money-gen] + | d == 1 = Nothing
258.13 s
[really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
258.13 s
[really-safe-money-gen] where
258.13 s
[really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
258.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:244:9-15
258.13 s
[really-safe-money-gen] @@ -241,7 +241,7 @@
258.13 s
[really-safe-money-gen] Ratio Natural ->
258.13 s
[really-safe-money-gen] Maybe DecimalLiteral
258.13 s
[really-safe-money-gen] fromRationalRepetendLimited l rational
258.13 s
[really-safe-money-gen] - | d == 0 = Nothing
258.13 s
[really-safe-money-gen] + | True = Nothing
258.13 s
[really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
258.13 s
[really-safe-money-gen] where
258.13 s
[really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
258.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:264:13-26
258.13 s
[really-safe-money-gen] @@ -261,7 +261,7 @@
258.13 s
[really-safe-money-gen] Just (c, e)
258.13 s
[really-safe-money-gen] longDivWithLimit !c !e ns !n
258.13 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
258.13 s
[really-safe-money-gen] - | S.member n ns = Nothing
258.13 s
[really-safe-money-gen] + | True = Nothing
258.13 s
[really-safe-money-gen] -- Over the limit, stop trying
258.13 s
[really-safe-money-gen] | e >= l = Nothing
258.13 s
[really-safe-money-gen] | n < d =
258.13 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:264:13-26
258.13 s
[really-safe-money-gen] @@ -261,7 +261,7 @@
258.13 s
[really-safe-money-gen] Just (c, e)
258.13 s
[really-safe-money-gen] longDivWithLimit !c !e ns !n
258.13 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
258.13 s
[really-safe-money-gen] - | S.member n ns = Nothing
258.13 s
[really-safe-money-gen] + | not (S.member n ns) = Nothing
258.13 s
[really-safe-money-gen] -- Over the limit, stop trying
258.13 s
[really-safe-money-gen] | e >= l = Nothing
258.13 s
[really-safe-money-gen] | n < d =
258.13 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:244:9-15
258.13 s
[really-safe-money-gen] @@ -241,7 +241,7 @@
258.13 s
[really-safe-money-gen] Ratio Natural ->
258.13 s
[really-safe-money-gen] Maybe DecimalLiteral
258.13 s
[really-safe-money-gen] fromRationalRepetendLimited l rational
258.13 s
[really-safe-money-gen] - | d == 0 = Nothing
258.13 s
[really-safe-money-gen] + | not (d == 0) = Nothing
258.13 s
[really-safe-money-gen] | otherwise = toLiteral Nothing <$> longDiv num
258.13 s
[really-safe-money-gen] where
258.13 s
[really-safe-money-gen] toLiteral mSign (m, e) = DecimalLiteral mSign m (fromIntegral e)
258.13 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:266:13-19
258.13 s
[really-safe-money-gen] @@ -263,7 +263,7 @@
258.13 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
258.13 s
[really-safe-money-gen] | S.member n ns = Nothing
258.13 s
[really-safe-money-gen] -- Over the limit, stop trying
258.13 s
[really-safe-money-gen] - | e >= l = Nothing
258.13 s
[really-safe-money-gen] + | not (e >= l) = Nothing
258.13 s
[really-safe-money-gen] | n < d =
258.13 s
[really-safe-money-gen] let !ns' = S.insert n ns
258.13 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
258.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:266:13-19
258.13 s
[really-safe-money-gen] @@ -263,7 +263,7 @@
258.13 s
[really-safe-money-gen] -- If there's a repetend, we can't turn it into a decimal literal
258.13 s
[really-safe-money-gen] | S.member n ns = Nothing
258.13 s
[really-safe-money-gen] -- Over the limit, stop trying
258.13 s
[really-safe-money-gen] - | e >= l = Nothing
258.13 s
[really-safe-money-gen] + | True = Nothing
258.13 s
[really-safe-money-gen] | n < d =
258.13 s
[really-safe-money-gen] let !ns' = S.insert n ns
258.13 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
258.13 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:267:13-18
258.13 s
[really-safe-money-gen] @@ -264,7 +264,7 @@
258.13 s
[really-safe-money-gen] | S.member n ns = Nothing
258.13 s
[really-safe-money-gen] -- Over the limit, stop trying
258.13 s
[really-safe-money-gen] | e >= l = Nothing
258.13 s
[really-safe-money-gen] - | n < d =
258.13 s
[really-safe-money-gen] + | not (n < d) =
258.13 s
[really-safe-money-gen] let !ns' = S.insert n ns
258.13 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
258.14 s
[really-safe-money-gen] | otherwise =
258.14 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:267:13-18
258.14 s
[really-safe-money-gen] @@ -264,7 +264,7 @@
258.14 s
[really-safe-money-gen] | S.member n ns = Nothing
258.14 s
[really-safe-money-gen] -- Over the limit, stop trying
259.69 s
[really-safe-money-gen] | e >= l = Nothing
259.69 s
[really-safe-money-gen] - | n < d =
259.69 s
[really-safe-money-gen] + | True =
259.69 s
[really-safe-money-gen] let !ns' = S.insert n ns
259.69 s
[really-safe-money-gen] in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
259.69 s
[really-safe-money-gen] | otherwise =
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
259.70 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
259.70 s
[really-safe-money-gen] | e >= l = Nothing
259.70 s
[really-safe-money-gen] | n < d =
259.70 s
[really-safe-money-gen] let !ns' = S.insert n ns
259.70 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
259.70 s
[really-safe-money-gen] + in longDivWithLimit (c * 0) (succ e) ns' (n * 10)
259.70 s
[really-safe-money-gen] | otherwise =
259.70 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
259.70 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:41-43
259.70 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
259.70 s
[really-safe-money-gen] | e >= l = Nothing
259.70 s
[really-safe-money-gen] | n < d =
259.70 s
[really-safe-money-gen] let !ns' = S.insert n ns
259.70 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
259.70 s
[really-safe-money-gen] + in longDivWithLimit (c * 1) (succ e) ns' (n * 10)
259.70 s
[really-safe-money-gen] | otherwise =
259.70 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
259.70 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
259.70 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
259.70 s
[really-safe-money-gen] | e >= l = Nothing
259.70 s
[really-safe-money-gen] | n < d =
259.70 s
[really-safe-money-gen] let !ns' = S.insert n ns
259.70 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
259.70 s
[really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 1)
259.70 s
[really-safe-money-gen] | otherwise =
259.70 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
259.70 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:269:63-65
259.70 s
[really-safe-money-gen] @@ -266,7 +266,7 @@
259.70 s
[really-safe-money-gen] | e >= l = Nothing
259.70 s
[really-safe-money-gen] | n < d =
259.70 s
[really-safe-money-gen] let !ns' = S.insert n ns
259.70 s
[really-safe-money-gen] - in longDivWithLimit (c * 10) (succ e) ns' (n * 10)
259.70 s
[really-safe-money-gen] + in longDivWithLimit (c * 10) (succ e) ns' (n * 0)
259.70 s
[really-safe-money-gen] | otherwise =
259.70 s
[really-safe-money-gen] let (q, r') = n `quotRem` d
259.70 s
[really-safe-money-gen] in longDivWithLimit (c + q) e ns r'
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:38-39
259.70 s
[really-safe-money-gen] @@ -249,7 +249,7 @@
259.70 s
[really-safe-money-gen] num = numerator rational
259.70 s
[really-safe-money-gen]
259.70 s
[really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
259.70 s
[really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
259.70 s
[really-safe-money-gen] + longDiv = longDivWithLimit 0 1 S.empty
259.70 s
[really-safe-money-gen]
259.70 s
[really-safe-money-gen] longDivWithLimit ::
259.70 s
[really-safe-money-gen] Natural ->
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
259.70 s
[really-safe-money-gen] @@ -220,7 +220,7 @@
259.70 s
[really-safe-money-gen] -- (-3) % 10
259.70 s
[really-safe-money-gen] toRational :: DecimalLiteral -> Rational
259.70 s
[really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
259.70 s
[really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
259.70 s
[really-safe-money-gen] + signSignum mSign (fromIntegral m / (0 ^ e))
259.70 s
[really-safe-money-gen]
259.70 s
[really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
259.70 s
[really-safe-money-gen] --
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:252:36-37
259.70 s
[really-safe-money-gen] @@ -249,7 +249,7 @@
259.70 s
[really-safe-money-gen] num = numerator rational
259.70 s
[really-safe-money-gen]
259.70 s
[really-safe-money-gen] longDiv :: Natural -> Maybe (Natural, Int)
259.70 s
[really-safe-money-gen] - longDiv = longDivWithLimit 0 0 S.empty
259.70 s
[really-safe-money-gen] + longDiv = longDivWithLimit 1 0 S.empty
259.70 s
[really-safe-money-gen]
259.70 s
[really-safe-money-gen] longDivWithLimit ::
259.70 s
[really-safe-money-gen] Natural ->
259.70 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
259.70 s
[really-safe-money-gen] @@ -220,7 +220,7 @@
259.70 s
[really-safe-money-gen] -- (-3) % 10
259.70 s
[really-safe-money-gen] toRational :: DecimalLiteral -> Rational
259.70 s
[really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
259.71 s
[really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
259.71 s
[really-safe-money-gen] + signSignum mSign (fromIntegral m / (1 ^ e))
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
259.71 s
[really-safe-money-gen] --
259.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:223:39-41
259.71 s
[really-safe-money-gen] @@ -220,7 +220,7 @@
259.71 s
[really-safe-money-gen] -- (-3) % 10
259.71 s
[really-safe-money-gen] toRational :: DecimalLiteral -> Rational
259.71 s
[really-safe-money-gen] toRational (DecimalLiteral mSign m e) =
259.71 s
[really-safe-money-gen] - signSignum mSign (fromIntegral m / (10 ^ e))
259.71 s
[really-safe-money-gen] + signSignum mSign (fromIntegral m / (-10 ^ e))
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] -- | Parse a 'DecimalLiteral' from a 'Ratio Natural'
259.71 s
[really-safe-money-gen] --
259.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:208:5-10
259.71 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
259.71 s
[really-safe-money-gen] -- Nothing
259.71 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
259.71 s
[really-safe-money-gen] fromRational (n :% d)
259.71 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] + | True = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
259.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
259.71 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
259.71 s
[really-safe-money-gen] -- Nothing
259.71 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
259.71 s
[really-safe-money-gen] fromRational (n :% d)
259.71 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
259.71 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:208:5-10
259.71 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
259.71 s
[really-safe-money-gen] -- Nothing
259.71 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
259.71 s
[really-safe-money-gen] fromRational (n :% d)
259.71 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] + | not (n < 0) = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
259.71 s
[really-safe-money-gen] Testing mutation BoolLit at src/Numeric/DecimalLiteral.hs:208:62-67
259.71 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
259.71 s
[really-safe-money-gen] -- Nothing
259.71 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
259.71 s
[really-safe-money-gen] fromRational (n :% d)
259.71 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] + | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just True) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
259.71 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
259.71 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
259.71 s
[really-safe-money-gen] @@ -183,7 +183,7 @@
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
259.71 s
[really-safe-money-gen] go :: Word8 -> String -> String
259.71 s
[really-safe-money-gen] - go 0 [] = ['.', '0']
259.71 s
[really-safe-money-gen] + go 0 [] = []
259.71 s
[really-safe-money-gen] go 0 s = '.' : s
259.71 s
[really-safe-money-gen] go e [] = '0' : go (pred e) []
259.71 s
[really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
259.71 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral.hs:186:15-25
259.71 s
[really-safe-money-gen] @@ -183,7 +183,7 @@
259.71 s
[really-safe-money-gen]
259.71 s
[really-safe-money-gen] goFrac m e = reverse (go e (reverse (show m)))
259.71 s
[really-safe-money-gen] go :: Word8 -> String -> String
259.71 s
[really-safe-money-gen] - go 0 [] = ['.', '0']
259.71 s
[really-safe-money-gen] + go 0 [] = ['.', '0']
259.71 s
[really-safe-money-gen] go 0 s = '.' : s
259.71 s
[really-safe-money-gen] go e [] = '0' : go (pred e) []
259.71 s
[really-safe-money-gen] go e (c : cs) = c : go (pred e) cs
259.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
259.71 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
259.71 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
259.71 s
[really-safe-money-gen] parseDigits f z = do
259.71 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
259.71 s
[really-safe-money-gen] - let digit = Char.ord c - 48
259.71 s
[really-safe-money-gen] + let digit = Char.ord c - 0
259.71 s
[really-safe-money-gen] case f z digit of
259.71 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
259.71 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
259.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
259.71 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
259.71 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
259.71 s
[really-safe-money-gen] parseDigits f z = do
259.71 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
259.71 s
[really-safe-money-gen] - let digit = Char.ord c - 48
259.71 s
[really-safe-money-gen] + let digit = Char.ord c - 1
259.71 s
[really-safe-money-gen] case f z digit of
259.71 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
259.71 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
259.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
259.71 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
259.71 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
259.71 s
[really-safe-money-gen] parseDigits f z = do
259.71 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
259.71 s
[really-safe-money-gen] - let digit = Char.ord c - 48
259.71 s
[really-safe-money-gen] + let digit = Char.ord c - -48
259.71 s
[really-safe-money-gen] case f z digit of
259.71 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
259.71 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
259.71 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:152:9-23
259.71 s
[really-safe-money-gen] @@ -149,7 +149,7 @@
259.71 s
[really-safe-money-gen] where
259.71 s
[really-safe-money-gen] go !a [] = return a
259.71 s
[really-safe-money-gen] go !a (c : cs)
259.71 s
[really-safe-money-gen] - | Char.isDigit c = do
259.71 s
[really-safe-money-gen] + | True = do
259.71 s
[really-safe-money-gen] _ <- ReadP.get
259.71 s
[really-safe-money-gen] let digit = Char.ord c - 48
259.71 s
[really-safe-money-gen] case f a digit of
259.71 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:152:9-23
259.71 s
[really-safe-money-gen] @@ -149,7 +149,7 @@
259.71 s
[really-safe-money-gen] where
259.71 s
[really-safe-money-gen] go !a [] = return a
259.71 s
[really-safe-money-gen] go !a (c : cs)
259.71 s
[really-safe-money-gen] - | Char.isDigit c = do
259.71 s
[really-safe-money-gen] + | not (Char.isDigit c) = do
259.71 s
[really-safe-money-gen] _ <- ReadP.get
259.71 s
[really-safe-money-gen] let digit = Char.ord c - 48
259.71 s
[really-safe-money-gen] case f a digit of
259.71 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
259.71 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
259.71 s
[really-safe-money-gen] go !a (c : cs)
261.41 s
[really-safe-money-gen] | Char.isDigit c = do
261.41 s
[really-safe-money-gen] _ <- ReadP.get
261.41 s
[really-safe-money-gen] - let digit = Char.ord c - 48
261.41 s
[really-safe-money-gen] + let digit = Char.ord c - 0
261.41 s
[really-safe-money-gen] case f a digit of
261.41 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
261.41 s
[really-safe-money-gen] Just a' -> go a' cs
261.41 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
261.41 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
261.41 s
[really-safe-money-gen] go !a (c : cs)
261.41 s
[really-safe-money-gen] | Char.isDigit c = do
261.41 s
[really-safe-money-gen] _ <- ReadP.get
261.41 s
[really-safe-money-gen] - let digit = Char.ord c - 48
261.41 s
[really-safe-money-gen] + let digit = Char.ord c - 1
261.41 s
[really-safe-money-gen] case f a digit of
261.41 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
261.41 s
[really-safe-money-gen] Just a' -> go a' cs
261.41 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
261.41 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
261.41 s
[really-safe-money-gen] go !a (c : cs)
261.41 s
[really-safe-money-gen] | Char.isDigit c = do
261.41 s
[really-safe-money-gen] _ <- ReadP.get
261.41 s
[really-safe-money-gen] - let digit = Char.ord c - 48
261.41 s
[really-safe-money-gen] + let digit = Char.ord c - -48
261.41 s
[really-safe-money-gen] case f a digit of
261.41 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
261.41 s
[really-safe-money-gen] Just a' -> go a' cs
261.41 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
261.41 s
[really-safe-money-gen] @@ -136,7 +136,7 @@
261.41 s
[really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
261.41 s
[really-safe-money-gen]
261.41 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
261.41 s
[really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
261.41 s
[really-safe-money-gen] +step a digit = Just $ a * 0 + fromIntegral digit
261.42 s
[really-safe-money-gen] {-# INLINE step #-}
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
261.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
261.42 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
261.42 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
261.42 s
[really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
261.42 s
[really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 0 + fromIntegral digit, succ e)
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
261.42 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
261.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:139:27-29
261.42 s
[really-safe-money-gen] @@ -136,7 +136,7 @@
261.42 s
[really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
261.42 s
[really-safe-money-gen] -step a digit = Just $ a * 10 + fromIntegral digit
261.42 s
[really-safe-money-gen] +step a digit = Just $ a * 1 + fromIntegral digit
261.42 s
[really-safe-money-gen] {-# INLINE step #-}
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
261.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = True || c == '+'
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
261.42 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
261.42 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
261.42 s
[really-safe-money-gen] -stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
261.42 s
[really-safe-money-gen] +stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
261.42 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
261.42 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = not (c == '-') || c == '+'
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = False || c == '+'
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = c == '-' || True
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = c == '-' || False
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = True
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:34-42
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = c == '-' || not (c == '+')
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
261.42 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.42 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.42 s
[really-safe-money-gen] decimalLiteralP = do
261.42 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.42 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.42 s
[really-safe-money-gen] + isSignChar c = False
261.42 s
[really-safe-money-gen]
261.42 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.42 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.42 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-42
261.43 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
261.43 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.43 s
[really-safe-money-gen] decimalLiteralP = do
261.43 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
261.43 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
261.43 s
[really-safe-money-gen] + isSignChar c = not (c == '-' || c == '+')
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.43 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
261.43 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.43 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.43 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
261.43 s
[really-safe-money-gen] + pure $ Just $ True
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] units <- parseDigits step 0
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
261.43 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.43 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.43 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
261.43 s
[really-safe-money-gen] + pure $ Just $ not (signChar == '+')
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] units <- parseDigits step 0
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
261.43 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
261.43 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.43 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
261.43 s
[really-safe-money-gen] + pure $ Just $ False
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] units <- parseDigits step 0
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
261.43 s
[really-safe-money-gen] @@ -122,7 +122,7 @@
261.43 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
261.43 s
[really-safe-money-gen] pure $ Just $ signChar == '+'
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] - units <- parseDigits step 0
261.43 s
[really-safe-money-gen] + units <- parseDigits step 1
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
261.43 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
261.43 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
261.43 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] units <- parseDigits step 0
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0) $ do
261.43 s
[really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1) $ do
261.43 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
261.43 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
261.43 s
[really-safe-money-gen] @@ -127,7 +127,7 @@
261.43 s
[really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
261.43 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0)
261.43 s
[really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1)
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] pure $ DecimalLiteral mSign m e
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
261.43 s
[really-safe-money-gen] @@ -109,9 +109,9 @@
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
261.43 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
261.43 s
[really-safe-money-gen] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
261.43 s
[really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
261.43 s
[really-safe-money-gen] - Just dl -> pure dl
261.43 s
[really-safe-money-gen] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
261.43 s
[really-safe-money-gen] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
261.43 s
[really-safe-money-gen] + Just dl -> pure dl
261.43 s
[really-safe-money-gen]
261.43 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
261.43 s
[really-safe-money-gen] decimalLiteralP = do
261.43 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
261.43 s
[really-safe-money-gen] @@ -83,9 +83,9 @@
261.43 s
[really-safe-money-gen] instance NFData DecimalLiteral
261.43 s
[really-safe-money-gen]
262.89 s
[really-safe-money-gen] instance IsString DecimalLiteral where
262.89 s
[really-safe-money-gen] - fromString s = case Numeric.DecimalLiteral.fromString s of
263.02 s
[really-safe-money-gen] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
263.02 s
[really-safe-money-gen] - Just dl -> dl
263.02 s
[really-safe-money-gen] + fromString s = case Numeric.DecimalLiteral.fromString s of
263.02 s
[really-safe-money-gen] + Nothing -> error $ "Invalid DecimalLiteral: " <> show s
263.02 s
[really-safe-money-gen] + Just dl -> dl
263.02 s
[really-safe-money-gen]
263.02 s
[really-safe-money-gen] -- | Parse a decimal literal from a string
263.02 s
[really-safe-money-gen] --
263.02 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
263.02 s
[really-safe-money-gen] @@ -83,9 +83,9 @@
263.02 s
[really-safe-money-gen] instance NFData DecimalLiteral
263.02 s
[really-safe-money-gen]
263.02 s
[really-safe-money-gen] instance IsString DecimalLiteral where
263.02 s
[really-safe-money-gen] - fromString s = case Numeric.DecimalLiteral.fromString s of
263.02 s
[really-safe-money-gen] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
263.02 s
[really-safe-money-gen] - Just dl -> dl
263.02 s
[really-safe-money-gen] + fromString s = case Numeric.DecimalLiteral.fromString s of
263.02 s
[really-safe-money-gen] + Nothing -> error $ "Invalid DecimalLiteral: " <> show s
263.02 s
[really-safe-money-gen] + Just dl -> dl
263.02 s
[really-safe-money-gen]
263.02 s
[really-safe-money-gen] -- | Parse a decimal literal from a string
263.02 s
[really-safe-money-gen] --
263.02 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
263.02 s
[really-safe-money-gen] @@ -798,7 +798,7 @@
263.02 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
263.02 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
263.02 s
[really-safe-money-gen] let decimals :: Int
263.02 s
[really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
263.02 s
[really-safe-money-gen] + decimals = ceiling $ logBase 0 (fromIntegral qf :: Float)
263.02 s
[really-safe-money-gen] in printf "%%0.%df" decimals
263.02 s
[really-safe-money-gen]
263.02 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
263.03 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
263.03 s
[really-safe-money-gen] @@ -798,7 +798,7 @@
263.03 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
263.03 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
263.03 s
[really-safe-money-gen] let decimals :: Int
263.03 s
[really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
263.03 s
[really-safe-money-gen] + decimals = ceiling $ logBase 1 (fromIntegral qf :: Float)
263.03 s
[really-safe-money-gen] in printf "%%0.%df" decimals
263.03 s
[really-safe-money-gen]
263.03 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
263.03 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:801:36-38
263.03 s
[really-safe-money-gen] @@ -798,7 +798,7 @@
263.03 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor 0) = "%f"
263.03 s
[really-safe-money-gen] quantisationFactorFormatString (QuantisationFactor qf) =
263.03 s
[really-safe-money-gen] let decimals :: Int
263.03 s
[really-safe-money-gen] - decimals = ceiling $ logBase 10 (fromIntegral qf :: Float)
263.03 s
[really-safe-money-gen] + decimals = ceiling $ logBase -10 (fromIntegral qf :: Float)
263.03 s
[really-safe-money-gen] in printf "%%0.%df" decimals
263.03 s
[really-safe-money-gen]
263.03 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
263.03 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:569:18-19
263.03 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
263.03 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
263.03 s
[really-safe-money-gen] smallerChunk :: Amount
263.03 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
263.03 s
[really-safe-money-gen] - in if rest == 0
263.03 s
[really-safe-money-gen] + in if rest == 1
263.03 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
263.03 s
[really-safe-money-gen] else
263.03 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
263.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
263.03 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
263.03 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
263.03 s
[really-safe-money-gen] smallerChunk :: Amount
263.03 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
263.03 s
[really-safe-money-gen] - in if rest == 0
263.03 s
[really-safe-money-gen] + in if True
263.03 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
263.03 s
[really-safe-money-gen] else
263.03 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
263.03 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:569:10-19
263.03 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
263.03 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
263.03 s
[really-safe-money-gen] smallerChunk :: Amount
263.03 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
263.03 s
[really-safe-money-gen] - in if rest == 0
263.03 s
[really-safe-money-gen] + in if False
263.03 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
263.03 s
[really-safe-money-gen] else
263.03 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
263.03 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:569:7-29
263.03 s
[really-safe-money-gen] @@ -566,22 +566,22 @@
263.03 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
263.03 s
[really-safe-money-gen] smallerChunk :: Amount
263.03 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
263.03 s
[really-safe-money-gen] - in if rest == 0
263.03 s
[really-safe-money-gen] - then DistributedIntoEqualChunks f smallerChunk
263.03 s
[really-safe-money-gen] - else
263.03 s
[really-safe-money-gen] - let -- This 'fromIntegral' is theoretically not safe, but it's
263.03 s
[really-safe-money-gen] - -- necessarily smaller than f so it will fit.
263.03 s
[really-safe-money-gen] - numberOfLargerChunks :: Word32
263.03 s
[really-safe-money-gen] - numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
263.03 s
[really-safe-money-gen] - numberOfSmallerChunks :: Word32
263.03 s
[really-safe-money-gen] - numberOfSmallerChunks = f - numberOfLargerChunks
263.03 s
[really-safe-money-gen] - largerChunk :: Amount
263.04 s
[really-safe-money-gen] - largerChunk = Amount $ succ smallerChunkSize
263.04 s
[really-safe-money-gen] - in DistributedIntoUnequalChunks
263.04 s
[really-safe-money-gen] - numberOfLargerChunks
263.04 s
[really-safe-money-gen] - largerChunk
263.04 s
[really-safe-money-gen] - numberOfSmallerChunks
263.04 s
[really-safe-money-gen] - smallerChunk
263.04 s
[really-safe-money-gen] + in if rest == 0
263.04 s
[really-safe-money-gen] + then DistributedIntoEqualChunks f smallerChunk
263.04 s
[really-safe-money-gen] + else
263.04 s
[really-safe-money-gen] + let -- This 'fromIntegral' is theoretically not safe, but it's
263.04 s
[really-safe-money-gen] + -- necessarily smaller than f so it will fit.
263.04 s
[really-safe-money-gen] + numberOfLargerChunks :: Word32
263.04 s
[really-safe-money-gen] + numberOfLargerChunks = (fromIntegral :: Word64 -> Word32) rest
263.04 s
[really-safe-money-gen] + numberOfSmallerChunks :: Word32
263.04 s
[really-safe-money-gen] + numberOfSmallerChunks = f - numberOfLargerChunks
263.04 s
[really-safe-money-gen] + largerChunk :: Amount
263.04 s
[really-safe-money-gen] + largerChunk = Amount $ succ smallerChunkSize
263.04 s
[really-safe-money-gen] + in DistributedIntoUnequalChunks
263.04 s
[really-safe-money-gen] + numberOfLargerChunks
263.04 s
[really-safe-money-gen] + largerChunk
263.04 s
[really-safe-money-gen] + numberOfSmallerChunks
263.04 s
[really-safe-money-gen] + smallerChunk
263.04 s
[really-safe-money-gen]
263.04 s
[really-safe-money-gen] -- | The result of 'distribute'
263.04 s
[really-safe-money-gen] type AmountDistribution = Distribution Amount
263.04 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:569:10-19
263.04 s
[really-safe-money-gen] @@ -566,7 +566,7 @@
263.04 s
[really-safe-money-gen] (smallerChunkSize, rest) = divMod a ((fromIntegral :: Word32 -> Word64) f)
263.04 s
[really-safe-money-gen] smallerChunk :: Amount
263.04 s
[really-safe-money-gen] smallerChunk = Amount smallerChunkSize
263.04 s
[really-safe-money-gen] - in if rest == 0
263.04 s
[really-safe-money-gen] + in if not (rest == 0)
263.04 s
[really-safe-money-gen] then DistributedIntoEqualChunks f smallerChunk
263.04 s
[really-safe-money-gen] else
263.04 s
[really-safe-money-gen] let -- This 'fromIntegral' is theoretically not safe, but it's
263.04 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
263.04 s
[really-safe-money-gen] @@ -541,7 +541,7 @@
263.04 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
263.04 s
[really-safe-money-gen] r :: Integer
263.04 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
263.04 s
[really-safe-money-gen] - in if r > maxBoundI
263.04 s
[really-safe-money-gen] + in if True
263.04 s
[really-safe-money-gen] then Nothing
263.04 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
263.04 s
[really-safe-money-gen]
263.04 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:544:10-23
263.04 s
[really-safe-money-gen] @@ -541,7 +541,7 @@
263.04 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
263.04 s
[really-safe-money-gen] r :: Integer
263.04 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
263.04 s
[really-safe-money-gen] - in if r > maxBoundI
263.04 s
[really-safe-money-gen] + in if False
263.04 s
[really-safe-money-gen] then Nothing
263.04 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
263.04 s
[really-safe-money-gen]
263.04 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:544:10-23
263.04 s
[really-safe-money-gen] @@ -541,7 +541,7 @@
263.04 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
263.04 s
[really-safe-money-gen] r :: Integer
263.04 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
263.04 s
[really-safe-money-gen] - in if r > maxBoundI
263.04 s
[really-safe-money-gen] + in if not (r > maxBoundI)
263.04 s
[really-safe-money-gen] then Nothing
263.04 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
263.04 s
[really-safe-money-gen]
263.04 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
263.04 s
[really-safe-money-gen] @@ -109,9 +109,9 @@
263.04 s
[really-safe-money-gen]
263.04 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
263.04 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
263.04 s
[really-safe-money-gen] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
263.04 s
[really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
263.04 s
[really-safe-money-gen] - Just dl -> pure dl
263.04 s
[really-safe-money-gen] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
263.04 s
[really-safe-money-gen] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
263.04 s
[really-safe-money-gen] + Just dl -> pure dl
263.04 s
[really-safe-money-gen]
263.04 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
263.04 s
[really-safe-money-gen] decimalLiteralP = do
263.04 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:544:7-66
263.04 s
[really-safe-money-gen] @@ -541,9 +541,9 @@
263.04 s
[really-safe-money-gen] maxBoundI = (fromIntegral :: Word64 -> Integer) (maxBound :: Word64)
263.04 s
[really-safe-money-gen] r :: Integer
263.05 s
[really-safe-money-gen] r = (fromIntegral :: Word32 -> Integer) f * (fromIntegral :: Word64 -> Integer) a
263.05 s
[really-safe-money-gen] - in if r > maxBoundI
263.05 s
[really-safe-money-gen] - then Nothing
263.05 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
263.05 s
[really-safe-money-gen] + in if r > maxBoundI
263.05 s
[really-safe-money-gen] + then Nothing
263.05 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
263.05 s
[really-safe-money-gen]
263.05 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
263.05 s
[really-safe-money-gen] --
263.05 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:518:14-15
263.05 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
263.05 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
264.98 s
[really-safe-money-gen] r :: Integer
264.98 s
[really-safe-money-gen] r = i1 - i2
264.98 s
[really-safe-money-gen] - in if r < 0
264.98 s
[really-safe-money-gen] + in if r < 1
264.98 s
[really-safe-money-gen] then Nothing
264.98 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.98 s
[really-safe-money-gen]
264.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
264.98 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
264.98 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
264.98 s
[really-safe-money-gen] r :: Integer
264.98 s
[really-safe-money-gen] r = i1 - i2
264.98 s
[really-safe-money-gen] - in if r < 0
264.98 s
[really-safe-money-gen] + in if True
264.98 s
[really-safe-money-gen] then Nothing
264.98 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.98 s
[really-safe-money-gen]
264.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:518:10-15
264.98 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
264.98 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
264.98 s
[really-safe-money-gen] r :: Integer
264.98 s
[really-safe-money-gen] r = i1 - i2
264.98 s
[really-safe-money-gen] - in if r < 0
264.98 s
[really-safe-money-gen] + in if False
264.98 s
[really-safe-money-gen] then Nothing
264.98 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.98 s
[really-safe-money-gen]
264.98 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:518:10-15
264.98 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
264.98 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
264.98 s
[really-safe-money-gen] r :: Integer
264.98 s
[really-safe-money-gen] r = i1 - i2
264.98 s
[really-safe-money-gen] - in if r < 0
264.98 s
[really-safe-money-gen] + in if not (r < 0)
264.98 s
[really-safe-money-gen] then Nothing
264.98 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen]
264.99 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:518:7-66
264.99 s
[really-safe-money-gen] @@ -515,9 +515,9 @@
264.99 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
264.99 s
[really-safe-money-gen] r :: Integer
264.99 s
[really-safe-money-gen] r = i1 - i2
264.99 s
[really-safe-money-gen] - in if r < 0
264.99 s
[really-safe-money-gen] - then Nothing
264.99 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen] + in if r < 0
264.99 s
[really-safe-money-gen] + then Nothing
264.99 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen]
264.99 s
[really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
264.99 s
[really-safe-money-gen] --
264.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
264.99 s
[really-safe-money-gen] @@ -473,7 +473,7 @@
264.99 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
264.99 s
[really-safe-money-gen] r :: Integer
264.99 s
[really-safe-money-gen] r = i1 + i2
264.99 s
[really-safe-money-gen] - in if r > maxBoundI
264.99 s
[really-safe-money-gen] + in if True
264.99 s
[really-safe-money-gen] then Nothing
264.99 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen]
264.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:476:10-23
264.99 s
[really-safe-money-gen] @@ -473,7 +473,7 @@
264.99 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
264.99 s
[really-safe-money-gen] r :: Integer
264.99 s
[really-safe-money-gen] r = i1 + i2
264.99 s
[really-safe-money-gen] - in if r > maxBoundI
264.99 s
[really-safe-money-gen] + in if False
264.99 s
[really-safe-money-gen] then Nothing
264.99 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen]
264.99 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:476:10-23
264.99 s
[really-safe-money-gen] @@ -473,7 +473,7 @@
264.99 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
264.99 s
[really-safe-money-gen] r :: Integer
264.99 s
[really-safe-money-gen] r = i1 + i2
264.99 s
[really-safe-money-gen] - in if r > maxBoundI
264.99 s
[really-safe-money-gen] + in if not (r > maxBoundI)
264.99 s
[really-safe-money-gen] then Nothing
264.99 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen]
264.99 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:476:7-66
264.99 s
[really-safe-money-gen] @@ -473,9 +473,9 @@
264.99 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
264.99 s
[really-safe-money-gen] r :: Integer
264.99 s
[really-safe-money-gen] r = i1 + i2
264.99 s
[really-safe-money-gen] - in if r > maxBoundI
264.99 s
[really-safe-money-gen] - then Nothing
264.99 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen] + in if r > maxBoundI
264.99 s
[really-safe-money-gen] + then Nothing
264.99 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
264.99 s
[really-safe-money-gen]
264.99 s
[really-safe-money-gen] -- | Add a number of amounts of money together.
264.99 s
[really-safe-money-gen] --
264.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:388:5-16
264.99 s
[really-safe-money-gen] @@ -385,7 +385,7 @@
264.99 s
[really-safe-money-gen] -- Nothing
264.99 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
264.99 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
264.99 s
[really-safe-money-gen] - | isInvalid r = Nothing
264.99 s
[really-safe-money-gen] + | True = Nothing
264.99 s
[really-safe-money-gen] | r < 0 = Nothing
264.99 s
[really-safe-money-gen] | otherwise =
264.99 s
[really-safe-money-gen] let resultRational :: Rational
264.99 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:388:5-16
264.99 s
[really-safe-money-gen] @@ -385,7 +385,7 @@
264.99 s
[really-safe-money-gen] -- Nothing
264.99 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
264.99 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
264.99 s
[really-safe-money-gen] - | isInvalid r = Nothing
264.99 s
[really-safe-money-gen] + | not (isInvalid r) = Nothing
264.99 s
[really-safe-money-gen] | r < 0 = Nothing
264.99 s
[really-safe-money-gen] | otherwise =
264.99 s
[really-safe-money-gen] let resultRational :: Rational
264.99 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:389:9-10
264.99 s
[really-safe-money-gen] @@ -386,7 +386,7 @@
264.99 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
264.99 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
264.99 s
[really-safe-money-gen] | isInvalid r = Nothing
264.99 s
[really-safe-money-gen] - | r < 0 = Nothing
264.99 s
[really-safe-money-gen] + | r < 1 = Nothing
264.99 s
[really-safe-money-gen] | otherwise =
264.99 s
[really-safe-money-gen] let resultRational :: Rational
265.00 s
[really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
265.00 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:389:5-10
265.00 s
[really-safe-money-gen] @@ -386,7 +386,7 @@
265.00 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
265.00 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
265.00 s
[really-safe-money-gen] | isInvalid r = Nothing
265.00 s
[really-safe-money-gen] - | r < 0 = Nothing
265.00 s
[really-safe-money-gen] + | True = Nothing
265.00 s
[really-safe-money-gen] | otherwise =
265.00 s
[really-safe-money-gen] let resultRational :: Rational
265.00 s
[really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
265.00 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:389:5-10
265.00 s
[really-safe-money-gen] @@ -386,7 +386,7 @@
265.00 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Amount
265.00 s
[really-safe-money-gen] fromRational (QuantisationFactor qf) r
265.00 s
[really-safe-money-gen] | isInvalid r = Nothing
265.00 s
[really-safe-money-gen] - | r < 0 = Nothing
265.00 s
[really-safe-money-gen] + | not (r < 0) = Nothing
265.00 s
[really-safe-money-gen] | otherwise =
265.00 s
[really-safe-money-gen] let resultRational :: Rational
265.00 s
[really-safe-money-gen] resultRational = r * (fromIntegral :: Word32 -> Rational) qf
265.00 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
265.00 s
[really-safe-money-gen] @@ -394,7 +394,7 @@
265.00 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] floored :: Natural
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] - in if ceiled == floored
265.00 s
[really-safe-money-gen] + in if True
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] then Nothing
265.00 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:397:14-31
265.00 s
[really-safe-money-gen] @@ -394,7 +394,7 @@
265.00 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] floored :: Natural
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] - in if ceiled == floored
265.00 s
[really-safe-money-gen] + in if False
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] then Nothing
265.00 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:397:14-31
265.00 s
[really-safe-money-gen] @@ -394,7 +394,7 @@
265.00 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] floored :: Natural
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] - in if ceiled == floored
265.00 s
[really-safe-money-gen] + in if not (ceiled == floored)
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] then Nothing
265.00 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
265.00 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] in if ceiled == floored
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] + if True
265.00 s
[really-safe-money-gen] then Nothing
265.00 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
265.00 s
[really-safe-money-gen] else Nothing
265.00 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:399:18-83
265.00 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] in if ceiled == floored
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] + if False
265.00 s
[really-safe-money-gen] then Nothing
265.00 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
265.00 s
[really-safe-money-gen] else Nothing
265.00 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:399:18-83
265.00 s
[really-safe-money-gen] @@ -396,7 +396,7 @@
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] in if ceiled == floored
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
265.00 s
[really-safe-money-gen] then Nothing
265.00 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
265.00 s
[really-safe-money-gen] else Nothing
265.00 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:399:15-57
265.00 s
[really-safe-money-gen] @@ -396,9 +396,9 @@
265.00 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
265.00 s
[really-safe-money-gen] in if ceiled == floored
265.00 s
[really-safe-money-gen] then
265.00 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] - then Nothing
265.00 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
265.00 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
265.00 s
[really-safe-money-gen] + then Nothing
265.00 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
265.00 s
[really-safe-money-gen] else Nothing
265.01 s
[really-safe-money-gen]
265.01 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
265.01 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:320:9-10
265.01 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
265.01 s
[really-safe-money-gen] Double ->
265.01 s
[really-safe-money-gen] Maybe Amount
265.01 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
265.01 s
[really-safe-money-gen] - | d < 0 = Nothing
265.01 s
[really-safe-money-gen] + | d < 1 = Nothing
265.01 s
[really-safe-money-gen] | otherwise =
265.01 s
[really-safe-money-gen] let resultDouble :: Double
265.01 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
267.42 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:397:11-25
267.42 s
[really-safe-money-gen] @@ -394,12 +394,12 @@
267.42 s
[really-safe-money-gen] ceiled = (ceiling :: Rational -> Natural) resultRational
267.42 s
[really-safe-money-gen] floored :: Natural
267.42 s
[really-safe-money-gen] floored = (floor :: Rational -> Natural) resultRational
267.42 s
[really-safe-money-gen] - in if ceiled == floored
267.42 s
[really-safe-money-gen] - then
267.42 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.42 s
[really-safe-money-gen] - then Nothing
267.42 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
267.42 s
[really-safe-money-gen] - else Nothing
267.42 s
[really-safe-money-gen] + in if ceiled == floored
267.42 s
[really-safe-money-gen] + then
267.42 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.42 s
[really-safe-money-gen] + then Nothing
267.42 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
267.42 s
[really-safe-money-gen] + else Nothing
267.42 s
[really-safe-money-gen]
267.42 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
267.42 s
[really-safe-money-gen] --
267.42 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:320:5-10
267.42 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
267.42 s
[really-safe-money-gen] Double ->
267.42 s
[really-safe-money-gen] Maybe Amount
267.42 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
267.42 s
[really-safe-money-gen] - | d < 0 = Nothing
267.42 s
[really-safe-money-gen] + | True = Nothing
267.42 s
[really-safe-money-gen] | otherwise =
267.42 s
[really-safe-money-gen] let resultDouble :: Double
267.42 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
267.42 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:320:5-10
267.42 s
[really-safe-money-gen] @@ -317,7 +317,7 @@
267.42 s
[really-safe-money-gen] Double ->
267.42 s
[really-safe-money-gen] Maybe Amount
267.43 s
[really-safe-money-gen] fromDouble (QuantisationFactor qf) d
267.43 s
[really-safe-money-gen] - | d < 0 = Nothing
267.43 s
[really-safe-money-gen] + | not (d < 0) = Nothing
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] let resultDouble :: Double
267.43 s
[really-safe-money-gen] resultDouble = d * (fromIntegral :: Word32 -> Double) qf
267.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:327:9-16
267.43 s
[really-safe-money-gen] @@ -324,7 +324,7 @@
267.43 s
[really-safe-money-gen] in go resultDouble
267.43 s
[really-safe-money-gen] where
267.43 s
[really-safe-money-gen] go resultDouble
267.43 s
[really-safe-money-gen] - | isNaN d = Nothing
267.43 s
[really-safe-money-gen] + | True = Nothing
267.43 s
[really-safe-money-gen] | isInfinite d = Nothing
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:328:9-21
267.43 s
[really-safe-money-gen] @@ -325,7 +325,7 @@
267.43 s
[really-safe-money-gen] where
267.43 s
[really-safe-money-gen] go resultDouble
267.43 s
[really-safe-money-gen] | isNaN d = Nothing
267.43 s
[really-safe-money-gen] - | isInfinite d = Nothing
267.43 s
[really-safe-money-gen] + | True = Nothing
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.43 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:327:9-16
267.43 s
[really-safe-money-gen] @@ -324,7 +324,7 @@
267.43 s
[really-safe-money-gen] in go resultDouble
267.43 s
[really-safe-money-gen] where
267.43 s
[really-safe-money-gen] go resultDouble
267.43 s
[really-safe-money-gen] - | isNaN d = Nothing
267.43 s
[really-safe-money-gen] + | not (isNaN d) = Nothing
267.43 s
[really-safe-money-gen] | isInfinite d = Nothing
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
267.43 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.43 s
[really-safe-money-gen] - if exponent resultDouble > 65
267.43 s
[really-safe-money-gen] + if exponent resultDouble > 1
267.43 s
[really-safe-money-gen] then Nothing
267.43 s
[really-safe-money-gen] else
267.43 s
[really-safe-money-gen] let ceiled :: Natural
267.43 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
267.43 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.43 s
[really-safe-money-gen] - if exponent resultDouble > 65
267.43 s
[really-safe-money-gen] + if exponent resultDouble > -65
267.43 s
[really-safe-money-gen] then Nothing
267.43 s
[really-safe-money-gen] else
267.43 s
[really-safe-money-gen] let ceiled :: Natural
267.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
267.43 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.43 s
[really-safe-money-gen] - if exponent resultDouble > 65
267.43 s
[really-safe-money-gen] + if True
267.43 s
[really-safe-money-gen] then Nothing
267.43 s
[really-safe-money-gen] else
267.43 s
[really-safe-money-gen] let ceiled :: Natural
267.43 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:332:14-40
267.43 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
267.43 s
[really-safe-money-gen] | otherwise =
267.43 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.43 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.43 s
[really-safe-money-gen] - if exponent resultDouble > 65
267.43 s
[really-safe-money-gen] + if False
267.43 s
[really-safe-money-gen] then Nothing
267.43 s
[really-safe-money-gen] else
267.44 s
[really-safe-money-gen] let ceiled :: Natural
267.44 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:332:38-40
267.44 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
267.44 s
[really-safe-money-gen] | otherwise =
267.44 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.44 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.44 s
[really-safe-money-gen] - if exponent resultDouble > 65
267.44 s
[really-safe-money-gen] + if exponent resultDouble > 0
267.44 s
[really-safe-money-gen] then Nothing
267.44 s
[really-safe-money-gen] else
267.44 s
[really-safe-money-gen] let ceiled :: Natural
267.44 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:332:14-40
267.44 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
267.44 s
[really-safe-money-gen] | otherwise =
267.44 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
267.44 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
267.44 s
[really-safe-money-gen] - if exponent resultDouble > 65
267.44 s
[really-safe-money-gen] + if not (exponent resultDouble > 65)
267.44 s
[really-safe-money-gen] then Nothing
267.44 s
[really-safe-money-gen] else
267.44 s
[really-safe-money-gen] let ceiled :: Natural
267.44 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
267.44 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
267.44 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
267.44 s
[really-safe-money-gen] floored :: Natural
267.44 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.44 s
[really-safe-money-gen] - in if ceiled == floored
267.44 s
[really-safe-money-gen] + in if True
267.44 s
[really-safe-money-gen] then
267.44 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.44 s
[really-safe-money-gen] then Nothing
267.44 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:339:22-39
267.44 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
267.44 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
267.44 s
[really-safe-money-gen] floored :: Natural
267.44 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.44 s
[really-safe-money-gen] - in if ceiled == floored
267.44 s
[really-safe-money-gen] + in if False
267.44 s
[really-safe-money-gen] then
267.44 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.44 s
[really-safe-money-gen] then Nothing
267.44 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:339:22-39
267.44 s
[really-safe-money-gen] @@ -336,7 +336,7 @@
267.44 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
267.44 s
[really-safe-money-gen] floored :: Natural
267.44 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.44 s
[really-safe-money-gen] - in if ceiled == floored
267.44 s
[really-safe-money-gen] + in if not (ceiled == floored)
267.44 s
[really-safe-money-gen] then
267.44 s
[really-safe-money-gen] if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.44 s
[really-safe-money-gen] then Nothing
267.44 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
267.44 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
267.45 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.45 s
[really-safe-money-gen] in if ceiled == floored
267.45 s
[really-safe-money-gen] then
267.45 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.45 s
[really-safe-money-gen] + if True
267.45 s
[really-safe-money-gen] then Nothing
267.45 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
267.45 s
[really-safe-money-gen] else Nothing
267.45 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:341:26-91
267.45 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
267.45 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.45 s
[really-safe-money-gen] in if ceiled == floored
267.45 s
[really-safe-money-gen] then
267.45 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.45 s
[really-safe-money-gen] + if False
267.45 s
[really-safe-money-gen] then Nothing
267.45 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
267.45 s
[really-safe-money-gen] else Nothing
267.45 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:341:26-91
267.45 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
267.45 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.45 s
[really-safe-money-gen] in if ceiled == floored
267.45 s
[really-safe-money-gen] then
267.45 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.45 s
[really-safe-money-gen] + if not (ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64))
267.45 s
[really-safe-money-gen] then Nothing
267.45 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
267.45 s
[really-safe-money-gen] else Nothing
267.45 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:341:23-65
267.45 s
[really-safe-money-gen] @@ -338,9 +338,9 @@
267.45 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
267.45 s
[really-safe-money-gen] in if ceiled == floored
267.45 s
[really-safe-money-gen] then
267.45 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
267.45 s
[really-safe-money-gen] - then Nothing
267.45 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
269.07 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
269.07 s
[really-safe-money-gen] + then Nothing
269.17 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
269.17 s
[really-safe-money-gen] else Nothing
269.17 s
[really-safe-money-gen]
269.17 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
269.17 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:339:19-33
269.17 s
[really-safe-money-gen] @@ -336,12 +336,12 @@
269.17 s
[really-safe-money-gen] ceiled = (ceiling :: Double -> Natural) resultDouble
269.17 s
[really-safe-money-gen] floored :: Natural
269.17 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
269.17 s
[really-safe-money-gen] - in if ceiled == floored
269.17 s
[really-safe-money-gen] - then
269.17 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
269.17 s
[really-safe-money-gen] - then Nothing
269.17 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
269.17 s
[really-safe-money-gen] - else Nothing
269.17 s
[really-safe-money-gen] + in if ceiled == floored
269.17 s
[really-safe-money-gen] + then
269.17 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
269.17 s
[really-safe-money-gen] + then Nothing
269.17 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
269.17 s
[really-safe-money-gen] + else Nothing
269.17 s
[really-safe-money-gen]
269.17 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
269.17 s
[really-safe-money-gen] --
269.17 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:332:11-33
269.17 s
[really-safe-money-gen] @@ -329,19 +329,19 @@
269.17 s
[really-safe-money-gen] | otherwise =
269.17 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
269.17 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
269.17 s
[really-safe-money-gen] - if exponent resultDouble > 65
269.17 s
[really-safe-money-gen] - then Nothing
269.17 s
[really-safe-money-gen] - else
269.17 s
[really-safe-money-gen] - let ceiled :: Natural
269.17 s
[really-safe-money-gen] - ceiled = (ceiling :: Double -> Natural) resultDouble
269.17 s
[really-safe-money-gen] - floored :: Natural
269.17 s
[really-safe-money-gen] - floored = (floor :: Double -> Natural) resultDouble
269.17 s
[really-safe-money-gen] - in if ceiled == floored
269.17 s
[really-safe-money-gen] - then
269.17 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
269.17 s
[really-safe-money-gen] - then Nothing
269.17 s
[really-safe-money-gen] - else Just $ Amount (fromIntegral ceiled)
269.17 s
[really-safe-money-gen] - else Nothing
269.17 s
[really-safe-money-gen] + if exponent resultDouble > 65
269.17 s
[really-safe-money-gen] + then Nothing
269.17 s
[really-safe-money-gen] + else
269.17 s
[really-safe-money-gen] + let ceiled :: Natural
269.17 s
[really-safe-money-gen] + ceiled = (ceiling :: Double -> Natural) resultDouble
269.17 s
[really-safe-money-gen] + floored :: Natural
269.17 s
[really-safe-money-gen] + floored = (floor :: Double -> Natural) resultDouble
269.17 s
[really-safe-money-gen] + in if ceiled == floored
269.17 s
[really-safe-money-gen] + then
269.17 s
[really-safe-money-gen] + if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
269.17 s
[really-safe-money-gen] + then Nothing
269.17 s
[really-safe-money-gen] + else Just $ Amount (fromIntegral ceiled)
269.17 s
[really-safe-money-gen] + else Nothing
269.17 s
[really-safe-money-gen]
269.18 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
269.18 s
[really-safe-money-gen] --
269.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:290:79-80
269.18 s
[really-safe-money-gen] @@ -287,7 +287,7 @@
269.18 s
[really-safe-money-gen] -- >>> toRatio (QuantisationFactor 100) (Amount 1)
269.18 s
[really-safe-money-gen] -- 1 % 100
269.18 s
[really-safe-money-gen] toRatio :: QuantisationFactor -> Amount -> Ratio Natural
269.18 s
[really-safe-money-gen] -toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 0
269.18 s
[really-safe-money-gen] +toRatio (QuantisationFactor 0) a = fromIntegral (toMinimalQuantisations a) :% 1
269.18 s
[really-safe-money-gen] toRatio (QuantisationFactor quantisationFactor) a =
269.18 s
[really-safe-money-gen] (fromIntegral :: Word64 -> Natural) (toMinimalQuantisations a)
269.18 s
[really-safe-money-gen] % (fromIntegral :: Word32 -> Natural) quantisationFactor
269.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:494:96-97
269.18 s
[really-safe-money-gen] @@ -491,7 +491,7 @@
269.18 s
[really-safe-money-gen] let maxBoundI :: Integer
269.18 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
269.18 s
[really-safe-money-gen] r :: Integer
269.18 s
[really-safe-money-gen] - r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
269.18 s
[really-safe-money-gen] + r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 1 l
269.18 s
[really-safe-money-gen] in if r > maxBoundI
269.18 s
[really-safe-money-gen] then Nothing
269.18 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
269.18 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
269.18 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
269.18 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
269.18 s
[really-safe-money-gen] r :: Integer
269.18 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
269.18 s
[really-safe-money-gen] - in if r > maxBoundI
269.18 s
[really-safe-money-gen] + in if True
269.18 s
[really-safe-money-gen] then Nothing
269.18 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
269.18 s
[really-safe-money-gen]
269.18 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:495:10-23
269.18 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
269.18 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
269.18 s
[really-safe-money-gen] r :: Integer
269.18 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
269.18 s
[really-safe-money-gen] - in if r > maxBoundI
269.18 s
[really-safe-money-gen] + in if not (r > maxBoundI)
269.18 s
[really-safe-money-gen] then Nothing
269.18 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
269.18 s
[really-safe-money-gen]
269.18 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:495:7-66
269.18 s
[really-safe-money-gen] @@ -492,9 +492,9 @@
269.18 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
269.18 s
[really-safe-money-gen] r :: Integer
269.18 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
269.18 s
[really-safe-money-gen] - in if r > maxBoundI
269.18 s
[really-safe-money-gen] - then Nothing
269.18 s
[really-safe-money-gen] - else Just (Amount ((fromInteger :: Integer -> Word64) r))
269.18 s
[really-safe-money-gen] + in if r > maxBoundI
269.18 s
[really-safe-money-gen] + then Nothing
269.18 s
[really-safe-money-gen] + else Just (Amount ((fromInteger :: Integer -> Word64) r))
269.18 s
[really-safe-money-gen]
269.18 s
[really-safe-money-gen] -- | Add two amounts of money.
269.18 s
[really-safe-money-gen] --
269.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:661:30-31
269.18 s
[really-safe-money-gen] @@ -658,7 +658,7 @@
269.18 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
269.18 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
269.18 s
[really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
269.18 s
[really-safe-money-gen] -fraction _ _ 0 = (Just zero, 0)
269.18 s
[really-safe-money-gen] +fraction _ _ 0 = (Just zero, 1)
269.18 s
[really-safe-money-gen] fraction r (Amount a) f =
269.18 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
269.18 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
269.18 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
269.18 s
[really-safe-money-gen] @@ -665,10 +665,10 @@
269.18 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
269.18 s
[really-safe-money-gen] theoreticalResult = amountAsRatio * f
269.18 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
269.18 s
[really-safe-money-gen] - rounder = case r of
269.18 s
[really-safe-money-gen] - RoundUp -> ceiling
269.18 s
[really-safe-money-gen] - RoundDown -> floor
269.18 s
[really-safe-money-gen] - RoundNearest -> round
269.18 s
[really-safe-money-gen] + rounder = case r of
269.18 s
[really-safe-money-gen] + RoundUp -> ceiling
269.18 s
[really-safe-money-gen] + RoundDown -> floor
269.18 s
[really-safe-money-gen] + RoundNearest -> round
269.18 s
[really-safe-money-gen] roundedResult :: Natural
269.18 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
269.18 s
[really-safe-money-gen] actualRate :: Ratio Natural
269.18 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
269.18 s
[really-safe-money-gen] @@ -665,10 +665,10 @@
269.19 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
269.19 s
[really-safe-money-gen] theoreticalResult = amountAsRatio * f
269.19 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
269.19 s
[really-safe-money-gen] - rounder = case r of
269.19 s
[really-safe-money-gen] - RoundUp -> ceiling
269.19 s
[really-safe-money-gen] - RoundDown -> floor
269.19 s
[really-safe-money-gen] - RoundNearest -> round
269.19 s
[really-safe-money-gen] + rounder = case r of
269.19 s
[really-safe-money-gen] + RoundUp -> ceiling
269.19 s
[really-safe-money-gen] + RoundDown -> floor
269.19 s
[really-safe-money-gen] + RoundNearest -> round
269.19 s
[really-safe-money-gen] roundedResult :: Natural
269.19 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
269.19 s
[really-safe-money-gen] actualRate :: Ratio Natural
269.19 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:668:17-30
269.19 s
[really-safe-money-gen] @@ -665,10 +665,10 @@
269.19 s
[really-safe-money-gen] theoreticalResult :: Ratio Natural
269.19 s
[really-safe-money-gen] theoreticalResult = amountAsRatio * f
269.19 s
[really-safe-money-gen] rounder :: Ratio Natural -> Natural
269.19 s
[really-safe-money-gen] - rounder = case r of
269.19 s
[really-safe-money-gen] - RoundUp -> ceiling
269.19 s
[really-safe-money-gen] - RoundDown -> floor
269.19 s
[really-safe-money-gen] - RoundNearest -> round
269.19 s
[really-safe-money-gen] + rounder = case r of
269.19 s
[really-safe-money-gen] + RoundUp -> ceiling
269.19 s
[really-safe-money-gen] + RoundDown -> floor
269.19 s
[really-safe-money-gen] + RoundNearest -> round
269.19 s
[really-safe-money-gen] roundedResult :: Natural
269.19 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
269.19 s
[really-safe-money-gen] actualRate :: Ratio Natural
269.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
269.19 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
269.19 s
[really-safe-money-gen] maxBoundN :: Natural
269.19 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
269.19 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
269.19 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
269.19 s
[really-safe-money-gen] + in ( if True
269.19 s
[really-safe-money-gen] then Nothing
269.19 s
[really-safe-money-gen] else Just result,
269.19 s
[really-safe-money-gen] actualRate
269.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:681:12-37
269.19 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
269.19 s
[really-safe-money-gen] maxBoundN :: Natural
269.19 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
269.19 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
269.19 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
269.19 s
[really-safe-money-gen] + in ( if False
269.19 s
[really-safe-money-gen] then Nothing
269.19 s
[really-safe-money-gen] else Just result,
269.19 s
[really-safe-money-gen] actualRate
269.19 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:681:12-37
269.19 s
[really-safe-money-gen] @@ -678,7 +678,7 @@
269.19 s
[really-safe-money-gen] maxBoundN :: Natural
269.19 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
269.19 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
269.19 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
269.19 s
[really-safe-money-gen] + in ( if not (roundedResult > maxBoundN)
269.19 s
[really-safe-money-gen] then Nothing
269.19 s
[really-safe-money-gen] else Just result,
269.19 s
[really-safe-money-gen] actualRate
271.11 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount.hs:681:9-27
271.11 s
[really-safe-money-gen] @@ -678,9 +678,9 @@
271.11 s
[really-safe-money-gen] maxBoundN :: Natural
271.11 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
271.11 s
[really-safe-money-gen] result = Amount ((fromIntegral :: Natural -> Word64) roundedResult)
271.11 s
[really-safe-money-gen] - in ( if roundedResult > maxBoundN
271.11 s
[really-safe-money-gen] - then Nothing
271.12 s
[really-safe-money-gen] - else Just result,
271.12 s
[really-safe-money-gen] + in ( if roundedResult > maxBoundN
271.12 s
[really-safe-money-gen] + then Nothing
271.12 s
[really-safe-money-gen] + else Just result,
271.12 s
[really-safe-money-gen] actualRate
271.12 s
[really-safe-money-gen] )
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
271.12 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
271.12 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
271.12 s
[really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
271.12 s
[really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ True
271.12 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:806:79-92
271.12 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
271.12 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
271.12 s
[really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
271.12 s
[really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ False
271.12 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:806:79-92
271.12 s
[really-safe-money-gen] @@ -803,4 +803,4 @@
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] -- | Validate that an 'Amount' is strictly positive. I.e. not 'zero'.
271.12 s
[really-safe-money-gen] validateStrictlyPositive :: Amount -> Validation
271.12 s
[really-safe-money-gen] -validateStrictlyPositive amount = declare "The Amount is strictly positive" $ amount > zero
271.12 s
[really-safe-money-gen] +validateStrictlyPositive amount = declare "The Amount is strictly positive" $ not (amount > zero)
271.12 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
271.12 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
271.12 s
[really-safe-money-gen] case ad of
271.12 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
271.12 s
[really-safe-money-gen] declare "The larger chunks are larger" $
271.12 s
[really-safe-money-gen] - a1 > a2
271.12 s
[really-safe-money-gen] + True
271.12 s
[really-safe-money-gen] _ -> valid
271.12 s
[really-safe-money-gen] ]
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Amount.hs:250:15-16
271.12 s
[really-safe-money-gen] @@ -247,7 +247,7 @@
271.12 s
[really-safe-money-gen] -- >>> zero
271.12 s
[really-safe-money-gen] -- Amount 0
271.12 s
[really-safe-money-gen] zero :: Amount
271.12 s
[really-safe-money-gen] -zero = Amount 0
271.12 s
[really-safe-money-gen] +zero = Amount 1
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] -- | Turn an amount into a number of minimal quantisations.
271.12 s
[really-safe-money-gen] --
271.12 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:607:15-22
271.12 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
271.12 s
[really-safe-money-gen] case ad of
271.12 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
271.12 s
[really-safe-money-gen] declare "The larger chunks are larger" $
271.12 s
[really-safe-money-gen] - a1 > a2
271.12 s
[really-safe-money-gen] + not (a1 > a2)
271.12 s
[really-safe-money-gen] _ -> valid
271.12 s
[really-safe-money-gen] ]
271.12 s
[really-safe-money-gen]
271.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
271.12 s
[really-safe-money-gen] @@ -601,11 +601,11 @@
271.12 s
[really-safe-money-gen] validate ad =
271.12 s
[really-safe-money-gen] mconcat
271.12 s
[really-safe-money-gen] [ genericValidate ad,
271.12 s
[really-safe-money-gen] - case ad of
271.12 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
271.12 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
271.12 s
[really-safe-money-gen] - a1 > a2
271.12 s
[really-safe-money-gen] - _ -> valid
271.12 s
[really-safe-money-gen] + case ad of
271.12 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
271.12 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
271.12 s
[really-safe-money-gen] + a1 > a2
271.13 s
[really-safe-money-gen] + _ -> valid
271.13 s
[really-safe-money-gen] ]
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
271.13 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
271.13 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
271.13 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
271.13 s
[really-safe-money-gen] validate ad =
271.13 s
[really-safe-money-gen] mconcat
271.13 s
[really-safe-money-gen] - [ genericValidate ad,
271.13 s
[really-safe-money-gen] - case ad of
271.13 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
271.13 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
271.13 s
[really-safe-money-gen] - a1 > a2
271.13 s
[really-safe-money-gen] - _ -> valid
271.13 s
[really-safe-money-gen] - ]
271.13 s
[really-safe-money-gen] + []
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount.hs:603:7-8
271.13 s
[really-safe-money-gen] @@ -600,13 +600,13 @@
271.13 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
271.13 s
[really-safe-money-gen] validate ad =
271.13 s
[really-safe-money-gen] mconcat
271.13 s
[really-safe-money-gen] - [ genericValidate ad,
271.13 s
[really-safe-money-gen] - case ad of
271.13 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
271.13 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
271.13 s
[really-safe-money-gen] - a1 > a2
271.13 s
[really-safe-money-gen] - _ -> valid
271.13 s
[really-safe-money-gen] - ]
271.13 s
[really-safe-money-gen] + [ genericValidate ad,
271.13 s
[really-safe-money-gen] + case ad of
271.13 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
271.13 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
271.13 s
[really-safe-money-gen] + a1 > a2
271.13 s
[really-safe-money-gen] + _ -> valid
271.13 s
[really-safe-money-gen] + ]
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount.hs:604:9-21
271.13 s
[really-safe-money-gen] @@ -601,11 +601,11 @@
271.13 s
[really-safe-money-gen] validate ad =
271.13 s
[really-safe-money-gen] mconcat
271.13 s
[really-safe-money-gen] [ genericValidate ad,
271.13 s
[really-safe-money-gen] - case ad of
271.13 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
271.13 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
271.13 s
[really-safe-money-gen] - a1 > a2
271.13 s
[really-safe-money-gen] - _ -> valid
271.13 s
[really-safe-money-gen] + case ad of
271.13 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
271.13 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
271.13 s
[really-safe-money-gen] + a1 > a2
271.13 s
[really-safe-money-gen] + _ -> valid
271.13 s
[really-safe-money-gen] ]
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
271.13 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
271.13 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
271.13 s
[really-safe-money-gen] fromDecimalLiteral dl = do
271.13 s
[really-safe-money-gen] irat <-
271.13 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
271.13 s
[really-safe-money-gen] - in if numerator r == 0
271.13 s
[really-safe-money-gen] + in if numerator r == 1
271.13 s
[really-safe-money-gen] then Nothing
271.13 s
[really-safe-money-gen] else pure r
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:607:15-22
271.13 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
271.13 s
[really-safe-money-gen] case ad of
271.13 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
271.13 s
[really-safe-money-gen] declare "The larger chunks are larger" $
271.13 s
[really-safe-money-gen] - a1 > a2
271.13 s
[really-safe-money-gen] + False
271.13 s
[really-safe-money-gen] _ -> valid
271.13 s
[really-safe-money-gen] ]
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
271.13 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
271.13 s
[really-safe-money-gen] fromDecimalLiteral dl = do
271.13 s
[really-safe-money-gen] irat <-
271.13 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
271.13 s
[really-safe-money-gen] - in if numerator r == 0
271.13 s
[really-safe-money-gen] + in if True
271.13 s
[really-safe-money-gen] then Nothing
271.13 s
[really-safe-money-gen] else pure r
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
271.13 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
271.13 s
[really-safe-money-gen] fromDecimalLiteral dl = do
271.13 s
[really-safe-money-gen] irat <-
271.13 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
271.13 s
[really-safe-money-gen] - in if numerator r == 0
271.13 s
[really-safe-money-gen] + in if False
271.13 s
[really-safe-money-gen] then Nothing
271.13 s
[really-safe-money-gen] else pure r
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:87:9-22
271.13 s
[really-safe-money-gen] @@ -84,9 +84,9 @@
271.13 s
[really-safe-money-gen] fromDecimalLiteral dl = do
271.13 s
[really-safe-money-gen] irat <-
271.13 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
271.13 s
[really-safe-money-gen] - in if numerator r == 0
271.13 s
[really-safe-money-gen] - then Nothing
271.13 s
[really-safe-money-gen] - else pure r
271.13 s
[really-safe-money-gen] + in if numerator r == 0
271.13 s
[really-safe-money-gen] + then Nothing
271.13 s
[really-safe-money-gen] + else pure r
271.13 s
[really-safe-money-gen]
271.13 s
[really-safe-money-gen] rat <-
271.13 s
[really-safe-money-gen] let r = 1 / irat
271.13 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
271.13 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
271.14 s
[really-safe-money-gen] fromDecimalLiteral dl = do
271.14 s
[really-safe-money-gen] irat <-
271.14 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
271.14 s
[really-safe-money-gen] - in if numerator r == 0
271.14 s
[really-safe-money-gen] + in if not (numerator r == 0)
271.14 s
[really-safe-money-gen] then Nothing
271.14 s
[really-safe-money-gen] else pure r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
271.14 s
[really-safe-money-gen] @@ -89,7 +89,7 @@
271.14 s
[really-safe-money-gen] else pure r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] rat <-
271.14 s
[really-safe-money-gen] - let r = 1 / irat
271.14 s
[really-safe-money-gen] + let r = 0 / irat
271.14 s
[really-safe-money-gen] in if r < 0
271.14 s
[really-safe-money-gen] then Nothing
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
271.14 s
[really-safe-money-gen] @@ -89,7 +89,7 @@
271.14 s
[really-safe-money-gen] else pure r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] rat <-
271.14 s
[really-safe-money-gen] - let r = 1 / irat
271.14 s
[really-safe-money-gen] + let r = -1 / irat
271.14 s
[really-safe-money-gen] in if r < 0
271.14 s
[really-safe-money-gen] then Nothing
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
271.14 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] rat <-
271.14 s
[really-safe-money-gen] let r = 1 / irat
271.14 s
[really-safe-money-gen] - in if r < 0
271.14 s
[really-safe-money-gen] + in if r < 1
271.14 s
[really-safe-money-gen] then Nothing
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
271.14 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] rat <-
271.14 s
[really-safe-money-gen] let r = 1 / irat
271.14 s
[really-safe-money-gen] - in if r < 0
271.14 s
[really-safe-money-gen] + in if True
271.14 s
[really-safe-money-gen] then Nothing
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
271.14 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] rat <-
271.14 s
[really-safe-money-gen] let r = 1 / irat
271.14 s
[really-safe-money-gen] - in if r < 0
271.14 s
[really-safe-money-gen] + in if not (r < 0)
271.14 s
[really-safe-money-gen] then Nothing
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
271.14 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] fac <-
271.14 s
[really-safe-money-gen] - if denominator rat == 1
271.14 s
[really-safe-money-gen] + if denominator rat == 0
271.14 s
[really-safe-money-gen] then Just (numerator rat)
271.14 s
[really-safe-money-gen] else Nothing
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:93:9-22
271.14 s
[really-safe-money-gen] @@ -90,9 +90,9 @@
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] rat <-
271.14 s
[really-safe-money-gen] let r = 1 / irat
271.14 s
[really-safe-money-gen] - in if r < 0
271.14 s
[really-safe-money-gen] - then Nothing
271.14 s
[really-safe-money-gen] - else Just r
271.14 s
[really-safe-money-gen] + in if r < 0
271.14 s
[really-safe-money-gen] + then Nothing
271.14 s
[really-safe-money-gen] + else Just r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] fac <-
271.14 s
[really-safe-money-gen] if denominator rat == 1
271.14 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
271.14 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
271.14 s
[really-safe-money-gen] else Just r
271.14 s
[really-safe-money-gen]
271.14 s
[really-safe-money-gen] fac <-
271.14 s
[really-safe-money-gen] - if denominator rat == 1
271.14 s
[really-safe-money-gen] + if denominator rat == -1
271.14 s
[really-safe-money-gen] then Just (numerator rat)
271.14 s
[really-safe-money-gen] else Nothing
271.14 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
273.35 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
273.35 s
[really-safe-money-gen] else Just r
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] fac <-
273.35 s
[really-safe-money-gen] - if denominator rat == 1
273.35 s
[really-safe-money-gen] + if True
273.35 s
[really-safe-money-gen] then Just (numerator rat)
273.35 s
[really-safe-money-gen] else Nothing
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
273.35 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
273.35 s
[really-safe-money-gen] else Just r
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] fac <-
273.35 s
[really-safe-money-gen] - if denominator rat == 1
273.35 s
[really-safe-money-gen] + if False
273.35 s
[really-safe-money-gen] then Just (numerator rat)
273.35 s
[really-safe-money-gen] else Nothing
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
273.35 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
273.35 s
[really-safe-money-gen] else Just r
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] fac <-
273.35 s
[really-safe-money-gen] - if denominator rat == 1
273.35 s
[really-safe-money-gen] + if not (denominator rat == 1)
273.35 s
[really-safe-money-gen] then Just (numerator rat)
273.35 s
[really-safe-money-gen] else Nothing
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
273.35 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
273.35 s
[really-safe-money-gen]
273.35 s
[really-safe-money-gen] rat <-
273.35 s
[really-safe-money-gen] let r = 1 / irat
273.36 s
[really-safe-money-gen] - in if r < 0
273.36 s
[really-safe-money-gen] + in if False
273.36 s
[really-safe-money-gen] then Nothing
273.36 s
[really-safe-money-gen] else Just r
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
273.36 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
273.36 s
[really-safe-money-gen] then Just (numerator rat)
273.36 s
[really-safe-money-gen] else Nothing
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
273.36 s
[really-safe-money-gen] + if not (fac <= fromIntegral (maxBound :: Word32))
273.36 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
273.36 s
[really-safe-money-gen] else Nothing
273.36 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
273.36 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
273.36 s
[really-safe-money-gen] then Just (numerator rat)
273.36 s
[really-safe-money-gen] else Nothing
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
273.36 s
[really-safe-money-gen] + if False
273.36 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
273.36 s
[really-safe-money-gen] else Nothing
273.36 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
273.36 s
[really-safe-money-gen] @@ -64,7 +64,7 @@
273.36 s
[really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
273.36 s
[really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
273.36 s
[really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
273.36 s
[really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
273.36 s
[really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (-1 % fromIntegral qfw)
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
273.36 s
[really-safe-money-gen] -- TODO explain that it's the inverse.
273.36 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
273.36 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
273.36 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
273.36 s
[really-safe-money-gen] mconcat
273.36 s
[really-safe-money-gen] [ genericValidate qf,
273.36 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
273.36 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
273.36 s
[really-safe-money-gen] ]
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] instance NFData QuantisationFactor
273.36 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
273.36 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
273.36 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
273.36 s
[really-safe-money-gen] mconcat
273.36 s
[really-safe-money-gen] [ genericValidate qf,
273.36 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
273.36 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ False
273.36 s
[really-safe-money-gen] ]
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] instance NFData QuantisationFactor
273.36 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
273.36 s
[really-safe-money-gen] @@ -64,7 +64,7 @@
273.36 s
[really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
273.36 s
[really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
273.36 s
[really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
273.36 s
[really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (1 % fromIntegral qfw)
273.36 s
[really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational (0 % fromIntegral qfw)
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
273.36 s
[really-safe-money-gen] -- TODO explain that it's the inverse.
273.36 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
273.36 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
273.36 s
[really-safe-money-gen] then Just (numerator rat)
273.36 s
[really-safe-money-gen] else Nothing
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
273.36 s
[really-safe-money-gen] + if True
273.36 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
273.36 s
[really-safe-money-gen] else Nothing
273.36 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
273.36 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
273.36 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
273.36 s
[really-safe-money-gen] mconcat
273.36 s
[really-safe-money-gen] [ genericValidate qf,
273.36 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
273.36 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ not (w /= 0)
273.36 s
[really-safe-money-gen] ]
273.36 s
[really-safe-money-gen]
273.36 s
[really-safe-money-gen] instance NFData QuantisationFactor
273.36 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
273.36 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
273.36 s
[really-safe-money-gen] instance Validity QuantisationFactor where
273.36 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
273.36 s
[really-safe-money-gen] mconcat
273.36 s
[really-safe-money-gen] - [ genericValidate qf,
273.36 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
273.37 s
[really-safe-money-gen] - ]
273.37 s
[really-safe-money-gen] + []
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] instance NFData QuantisationFactor
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
273.37 s
[really-safe-money-gen] @@ -550,11 +550,11 @@
273.37 s
[really-safe-money-gen] let aa1 = abs a1
273.37 s
[really-safe-money-gen] aa2 = abs a2
273.37 s
[really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
273.37 s
[really-safe-money-gen] - in case (a1, a2) of
273.37 s
[really-safe-money-gen] - (Positive _, Positive _) -> mr
273.37 s
[really-safe-money-gen] - (Positive _, Negative _) -> Nothing
273.37 s
[really-safe-money-gen] - (Negative _, Positive _) -> Nothing
273.37 s
[really-safe-money-gen] - (Negative _, Negative _) -> mr
273.37 s
[really-safe-money-gen] + in case (a1, a2) of
273.37 s
[really-safe-money-gen] + (Positive _, Positive _) -> mr
273.37 s
[really-safe-money-gen] + (Positive _, Negative _) -> Nothing
273.37 s
[really-safe-money-gen] + (Negative _, Positive _) -> Nothing
273.37 s
[really-safe-money-gen] + (Negative _, Negative _) -> mr
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
273.37 s
[really-safe-money-gen] -- another currency using a conversion rate.
273.37 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
273.37 s
[really-safe-money-gen] @@ -550,11 +550,11 @@
273.37 s
[really-safe-money-gen] let aa1 = abs a1
273.37 s
[really-safe-money-gen] aa2 = abs a2
273.37 s
[really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
273.37 s
[really-safe-money-gen] - in case (a1, a2) of
273.37 s
[really-safe-money-gen] - (Positive _, Positive _) -> mr
273.37 s
[really-safe-money-gen] - (Positive _, Negative _) -> Nothing
273.37 s
[really-safe-money-gen] - (Negative _, Positive _) -> Nothing
273.37 s
[really-safe-money-gen] - (Negative _, Negative _) -> mr
273.37 s
[really-safe-money-gen] + in case (a1, a2) of
273.37 s
[really-safe-money-gen] + (Positive _, Positive _) -> mr
273.37 s
[really-safe-money-gen] + (Positive _, Negative _) -> Nothing
273.37 s
[really-safe-money-gen] + (Negative _, Positive _) -> Nothing
273.37 s
[really-safe-money-gen] + (Negative _, Negative _) -> mr
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
273.37 s
[really-safe-money-gen] -- another currency using a conversion rate.
273.37 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
273.37 s
[really-safe-money-gen] @@ -588,9 +588,9 @@
273.37 s
[really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
273.37 s
[really-safe-money-gen] convert r qf1 a cr qf2 =
273.37 s
[really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
273.37 s
[really-safe-money-gen] - in case a of
273.37 s
[really-safe-money-gen] - Positive _ -> (Positive <$> ma, mr)
273.37 s
[really-safe-money-gen] - Negative _ -> (Negative <$> ma, mr)
273.37 s
[really-safe-money-gen] + in case a of
273.37 s
[really-safe-money-gen] + Positive _ -> (Positive <$> ma, mr)
273.37 s
[really-safe-money-gen] + Negative _ -> (Negative <$> ma, mr)
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] -- | Format an account of money without a symbol.
273.37 s
[really-safe-money-gen] --
273.37 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:591:7-44
273.37 s
[really-safe-money-gen] @@ -588,9 +588,9 @@
273.37 s
[really-safe-money-gen] (Maybe Account, Maybe ConversionRate)
273.37 s
[really-safe-money-gen] convert r qf1 a cr qf2 =
273.37 s
[really-safe-money-gen] let (ma, mr) = Amount.convert r qf1 (abs a) cr qf2
273.37 s
[really-safe-money-gen] - in case a of
273.37 s
[really-safe-money-gen] - Positive _ -> (Positive <$> ma, mr)
273.37 s
[really-safe-money-gen] - Negative _ -> (Negative <$> ma, mr)
273.37 s
[really-safe-money-gen] + in case a of
273.37 s
[really-safe-money-gen] + Positive _ -> (Positive <$> ma, mr)
273.37 s
[really-safe-money-gen] + Negative _ -> (Negative <$> ma, mr)
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] -- | Format an account of money without a symbol.
273.37 s
[really-safe-money-gen] --
273.37 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount.hs:328:9-21
273.37 s
[really-safe-money-gen] @@ -325,7 +325,7 @@
273.37 s
[really-safe-money-gen] where
273.37 s
[really-safe-money-gen] go resultDouble
273.37 s
[really-safe-money-gen] | isNaN d = Nothing
273.37 s
[really-safe-money-gen] - | isInfinite d = Nothing
273.37 s
[really-safe-money-gen] + | not (isInfinite d) = Nothing
273.37 s
[really-safe-money-gen] | otherwise =
273.37 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
273.37 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
273.37 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:421:32-33
273.37 s
[really-safe-money-gen] @@ -418,7 +418,7 @@
273.37 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
273.37 s
[really-safe-money-gen] multiply factor account =
273.37 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
273.37 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
273.37 s
[really-safe-money-gen] + f = case (compare factor 1, compare account zero) of
273.37 s
[really-safe-money-gen] (EQ, _) -> const zero
273.37 s
[really-safe-money-gen] (_, EQ) -> const zero
273.37 s
[really-safe-money-gen] (GT, GT) -> Positive
273.37 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
273.37 s
[really-safe-money-gen] @@ -550,11 +550,11 @@
273.37 s
[really-safe-money-gen] let aa1 = abs a1
273.37 s
[really-safe-money-gen] aa2 = abs a2
273.37 s
[really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
273.37 s
[really-safe-money-gen] - in case (a1, a2) of
273.37 s
[really-safe-money-gen] - (Positive _, Positive _) -> mr
273.37 s
[really-safe-money-gen] - (Positive _, Negative _) -> Nothing
273.37 s
[really-safe-money-gen] - (Negative _, Positive _) -> Nothing
273.37 s
[really-safe-money-gen] - (Negative _, Negative _) -> mr
273.37 s
[really-safe-money-gen] + in case (a1, a2) of
273.37 s
[really-safe-money-gen] + (Positive _, Positive _) -> mr
273.37 s
[really-safe-money-gen] + (Positive _, Negative _) -> Nothing
273.37 s
[really-safe-money-gen] + (Negative _, Positive _) -> Nothing
273.37 s
[really-safe-money-gen] + (Negative _, Negative _) -> mr
273.37 s
[really-safe-money-gen]
273.37 s
[really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
273.37 s
[really-safe-money-gen] -- another currency using a conversion rate.
273.37 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
273.37 s
[really-safe-money-gen] @@ -36,9 +36,9 @@
273.37 s
[really-safe-money-gen] instance Validity QuantisationFactor where
273.37 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
273.37 s
[really-safe-money-gen] mconcat
273.91 s
[really-safe-money-gen] - [ genericValidate qf,
273.91 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
273.91 s
[really-safe-money-gen] - ]
273.91 s
[really-safe-money-gen] + [ genericValidate qf,
273.91 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 0
273.91 s
[really-safe-money-gen] + ]
273.91 s
[really-safe-money-gen]
273.91 s
[really-safe-money-gen] instance NFData QuantisationFactor
273.91 s
[really-safe-money-gen]
273.91 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:553:7-39
273.91 s
[really-safe-money-gen] @@ -550,11 +550,11 @@
273.91 s
[really-safe-money-gen] let aa1 = abs a1
273.91 s
[really-safe-money-gen] aa2 = abs a2
273.91 s
[really-safe-money-gen] mr = Amount.rate qf1 aa1 qf2 aa2
273.91 s
[really-safe-money-gen] - in case (a1, a2) of
273.91 s
[really-safe-money-gen] - (Positive _, Positive _) -> mr
273.91 s
[really-safe-money-gen] - (Positive _, Negative _) -> Nothing
273.91 s
[really-safe-money-gen] - (Negative _, Positive _) -> Nothing
273.91 s
[really-safe-money-gen] - (Negative _, Negative _) -> mr
273.91 s
[really-safe-money-gen] + in case (a1, a2) of
273.91 s
[really-safe-money-gen] + (Positive _, Positive _) -> mr
273.91 s
[really-safe-money-gen] + (Positive _, Negative _) -> Nothing
273.91 s
[really-safe-money-gen] + (Negative _, Positive _) -> Nothing
273.91 s
[really-safe-money-gen] + (Negative _, Negative _) -> mr
273.91 s
[really-safe-money-gen]
273.91 s
[really-safe-money-gen] -- | Convert an amount of money of one currency into an amount of money of
273.91 s
[really-safe-money-gen] -- another currency using a conversion rate.
273.91 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
273.91 s
[really-safe-money-gen] @@ -418,13 +418,13 @@
273.91 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
273.91 s
[really-safe-money-gen] multiply factor account =
273.91 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
273.91 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
273.91 s
[really-safe-money-gen] - (EQ, _) -> const zero
273.91 s
[really-safe-money-gen] - (_, EQ) -> const zero
273.91 s
[really-safe-money-gen] - (GT, GT) -> Positive
273.91 s
[really-safe-money-gen] - (GT, LT) -> Negative
273.91 s
[really-safe-money-gen] - (LT, GT) -> Negative
273.91 s
[really-safe-money-gen] - (LT, LT) -> Positive
273.91 s
[really-safe-money-gen] + f = case (compare factor 0, compare account zero) of
273.91 s
[really-safe-money-gen] + (EQ, _) -> const zero
273.91 s
[really-safe-money-gen] + (_, EQ) -> const zero
273.91 s
[really-safe-money-gen] + (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] + (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] in f <$> Amount.multiply af (abs account)
273.92 s
[really-safe-money-gen]
273.92 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
273.92 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
273.92 s
[really-safe-money-gen] @@ -418,13 +418,13 @@
273.92 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
273.92 s
[really-safe-money-gen] multiply factor account =
273.92 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
273.92 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] - (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] - (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] - (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] - (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] + f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] + (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] + (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] + (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] + (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] in f <$> Amount.multiply af (abs account)
273.92 s
[really-safe-money-gen]
273.92 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
273.92 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
273.92 s
[really-safe-money-gen] @@ -418,13 +418,13 @@
273.92 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
273.92 s
[really-safe-money-gen] multiply factor account =
273.92 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
273.92 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] - (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] - (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] - (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] - (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] + f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] + (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] + (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] + (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] + (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] in f <$> Amount.multiply af (abs account)
273.92 s
[really-safe-money-gen]
273.92 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
273.92 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
273.92 s
[really-safe-money-gen] @@ -418,13 +418,13 @@
273.92 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
273.92 s
[really-safe-money-gen] multiply factor account =
273.92 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
273.92 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] - (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] - (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] - (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] - (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] + f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] + (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] + (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] + (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] + (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] in f <$> Amount.multiply af (abs account)
273.92 s
[really-safe-money-gen]
273.92 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
273.92 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
273.92 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
273.92 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
273.92 s
[really-safe-money-gen] DistributedZero -> DistributedZero
273.92 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
273.92 s
[really-safe-money-gen] - if a >= zero
273.92 s
[really-safe-money-gen] + if True
273.92 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
273.92 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
273.92 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
273.92 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:451:14-23
273.92 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
273.92 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
273.92 s
[really-safe-money-gen] DistributedZero -> DistributedZero
273.92 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
273.92 s
[really-safe-money-gen] - if a >= zero
273.92 s
[really-safe-money-gen] + if False
273.92 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
273.92 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
273.92 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
273.92 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:451:14-23
273.92 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
273.92 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
273.92 s
[really-safe-money-gen] DistributedZero -> DistributedZero
273.92 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
273.92 s
[really-safe-money-gen] - if a >= zero
273.92 s
[really-safe-money-gen] + if not (a >= zero)
273.92 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
273.92 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
273.92 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
273.92 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
273.92 s
[really-safe-money-gen] @@ -418,13 +418,13 @@
273.92 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
273.92 s
[really-safe-money-gen] multiply factor account =
273.92 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
273.92 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] - (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] - (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] - (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] - (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] - (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] + f = case (compare factor 0, compare account zero) of
273.92 s
[really-safe-money-gen] + (EQ, _) -> const zero
273.92 s
[really-safe-money-gen] + (_, EQ) -> const zero
273.92 s
[really-safe-money-gen] + (GT, GT) -> Positive
273.92 s
[really-safe-money-gen] + (GT, LT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, GT) -> Negative
273.92 s
[really-safe-money-gen] + (LT, LT) -> Positive
273.92 s
[really-safe-money-gen] in f <$> Amount.multiply af (abs account)
273.92 s
[really-safe-money-gen]
273.92 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
273.92 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:451:11-76
273.92 s
[really-safe-money-gen] @@ -448,9 +448,9 @@
273.93 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
273.93 s
[really-safe-money-gen] DistributedZero -> DistributedZero
273.93 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
273.93 s
[really-safe-money-gen] - if a >= zero
273.93 s
[really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
273.93 s
[really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
273.93 s
[really-safe-money-gen] + if a >= zero
273.93 s
[really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
273.93 s
[really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
273.93 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
273.93 s
[really-safe-money-gen] if a >= zero
273.93 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
273.93 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
273.93 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
273.93 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
273.93 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
273.93 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
273.93 s
[really-safe-money-gen] - if a >= zero
273.93 s
[really-safe-money-gen] + if False
275.15 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.25 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.25 s
[really-safe-money-gen]
275.25 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
275.25 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
275.25 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
275.25 s
[really-safe-money-gen] mconcat
275.25 s
[really-safe-money-gen] [ genericValidate qf,
275.25 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
275.25 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
275.25 s
[really-safe-money-gen] ]
275.25 s
[really-safe-money-gen]
275.25 s
[really-safe-money-gen] instance NFData QuantisationFactor
275.25 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:455:14-23
275.25 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
275.25 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.25 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.25 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.25 s
[really-safe-money-gen] - if a >= zero
275.25 s
[really-safe-money-gen] + if True
275.25 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.25 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.25 s
[really-safe-money-gen]
275.25 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:455:14-23
275.25 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
275.25 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.25 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.25 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.25 s
[really-safe-money-gen] - if a >= zero
275.25 s
[really-safe-money-gen] + if not (a >= zero)
275.25 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.25 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.25 s
[really-safe-money-gen]
275.25 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:421:11-29
275.25 s
[really-safe-money-gen] @@ -418,13 +418,13 @@
275.25 s
[really-safe-money-gen] multiply :: Int32 -> Account -> Maybe Account
275.25 s
[really-safe-money-gen] multiply factor account =
275.25 s
[really-safe-money-gen] let af = (fromIntegral :: Int32 -> Word32) ((Prelude.abs :: Int32 -> Int32) factor)
275.25 s
[really-safe-money-gen] - f = case (compare factor 0, compare account zero) of
275.25 s
[really-safe-money-gen] - (EQ, _) -> const zero
275.25 s
[really-safe-money-gen] - (_, EQ) -> const zero
275.25 s
[really-safe-money-gen] - (GT, GT) -> Positive
275.25 s
[really-safe-money-gen] - (GT, LT) -> Negative
275.25 s
[really-safe-money-gen] - (LT, GT) -> Negative
275.25 s
[really-safe-money-gen] - (LT, LT) -> Positive
275.25 s
[really-safe-money-gen] + f = case (compare factor 0, compare account zero) of
275.25 s
[really-safe-money-gen] + (EQ, _) -> const zero
275.26 s
[really-safe-money-gen] + (_, EQ) -> const zero
275.26 s
[really-safe-money-gen] + (GT, GT) -> Positive
275.26 s
[really-safe-money-gen] + (GT, LT) -> Negative
275.26 s
[really-safe-money-gen] + (LT, GT) -> Negative
275.26 s
[really-safe-money-gen] + (LT, LT) -> Positive
275.26 s
[really-safe-money-gen] in f <$> Amount.multiply af (abs account)
275.26 s
[really-safe-money-gen]
275.26 s
[really-safe-money-gen] -- | Distribute an amount of money into chunks that are as evenly distributed as possible.
275.26 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
275.26 s
[really-safe-money-gen] @@ -444,17 +444,17 @@
275.26 s
[really-safe-money-gen] distribute a f =
275.26 s
[really-safe-money-gen] let aa = abs a
275.26 s
[really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
275.26 s
[really-safe-money-gen] - in case Amount.distribute aa af of
275.26 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
275.26 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
275.26 s
[really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
275.26 s
[really-safe-money-gen] - if a >= zero
275.26 s
[really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.26 s
[really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.26 s
[really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.26 s
[really-safe-money-gen] - if a >= zero
275.26 s
[really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.26 s
[really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.26 s
[really-safe-money-gen] + in case Amount.distribute aa af of
275.26 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
275.26 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
275.26 s
[really-safe-money-gen] + DistributedIntoEqualChunks numberOfChunks chunk ->
275.26 s
[really-safe-money-gen] + if a >= zero
275.26 s
[really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.26 s
[really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.26 s
[really-safe-money-gen] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.26 s
[really-safe-money-gen] + if a >= zero
275.26 s
[really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.26 s
[really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.26 s
[really-safe-money-gen]
275.26 s
[really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
275.26 s
[really-safe-money-gen]
275.26 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
275.26 s
[really-safe-money-gen] @@ -444,17 +444,17 @@
275.26 s
[really-safe-money-gen] distribute a f =
275.26 s
[really-safe-money-gen] let aa = abs a
275.26 s
[really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
275.26 s
[really-safe-money-gen] - in case Amount.distribute aa af of
275.26 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
275.26 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
275.26 s
[really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
275.26 s
[really-safe-money-gen] - if a >= zero
275.26 s
[really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.26 s
[really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.26 s
[really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.26 s
[really-safe-money-gen] - if a >= zero
275.26 s
[really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.26 s
[really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.26 s
[really-safe-money-gen] + in case Amount.distribute aa af of
275.26 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
275.26 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
275.26 s
[really-safe-money-gen] + DistributedIntoEqualChunks numberOfChunks chunk ->
275.26 s
[really-safe-money-gen] + if a >= zero
275.26 s
[really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.26 s
[really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.26 s
[really-safe-money-gen] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.26 s
[really-safe-money-gen] + if a >= zero
275.26 s
[really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.26 s
[really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.26 s
[really-safe-money-gen]
275.26 s
[really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
275.26 s
[really-safe-money-gen]
275.26 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
275.26 s
[really-safe-money-gen] @@ -519,10 +519,10 @@
275.26 s
[really-safe-money-gen] let aa = abs account
275.26 s
[really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
275.26 s
[really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
275.26 s
[really-safe-money-gen] - func ma r = case compare account zero of
275.26 s
[really-safe-money-gen] - EQ -> (Just zero, r)
275.26 s
[really-safe-money-gen] - GT -> (Positive <$> ma, r)
275.26 s
[really-safe-money-gen] - LT -> (Negative <$> ma, r)
275.26 s
[really-safe-money-gen] + func ma r = case compare account zero of
275.26 s
[really-safe-money-gen] + EQ -> (Just zero, r)
275.26 s
[really-safe-money-gen] + GT -> (Positive <$> ma, r)
275.26 s
[really-safe-money-gen] + LT -> (Negative <$> ma, r)
275.26 s
[really-safe-money-gen] in func amount actualFraction
275.26 s
[really-safe-money-gen]
275.26 s
[really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
275.26 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
275.26 s
[really-safe-money-gen] @@ -444,17 +444,17 @@
275.26 s
[really-safe-money-gen] distribute a f =
275.26 s
[really-safe-money-gen] let aa = abs a
275.26 s
[really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
275.26 s
[really-safe-money-gen] - in case Amount.distribute aa af of
275.26 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
275.26 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
275.26 s
[really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
275.26 s
[really-safe-money-gen] - if a >= zero
275.26 s
[really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
275.26 s
[really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
275.26 s
[really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
275.26 s
[really-safe-money-gen] - if a >= zero
275.26 s
[really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
275.26 s
[really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
275.26 s
[really-safe-money-gen] + in case Amount.distribute aa af of
276.24 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
276.24 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
276.24 s
[really-safe-money-gen] + DistributedIntoEqualChunks numberOfChunks chunk ->
276.24 s
[really-safe-money-gen] + if a >= zero
276.24 s
[really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
276.25 s
[really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
276.25 s
[really-safe-money-gen] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
276.25 s
[really-safe-money-gen] + if a >= zero
276.25 s
[really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
276.25 s
[really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
276.25 s
[really-safe-money-gen]
276.25 s
[really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
276.25 s
[really-safe-money-gen]
276.25 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount.hs:495:10-23
276.25 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
276.25 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
276.25 s
[really-safe-money-gen] r :: Integer
276.25 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
276.25 s
[really-safe-money-gen] - in if r > maxBoundI
276.25 s
[really-safe-money-gen] + in if False
276.25 s
[really-safe-money-gen] then Nothing
276.25 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
276.25 s
[really-safe-money-gen]
276.25 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
276.25 s
[really-safe-money-gen] @@ -519,10 +519,10 @@
276.25 s
[really-safe-money-gen] let aa = abs account
276.25 s
[really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
276.25 s
[really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
276.25 s
[really-safe-money-gen] - func ma r = case compare account zero of
276.25 s
[really-safe-money-gen] - EQ -> (Just zero, r)
276.25 s
[really-safe-money-gen] - GT -> (Positive <$> ma, r)
276.25 s
[really-safe-money-gen] - LT -> (Negative <$> ma, r)
276.25 s
[really-safe-money-gen] + func ma r = case compare account zero of
276.25 s
[really-safe-money-gen] + EQ -> (Just zero, r)
276.25 s
[really-safe-money-gen] + GT -> (Positive <$> ma, r)
276.25 s
[really-safe-money-gen] + LT -> (Negative <$> ma, r)
276.25 s
[really-safe-money-gen] in func amount actualFraction
276.25 s
[really-safe-money-gen]
276.25 s
[really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
276.25 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:522:19-35
276.25 s
[really-safe-money-gen] @@ -519,10 +519,10 @@
276.25 s
[really-safe-money-gen] let aa = abs account
276.25 s
[really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
276.25 s
[really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
276.25 s
[really-safe-money-gen] - func ma r = case compare account zero of
276.25 s
[really-safe-money-gen] - EQ -> (Just zero, r)
276.25 s
[really-safe-money-gen] - GT -> (Positive <$> ma, r)
276.25 s
[really-safe-money-gen] - LT -> (Negative <$> ma, r)
276.25 s
[really-safe-money-gen] + func ma r = case compare account zero of
276.25 s
[really-safe-money-gen] + EQ -> (Just zero, r)
276.25 s
[really-safe-money-gen] + GT -> (Positive <$> ma, r)
276.25 s
[really-safe-money-gen] + LT -> (Negative <$> ma, r)
276.25 s
[really-safe-money-gen] in func amount actualFraction
276.25 s
[really-safe-money-gen]
276.25 s
[really-safe-money-gen] -- | Compute the currency conversion rate between two accounts of money of
276.25 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:447:7-136
276.25 s
[really-safe-money-gen] @@ -444,17 +444,17 @@
276.25 s
[really-safe-money-gen] distribute a f =
276.25 s
[really-safe-money-gen] let aa = abs a
276.25 s
[really-safe-money-gen] af = (fromIntegral :: Word16 -> Word32) (Prelude.abs f)
276.25 s
[really-safe-money-gen] - in case Amount.distribute aa af of
276.25 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
276.25 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
276.25 s
[really-safe-money-gen] - DistributedIntoEqualChunks numberOfChunks chunk ->
276.25 s
[really-safe-money-gen] - if a >= zero
276.25 s
[really-safe-money-gen] - then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
276.25 s
[really-safe-money-gen] - else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
276.26 s
[really-safe-money-gen] - DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
276.26 s
[really-safe-money-gen] - if a >= zero
276.26 s
[really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
276.26 s
[really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
276.26 s
[really-safe-money-gen] + in case Amount.distribute aa af of
276.26 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
276.26 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
276.26 s
[really-safe-money-gen] + DistributedIntoEqualChunks numberOfChunks chunk ->
276.26 s
[really-safe-money-gen] + if a >= zero
276.26 s
[really-safe-money-gen] + then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
276.26 s
[really-safe-money-gen] + else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
276.26 s
[really-safe-money-gen] + DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
276.26 s
[really-safe-money-gen] + if a >= zero
276.26 s
[really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
276.26 s
[really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
276.26 s
[really-safe-money-gen]
276.26 s
[really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
276.26 s
[really-safe-money-gen]
276.26 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:495:17-18
276.26 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
276.26 s
[really-safe-money-gen] fraction rounding account f =
276.26 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] - if f >= 0
276.26 s
[really-safe-money-gen] + if f >= 1
276.26 s
[really-safe-money-gen] then rounding
276.26 s
[really-safe-money-gen] else case rounding of
276.26 s
[really-safe-money-gen] RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
276.26 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
276.26 s
[really-safe-money-gen] fraction rounding account f =
276.26 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] - if f >= 0
276.26 s
[really-safe-money-gen] + if False
276.26 s
[really-safe-money-gen] then rounding
276.26 s
[really-safe-money-gen] else case rounding of
276.26 s
[really-safe-money-gen] RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:495:12-18
276.26 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
276.26 s
[really-safe-money-gen] fraction rounding account f =
276.26 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] - if f >= 0
276.26 s
[really-safe-money-gen] + if not (f >= 0)
276.26 s
[really-safe-money-gen] then rounding
276.26 s
[really-safe-money-gen] else case rounding of
276.26 s
[really-safe-money-gen] RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
276.26 s
[really-safe-money-gen] @@ -494,10 +494,10 @@
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] if f >= 0
276.26 s
[really-safe-money-gen] then rounding
276.26 s
[really-safe-money-gen] - else case rounding of
276.26 s
[really-safe-money-gen] - RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] - RoundDown -> RoundUp
276.26 s
[really-safe-money-gen] - RoundNearest -> RoundNearest
276.26 s
[really-safe-money-gen] + else case rounding of
276.26 s
[really-safe-money-gen] + RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] + RoundDown -> RoundUp
276.26 s
[really-safe-money-gen] + RoundNearest -> RoundNearest
276.26 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
276.26 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
276.26 s
[really-safe-money-gen] in if f >= 0
276.26 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
276.26 s
[really-safe-money-gen] @@ -494,10 +494,10 @@
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] if f >= 0
276.26 s
[really-safe-money-gen] then rounding
276.26 s
[really-safe-money-gen] - else case rounding of
276.26 s
[really-safe-money-gen] - RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] - RoundDown -> RoundUp
276.26 s
[really-safe-money-gen] - RoundNearest -> RoundNearest
276.26 s
[really-safe-money-gen] + else case rounding of
276.26 s
[really-safe-money-gen] + RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] + RoundDown -> RoundUp
276.26 s
[really-safe-money-gen] + RoundNearest -> RoundNearest
276.26 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
276.26 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
276.26 s
[really-safe-money-gen] in if f >= 0
276.26 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:495:9-41
276.26 s
[really-safe-money-gen] @@ -492,12 +492,12 @@
276.26 s
[really-safe-money-gen] fraction rounding account f =
276.26 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] - if f >= 0
276.26 s
[really-safe-money-gen] - then rounding
276.26 s
[really-safe-money-gen] - else case rounding of
276.26 s
[really-safe-money-gen] - RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] - RoundDown -> RoundUp
276.26 s
[really-safe-money-gen] - RoundNearest -> RoundNearest
276.26 s
[really-safe-money-gen] + if f >= 0
276.26 s
[really-safe-money-gen] + then rounding
276.26 s
[really-safe-money-gen] + else case rounding of
276.26 s
[really-safe-money-gen] + RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] + RoundDown -> RoundUp
276.26 s
[really-safe-money-gen] + RoundNearest -> RoundNearest
276.26 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
276.26 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
276.26 s
[really-safe-money-gen] in if f >= 0
276.26 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:495:12-18
276.26 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
276.26 s
[really-safe-money-gen] fraction rounding account f =
276.26 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
276.26 s
[really-safe-money-gen] ro =
276.26 s
[really-safe-money-gen] - if f >= 0
276.26 s
[really-safe-money-gen] + if True
276.26 s
[really-safe-money-gen] then rounding
276.26 s
[really-safe-money-gen] else case rounding of
276.26 s
[really-safe-money-gen] RoundUp -> RoundDown
276.26 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:503:15-16
276.27 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
276.27 s
[really-safe-money-gen] RoundNearest -> RoundNearest
276.27 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
276.27 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
276.27 s
[really-safe-money-gen] - in if f >= 0
276.27 s
[really-safe-money-gen] + in if f >= 1
276.27 s
[really-safe-money-gen] then (ma, r)
276.27 s
[really-safe-money-gen] else (negate <$> ma, -r)
276.27 s
[really-safe-money-gen]
276.27 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
276.27 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
276.27 s
[really-safe-money-gen] RoundNearest -> RoundNearest
276.27 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
276.27 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
276.27 s
[really-safe-money-gen] - in if f >= 0
276.27 s
[really-safe-money-gen] + in if True
276.27 s
[really-safe-money-gen] then (ma, r)
276.27 s
[really-safe-money-gen] else (negate <$> ma, -r)
276.27 s
[really-safe-money-gen]
276.27 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/QuantisationFactor.hs:98:5-19
278.39 s
[really-safe-money-gen] @@ -95,9 +95,9 @@
278.39 s
[really-safe-money-gen] else Just r
278.39 s
[really-safe-money-gen]
278.39 s
[really-safe-money-gen] fac <-
278.39 s
[really-safe-money-gen] - if denominator rat == 1
278.39 s
[really-safe-money-gen] - then Just (numerator rat)
278.39 s
[really-safe-money-gen] - else Nothing
278.39 s
[really-safe-money-gen] + if denominator rat == 1
278.39 s
[really-safe-money-gen] + then Just (numerator rat)
278.39 s
[really-safe-money-gen] + else Nothing
278.39 s
[really-safe-money-gen]
278.39 s
[really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
278.39 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
278.39 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:503:7-33
278.39 s
[really-safe-money-gen] @@ -500,9 +500,9 @@
278.39 s
[really-safe-money-gen] RoundNearest -> RoundNearest
278.39 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
278.39 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
278.39 s
[really-safe-money-gen] - in if f >= 0
278.39 s
[really-safe-money-gen] - then (ma, r)
278.39 s
[really-safe-money-gen] - else (negate <$> ma, -r)
278.40 s
[really-safe-money-gen] + in if f >= 0
278.40 s
[really-safe-money-gen] + then (ma, r)
278.40 s
[really-safe-money-gen] + else (negate <$> ma, -r)
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] -- | Fractional multiplication with a positive fraction, see 'Amount.fraction' and 'Account.fraction'.
278.40 s
[really-safe-money-gen] --
278.40 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
278.40 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
278.40 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
278.40 s
[really-safe-money-gen] fromRational quantisationFactor r =
278.40 s
[really-safe-money-gen] let r' = Prelude.abs r
278.40 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
278.40 s
[really-safe-money-gen] + f = if True then Positive else Negative
278.40 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.40 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:233:19-20
278.40 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
278.40 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
278.40 s
[really-safe-money-gen] fromRational quantisationFactor r =
278.40 s
[really-safe-money-gen] let r' = Prelude.abs r
278.40 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
278.40 s
[really-safe-money-gen] + f = if r >= 1 then Positive else Negative
278.40 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.40 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:233:14-20
278.40 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
278.40 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
278.40 s
[really-safe-money-gen] fromRational quantisationFactor r =
278.40 s
[really-safe-money-gen] let r' = Prelude.abs r
278.40 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
278.40 s
[really-safe-money-gen] + f = if False then Positive else Negative
278.40 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.40 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:233:14-20
278.40 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
278.40 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
278.40 s
[really-safe-money-gen] fromRational quantisationFactor r =
278.40 s
[really-safe-money-gen] let r' = Prelude.abs r
278.40 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
278.40 s
[really-safe-money-gen] + f = if not (r >= 0) then Positive else Negative
278.40 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.40 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:233:11-48
278.40 s
[really-safe-money-gen] @@ -230,7 +230,7 @@
278.40 s
[really-safe-money-gen] fromRational :: QuantisationFactor -> Rational -> Maybe Account
278.40 s
[really-safe-money-gen] fromRational quantisationFactor r =
278.40 s
[really-safe-money-gen] let r' = Prelude.abs r
278.40 s
[really-safe-money-gen] - f = if r >= 0 then Positive else Negative
278.40 s
[really-safe-money-gen] + f = if r >= 0 then Positive else Negative
278.40 s
[really-safe-money-gen] in f <$> Amount.fromRational quantisationFactor r'
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.40 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:503:10-16
278.40 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
278.40 s
[really-safe-money-gen] RoundNearest -> RoundNearest
278.40 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
278.40 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
278.40 s
[really-safe-money-gen] - in if f >= 0
278.40 s
[really-safe-money-gen] + in if False
278.40 s
[really-safe-money-gen] then (ma, r)
278.40 s
[really-safe-money-gen] else (negate <$> ma, -r)
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:455:11-136
278.40 s
[really-safe-money-gen] @@ -452,9 +452,9 @@
278.40 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
278.40 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
278.40 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
278.40 s
[really-safe-money-gen] - if a >= zero
278.40 s
[really-safe-money-gen] - then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
278.40 s
[really-safe-money-gen] - else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
278.40 s
[really-safe-money-gen] + if a >= zero
278.40 s
[really-safe-money-gen] + then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
278.40 s
[really-safe-money-gen] + else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] type AccountDistribution = Amount.Distribution Account
278.40 s
[really-safe-money-gen]
278.40 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:497:16-41
278.40 s
[really-safe-money-gen] @@ -494,10 +494,10 @@
278.40 s
[really-safe-money-gen] ro =
278.40 s
[really-safe-money-gen] if f >= 0
278.40 s
[really-safe-money-gen] then rounding
278.40 s
[really-safe-money-gen] - else case rounding of
278.40 s
[really-safe-money-gen] - RoundUp -> RoundDown
278.40 s
[really-safe-money-gen] - RoundDown -> RoundUp
278.40 s
[really-safe-money-gen] - RoundNearest -> RoundNearest
278.40 s
[really-safe-money-gen] + else case rounding of
278.40 s
[really-safe-money-gen] + RoundUp -> RoundDown
278.40 s
[really-safe-money-gen] + RoundDown -> RoundUp
278.40 s
[really-safe-money-gen] + RoundNearest -> RoundNearest
278.40 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
278.41 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
278.41 s
[really-safe-money-gen] in if f >= 0
278.41 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
278.41 s
[really-safe-money-gen] @@ -208,9 +208,9 @@
278.41 s
[really-safe-money-gen] -- (-3) % 20
278.41 s
[really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
278.41 s
[really-safe-money-gen] toRational quantisationFactor account =
278.41 s
[really-safe-money-gen] - let f = case account of
278.41 s
[really-safe-money-gen] - Positive _ -> id
278.41 s
[really-safe-money-gen] - Negative _ -> Prelude.negate
278.41 s
[really-safe-money-gen] + let f = case account of
278.41 s
[really-safe-money-gen] + Positive _ -> id
278.41 s
[really-safe-money-gen] + Negative _ -> Prelude.negate
278.41 s
[really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.41 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:211:11-37
278.41 s
[really-safe-money-gen] @@ -208,9 +208,9 @@
278.41 s
[really-safe-money-gen] -- (-3) % 20
278.41 s
[really-safe-money-gen] toRational :: QuantisationFactor -> Account -> Rational
278.41 s
[really-safe-money-gen] toRational quantisationFactor account =
278.41 s
[really-safe-money-gen] - let f = case account of
278.41 s
[really-safe-money-gen] - Positive _ -> id
278.41 s
[really-safe-money-gen] - Negative _ -> Prelude.negate
278.41 s
[really-safe-money-gen] + let f = case account of
278.41 s
[really-safe-money-gen] + Positive _ -> id
278.41 s
[really-safe-money-gen] + Negative _ -> Prelude.negate
278.41 s
[really-safe-money-gen] in f $ Amount.toRational quantisationFactor (abs account)
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn a 'Rational' into an amount of money.
278.41 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:197:19-20
278.41 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
278.41 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
278.41 s
[really-safe-money-gen] fromDouble quantisationFactor d =
278.41 s
[really-safe-money-gen] let d' = Prelude.abs d
278.41 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
278.41 s
[really-safe-money-gen] + f = if d >= 1 then Positive else Negative
278.41 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
278.41 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
278.41 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
278.41 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
278.41 s
[really-safe-money-gen] fromDouble quantisationFactor d =
278.41 s
[really-safe-money-gen] let d' = Prelude.abs d
278.41 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
278.41 s
[really-safe-money-gen] + f = if False then Positive else Negative
278.41 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
278.41 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:197:14-20
278.41 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
278.41 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
278.41 s
[really-safe-money-gen] fromDouble quantisationFactor d =
278.41 s
[really-safe-money-gen] let d' = Prelude.abs d
278.41 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
278.41 s
[really-safe-money-gen] + f = if not (d >= 0) then Positive else Negative
278.41 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
278.41 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
278.41 s
[really-safe-money-gen] @@ -168,9 +168,9 @@
278.41 s
[really-safe-money-gen] -- -0.25
278.41 s
[really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
278.41 s
[really-safe-money-gen] toDouble quantisationFactor account =
278.41 s
[really-safe-money-gen] - let f = case account of
278.41 s
[really-safe-money-gen] - Positive _ -> id
278.41 s
[really-safe-money-gen] - Negative _ -> Prelude.negate
278.41 s
[really-safe-money-gen] + let f = case account of
278.41 s
[really-safe-money-gen] + Positive _ -> id
278.41 s
[really-safe-money-gen] + Negative _ -> Prelude.negate
278.41 s
[really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
278.41 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:197:11-48
278.41 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
278.41 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
278.41 s
[really-safe-money-gen] fromDouble quantisationFactor d =
278.41 s
[really-safe-money-gen] let d' = Prelude.abs d
278.41 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
278.41 s
[really-safe-money-gen] + f = if d >= 0 then Positive else Negative
278.41 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
278.41 s
[really-safe-money-gen]
278.41 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
278.41 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:171:11-37
278.41 s
[really-safe-money-gen] @@ -168,9 +168,9 @@
278.41 s
[really-safe-money-gen] -- -0.25
278.41 s
[really-safe-money-gen] toDouble :: QuantisationFactor -> Account -> Double
278.41 s
[really-safe-money-gen] toDouble quantisationFactor account =
278.41 s
[really-safe-money-gen] - let f = case account of
278.42 s
[really-safe-money-gen] - Positive _ -> id
278.42 s
[really-safe-money-gen] - Negative _ -> Prelude.negate
278.42 s
[really-safe-money-gen] + let f = case account of
278.42 s
[really-safe-money-gen] + Positive _ -> id
278.42 s
[really-safe-money-gen] + Negative _ -> Prelude.negate
279.58 s
[really-safe-money-gen] in f $ Amount.toDouble quantisationFactor (abs account)
279.58 s
[really-safe-money-gen]
279.58 s
[really-safe-money-gen] -- | Turn a 'Double' into an amount of money.
279.58 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:503:10-16
279.58 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
279.58 s
[really-safe-money-gen] RoundNearest -> RoundNearest
279.58 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
279.58 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
279.58 s
[really-safe-money-gen] - in if f >= 0
279.58 s
[really-safe-money-gen] + in if not (f >= 0)
279.58 s
[really-safe-money-gen] then (ma, r)
279.58 s
[really-safe-money-gen] else (negate <$> ma, -r)
279.58 s
[really-safe-money-gen]
279.58 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:197:14-20
279.58 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
279.58 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
279.58 s
[really-safe-money-gen] fromDouble quantisationFactor d =
279.58 s
[really-safe-money-gen] let d' = Prelude.abs d
279.58 s
[really-safe-money-gen] - f = if d >= 0 then Positive else Negative
279.58 s
[really-safe-money-gen] + f = if True then Positive else Negative
279.58 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
279.58 s
[really-safe-money-gen]
279.58 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
279.58 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
279.58 s
[really-safe-money-gen] @@ -152,9 +152,9 @@
279.58 s
[really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
279.58 s
[really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
279.58 s
[really-safe-money-gen] toMinimalQuantisations account =
279.58 s
[really-safe-money-gen] - let f = case account of
279.58 s
[really-safe-money-gen] - Positive _ -> id
279.58 s
[really-safe-money-gen] - Negative _ -> Prelude.negate
279.58 s
[really-safe-money-gen] + let f = case account of
279.58 s
[really-safe-money-gen] + Positive _ -> id
279.59 s
[really-safe-money-gen] + Negative _ -> Prelude.negate
279.59 s
[really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
279.59 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
279.59 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
279.59 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
279.59 s
[really-safe-money-gen] a :: Integer
279.59 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
279.59 s
[really-safe-money-gen] - in if a > maxBoundI
279.59 s
[really-safe-money-gen] + in if False
279.59 s
[really-safe-money-gen] then Nothing
279.59 s
[really-safe-money-gen] else
279.59 s
[really-safe-money-gen] let w :: Word64
279.59 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:123:10-23
279.59 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
279.59 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
279.59 s
[really-safe-money-gen] a :: Integer
279.59 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
279.59 s
[really-safe-money-gen] - in if a > maxBoundI
279.59 s
[really-safe-money-gen] + in if not (a > maxBoundI)
279.59 s
[really-safe-money-gen] then Nothing
279.59 s
[really-safe-money-gen] else
279.59 s
[really-safe-money-gen] let w :: Word64
279.59 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/Account.hs:131:25-26
279.59 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
279.59 s
[really-safe-money-gen] amount :: Amount
279.59 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
279.59 s
[really-safe-money-gen] in Just $
279.59 s
[really-safe-money-gen] - if i >= 0
279.59 s
[really-safe-money-gen] + if i >= 1
279.59 s
[really-safe-money-gen] then Positive amount
279.59 s
[really-safe-money-gen] else Negative amount
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
279.59 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
279.59 s
[really-safe-money-gen] amount :: Amount
279.59 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
279.59 s
[really-safe-money-gen] in Just $
279.59 s
[really-safe-money-gen] - if i >= 0
279.59 s
[really-safe-money-gen] + if False
279.59 s
[really-safe-money-gen] then Positive amount
279.59 s
[really-safe-money-gen] else Negative amount
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Account.hs:131:20-26
279.59 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
279.59 s
[really-safe-money-gen] amount :: Amount
279.59 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
279.59 s
[really-safe-money-gen] in Just $
279.59 s
[really-safe-money-gen] - if i >= 0
279.59 s
[really-safe-money-gen] + if not (i >= 0)
279.59 s
[really-safe-money-gen] then Positive amount
279.59 s
[really-safe-money-gen] else Negative amount
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:131:17-39
279.59 s
[really-safe-money-gen] @@ -128,9 +128,9 @@
279.59 s
[really-safe-money-gen] amount :: Amount
279.59 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
279.59 s
[really-safe-money-gen] in Just $
279.59 s
[really-safe-money-gen] - if i >= 0
279.59 s
[really-safe-money-gen] - then Positive amount
279.59 s
[really-safe-money-gen] - else Negative amount
279.59 s
[really-safe-money-gen] + if i >= 0
279.59 s
[really-safe-money-gen] + then Positive amount
279.59 s
[really-safe-money-gen] + else Negative amount
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] -- | Turn an amount into a positive account
279.59 s
[really-safe-money-gen] --
279.59 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Account.hs:123:7-39
279.59 s
[really-safe-money-gen] @@ -120,17 +120,17 @@
279.59 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
279.59 s
[really-safe-money-gen] a :: Integer
279.59 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
279.59 s
[really-safe-money-gen] - in if a > maxBoundI
279.59 s
[really-safe-money-gen] - then Nothing
279.59 s
[really-safe-money-gen] - else
279.59 s
[really-safe-money-gen] - let w :: Word64
279.59 s
[really-safe-money-gen] - w = (fromIntegral :: Integer -> Word64) a
279.59 s
[really-safe-money-gen] - amount :: Amount
279.59 s
[really-safe-money-gen] - amount = Amount.fromMinimalQuantisations w
279.59 s
[really-safe-money-gen] - in Just $
279.59 s
[really-safe-money-gen] - if i >= 0
279.59 s
[really-safe-money-gen] - then Positive amount
279.59 s
[really-safe-money-gen] - else Negative amount
279.59 s
[really-safe-money-gen] + in if a > maxBoundI
279.59 s
[really-safe-money-gen] + then Nothing
279.59 s
[really-safe-money-gen] + else
279.59 s
[really-safe-money-gen] + let w :: Word64
279.59 s
[really-safe-money-gen] + w = (fromIntegral :: Integer -> Word64) a
279.59 s
[really-safe-money-gen] + amount :: Amount
279.59 s
[really-safe-money-gen] + amount = Amount.fromMinimalQuantisations w
279.59 s
[really-safe-money-gen] + in Just $
279.59 s
[really-safe-money-gen] + if i >= 0
279.59 s
[really-safe-money-gen] + then Positive amount
279.59 s
[really-safe-money-gen] + else Negative amount
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] -- | Turn an amount into a positive account
279.59 s
[really-safe-money-gen] --
279.59 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
279.59 s
[really-safe-money-gen] @@ -177,11 +177,11 @@
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] -- | See 'Account.distribute'
279.59 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
279.59 s
[really-safe-money-gen] -distribute (AccountOf a) w = case Account.distribute a w of
279.59 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.59 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.59 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.59 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.59 s
[really-safe-money-gen] +distribute (AccountOf a) w = case Account.distribute a w of
279.59 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.59 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.59 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.59 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.59 s
[really-safe-money-gen]
279.59 s
[really-safe-money-gen] -- | The result of 'distribute'
279.59 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
279.59 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
279.59 s
[really-safe-money-gen] @@ -177,11 +177,11 @@
279.60 s
[really-safe-money-gen]
279.60 s
[really-safe-money-gen] -- | See 'Account.distribute'
279.60 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
279.60 s
[really-safe-money-gen] -distribute (AccountOf a) w = case Account.distribute a w of
279.60 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.60 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.60 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.60 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.60 s
[really-safe-money-gen] +distribute (AccountOf a) w = case Account.distribute a w of
279.60 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.60 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.60 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.60 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.60 s
[really-safe-money-gen]
279.60 s
[really-safe-money-gen] -- | The result of 'distribute'
279.60 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
279.60 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account.hs:155:11-37
279.60 s
[really-safe-money-gen] @@ -152,9 +152,9 @@
279.60 s
[really-safe-money-gen] -- We return 'Integer' because the result does not fit into a 'Word64'
279.60 s
[really-safe-money-gen] toMinimalQuantisations :: Account -> Integer
279.60 s
[really-safe-money-gen] toMinimalQuantisations account =
279.60 s
[really-safe-money-gen] - let f = case account of
279.60 s
[really-safe-money-gen] - Positive _ -> id
279.60 s
[really-safe-money-gen] - Negative _ -> Prelude.negate
279.60 s
[really-safe-money-gen] + let f = case account of
279.60 s
[really-safe-money-gen] + Positive _ -> id
279.60 s
[really-safe-money-gen] + Negative _ -> Prelude.negate
279.60 s
[really-safe-money-gen] in f $ (fromIntegral :: Word64 -> Integer) $ Amount.toMinimalQuantisations (abs account)
279.60 s
[really-safe-money-gen]
279.60 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Double'.
279.60 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:123:10-23
279.60 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
279.60 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
279.60 s
[really-safe-money-gen] a :: Integer
279.60 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
279.60 s
[really-safe-money-gen] - in if a > maxBoundI
279.60 s
[really-safe-money-gen] + in if True
279.60 s
[really-safe-money-gen] then Nothing
279.60 s
[really-safe-money-gen] else
279.60 s
[really-safe-money-gen] let w :: Word64
279.60 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
279.60 s
[really-safe-money-gen] @@ -177,11 +177,11 @@
279.60 s
[really-safe-money-gen]
279.60 s
[really-safe-money-gen] -- | See 'Account.distribute'
279.60 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
279.60 s
[really-safe-money-gen] -distribute (AccountOf a) w = case Account.distribute a w of
279.60 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.60 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.60 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.60 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.60 s
[really-safe-money-gen] +distribute (AccountOf a) w = case Account.distribute a w of
279.60 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.60 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.96 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.96 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.96 s
[really-safe-money-gen]
279.96 s
[really-safe-money-gen] -- | The result of 'distribute'
279.96 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
279.96 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Account.hs:131:20-26
279.96 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
279.96 s
[really-safe-money-gen] amount :: Amount
279.96 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
279.96 s
[really-safe-money-gen] in Just $
279.96 s
[really-safe-money-gen] - if i >= 0
279.96 s
[really-safe-money-gen] + if True
279.96 s
[really-safe-money-gen] then Positive amount
279.96 s
[really-safe-money-gen] else Negative amount
279.96 s
[really-safe-money-gen]
279.96 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
279.96 s
[really-safe-money-gen] @@ -212,11 +212,11 @@
279.96 s
[really-safe-money-gen]
279.96 s
[really-safe-money-gen] -- | See 'Amount.distribute'
279.96 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
279.97 s
[really-safe-money-gen] -distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen] +distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
279.97 s
[really-safe-money-gen] @@ -212,11 +212,11 @@
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] -- | See 'Amount.distribute'
279.97 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
279.97 s
[really-safe-money-gen] -distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen] +distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
279.97 s
[really-safe-money-gen] @@ -177,11 +177,11 @@
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] -- | See 'Account.distribute'
279.97 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
279.97 s
[really-safe-money-gen] -distribute (AccountOf a) w = case Account.distribute a w of
279.97 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.97 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.97 s
[really-safe-money-gen] +distribute (AccountOf a) w = case Account.distribute a w of
279.97 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
279.97 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] -- | The result of 'distribute'
279.97 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
279.97 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
279.97 s
[really-safe-money-gen] @@ -212,11 +212,11 @@
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] -- | See 'Amount.distribute'
279.97 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
279.97 s
[really-safe-money-gen] -distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen] +distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
279.97 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
279.97 s
[really-safe-money-gen] f s = case readMaybe s of
279.97 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.97 s
[really-safe-money-gen] Just i ->
279.97 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
279.97 s
[really-safe-money-gen] + if True
279.97 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.97 s
[really-safe-money-gen] else
279.97 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.97 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
279.97 s
[really-safe-money-gen] @@ -212,11 +212,11 @@
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] -- | See 'Amount.distribute'
279.97 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
279.97 s
[really-safe-money-gen] -distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen] +distribute (AmountOf a) f = case Amount.distribute a f of
279.97 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
279.97 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
279.97 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
279.97 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
279.97 s
[really-safe-money-gen]
279.97 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
279.97 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
279.97 s
[really-safe-money-gen] f s = case readMaybe s of
279.98 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] + if not ((i :: Integer) < toInteger (minBound :: Word64))
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
279.98 s
[really-safe-money-gen] @@ -47,7 +47,7 @@
279.98 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] + then Left $ unwords []
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
279.98 s
[really-safe-money-gen] @@ -47,7 +47,7 @@
279.98 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount/Codec.hs:52:13-86
279.98 s
[really-safe-money-gen] @@ -49,9 +49,9 @@
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] g :: Amount -> String
279.98 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
279.98 s
[really-safe-money-gen]
279.98 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
279.98 s
[really-safe-money-gen] @@ -50,7 +50,7 @@
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] g :: Amount -> String
279.98 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
279.98 s
[really-safe-money-gen] Testing mutation CondFlip at src/Money/Amount/Codec.hs:49:9-86
279.98 s
[really-safe-money-gen] @@ -46,12 +46,12 @@
279.98 s
[really-safe-money-gen] f s = case readMaybe s of
279.98 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] - else
279.98 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] + if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] + else
279.98 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] g :: Amount -> String
279.98 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
279.98 s
[really-safe-money-gen]
279.98 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
279.98 s
[really-safe-money-gen] @@ -44,7 +44,7 @@
279.98 s
[really-safe-money-gen] where
279.98 s
[really-safe-money-gen] f :: String -> Either String Amount
279.98 s
[really-safe-money-gen] f s = case readMaybe s of
279.98 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] + Nothing -> Left $ unwords []
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
279.98 s
[really-safe-money-gen] @@ -44,7 +44,7 @@
279.98 s
[really-safe-money-gen] where
279.98 s
[really-safe-money-gen] f :: String -> Either String Amount
279.98 s
[really-safe-money-gen] f s = case readMaybe s of
279.98 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
279.98 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] + if not ((i :: Integer) > toInteger (maxBound :: Word64))
279.98 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] g :: Amount -> String
279.98 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
279.98 s
[really-safe-money-gen] @@ -38,6 +38,6 @@
279.98 s
[really-safe-money-gen] codec
279.98 s
[really-safe-money-gen] <?> "QuantisationFactor"
279.98 s
[really-safe-money-gen] where
279.98 s
[really-safe-money-gen] - f w = case QuantisationFactor.fromWord32 w of
279.98 s
[really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
279.98 s
[really-safe-money-gen] - Just qf -> Right qf
279.98 s
[really-safe-money-gen] + f w = case QuantisationFactor.fromWord32 w of
279.98 s
[really-safe-money-gen] + Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
279.98 s
[really-safe-money-gen] + Just qf -> Right qf
279.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
279.98 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
279.98 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] + if True
279.98 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.98 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.98 s
[really-safe-money-gen] g :: Amount -> String
279.98 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
279.98 s
[really-safe-money-gen] @@ -76,6 +76,6 @@
279.98 s
[really-safe-money-gen] <?> "Account"
279.98 s
[really-safe-money-gen] where
279.98 s
[really-safe-money-gen] f :: Integer -> Either String Account
279.98 s
[really-safe-money-gen] - f i = case Account.fromMinimalQuantisations i of
279.98 s
[really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
279.98 s
[really-safe-money-gen] - Just a -> Right a
279.98 s
[really-safe-money-gen] + f i = case Account.fromMinimalQuantisations i of
279.98 s
[really-safe-money-gen] + Nothing -> Left $ "Number did not fit into an account value: " <> show i
279.98 s
[really-safe-money-gen] + Just a -> Right a
279.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
279.98 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
279.98 s
[really-safe-money-gen] f s = case readMaybe s of
279.98 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
279.98 s
[really-safe-money-gen] Just i ->
279.98 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
279.98 s
[really-safe-money-gen] + if False
279.98 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.98 s
[really-safe-money-gen] else
279.98 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.98 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
279.98 s
[really-safe-money-gen] @@ -48,7 +48,7 @@
279.98 s
[really-safe-money-gen] where
279.98 s
[really-safe-money-gen] f :: String -> Either String Account
279.98 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
279.99 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
279.99 s
[really-safe-money-gen] + Nothing -> Left $ unwords []
279.99 s
[really-safe-money-gen] Just a -> Right a
279.99 s
[really-safe-money-gen] g :: Account -> String
279.99 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
279.99 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
279.99 s
[really-safe-money-gen] @@ -48,7 +48,7 @@
279.99 s
[really-safe-money-gen] where
279.99 s
[really-safe-money-gen] f :: String -> Either String Account
279.99 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
279.99 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
279.99 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
279.99 s
[really-safe-money-gen] Just a -> Right a
279.99 s
[really-safe-money-gen] g :: Account -> String
279.99 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
279.99 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
279.99 s
[really-safe-money-gen] @@ -50,7 +50,7 @@
279.99 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.99 s
[really-safe-money-gen] else
279.99 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
279.99 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.99 s
[really-safe-money-gen] + then Left $ unwords []
279.99 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.99 s
[really-safe-money-gen] g :: Amount -> String
279.99 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
279.99 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
279.99 s
[really-safe-money-gen] @@ -47,9 +47,9 @@
279.99 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
279.99 s
[really-safe-money-gen] where
279.99 s
[really-safe-money-gen] f :: String -> Either String Account
279.99 s
[really-safe-money-gen] - f s = case readMaybe s >>= Account.fromMinimalQuantisations of
279.99 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
279.99 s
[really-safe-money-gen] - Just a -> Right a
279.99 s
[really-safe-money-gen] + f s = case readMaybe s >>= Account.fromMinimalQuantisations of
279.99 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
279.99 s
[really-safe-money-gen] + Just a -> Right a
279.99 s
[really-safe-money-gen] g :: Account -> String
279.99 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
279.99 s
[really-safe-money-gen]
279.99 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
279.99 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
279.99 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
279.99 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
279.99 s
[really-safe-money-gen] else
279.99 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
279.99 s
[really-safe-money-gen] + if False
279.99 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
279.99 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
279.99 s
[really-safe-money-gen] g :: Amount -> String
279.99 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
279.99 s
[really-safe-money-gen] @@ -37,5 +37,5 @@
279.99 s
[really-safe-money-gen] where
279.99 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
279.99 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
279.99 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
279.99 s
[really-safe-money-gen] + Nothing -> Left $ unwords []
279.99 s
[really-safe-money-gen] Just a -> Right a
323.66 s
[really-safe-money-gen] Testing mutation ListLit at sKilled: 301
323.68 s
[really-safe-money-gen] Survived: 38
323.68 s
[really-safe-money-gen] Uncovered: 33
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] Surviving mutations:
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115
323.68 s
[really-safe-money-gen] @@ -177,11 +177,11 @@
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] -- | See 'Account.distribute'
323.68 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
323.68 s
[really-safe-money-gen] -distribute (AccountOf a) w = case Account.distribute a w of
323.68 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
323.68 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
323.68 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
323.68 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
323.68 s
[really-safe-money-gen] +distribute (AccountOf a) w = case Account.distribute a w of
323.68 s
[really-safe-money-gen] + DistributedIntoZeroChunks -> DistributedIntoZeroChunks
323.68 s
[really-safe-money-gen] + DistributedZero -> DistributedZero
323.68 s
[really-safe-money-gen] + DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
323.68 s
[really-safe-money-gen] + DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] -- | The result of 'distribute'
323.68 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
323.68 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
323.68 s
[really-safe-money-gen] amount :: Amount
323.68 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
323.68 s
[really-safe-money-gen] in Just $
323.68 s
[really-safe-money-gen] - if i >= 0
323.68 s
[really-safe-money-gen] + if i >= 1
323.68 s
[really-safe-money-gen] then Positive amount
323.68 s
[really-safe-money-gen] else Negative amount
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
323.68 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
323.68 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
323.68 s
[really-safe-money-gen] a :: Integer
323.68 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
323.68 s
[really-safe-money-gen] - in if a > maxBoundI
323.68 s
[really-safe-money-gen] + in if False
323.68 s
[really-safe-money-gen] then Nothing
323.68 s
[really-safe-money-gen] else
323.68 s
[really-safe-money-gen] let w :: Word64
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
323.68 s
[really-safe-money-gen] @@ -36,9 +36,9 @@
323.68 s
[really-safe-money-gen] instance Validity QuantisationFactor where
323.68 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
323.68 s
[really-safe-money-gen] mconcat
323.68 s
[really-safe-money-gen] - [ genericValidate qf,
323.68 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
323.68 s
[really-safe-money-gen] - ]
323.68 s
[really-safe-money-gen] + [ genericValidate qf,
323.68 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 0
323.68 s
[really-safe-money-gen] + ]
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] instance NFData QuantisationFactor
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
323.68 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
323.68 s
[really-safe-money-gen] instance Validity QuantisationFactor where
323.68 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
323.68 s
[really-safe-money-gen] mconcat
323.68 s
[really-safe-money-gen] - [ genericValidate qf,
323.68 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
323.68 s
[really-safe-money-gen] - ]
323.68 s
[really-safe-money-gen] + []
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] instance NFData QuantisationFactor
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
323.68 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
323.68 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
323.68 s
[really-safe-money-gen] mconcat
323.68 s
[really-safe-money-gen] [ genericValidate qf,
323.68 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
323.68 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ True
323.68 s
[really-safe-money-gen] ]
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] instance NFData QuantisationFactor
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] IntLit at src/Money/QuantisationFactor.hs:93:16-17
323.68 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] rat <-
323.68 s
[really-safe-money-gen] let r = 1 / irat
323.68 s
[really-safe-money-gen] - in if r < 0
323.68 s
[really-safe-money-gen] + in if r < 1
323.68 s
[really-safe-money-gen] then Nothing
323.68 s
[really-safe-money-gen] else Just r
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen]
323.68 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
323.68 s
[really-safe-money-gen] @@ -600,13 +600,13 @@
323.68 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
323.68 s
[really-safe-money-gen] validate ad =
323.68 s
[really-safe-money-gen] mconcat
323.68 s
[really-safe-money-gen] - [ genericValidate ad,
323.68 s
[really-safe-money-gen] - case ad of
323.68 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
323.68 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
323.68 s
[really-safe-money-gen] - a1 > a2
323.68 s
[really-safe-money-gen] - _ -> valid
323.68 s
[really-safe-money-gen] - ]
323.68 s
[really-safe-money-gen] + [ genericValidate ad,
323.68 s
[really-safe-money-gen] + case ad of
323.68 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
323.68 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
323.69 s
[really-safe-money-gen] + a1 > a2
323.69 s
[really-safe-money-gen] + _ -> valid
323.69 s
[really-safe-money-gen] + ]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
323.69 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
323.69 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
323.69 s
[really-safe-money-gen] validate ad =
323.69 s
[really-safe-money-gen] mconcat
323.69 s
[really-safe-money-gen] - [ genericValidate ad,
323.69 s
[really-safe-money-gen] - case ad of
323.69 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
323.69 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
323.69 s
[really-safe-money-gen] - a1 > a2
323.69 s
[really-safe-money-gen] - _ -> valid
323.69 s
[really-safe-money-gen] - ]
323.69 s
[really-safe-money-gen] + []
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21
323.69 s
[really-safe-money-gen] @@ -601,11 +601,11 @@
323.69 s
[really-safe-money-gen] validate ad =
323.69 s
[really-safe-money-gen] mconcat
323.69 s
[really-safe-money-gen] [ genericValidate ad,
323.69 s
[really-safe-money-gen] - case ad of
323.69 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
323.69 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
323.69 s
[really-safe-money-gen] - a1 > a2
323.69 s
[really-safe-money-gen] - _ -> valid
323.69 s
[really-safe-money-gen] + case ad of
323.69 s
[really-safe-money-gen] + DistributedIntoUnequalChunks _ a1 _ a2 ->
323.69 s
[really-safe-money-gen] + declare "The larger chunks are larger" $
323.69 s
[really-safe-money-gen] + a1 > a2
323.69 s
[really-safe-money-gen] + _ -> valid
323.69 s
[really-safe-money-gen] ]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
323.69 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
323.69 s
[really-safe-money-gen] case ad of
323.69 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
323.69 s
[really-safe-money-gen] declare "The larger chunks are larger" $
323.69 s
[really-safe-money-gen] - a1 > a2
323.69 s
[really-safe-money-gen] + True
323.69 s
[really-safe-money-gen] _ -> valid
323.69 s
[really-safe-money-gen] ]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
323.69 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
323.69 s
[really-safe-money-gen] | otherwise =
323.69 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
323.69 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
323.69 s
[really-safe-money-gen] - if exponent resultDouble > 65
323.69 s
[really-safe-money-gen] + if False
323.69 s
[really-safe-money-gen] then Nothing
323.69 s
[really-safe-money-gen] else
323.69 s
[really-safe-money-gen] let ceiled :: Natural
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
323.69 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
323.69 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
323.69 s
[really-safe-money-gen] r :: Integer
323.69 s
[really-safe-money-gen] r = i1 - i2
323.69 s
[really-safe-money-gen] - in if r < 0
323.69 s
[really-safe-money-gen] + in if True
323.69 s
[really-safe-money-gen] then Nothing
323.69 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
323.69 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
323.69 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
323.69 s
[really-safe-money-gen] r :: Integer
323.69 s
[really-safe-money-gen] r = i1 - i2
323.69 s
[really-safe-money-gen] - in if r < 0
323.69 s
[really-safe-money-gen] + in if r < 1
323.69 s
[really-safe-money-gen] then Nothing
323.69 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
323.69 s
[really-safe-money-gen] @@ -109,9 +109,9 @@
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
323.69 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
323.69 s
[really-safe-money-gen] -fromStringM s = case Numeric.DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
323.69 s
[really-safe-money-gen] - Just dl -> pure dl
323.69 s
[really-safe-money-gen] +fromStringM s = case Numeric.DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] + Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
323.69 s
[really-safe-money-gen] + Just dl -> pure dl
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
323.69 s
[really-safe-money-gen] decimalLiteralP = do
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:208:9-10
323.69 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
323.69 s
[really-safe-money-gen] -- Nothing
323.69 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
323.69 s
[really-safe-money-gen] fromRational (n :% d)
323.69 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
323.69 s
[really-safe-money-gen] + | n < 1 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
323.69 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
323.69 s
[really-safe-money-gen] @@ -284,9 +284,9 @@
323.69 s
[really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
323.69 s
[really-safe-money-gen] -- Nothing
323.69 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
323.69 s
[really-safe-money-gen] -toRatio (DecimalLiteral mSign m e) = case mSign of
323.69 s
[really-safe-money-gen] - Just False -> Nothing
323.69 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
323.69 s
[really-safe-money-gen] +toRatio (DecimalLiteral mSign m e) = case mSign of
323.69 s
[really-safe-money-gen] + Just False -> Nothing
323.69 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (10 ^ e)
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
323.69 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
323.69 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
323.69 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
323.69 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
323.69 s
[really-safe-money-gen] Just False -> Nothing
323.69 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (10 ^ e)
323.69 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
323.69 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
323.69 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
323.69 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
323.69 s
[really-safe-money-gen] toWord dl = do
323.69 s
[really-safe-money-gen] n <- toNatural dl
323.69 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
323.69 s
[really-safe-money-gen] + guard $ True
323.69 s
[really-safe-money-gen] pure $ fromIntegral n
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
323.69 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
323.69 s
[really-safe-money-gen] toInt dl = do
323.69 s
[really-safe-money-gen] n <- toInteger dl
323.69 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
323.69 s
[really-safe-money-gen] - guard $rc/Numeric/DecimalLiteral/Codec.hs:40:33-82
323.69 s
[really-safe-money-gen] @@ -37,5 +37,5 @@
323.69 s
[really-safe-money-gen] where
323.69 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
323.69 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
323.69 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
323.69 s
[really-safe-money-gen] Just a -> Right a
323.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
323.69 s
[really-safe-money-gen] @@ -47,9 +47,9 @@
323.69 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
323.69 s
[really-safe-money-gen] where
323.69 s
[really-safe-money-gen] f :: String -> Either String Account
323.69 s
[really-safe-money-gen] - f s = case readMaybe s >>= Account.fromMinimalQuantisations of
323.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
323.69 s
[really-safe-money-gen] - Just a -> Right a
323.69 s
[really-safe-money-gen] + f s = case readMaybe s >>= Account.fromMinimalQuantisations of
323.69 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Account:", s]
323.69 s
[really-safe-money-gen] + Just a -> Right a
323.69 s
[really-safe-money-gen] g :: Account -> String
323.69 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
323.69 s
[really-safe-money-gen] @@ -36,6 +36,6 @@
323.69 s
[really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
323.69 s
[really-safe-money-gen] where
323.69 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
323.69 s
[really-safe-money-gen] - f s = case DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
323.69 s
[really-safe-money-gen] - Just a -> Right a
323.69 s
[really-safe-money-gen] + f s = case DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
323.69 s
[really-safe-money-gen] + Just a -> Right a
323.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
323.69 s
[really-safe-money-gen] @@ -36,6 +36,6 @@
323.69 s
[really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
323.69 s
[really-safe-money-gen] where
323.69 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
323.69 s
[really-safe-money-gen] - f s = case DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
323.69 s
[really-safe-money-gen] - Just a -> Right a
323.69 s
[really-safe-money-gen] + f s = case DecimalLiteral.fromString s of
323.69 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
323.69 s
[really-safe-money-gen] + Just a -> Right a
323.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
323.69 s
[really-safe-money-gen] @@ -43,15 +43,15 @@
323.69 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
323.69 s
[really-safe-money-gen] where
323.69 s
[really-safe-money-gen] f :: String -> Either String Amount
323.69 s
[really-safe-money-gen] - f s = case readMaybe s of
323.69 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
323.69 s
[really-safe-money-gen] - Just i ->
323.69 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
323.69 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
323.69 s
[really-safe-money-gen] - else
323.69 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
323.69 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
323.69 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
323.69 s
[really-safe-money-gen] + f s = case readMaybe s of
323.69 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
323.69 s
[really-safe-money-gen] + Just i ->
323.69 s
[really-safe-money-gen] + if (i :: Integer) < toInteger (minBound :: Word64)
323.69 s
[really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
323.69 s
[really-safe-money-gen] + else
323.69 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
323.69 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
323.69 s
[really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
323.69 s
[really-safe-money-gen] g :: Amount -> String
323.69 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
323.69 s
[really-safe-money-gen]
323.69 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
323.69 s
[really-safe-money-gen] @@ -76,6 +76,6 @@
323.69 s
[really-safe-money-gen] <?> "Account"
323.69 s
[really-safe-money-gen] where
323.69 s
[really-safe-money-gen] f :: Integer -> Either String Account
323.69 s
[really-safe-money-gen] - f i = case Account.fromMinimalQuantisations i of
323.69 s
[really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
323.69 s
[really-safe-money-gen] - Just a -> Right a
323.69 s
[really-safe-money-gen] + f i = case Account.fromMinimalQuantisations i of
323.70 s
[really-safe-money-gen] + Nothing -> Left $ "Number did not fit into an account value: " <> show i
323.70 s
[really-safe-money-gen] + Just a -> Right a
323.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
323.70 s
[really-safe-money-gen] @@ -38,6 +38,6 @@
323.70 s
[really-safe-money-gen] codec
323.70 s
[really-safe-money-gen] <?> "QuantisationFactor"
323.70 s
[really-safe-money-gen] where
323.70 s
[really-safe-money-gen] - f w = case QuantisationFactor.fromWord32 w of
323.70 s
[really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
323.70 s
[really-safe-money-gen] - Just qf -> Right qf
323.70 s
[really-safe-money-gen] + f w = case QuantisationFactor.fromWord32 w of
323.70 s
[really-safe-money-gen] + Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
323.70 s
[really-safe-money-gen] + Just qf -> Right qf
323.70 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
323.70 s
[really-safe-money-gen] @@ -43,15 +43,15 @@
323.70 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
323.70 s
[really-safe-money-gen] where
323.70 s
[really-safe-money-gen] f :: String -> Either String Amount
323.70 s
[really-safe-money-gen] - f s = case readMaybe s of
323.70 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
323.70 s
[really-safe-money-gen] - Just i ->
323.70 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
323.70 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
323.70 s
[really-safe-money-gen] - else
323.70 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
323.70 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
323.70 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
323.70 s
[really-safe-money-gen] + f s = case readMaybe s of
323.70 s
[really-safe-money-gen] + Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
323.70 s
[really-safe-money-gen] + Just i ->
323.70 s
[really-safe-money-gen] + if (i :: Integer) < toInteger (minBound :: Word64)
323.70 s
[really-safe-money-gen] + then Left $ unwords ["Negative number of minimal quantisations:", show i]
323.70 s
[really-safe-money-gen] + else
323.70 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (maxBound :: Word64)
323.70 s
[really-safe-money-gen] + then Left $ unwords ["Number of minimal quantisations is too big:", show i]
323.70 s
[really-safe-money-gen] + else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
323.70 s
[really-safe-money-gen] g :: Amount -> String
323.70 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] n >= fromIntegral (minBound :: Int)
323.70 s
[really-safe-money-gen] + guard $ True
323.70 s
[really-safe-money-gen] pure $ fromIntegral n
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
323.70 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
323.70 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
323.70 s
[really-safe-money-gen] toInt dl = do
323.70 s
[really-safe-money-gen] n <- toInteger dl
323.70 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
323.70 s
[really-safe-money-gen] + guard $ True
323.70 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
323.70 s
[really-safe-money-gen] pure $ fromIntegral n
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
323.70 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
323.70 s
[really-safe-money-gen] pure $ fromIntegral n
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
323.70 s
[really-safe-money-gen] -numSign a = if a >= 0 then Nothing else Just False
323.70 s
[really-safe-money-gen] +numSign a = if a >= 1 then Nothing else Just False
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
323.70 s
[really-safe-money-gen] signSignum = \case
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
323.70 s
[really-safe-money-gen] @@ -60,11 +60,11 @@
323.70 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
323.70 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] - [ genericValidate ma,
323.70 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] - declare "The amount is not zero" $
323.70 s
[really-safe-money-gen] - a /= Amount.zero
323.70 s
[really-safe-money-gen] - ]
323.70 s
[really-safe-money-gen] + [ genericValidate ma,
323.70 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] + declare "The amount is not zero" $
323.70 s
[really-safe-money-gen] + a /= Amount.zero
323.70 s
[really-safe-money-gen] + ]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
323.70 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
323.70 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
323.70 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] - [ genericValidate ma,
323.70 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] - declare "The amount is not zero" $
323.70 s
[really-safe-money-gen] - a /= Amount.zero
323.70 s
[really-safe-money-gen] - ]
323.70 s
[really-safe-money-gen] + []
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
323.70 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
323.70 s
[really-safe-money-gen] [ genericValidate ma,
323.70 s
[really-safe-money-gen] decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] declare "The amount is not zero" $
323.70 s
[really-safe-money-gen] - a /= Amount.zero
323.70 s
[really-safe-money-gen] + True
323.70 s
[really-safe-money-gen] ]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
323.70 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
323.70 s
[really-safe-money-gen] Just a -> do
323.70 s
[really-safe-money-gen] r <- Amount.add a amount
323.70 s
[really-safe-money-gen] Just $
323.70 s
[really-safe-money-gen] - if r == Amount.zero
323.70 s
[really-safe-money-gen] + if False
323.70 s
[really-safe-money-gen] then M.delete currency m
323.70 s
[really-safe-money-gen] else M.insert currency r m
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] CondFlip at src/Money/MultiAmount.hs:119:9-37
323.70 s
[really-safe-money-gen] @@ -116,9 +116,9 @@
323.70 s
[really-safe-money-gen] Just a -> do
323.70 s
[really-safe-money-gen] r <- Amount.subtract a amount
323.70 s
[really-safe-money-gen] Just $
323.70 s
[really-safe-money-gen] - if r == Amount.zero
323.70 s
[really-safe-money-gen] - then M.delete currency m
323.70 s
[really-safe-money-gen] - else M.insert currency r m
323.70 s
[really-safe-money-gen] + if r == Amount.zero
323.70 s
[really-safe-money-gen] + then M.delete currency m
323.70 s
[really-safe-money-gen] + else M.insert currency r m
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
323.70 s
[really-safe-money-gen] --
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
323.70 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
323.70 s
[really-safe-money-gen] Just a -> do
323.70 s
[really-safe-money-gen] r <- Amount.subtract a amount
323.70 s
[really-safe-money-gen] Just $
323.70 s
[really-safe-money-gen] - if r == Amount.zero
323.70 s
[really-safe-money-gen] + if not (r == Amount.zero)
323.70 s
[really-safe-money-gen] then M.delete currency m
323.70 s
[really-safe-money-gen] else M.insert currency r m
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
323.70 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
323.70 s
[really-safe-money-gen] Just a -> do
323.70 s
[really-safe-money-gen] r <- Amount.subtract a amount
323.70 s
[really-safe-money-gen] Just $
323.70 s
[really-safe-money-gen] - if r == Amount.zero
323.70 s
[really-safe-money-gen] + if False
323.70 s
[really-safe-money-gen] then M.delete currency m
323.70 s
[really-safe-money-gen] else M.insert currency r m
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
323.70 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
323.70 s
[really-safe-money-gen] Just a -> do
323.70 s
[really-safe-money-gen] r <- Amount.subtract a amount
323.70 s
[really-safe-money-gen] Just $
323.70 s
[really-safe-money-gen] - if r == Amount.zero
323.70 s
[really-safe-money-gen] + if True
323.70 s
[really-safe-money-gen] then M.delete currency m
323.70 s
[really-safe-money-gen] else M.insert currency r m
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
323.70 s
[really-safe-money-gen] @@ -34,9 +34,9 @@
323.70 s
[really-safe-money-gen] instance Validity ConversionRate where
323.70 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] - [ genericValidate cr,
323.70 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
323.70 s
[really-safe-money-gen] - ]
323.70 s
[really-safe-money-gen] + [ genericValidate cr,
323.70 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 0
323.70 s
[really-safe-money-gen] + ]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] instance NFData ConversionRate
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
323.70 s
[really-safe-money-gen] @@ -34,9 +34,7 @@
323.70 s
[really-safe-money-gen] instance Validity ConversionRate where
323.70 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] - [ genericValidate cr,
323.70 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
323.70 s
[really-safe-money-gen] - ]
323.70 s
[really-safe-money-gen] + []
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] instance NFData ConversionRate
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57
323.70 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
323.70 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] [ genericValidate cr,
323.70 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
323.70 s
[really-safe-money-gen] + declare "The rate is nonzero" $ True
323.70 s
[really-safe-money-gen] ]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] instance NFData ConversionRate
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
323.70 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] -- | One-to-one conversion rate
323.70 s
[really-safe-money-gen] oneToOne :: ConversionRate
323.70 s
[really-safe-money-gen] -oneToOne = ConversionRate 1
323.70 s
[really-safe-money-gen] +oneToOne = ConversionRate 0
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
323.70 s
[really-safe-money-gen] --
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
323.70 s
[really-safe-money-gen] @@ -63,11 +63,11 @@
323.70 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
323.70 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] - [ genericValidate ma,
323.70 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] - declare "The account is not zero" $
323.70 s
[really-safe-money-gen] - a /= Account.zero
323.70 s
[really-safe-money-gen] - ]
323.70 s
[really-safe-money-gen] + [ genericValidate ma,
323.70 s
[really-safe-money-gen] + decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] + declare "The account is not zero" $
323.70 s
[really-safe-money-gen] + a /= Account.zero
323.70 s
[really-safe-money-gen] + ]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] -- TODO no empty currencies
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
323.70 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
323.70 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
323.70 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
323.70 s
[really-safe-money-gen] mconcat
323.70 s
[really-safe-money-gen] - [ genericValidate ma,
323.70 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
323.70 s
[really-safe-money-gen] - declare "The account is not zero" $
323.70 s
[really-safe-money-gen] - a /= Account.zero
323.70 s
[really-safe-money-gen] - ]
323.70 s
[really-safe-money-gen] + []
323.70 s
[really-safe-money-gen]
323.70 s
[really-safe-money-gen] -- TODO no empty currencies
323.70 s
[really-safe-money-gen]
323.71 s
[really-safe-money-gen]
323.71 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
323.71 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
323.71 s
[really-safe-money-gen] [ genericValidate ma,
323.71 s
[really-safe-money-gen] decorateMap m $ \_ a ->
323.71 s
[really-safe-money-gen] declare "The account is not zero" $
323.71 s
[really-safe-money-gen] - a /= Account.zero
323.71 s
[really-safe-money-gen] + True
323.71 s
[really-safe-money-gen] ]
323.71 s
[really-safe-money-gen]
323.71 s
[really-safe-money-gen] -- TODO no empty currencies
323.71 s
[really-safe-money-gen]
323.71 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
323.71 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
323.71 s
[really-safe-money-gen]
323.71 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
323.71 s
[really-safe-money-gen] fromAccount currency amount =
323.71 s
[really-safe-money-gen] - if amount == Account.zero
323.71 s
[really-safe-money-gen] + if True
323.71 s
[really-safe-money-gen] then zero
323.71 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
323.71 s
[really-safe-money-gen]
323.71 s
[really-safe-money-gen] checkPhase completed in 4 minutes 28 seconds
323.71 s
[really-safe-money-gen] Phase: haddockPhase
323.81 s
[really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
323.82 s
[really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
323.82 s
[really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
323.82 s
[really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
323.99 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
324.09 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
324.09 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
324.09 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
324.10 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
324.11 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
324.11 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
324.11 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
324.12 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
324.13 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
324.13 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
324.14 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
324.14 s
[really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
324.16 s
[really-safe-money-gen] Haddock coverage:
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
324.16 s
[really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
324.16 s
[really-safe-money-gen] Missing documentation for:
324.16 s
[really-safe-money-gen] Module header
324.16 s
[really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
324.24 s
[really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.Amount.Amount
324.24 s
[really-safe-money-gen] - Money.Amount.Distribution
324.24 s
[really-safe-money-gen] - Money.Amount.Rounding
324.24 s
[really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.Account.Account
324.24 s
[really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.AccountOf.AccountOf
324.24 s
[really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.AmountOf.AmountOf
324.24 s
[really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.ConversionRate.ConversionRate
324.24 s
[really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
324.24 s
[really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
324.24 s
[really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.Currency.Currency
324.24 s
[really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.MultiAmount.MultiAmount
324.24 s
[really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Money.MultiAccount.MultiAccount
324.24 s
[really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
324.24 s
[really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
327.95 s
[really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
327.95 s
[really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
328.00 s
[really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
328.02 s
[really-safe-money-gen] Phase: installPhase
328.10 s
[really-safe-money-gen] Installing library in /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-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
328.39 s
[really-safe-money-gen] Phase: fixupPhase
328.41 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0
328.41 s
[really-safe-money-gen] shrinking /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-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
328.43 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0...
328.45 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0
328.46 s
[really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0/lib
328.53 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc
328.53 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc...
328.55 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc
328.56 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report
328.57 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report...
328.59 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report
328.71 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0 /nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report
329.15 s
[post-build-hook] Pushing 3 paths (196 are already present) using zstd to cache sydtest ⏳
329.15 s
[post-build-hook]
329.51 s
[post-build-hook] Pushing /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
329.55 s
[post-build-hook] Pushing /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0 (1.52 MiB)
329.56 s
[post-build-hook] Pushing /nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report (538.22 KiB)
330.56 s
[post-build-hook]
330.56 s
[post-build-hook] All done.
330.58 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc /nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0 /nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report
330.62 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
330.89 s
[post-build-hook] copying 3 paths...
330.89 s
[post-build-hook] copying path '/nix/store/83q7ddqxny8pph072bbyn0rcsyvmywr1-really-safe-money-gen-0.0.0.0-doc' to 'https://cache.staging.nix-ci.com'...
330.89 s
[post-build-hook] copying path '/nix/store/r67y4wiw11z3h1banskqalysd9d07id4-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
330.98 s
[post-build-hook] copying path '/nix/store/mszdd971wbn8fa5jbcli2vfjbjxs17w3-really-safe-money-gen-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
331.48 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
331.77 s
[post-build-hook] copying 1 paths...
331.78 s
[post-build-hook] copying path '/nix/store/lxf02vydmg0hcangxzq4dggq7g212i47-really-safe-money-gen-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
332.00 s
Progress: 5 of 6 built