docs: function createFlatten( d, opts ) {
  	var copy = false,
  		fcn;
  	if ( !isPositiveIntegerArray( d ) ) {
  		throw new TypeError( 'createFlatten()::invalid input argument. Dimensions must be a positive integer array. Value: `' + d + '`.' );
  	}
  	if ( arguments.length > 1 ) {
  		if ( !isObject( opts ) ) {
  			throw new TypeError( 'createFlatten()::invalid input argument. Options argument must be an object. Value: `' + opts + '`.' );
  		}
  		if ( opts.hasOwnProperty( 'copy' ) ) {
  			copy = opts.copy;
  			if ( !isBoolean( copy ) ) {
  				throw new TypeError( 'createFlatten()::invalid option. Copy option must be a boolean primitive. Option: `' + copy + '`.' );
  			}
  		}
  	}
  	fcn = createMatrixFcn( d );
  	if ( copy ) {
  		return function flatten( arr ) {
  			return createCopy( fcn( arr ) );
  		};
  	}
  	return fcn;
  }