úÎNhI F      !"#$%&'()*+,-./01234 5 6 7 8 9 : ; < = > ? @ A B C D E None)simple wrapper for adding a % at the end.join lines togethermake lists into lines in text.None The function  applies on a MuOP7 determining if transformation is between same values.FGHIJKL M NOPQRSTU  LKJIHGF M NOPQRSTUNoneHM Tapply a mutating function on a piece of code one at a time like somewhere (from so) The function ò does two filters. For the first, it removes spurious transformations like "Int 1 ~~> Int 1". Secondly, it tries to apply the transformation to the given program on some element if it does not succeed, then we discard that transformation.    None   NoneV*Datatype to hold results of the entire runVGiven the list of tests suites to check, run one test suite at a time on all mutants.W!Run one test suite on all mutantsXXGiven the filename, modulename, test to evaluate, evaluate, and return result as a pair. …t = I.runInterpreter (evalMethod "Examples/QuickCheckTest.hs" "Examples.QuickCheckTest" "quickCheckResult idEmp)YSummarize the entire runVZ[\]^_`abcdefgWXYVZ[\]^_`abcdefgWXY Safe-Inferred The + function generates subsets of a given sizeThe Q function produces all possible pairings, and applies the given function to eachThe / function lazily generates filenames of mutantsThe M function replaces first element in a list given old and new values as a pairThe U function takes a random generator and chooses a random sample subset of given size.The ` function takes a random generator, and a fraction and returns subset of size given by fractionThe 8 function removes element at index specified from a list The  : function swaps two elements in a list given their indices!The !J generates a list of lists where each element has been swapped by another  !  !  !  !None"all available operators#comparison operators [" ","", " =","=", "/=", "=="]all available operators$!predicates ["pred", "id", "succ"]all available operators%&binary arithmetic ["+", "-", "*", "/"]all available operators&Kfunctions on lists ["sum", "product", "maximum", "minimum", "head", "last"]all available operators"#$%&h"#$%&#$%&""#$%&hNone 'íThe configuration options if 1 is provided, all mutants are selected for that kind, and 0 ensures that no mutants are picked for that kind. Any fraction in between causes that many mutants to be picked randomly from the available pool)6Mutation operators on operator or function replacement*2Mutate pattern matches for functions? for example 'first [] = Nothing first (x:_) = Just x is mutated to 'first (x:_) = Just x first [] = Nothing+AMutates integer values by +1 or -1 or by replacing it with 0 or 1,negate if conditions, that is if True then 1 else 0becomes if (not True) then 1 else 0-3negate guarded booleans in case statements, that is &case v of True -> 1 otherwise -> 0becomes *case v of (not True) -> 1 otherwise -> 0.&Maximum number of mutants to generate./aGeneration mode, can be traditional (firstOrder) and higher order (higher order is experimental)3The default configuration '()*+,-./0123 '()*+,-./0123 021'()*+,-./3'()*+,-./0213 NoneHIM 4The 4D function is a wrapper to genMutantsWith with standard configuraton5The 5À function takes configuration function to mutate, filename the function is defined in, and produces mutants in the same directory as the filename, and returns the number of mutants produced.6“Mutating a function's code using a bunch of mutation operators (In all the three mutate functions, we assume working with functions declaration.)8€Given a function, generate all mutants after applying applying op once (op might be applied at different places).E.g.: op = " "==' ">" and there are two instances of "<"99is the parsed expression the function we are looking for?:~Generate all operators for permutating pattern matches in a function. We don't deal with permutating guards and case for now.;Ugenerates transformations that removes one pattern match from a function definition.<)generate sub-arrays with one less element=0Parse a module. Input is the content of the fileC&negating boolean in if/else statementsDnegating boolean in Guards456789:;<=>?@ABCD456789:;<=>?@ABCD456789:;<=>?@ABCD456789:;<=>?@ABCD NoneEPerform mutation analysisEEEEi    !"#$%&'()*+,-./01123456789:;< = > ? @ A B C D E F G H I J K L M NOPQRSTUVWXYZ[\]^_`ab_cdefgghijklmnopMuCheck-0.2.0.0Test.MuCheck.Utils.PrintTest.MuCheck.MuOpTest.MuCheck.Utils.SybTest.MuCheck.TestAdapterTest.MuCheck.InterpreterTest.MuCheck.Utils.CommonTest.MuCheck.OperatorsTest.MuCheck.ConfigTest.MuCheck.Mutation Test.MuCheck./.showASshowAtt catchOutputMutable==>MuOpsamemkMp'==>**==>*~~>once relevantOps Summarizable testSummary isSuccess isFailureisOtherSummaryMutantFilenameInterpreterOutputmutantCheckSummarychoosecoupling genFileNamesreplacesamplesampleFremEltswapElts genSwappedallOps comparatorspredNums binAriths arithListsConfigmuOpsdoMutatePatternMatchesdoMutateValuesdoNegateIfElsedoNegateGuards maxNumMutantsgenModeGenerationModeFirstAndHigherOrderFirstOrderOnly defaultConfig genMutantsgenMutantsWithmutatesmutatesNmutate isFunctionD permMatchesremoveOnePMatch removeOneElemparseModuleFromFilegetDeclsputDecls selectValOps selectValOps' selectIntOpsselectIfElseBoolNegOpsselectGuardedBoolNegOpsmucheckGLDEQOQNNshowM$fMutableGuardedRhs$fMutableLiteral $fMutableDecl $fMutableExp $fMutableQOp$fMutableQName $fMutableName $fShowMuOpTSSumrunCodeOnMutants evalMethodmultipleCheckSummarytssumNumMutants tssumAlive tssumErrorstssumLogTSumtsumNumMutants tsumLoadError tsumNotKilled tsumKilled tsumOtherstsumLog mySummaryFnvarfn