diff --git a/random/bernoulli.lisp b/random/bernoulli.lisp
index 5e6ba48c673b5030cbb0b5c057b2f87e6f280de3..e3259a7e1ee2944f5b0b6e25029da0a5a1a9bc9d 100644
--- a/random/bernoulli.lisp
+++ b/random/bernoulli.lisp
@@ -20,6 +20,7 @@
 
 (in-package :gsl)
 
+(export 'bernoulli)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'bernoulli))
      &key probability)
diff --git a/random/beta.lisp b/random/beta.lisp
index f830f505b41c756cd4f2a8f62e77dc583193a454..e63ab29b29727b40d8488ea36b96e36f3e88755a 100644
--- a/random/beta.lisp
+++ b/random/beta.lisp
@@ -20,6 +20,7 @@
 
 (in-package :gsl)
 
+(export 'beta)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'beta)) &key a b)
   "gsl_ran_beta"
diff --git a/random/cauchy.lisp b/random/cauchy.lisp
index ef8c44db69373157d9ae3a8d7096eb70af452016..88913a7ea005bb5433eedd3d5dcdc990cdee7f80 100644
--- a/random/cauchy.lisp
+++ b/random/cauchy.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'cauchy)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'cauchy)) &key a)
   "gsl_ran_cauchy"
diff --git a/random/chi-squared.lisp b/random/chi-squared.lisp
index 4c0b2ccb0925376de9847198510b9bd50e75b667..6f2ed09f4f18b91957891b18352783ef7ca5c588 100644
--- a/random/chi-squared.lisp
+++ b/random/chi-squared.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'chi-squared)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'chi-squared)) &key nu)
   "gsl_ran_chisq"
diff --git a/random/dirichlet.lisp b/random/dirichlet.lisp
index 17a7668745ed9d428bfd142ff0a20df0367f372a..1618e48620041b0bfac26a15a4f90fe25d63aa7f 100644
--- a/random/dirichlet.lisp
+++ b/random/dirichlet.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'dirichlet)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'dirichlet))
      &key alpha (theta (vdf (dim0 alpha))))
diff --git a/random/discrete.lisp b/random/discrete.lisp
index c0bf6c0620c8920d8045cfb734690e625474de58..c0dd53a8ecdee4762721ec6fe33ad9052cc40c91 100644
--- a/random/discrete.lisp
+++ b/random/discrete.lisp
@@ -35,6 +35,7 @@
   generally as ``weights'')---the preprocessor will normalize appropriately.
   This return value is used as an argument to #'discrete.")
 
+(export 'discrete)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'discrete))
      &key table)
diff --git a/random/exponential-power.lisp b/random/exponential-power.lisp
index bcc9eeea3237c9af14a573eccf9a26df5d3e245f..a5f4844893ab0841e136cd8d4d4e10841ac40b24 100644
--- a/random/exponential-power.lisp
+++ b/random/exponential-power.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'exponential-power)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'exponential-power))
      &key a b)
diff --git a/random/exponential.lisp b/random/exponential.lisp
index 574a2af17a7c0908782059086c4fef122a0b734b..940497f28e3517230d8b859e692d2969b65801c1 100644
--- a/random/exponential.lisp
+++ b/random/exponential.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'exponential)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'exponential))
      &key mu)
diff --git a/random/fdist.lisp b/random/fdist.lisp
index 9710abf64ea1157006367e072c2942bf4ba6689c..cfd22c2fd1d5a009e11621459d1fb1906f30665d 100644
--- a/random/fdist.lisp
+++ b/random/fdist.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'fdist)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'fdist)) &key nu1 nu2)
   "gsl_ran_fdist"
diff --git a/random/flat.lisp b/random/flat.lisp
index 5017d88c85ebd20e3a7a5a6a0c2359a0d85843cb..4841913d3b285cdb1ff9b879d075553ecebf1c51 100644
--- a/random/flat.lisp
+++ b/random/flat.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'flat)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'flat)) &key a b)
   "gsl_ran_flat"
diff --git a/random/gamma.lisp b/random/gamma.lisp
index 0327a046c90a61433fec84a78c8403798868695d..d02a4c401bda5e0e3688b4f8c0ee230f20c71d7a 100644
--- a/random/gamma.lisp
+++ b/random/gamma.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'gamma)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gamma)) &key a b)
   "gsl_ran_gamma"
@@ -37,6 +38,7 @@
    is known as the Erlang distribution.  The variates are computed using
    the algorithms from Knuth (vol 2).")
 
