 //   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.
 
 
 // =============================================================================

// =============================================================================
// MARK: - MustacheBox

public struct MustacheBox {
    
    struct Converter {
        let intValue: (() -> Int?)?
        let uintValue: (() -> UInt?)?
        let doubleValue: (() -> Double?)?
        let stringValue: (() -> String?)?
        let arrayValue: (() -> [MustacheBox]?)?
        let dictionaryValue: (() -> [String: MustacheBox]?)?
        
        init(

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