code: function(lambda) {
           return {
              d: function(x, logp) { return dpois(lambda, logp)(x); },
              p: function(q, lowerTail, logp) {
                 return ppois(lambda, lowerTail, logp)(q);
              },
              q: function(p, lowerTail, logp) {
                 return qpois(lambda, lowerTail, logp)(p);
              },
              r: function() { return rpois(lambda)(); }
           };
        }
docs: Returns an object representing a Poisson distribution
  for a given value of $\lambda > 0$, with properties `d`, `p`, `q`, `r`.
  ```
  pois(a, b).d(x, logp)            // same as dpois(a, b, logp)(x)
  pois(a, b).p(x, lowerTail, logp) // same as ppois(a, b, lowerTail, logp)(x)
  pois(a, b).q(x, lowerTail, logp) // same as qpois(a, b, lowerTail, logp)(x)
  pois(a, b).r()                   // same as rpois(a, b)()
  ```
  @memberof poisson