I'd prefer delegation instead of inheritance here.

`SnippetGenerator` should be passed a `FunctionNameSanitizer` instance instead. That also makes it easier to test various `FunctionNameSanitizer` implementations in isolation.