code: function(size, prob) {
           return {
              d: function(x, logp) { return dnbinom(size, prob, logp)(x); },
              p: function(q, lowerTail, logp) {
                 return pnbinom(size, prob, lowerTail, logp)(q);
              },
              q: function(p, lowerTail, logp) {
                 return qnbinom(size, prob, lowerTail, logp)(p);
              },
              r: function() { return rnbinom(size, prob)(); }
           };
        }
docs: Returns an object representing a negative binomial distribution with
  given parameters `size` and `prob`.  The object has
  properties `d`, `p`, `q`, `r`.
  
  `size` must be strictly positive, and `prob` must be in `(0, 1]`.
  
  ```
  nbinom(size, prob).d(x, logp)            // same as dnbinom(size, prob, logp)(x)
  nbinom(size, prob).p(x, lowerTail, logp) // same as pnbinom(size, prob, lowerTail, logp)(x)
  nbinom(size, prob).q(x, lowerTail, logp) // same as qnbinom(size, prob, lowerTail, logp)(x)
  nbinom(size, prob).r()                   // same as rnbinom(size, prob)()
  ```
  @memberof nbinom