+(export 'gamma-mt)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gamma-mt)) &key a b)
   "gsl_ran_gamma_mt"
diff --git a/random/gaussian-bivariate.lisp b/random/gaussian-bivariate.lisp
index b00bf7734101e0607327ad33f75f780d4a62d640..2c72ecd7de8b61ffdc290ecfe3f84e8866056260 100644
--- a/random/gaussian-bivariate.lisp
+++ b/random/gaussian-bivariate.lisp
@@ -23,6 +23,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'gaussian-bivariate)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gaussian-bivariate))
      &key sigma-x sigma-y rho)
diff --git a/random/gaussian-tail.lisp b/random/gaussian-tail.lisp
index e4881e5bd107125338b1286785bf75b3a4d698c1..f2b0817b5ad9232fa36ca500ab0c501fca709c63 100644
--- a/random/gaussian-tail.lisp
+++ b/random/gaussian-tail.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'gaussian-tail)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gaussian-tail))
      &key a sigma)
@@ -50,6 +51,7 @@
   for a Gaussian tail distribution with standard deviation sigma and
   lower limit a, using the formula given for gaussian-tail.")
 
+(export 'ugaussian-tail)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'ugaussian-tail))
      &key a)
diff --git a/random/gaussian.lisp b/random/gaussian.lisp
index af4009d263d0204aa359340f03be1e693bb720aa..d714a3d2363d8a74b1b1f6c50aa4eb1242bf85e8 100644
--- a/random/gaussian.lisp
+++ b/random/gaussian.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'gaussian)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gaussian))
      &key sigma)
@@ -48,6 +49,7 @@
   "Compute the probability density p(x) at x
    for a Gaussian distribution with standard deviation sigma.")
 
+(export 'gaussian-ziggurat)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gaussian-ziggurat))
      &key sigma)
@@ -60,6 +62,7 @@
    Marsaglia-Tsang ziggurat method. The Ziggurat algorithm
    is the fastest available algorithm in most cases.")
 
+(export 'gaussian-ratio-method)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gaussian-ratio-method))
      &key sigma)
@@ -71,6 +74,7 @@
   "Compute a Gaussian random variate using the Kinderman-Monahan-Leva
    ratio method.")
 
+(export 'ugaussian)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'ugaussian)) &key)
   "gsl_ran_ugaussian" (((mpointer generator) :pointer))
@@ -89,6 +93,7 @@
    equivalent to the #'gaussian-pdf with a standard deviation of one,
    sigma = 1.")
 
+(export 'ugaussian-ratio-method)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'ugaussian-ratio-method))
      &key)
diff --git a/random/generators.lisp b/random/generators.lisp
index d0177fbb2dfa7862701003985753c790364ba0e4..5e2f968302ee859d38a27bdfededd8edf251e568 100644
--- a/random/generators.lisp
+++ b/random/generators.lisp
@@ -77,6 +77,7 @@
   (:documentation
    "Sample from the probability distribution."))
 
+(export 'uniform)
 (defmfun sample ((source random-number-generator) (type (eql 'uniform)) &key)
   "gsl_rng_uniform" (((mpointer source) :pointer))
   :definition :method
@@ -91,6 +92,7 @@
    (the maximum number of bits that can be portably represented in a single
    :ulong.")
 
+(export 'uniform>0)
 (defmfun sample ((source random-number-generator) (type (eql 'uniform>0)) &key)
   "gsl_rng_uniform_pos" (((mpointer source) :pointer))
   :definition :method
@@ -102,6 +104,7 @@
    type 'uniform until a non-zero value is obtained.  You can use this
    function if you need to avoid a singularity at 0.0.")
 
+(export 'uniform-fixnum)
 (defmfun sample
     ((source random-number-generator) (type (eql 'uniform-fixnum))
      &key upperbound)
diff --git a/random/geometric.lisp b/random/geometric.lisp
index 26ba486d58f6f17d0e482978e83b4885d4d311b6..e38106bd29687c5a7bd8c7c28c27ac51f0cd1745 100644
--- a/random/geometric.lisp
+++ b/random/geometric.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'geometric)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'geometric))
      &key probability)
diff --git a/random/gumbel1.lisp b/random/gumbel1.lisp
index 89b0ca0a6c70f1d480e48c35a3a21477245eb695..fe33b907c99a990a81d7e88012669f3df7ccf2a1 100644
--- a/random/gumbel1.lisp
+++ b/random/gumbel1.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'geometric)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gumbel1)) &key a b)
   "gsl_ran_gumbel1"
diff --git a/random/gumbel2.lisp b/random/gumbel2.lisp
index 13eda47133f4975095302313e8f7fd00aa6d955f..ea692184c08ae63136252ed3de9c363f48383673 100644
--- a/random/gumbel2.lisp
+++ b/random/gumbel2.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'gumbel2)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'gumbel2)) &key a b)
   "gsl_ran_gumbel2"
diff --git a/random/hypergeometric.lisp b/random/hypergeometric.lisp
index 0771c725c636705532c932e5de16c5c2546657d2..a307cea408ac8e06289df5e0269a2f761b1abf65 100644
--- a/random/hypergeometric.lisp
+++ b/random/hypergeometric.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'hypergeometric)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'hypergeometric))
      &key n1 n2 tt)
diff --git a/random/landau.lisp b/random/landau.lisp
index 635c4de8e763f2a3f5a723f73fb966587d5d8ad4..087775a786f1246ada57aef01df1ee4e8f837fa5 100644
--- a/random/landau.lisp
+++ b/random/landau.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'landau)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'landau)) &key)
   "gsl_ran_landau"
diff --git a/random/laplace.lisp b/random/laplace.lisp
index e0089c97379c3499faf0a3113014320763a5fced..a8d7d37694b8a3e4e05f78538878dd8007a05ecf 100644
--- a/random/laplace.lisp
+++ b/random/laplace.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'laplace)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'laplace)) &key a)
   "gsl_ran_laplace"
