   let template = Template(string: "{{# user }}{{ firstName }} {{ lastName }}{{/ user }}")!
   template.extendBaseContext(Box(willRender))
   
-  // Renders "Errol Flynn"
-  //
   // Prints:
   // {{# user }} at line 1 will render { firstName = Errol; lastName = Flynn; }
   // {{ firstName }} at line 1 will render Errol

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


// =============================================================================

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

The string argument of DidRenderFunction is optional: it is nil if and only if
the tag could not render because of a rendering error.

:see: WillRenderFunction
*/
public typealias DidRenderFunction = (tag: Tag, box: MustacheBox, string: String?) -> Void

