     template.render(Box(["x": 1]))!
 
 `Filter()` can take several types of functions, depending on the type of filter
-you want to build. The example above processes `Int`. Other filters are:
-
-- Filters that process values:
+you want to build. The example above processes `Int` values. There are three
+types of filters:
+
+- Values filters:
 
     - `(MustacheBox) throws -> MustacheBox`
     - `(T?) throws -> MustacheBox` (Generic)
-
-- Filters that perform post-rendering:
+    - `([MustacheBox]) throws -> MustacheBox` (Multiple arguments)
+
+- Post-rendering filters:
 
     - `(Rendering) throws -> Rendering`
 
-- Filters that perform custom rendering:
+- Custom rendering filters:
 
     - `(MustacheBox, RenderingInfo) throws -> Rendering`
     - `(T?, RenderingInfo) throws -> Rendering` (Generic)
 
-- Filters that accept several arguments, built with `VariadicFilter()`:
-
-    - `(boxes: [MustacheBox]) throws -> MustacheBox`
+See the documentation of the `Filter()` functions.
 */
 public typealias FilterFunction = (box: MustacheBox, partialApplication: Bool) throws -> MustacheBox
 
 
 // -----------------------------------------------------------------------------
-// MARK: - Filters that process values
+// MARK: - Values Filters
 
 /**
 Builds a filter that takes a single argument.

        } else {
            // No more argument: compute final value
            return try filter(boxes)
        }
    }
}

        return try filter(box.value as? T)
    }
}

/**
Returns a filter than accepts any number of arguments.