diff --git a/random/levy.lisp b/random/levy.lisp
index df84970022d0a9f7b633e13a982516d7a1ec7f33..9a9589b805cfd0ec6e9cdbc8a0bae10984eeb42a 100644
--- a/random/levy.lisp
+++ b/random/levy.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'levy)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'levy)) &key c alpha)
   "gsl_ran_levy"
@@ -40,6 +41,7 @@
    For \alpha < 1 the tails of the distribution become extremely wide.
    The algorithm only works for 0 < alpha <= 2.")
 
+(export 'levy-skew)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'levy-skew))
      &key c alpha beta)
diff --git a/random/logarithmic.lisp b/random/logarithmic.lisp
index dcdc3ffd5bb8b4a98c957e41dc882fd04a1d8ebd..d8999ef6f0254d26553c6f9eca71f534784ff497 100644
--- a/random/logarithmic.lisp
+++ b/random/logarithmic.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'logarithmic)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'logarithmic))
      &key probability)
diff --git a/random/logistic.lisp b/random/logistic.lisp
index fed8882971705557958b0bd21ae98d509d92b231..b2ec5b52e96bbe88429209b60a43c29c990c4d5a 100644
--- a/random/logistic.lisp
+++ b/random/logistic.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'logistic)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'logistic)) &key a)
   "gsl_ran_logistic"
diff --git a/random/lognormal.lisp b/random/lognormal.lisp
index eeacb13ebcb4bbc22b29bdc645247fea24764063..6594532010509ce87e3381f993e30ff6ad10b672 100644
--- a/random/lognormal.lisp
+++ b/random/lognormal.lisp
@@ -20,6 +20,7 @@
 
 (in-package :gsl)
 
+(export 'lognormal)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'lognormal))
      &key zeta sigma)
diff --git a/random/multinomial.lisp b/random/multinomial.lisp
index 56777675efda6ba842be72512c3d28a6b629a592..24336b8c0c390b7cacaed5b519686ee81884a696 100644
--- a/random/multinomial.lisp
+++ b/random/multinomial.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'multinomial)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'multinomial))
      &key sum probabilities
diff --git a/random/negative-binomial.lisp b/random/negative-binomial.lisp
index 4e7350a68b2d655128e720e1eba7722af03712fa..bddcb66f87b994607e142373de36758f3fe9f3a9 100644
--- a/random/negative-binomial.lisp
+++ b/random/negative-binomial.lisp
@@ -26,6 +26,7 @@
 ;;;; Negative binomial
 ;;;;****************************************************************************
 
+(export 'negative-binomial)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'negative-binomial))
      &key probability n)
@@ -70,6 +71,7 @@
 ;;;; Pascal
 ;;;;****************************************************************************
 
+(export 'pascal)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'pascal))
      &key probability n)
diff --git a/random/pareto.lisp b/random/pareto.lisp
index e1753e206f57c92327f9c547d96f9c2e7a6839e7..d5dea2be9e344c6c2548916307c43a04d9a0d8c4 100644
--- a/random/pareto.lisp
+++ b/random/pareto.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'pareto)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'pareto)) &key a b)
   "gsl_ran_pareto"
