 }
 
 /**
-This function is documented with the FilterFunction type.
-
-:see: FilterFunction
+Builds a filter that takes a single argument of type `T` and performs custom
+rendering.
+
+If the template argument evaluates to a missing value, or a value which is not
+of type T, the filter returns an error of domain `GRMustacheErrorDomain` and
+code `GRMustacheErrorCodeRenderingError`.
+
+If the template provides more than one argument, the filter returns an error of
+domain `GRMustacheErrorDomain` and code `GRMustacheErrorCodeRenderingError`.
+
+See the documentation of the `RenderFunction` type for a detailed discussion of
+the `RenderingInfo` and `Rendering` types.
+
+For an example of such a filter, see the documentation of
+`func Filter(filter: (Int, RenderingInfo, NSErrorPointer) -> Rendering?) -> FilterFunction`.
+This example processes `Int` instead of `T`, but the idea is the same.
+
+:param: filter a function `(T, RenderingInfo, NSErrorPointer) -> Rendering?`
+:returns: a FilterFunction
 */
 public func Filter<T>(filter: (T, RenderingInfo, NSErrorPointer) -> Rendering?) -> FilterFunction {
-    // The roles of core functions are clear:
-    // - transforming values is the role of FilterFunction
-    // - performing custom rendering is the role of RenderFunction
-    //
-    // Hence, a "filter that performs custom rendering" is simply a
-    // FilterFunction which returns a RenderFunction:
     return Filter { (t: T, error: NSErrorPointer) in
+        // Box a RenderFunction
         return Box { (info: RenderingInfo, error: NSErrorPointer) in
             return filter(t, info, error)
         }

}

/**
This function is documented with the FilterFunction type.

:see: FilterFunction
*/
public func Filter(filter: (Int?, RenderingInfo, NSErrorPointer) -> Rendering?) -> FilterFunction {
    // The roles of core functions are clear:
    // - transforming values is the role of FilterFunction
    // - performing custom rendering is the role of RenderFunction
    //
    // Hence, a "filter that performs custom rendering" is simply a
    // FilterFunction which returns a RenderFunction:
    return Filter { (int: Int?, error: NSErrorPointer) in
        return Box { (info: RenderingInfo, error: NSErrorPointer) in
            return filter(int, info, error)
        }

}

/**
Builds a filter that takes a single `UInt?` argument and performs custom
rendering.

If the template argument evaluates to a missing value, or a value which is not
convertible to UInt (see `MustacheBox.uintValue`), the filter is given nil.

If the template provides more than one argument, the filter returns an error of
domain `GRMustacheErrorDomain` and code `GRMustacheErrorCodeRenderingError`.

See the documentation of the `RenderFunction` type for a detailed discussion of
the `RenderingInfo` and `Rendering` types.

For an example of such a filter, see the documentation of
`func Filter(filter: (Int, RenderingInfo, NSErrorPointer) -> Rendering?) -> FilterFunction`.
This example processes `Int` instead of `UInt?`, but the idea is the same.

:param: filter a function `(UInt?, RenderingInfo, NSErrorPointer) -> Rendering?`
:returns: a FilterFunction
*/
public func Filter(filter: (UInt?, RenderingInfo, NSErrorPointer) -> Rendering?) -> FilterFunction {
    return Filter { (uint: UInt?, error: NSErrorPointer) in
        // Box a RenderFunction
        return Box { (info: RenderingInfo, error: NSErrorPointer) in
            return filter(uint, info, error)
        }
