docs: function _Writable() {
  	var self = this;
  	this._zUpstreamStreams = [];
  	this._writableState.zEnded = false;
  	this._writableState.zError;
  
  	// Maintain zUpstreamStreams on pipe and unpipe
  	this.on('pipe', function(source) {
  		self._zUpstreamStreams.push(source);
  	});
  
  	this.on('unpipe', function(source) {
  		self._zUpstreamStreams = self._zUpstreamStreams.filter(function(src) {
  			return src !== source;
  		});
  	});
  
  	self.firstFinish(function() {
  		self._writableState.zEnded = true;
  	});
  
  	self.firstUnignoredError(function(error) {
  		self._writableState.zError = error;
  	});
  }