function uncurried() {
		var f;
		var i;

		f = fcn;
		if ( len ) {
			if ( len > arguments.length ) {
				throw new Error( format( 'insufficient arguments. Expected %u argument(s) and only received %u argument(s).', len, arguments.length ) );
			}
			for ( i = 0; i < len; i++ ) {
				if ( isFunction( f ) ) {
					f = f.call( context, arguments[ i ] );
				} else {
					throw new Error( format( 'invalid invocation. The configured arity exceeds the number of possible curried function invocations. Expected: `%u`. Actual: `%u`.', len, i ) );
				}
			}
			return f;
		}
		for ( i = 0; i < arguments.length; i++ ) {
			if ( isFunction( f ) ) {
				f = f.call( context, arguments[ i ] );
			} else {
				throw new Error( format( 'invalid invocation. Number of arguments exceeds the number of possible curried function invocations. Expected: `%u`. Actual: `%u`.', arguments.length, i ) );
			}
		}
		return f;
	}
Uncurried function.

@private
@param {...*} args - arguments
@throws {Error} if arity is set, must provide expected number of input arguments
@throws {Error} configured arity must be compatible with curried function
@throws {Error} if arity is not set, number of arguments must be compatible with curried function
@returns {*} function result