docs: function(decoration) {
  		var slice = [].slice;
  		return function(base) {
  			return function() {
  				var argv, callback, result, that = this;
  				argv = 1 <= arguments.length ? slice.call(arguments, 0) : [];
  				result = void 0;
  				callback = function() {
  					return (result = base.apply(that, argv));
  				};
  				decoration.apply(this, [callback].concat(argv));
  				return result;
  			};
  		};
  	}