private Func <IReadOnlyList <object>, object> EvaluateWithTemplates(string templateName, Templates templates) => (IReadOnlyList <object> args) => { var newScope = this.ConstructScope(templateName, args.ToList(), templates.AllTemplates); return(templates.Evaluate(templateName, newScope)); };