66e96d8c

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Mutation: RemoveClause operator + operator sum type

Add a RemoveClause function-declaration mutation operator that removes one
equation from a multi-clause function binding by guarding the clause with
ifMutation, so the clause falls through (or hits a non-exhaustive MatchFail)
when active.

Model operators as a sum of kinds: MutationOperator carries the shared name
and description plus an operatorKind that is either an ExpressionOperator
(the original LHsExpr operators) or a FunctionDeclarationOperator (operating
on a binding's MatchGroup). RemoveClause lives in its own auto-discovered
module and is enabled/disabled uniformly via the registry.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 2s 2s 2s 0s
Eval 2s 40s 40s 42s 0s
Build 6s 53s 27s 33s 0s
Suite 0s 1m36s 42s 42s 0s

Timeline

0s10s20s30s40s