0ffe70ac

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

Consolidate mutation settings into Maybe MutationSettings sum type

Replace the 14 flat settingMutation* fields on Settings with a single
settingMutation :: Maybe MutationSettings, where MutationSettings carries
a mutationMode sum that selects one of four sub-records (coverage parent,
coverage child, mutation parent, mutation child).  This makes mutation
mode invariants type-level: the child-only options (output file,
baseline file) sit on the child record, the parent-only options
(report dir, suite exes, child mem limit, jobs, retry) sit on the
parent records, and exhaustiveness checking now catches missing modes
in the dispatcher.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 2s 2s 2s
Eval 3s 32s 32s 35s
Build 10s 16m26s - -
Test - - - -
Deploy - - - -
Suite 0s 17m01s - -

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s3m3m20s3m40s4m4m20s