code: function(prob) {
           return {
              d: function(x, logp) { return dgeom(prob, logp)(x); },
              p: function(q, lowerTail, logp) {
                 return pgeom(prob, lowerTail, logp)(q);
              },
              q: function(p, lowerTail, logp) {
                 return qgeom(prob, lowerTail, logp)(p);
              },
              r: function() { return rgeom(prob)(); }
           };
        }
docs: Returns an object representing an geometric distribution with a
  given probability parameter $0 < p \leq 1$,
  with properties `d`, `p`, `q`, `r`.
  ```
  geom(prob).d(x, logp)            // same as dgeom(prob, logp)(x)
  geom(prob).p(x, lowerTail, logp) // same as pgeom(prob, lowerTail, logp)(x)
  geom(prob).q(x, lowerTail, logp) // same as qgeom(prob, lowerTail, logp)(x)
  geom(prob).r()                   // same as rgeom(prob)()
  ```
  @memberof geometric