diff --git a/random/poisson.lisp b/random/poisson.lisp
index 3bb2f2d0ad365156c6f5bb60dc29cbe4face457b..36c512d2fa704f6d378ec626c9558772ec104771 100644
--- a/random/poisson.lisp
+++ b/random/poisson.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'poisson)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'poisson)) &key mu)
   "gsl_ran_poisson"
diff --git a/random/rayleigh-tail.lisp b/random/rayleigh-tail.lisp
index a8484569aa53f773bdec0425a601ec1df96f3df3..3416606934c02f7b2865cd5c6031016ae3928dc3 100644
--- a/random/rayleigh-tail.lisp
+++ b/random/rayleigh-tail.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'rayleigh-tail)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'rayleigh-tail))
      &key a sigma)
diff --git a/random/rayleigh.lisp b/random/rayleigh.lisp
index 4855b22e79d1b17cf7f8c0a9c9c53ec58dee4b44..e68fefa8cdc9eadb57af05320a825be99bd9daa0 100644
--- a/random/rayleigh.lisp
+++ b/random/rayleigh.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'rayleigh)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'rayleigh))
      &key sigma)
diff --git a/random/shuffling-sampling.lisp b/random/shuffling-sampling.lisp
index 541e2cad939ef2a48bddd2cffff502ab6ced5a07..fc26b09d4c4f49b8452417378015e056fa8c0c7b 100644
--- a/random/shuffling-sampling.lisp
+++ b/random/shuffling-sampling.lisp
@@ -22,6 +22,7 @@
 
 ;;; These are currently defined only for vectors.
 
+(export 'shuffle)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'shuffle))
      &key base)
@@ -40,6 +41,7 @@
    permutations with equal probability, assuming a perfect source of random
    numbers.")
 
+(export 'choose-random)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'choose-random))
      &key src (dest (dim0 src))
@@ -68,6 +70,7 @@
    same relative order as those in src.  You will need to call
    with 'shuffle if you want to randomize the order.")
 
+(export 'random-sample)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'random-sample))
      &key src (dest (dim0 src))
diff --git a/random/spherical-vector.lisp b/random/spherical-vector.lisp
index c55ea86226466fc8956f8816532da9172105b44e..0fa5533a1538a93b1bb7f1dc9dde4101f600f75b 100644
--- a/random/spherical-vector.lisp
+++ b/random/spherical-vector.lisp
@@ -24,6 +24,7 @@
 
 ;;; No test for #'direction-Nd yet.
 
+(export 'direction-2d)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'direction-2d)) &key)
   "gsl_ran_dir_2d"
@@ -36,6 +37,7 @@
    two dimensions.  The vector is normalized such that
    |v|^2 = x^2 + y^2 = 1.")
 
+(export 'direction-2d-trig-method)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'direction-2d-trig-method)) &key)
   "gsl_ran_dir_2d_trig_method"
@@ -48,6 +50,7 @@
    two dimensions.  The vector is normalized such that
    |v|^2 = x^2 + y^2 = 1.  Uses trigonometric functions.")
 
+(export 'direction-3d)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'direction-3d)) &key)
   "gsl_ran_dir_3d"
@@ -64,6 +67,7 @@
   projected along any axis is actually uniform (this is only true for 3
   dimensions).")
 
+(export 'direction-Nd)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'direction-Nd)) &key vector)
   "gsl_ran_dir_nd"
diff --git a/random/tdist.lisp b/random/tdist.lisp
index aa530d5432080b47747c841959e7aa3b18d88b96..804b7311588c1798d15b4ed6d61db4421d78b9af 100644
--- a/random/tdist.lisp
+++ b/random/tdist.lisp
@@ -22,6 +22,7 @@
 
 ;;; /usr/include/gsl/gsl_randist.h
 
+(export 'tdist)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'tdist)) &key nu)
   "gsl_ran_tdist"
diff --git a/random/weibull.lisp b/random/weibull.lisp
index ea00a7975051f835513336bba3b0524af9ad4da8..82dce05a7ff35a023e71e3e3aecae672dbe19389 100644
--- a/random/weibull.lisp
+++ b/random/weibull.lisp
@@ -23,6 +23,7 @@
 ;;; /usr/include/gsl/gsl_randist.h
 ;;; /usr/include/gsl/gsl_cdf.h
 
+(export 'weibull)
 (defmfun sample
     ((generator random-number-generator) (type (eql 'weibull)) &key a b)
   "gsl_ran_weibull"