docs: function _rmdirp (directory, callback) {
  
  			if ("undefined" === typeof directory) {
  				throw new ReferenceError("missing \"directory\" argument");
  			}
  				else if ("string" !== typeof directory) {
  					throw new TypeError("\"directory\" argument is not a string");
  				}
  				else if ("" === directory.trim()) {
  					throw new Error("\"directory\" argument is empty");
  				}
  			else if ("undefined" === typeof callback) {
  				throw new ReferenceError("missing \"callback\" argument");
  			}
  				else if ("function" !== typeof callback) {
  					throw new TypeError("\"callback\" argument is not a function");
  				}
  			else {
  
  				isDirectoryProm(directory).then((exists) => {
  
  					return !exists ? Promise.resolve() : _emptyDirectoryProm(directory).then(() => {
  
  						return new Promise((resolve, reject) => {
  
  							rmdir(directory, (err) => {
  								return err ? reject(err) : resolve();
  							});
  
  						});
  
  					});
  
  				}).then(() => {
  					callback(null);
  				}).catch(callback);
  
  			}
  
  		}