function Node( value ) { // eslint-disable-line stdlib/no-redeclare
	// Why getters? Because some of the list APIs will return the list "node", not the value. In which case, the node API is no longer private and we have to guard against users mucking about (deleting, updating, etc) with property values (in particular, the `next` and `prev` properties).
	defineProperty( this, 'next', {
		'configurable': false,
		'enumerable': true,
		'get': function get() { // eslint-disable-line no-restricted-syntax
			return this._next;
		}
	});
	defineProperty( this, 'prev', {
		'configurable': false,
		'enumerable': true,
		'get': function get() { // eslint-disable-line no-restricted-syntax
			return this._prev;
		}
	});
	this.value = value;

	defineProperty( this, '_next', {
		'configurable': false,
		'enumerable': false,
		'writable': true,
		'value': null
	});
	defineProperty( this, '_prev', {
		'configurable': false,
		'enumerable': false,
		'writable': true,
		'value': null
	});

	return this;
}
List node constructor.

@private
@constructor
@param {*} value - node value
@returns {Node} Node instance

@example
var node = new Node( 'foo' );
// returns <Node>