 //   FilterFunction.
 //
 // - RenderFunction renders Mustache tags: {{name}} and {{#items}}...{{/items}}
-//   both invoke a RenderFunction
+//   both invoke a RenderFunction.
 //
-// - WillRenderFunction can process a value before it gets rendered
+// - WillRenderFunction can process a value before it gets rendered.
 //
 // - DidRenderFunction is symmetric to WillRenderFunction: it is called after a
-//   value has been rendered
+//   value has been rendered.
 
 
 // =============================================================================

  ]
  let rendering = template.render(Box(data))!

TODO: document why the string argument is optional
TODO: document how to wrap both a WillRenderFunction and DidRenderFunction
*/
public typealias DidRenderFunction = (tag: Tag, box: MustacheBox, string: String?) -> Void



  let template = Template(string: "{{# user }}{{ firstName }} {{# spy }}{{ lastName }}{{/ spy }}{{/ user }}")!
  
  // Prints:
  // {{ lastName }} at line 1 will render Flynn
  let data = [
