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 3s 2s 2s 6s 3s
Eval 6s 27s 27s 33s 0s
Build 17s 28s 20s 37s 0s
Suite 3s 58s 33s 37s 3s

Timeline

0s10s20s30s