build checks.x86_64-linux.mutation-really-safe-money
1048.07 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1048.07 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1048.08 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
1048.08 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1048.08 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1048.08 s
[really-safe-money-gen] decimalLiteralP = do
1048.08 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1048.08 s
[really-safe-money-gen] - isSignChar c = c = = ' - ' || c == '+'
1048.08 s
[really-safe-money-gen] + isSignChar c = T ru e || c == '+'
1048.08 s
[really-safe-money-gen]
1048.08 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1048.08 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1048.08 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Numeric/DecimalLiteral.hs:136:29-71
1048.08 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
1048.08 s
[really-safe-money-gen]
1048.08 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
1048.08 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
1048.08 s
[really-safe-money-gen] - stepFraction (m, e) digit = J u st (m * 10 + fr o m In t egral d i g i t, succ e)
1048.08 s
[really-safe-money-gen] + stepFraction (m, e) digit = N o t h i n g
1048.08 s
[really-safe-money-gen]
1048.08 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
1048.08 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
1048.08 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
1048.08 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1048.08 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1048.08 s
[really-safe-money-gen] decimalLiteralP = do
1048.08 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1048.08 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
1048.08 s
[really-safe-money-gen] + isSignChar c = c == '-' || F a ls e
1048.08 s
[really-safe-money-gen]
1048.08 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1048.08 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1048.08 s
[really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-41
1048.08 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
1048.08 s
[really-safe-money-gen]
1048.08 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
1048.08 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
1048.08 s
[really-safe-money-gen] - stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
1048.08 s
[really-safe-money-gen] + stepFraction (m, e) digit = Just (m - 10 + fromIntegral digit, succ e)
1048.08 s
[really-safe-money-gen]
1048.08 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
1048.08 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
1048.08 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
1048.08 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
1048.08 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
1048.08 s
[really-safe-money-gen] parseDigits f z = do
1048.09 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
1048.09 s
[really-safe-money-gen] - let digit = Char.ord c - 48
1048.09 s
[really-safe-money-gen] + let digit = Char.ord c - - 48
1048.09 s
[really-safe-money-gen] case f z digit of
1048.09 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
1048.09 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
1048.09 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:145:28-30
1048.09 s
[really-safe-money-gen] @@ -142,7 +142,7 @@
1048.09 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
1048.09 s
[really-safe-money-gen] parseDigits f z = do
1048.09 s
[really-safe-money-gen] c <- ReadP.satisfy Char.isDigit
1048.09 s
[really-safe-money-gen] - let digit = Char.ord c - 4 8
1048.09 s
[really-safe-money-gen] + let digit = Char.ord c - 0
1048.09 s
[really-safe-money-gen] case f z digit of
1048.09 s
[really-safe-money-gen] Nothing -> fail "Failed to step the first digit"
1048.09 s
[really-safe-money-gen] Just a -> ReadP.look >>= go a
1048.09 s
[really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
1048.09 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
1048.09 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
1048.09 s
[really-safe-money-gen] - stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
1048.09 s
[really-safe-money-gen] + stepFraction (m, e) digit = Just (m * 10 * fromIntegral digit, succ e)
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
1048.09 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
1048.09 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:123:19-34
1048.09 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1048.09 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1048.09 s
[really-safe-money-gen] - pure $ Just $ signChar == '+'
1048.09 s
[really-safe-money-gen] + pure $ Just $ n o t ( signChar == '+' )
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] units <- parseDigits step 0
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
1048.09 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
1048.09 s
[really-safe-money-gen] go !a (c : cs)
1048.09 s
[really-safe-money-gen] | Char.isDigit c = do
1048.09 s
[really-safe-money-gen] _ <- ReadP.get
1048.09 s
[really-safe-money-gen] - let digit = Char.ord c - 4 8
1048.09 s
[really-safe-money-gen] + let digit = Char.ord c - 1
1048.09 s
[really-safe-money-gen] case f a digit of
1048.09 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
1048.09 s
[really-safe-money-gen] Just a' -> go a' cs
1048.09 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:125:29-30
1048.09 s
[really-safe-money-gen] @@ -122,7 +122,7 @@
1048.09 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1048.09 s
[really-safe-money-gen] pure $ Just $ signChar == '+'
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] - units <- parseDigits step 0
1048.09 s
[really-safe-money-gen] + units <- parseDigits step 1
1048.09 s
[really-safe-money-gen]
1048.09 s
[really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
1048.09 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
1048.09 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-30
1048.09 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1048.09 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1048.09 s
[really-safe-money-gen] decimalLiteralP = do
1048.09 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1048.09 s
[really-safe-money-gen] - isSignChar c = c = = ' -' || c == '+'
1048.10 s
[really-safe-money-gen] + isSignChar c = F a ls e || c == '+'
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1048.10 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1048.10 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:130:48-49
1048.10 s
[really-safe-money-gen] @@ -127,7 +127,7 @@
1048.10 s
[really-safe-money-gen] ReadP.option (DecimalLiteral mSign units 0) $ do
1048.10 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] - (m, e) <- parseDigits stepFraction (units, 0 )
1048.10 s
[really-safe-money-gen] + (m, e) <- parseDigits stepFraction (units, 1 )
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] pure $ DecimalLiteral mSign m e
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:127:44-45
1048.10 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] units <- parseDigits step 0
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] - ReadP.option (DecimalLiteral mSign units 0 ) $ do
1048.10 s
[really-safe-money-gen] + ReadP.option (DecimalLiteral mSign units 1 ) $ do
1048.10 s
[really-safe-money-gen] _ <- ReadP.satisfy (== '.')
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] (m, e) <- parseDigits stepFraction (units, 0)
1048.10 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:154:36-38
1048.10 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
1048.10 s
[really-safe-money-gen] go !a (c : cs)
1048.10 s
[really-safe-money-gen] | Char.isDigit c = do
1048.10 s
[really-safe-money-gen] _ <- ReadP.get
1048.10 s
[really-safe-money-gen] - let digit = Char.ord c - 48
1048.10 s
[really-safe-money-gen] + let digit = Char.ord c - - 48
1048.10 s
[really-safe-money-gen] case f a digit of
1048.10 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
1048.10 s
[really-safe-money-gen] Just a' -> go a' cs
1048.10 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
1048.10 s
[really-safe-money-gen] @@ -177,11 +177,10 @@
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] -- | See 'Account.distribute'
1048.10 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
1048.10 s
[really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
1048.10 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1048.10 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
1048.10 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
1048.10 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] -- | The result of 'distribute'
1048.10 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
1048.10 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
1048.10 s
[really-safe-money-gen] @@ -177,11 +177,10 @@
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] -- | See 'Account.distribute'
1048.10 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
1048.10 s
[really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
1048.10 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1048.10 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1048.10 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
1048.10 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] -- | The result of 'distribute'
1048.10 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
1048.10 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
1048.10 s
[really-safe-money-gen] @@ -83,9 +83,8 @@
1048.10 s
[really-safe-money-gen] instance NFData DecimalLiteral
1048.10 s
[really-safe-money-gen]
1048.10 s
[really-safe-money-gen] instance IsString DecimalLiteral where
1048.11 s
[really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
1052.56 s
[really-safe-money-gen] Nothing -> error $ "Invalid DecimalLiteral: " <> show s
1052.56 s
[really-safe-money-gen] - Just dl -> dl
1052.56 s
[really-safe-money-gen]
1052.56 s
[really-safe-money-gen] -- | Parse a decimal literal from a string
1052.56 s
[really-safe-money-gen] --
1052.56 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
1052.57 s
[really-safe-money-gen] @@ -109,9 +109,8 @@
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
1052.57 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
1052.57 s
[really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
1052.57 s
[really-safe-money-gen] - Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
1052.57 s
[really-safe-money-gen] Just dl -> pure dl
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1052.57 s
[really-safe-money-gen] decimalLiteralP = do
1052.57 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
1052.57 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1052.57 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1052.57 s
[really-safe-money-gen] decimalLiteralP = do
1052.57 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1052.57 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
1052.57 s
[really-safe-money-gen] + isSignChar c = F a ls e
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1052.57 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1052.57 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:123:19-34
1052.57 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1052.57 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1052.57 s
[really-safe-money-gen] - pure $ Just $ s i gn Ch a r == '+'
1052.57 s
[really-safe-money-gen] + pure $ Just $ F a lse
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] units <- parseDigits step 0
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] Testing mutation IntLit at src/Numeric/DecimalLiteral.hs:136:39-41
1052.57 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
1052.57 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
1052.57 s
[really-safe-money-gen] - stepFraction (m, e) digit = Just (m * 1 0 + fromIntegral digit, succ e)
1052.57 s
[really-safe-money-gen] + stepFraction (m, e) digit = Just (m * 1 + fromIntegral digit, succ e)
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
1052.57 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
1052.57 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
1052.57 s
[really-safe-money-gen] @@ -109,9 +109,8 @@
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
1052.57 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
1052.57 s
[really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
1052.57 s
[really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
1052.57 s
[really-safe-money-gen] - Just dl -> pure dl
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1052.57 s
[really-safe-money-gen] decimalLiteralP = do
1052.57 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
1052.57 s
[really-safe-money-gen] @@ -177,11 +177,10 @@
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] -- | See 'Account.distribute'
1052.57 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
1052.57 s
[really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
1052.57 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1052.57 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1052.57 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
1052.57 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] -- | The result of 'distribute'
1052.57 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
1052.57 s
[really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:136:35-62
1052.57 s
[really-safe-money-gen] @@ -133,7 +133,7 @@
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] stepFraction :: (Natural, Word8) -> Int -> Maybe (Natural, Word8)
1052.57 s
[really-safe-money-gen] stepFraction (_, 255) _ = Nothing
1052.57 s
[really-safe-money-gen] - stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
1052.57 s
[really-safe-money-gen] + stepFraction (m, e) digit = Just (m * 10 - fromIntegral digit, succ e)
1052.57 s
[really-safe-money-gen]
1052.57 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
1052.57 s
[really-safe-money-gen] step a digit = Just $ a * 10 + fromIntegral digit
1052.57 s
[really-safe-money-gen] Testing mutation Negate at src/Numeric/DecimalLiteral.hs:119:22-30
1052.57 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1052.57 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1052.57 s
[really-safe-money-gen] decimalLiteralP = do
1052.57 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1052.58 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == '+'
1052.58 s
[really-safe-money-gen] + isSignChar c = n o t ( c == '-' ) || c == '+'
1052.58 s
[really-safe-money-gen]
1052.58 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1052.58 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1052.58 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:34-42
1052.58 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1052.58 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1052.58 s
[really-safe-money-gen] decimalLiteralP = do
1052.58 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1052.58 s
[really-safe-money-gen] - isSignChar c = c == '-' || c == ' + '
1052.58 s
[really-safe-money-gen] + isSignChar c = c == '-' || T rue
1052.58 s
[really-safe-money-gen]
1052.58 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1052.58 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1052.58 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
1052.58 s
[really-safe-money-gen] @@ -156,10 +156,9 @@
1052.58 s
[really-safe-money-gen] fmap
1052.58 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1052.58 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
1052.58 s
[really-safe-money-gen] rounder = case r of
1052.58 s
[really-safe-money-gen] RoundUp -> ceiling
1052.58 s
[really-safe-money-gen] - RoundDown -> floor
1052.58 s
[really-safe-money-gen] RoundNearest -> round
1052.58 s
[really-safe-money-gen] roundedResult :: Natural
1052.58 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
1052.58 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1052.58 s
[really-safe-money-gen] actualResult =
1052.58 s
[really-safe-money-gen] - if r ou nde dResult > m a xBo u ndN
1052.58 s
[really-safe-money-gen] + if F a l se
1052.58 s
[really-safe-money-gen] then Nothing
1052.58 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1052.58 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1052.58 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
1052.58 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1052.58 s
[really-safe-money-gen] actualResult =
1052.58 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1052.58 s
[really-safe-money-gen] + if roundedResult < = maxBoundN
1052.58 s
[really-safe-money-gen] then Nothing
1052.58 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1052.58 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1052.58 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:168:20-45
1052.58 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1052.58 s
[really-safe-money-gen] actualResult =
1052.58 s
[really-safe-money-gen] - if r o u n ded R e s u lt > maxBoundN
1052.58 s
[really-safe-money-gen] + if T r u e
1052.58 s
[really-safe-money-gen] then Nothing
1052.58 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1052.58 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1052.58 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
1052.58 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1052.58 s
[really-safe-money-gen] actualResult =
1052.58 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1052.58 s
[really-safe-money-gen] + if roundedResult > = maxBoundN
1052.58 s
[really-safe-money-gen] then Nothing
1052.58 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1052.58 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1052.58 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
1052.58 s
[really-safe-money-gen] @@ -156,10 +156,9 @@
1052.58 s
[really-safe-money-gen] fmap
1052.58 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1052.58 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
1052.58 s
[really-safe-money-gen] rounder = case r of
1052.58 s
[really-safe-money-gen] - RoundUp -> ceiling
1052.58 s
[really-safe-money-gen] RoundDown -> floor
1052.58 s
[really-safe-money-gen] RoundNearest -> round
1052.58 s
[really-safe-money-gen] roundedResult :: Natural
1052.58 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:168:20-45
1052.58 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1052.58 s
[really-safe-money-gen] maxBoundN :: Natural
1052.58 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1052.58 s
[really-safe-money-gen] actualResult =
1052.58 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1056.05 s
[really-safe-money-gen] + if n o t ( roundedResult > maxBoundN )
1056.11 s
[really-safe-money-gen] then Nothing
1056.11 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1056.11 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1056.11 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:159:25-38
1056.11 s
[really-safe-money-gen] @@ -156,10 +156,9 @@
1056.11 s
[really-safe-money-gen] fmap
1056.12 s
[really-safe-money-gen] ( ( \theoreticalResult ->
1056.12 s
[really-safe-money-gen] let rounder :: Ratio Natural -> Natural
1056.12 s
[really-safe-money-gen] rounder = case r of
1056.12 s
[really-safe-money-gen] RoundUp -> ceiling
1056.12 s
[really-safe-money-gen] RoundDown -> floor
1056.12 s
[really-safe-money-gen] - RoundNearest -> round
1056.12 s
[really-safe-money-gen] roundedResult :: Natural
1056.12 s
[really-safe-money-gen] roundedResult = rounder theoreticalResult
1056.12 s
[really-safe-money-gen] maxBoundN :: Natural
1056.12 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/MultiAmount.hs:168:20-45
1056.12 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1056.12 s
[really-safe-money-gen] maxBoundN :: Natural
1056.12 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1056.12 s
[really-safe-money-gen] actualResult =
1056.12 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1056.12 s
[really-safe-money-gen] + if roundedResult < maxBoundN
1056.12 s
[really-safe-money-gen] then Nothing
1056.12 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1056.12 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1056.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral.hs:86:18-18
1056.12 s
[really-safe-money-gen] @@ -83,9 +83,8 @@
1056.12 s
[really-safe-money-gen] instance NFData DecimalLiteral
1056.12 s
[really-safe-money-gen]
1056.12 s
[really-safe-money-gen] instance IsString DecimalLiteral where
1056.12 s
[really-safe-money-gen] fromString s = case Numeric.DecimalLiteral.fromString s of
1056.12 s
[really-safe-money-gen] - Nothing -> error $ "Invalid DecimalLiteral: " <> show s
1056.12 s
[really-safe-money-gen] Just dl -> dl
1056.12 s
[really-safe-money-gen]
1056.12 s
[really-safe-money-gen] -- | Parse a decimal literal from a string
1056.12 s
[really-safe-money-gen] --
1056.12 s
[really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:154:23-38
1056.12 s
[really-safe-money-gen] @@ -151,7 +151,7 @@
1056.12 s
[really-safe-money-gen] go !a (c : cs)
1056.12 s
[really-safe-money-gen] | Char.isDigit c = do
1056.12 s
[really-safe-money-gen] _ <- ReadP.get
1056.12 s
[really-safe-money-gen] - let digit = Char.ord c - 48
1056.12 s
[really-safe-money-gen] + let digit = Char.ord c * 48
1056.12 s
[really-safe-money-gen] case f a digit of
1056.12 s
[really-safe-money-gen] Nothing -> fail "Failed to step the digit"
1056.12 s
[really-safe-money-gen] Just a' -> go a' cs
1056.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
1056.12 s
[really-safe-money-gen] @@ -168,10 +168,9 @@
1056.12 s
[really-safe-money-gen] if roundedResult > maxBoundN
1056.12 s
[really-safe-money-gen] then Nothing
1056.12 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1056.12 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1056.12 s
[really-safe-money-gen] LT -> RoundedDown
1056.12 s
[really-safe-money-gen] - EQ -> DidNotRound
1056.12 s
[really-safe-money-gen] GT -> RoundedUp
1056.12 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
1056.12 s
[really-safe-money-gen] )
1056.12 s
[really-safe-money-gen] . Prelude.sum
1056.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AccountOf.hs:180:30-115
1056.13 s
[really-safe-money-gen] @@ -177,11 +177,10 @@
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] -- | See 'Account.distribute'
1056.13 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
1056.13 s
[really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
1056.13 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1056.13 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1056.13 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
1056.13 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] -- | The result of 'distribute'
1056.13 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
1056.13 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:170:24-57
1056.13 s
[really-safe-money-gen] @@ -167,7 +167,7 @@
1056.13 s
[really-safe-money-gen] actualResult =
1056.13 s
[really-safe-money-gen] if roundedResult > maxBoundN
1056.13 s
[really-safe-money-gen] then Nothing
1056.13 s
[really-safe-money-gen] - else J u st (fr o mI n t e gral ro u n d e dResult)
1056.13 s
[really-safe-money-gen] + else N o t hi n g
1056.13 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1056.13 s
[really-safe-money-gen] LT -> RoundedDown
1056.13 s
[really-safe-money-gen] EQ -> DidNotRound
1056.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
1056.13 s
[really-safe-money-gen] @@ -168,10 +168,9 @@
1056.13 s
[really-safe-money-gen] if roundedResult > maxBoundN
1056.13 s
[really-safe-money-gen] then Nothing
1056.13 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1056.13 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1056.13 s
[really-safe-money-gen] - LT -> RoundedDown
1056.13 s
[really-safe-money-gen] EQ -> DidNotRound
1056.13 s
[really-safe-money-gen] GT -> RoundedUp
1056.13 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
1056.13 s
[really-safe-money-gen] )
1056.13 s
[really-safe-money-gen] . Prelude.sum
1056.13 s
[really-safe-money-gen] Testing mutation Arith at src/Numeric/DecimalLiteral.hs:139:23-50
1056.13 s
[really-safe-money-gen] @@ -136,7 +136,7 @@
1056.13 s
[really-safe-money-gen] stepFraction (m, e) digit = Just (m * 10 + fromIntegral digit, succ e)
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] step :: Natural -> Int -> Maybe Natural
1056.13 s
[really-safe-money-gen] - step a digit = Just $ a * 10 + fromIntegral digit
1056.13 s
[really-safe-money-gen] + step a digit = Just $ a * 10 - fromIntegral digit
1056.13 s
[really-safe-money-gen] {-# INLINE step #-}
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] parseDigits :: (a -> Int -> Maybe a) -> a -> ReadP a
1056.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
1056.13 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1056.13 s
[really-safe-money-gen] Just a -> do
1056.13 s
[really-safe-money-gen] r <- Amount.add a amount
1056.13 s
[really-safe-money-gen] Just $
1056.13 s
[really-safe-money-gen] - if r == Am o u n t. z e r o
1056.13 s
[really-safe-money-gen] + if T r u e
1056.13 s
[really-safe-money-gen] then M.delete currency m
1056.13 s
[really-safe-money-gen] else M.insert currency r m
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
1056.13 s
[really-safe-money-gen] @@ -111,14 +111,13 @@
1056.13 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.13 s
[really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
1056.13 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1056.13 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1056.13 s
[really-safe-money-gen] - Nothing -> Nothing -- Can't go below zero
1056.13 s
[really-safe-money-gen] Just a -> do
1056.13 s
[really-safe-money-gen] r <- Amount.subtract a amount
1056.13 s
[really-safe-money-gen] Just $
1056.13 s
[really-safe-money-gen] if r == Amount.zero
1056.13 s
[really-safe-money-gen] then M.delete currency m
1056.13 s
[really-safe-money-gen] else M.insert currency r m
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
1056.13 s
[really-safe-money-gen] --
1056.13 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:99:28-34
1056.13 s
[really-safe-money-gen] @@ -96,7 +96,7 @@
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] -- | Add an 'Amount' to a 'MultiAmount'
1056.13 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.13 s
[really-safe-money-gen] - addAmount m _ (Amount 0) = J u s t m
1056.13 s
[really-safe-money-gen] + addAmount m _ (Amount 0) = No t h ing
1056.13 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
1056.13 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1056.13 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
1056.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
1056.13 s
[really-safe-money-gen] @@ -98,14 +98,8 @@
1056.13 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.13 s
[really-safe-money-gen] addAmount m _ (Amount 0) = Just m
1056.13 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
1056.13 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1056.13 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency amount m
1056.13 s
[really-safe-money-gen] - Just a -> do
1056.13 s
[really-safe-money-gen] - r <- Amount.add a amount
1056.13 s
[really-safe-money-gen] - Just $
1056.13 s
[really-safe-money-gen] - if r == Amount.zero
1056.13 s
[really-safe-money-gen] - then M.delete currency m
1056.13 s
[really-safe-money-gen] - else M.insert currency r m
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1056.13 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1056.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
1056.13 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1056.13 s
[really-safe-money-gen] Just a -> do
1056.13 s
[really-safe-money-gen] r <- Amount.subtract a amount
1056.13 s
[really-safe-money-gen] Just $
1056.13 s
[really-safe-money-gen] - if r == Am o u n t. z e r o
1056.13 s
[really-safe-money-gen] + if T r u e
1056.13 s
[really-safe-money-gen] then M.delete currency m
1056.13 s
[really-safe-money-gen] else M.insert currency r m
1056.13 s
[really-safe-money-gen]
1056.13 s
[really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
1056.13 s
[really-safe-money-gen] @@ -179,7 +179,7 @@
1056.13 s
[really-safe-money-gen] . traverse
1056.13 s
[really-safe-money-gen] ( \(currency, a) ->
1056.13 s
[really-safe-money-gen] ( \(cr, qf2) ->
1056.13 s
[really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
1056.13 s
[really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) - ConversionRate.conversionFactor qf2 cr qf1
1056.13 s
[really-safe-money-gen] )
1061.47 s
[really-safe-money-gen] <$> func currency
1061.47 s
[really-safe-money-gen] )
1061.50 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:119:12-28
1061.50 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1061.50 s
[really-safe-money-gen] Just a -> do
1061.50 s
[really-safe-money-gen] r <- Amount.subtract a amount
1061.50 s
[really-safe-money-gen] Just $
1061.50 s
[really-safe-money-gen] - if r == Amount.zero
1061.50 s
[really-safe-money-gen] + if n o t ( r == Amount.zero )
1061.50 s
[really-safe-money-gen] then M.delete currency m
1061.50 s
[really-safe-money-gen] else M.insert currency r m
1061.50 s
[really-safe-money-gen]
1061.50 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:119:12-28
1061.50 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1061.50 s
[really-safe-money-gen] Just a -> do
1061.50 s
[really-safe-money-gen] r <- Amount.subtract a amount
1061.50 s
[really-safe-money-gen] Just $
1061.50 s
[really-safe-money-gen] - if r == A mount .z e ro
1061.50 s
[really-safe-money-gen] + if Fal s e
1061.50 s
[really-safe-money-gen] then M.delete currency m
1061.50 s
[really-safe-money-gen] else M.insert currency r m
1061.50 s
[really-safe-money-gen]
1061.50 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
1061.50 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
1061.50 s
[really-safe-money-gen]
1061.50 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
1061.50 s
[really-safe-money-gen] fromAmount currency amount =
1061.50 s
[really-safe-money-gen] - if a m o u n t == Amoun t.z e ro
1061.50 s
[really-safe-money-gen] + if Tr u e
1061.50 s
[really-safe-money-gen] then zero
1061.50 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
1061.50 s
[really-safe-money-gen]
1061.50 s
[really-safe-money-gen] Testing mutation Arith at src/Money/MultiAmount.hs:182:15-106
1061.50 s
[really-safe-money-gen] @@ -179,7 +179,7 @@
1061.50 s
[really-safe-money-gen] . traverse
1061.50 s
[really-safe-money-gen] ( \(currency, a) ->
1061.50 s
[really-safe-money-gen] ( \(cr, qf2) ->
1061.50 s
[really-safe-money-gen] - fromIntegral (Amount.toMinimalQuantisations a) * ConversionRate.conversionFactor qf2 cr qf1
1061.50 s
[really-safe-money-gen] + fromIntegral (Amount.toMinimalQuantisations a) + ConversionRate.conversionFactor qf2 cr qf1
1061.50 s
[really-safe-money-gen] )
1061.50 s
[really-safe-money-gen] <$> func currency
1061.50 s
[really-safe-money-gen] )
1061.50 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:106:12-28
1061.50 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1061.50 s
[really-safe-money-gen] Just a -> do
1061.50 s
[really-safe-money-gen] r <- Amount.add a amount
1061.50 s
[really-safe-money-gen] Just $
1061.50 s
[really-safe-money-gen] - if r == Amount.zero
1061.51 s
[really-safe-money-gen] + if n o t ( r == Amount.zero )
1061.51 s
[really-safe-money-gen] then M.delete currency m
1061.51 s
[really-safe-money-gen] else M.insert currency r m
1061.51 s
[really-safe-money-gen]
1061.51 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
1061.51 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1061.51 s
[really-safe-money-gen] [ genericValidate ma,
1061.51 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1061.51 s
[really-safe-money-gen] declare "The amount is not zero" $
1061.51 s
[really-safe-money-gen] - a / = Am ount .z e ro
1061.51 s
[really-safe-money-gen] + F a l s e
1061.51 s
[really-safe-money-gen] ]
1061.51 s
[really-safe-money-gen]
1061.51 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1061.51 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:106:12-28
1061.51 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1061.51 s
[really-safe-money-gen] Just a -> do
1061.51 s
[really-safe-money-gen] r <- Amount.add a amount
1061.51 s
[really-safe-money-gen] Just $
1061.51 s
[really-safe-money-gen] - if r == A mount .z e ro
1061.51 s
[really-safe-money-gen] + if Fal s e
1061.51 s
[really-safe-money-gen] then M.delete currency m
1061.51 s
[really-safe-money-gen] else M.insert currency r m
1061.51 s
[really-safe-money-gen]
1061.51 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:171:25-32
1061.51 s
[really-safe-money-gen] @@ -168,10 +168,9 @@
1061.51 s
[really-safe-money-gen] if roundedResult > maxBoundN
1061.51 s
[really-safe-money-gen] then Nothing
1061.51 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1061.51 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1061.51 s
[really-safe-money-gen] LT -> RoundedDown
1061.51 s
[really-safe-money-gen] EQ -> DidNotRound
1061.51 s
[really-safe-money-gen] - GT -> RoundedUp
1061.52 s
[really-safe-money-gen] in (Amount.fromMinimalQuantisations <$> actualResult, rounded)
1061.52 s
[really-safe-money-gen] )
1061.52 s
[really-safe-money-gen] . Prelude.sum
1061.52 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
1061.52 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
1061.52 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1061.52 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1061.52 s
[really-safe-money-gen] mconcat
1061.52 s
[really-safe-money-gen] - [ genericValidate ma,
1061.52 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1061.52 s
[really-safe-money-gen] - declare "The amount is not zero" $
1061.52 s
[really-safe-money-gen] - a /= Amount.zero
1061.52 s
[really-safe-money-gen] ]
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
1061.52 s
[really-safe-money-gen] @@ -129,4 +129,4 @@
1061.52 s
[really-safe-money-gen] -- | The factor to multiply by when converting currencies.
1061.52 s
[really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
1061.52 s
[really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
1061.52 s
[really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
1061.52 s
[really-safe-money-gen] + cr - fromIntegral qf2 / fromIntegral qf1
1061.52 s
[really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
1061.52 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1061.52 s
[really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
1061.52 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
1061.52 s
[really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
1061.52 s
[really-safe-money-gen] - compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
1061.52 s
[really-safe-money-gen] + compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] -- | The factor to multiply by when converting currencies.
1061.52 s
[really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
1061.52 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
1061.52 s
[really-safe-money-gen] @@ -113,7 +113,7 @@
1061.52 s
[really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
1061.52 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
1061.52 s
[really-safe-money-gen] invert :: ConversionRate -> ConversionRate
1061.52 s
[really-safe-money-gen] - invert (ConversionRate r) = ConversionRate ( 1 / r)
1061.52 s
[really-safe-money-gen] + invert (ConversionRate r) = ConversionRate ( 0 / r)
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] -- | Compose two conversion rates
1061.52 s
[really-safe-money-gen] --
1061.52 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:116:45-46
1061.52 s
[really-safe-money-gen] @@ -113,7 +113,7 @@
1061.52 s
[really-safe-money-gen] -- >>> invert (ConversionRate (1 % 2))
1061.52 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 2 % 1}
1061.52 s
[really-safe-money-gen] invert :: ConversionRate -> ConversionRate
1061.52 s
[really-safe-money-gen] - invert (ConversionRate r) = ConversionRate ( 1 / r)
1061.52 s
[really-safe-money-gen] + invert (ConversionRate r) = ConversionRate ( - 1 / r)
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] -- | Compose two conversion rates
1061.52 s
[really-safe-money-gen] --
1061.52 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
1061.52 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] -- | One-to-one conversion rate
1061.52 s
[really-safe-money-gen] oneToOne :: ConversionRate
1061.52 s
[really-safe-money-gen] - oneToOne = ConversionRate 1
1061.52 s
[really-safe-money-gen] + oneToOne = ConversionRate 0
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
1061.52 s
[really-safe-money-gen] --
1061.52 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:109:27-28
1061.52 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
1061.52 s
[really-safe-money-gen]
1061.52 s
[really-safe-money-gen] -- | One-to-one conversion rate
1061.52 s
[really-safe-money-gen] oneToOne :: ConversionRate
1061.52 s
[really-safe-money-gen] - oneToOne = ConversionRate 1
1061.52 s
[really-safe-money-gen] + oneToOne = ConversionRate - 1
1061.53 s
[really-safe-money-gen]
1061.53 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
1061.53 s
[really-safe-money-gen] --
1061.53 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/MultiAmount.hs:112:33-39
1061.53 s
[really-safe-money-gen] @@ -109,7 +109,7 @@
1061.53 s
[really-safe-money-gen]
1061.53 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1061.53 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1061.53 s
[really-safe-money-gen] - subtractAmount m _ (Amount 0) = J u s t m
1061.53 s
[really-safe-money-gen] + subtractAmount m _ (Amount 0) = No t h ing
1061.53 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1061.53 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1061.53 s
[really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
1061.53 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:101:22-37
1061.53 s
[really-safe-money-gen] @@ -98,14 +98,13 @@
1061.53 s
[really-safe-money-gen] addAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1061.53 s
[really-safe-money-gen] addAmount m _ (Amount 0) = Just m
1061.53 s
[really-safe-money-gen] addAmount (MultiAmount m) currency amount =
1061.53 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1061.53 s
[really-safe-money-gen] - Nothing -> Just $ M.insert currency amount m
1061.53 s
[really-safe-money-gen] Just a -> do
1061.53 s
[really-safe-money-gen] r <- Amount.add a amount
1061.53 s
[really-safe-money-gen] Just $
1061.53 s
[really-safe-money-gen] if r == Amount.zero
1061.53 s
[really-safe-money-gen] then M.delete currency m
1061.53 s
[really-safe-money-gen] else M.insert currency r m
1061.53 s
[really-safe-money-gen]
1061.53 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1061.53 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1061.53 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:72:25-26
1061.53 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1061.53 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1061.53 s
[really-safe-money-gen] -- Nothing
1066.91 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1066.91 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1066.95 s
[really-safe-money-gen] + fromRational r = if r < 1 then Nothing else fromRatio (realToFrac r)
1066.95 s
[really-safe-money-gen]
1066.95 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1066.95 s
[really-safe-money-gen] --
1066.95 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:73:6-27
1066.95 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
1066.95 s
[really-safe-money-gen]
1066.95 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
1066.95 s
[really-safe-money-gen] fromAmount currency amount =
1066.96 s
[really-safe-money-gen] - if a m o unt == A mou n t.z e ro
1066.96 s
[really-safe-money-gen] + if F a ls e
1066.96 s
[really-safe-money-gen] then zero
1066.96 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
1066.96 s
[really-safe-money-gen]
1066.96 s
[really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:132:3-24
1066.96 s
[really-safe-money-gen] @@ -129,4 +129,4 @@
1066.96 s
[really-safe-money-gen] -- | The factor to multiply by when converting currencies.
1066.96 s
[really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
1066.96 s
[really-safe-money-gen] conversionFactor (QuantisationFactor qf1) (ConversionRate cr) (QuantisationFactor qf2) =
1066.96 s
[really-safe-money-gen] - cr * fromIntegral qf2 / fromIntegral qf1
1066.96 s
[really-safe-money-gen] + cr + fromIntegral qf2 / fromIntegral qf1
1066.96 s
[really-safe-money-gen] Testing mutation Arith at src/Money/ConversionRate.hs:127:70-79
1066.96 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1066.96 s
[really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
1066.96 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
1066.96 s
[really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
1066.96 s
[really-safe-money-gen] - compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
1066.96 s
[really-safe-money-gen] + compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 - cr2
1066.96 s
[really-safe-money-gen]
1066.96 s
[really-safe-money-gen] -- | The factor to multiply by when converting currencies.
1066.96 s
[really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
1066.96 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:66:13-29
1066.96 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1066.96 s
[really-safe-money-gen] [ genericValidate ma,
1066.96 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1066.96 s
[really-safe-money-gen] declare "The amount is not zero" $
1066.96 s
[really-safe-money-gen] - a /= Amount.zero
1066.96 s
[really-safe-money-gen] + n o t ( a /= Amount.zero )
1066.96 s
[really-safe-money-gen] ]
1066.96 s
[really-safe-money-gen]
1066.96 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1066.96 s
[really-safe-money-gen] Testing mutation Negate at src/Money/MultiAmount.hs:73:6-27
1066.96 s
[really-safe-money-gen] @@ -70,7 +70,7 @@
1066.96 s
[really-safe-money-gen]
1066.96 s
[really-safe-money-gen] fromAmount :: currency -> Amount -> MultiAmount currency
1066.96 s
[really-safe-money-gen] fromAmount currency amount =
1066.96 s
[really-safe-money-gen] - if amount == Amount.zero
1066.96 s
[really-safe-money-gen] + if n o t ( amount == Amount.zero )
1066.96 s
[really-safe-money-gen] then zero
1066.96 s
[really-safe-money-gen] else MultiAmount $ M.singleton currency amount
1066.96 s
[really-safe-money-gen]
1066.96 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/MultiAmount.hs:114:22-37
1066.96 s
[really-safe-money-gen] @@ -111,14 +111,8 @@
1066.96 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1066.96 s
[really-safe-money-gen] subtractAmount m _ (Amount 0) = Just m
1066.96 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1066.96 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1066.96 s
[really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
1066.96 s
[really-safe-money-gen] - Just a -> do
1066.96 s
[really-safe-money-gen] - r <- Amount.subtract a amount
1066.96 s
[really-safe-money-gen] - Just $
1066.96 s
[really-safe-money-gen] - if r == Amount.zero
1066.96 s
[really-safe-money-gen] - then M.delete currency m
1066.96 s
[really-safe-money-gen] - else M.insert currency r m
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] -- | Try to convert every amount to one currency.
1066.97 s
[really-safe-money-gen] --
1066.97 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/MultiAmount.hs:63:7-8
1066.97 s
[really-safe-money-gen] @@ -60,11 +60,10 @@
1066.97 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1066.97 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1066.97 s
[really-safe-money-gen] mconcat
1066.97 s
[really-safe-money-gen] - [ genericValidate ma,
1066.97 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1066.97 s
[really-safe-money-gen] declare "The amount is not zero" $
1066.97 s
[really-safe-money-gen] a /= Amount.zero
1066.97 s
[really-safe-money-gen] ]
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
1066.97 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1066.97 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1066.97 s
[really-safe-money-gen] -- Nothing
1066.97 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1066.97 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1066.97 s
[really-safe-money-gen] + fromRational r = if Fal s e then Nothing else fromRatio (realToFrac r)
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1066.97 s
[really-safe-money-gen] --
1066.97 s
[really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:72:21-26
1066.97 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1066.97 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1066.97 s
[really-safe-money-gen] -- Nothing
1066.97 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1066.97 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1066.97 s
[really-safe-money-gen] + fromRational r = if n o t ( r < 0 ) then Nothing else fromRatio (realToFrac r)
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1066.97 s
[really-safe-money-gen] --
1066.97 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
1066.97 s
[really-safe-money-gen] @@ -34,9 +34,7 @@
1066.97 s
[really-safe-money-gen] instance Validity ConversionRate where
1066.97 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1066.97 s
[really-safe-money-gen] mconcat
1066.97 s
[really-safe-money-gen] - [ genericValidate cr,
1066.97 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
1066.97 s
[really-safe-money-gen] ]
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] instance NFData ConversionRate
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/ConversionRate.hs:37:7-8
1066.97 s
[really-safe-money-gen] @@ -34,9 +34,8 @@
1066.97 s
[really-safe-money-gen] instance Validity ConversionRate where
1066.97 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1066.97 s
[really-safe-money-gen] mconcat
1066.97 s
[really-safe-money-gen] - [ genericValidate cr,
1066.97 s
[really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
1066.97 s
[really-safe-money-gen] ]
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] instance NFData ConversionRate
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
1066.97 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
1066.97 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1066.97 s
[really-safe-money-gen] mconcat
1066.97 s
[really-safe-money-gen] [ genericValidate cr,
1066.97 s
[really-safe-money-gen] - declare "The rate is nonzero" $ n u m e rato r r /= 0
1066.97 s
[really-safe-money-gen] + declare "The rate is nonzero" $ T r u e
1066.97 s
[really-safe-money-gen] ]
1066.97 s
[really-safe-money-gen]
1066.97 s
[really-safe-money-gen] instance NFData ConversionRate
1066.97 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
1066.97 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
1066.97 s
[really-safe-money-gen] fromDecimalLiteral dl = do
1066.97 s
[really-safe-money-gen] irat <-
1066.97 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
1066.97 s
[really-safe-money-gen] - in if n u m e rato r r == 0
1066.98 s
[really-safe-money-gen] + in if T r u e
1066.98 s
[really-safe-money-gen] then Nothing
1066.98 s
[really-safe-money-gen] else pure r
1066.98 s
[really-safe-money-gen]
1066.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:87:12-28
1066.98 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
1066.98 s
[really-safe-money-gen] fromDecimalLiteral dl = do
1066.98 s
[really-safe-money-gen] irat <-
1066.98 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
1066.98 s
[really-safe-money-gen] - in if n u m er a t or r == 0
1066.98 s
[really-safe-money-gen] + in if F a l s e
1066.98 s
[really-safe-money-gen] then Nothing
1066.98 s
[really-safe-money-gen] else pure r
1066.98 s
[really-safe-money-gen]
1066.98 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:87:12-28
1066.98 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
1066.98 s
[really-safe-money-gen] fromDecimalLiteral dl = do
1066.98 s
[really-safe-money-gen] irat <-
1066.98 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
1066.98 s
[really-safe-money-gen] - in if numerator r == 0
1066.98 s
[really-safe-money-gen] + in if n o t ( numerator r == 0 )
1066.98 s
[really-safe-money-gen] then Nothing
1066.98 s
[really-safe-money-gen] else pure r
1066.98 s
[really-safe-money-gen]
1066.98 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
1066.98 s
[really-safe-money-gen] @@ -89,7 +89,7 @@
1066.98 s
[really-safe-money-gen] else pure r
1066.98 s
[really-safe-money-gen]
1066.98 s
[really-safe-money-gen] rat <-
1066.98 s
[really-safe-money-gen] - let r = 1 / irat
1066.98 s
[really-safe-money-gen] + let r = 0 / irat
1066.98 s
[really-safe-money-gen] in if r < 0
1066.98 s
[really-safe-money-gen] then Nothing
1066.98 s
[really-safe-money-gen] else Just r
1066.98 s
[really-safe-money-gen] Testing mutation Negate at src/Money/ConversionRate.hs:38:41-57
1066.98 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
1066.98 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1066.98 s
[really-safe-money-gen] mconcat
1066.98 s
[really-safe-money-gen] [ genericValidate cr,
1066.98 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
1066.98 s
[really-safe-money-gen] + declare "The rate is nonzero" $ n o t ( numerator r /= 0 )
1066.98 s
[really-safe-money-gen] ]
1066.98 s
[really-safe-money-gen]
1066.98 s
[really-safe-money-gen] instance NFData ConversionRate
1066.98 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:38:41-57
1066.98 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
1066.98 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1066.98 s
[really-safe-money-gen] mconcat
1066.98 s
[really-safe-money-gen] [ genericValidate cr,
1066.98 s
[really-safe-money-gen] - declare "The rate is nonzero" $ n u m er a t or r /= 0
1074.14 s
[really-safe-money-gen] + declare "The rate is nonzero" $ F a l s e
1074.14 s
[really-safe-money-gen] ]
1074.17 s
[really-safe-money-gen]
1074.17 s
[really-safe-money-gen] instance NFData ConversionRate
1074.17 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:87:27-28
1074.17 s
[really-safe-money-gen] @@ -84,7 +84,7 @@
1074.17 s
[really-safe-money-gen] fromDecimalLiteral dl = do
1074.17 s
[really-safe-money-gen] irat <-
1074.17 s
[really-safe-money-gen] let r = DecimalLiteral.toRational dl
1074.17 s
[really-safe-money-gen] - in if numerator r == 0
1074.17 s
[really-safe-money-gen] + in if numerator r == 1
1074.17 s
[really-safe-money-gen] then Nothing
1074.17 s
[really-safe-money-gen] else pure r
1074.17 s
[really-safe-money-gen]
1074.17 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
1074.17 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1074.17 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1074.17 s
[really-safe-money-gen] -- Nothing
1074.17 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1074.17 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1074.17 s
[really-safe-money-gen] + fromRational r = if r > 0 then Nothing else fromRatio (realToFrac r)
1074.17 s
[really-safe-money-gen]
1074.17 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1074.17 s
[really-safe-money-gen] --
1074.17 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
1074.17 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1074.17 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1074.17 s
[really-safe-money-gen] -- Nothing
1074.17 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1074.17 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1074.17 s
[really-safe-money-gen] + fromRational r = if r > = 0 then Nothing else fromRatio (realToFrac r)
1074.17 s
[really-safe-money-gen]
1074.17 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1074.17 s
[really-safe-money-gen] --
1074.17 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/ConversionRate.hs:72:21-26
1074.17 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1074.17 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1074.17 s
[really-safe-money-gen] -- Nothing
1074.18 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1074.18 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1074.18 s
[really-safe-money-gen] + fromRational r = if r < = 0 then Nothing else fromRatio (realToFrac r)
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1074.18 s
[really-safe-money-gen] --
1074.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/ConversionRate.hs:38:56-57
1074.18 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
1074.18 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1074.18 s
[really-safe-money-gen] mconcat
1074.18 s
[really-safe-money-gen] [ genericValidate cr,
1074.18 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
1074.18 s
[really-safe-money-gen] + declare "The rate is nonzero" $ numerator r /= 1
1074.18 s
[really-safe-money-gen] ]
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] instance NFData ConversionRate
1074.18 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/ConversionRate.hs:72:21-26
1074.18 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1074.18 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1074.18 s
[really-safe-money-gen] -- Nothing
1074.18 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1074.18 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1074.18 s
[really-safe-money-gen] + fromRational r = if T r u e then Nothing else fromRatio (realToFrac r)
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1074.18 s
[really-safe-money-gen] --
1074.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
1074.18 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
1074.18 s
[really-safe-money-gen] else Just r
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] fac <-
1074.18 s
[really-safe-money-gen] - if denominator rat == 1
1074.18 s
[really-safe-money-gen] + if denominator rat == 0
1074.18 s
[really-safe-money-gen] then Just (numerator rat)
1074.18 s
[really-safe-money-gen] else Nothing
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:98:27-28
1074.18 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
1074.18 s
[really-safe-money-gen] else Just r
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] fac <-
1074.18 s
[really-safe-money-gen] - if denominator rat == 1
1074.18 s
[really-safe-money-gen] + if denominator rat == - 1
1074.18 s
[really-safe-money-gen] then Just (numerator rat)
1074.18 s
[really-safe-money-gen] else Nothing
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:95:16-22
1074.18 s
[really-safe-money-gen] @@ -92,7 +92,7 @@
1074.18 s
[really-safe-money-gen] let r = 1 / irat
1074.18 s
[really-safe-money-gen] in if r < 0
1074.18 s
[really-safe-money-gen] then Nothing
1074.18 s
[really-safe-money-gen] - else J u s t r
1074.18 s
[really-safe-money-gen] + else No t h ing
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] fac <-
1074.18 s
[really-safe-money-gen] if denominator rat == 1
1074.18 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
1074.18 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] rat <-
1074.18 s
[really-safe-money-gen] let r = 1 / irat
1074.18 s
[really-safe-money-gen] - in if r < 0
1074.18 s
[really-safe-money-gen] + in if r > 0
1074.18 s
[really-safe-money-gen] then Nothing
1074.18 s
[really-safe-money-gen] else Just r
1074.18 s
[really-safe-money-gen]
1074.18 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:93:16-17
1074.19 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] let r = 1 / irat
1074.19 s
[really-safe-money-gen] - in if r < 0
1074.19 s
[really-safe-money-gen] + in if r < 1
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:93:12-17
1074.19 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] let r = 1 / irat
1074.19 s
[really-safe-money-gen] - in if r < 0
1074.19 s
[really-safe-money-gen] + in if n o t ( r < 0 )
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
1074.19 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] let r = 1 / irat
1074.19 s
[really-safe-money-gen] - in if r < 0
1074.19 s
[really-safe-money-gen] + in if r < = 0
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
1074.19 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] let r = 1 / irat
1074.19 s
[really-safe-money-gen] - in if r < 0
1074.19 s
[really-safe-money-gen] + in if T r ue
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:98:8-28
1074.19 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] fac <-
1074.19 s
[really-safe-money-gen] - if denominator rat == 1
1074.19 s
[really-safe-money-gen] + if n o t ( denominator rat == 1 )
1074.19 s
[really-safe-money-gen] then Just (numerator rat)
1074.19 s
[really-safe-money-gen] else Nothing
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:93:12-17
1074.19 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] let r = 1 / irat
1074.19 s
[really-safe-money-gen] - in if r < 0
1074.19 s
[really-safe-money-gen] + in if r > = 0
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
1074.19 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1074.19 s
[really-safe-money-gen] then Just (numerator rat)
1074.19 s
[really-safe-money-gen] else Nothing
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] - if fac < = fromIntegral (maxBound :: Word32)
1074.19 s
[really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
1074.19 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1074.19 s
[really-safe-money-gen] else Nothing
1074.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:93:12-17
1074.19 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] let r = 1 / irat
1074.19 s
[really-safe-money-gen] - in if r < 0
1074.19 s
[really-safe-money-gen] + in if False
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
1074.19 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] fac <-
1074.19 s
[really-safe-money-gen] - if d e n omi n a t or rat == 1
1074.19 s
[really-safe-money-gen] + if F a lse
1074.19 s
[really-safe-money-gen] then Just (numerator rat)
1074.19 s
[really-safe-money-gen] else Nothing
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:99:12-32
1074.19 s
[really-safe-money-gen] @@ -96,7 +96,7 @@
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] fac <-
1074.19 s
[really-safe-money-gen] if denominator rat == 1
1074.19 s
[really-safe-money-gen] - then J u s t ( n u m erator rat)
1074.19 s
[really-safe-money-gen] + then No t hi n g
1074.19 s
[really-safe-money-gen] else Nothing
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
1074.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:98:8-28
1074.19 s
[really-safe-money-gen] @@ -95,7 +95,7 @@
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] fac <-
1074.19 s
[really-safe-money-gen] - if d e nom inato r r a t == 1
1074.19 s
[really-safe-money-gen] + if T r ue
1074.19 s
[really-safe-money-gen] then Just (numerator rat)
1074.19 s
[really-safe-money-gen] else Nothing
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:92:13-14
1074.19 s
[really-safe-money-gen] @@ -89,7 +89,7 @@
1074.19 s
[really-safe-money-gen] else pure r
1074.19 s
[really-safe-money-gen]
1074.19 s
[really-safe-money-gen] rat <-
1074.19 s
[really-safe-money-gen] - let r = 1 / irat
1074.19 s
[really-safe-money-gen] + let r = - 1 / irat
1074.19 s
[really-safe-money-gen] in if r < 0
1074.19 s
[really-safe-money-gen] then Nothing
1074.19 s
[really-safe-money-gen] else Just r
1074.19 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/MultiAmount.hs:66:13-29
1074.19 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1074.19 s
[really-safe-money-gen] [ genericValidate ma,
1074.19 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1074.19 s
[really-safe-money-gen] declare "The amount is not zero" $
1074.19 s
[really-safe-money-gen] - a / = A mo u nt .z e ro
1080.54 s
[really-safe-money-gen] + Tr u e
1080.54 s
[really-safe-money-gen] ]
1080.60 s
[really-safe-money-gen]
1080.60 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1080.60 s
[really-safe-money-gen] Testing mutation ConstBool at src/Numeric/DecimalLiteral.hs:119:22-42
1080.60 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1080.60 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1080.60 s
[really-safe-money-gen] decimalLiteralP = do
1080.60 s
[really-safe-money-gen] let isSignChar :: Char -> Bool
1080.60 s
[really-safe-money-gen] - isSignChar c = c == '- ' | | c = = ' + '
1080.60 s
[really-safe-money-gen] + isSignChar c = T rue
1080.60 s
[really-safe-money-gen]
1080.60 s
[really-safe-money-gen] mSign <- ReadP.option Nothing $ do
1080.60 s
[really-safe-money-gen] signChar <- ReadP.satisfy isSignChar
1080.60 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
1080.60 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1080.60 s
[really-safe-money-gen] then Just (numerator rat)
1080.60 s
[really-safe-money-gen] else Nothing
1080.60 s
[really-safe-money-gen]
1080.60 s
[really-safe-money-gen] - i f f a c <= f ro mInte g r a l (maxB o u n d : : Wor d 3 2)
1080.60 s
[really-safe-money-gen] + i f T r u e
1080.60 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1080.60 s
[really-safe-money-gen] else Nothing
1080.60 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
1080.60 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1080.60 s
[really-safe-money-gen] then Just (numerator rat)
1080.60 s
[really-safe-money-gen] else Nothing
1080.60 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] - if fac < = fromIntegral (maxBound :: Word32)
1080.61 s
[really-safe-money-gen] + if fac > = fromIntegral (maxBound :: Word32)
1080.61 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
1080.61 s
[really-safe-money-gen] @@ -64,7 +64,7 @@
1080.61 s
[really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
1080.61 s
[really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
1080.61 s
[really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
1080.61 s
[really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational ( 1 % fromIntegral qfw)
1080.61 s
[really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational ( - 1 % fromIntegral qfw)
1080.61 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
1080.61 s
[really-safe-money-gen] -- TODO explain that it's the inverse.
1080.61 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:40:62-63
1080.61 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
1080.61 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1080.61 s
[really-safe-money-gen] mconcat
1080.61 s
[really-safe-money-gen] [ genericValidate qf,
1080.61 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1080.61 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ w /= 1
1080.61 s
[really-safe-money-gen] ]
1080.61 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] instance NFData QuantisationFactor
1080.61 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/QuantisationFactor.hs:102:6-46
1080.61 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1080.61 s
[really-safe-money-gen] then Just (numerator rat)
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] - if fac < = fromIntegral (maxBound :: Word32)
1080.61 s
[really-safe-money-gen] + if fac > fromIntegral (maxBound :: Word32)
1080.61 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen] Testing mutation IntLit at src/Money/QuantisationFactor.hs:67:67-68
1080.61 s
[really-safe-money-gen] @@ -64,7 +64,7 @@
1080.61 s
[really-safe-money-gen] -- Just (DecimalLiteral Nothing 1 0)
1080.61 s
[really-safe-money-gen] toDecimalLiteral :: QuantisationFactor -> Maybe DecimalLiteral
1080.61 s
[really-safe-money-gen] toDecimalLiteral (QuantisationFactor qfw) =
1080.61 s
[really-safe-money-gen] - DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational ( 1 % fromIntegral qfw)
1080.61 s
[really-safe-money-gen] + DecimalLiteral.setSignOptional <$> DecimalLiteral.fromRational ( 0 % fromIntegral qfw)
1080.61 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] -- | Parse a 'QuantisationFactor' from a 'DecimalLiteral' that represents the smallest unit
1080.61 s
[really-safe-money-gen] -- TODO explain that it's the inverse.
1080.61 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:102:6-46
1080.61 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1080.61 s
[really-safe-money-gen] then Just (numerator rat)
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] - if fac <= fromIntegral (maxBound :: Word32)
1080.61 s
[really-safe-money-gen] + if n o t ( fac <= fromIntegral (maxBound :: Word32) )
1080.61 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen] Testing mutation MaybeOp at src/Money/QuantisationFactor.hs:103:10-54
1080.61 s
[really-safe-money-gen] @@ -100,5 +100,5 @@
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen]
1080.61 s
[really-safe-money-gen] if fac <= fromIntegral (maxBound :: Word32)
1080.61 s
[really-safe-money-gen] - then J u st ( Quant isa t i o n F a ct or (fromInt e g r a l fac))
1080.61 s
[really-safe-money-gen] + then No t h i n g
1080.61 s
[really-safe-money-gen] else Nothing
1080.61 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:102:6-46
1080.62 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1080.62 s
[really-safe-money-gen] then Just (numerator rat)
1080.62 s
[really-safe-money-gen] else Nothing
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] - if f a c <= fr omInt e gral (maxBound :: Word32)
1080.62 s
[really-safe-money-gen] + if F a ls e
1080.62 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1080.62 s
[really-safe-money-gen] else Nothing
1080.62 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
1080.62 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
1080.62 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1080.62 s
[really-safe-money-gen] mconcat
1080.62 s
[really-safe-money-gen] [ genericValidate qf,
1080.62 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1080.62 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ Tru e
1080.62 s
[really-safe-money-gen] ]
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] instance NFData QuantisationFactor
1080.62 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
1080.62 s
[really-safe-money-gen] @@ -36,9 +36,8 @@
1080.62 s
[really-safe-money-gen] instance Validity QuantisationFactor where
1080.62 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1080.62 s
[really-safe-money-gen] mconcat
1080.62 s
[really-safe-money-gen] - [ genericValidate qf,
1080.62 s
[really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
1080.62 s
[really-safe-money-gen] ]
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] instance NFData QuantisationFactor
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1080.62 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1080.62 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1080.62 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1080.62 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1080.62 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1080.62 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1080.62 s
[really-safe-money-gen] - DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1080.62 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1080.62 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1080.62 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1080.62 s
[really-safe-money-gen] - DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1080.62 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1080.62 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1080.62 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/QuantisationFactor.hs:39:7-8
1080.62 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
1080.62 s
[really-safe-money-gen] instance Validity QuantisationFactor where
1080.62 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1080.62 s
[really-safe-money-gen] mconcat
1080.62 s
[really-safe-money-gen] - [ genericValidate qf,
1080.62 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1080.62 s
[really-safe-money-gen] ]
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] instance NFData QuantisationFactor
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] Testing mutation Negate at src/Money/QuantisationFactor.hs:40:57-63
1080.62 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
1080.62 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1080.62 s
[really-safe-money-gen] mconcat
1080.62 s
[really-safe-money-gen] [ genericValidate qf,
1080.62 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1080.62 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ n o t ( w /= 0 )
1080.62 s
[really-safe-money-gen] ]
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] instance NFData QuantisationFactor
1080.62 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1080.62 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1080.62 s
[really-safe-money-gen]
1080.62 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1080.62 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1080.62 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1080.62 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1081.47 s
[really-safe-money-gen] - DistributedZero -> DistributedZero
1081.47 s
[really-safe-money-gen] DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1081.47 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1081.48 s
[really-safe-money-gen]
1081.48 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1081.48 s
[really-safe-money-gen]
1081.48 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/AmountOf.hs:215:29-113
1081.48 s
[really-safe-money-gen] @@ -212,11 +212,10 @@
1081.48 s
[really-safe-money-gen]
1081.48 s
[really-safe-money-gen] -- | See 'Amount.distribute'
1081.48 s
[really-safe-money-gen] distribute :: AmountOf currency -> Word32 -> AmountDistributionOf currency
1081.48 s
[really-safe-money-gen] distribute (AmountOf a) f = case Amount.distribute a f of
1081.48 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1081.48 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1081.48 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAmount a')
1081.48 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAmount a1) w2 (fromAmount a2)
1081.48 s
[really-safe-money-gen]
1081.48 s
[really-safe-money-gen] type AmountDistributionOf (currency :: k) = Distribution (AmountOf currency)
1081.48 s
[really-safe-money-gen]
1081.48 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
1081.48 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1081.48 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1081.48 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.48 s
[really-safe-money-gen] else
1081.48 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1081.48 s
[really-safe-money-gen] + if (i :: Integer) > = toInteger (maxBound :: Word64)
1081.48 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.48 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.48 s
[really-safe-money-gen] g :: Amount -> String
1081.48 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
1081.48 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1081.48 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1081.48 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.48 s
[really-safe-money-gen] else
1081.48 s
[really-safe-money-gen] - if ( i :: Intege r ) > t oIn t e g er (maxBound :: Word64)
1081.48 s
[really-safe-money-gen] + if T r u e
1081.48 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.48 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.48 s
[really-safe-money-gen] g :: Amount -> String
1081.48 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:52:16-63
1081.48 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1081.48 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1081.48 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.48 s
[really-safe-money-gen] else
1081.48 s
[really-safe-money-gen] - if ( i :: Intege r) > toInteg er ( m a xBo u n d :: Word64)
1081.48 s
[really-safe-money-gen] + if F a l s e
1081.48 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.48 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.48 s
[really-safe-money-gen] g :: Amount -> String
1081.48 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:52:16-63
1081.49 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1081.49 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.49 s
[really-safe-money-gen] else
1081.49 s
[really-safe-money-gen] - if ( i :: Integer) > toInteger (maxBound :: Word64)
1081.49 s
[really-safe-money-gen] + if n o t ( ( i :: Integer) > toInteger (maxBound :: Word64) )
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.49 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.49 s
[really-safe-money-gen] g :: Amount -> String
1081.49 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
1081.49 s
[really-safe-money-gen] @@ -50,7 +50,6 @@
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.49 s
[really-safe-money-gen] else
1081.49 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1081.49 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.49 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.49 s
[really-safe-money-gen] g :: Amount -> String
1081.49 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1081.49 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:53:35-90
1081.49 s
[really-safe-money-gen] @@ -50,7 +50,6 @@
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.49 s
[really-safe-money-gen] else
1081.49 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1081.49 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.49 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.49 s
[really-safe-money-gen] g :: Amount -> String
1081.49 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1081.49 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
1081.49 s
[really-safe-money-gen] @@ -43,15 +43,14 @@
1081.49 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
1081.49 s
[really-safe-money-gen] where
1081.49 s
[really-safe-money-gen] f :: String -> Either String Amount
1081.49 s
[really-safe-money-gen] f s = case readMaybe s of
1081.49 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1081.49 s
[really-safe-money-gen] Just i ->
1081.49 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.49 s
[really-safe-money-gen] else
1081.49 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.49 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.49 s
[really-safe-money-gen] g :: Amount -> String
1081.49 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1081.49 s
[really-safe-money-gen]
1081.49 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Amount/Codec.hs:46:11-86
1081.49 s
[really-safe-money-gen] @@ -43,15 +43,8 @@
1081.49 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Amount"
1081.49 s
[really-safe-money-gen] where
1081.49 s
[really-safe-money-gen] f :: String -> Either String Amount
1081.49 s
[really-safe-money-gen] f s = case readMaybe s of
1081.49 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1081.49 s
[really-safe-money-gen] - Just i ->
1081.49 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1081.49 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.49 s
[really-safe-money-gen] - else
1081.49 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1081.49 s
[really-safe-money-gen] - then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1081.49 s
[really-safe-money-gen] - else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1081.49 s
[really-safe-money-gen] g :: Amount -> String
1081.49 s
[really-safe-money-gen] g = show . Amount.toMinimalQuantisations
1081.49 s
[really-safe-money-gen]
1081.49 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
1081.49 s
[really-safe-money-gen] @@ -48,7 +48,6 @@
1081.49 s
[really-safe-money-gen] where
1081.49 s
[really-safe-money-gen] f :: String -> Either String Account
1081.49 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1081.49 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1081.49 s
[really-safe-money-gen] Just a -> Right a
1081.49 s
[really-safe-money-gen] g :: Account -> String
1081.49 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1081.49 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Account/Codec.hs:51:33-76
1081.49 s
[really-safe-money-gen] @@ -48,7 +48,6 @@
1081.49 s
[really-safe-money-gen] where
1081.49 s
[really-safe-money-gen] f :: String -> Either String Account
1081.49 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1081.49 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1081.49 s
[really-safe-money-gen] Just a -> Right a
1081.49 s
[really-safe-money-gen] g :: Account -> String
1081.49 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1081.49 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
1081.49 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1081.49 s
[really-safe-money-gen] f s = case readMaybe s of
1081.49 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1081.49 s
[really-safe-money-gen] Just i ->
1081.49 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1081.49 s
[really-safe-money-gen] + if (i :: Integer) > toInteger (minBound :: Word64)
1081.49 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1081.49 s
[really-safe-money-gen] else
1081.49 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1081.49 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
1081.49 s
[really-safe-money-gen] @@ -76,6 +76,5 @@
1081.49 s
[really-safe-money-gen] <?> "Account"
1081.49 s
[really-safe-money-gen] where
1081.49 s
[really-safe-money-gen] f :: Integer -> Either String Account
1081.49 s
[really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
1081.49 s
[really-safe-money-gen] - Nothing -> Left $ "Number did not fit into an account value: " <> show i
1081.49 s
[really-safe-money-gen] Just a -> Right a
1081.49 s
[really-safe-money-gen] Testing mutation Negate at src/Money/Amount/Codec.hs:49:12-59
1082.10 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1082.11 s
[really-safe-money-gen] f s = case readMaybe s of
1082.11 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.11 s
[really-safe-money-gen] Just i ->
1082.11 s
[really-safe-money-gen] - if ( i :: Integer) < toInteger (minBound :: Word64)
1082.11 s
[really-safe-money-gen] + if n o t ( ( i :: Integer) < toInteger (minBound :: Word64) )
1082.11 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.11 s
[really-safe-money-gen] else
1082.11 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1082.11 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
1082.11 s
[really-safe-money-gen] @@ -44,7 +44,6 @@
1082.11 s
[really-safe-money-gen] where
1082.11 s
[really-safe-money-gen] f :: String -> Either String Amount
1082.11 s
[really-safe-money-gen] f s = case readMaybe s of
1082.11 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.11 s
[really-safe-money-gen] Just i ->
1082.11 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1082.11 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.11 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:79:11-24
1082.11 s
[really-safe-money-gen] @@ -76,6 +76,5 @@
1082.11 s
[really-safe-money-gen] <?> "Account"
1082.11 s
[really-safe-money-gen] where
1082.11 s
[really-safe-money-gen] f :: Integer -> Either String Account
1082.11 s
[really-safe-money-gen] f i = case Account.fromMinimalQuantisations i of
1082.11 s
[really-safe-money-gen] Nothing -> Left $ "Number did not fit into an account value: " <> show i
1082.11 s
[really-safe-money-gen] - Just a -> Right a
1082.11 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:47:33-75
1082.11 s
[really-safe-money-gen] @@ -44,7 +44,6 @@
1082.11 s
[really-safe-money-gen] where
1082.11 s
[really-safe-money-gen] f :: String -> Either String Amount
1082.11 s
[really-safe-money-gen] f s = case readMaybe s of
1082.11 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.11 s
[really-safe-money-gen] Just i ->
1082.11 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1082.11 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.11 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
1082.12 s
[really-safe-money-gen] @@ -47,9 +47,8 @@
1082.12 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
1082.12 s
[really-safe-money-gen] where
1082.12 s
[really-safe-money-gen] f :: String -> Either String Account
1082.12 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1082.12 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1082.12 s
[really-safe-money-gen] - Just a -> Right a
1082.12 s
[really-safe-money-gen] g :: Account -> String
1082.12 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1082.12 s
[really-safe-money-gen]
1082.12 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
1082.12 s
[really-safe-money-gen] @@ -37,5 +37,4 @@
1082.12 s
[really-safe-money-gen] where
1082.12 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1082.12 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1082.12 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1082.12 s
[really-safe-money-gen] Just a -> Right a
1082.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
1082.12 s
[really-safe-money-gen] @@ -36,6 +36,5 @@
1082.12 s
[really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
1082.12 s
[really-safe-money-gen] where
1082.12 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1082.12 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1082.12 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1082.12 s
[really-safe-money-gen] - Just a -> Right a
1082.12 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Numeric/DecimalLiteral/Codec.hs:39:11-24
1082.12 s
[really-safe-money-gen] @@ -36,6 +36,5 @@
1082.12 s
[really-safe-money-gen] codecViaString = bimapCodec f DecimalLiteral.toString stringCodec <?> "DecimalLiteral"
1082.12 s
[really-safe-money-gen] where
1082.12 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1082.12 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1082.12 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1082.12 s
[really-safe-money-gen] Just a -> Right a
1082.12 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
1082.12 s
[really-safe-money-gen] @@ -47,7 +47,6 @@
1082.12 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.12 s
[really-safe-money-gen] Just i ->
1082.12 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1082.12 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.12 s
[really-safe-money-gen] else
1082.12 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1082.12 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1082.13 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
1082.13 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1082.13 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1082.13 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.13 s
[really-safe-money-gen] else
1082.13 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1082.13 s
[really-safe-money-gen] + if (i :: Integer) < = toInteger (maxBound :: Word64)
1082.13 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1082.13 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1082.13 s
[really-safe-money-gen] g :: Amount -> String
1082.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
1082.13 s
[really-safe-money-gen] @@ -38,6 +38,5 @@
1082.13 s
[really-safe-money-gen] codec
1082.13 s
[really-safe-money-gen] <?> "QuantisationFactor"
1082.13 s
[really-safe-money-gen] where
1082.13 s
[really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
1082.13 s
[really-safe-money-gen] - Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
1082.13 s
[really-safe-money-gen] Just qf -> Right qf
1082.13 s
[really-safe-money-gen] Testing mutation ListLit at src/Numeric/DecimalLiteral/Codec.hs:40:33-82
1082.13 s
[really-safe-money-gen] @@ -37,5 +37,4 @@
1082.13 s
[really-safe-money-gen] where
1082.13 s
[really-safe-money-gen] f :: String -> Either String DecimalLiteral
1082.13 s
[really-safe-money-gen] f s = case DecimalLiteral.fromString s of
1082.13 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as a DecimalLiteral:", s]
1082.13 s
[really-safe-money-gen] Just a -> Right a
1082.13 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/QuantisationFactor/Codec.hs:41:11-26
1082.13 s
[really-safe-money-gen] @@ -38,6 +38,5 @@
1082.13 s
[really-safe-money-gen] codec
1082.13 s
[really-safe-money-gen] <?> "QuantisationFactor"
1082.13 s
[really-safe-money-gen] where
1082.13 s
[really-safe-money-gen] f w = case QuantisationFactor.fromWord32 w of
1082.13 s
[really-safe-money-gen] Nothing -> Left $ "Unable to parse as a quantisation factor: " <> show w
1082.13 s
[really-safe-money-gen] - Just qf -> Right qf
1082.13 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/QuantisationFactor.hs:40:57-63
1082.13 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
1082.13 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1082.13 s
[really-safe-money-gen] mconcat
1082.13 s
[really-safe-money-gen] [ genericValidate qf,
1082.13 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1082.13 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ F a lse
1082.13 s
[really-safe-money-gen] ]
1082.13 s
[really-safe-money-gen]
1082.13 s
[really-safe-money-gen] instance NFData QuantisationFactor
1082.13 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:52:16-63
1082.13 s
[really-safe-money-gen] @@ -49,7 +49,7 @@
1082.13 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1082.14 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.14 s
[really-safe-money-gen] else
1082.14 s
[really-safe-money-gen] - if (i :: Integer) > toInteger (maxBound :: Word64)
1082.14 s
[really-safe-money-gen] + if (i :: Integer) < toInteger (maxBound :: Word64)
1082.14 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1082.14 s
[really-safe-money-gen] else Right $ Amount.fromMinimalQuantisations (fromIntegral i :: Word64)
1082.14 s
[really-safe-money-gen] g :: Amount -> String
1082.14 s
[really-safe-money-gen] Testing mutation ListLit at src/Money/Amount/Codec.hs:50:31-84
1082.14 s
[really-safe-money-gen] @@ -47,7 +47,6 @@
1082.14 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.14 s
[really-safe-money-gen] Just i ->
1082.14 s
[really-safe-money-gen] if (i :: Integer) < toInteger (minBound :: Word64)
1082.14 s
[really-safe-money-gen] - then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.14 s
[really-safe-money-gen] else
1082.14 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1082.14 s
[really-safe-money-gen] then Left $ unwords ["Number of minimal quantisations is too big:", show i]
1082.14 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
1082.14 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1082.14 s
[really-safe-money-gen] f s = case readMaybe s of
1082.14 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.14 s
[really-safe-money-gen] Just i ->
1082.14 s
[really-safe-money-gen] - if ( i :: Intege r) < toInteg e r (m inBoun d :: Word64)
1082.14 s
[really-safe-money-gen] + if F al s e
1082.14 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.14 s
[really-safe-money-gen] else
1082.14 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1082.14 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
1082.14 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1082.14 s
[really-safe-money-gen] f s = case readMaybe s of
1082.14 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1082.14 s
[really-safe-money-gen] Just i ->
1082.14 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1082.14 s
[really-safe-money-gen] + if (i :: Integer) > = toInteger (minBound :: Word64)
1082.14 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1082.14 s
[really-safe-money-gen] else
1342.73 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: WKilled: 419
1342.76 s
[really-safe-money-gen] (of which timed out: 0 )
1342.76 s
[really-safe-money-gen] Survived: 65
1342.76 s
[really-safe-money-gen] Uncovered: 40
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] Surviving mutations:
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
1342.76 s
[really-safe-money-gen] @@ -36,9 +36,8 @@
1342.76 s
[really-safe-money-gen] instance Validity QuantisationFactor where
1342.76 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1342.76 s
[really-safe-money-gen] mconcat
1342.76 s
[really-safe-money-gen] - [ genericValidate qf,
1342.76 s
[really-safe-money-gen] declare "The quantisation factor is not zero" $ w /= 0
1342.76 s
[really-safe-money-gen] ]
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] instance NFData QuantisationFactor
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] ListLit at src/Money/QuantisationFactor.hs:39:7-8
1342.76 s
[really-safe-money-gen] @@ -36,9 +36,7 @@
1342.76 s
[really-safe-money-gen] instance Validity QuantisationFactor where
1342.76 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1342.76 s
[really-safe-money-gen] mconcat
1342.76 s
[really-safe-money-gen] - [ genericValidate qf,
1342.76 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1342.76 s
[really-safe-money-gen] ]
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] instance NFData QuantisationFactor
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] ConstBool at src/Money/QuantisationFactor.hs:40:57-63
1342.76 s
[really-safe-money-gen] @@ -37,7 +37,7 @@
1342.76 s
[really-safe-money-gen] validate qf@(QuantisationFactor w) =
1342.76 s
[really-safe-money-gen] mconcat
1342.76 s
[really-safe-money-gen] [ genericValidate qf,
1342.76 s
[really-safe-money-gen] - declare "The quantisation factor is not zero" $ w /= 0
1342.76 s
[really-safe-money-gen] + declare "The quantisation factor is not zero" $ Tru e
1342.76 s
[really-safe-money-gen] ]
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] instance NFData QuantisationFactor
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] Cmp at src/Money/QuantisationFactor.hs:102:6-46
1342.76 s
[really-safe-money-gen] @@ -99,6 +99,6 @@
1342.76 s
[really-safe-money-gen] then Just (numerator rat)
1342.76 s
[really-safe-money-gen] else Nothing
1342.76 s
[really-safe-money-gen]
1342.76 s
[really-safe-money-gen] - if fac < = fromIntegral (maxBound :: Word32)
1342.76 s
[really-safe-money-gen] + if fac < fromIntegral (maxBound :: Word32)
1342.76 s
[really-safe-money-gen] then Just (QuantisationFactor (fromIntegral fac))
1342.76 s
[really-safe-money-gen] else Nothing
1342.76 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] Cmp at src/Money/QuantisationFactor.hs:93:12-17
1342.77 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] rat <-
1342.77 s
[really-safe-money-gen] let r = 1 / irat
1342.77 s
[really-safe-money-gen] - in if r < 0
1342.77 s
[really-safe-money-gen] + in if r < = 0
1342.77 s
[really-safe-money-gen] then Nothing
1342.77 s
[really-safe-money-gen] else Just r
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] IntLit at src/Money/QuantisationFactor.hs:93:16-17
1342.77 s
[really-safe-money-gen] @@ -90,7 +90,7 @@
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] rat <-
1342.77 s
[really-safe-money-gen] let r = 1 / irat
1342.77 s
[really-safe-money-gen] - in if r < 0
1342.77 s
[really-safe-money-gen] + in if r < 1
1342.77 s
[really-safe-money-gen] then Nothing
1342.77 s
[really-safe-money-gen] else Just r
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
1342.77 s
[really-safe-money-gen] @@ -34,9 +34,8 @@
1342.77 s
[really-safe-money-gen] instance Validity ConversionRate where
1342.77 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1342.77 s
[really-safe-money-gen] mconcat
1342.77 s
[really-safe-money-gen] - [ genericValidate cr,
1342.77 s
[really-safe-money-gen] declare "The rate is nonzero" $ numerator r /= 0
1342.77 s
[really-safe-money-gen] ]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] instance NFData ConversionRate
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] ListLit at src/Money/ConversionRate.hs:37:7-8
1342.77 s
[really-safe-money-gen] @@ -34,9 +34,7 @@
1342.77 s
[really-safe-money-gen] instance Validity ConversionRate where
1342.77 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1342.77 s
[really-safe-money-gen] mconcat
1342.77 s
[really-safe-money-gen] - [ genericValidate cr,
1342.77 s
[really-safe-money-gen] - declare "The rate is nonzero" $ numerator r /= 0
1342.77 s
[really-safe-money-gen] ]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] instance NFData ConversionRate
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] ConstBool at src/Money/ConversionRate.hs:38:41-57
1342.77 s
[really-safe-money-gen] @@ -35,7 +35,7 @@
1342.77 s
[really-safe-money-gen] validate cr@(ConversionRate r) =
1342.77 s
[really-safe-money-gen] mconcat
1342.77 s
[really-safe-money-gen] [ genericValidate cr,
1342.77 s
[really-safe-money-gen] - declare "The rate is nonzero" $ n u m e rato r r /= 0
1342.77 s
[really-safe-money-gen] + declare "The rate is nonzero" $ T r u e
1342.77 s
[really-safe-money-gen] ]
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] instance NFData ConversionRate
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] Cmp at src/Money/ConversionRate.hs:72:21-26
1342.77 s
[really-safe-money-gen] @@ -69,7 +69,7 @@
1342.77 s
[really-safe-money-gen] -- >>> fromRational (0 % 1)
1342.77 s
[really-safe-money-gen] -- Nothing
1342.77 s
[really-safe-money-gen] fromRational :: Rational -> Maybe ConversionRate
1342.77 s
[really-safe-money-gen] - fromRational r = if r < 0 then Nothing else fromRatio (realToFrac r)
1342.77 s
[really-safe-money-gen] + fromRational r = if r < = 0 then Nothing else fromRatio (realToFrac r)
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] -- | Turn a 'ConversionRate' back into a 'Rational'
1342.77 s
[really-safe-money-gen] --
1342.77 s
[really-safe-money-gen]
1342.77 s
[really-safe-money-gen] IntLit at src/Money/ConversionRate.hs:109:27-28
1342.77 s
[really-safe-money-gen] @@ -106,7 +106,7 @@
1342.77 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] -- | One-to-one conversion rate
1342.78 s
[really-safe-money-gen] oneToOne :: ConversionRate
1342.78 s
[really-safe-money-gen] - oneToOne = ConversionRate 1
1342.78 s
[really-safe-money-gen] + oneToOne = ConversionRate 0
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] -- | Invert a 'ConversionRate', to convert in the other direction.
1342.78 s
[really-safe-money-gen] --
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] Arith at src/Money/ConversionRate.hs:127:70-79
1342.78 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1342.78 s
[really-safe-money-gen] -- >>> compose (ConversionRate (2 % 1)) (ConversionRate (1 % 2))
1342.78 s
[really-safe-money-gen] -- ConversionRate {unConversionRate = 1 % 1}
1342.78 s
[really-safe-money-gen] compose :: ConversionRate -> ConversionRate -> ConversionRate
1342.78 s
[really-safe-money-gen] - compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 * cr2
1342.78 s
[really-safe-money-gen] + compose (ConversionRate cr1) (ConversionRate cr2) = ConversionRate $ cr1 + cr2
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] -- | The factor to multiply by when converting currencies.
1342.78 s
[really-safe-money-gen] conversionFactor :: QuantisationFactor -> ConversionRate -> QuantisationFactor -> Ratio Natural
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
1342.78 s
[really-safe-money-gen] @@ -60,11 +60,10 @@
1342.78 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1342.78 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1342.78 s
[really-safe-money-gen] mconcat
1342.78 s
[really-safe-money-gen] - [ genericValidate ma,
1342.78 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1342.78 s
[really-safe-money-gen] declare "The amount is not zero" $
1342.78 s
[really-safe-money-gen] a /= Amount.zero
1342.78 s
[really-safe-money-gen] ]
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] ListLit at src/Money/MultiAmount.hs:63:7-8
1342.78 s
[really-safe-money-gen] @@ -60,11 +60,7 @@
1342.78 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAmount currency) where
1342.78 s
[really-safe-money-gen] validate ma@(MultiAmount m) =
1342.78 s
[really-safe-money-gen] mconcat
1342.78 s
[really-safe-money-gen] - [ genericValidate ma,
1342.78 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1342.78 s
[really-safe-money-gen] - declare "The amount is not zero" $
1342.78 s
[really-safe-money-gen] - a /= Amount.zero
1342.78 s
[really-safe-money-gen] ]
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:66:13-29
1342.78 s
[really-safe-money-gen] @@ -63,7 +63,7 @@
1342.78 s
[really-safe-money-gen] [ genericValidate ma,
1342.78 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1342.78 s
[really-safe-money-gen] declare "The amount is not zero" $
1342.78 s
[really-safe-money-gen] - a / = A mo u nt .z e ro
1342.78 s
[really-safe-money-gen] + Tr u e
1342.78 s
[really-safe-money-gen] ]
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] instance (NFData currency) => NFData (MultiAmount currency)
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:106:12-28
1342.78 s
[really-safe-money-gen] @@ -103,7 +103,7 @@
1342.78 s
[really-safe-money-gen] Just a -> do
1342.78 s
[really-safe-money-gen] r <- Amount.add a amount
1342.78 s
[really-safe-money-gen] Just $
1342.78 s
[really-safe-money-gen] - if r == A mount .z e ro
1342.78 s
[really-safe-money-gen] + if Fal s e
1342.78 s
[really-safe-money-gen] then M.delete currency m
1342.78 s
[really-safe-money-gen] else M.insert currency r m
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen]
1342.78 s
[really-safe-money-gen] Negate at src/Money/MultiAmount.hs:119:12-28
1342.78 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1342.78 s
[really-safe-money-gen] Just a -> do
1342.78 s
[really-safe-money-gen] r <- Amount.subtract a amount
1342.78 s
[really-safe-money-gen] Just $
1342.78 s
[really-safe-money-gen] - if r == Amount.zero
1342.78 s
[really-safe-money-gen] + if n o t ( r == Amount.zero )
1342.78 s
[really-safe-money-gen] then M.delete currency m
1342.79 s
[really-safe-money-gen] else M.insert currency r m
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
1342.79 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1342.79 s
[really-safe-money-gen] Just a -> do
1342.79 s
[really-safe-money-gen] r <- Amount.subtract a amount
1342.79 s
[really-safe-money-gen] Just $
1342.79 s
[really-safe-money-gen] - if r == A mount .z e ro
1342.79 s
[really-safe-money-gen] + if Fal s e
1342.79 s
[really-safe-money-gen] then M.delete currency m
1342.79 s
[really-safe-money-gen] else M.insert currency r m
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] ConstBool at src/Money/MultiAmount.hs:119:12-28
1342.79 s
[really-safe-money-gen] @@ -116,7 +116,7 @@
1342.79 s
[really-safe-money-gen] Just a -> do
1342.79 s
[really-safe-money-gen] r <- Amount.subtract a amount
1342.79 s
[really-safe-money-gen] Just $
1342.79 s
[really-safe-money-gen] - if r == Am o u n t. z e r o
1342.79 s
[really-safe-money-gen] + if T r u e
1342.79 s
[really-safe-money-gen] then M.delete currency m
1342.79 s
[really-safe-money-gen] else M.insert currency r m
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAmount.hs:112:33-39
1342.79 s
[really-safe-money-gen] @@ -109,7 +109,7 @@
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] -- | Subtract an 'Amount' from a 'MultiAmount'
1342.79 s
[really-safe-money-gen] subtractAmount :: (Ord currency) => MultiAmount currency -> currency -> Amount -> Maybe (MultiAmount currency)
1342.79 s
[really-safe-money-gen] - subtractAmount m _ (Amount 0) = J u s t m
1342.79 s
[really-safe-money-gen] + subtractAmount m _ (Amount 0) = No t h ing
1342.79 s
[really-safe-money-gen] subtractAmount (MultiAmount m) currency amount =
1342.79 s
[really-safe-money-gen] fmap MultiAmount $ case M.lookup currency m of
1342.79 s
[really-safe-money-gen] Nothing -> Nothing -- Can't go below zero
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] Cmp at src/Money/MultiAmount.hs:168:20-45
1342.79 s
[really-safe-money-gen] @@ -165,7 +165,7 @@
1342.79 s
[really-safe-money-gen] maxBoundN :: Natural
1342.79 s
[really-safe-money-gen] maxBoundN = fromIntegral (maxBound :: Word64)
1342.79 s
[really-safe-money-gen] actualResult =
1342.79 s
[really-safe-money-gen] - if roundedResult > maxBoundN
1342.79 s
[really-safe-money-gen] + if roundedResult > = maxBoundN
1342.79 s
[really-safe-money-gen] then Nothing
1342.79 s
[really-safe-money-gen] else Just (fromIntegral roundedResult)
1342.79 s
[really-safe-money-gen] rounded = case compare (fromIntegral roundedResult) theoreticalResult of
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] RemoveCase at src/Money/AccountOf.hs:180:30-115
1342.79 s
[really-safe-money-gen] @@ -177,11 +177,10 @@
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] -- | See 'Account.distribute'
1342.79 s
[really-safe-money-gen] distribute :: AccountOf currency -> Word16 -> AccountDistributionOf currency
1342.79 s
[really-safe-money-gen] distribute (AccountOf a) w = case Account.distribute a w of
1342.79 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1342.79 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1342.79 s
[really-safe-money-gen] - DistributedIntoEqualChunks w' a' -> DistributedIntoEqualChunks w' (fromAccount a')
1342.79 s
[really-safe-money-gen] DistributedIntoUnequalChunks w1 a1 w2 a2 -> DistributedIntoUnequalChunks w1 (fromAccount a1) w2 (fromAccount a2)
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] -- | The result of 'distribute'
1342.79 s
[really-safe-money-gen] type AccountDistributionOf (currency :: k) = Distribution (AccountOf currency)
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:112:17-21
1342.79 s
[really-safe-money-gen] @@ -109,9 +109,8 @@
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] -- | Like 'fromString' but in a 'MonadFail'
1342.79 s
[really-safe-money-gen] fromStringM :: (MonadFail m) => String -> m DecimalLiteral
1342.79 s
[really-safe-money-gen] fromStringM s = case Numeric.DecimalLiteral.fromString s of
1342.79 s
[really-safe-money-gen] Nothing -> fail $ "Failed to parse decimal literal from: " <> show s
1342.79 s
[really-safe-money-gen] - Just dl -> pure dl
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] decimalLiteralP :: ReadP DecimalLiteral
1342.79 s
[really-safe-money-gen] decimalLiteralP = do
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:208:5-10
1342.79 s
[really-safe-money-gen] @@ -205,7 +205,7 @@
1342.79 s
[really-safe-money-gen] -- Nothing
1342.79 s
[really-safe-money-gen] fromRational :: Rational -> Maybe DecimalLiteral
1342.79 s
[really-safe-money-gen] fromRational (n :% d)
1342.79 s
[really-safe-money-gen] - | n < 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
1342.79 s
[really-safe-money-gen] + | n < = 0 = (\(DecimalLiteral _ m e) -> DecimalLiteral (Just False) m e) <$> fromRatio (fromIntegral (abs n) % fromIntegral d)
1342.79 s
[really-safe-money-gen] | otherwise = fromRatio (fromIntegral n % fromIntegral d)
1342.79 s
[really-safe-money-gen]
1342.79 s
[really-safe-money-gen] -- | Turn a 'DecimalLiteral' into a 'Rational'
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] RemoveCase at src/Numeric/DecimalLiteral.hs:287:38-40
1342.80 s
[really-safe-money-gen] @@ -284,9 +284,8 @@
1342.80 s
[really-safe-money-gen] -- >>> toRatio (DecimalLiteral (Just False) 3 1)
1342.80 s
[really-safe-money-gen] -- Nothing
1342.80 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
1342.80 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
1342.80 s
[really-safe-money-gen] - Just False -> Nothing
1342.80 s
[really-safe-money-gen] _ -> Just $ fromIntegral m / (10 ^ e)
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
1342.80 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:289:33-35
1342.80 s
[really-safe-money-gen] @@ -286,7 +286,7 @@
1342.80 s
[really-safe-money-gen] toRatio :: DecimalLiteral -> Maybe (Ratio Natural)
1342.80 s
[really-safe-money-gen] toRatio (DecimalLiteral mSign m e) = case mSign of
1342.80 s
[really-safe-money-gen] Just False -> Nothing
1342.80 s
[really-safe-money-gen] - _ -> Just $ fromIntegral m / (1 0 ^ e)
1342.80 s
[really-safe-money-gen] + _ -> Just $ fromIntegral m / (1 ^ e)
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Word'
1342.80 s
[really-safe-money-gen] fromWord :: Word -> DecimalLiteral
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:299:3-47
1342.80 s
[really-safe-money-gen] @@ -296,7 +296,6 @@
1342.80 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
1342.80 s
[really-safe-money-gen] toWord dl = do
1342.80 s
[really-safe-money-gen] n <- toNatural dl
1342.80 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Word)
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:299:11-47
1342.80 s
[really-safe-money-gen] @@ -296,7 +296,7 @@
1342.80 s
[really-safe-money-gen] toWord :: DecimalLiteral -> Maybe Word
1342.80 s
[really-safe-money-gen] toWord dl = do
1342.80 s
[really-safe-money-gen] n <- toNatural dl
1342.80 s
[really-safe-money-gen] - guard $ n < = from I n te g r a l (maxB o u n d : : W ord)
1342.80 s
[really-safe-money-gen] + guard $ T r u e
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] -- | Construct a 'DecimalLiteral' from a 'Natural'
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:332:3-46
1342.80 s
[really-safe-money-gen] @@ -329,7 +329,6 @@
1342.80 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
1342.80 s
[really-safe-money-gen] toInt dl = do
1342.80 s
[really-safe-money-gen] n <- toInteger dl
1342.80 s
[really-safe-money-gen] - guard $ n <= fromIntegral (maxBound :: Int)
1342.80 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] RemoveAction at src/Numeric/DecimalLiteral.hs:333:3-46
1342.80 s
[really-safe-money-gen] @@ -330,7 +330,6 @@
1342.80 s
[really-safe-money-gen] toInt dl = do
1342.80 s
[really-safe-money-gen] n <- toInteger dl
1342.80 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
1342.80 s
[really-safe-money-gen] - guard $ n >= fromIntegral (minBound :: Int)
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:333:11-46
1342.80 s
[really-safe-money-gen] @@ -330,7 +330,7 @@
1342.80 s
[really-safe-money-gen] toInt dl = do
1342.80 s
[really-safe-money-gen] n <- toInteger dl
1342.80 s
[really-safe-money-gen] guard $ n <= fromIntegral (maxBound :: Int)
1342.80 s
[really-safe-money-gen] - guard $ n >= f r om I n t e g ral (minBound :: Int)
1342.80 s
[really-safe-money-gen] + guard $ T r u e
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] ConstBool at src/Numeric/DecimalLiteral.hs:332:11-46
1342.80 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1342.80 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
1342.80 s
[really-safe-money-gen] toInt dl = do
1342.80 s
[really-safe-money-gen] n <- toInteger dl
1342.80 s
[really-safe-money-gen] - guard $ n <= f r om I n t e g ral (maxBound :: Int)
1342.80 s
[really-safe-money-gen] + guard $ T r u e
1342.80 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:332:11-46
1342.80 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1342.80 s
[really-safe-money-gen] toInt :: DecimalLiteral -> Maybe Int
1342.80 s
[really-safe-money-gen] toInt dl = do
1342.80 s
[really-safe-money-gen] n <- toInteger dl
1342.80 s
[really-safe-money-gen] - guard $ n < = fromIntegral (maxBound :: Int)
1342.80 s
[really-safe-money-gen] + guard $ n < fromIntegral (maxBound :: Int)
1342.80 s
[really-safe-money-gen] guard $ n >= fromIntegral (minBound :: Int)
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] Cmp at src/Numeric/DecimalLiteral.hs:337:16-22
1342.80 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1342.80 s
[really-safe-money-gen] - numSign a = if a > = 0 then Nothing else Just False
1342.80 s
[really-safe-money-gen] + numSign a = if a > 0 then Nothing else Just False
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
1342.80 s
[really-safe-money-gen] signSignum = \case
1342.80 s
[really-safe-money-gen]
1342.80 s
[really-safe-money-gen] IntLit at src/Numeric/DecimalLiteral.hs:337:21-22
1342.80 s
[really-safe-money-gen] @@ -334,7 +334,7 @@
1342.80 s
[really-safe-money-gen] pure $ fromIntegral n
1342.80 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] numSign :: (Ord a, Num a) => a -> Maybe Bool
1342.81 s
[really-safe-money-gen] - numSign a = if a >= 0 then Nothing else Just False
1342.81 s
[really-safe-money-gen] + numSign a = if a >= 1 then Nothing else Just False
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] signSignum :: (Num a) => Maybe Bool -> (a -> a)
1342.81 s
[really-safe-money-gen] signSignum = \case
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
1342.81 s
[really-safe-money-gen] @@ -600,13 +600,12 @@
1342.81 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
1342.81 s
[really-safe-money-gen] validate ad =
1342.81 s
[really-safe-money-gen] mconcat
1342.81 s
[really-safe-money-gen] - [ genericValidate ad,
1342.81 s
[really-safe-money-gen] case ad of
1342.81 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1342.81 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1342.81 s
[really-safe-money-gen] a1 > a2
1342.81 s
[really-safe-money-gen] _ -> valid
1342.81 s
[really-safe-money-gen] ]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] ListLit at src/Money/Amount.hs:603:7-8
1342.81 s
[really-safe-money-gen] @@ -600,13 +600,7 @@
1342.81 s
[really-safe-money-gen] instance (Validity amount, Ord amount) => Validity (Distribution amount) where
1342.81 s
[really-safe-money-gen] validate ad =
1342.81 s
[really-safe-money-gen] mconcat
1342.81 s
[really-safe-money-gen] - [ genericValidate ad,
1342.81 s
[really-safe-money-gen] - case ad of
1342.81 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
1342.81 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
1342.81 s
[really-safe-money-gen] - a1 > a2
1342.81 s
[really-safe-money-gen] - _ -> valid
1342.81 s
[really-safe-money-gen] ]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] RemoveCase at src/Money/Amount.hs:604:9-21
1342.81 s
[really-safe-money-gen] @@ -601,11 +601,8 @@
1342.81 s
[really-safe-money-gen] validate ad =
1342.81 s
[really-safe-money-gen] mconcat
1342.81 s
[really-safe-money-gen] [ genericValidate ad,
1342.81 s
[really-safe-money-gen] case ad of
1342.81 s
[really-safe-money-gen] - DistributedIntoUnequalChunks _ a1 _ a2 ->
1342.81 s
[really-safe-money-gen] - declare "The larger chunks are larger" $
1342.81 s
[really-safe-money-gen] - a1 > a2
1342.81 s
[really-safe-money-gen] _ -> valid
1342.81 s
[really-safe-money-gen] ]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] instance (NFData amount) => NFData (Distribution amount)
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:607:15-22
1342.81 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1342.81 s
[really-safe-money-gen] case ad of
1342.81 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1342.81 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1342.81 s
[really-safe-money-gen] - a 1 > a2
1342.81 s
[really-safe-money-gen] + T rue
1342.81 s
[really-safe-money-gen] _ -> valid
1342.81 s
[really-safe-money-gen] ]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:607:15-22
1342.81 s
[really-safe-money-gen] @@ -604,7 +604,7 @@
1342.81 s
[really-safe-money-gen] case ad of
1342.81 s
[really-safe-money-gen] DistributedIntoUnequalChunks _ a1 _ a2 ->
1342.81 s
[really-safe-money-gen] declare "The larger chunks are larger" $
1342.81 s
[really-safe-money-gen] - a1 > a2
1342.81 s
[really-safe-money-gen] + a1 > = a2
1342.81 s
[really-safe-money-gen] _ -> valid
1342.81 s
[really-safe-money-gen] ]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] MaybeOp at src/Money/Amount.hs:661:19-28
1342.81 s
[really-safe-money-gen] @@ -658,7 +658,7 @@
1342.81 s
[really-safe-money-gen] -- | The amount and the real rate that was used, considering the 'Rounding'
1342.81 s
[really-safe-money-gen] (Maybe Amount, Ratio Natural)
1342.81 s
[really-safe-money-gen] fraction _ (Amount 0) f = (Just zero, f)
1342.81 s
[really-safe-money-gen] - fraction _ _ 0 = ( J u st ze r o , 0)
1342.81 s
[really-safe-money-gen] + fraction _ _ 0 = ( N o th in g , 0)
1342.81 s
[really-safe-money-gen] fraction r (Amount a) f =
1342.81 s
[really-safe-money-gen] let amountAsRatio :: Ratio Natural
1342.81 s
[really-safe-money-gen] amountAsRatio = (fromIntegral :: Word64 -> Ratio Natural) a
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:495:10-23
1342.81 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1342.81 s
[really-safe-money-gen] maxBoundI = fromIntegral (maxBound :: Word64)
1342.81 s
[really-safe-money-gen] r :: Integer
1342.81 s
[really-safe-money-gen] r = foldl' (\acc a -> (toInteger :: Word64 -> Integer) (toMinimalQuantisations a) + acc) 0 l
1342.81 s
[really-safe-money-gen] - in if r > maxBoundI
1342.81 s
[really-safe-money-gen] + in if r > = maxBoundI
1342.81 s
[really-safe-money-gen] then Nothing
1342.81 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen]
1342.81 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:341:26-91
1342.81 s
[really-safe-money-gen] @@ -338,7 +338,7 @@
1342.81 s
[really-safe-money-gen] floored = (floor :: Double -> Natural) resultDouble
1342.81 s
[really-safe-money-gen] in if ceiled == floored
1342.81 s
[really-safe-money-gen] then
1342.81 s
[really-safe-money-gen] - if ceiled > (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1342.82 s
[really-safe-money-gen] + if ceiled > = (fromIntegral :: Word64 -> Natural) (maxBound :: Word64)
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] else Just $ Amount (fromIntegral ceiled)
1342.82 s
[really-safe-money-gen] else Nothing
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:332:14-40
1342.82 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1342.82 s
[really-safe-money-gen] | otherwise =
1342.82 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
1342.82 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
1342.82 s
[really-safe-money-gen] - if e xp one nt r e s ultDoub l e > 65
1342.82 s
[really-safe-money-gen] + if Fa l s e
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] else
1342.82 s
[really-safe-money-gen] let ceiled :: Natural
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:332:14-40
1342.82 s
[really-safe-money-gen] @@ -329,7 +329,7 @@
1342.82 s
[really-safe-money-gen] | otherwise =
1342.82 s
[really-safe-money-gen] -- Shortcut for numbers that are way too big anyway
1342.82 s
[really-safe-money-gen] -- so that we don't have to compute the according 'Natural' values.
1342.82 s
[really-safe-money-gen] - if exponent resultDouble > 65
1342.82 s
[really-safe-money-gen] + if exponent resultDouble > = 65
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] else
1342.82 s
[really-safe-money-gen] let ceiled :: Natural
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] MaybeOp at src/Money/Amount.hs:520:14-66
1342.82 s
[really-safe-money-gen] @@ -517,7 +517,7 @@
1342.82 s
[really-safe-money-gen] r = i1 - i2
1342.82 s
[really-safe-money-gen] in if r < 0
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] - else J u s t ( Am o u n t ( (f rom I n t e g er :: Integer -> Word64) r))
1342.82 s
[really-safe-money-gen] + else N o t hi n g
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] -- | Multiply an amount of money by an integer scalar
1342.82 s
[really-safe-money-gen] --
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] ConstBool at src/Money/Amount.hs:518:10-15
1342.82 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
1342.82 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
1342.82 s
[really-safe-money-gen] r :: Integer
1342.82 s
[really-safe-money-gen] r = i1 - i2
1342.82 s
[really-safe-money-gen] - in if r < 0
1342.82 s
[really-safe-money-gen] + in if T r ue
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] Cmp at src/Money/Amount.hs:518:10-15
1342.82 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
1342.82 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
1342.82 s
[really-safe-money-gen] r :: Integer
1342.82 s
[really-safe-money-gen] r = i1 - i2
1342.82 s
[really-safe-money-gen] - in if r < 0
1342.82 s
[really-safe-money-gen] + in if r < = 0
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] IntLit at src/Money/Amount.hs:518:14-15
1342.82 s
[really-safe-money-gen] @@ -515,7 +515,7 @@
1342.82 s
[really-safe-money-gen] i2 = (fromIntegral :: Word64 -> Integer) a2
1342.82 s
[really-safe-money-gen] r :: Integer
1342.82 s
[really-safe-money-gen] r = i1 - i2
1342.82 s
[really-safe-money-gen] - in if r < 0
1342.82 s
[really-safe-money-gen] + in if r < 1
1342.82 s
[really-safe-money-gen] then Nothing
1342.82 s
[really-safe-money-gen] else Just (Amount ((fromInteger :: Integer -> Word64) r))
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:131:20-26
1342.82 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
1342.82 s
[really-safe-money-gen] amount :: Amount
1342.82 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
1342.82 s
[really-safe-money-gen] in Just $
1342.82 s
[really-safe-money-gen] - if i > = 0
1342.82 s
[really-safe-money-gen] + if i > 0
1342.82 s
[really-safe-money-gen] then Positive amount
1342.82 s
[really-safe-money-gen] else Negative amount
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] IntLit at src/Money/Account.hs:131:25-26
1342.82 s
[really-safe-money-gen] @@ -128,7 +128,7 @@
1342.82 s
[really-safe-money-gen] amount :: Amount
1342.82 s
[really-safe-money-gen] amount = Amount.fromMinimalQuantisations w
1342.82 s
[really-safe-money-gen] in Just $
1342.82 s
[really-safe-money-gen] - if i >= 0
1342.82 s
[really-safe-money-gen] + if i >= 1
1342.82 s
[really-safe-money-gen] then Positive amount
1342.82 s
[really-safe-money-gen] else Negative amount
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen]
1342.82 s
[really-safe-money-gen] ConstBool at src/Money/Account.hs:123:10-23
1342.83 s
[really-safe-money-gen] @@ -120,7 +120,7 @@
1342.83 s
[really-safe-money-gen] maxBoundI = (toInteger :: Word64 -> Integer) (maxBound :: Word64)
1342.83 s
[really-safe-money-gen] a :: Integer
1342.83 s
[really-safe-money-gen] a = (Prelude.abs :: Integer -> Integer) i
1342.83 s
[really-safe-money-gen] - in if a > m a xB ound I
1342.83 s
[really-safe-money-gen] + in if F a l se
1342.83 s
[really-safe-money-gen] then Nothing
1342.83 s
[really-safe-money-gen] else
1342.83 s
[really-safe-money-gen] let w :: Word64
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:197:14-20
1342.83 s
[really-safe-money-gen] @@ -194,7 +194,7 @@
1342.83 s
[really-safe-money-gen] fromDouble :: QuantisationFactor -> Double -> Maybe Account
1342.83 s
[really-safe-money-gen] fromDouble quantisationFactor d =
1342.83 s
[really-safe-money-gen] let d' = Prelude.abs d
1342.83 s
[really-safe-money-gen] - f = if d > = 0 then Positive else Negative
1342.83 s
[really-safe-money-gen] + f = if d > 0 then Positive else Negative
1342.83 s
[really-safe-money-gen] in f <$> Amount.fromDouble quantisationFactor d'
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] -- | Turn an amount of money into a 'Rational'.
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:503:10-16
1342.83 s
[really-safe-money-gen] @@ -500,7 +500,7 @@
1342.83 s
[really-safe-money-gen] RoundNearest -> RoundNearest
1342.83 s
[really-safe-money-gen] (ma, ar) = fractionRatio ro account af
1342.83 s
[really-safe-money-gen] r = (realToFrac :: Ratio Natural -> Rational) ar
1342.83 s
[really-safe-money-gen] - in if f > = 0
1342.83 s
[really-safe-money-gen] + in if f > 0
1342.83 s
[really-safe-money-gen] then (ma, r)
1342.83 s
[really-safe-money-gen] else (negate <$> ma, -r)
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:495:12-18
1342.83 s
[really-safe-money-gen] @@ -492,7 +492,7 @@
1342.83 s
[really-safe-money-gen] fraction rounding account f =
1342.83 s
[really-safe-money-gen] let af = (realToFrac :: Rational -> Ratio Natural) ((Prelude.abs :: Rational -> Rational) f)
1342.83 s
[really-safe-money-gen] ro =
1342.83 s
[really-safe-money-gen] - if f > = 0
1342.83 s
[really-safe-money-gen] + if f > 0
1342.83 s
[really-safe-money-gen] then rounding
1342.83 s
[really-safe-money-gen] else case rounding of
1342.83 s
[really-safe-money-gen] RoundUp -> RoundDown
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] MaybeOp at src/Money/Account.hs:523:16-25
1342.83 s
[really-safe-money-gen] @@ -520,7 +520,7 @@
1342.83 s
[really-safe-money-gen] (amount, actualFraction) = Amount.fraction ro aa af
1342.83 s
[really-safe-money-gen] func :: Maybe Amount -> Ratio Natural -> (Maybe Account, Ratio Natural)
1342.83 s
[really-safe-money-gen] func ma r = case compare account zero of
1342.83 s
[really-safe-money-gen] - EQ -> ( J u st ze r o , r)
1342.83 s
[really-safe-money-gen] + EQ -> ( N o th in g , r)
1342.83 s
[really-safe-money-gen] GT -> (Positive <$> ma, r)
1342.83 s
[really-safe-money-gen] LT -> (Negative <$> ma, r)
1342.83 s
[really-safe-money-gen] in func amount actualFraction
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:455:14-23
1342.83 s
[really-safe-money-gen] @@ -452,7 +452,7 @@
1342.83 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
1342.83 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
1342.83 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
1342.83 s
[really-safe-money-gen] - if a > = zero
1342.83 s
[really-safe-money-gen] + if a > zero
1342.83 s
[really-safe-money-gen] then DistributedIntoUnequalChunks numberOfLargerChunks (Positive largerChunk) numberOfSmallerChunks (Positive smallerChunk)
1342.83 s
[really-safe-money-gen] else DistributedIntoUnequalChunks numberOfSmallerChunks (Negative smallerChunk) numberOfLargerChunks (Negative largerChunk)
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] Cmp at src/Money/Account.hs:451:14-23
1342.83 s
[really-safe-money-gen] @@ -448,7 +448,7 @@
1342.83 s
[really-safe-money-gen] DistributedIntoZeroChunks -> DistributedIntoZeroChunks
1342.83 s
[really-safe-money-gen] DistributedZero -> DistributedZero
1342.83 s
[really-safe-money-gen] DistributedIntoEqualChunks numberOfChunks chunk ->
1342.83 s
[really-safe-money-gen] - if a > = zero
1342.83 s
[really-safe-money-gen] + if a > zero
1342.83 s
[really-safe-money-gen] then DistributedIntoEqualChunks numberOfChunks (Positive chunk)
1342.83 s
[really-safe-money-gen] else DistributedIntoEqualChunks numberOfChunks (Negative chunk)
1342.83 s
[really-safe-money-gen] DistributedIntoUnequalChunks numberOfLargerChunks largerChunk numberOfSmallerChunks smallerChunk ->
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
1342.83 s
[really-safe-money-gen] @@ -63,11 +63,10 @@
1342.83 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
1342.83 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
1342.83 s
[really-safe-money-gen] mconcat
1342.83 s
[really-safe-money-gen] - [ genericValidate ma,
1342.83 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1342.83 s
[really-safe-money-gen] declare "The account is not zero" $
1342.83 s
[really-safe-money-gen] a /= Account.zero
1342.83 s
[really-safe-money-gen] ]
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] -- TODO no empty currencies
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen]
1342.83 s
[really-safe-money-gen] ListLit at src/Money/MultiAccount.hs:66:7-8
1342.83 s
[really-safe-money-gen] @@ -63,11 +63,7 @@
1342.83 s
[really-safe-money-gen] instance (Validity currency, Show currency, Ord currency) => Validity (MultiAccount currency) where
1342.84 s
[really-safe-money-gen] validate ma@(MultiAccount m) =
1342.84 s
[really-safe-money-gen] mconcat
1342.84 s
[really-safe-money-gen] - [ genericValidate ma,
1342.84 s
[really-safe-money-gen] - decorateMap m $ \_ a ->
1342.84 s
[really-safe-money-gen] - declare "The account is not zero" $
1342.84 s
[really-safe-money-gen] - a /= Account.zero
1342.84 s
[really-safe-money-gen] ]
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] -- TODO no empty currencies
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:69:13-30
1342.84 s
[really-safe-money-gen] @@ -66,7 +66,7 @@
1342.84 s
[really-safe-money-gen] [ genericValidate ma,
1342.84 s
[really-safe-money-gen] decorateMap m $ \_ a ->
1342.84 s
[really-safe-money-gen] declare "The account is not zero" $
1342.84 s
[really-safe-money-gen] - a / = Ac co u nt .z e ro
1342.84 s
[really-safe-money-gen] + T r u e
1342.84 s
[really-safe-money-gen] ]
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] -- TODO no empty currencies
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] ConstBool at src/Money/MultiAccount.hs:78:6-28
1342.84 s
[really-safe-money-gen] @@ -75,7 +75,7 @@
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] fromAccount :: currency -> Account -> MultiAccount currency
1342.84 s
[really-safe-money-gen] fromAccount currency amount =
1342.84 s
[really-safe-money-gen] - if a m o unt == A cco u n t.z e ro
1342.84 s
[really-safe-money-gen] + if Tr u e
1342.84 s
[really-safe-money-gen] then zero
1342.84 s
[really-safe-money-gen] else MultiAccount $ M.singleton currency amount
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:113:40-46
1342.84 s
[really-safe-money-gen] @@ -110,7 +110,7 @@
1342.84 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1342.84 s
[really-safe-money-gen] addAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1342.84 s
[really-safe-money-gen] addAccount m _ (Positive (Amount 0)) = Just m
1342.84 s
[really-safe-money-gen] - addAccount m _ (Negative (Amount 0)) = J u s t m
1342.84 s
[really-safe-money-gen] + addAccount m _ (Negative (Amount 0)) = No t h ing
1342.84 s
[really-safe-money-gen] addAccount (MultiAccount m) currency account =
1342.84 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1342.84 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency account m
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:127:45-51
1342.84 s
[really-safe-money-gen] @@ -124,7 +124,7 @@
1342.84 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1342.84 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1342.84 s
[really-safe-money-gen] subtractAccount m _ (Positive (Amount 0)) = Just m
1342.84 s
[really-safe-money-gen] - subtractAccount m _ (Negative (Amount 0)) = J u s t m
1342.84 s
[really-safe-money-gen] + subtractAccount m _ (Negative (Amount 0)) = No t h ing
1342.84 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1342.84 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1342.84 s
[really-safe-money-gen] Nothing -> Just $ M.insert currency (Account.negate account) m
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] MaybeOp at src/Money/MultiAccount.hs:126:45-51
1342.84 s
[really-safe-money-gen] @@ -123,7 +123,7 @@
1342.84 s
[really-safe-money-gen]
1342.84 s
[really-safe-money-gen] -- | Add an 'Account' to a 'MultiAccount'
1342.84 s
[really-safe-money-gen] subtractAccount :: (Ord currency) => MultiAccount currency -> currency -> Account -> Maybe (MultiAccount currency)
1342.84 s
[really-safe-money-gen] - subtractAccount m _ (Positive (Amount 0)) = J u s t m
1342.84 s
[really-safe-money-gen] + subtractAccount m _ (Positive (Amount 0)) = No t h ing
1342.84 s
[really-safe-money-gen] subtractAccount m _ (Negative (Amount 0)) = Just m
1342.84 s
[really-safe-money-gen] subtractAccount (MultiAccount m) currency account =
1342.84 s
[really-safe-money-gen] fmap MultiAccount $ case M.lookup currency m of
1342.84 s
[really-safe-money-gen] ord64)
1342.84 s
[really-safe-money-gen] Testing mutation ConstBool at src/Money/Amount/Codec.hs:49:12-59
1342.84 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1342.84 s
[really-safe-money-gen] f s = case readMaybe s of
1342.84 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1342.84 s
[really-safe-money-gen] Just i ->
1342.84 s
[really-safe-money-gen] - if ( i :: Intege r ) < t oIn t e g er (minBound :: Word64)
1342.84 s
[really-safe-money-gen] + if T r u e
1342.84 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1342.84 s
[really-safe-money-gen] else
1342.84 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1342.84 s
[really-safe-money-gen] Testing mutation Cmp at src/Money/Amount/Codec.hs:49:12-59
1342.84 s
[really-safe-money-gen] @@ -46,7 +46,7 @@
1342.84 s
[really-safe-money-gen] f s = case readMaybe s of
1342.84 s
[really-safe-money-gen] Nothing -> Left $ unwords ["Could not read string as an Amount:", s]
1342.84 s
[really-safe-money-gen] Just i ->
1342.84 s
[really-safe-money-gen] - if (i :: Integer) < toInteger (minBound :: Word64)
1342.84 s
[really-safe-money-gen] + if (i :: Integer) < = toInteger (minBound :: Word64)
1342.84 s
[really-safe-money-gen] then Left $ unwords ["Negative number of minimal quantisations:", show i]
1342.85 s
[really-safe-money-gen] else
1342.85 s
[really-safe-money-gen] if (i :: Integer) > toInteger (maxBound :: Word64)
1342.85 s
[really-safe-money-gen] Testing mutation RemoveCase at src/Money/Account/Codec.hs:50:11-24
1342.85 s
[really-safe-money-gen] @@ -47,9 +47,8 @@
1342.85 s
[really-safe-money-gen] codecViaString = bimapCodec f g stringCodec <?> "Account"
1342.85 s
[really-safe-money-gen] where
1342.85 s
[really-safe-money-gen] f :: String -> Either String Account
1342.85 s
[really-safe-money-gen] f s = case readMaybe s >>= Account.fromMinimalQuantisations of
1342.85 s
[really-safe-money-gen] - Nothing -> Left $ unwords ["Could not read string as an Account:", s]
1342.85 s
[really-safe-money-gen] Just a -> Right a
1342.85 s
[really-safe-money-gen] g :: Account -> String
1342.85 s
[really-safe-money-gen] g = show . Account.toMinimalQuantisations
1342.85 s
[really-safe-money-gen]
1342.85 s
[really-safe-money-gen] checkPhase completed in 20 minutes 52 seconds
1342.85 s
[really-safe-money-gen] Phase: haddockPhase
1343.39 s
[really-safe-money-gen] Preprocessing library for really-safe-money-gen-0.0.0.0...
1343.40 s
[really-safe-money-gen] Running Haddock on library for really-safe-money-gen-0.0.0.0...
1343.40 s
[really-safe-money-gen] Warning: The documentation for the following packages are not installed. No
1343.40 s
[really-safe-money-gen] links will be generated to these packages: really-safe-money-0.0.0.0
1344.11 s
[really-safe-money-gen] [ 1 of 13] Compiling Money.Amount.Gen ( src/Money/Amount/Gen.hs, nothing )
1344.54 s
[really-safe-money-gen] [ 2 of 13] Compiling Money.Account.Gen ( src/Money/Account/Gen.hs, nothing )
1344.57 s
[really-safe-money-gen] [ 3 of 13] Compiling Money.AccountOf.Gen ( src/Money/AccountOf/Gen.hs, nothing )
1344.59 s
[really-safe-money-gen] [ 4 of 13] Compiling Money.AmountOf.Gen ( src/Money/AmountOf/Gen.hs, nothing )
1344.61 s
[really-safe-money-gen] [ 5 of 13] Compiling Money.ConversionRate.Gen ( src/Money/ConversionRate/Gen.hs, nothing )
1344.65 s
[really-safe-money-gen] [ 6 of 13] Compiling Money.ConversionRateOf.Gen ( src/Money/ConversionRateOf/Gen.hs, nothing )
1344.67 s
[really-safe-money-gen] [ 7 of 13] Compiling Money.QuantisationFactor.Gen ( src/Money/QuantisationFactor/Gen.hs, nothing )
1344.69 s
[really-safe-money-gen] [ 8 of 13] Compiling Money.Currency.Gen ( src/Money/Currency/Gen.hs, nothing )
1344.71 s
[really-safe-money-gen] [ 9 of 13] Compiling Money.MultiAmount.Gen ( src/Money/MultiAmount/Gen.hs, nothing )
1344.79 s
[really-safe-money-gen] [10 of 13] Compiling Money.MultiAccount.Gen ( src/Money/MultiAccount/Gen.hs, nothing )
1344.82 s
[really-safe-money-gen] [11 of 13] Compiling Money.Gen ( src/Money/Gen.hs, nothing )
1344.83 s
[really-safe-money-gen] [12 of 13] Compiling Numeric.DecimalLiteral.Gen ( src/Numeric/DecimalLiteral/Gen.hs, nothing )
1344.87 s
[really-safe-money-gen] [13 of 13] Compiling Paths_really_safe_money_gen ( dist/build/autogen/Paths_really_safe_money_gen.hs, nothing )
1344.94 s
[really-safe-money-gen] Haddock coverage:
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Amount.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Account.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AccountOf.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.AmountOf.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRate.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.ConversionRateOf.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.QuantisationFactor.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.Currency.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAmount.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] 0% ( 0 / 1) in 'Money.MultiAccount.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.94 s
[really-safe-money-gen] Module header
1344.94 s
[really-safe-money-gen] Warning: Money.Gen: Could not find documentation for exported module: Money.Gen
1344.94 s
[really-safe-money-gen] 90% ( 10 / 11) in 'Money.Gen'
1344.94 s
[really-safe-money-gen] Missing documentation for:
1344.95 s
[really-safe-money-gen] Module header
1344.95 s
[really-safe-money-gen] 0% ( 0 / 2) in 'Numeric.DecimalLiteral.Gen'
1344.95 s
[really-safe-money-gen] Missing documentation for:
1344.95 s
[really-safe-money-gen] Module header
1344.95 s
[really-safe-money-gen] shrinkSign (src/Numeric/DecimalLiteral/Gen.hs:16)
1345.29 s
[really-safe-money-gen] Warning: Money.Amount.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.Amount.Amount
1345.29 s
[really-safe-money-gen] - Money.Amount.Distribution
1345.29 s
[really-safe-money-gen] - Money.Amount.Rounding
1345.29 s
[really-safe-money-gen] Warning: Money.Account.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.Account.Account
1345.29 s
[really-safe-money-gen] Warning: Money.AccountOf.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.AccountOf.AccountOf
1345.29 s
[really-safe-money-gen] Warning: Money.AmountOf.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.AmountOf.AmountOf
1345.29 s
[really-safe-money-gen] Warning: Money.ConversionRate.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.ConversionRate.ConversionRate
1345.29 s
[really-safe-money-gen] Warning: Money.ConversionRateOf.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.ConversionRateOf.ConversionRateOf
1345.29 s
[really-safe-money-gen] Warning: Money.QuantisationFactor.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.QuantisationFactor.QuantisationFactor
1345.29 s
[really-safe-money-gen] Warning: Money.Currency.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.Currency.Currency
1345.29 s
[really-safe-money-gen] Warning: Money.MultiAmount.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.MultiAmount.MultiAmount
1345.29 s
[really-safe-money-gen] Warning: Money.MultiAccount.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Money.MultiAccount.MultiAccount
1345.29 s
[really-safe-money-gen] Warning: Numeric.DecimalLiteral.Gen: could not find link destinations for:
1345.29 s
[really-safe-money-gen] - Numeric.DecimalLiteral.DecimalLiteral
1358.76 s
[really-safe-money-gen] Documentation created: dist/doc/html/really-safe-money-gen/,
1358.76 s
[really-safe-money-gen] dist/doc/html/really-safe-money-gen/really-safe-money-gen.txt
1358.94 s
[really-safe-money-gen] Preprocessing test suite 'really-safe-money-test' for really-safe-money-gen-0.0.0.0...
1358.98 s
[really-safe-money-gen] Phase: installPhase
1359.37 s
[really-safe-money-gen] Installing library in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/really-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A
1360.43 s
[really-safe-money-gen] Phase: fixupPhase
1360.49 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0
1360.51 s
[really-safe-money-gen] shrinking /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/lib/ghc-9.10.3/lib/x86_64-linux-ghc-9.10.3-05f6/libHSreally-safe-money-gen-0.0.0.0-DUlrgfbYR751gcgZIqRr4A-ghc9.10.3.so
1360.53 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0...
1360.58 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0
1360.60 s
[really-safe-money-gen] stripping (with command strip and flags -S -p) in /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0/lib
1360.77 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc
1360.79 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc...
1360.83 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc
1360.84 s
[really-safe-money-gen] shrinking RPATHs of ELF executables and libraries in /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
1360.86 s
[really-safe-money-gen] checking for references to /build/ in /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report...
1360.91 s
[really-safe-money-gen] patching script interpreter paths in /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
1361.20 s
[post-build-hook] Uploading to cachix cache "sydtest": /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
1362.23 s
[post-build-hook] Pushing 3 paths (196 are already present) using zstd to cache sydtest ⏳
1362.23 s
[post-build-hook]
1362.59 s
[post-build-hook] Pushing /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 (1.52 MiB)
1362.66 s
[post-build-hook] Pushing /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc (288.17 KiB)
1362.69 s
[post-build-hook] Pushing /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report (706.92 KiB)
1364.04 s
[post-build-hook]
1364.04 s
[post-build-hook] All done.
1364.10 s
[post-build-hook] Uploading to the NixCI staging cache: /nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc /nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0 /nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report
1364.19 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
1364.52 s
[post-build-hook] copying 3 paths...
1364.52 s
[post-build-hook] copying path '/nix/store/d3gqvs5j0n0m3qba25h3dzrwqvh3p9yb-really-safe-money-gen-0.0.0.0-report' to 'https://cache.staging.nix-ci.com'...
1364.52 s
[post-build-hook] copying path '/nix/store/0qmdv0w5bj44msx240p16bcnzia7h0b9-really-safe-money-gen-0.0.0.0-doc' to 'https://cache.staging.nix-ci.com'...
1364.69 s
[post-build-hook] copying path '/nix/store/4f7sk4f4dj029af5939k502p7ds4fwrl-really-safe-money-gen-0.0.0.0' to 'https://cache.staging.nix-ci.com'...
1365.55 s
[post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead
1365.85 s
[post-build-hook] copying 1 paths...
1365.85 s
[post-build-hook] copying path '/nix/store/jf1dnysz6vy2f5ldd3nfkssadz2s8dv3-really-safe-money-gen-0.0.0.0.drv' to 'https://cache.staging.nix-ci.com'...
1366.13 s
Progress: 5 of 6 built