         p-double (double-array p)]
     (new EnumeratedIntegerDistribution x-int p-double)))
 (defn exponential
-  [mean]
-  (new ExponentialDistribution mean))
+  [rate]
+  (new ExponentialDistribution (/ 1 rate)))
 (defn f-distribution
   [df1 df2]
   (new FDistribution df1 df2))
 (defn gamma
   [shape rate]
   (new GammaDistribution shape (/ 1 rate)))
+(defrecord GeneralizedDoubleParetoDistribution [shape scale])
+(defn gdp
+  [shape scale]
+  (GeneralizedDoubleParetoDistribution. shape scale))
 (defn geometric
   [p]
   (new GeometricDistribution p))


(def probit (cdf (normal 0 1)))

(defprotocol second-central-moment
  (variance [d]))
(extend-protocol second-central-moment

  (P
    ([d] (fn [x] (.probability d x)))
    ([d x] (.probability d x)))
  GeneralizedDoubleParetoDistribution
  (P
    ([d] (fn [x] 0))
    ([d x] 0)
    )
  )
(defprotocol density-function
  (pdf [d] [d x])
  (log-pdf [d] [d x]))
