$ /nix/store/vzx1mi9c0xfadmsm9dhd83d005cb1qs9-coreutils-9.8/bin/timeout --kill-after=15s 7200s /nix/store/99b1z08awpxj8b6mzggn59gp1shljnff-nix-2.34.5/bin/nix --extra-experimental-features nix-command --extra-experimental-features flakes --log-format internal-json build --no-link git+https://github.com/NorfairKing/sydtest?ref=refs%2Fpull%2F126%2Fmerge&rev=cb25735b0fde02af480a8871f21117fe25df495c#checks.x86_64-linux.mutation-sydtest-mutation-example --print-build-logs warning: ignoring untrusted flake configuration setting 'extra-substituters'. Pass '--accept-flake-config' to trust it warning: ignoring untrusted flake configuration setting 'extra-trusted-public-keys'. Pass '--accept-flake-config' to trust it  Building sydtest-mutation-example-mutation-report [sydtest-mutation-example-mutation-report] Phase: patchPhase [sydtest-mutation-example-mutation-report] Phase: updateAutotoolsGnuConfigScriptsPhase [sydtest-mutation-example-mutation-report] Phase: configurePhase [sydtest-mutation-example-mutation-report] no configure script, doing nothing [sydtest-mutation-example-mutation-report] Phase: buildPhase [sydtest-mutation-example-mutation-report] coverage (2/42): running Example\.DoLibSpec.greet.greets loudly [sydtest-mutation-example-mutation-report] coverage (1/42): running Example\.DoLibSpec.greet.greets quietly [sydtest-mutation-example-mutation-report] coverage (3/42): running Example\.ExceptionLibSpec.addOneModuleDisabled.increments by one [sydtest-mutation-example-mutation-report] coverage (4/42): running Example\.LocalDisableLibSpec.withInnerKept.is True when given False [sydtest-mutation-example-mutation-report] coverage (4/42): done Example\.LocalDisableLibSpec.withInnerKept.is True when given False (12 mutations) [sydtest-mutation-example-mutation-report] coverage (5/42): running Example\.LocalDisableLibSpec.withInnerKept.is False when given True [sydtest-mutation-example-mutation-report] coverage (2/42): done Example\.DoLibSpec.greet.greets loudly (5 mutations) [sydtest-mutation-example-mutation-report] coverage (6/42): running Example\.LocalDisableLibSpec.withInnerBoolLitDisabled.is False when given True [sydtest-mutation-example-mutation-report] coverage (3/42): done Example\.ExceptionLibSpec.addOneModuleDisabled.increments by one (0 mutations) [sydtest-mutation-example-mutation-report] coverage (1/42): done Example\.DoLibSpec.greet.greets quietly (5 mutations) [sydtest-mutation-example-mutation-report] coverage (7/42): running Example\.LocalDisableLibSpec.withInnerBoolLitDisabled.is True when given False [sydtest-mutation-example-mutation-report] coverage (8/42): running Example\.LocalDisableLibSpec.withBindKept.passes the input through the toggle function (False -> True) [sydtest-mutation-example-mutation-report] coverage (5/42): done Example\.LocalDisableLibSpec.withInnerKept.is False when given True (12 mutations) [sydtest-mutation-example-mutation-report] coverage (9/42): running Example\.LocalDisableLibSpec.withBindKept.passes the input through the toggle function (True -> False) [sydtest-mutation-example-mutation-report] coverage (6/42): done Example\.LocalDisableLibSpec.withInnerBoolLitDisabled.is False when given True (8 mutations) [sydtest-mutation-example-mutation-report] coverage (10/42): running Example\.LocalDisableLibSpec.withInnerDisabled.is False when given True [sydtest-mutation-example-mutation-report] coverage (8/42): done Example\.LocalDisableLibSpec.withBindKept.passes the input through the toggle function (False -> True) (6 mutations) [sydtest-mutation-example-mutation-report] coverage (11/42): running Example\.LocalDisableLibSpec.withInnerDisabled.is True when given False [sydtest-mutation-example-mutation-report] coverage (7/42): done Example\.LocalDisableLibSpec.withInnerBoolLitDisabled.is True when given False (8 mutations) [sydtest-mutation-example-mutation-report] coverage (13/42): running Example\.LocalDisableLibSpec.withBindDisabled.passes the input through the toggle function (True -> False) [sydtest-mutation-example-mutation-report] coverage (10/42): done Example\.LocalDisableLibSpec.withInnerDisabled.is False when given True (6 mutations) [sydtest-mutation-example-mutation-report] coverage (12/42): running Example\.LocalDisableLibSpec.withBindDisabled.passes the input through the toggle function (False -> True) [sydtest-mutation-example-mutation-report] coverage (11/42): done Example\.LocalDisableLibSpec.withInnerDisabled.is True when given False (6 mutations) [sydtest-mutation-example-mutation-report] coverage (14/42): running Example\.BoolLibSpec.wrapTrue.is Just True [sydtest-mutation-example-mutation-report] coverage (9/42): done Example\.LocalDisableLibSpec.withBindKept.passes the input through the toggle function (True -> False) (6 mutations) [sydtest-mutation-example-mutation-report] coverage (15/42): running Example\.BoolLibSpec.wrapFalse.is Just False [sydtest-mutation-example-mutation-report] coverage (13/42): done Example\.LocalDisableLibSpec.withBindDisabled.passes the input through the toggle function (True -> False) (3 mutations) [sydtest-mutation-example-mutation-report] coverage (16/42): running Example\.BoolLibSpec.negateWrapped.negates Just True to Just False [sydtest-mutation-example-mutation-report] coverage (12/42): done Example\.LocalDisableLibSpec.withBindDisabled.passes the input through the toggle function (False -> True) (3 mutations) [sydtest-mutation-example-mutation-report] coverage (17/42): running Example\.BoolLibSpec.negateWrapped.leaves Nothing as Nothing [sydtest-mutation-example-mutation-report] coverage (14/42): done Example\.BoolLibSpec.wrapTrue.is Just True (2 mutations) [sydtest-mutation-example-mutation-report] coverage (18/42): running Example\.BoolLibSpec.negateWrapped.negates Just False to Just True [sydtest-mutation-example-mutation-report] coverage (15/42): done Example\.BoolLibSpec.wrapFalse.is Just False (2 mutations) [sydtest-mutation-example-mutation-report] coverage (19/42): running Example\.ListLibSpec.pairConcat.preserves the order [sydtest-mutation-example-mutation-report] coverage (16/42): done Example\.BoolLibSpec.negateWrapped.negates Just True to Just False (0 mutations) [sydtest-mutation-example-mutation-report] coverage (20/42): running Example\.ListLibSpec.pairConcat.concatenates both arguments [sydtest-mutation-example-mutation-report] coverage (18/42): done Example\.BoolLibSpec.negateWrapped.negates Just False to Just True (0 mutations) [sydtest-mutation-example-mutation-report] coverage (21/42): running Example\.ListLibSpec.tripleConcat.distinguishes the last element [sydtest-mutation-example-mutation-report] coverage (19/42): done Example\.ListLibSpec.pairConcat.preserves the order (2 mutations) [sydtest-mutation-example-mutation-report] coverage (23/42): running Example\.ListLibSpec.tripleConcat.concatenates all three arguments [sydtest-mutation-example-mutation-report] coverage (20/42): done Example\.ListLibSpec.pairConcat.concatenates both arguments (2 mutations) [sydtest-mutation-example-mutation-report] coverage (24/42): running Example\.CaseLibSpec.describeList.describes singleton lists [sydtest-mutation-example-mutation-report] coverage (17/42): done Example\.BoolLibSpec.negateWrapped.leaves Nothing as Nothing (0 mutations) [sydtest-mutation-example-mutation-report] coverage (25/42): running Example\.CaseLibSpec.describeList.describes longer lists [sydtest-mutation-example-mutation-report] coverage (21/42): done Example\.ListLibSpec.tripleConcat.distinguishes the last element (3 mutations) [sydtest-mutation-example-mutation-report] coverage (26/42): running Example\.CaseLibSpec.describeList.describes empty lists [sydtest-mutation-example-mutation-report] coverage (25/42): done Example\.CaseLibSpec.describeList.describes longer lists (3 mutations) [sydtest-mutation-example-mutation-report] coverage (23/42): done Example\.ListLibSpec.tripleConcat.concatenates all three arguments (3 mutations) [sydtest-mutation-example-mutation-report] coverage (22/42): running Example\.ListLibSpec.tripleConcat.distinguishes the first element [sydtest-mutation-example-mutation-report] coverage (27/42): running Example\.LibSpec.addOne.returns 6 for input 5 [sydtest-mutation-example-mutation-report] coverage (24/42): done Example\.CaseLibSpec.describeList.describes singleton lists (3 mutations) [sydtest-mutation-example-mutation-report] coverage (30/42): running Example\.OtherwiseLibSpec.classify.classifies positive numbers [sydtest-mutation-example-mutation-report] coverage (26/42): done Example\.CaseLibSpec.describeList.describes empty lists (3 mutations) [sydtest-mutation-example-mutation-report] coverage (29/42): running Example\.OtherwiseLibSpec.classify.classifies negative numbers [sydtest-mutation-example-mutation-report] coverage (27/42): done Example\.LibSpec.addOne.returns 6 for input 5 (4 mutations) [sydtest-mutation-example-mutation-report] coverage (28/42): running Example\.LibSpec.addOne.returns 2 for input 1 [sydtest-mutation-example-mutation-report] coverage (22/42): done Example\.ListLibSpec.tripleConcat.distinguishes the first element (3 mutations) [sydtest-mutation-example-mutation-report] coverage (31/42): running Example\.OtherwiseLibSpec.classify.classifies zero [sydtest-mutation-example-mutation-report] coverage (30/42): done Example\.OtherwiseLibSpec.classify.classifies positive numbers (9 mutations) [sydtest-mutation-example-mutation-report] coverage (32/42): running Example\.FunctionExceptionLibSpec.addOneArithDisabled.increments by one [sydtest-mutation-example-mutation-report] coverage (29/42): done Example\.OtherwiseLibSpec.classify.classifies negative numbers (6 mutations) [sydtest-mutation-example-mutation-report] coverage (33/42): running Example\.FunctionExceptionLibSpec.addOneArithAndIntLitDisabled.increments by one [sydtest-mutation-example-mutation-report] coverage (32/42): done Example\.FunctionExceptionLibSpec.addOneArithDisabled.increments by one (2 mutations) [sydtest-mutation-example-mutation-report] coverage (34/42): running Example\.FunctionExceptionLibSpec.addOneFunctionDisabled.increments by one [sydtest-mutation-example-mutation-report] coverage (28/42): done Example\.LibSpec.addOne.returns 2 for input 1 (4 mutations) [sydtest-mutation-example-mutation-report] coverage (35/42): running Example\.LogicLibSpec.eitherPositive.is True when only the second is positive [sydtest-mutation-example-mutation-report] coverage (31/42): done Example\.OtherwiseLibSpec.classify.classifies zero (9 mutations) [sydtest-mutation-example-mutation-report] coverage (36/42): running Example\.LogicLibSpec.eitherPositive.is False when neither is positive [sydtest-mutation-example-mutation-report] coverage (33/42): done Example\.FunctionExceptionLibSpec.addOneArithAndIntLitDisabled.increments by one (0 mutations) [sydtest-mutation-example-mutation-report] coverage (37/42): running Example\.LogicLibSpec.eitherPositive.is True when only the first is positive [sydtest-mutation-example-mutation-report] coverage (34/42): done Example\.FunctionExceptionLibSpec.addOneFunctionDisabled.increments by one (0 mutations) [sydtest-mutation-example-mutation-report] coverage (38/42): running Example\.LogicLibSpec.eitherPositive.is True when both are positive [sydtest-mutation-example-mutation-report] coverage (35/42): done Example\.LogicLibSpec.eitherPositive.is True when only the second is positive (18 mutations) [sydtest-mutation-example-mutation-report] coverage (39/42): running Example\.LogicLibSpec.bothPositive.is False when only the first is positive [sydtest-mutation-example-mutation-report] coverage (36/42): done Example\.LogicLibSpec.eitherPositive.is False when neither is positive (18 mutations) [sydtest-mutation-example-mutation-report] coverage (40/42): running Example\.LogicLibSpec.bothPositive.is True when both are positive [sydtest-mutation-example-mutation-report] coverage (39/42): done Example\.LogicLibSpec.bothPositive.is False when only the first is positive (18 mutations) [sydtest-mutation-example-mutation-report] coverage (41/42): running Example\.LogicLibSpec.bothPositive.is False when only the second is positive [sydtest-mutation-example-mutation-report] coverage (37/42): done Example\.LogicLibSpec.eitherPositive.is True when only the first is positive (11 mutations) [sydtest-mutation-example-mutation-report] coverage (42/42): running Example\.LogicLibSpec.bothPositive.is False when neither is positive [sydtest-mutation-example-mutation-report] coverage (38/42): done Example\.LogicLibSpec.eitherPositive.is True when both are positive (11 mutations) [sydtest-mutation-example-mutation-report] coverage (40/42): done Example\.LogicLibSpec.bothPositive.is True when both are positive (18 mutations) [sydtest-mutation-example-mutation-report] coverage (41/42): done Example\.LogicLibSpec.bothPositive.is False when only the second is positive (11 mutations) [sydtest-mutation-example-mutation-report] coverage (42/42): done Example\.LogicLibSpec.bothPositive.is False when neither is positive (11 mutations) [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/OtherwiseLib.hs:12:9-10 #1 [sydtest-mutation-example-mutation-report] @@ -9,6 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- (otherwise = True, so @otherwise -> True@ is a semantic no-op). [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report] - | n < 0 = "negative" [sydtest-mutation-example-mutation-report] + | n < 1 = "negative" [sydtest-mutation-example-mutation-report]  | n == 0 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/OtherwiseLib.hs:12:5-10 #1 [sydtest-mutation-example-mutation-report] @@ -9,6 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- (otherwise = True, so @otherwise -> True@ is a semantic no-op). [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report] - | n < 0 = "negative" [sydtest-mutation-example-mutation-report] + | n <= 0 = "negative" [sydtest-mutation-example-mutation-report]  | n == 0 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/OtherwiseLib.hs:12:5-10 #1 [sydtest-mutation-example-mutation-report] @@ -9,6 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- (otherwise = True, so @otherwise -> True@ is a semantic no-op). [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report] - | n < 0 = "negative" [sydtest-mutation-example-mutation-report] + | not (n < 0) = "negative" [sydtest-mutation-example-mutation-report]  | n == 0 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/OtherwiseLib.hs:12:5-10 #1 [sydtest-mutation-example-mutation-report] @@ -9,6 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- (otherwise = True, so @otherwise -> True@ is a semantic no-op). [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report] - | n < 0 = "negative" [sydtest-mutation-example-mutation-report] + | True = "negative" [sydtest-mutation-example-mutation-report]  | n == 0 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/OtherwiseLib.hs:13:10-11 #1 [sydtest-mutation-example-mutation-report] @@ -10,5 +10,5 @@ [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report]  | n < 0 = "negative" [sydtest-mutation-example-mutation-report] - | n == 0 = "zero" [sydtest-mutation-example-mutation-report] + | n == 1 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation ListLit at src/Example/ListLib.hs:12:25-31 #1 [sydtest-mutation-example-mutation-report] @@ -9,7 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- Mutation sites: ListLit produces an empty-list mutant and a drop-first [sydtest-mutation-example-mutation-report]  -- mutant on the literal @[a, b]@. [sydtest-mutation-example-mutation-report]  pairConcat :: String -> String -> String [sydtest-mutation-example-mutation-report] -pairConcat a b = concat [a, b] [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Concatenate a three-element list of strings. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation RemoveAction at src/Example/DoLib.hs:14:7-41 #1 [sydtest-mutation-example-mutation-report] @@ -11,5 +11,4 @@ [sydtest-mutation-example-mutation-report]  go :: Writer String () [sydtest-mutation-example-mutation-report]  go = do [sydtest-mutation-example-mutation-report]  tell "Hello" [sydtest-mutation-example-mutation-report] - if loud then tell "!" else pure () [sydtest-mutation-example-mutation-report]  tell "\n" [sydtest-mutation-example-mutation-report] Testing mutation BoolLit at src/Example/BoolLib.hs:18:18-23 #1 [sydtest-mutation-example-mutation-report] @@ -15,7 +15,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: BoolLit/ConstBool on the inner False, MaybeOp on Just False. [sydtest-mutation-example-mutation-report]  wrapFalse :: Maybe Bool [sydtest-mutation-example-mutation-report] -wrapFalse = Just False [sydtest-mutation-example-mutation-report] +wrapFalse = Just True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Negates a wrapped boolean. [sydtest-mutation-example-mutation-report]  negateWrapped :: Maybe Bool -> Maybe Bool [sydtest-mutation-example-mutation-report] Testing mutation ListLit at src/Example/ListLib.hs:19:29-38 #1 [sydtest-mutation-example-mutation-report] @@ -16,4 +16,3 @@ [sydtest-mutation-example-mutation-report]  -- Mutation sites: ListLit produces an empty-list mutant, a drop-first mutant, [sydtest-mutation-example-mutation-report]  -- and a drop-last mutant on the literal @[a, b, c]@. [sydtest-mutation-example-mutation-report]  tripleConcat :: String -> String -> String -> String [sydtest-mutation-example-mutation-report] -tripleConcat a b c = concat [a, b, c] [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/FunctionExceptionLib.hs:15:29-30 #1 [sydtest-mutation-example-mutation-report] @@ -12,7 +12,7 @@ [sydtest-mutation-example-mutation-report]  -- IntLit mutations (replacing the literal @1@) still apply. [sydtest-mutation-example-mutation-report]  {-# ANN addOneArithDisabled ("DisableMutation: Arith" :: String) #-} [sydtest-mutation-example-mutation-report]  addOneArithDisabled :: Int -> Int [sydtest-mutation-example-mutation-report] -addOneArithDisabled n = n + 1 [sydtest-mutation-example-mutation-report] +addOneArithDisabled n = n + 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Both Arith and IntLit mutations disabled on this function. [sydtest-mutation-example-mutation-report]  {-# ANN addOneArithAndIntLitDisabled ("DisableMutations: Arith, IntLit" :: String) #-} [sydtest-mutation-example-mutation-report] Testing mutation BoolLit at src/Example/BoolLib.hs:12:17-21 #1 [sydtest-mutation-example-mutation-report] @@ -9,7 +9,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: BoolLit/ConstBool on the inner True, MaybeOp on Just True. [sydtest-mutation-example-mutation-report]  wrapTrue :: Maybe Bool [sydtest-mutation-example-mutation-report] -wrapTrue = Just True [sydtest-mutation-example-mutation-report] +wrapTrue = Just False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Wraps False in Just. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/OtherwiseLib.hs:13:5-11 #1 [sydtest-mutation-example-mutation-report] @@ -10,5 +10,5 @@ [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report]  | n < 0 = "negative" [sydtest-mutation-example-mutation-report] - | n == 0 = "zero" [sydtest-mutation-example-mutation-report] + | True = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/Lib.hs:8:16-17 #1 [sydtest-mutation-example-mutation-report] @@ -5,4 +5,4 @@ [sydtest-mutation-example-mutation-report]  -- The literal '1' here is a mutation site: the plugin will also compile a [sydtest-mutation-example-mutation-report]  -- version where this returns @n + 0@ instead of @n + 1@. [sydtest-mutation-example-mutation-report]  addOne :: Int -> Int [sydtest-mutation-example-mutation-report] -addOne n = n + 1 [sydtest-mutation-example-mutation-report] +addOne n = n + 0 [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/DoLib.hs:14:10-14 #1 [sydtest-mutation-example-mutation-report] @@ -11,5 +11,5 @@ [sydtest-mutation-example-mutation-report]  go :: Writer String () [sydtest-mutation-example-mutation-report]  go = do [sydtest-mutation-example-mutation-report]  tell "Hello" [sydtest-mutation-example-mutation-report] - if loud then tell "!" else pure () [sydtest-mutation-example-mutation-report] + if True then tell "!" else pure () [sydtest-mutation-example-mutation-report]  tell "\n" [sydtest-mutation-example-mutation-report] Testing mutation RemoveAction at src/Example/DoLib.hs:12:10-16 #1 [sydtest-mutation-example-mutation-report] @@ -9,7 +9,6 @@ [sydtest-mutation-example-mutation-report]  greet loud = execWriter go [sydtest-mutation-example-mutation-report]  where [sydtest-mutation-example-mutation-report]  go :: Writer String () [sydtest-mutation-example-mutation-report]  go = do [sydtest-mutation-example-mutation-report] - tell "Hello" [sydtest-mutation-example-mutation-report]  if loud then tell "!" else pure () [sydtest-mutation-example-mutation-report]  tell "\n" [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/OtherwiseLib.hs:13:5-11 #1 [sydtest-mutation-example-mutation-report] @@ -10,5 +10,5 @@ [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report]  | n < 0 = "negative" [sydtest-mutation-example-mutation-report] - | n == 0 = "zero" [sydtest-mutation-example-mutation-report] + | not (n == 0) = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation MaybeOp at src/Example/BoolLib.hs:18:13-23 #1 [sydtest-mutation-example-mutation-report] @@ -15,7 +15,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: BoolLit/ConstBool on the inner False, MaybeOp on Just False. [sydtest-mutation-example-mutation-report]  wrapFalse :: Maybe Bool [sydtest-mutation-example-mutation-report] -wrapFalse = Just False [sydtest-mutation-example-mutation-report] +wrapFalse = Nothing [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Negates a wrapped boolean. [sydtest-mutation-example-mutation-report]  negateWrapped :: Maybe Bool -> Maybe Bool [sydtest-mutation-example-mutation-report] Testing mutation Arith at src/Example/Lib.hs:8:12-17 #1 [sydtest-mutation-example-mutation-report] @@ -5,4 +5,4 @@ [sydtest-mutation-example-mutation-report]  -- The literal '1' here is a mutation site: the plugin will also compile a [sydtest-mutation-example-mutation-report]  -- version where this returns @n + 0@ instead of @n + 1@. [sydtest-mutation-example-mutation-report]  addOne :: Int -> Int [sydtest-mutation-example-mutation-report] -addOne n = n + 1 [sydtest-mutation-example-mutation-report] +addOne n = n - 1 [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/DoLib.hs:14:10-14 #1 [sydtest-mutation-example-mutation-report] @@ -11,5 +11,5 @@ [sydtest-mutation-example-mutation-report]  go :: Writer String () [sydtest-mutation-example-mutation-report]  go = do [sydtest-mutation-example-mutation-report]  tell "Hello" [sydtest-mutation-example-mutation-report] - if loud then tell "!" else pure () [sydtest-mutation-example-mutation-report] + if not (loud) then tell "!" else pure () [sydtest-mutation-example-mutation-report]  tell "\n" [sydtest-mutation-example-mutation-report] Testing mutation RemoveCase at src/Example/CaseLib.hs:7:19-16 #1 [sydtest-mutation-example-mutation-report] @@ -4,7 +4,6 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: RemoveCase removes one of the three alternatives. [sydtest-mutation-example-mutation-report]  describeList :: [a] -> String [sydtest-mutation-example-mutation-report]  describeList xs = case xs of [sydtest-mutation-example-mutation-report] - [] -> "empty" [sydtest-mutation-example-mutation-report]  [_] -> "singleton" [sydtest-mutation-example-mutation-report]  _ -> "longer" [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/LogicLib.hs:17:26-27 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 1 || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation MaybeOp at src/Example/BoolLib.hs:12:12-21 #1 [sydtest-mutation-example-mutation-report] @@ -9,7 +9,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: BoolLit/ConstBool on the inner True, MaybeOp on Just True. [sydtest-mutation-example-mutation-report]  wrapTrue :: Maybe Bool [sydtest-mutation-example-mutation-report] -wrapTrue = Just True [sydtest-mutation-example-mutation-report] +wrapTrue = Nothing [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Wraps False in Just. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/LogicLib.hs:17:35-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || b > 1 [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:17:31-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || b < 0 [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:17:22-27 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a < 0 || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LogicLib.hs:17:22-27 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = not (a > 0) || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:17:22-27 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = True || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:17:31-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || True [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LogicLib.hs:17:31-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || not (b > 0) [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:17:22-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = True [sydtest-mutation-example-mutation-report] Testing mutation LogicOp at src/Example/LogicLib.hs:17:22-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LogicLib.hs:17:22-36 #1 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = not (a > 0 || b > 0) [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/LogicLib.hs:11:24-25 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 1 && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:11:20-25 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a < 0 && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:11:20-25 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = True && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:11:29-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && b < 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LogicLib.hs:11:20-25 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = not (a > 0) && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/LogicLib.hs:11:33-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && b > 1 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:11:20-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:11:29-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LogicLib.hs:11:29-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && not (b > 0) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation LogicOp at src/Example/LogicLib.hs:11:20-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LogicLib.hs:11:20-34 #1 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = not (a > 0 && b > 0) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:58:19-20 #1 [sydtest-mutation-example-mutation-report] @@ -55,5 +55,5 @@ [sydtest-mutation-example-mutation-report]  -- @toggle b@ is fully instrumented. [sydtest-mutation-example-mutation-report]  withBindKept :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindKept toggle b = do [sydtest-mutation-example-mutation-report] - inner <- toggle b [sydtest-mutation-example-mutation-report] + inner <- toggle not (b) [sydtest-mutation-example-mutation-report]  pure inner [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:59:8-13 #1 [sydtest-mutation-example-mutation-report] @@ -56,4 +56,4 @@ [sydtest-mutation-example-mutation-report]  withBindKept :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindKept toggle b = do [sydtest-mutation-example-mutation-report]  inner <- toggle b [sydtest-mutation-example-mutation-report] - pure inner [sydtest-mutation-example-mutation-report] + pure True [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:52:8-13 #1 [sydtest-mutation-example-mutation-report] @@ -49,7 +49,7 @@ [sydtest-mutation-example-mutation-report]  withBindDisabled :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindDisabled toggle b = do [sydtest-mutation-example-mutation-report]  inner <- toggle b [sydtest-mutation-example-mutation-report] - pure inner [sydtest-mutation-example-mutation-report] + pure True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control for 'withBindDisabled': no disable annotation, so the RHS [sydtest-mutation-example-mutation-report]  -- @toggle b@ is fully instrumented. [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:52:8-13 #1 [sydtest-mutation-example-mutation-report] @@ -49,7 +49,7 @@ [sydtest-mutation-example-mutation-report]  withBindDisabled :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindDisabled toggle b = do [sydtest-mutation-example-mutation-report]  inner <- toggle b [sydtest-mutation-example-mutation-report] - pure inner [sydtest-mutation-example-mutation-report] + pure not (inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control for 'withBindDisabled': no disable annotation, so the RHS [sydtest-mutation-example-mutation-report]  -- @toggle b@ is fully instrumented. [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:59:8-13 #1 [sydtest-mutation-example-mutation-report] @@ -56,4 +56,4 @@ [sydtest-mutation-example-mutation-report]  withBindKept :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindKept toggle b = do [sydtest-mutation-example-mutation-report]  inner <- toggle b [sydtest-mutation-example-mutation-report] - pure inner [sydtest-mutation-example-mutation-report] + pure not (inner) [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:36:19-20 #1 [sydtest-mutation-example-mutation-report] @@ -33,7 +33,7 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = not True [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:36:19-20 #1 [sydtest-mutation-example-mutation-report] @@ -33,7 +33,7 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = not not (b) [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:36:15-20 #1 [sydtest-mutation-example-mutation-report] @@ -33,7 +33,7 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = not (not b) [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:36:15-20 #1 [sydtest-mutation-example-mutation-report] @@ -33,7 +33,7 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = True [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:37:7-12 #1 [sydtest-mutation-example-mutation-report] @@ -34,7 +34,7 @@ [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in not (inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report]  -- by a @do@-block @<-@ statement instead of a @let@. The annotation [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:36:3-12 #1 [sydtest-mutation-example-mutation-report] @@ -33,8 +33,8 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + True = not b [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report]  -- by a @do@-block @<-@ statement instead of a @let@. The annotation [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:37:7-12 #1 [sydtest-mutation-example-mutation-report] @@ -34,7 +34,7 @@ [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report]  -- by a @do@-block @<-@ statement instead of a @let@. The annotation [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:36:3-12 #1 [sydtest-mutation-example-mutation-report] @@ -33,8 +33,8 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + not (let inner = not b [sydtest-mutation-example-mutation-report] + in inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report]  -- by a @do@-block @<-@ statement instead of a @let@. The annotation [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:29:19-20 #1 [sydtest-mutation-example-mutation-report] @@ -26,7 +26,7 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerBoolLitDisabled ("DisableMutationsFor inner: ConstBool" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = not not (b) [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:29:15-20 #1 [sydtest-mutation-example-mutation-report] @@ -26,7 +26,7 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerBoolLitDisabled ("DisableMutationsFor inner: ConstBool" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = not (not b) [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:30:7-12 #1 [sydtest-mutation-example-mutation-report] @@ -27,7 +27,7 @@ [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in not (inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:29:3-12 #1 [sydtest-mutation-example-mutation-report] @@ -26,8 +26,8 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerBoolLitDisabled ("DisableMutationsFor inner: ConstBool" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + True = not b [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:30:7-12 #1 [sydtest-mutation-example-mutation-report] @@ -27,7 +27,7 @@ [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:29:3-12 #1 [sydtest-mutation-example-mutation-report] @@ -26,8 +26,8 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerBoolLitDisabled ("DisableMutationsFor inner: ConstBool" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + not (let inner = not b [sydtest-mutation-example-mutation-report] + in inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:21:7-12 #1 [sydtest-mutation-example-mutation-report] @@ -18,7 +18,7 @@ [sydtest-mutation-example-mutation-report]  withInnerDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerDisabled b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in True [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Like 'withInnerDisabled', but only @ConstBool@ is disabled inside [sydtest-mutation-example-mutation-report]  -- @inner@'s RHS. Other operators on @inner@'s RHS (notably the @Negate@ [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:20:3-12 #1 [sydtest-mutation-example-mutation-report] @@ -17,8 +17,8 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerDisabled ("DisableMutationsFor inner" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + True = not b [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Like 'withInnerDisabled', but only @ConstBool@ is disabled inside [sydtest-mutation-example-mutation-report]  -- @inner@'s RHS. Other operators on @inner@'s RHS (notably the @Negate@ [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:21:7-12 #1 [sydtest-mutation-example-mutation-report] @@ -18,7 +18,7 @@ [sydtest-mutation-example-mutation-report]  withInnerDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerDisabled b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in not (inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Like 'withInnerDisabled', but only @ConstBool@ is disabled inside [sydtest-mutation-example-mutation-report]  -- @inner@'s RHS. Other operators on @inner@'s RHS (notably the @Negate@ [sydtest-mutation-example-mutation-report] Testing mutation Negate at src/Example/LocalDisableLib.hs:20:3-12 #1 [sydtest-mutation-example-mutation-report] @@ -17,8 +17,8 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerDisabled ("DisableMutationsFor inner" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + not (let inner = not b [sydtest-mutation-example-mutation-report] + in inner) [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Like 'withInnerDisabled', but only @ConstBool@ is disabled inside [sydtest-mutation-example-mutation-report]  -- @inner@'s RHS. Other operators on @inner@'s RHS (notably the @Negate@ [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:58:19-20 #1 [sydtest-mutation-example-mutation-report] @@ -55,5 +55,5 @@ [sydtest-mutation-example-mutation-report]  -- @toggle b@ is fully instrumented. [sydtest-mutation-example-mutation-report]  withBindKept :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindKept toggle b = do [sydtest-mutation-example-mutation-report] - inner <- toggle b [sydtest-mutation-example-mutation-report] + inner <- toggle True [sydtest-mutation-example-mutation-report]  pure inner [sydtest-mutation-example-mutation-report] Testing mutation RemoveCase at src/Example/CaseLib.hs:7:19-16 #2 [sydtest-mutation-example-mutation-report] @@ -4,7 +4,6 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: RemoveCase removes one of the three alternatives. [sydtest-mutation-example-mutation-report]  describeList :: [a] -> String [sydtest-mutation-example-mutation-report]  describeList xs = case xs of [sydtest-mutation-example-mutation-report]  [] -> "empty" [sydtest-mutation-example-mutation-report] - [_] -> "singleton" [sydtest-mutation-example-mutation-report]  _ -> "longer" [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:17:22-27 #2 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = False || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/FunctionExceptionLib.hs:15:29-30 #2 [sydtest-mutation-example-mutation-report] @@ -12,7 +12,7 @@ [sydtest-mutation-example-mutation-report]  -- IntLit mutations (replacing the literal @1@) still apply. [sydtest-mutation-example-mutation-report]  {-# ANN addOneArithDisabled ("DisableMutation: Arith" :: String) #-} [sydtest-mutation-example-mutation-report]  addOneArithDisabled :: Int -> Int [sydtest-mutation-example-mutation-report] -addOneArithDisabled n = n + 1 [sydtest-mutation-example-mutation-report] +addOneArithDisabled n = n + -1 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Both Arith and IntLit mutations disabled on this function. [sydtest-mutation-example-mutation-report]  {-# ANN addOneArithAndIntLitDisabled ("DisableMutations: Arith, IntLit" :: String) #-} [sydtest-mutation-example-mutation-report] Testing mutation ListLit at src/Example/ListLib.hs:12:25-31 #2 [sydtest-mutation-example-mutation-report] @@ -9,7 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- Mutation sites: ListLit produces an empty-list mutant and a drop-first [sydtest-mutation-example-mutation-report]  -- mutant on the literal @[a, b]@. [sydtest-mutation-example-mutation-report]  pairConcat :: String -> String -> String [sydtest-mutation-example-mutation-report] -pairConcat a b = concat [a, b] [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Concatenate a three-element list of strings. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ListLit at src/Example/ListLib.hs:19:29-38 #2 [sydtest-mutation-example-mutation-report] @@ -16,4 +16,3 @@ [sydtest-mutation-example-mutation-report]  -- Mutation sites: ListLit produces an empty-list mutant, a drop-first mutant, [sydtest-mutation-example-mutation-report]  -- and a drop-last mutant on the literal @[a, b, c]@. [sydtest-mutation-example-mutation-report]  tripleConcat :: String -> String -> String -> String [sydtest-mutation-example-mutation-report] -tripleConcat a b c = concat [a, b, c] [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:17:31-36 #2 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || False [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:17:31-36 #2 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || b <= 0 [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/DoLib.hs:14:10-14 #2 [sydtest-mutation-example-mutation-report] @@ -11,5 +11,5 @@ [sydtest-mutation-example-mutation-report]  go :: Writer String () [sydtest-mutation-example-mutation-report]  go = do [sydtest-mutation-example-mutation-report]  tell "Hello" [sydtest-mutation-example-mutation-report] - if loud then tell "!" else pure () [sydtest-mutation-example-mutation-report] + if False then tell "!" else pure () [sydtest-mutation-example-mutation-report]  tell "\n" [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:17:22-27 #2 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a <= 0 || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation Arith at src/Example/Lib.hs:8:12-17 #2 [sydtest-mutation-example-mutation-report] @@ -5,4 +5,4 @@ [sydtest-mutation-example-mutation-report]  -- The literal '1' here is a mutation site: the plugin will also compile a [sydtest-mutation-example-mutation-report]  -- version where this returns @n + 0@ instead of @n + 1@. [sydtest-mutation-example-mutation-report]  addOne :: Int -> Int [sydtest-mutation-example-mutation-report] -addOne n = n + 1 [sydtest-mutation-example-mutation-report] +addOne n = n * 1 [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/OtherwiseLib.hs:12:5-10 #2 [sydtest-mutation-example-mutation-report] @@ -9,6 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- (otherwise = True, so @otherwise -> True@ is a semantic no-op). [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report] - | n < 0 = "negative" [sydtest-mutation-example-mutation-report] + | n > 0 = "negative" [sydtest-mutation-example-mutation-report]  | n == 0 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation IntLit at src/Example/Lib.hs:8:16-17 #2 [sydtest-mutation-example-mutation-report] @@ -5,4 +5,4 @@ [sydtest-mutation-example-mutation-report]  -- The literal '1' here is a mutation site: the plugin will also compile a [sydtest-mutation-example-mutation-report]  -- version where this returns @n + 0@ instead of @n + 1@. [sydtest-mutation-example-mutation-report]  addOne :: Int -> Int [sydtest-mutation-example-mutation-report] -addOne n = n + 1 [sydtest-mutation-example-mutation-report] +addOne n = n + -1 [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:11:20-34 #2 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:11:20-25 #2 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = False && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:17:22-36 #2 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = False [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:11:29-34 #2 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && b <= 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:36:19-20 #2 [sydtest-mutation-example-mutation-report] @@ -33,7 +33,7 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = not False [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LogicLib.hs:11:29-34 #2 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:37:7-12 #2 [sydtest-mutation-example-mutation-report] @@ -34,7 +34,7 @@ [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report]  -- by a @do@-block @<-@ statement instead of a @let@. The annotation [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:36:3-12 #2 [sydtest-mutation-example-mutation-report] @@ -33,8 +33,8 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + False = not b [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report]  -- by a @do@-block @<-@ statement instead of a @let@. The annotation [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:52:8-13 #2 [sydtest-mutation-example-mutation-report] @@ -49,7 +49,7 @@ [sydtest-mutation-example-mutation-report]  withBindDisabled :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindDisabled toggle b = do [sydtest-mutation-example-mutation-report]  inner <- toggle b [sydtest-mutation-example-mutation-report] - pure inner [sydtest-mutation-example-mutation-report] + pure False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control for 'withBindDisabled': no disable annotation, so the RHS [sydtest-mutation-example-mutation-report]  -- @toggle b@ is fully instrumented. [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:59:8-13 #2 [sydtest-mutation-example-mutation-report] @@ -56,4 +56,4 @@ [sydtest-mutation-example-mutation-report]  withBindKept :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindKept toggle b = do [sydtest-mutation-example-mutation-report]  inner <- toggle b [sydtest-mutation-example-mutation-report] - pure inner [sydtest-mutation-example-mutation-report] + pure False [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:36:15-20 #2 [sydtest-mutation-example-mutation-report] @@ -33,7 +33,7 @@ [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report]  withInnerKept :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerKept b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + let inner = False [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Same idea as 'withInnerDisabled', but the local binding is introduced [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:11:20-25 #2 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a <= 0 && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:29:3-12 #2 [sydtest-mutation-example-mutation-report] @@ -26,8 +26,8 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerBoolLitDisabled ("DisableMutationsFor inner: ConstBool" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + False = not b [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:20:3-12 #2 [sydtest-mutation-example-mutation-report] @@ -17,8 +17,8 @@ [sydtest-mutation-example-mutation-report]  {-# ANN withInnerDisabled ("DisableMutationsFor inner" :: String) #-} [sydtest-mutation-example-mutation-report]  withInnerDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerDisabled b = [sydtest-mutation-example-mutation-report] - let inner = not b [sydtest-mutation-example-mutation-report] + False = not b [sydtest-mutation-example-mutation-report]  in inner [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Like 'withInnerDisabled', but only @ConstBool@ is disabled inside [sydtest-mutation-example-mutation-report]  -- @inner@'s RHS. Other operators on @inner@'s RHS (notably the @Negate@ [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:58:19-20 #2 [sydtest-mutation-example-mutation-report] @@ -55,5 +55,5 @@ [sydtest-mutation-example-mutation-report]  -- @toggle b@ is fully instrumented. [sydtest-mutation-example-mutation-report]  withBindKept :: (Bool -> IO Bool) -> Bool -> IO Bool [sydtest-mutation-example-mutation-report]  withBindKept toggle b = do [sydtest-mutation-example-mutation-report] - inner <- toggle b [sydtest-mutation-example-mutation-report] + inner <- toggle False [sydtest-mutation-example-mutation-report]  pure inner [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:30:7-12 #2 [sydtest-mutation-example-mutation-report] @@ -27,7 +27,7 @@ [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerBoolLitDisabled b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Control: no disable annotation. Both @ConstBool@ and @Negate@ fire [sydtest-mutation-example-mutation-report]  -- on the @inner@ binding's RHS. [sydtest-mutation-example-mutation-report] Testing mutation ConstBool at src/Example/LocalDisableLib.hs:21:7-12 #2 [sydtest-mutation-example-mutation-report] @@ -18,7 +18,7 @@ [sydtest-mutation-example-mutation-report]  withInnerDisabled :: Bool -> Bool [sydtest-mutation-example-mutation-report]  withInnerDisabled b = [sydtest-mutation-example-mutation-report]  let inner = not b [sydtest-mutation-example-mutation-report] - in inner [sydtest-mutation-example-mutation-report] + in False [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | Like 'withInnerDisabled', but only @ConstBool@ is disabled inside [sydtest-mutation-example-mutation-report]  -- @inner@'s RHS. Other operators on @inner@'s RHS (notably the @Negate@ [sydtest-mutation-example-mutation-report] Killed: 103 [sydtest-mutation-example-mutation-report]  (of which timed out: 0) [sydtest-mutation-example-mutation-report] Survived: 0 [sydtest-mutation-example-mutation-report] Uncovered: 0 [sydtest-mutation-example-mutation-report] Skipped: 0 [sydtest-mutation-example-mutation-report] Testing mutation RemoveCase at src/Example/CaseLib.hs:7:19-16 #3 [sydtest-mutation-example-mutation-report] @@ -4,7 +4,6 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: RemoveCase removes one of the three alternatives. [sydtest-mutation-example-mutation-report]  describeList :: [a] -> String [sydtest-mutation-example-mutation-report]  describeList xs = case xs of [sydtest-mutation-example-mutation-report]  [] -> "empty" [sydtest-mutation-example-mutation-report]  [_] -> "singleton" [sydtest-mutation-example-mutation-report] - _ -> "longer" [sydtest-mutation-example-mutation-report] Testing mutation ListLit at src/Example/ListLib.hs:19:29-38 #3 [sydtest-mutation-example-mutation-report] @@ -16,4 +16,3 @@ [sydtest-mutation-example-mutation-report]  -- Mutation sites: ListLit produces an empty-list mutant, a drop-first mutant, [sydtest-mutation-example-mutation-report]  -- and a drop-last mutant on the literal @[a, b, c]@. [sydtest-mutation-example-mutation-report]  tripleConcat :: String -> String -> String -> String [sydtest-mutation-example-mutation-report] -tripleConcat a b c = concat [a, b, c] [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:17:22-27 #3 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a >= 0 || b > 0 [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/OtherwiseLib.hs:12:5-10 #3 [sydtest-mutation-example-mutation-report] @@ -9,6 +9,6 @@ [sydtest-mutation-example-mutation-report]  -- (otherwise = True, so @otherwise -> True@ is a semantic no-op). [sydtest-mutation-example-mutation-report]  classify :: Int -> String [sydtest-mutation-example-mutation-report]  classify n [sydtest-mutation-example-mutation-report] - | n < 0 = "negative" [sydtest-mutation-example-mutation-report] + | n >= 0 = "negative" [sydtest-mutation-example-mutation-report]  | n == 0 = "zero" [sydtest-mutation-example-mutation-report]  | otherwise = "positive" [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:17:31-36 #3 [sydtest-mutation-example-mutation-report] @@ -14,4 +14,4 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @||@ produces a @&&@ alternative. [sydtest-mutation-example-mutation-report]  eitherPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -eitherPositive a b = a > 0 || b > 0 [sydtest-mutation-example-mutation-report] +eitherPositive a b = a > 0 || b >= 0 [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:11:29-34 #3 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a > 0 && b >= 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Testing mutation Cmp at src/Example/LogicLib.hs:11:20-25 #3 [sydtest-mutation-example-mutation-report] @@ -8,7 +8,7 @@ [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report]  -- Mutation sites: LogicOp on @&&@ produces a @||@ alternative. [sydtest-mutation-example-mutation-report]  bothPositive :: Int -> Int -> Bool [sydtest-mutation-example-mutation-report] -bothPositive a b = a > 0 && b > 0 [sydtest-mutation-example-mutation-report] +bothPositive a b = a >= 0 && b > 0 [sydtest-mutation-example-mutation-report]  [sydtest-mutation-example-mutation-report]  -- | True iff at least one argument is strictly positive. [sydtest-mutation-example-mutation-report]  -- [sydtest-mutation-example-mutation-report] Phase: installPhase [sydtest-mutation-example-mutation-report] Phase: fixupPhase [sydtest-mutation-example-mutation-report] shrinking RPATHs of ELF executables and libraries in /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report [sydtest-mutation-example-mutation-report] checking for references to /build/ in /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report... [sydtest-mutation-example-mutation-report] patching script interpreter paths in /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report [post-build-hook] Pushing 1 paths (0 are already present) using zstd to cache sydtest ⏳ [post-build-hook]  [post-build-hook] Pushing /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report (86.60 KiB) [post-build-hook]  [post-build-hook] All done. [post-build-hook] Uploading to the NixCI staging cache: /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [post-build-hook] copying 1 paths... [post-build-hook] copying path '/nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report' to 'https://cache.staging.nix-ci.com'... [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [post-build-hook] copying 0 paths... Progress: 1 of 3 built Building sydtest-mutation-example [sydtest-mutation-example] PASS: All 103 mutation(s) accounted for. [sydtest-mutation-example]  [sydtest-mutation-example] Killed: 103 [sydtest-mutation-example]  (of which timed out: 0) [sydtest-mutation-example] Survived: 0 [sydtest-mutation-example] Uncovered: 0 [sydtest-mutation-example] Skipped: 0 [sydtest-mutation-example]  [sydtest-mutation-example] Full report: /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report/report.txt [sydtest-mutation-example] Machine-readable report: /nix/store/4dvj2hi4iqs4w091902bplwbwxfqfk28-sydtest-mutation-example-mutation-report/report.json [post-build-hook] Uploading to cachix cache "sydtest": /nix/store/a6c81aysyg99qsw25228zwxa6sm0z6zc-sydtest-mutation-example [post-build-hook] Pushing 1 paths (1 are already present) using zstd to cache sydtest ⏳ [post-build-hook]  [post-build-hook] Pushing /nix/store/a6c81aysyg99qsw25228zwxa6sm0z6zc-sydtest-mutation-example (672.00 B) [post-build-hook]  [post-build-hook] All done. [post-build-hook] Uploading to the NixCI staging cache: /nix/store/a6c81aysyg99qsw25228zwxa6sm0z6zc-sydtest-mutation-example [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [post-build-hook] copying 0 paths... [post-build-hook] warning: 'warn-short-path-literals' is deprecated, use 'lint-short-path-literals = ignore' instead [post-build-hook] copying 0 paths... Progress: 2 of 3 built