I'm not sure I like the naming of these properties. `TagName` or `CommitTree` sounds a bit weird for Func<> objects.

Maybe should we add a suffix (`Rewriter`, `Processor`, `Magic-o-Matic'er`, ....) to those names?