 
     /// Creates a function that, when called, invokes func with any additional partial arguments prepended to those provided to the new function.
     ///
-    /// :param: function to invoke
-    /// :param: parameters to pass the function when invoked
-    /// :return: Function with partial arguments prepended
+    /// - parameter function: to invoke
+    /// - parameter parameters: to pass the function when invoked
+    /// - returns: Function with partial arguments prepended
     public class func partial<T, E> (function: (T...) -> E, _ parameters: T...) -> ((T...) -> E) {
         return { (params: T...) -> E in
             typealias Function = [T] -> E


    /// Creates a function that executes passed function only after being called n times.
    ///
    /// :param: n Number of times after which to call function.
    /// :param: function Function to be called that does not take any params.
    /// :return: Function that can be called n times after which the callback function is called.
    public class func after<T>(num: Int, function: () -> T) -> (() -> T?) {
        let f = self.after(num) { (params: Any?...) -> T in
            return function()


    /// Invokes interceptor with the object and then returns object.
    ///
    /// - parameter object: Object to tap into.
    /// - parameter function: Callback function to invoke.
    /// - returns: Returns the object back.
    public class func tap<T>(object: T, function: (T) -> ()) -> T {
        function(object)
        return object
