function validate( out, table ) {
	var fields;
	var tmp;
	var key;
	var i;

	if ( !isPlainObject( table ) ) {
		return new TypeError( format( 'invalid argument. Resolution table must be an object. Value: `%s`.', table ) );
	}
	fields = objectKeys( out );
	for ( i = 0; i < fields.length; i++ ) {
		key = fields[ i ];
		if ( hasOwnProp( table, key ) ) {
			tmp = table[ key ];
			if ( !isFunction( tmp ) && !isNull( tmp ) ) {
				return new TypeError( format( 'invalid argument. Resolution table `%s` field value must be either a function or null. Value: `%s`.', key, tmp ) );
			}
			out[ key ] = tmp;
		}
	}
	return null;
}
Validates a resolution table object.

@private
@param {Object} out - destination object
@param {Object} table - resolution table object
@param {(Function|null)} [table.number] - function to invoke upon receiving a number
@param {(Function|null)} [table.complex] - function to invoke upon receiving a complex number
@param {(Function|null)} [table.array] - function to invoke upon receiving an array-like object
@param {(Function|null)} [table.ndarray] - function to invoke upon receiving an ndarray-like object
@returns {(Error|null)} null or an error object

@example
var out = {};
var table = {
    'number': null,
    'complex': null,
    'array': null,
    'ndarray': null
};
var err = validate( out, table );
if ( err ) {
    throw err;
}