lib/validate.js
function validate( opts, options ) {
	if ( !isObject( options ) ) {
		return new TypeError( 'transpose()::invalid input argument. Options argument must be an object. Value: `' + options + '`.' );
	}
	if ( options.hasOwnProperty( 'copy' ) ) {
		opts.copy = options.copy;
		if ( !isBoolean( opts.copy ) ) {
			return new TypeError( 'transpose()::invalid option. Copy option must be a boolean primitive. Option: `' + opts.copy + '`.' );
		}
	}
	return null;
}
function validate( opts, options ) {
	if ( !isObject( options ) ) {
		return new TypeError( 'transpose()::invalid input argument. Options argument must be an object. Value: `' + options + '`.' );
	}
	if ( options.hasOwnProperty( 'copy' ) ) {
		opts.copy = options.copy;
		if ( !isBoolean( opts.copy ) ) {
			return new TypeError( 'transpose()::invalid option. Copy option must be a boolean primitive. Option: `' + opts.copy + '`.' );
		}
	}
	return null;
}
VALIDATE // 
FUNCTION: validate( opts, options )
Validates function options.

@param {Object} opts - destination for validated options
@param {Object} options - function options
@param {Boolean} [options.copy] - boolean indicating whether to return a new data structure
@returns {Null|Error} null or an error