function accessors( x ) {
	var dt = dtype( x );
	if ( isAccessorArray( x ) ) {
		return {
			'accessorProtocol': true,
			'accessors': [
				accessorGetter( dt ),
				accessorSetter( dt )
			]
		};
	}
	return {
		'accessorProtocol': false,
		'accessors': [
			getter( dt ),
			setter( dt )
		]
	};
}
Returns element accessors for a provided array-like object.

## Notes

-   The returned object has the following properties:

    -   **accessorProtocol**: `boolean` indicating whether the provided array-like object supports the get/set protocol (i.e., uses accessors for getting and setting elements).
    -   **accessors**: a two-element array whose first element is an accessor for retrieving an array element and whose second element is an accessor for setting an array element.

@param {Collection} x - array-like object
@returns {Object} object containing accessor data

@example
var x = [ 1, 2, 3, 4 ];
var obj = accessors( x );
// returns {...}

var bool = obj.accessorProtocol;
// returns false

var fcns = obj.accessors;
// returns [ <Function>, <Function> ]

var v = fcns[ 0 ]( x, 2 );
// returns 3