fe6d9ba4

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

Don't mutate compiler-generated code in the instrumenter

Stock- and anyclass-derived instance methods (whose MatchGroup carries a
Generated origin) and the dictionary/evidence VarBinds the typechecker
materialises for an instance (e.g. $dShow, $dEnum) were being instrumented,
with source spans pointing at the deriving clause or the instance head. That
produced nonsense diffs like `deriving (Show, (\_ _ -> False), ...)` and
`instance (\_ -> []) where`, and the resulting mutants — living in generated
code rather than the user's own source — could never be killed by a test, so
they surfaced as permanently uncovered mutations.

Skip FunBinds with a Generated MatchGroup origin and evidence VarBinds. Add
Example.DerivingLib as a regression test (its manifest must stay empty) and
bump sydtest-mutation-plugin to 0.2.1.0.