public virtual RuleFunction Rule(Rule r) { RuleFunction rf = @delegate.Rule(r); foreach (CodeGeneratorExtension ext in extensions) rf = ext.Rule(rf); return rf; }