functor
  (Source : sig
              type t = float
              val genrand : unit -> Rand.RNGSource.t
              val min : Rand.RNGSource.t
              val max : Rand.RNGSource.t
            end->
  sig
    type t = float
    val min : Rand.ExponentialDist.t
    val max : Rand.ExponentialDist.t
    class rng :
      Rand.ExponentialDist.t ->
      object
        method genrand : Rand.ExponentialDist.t
        method max : Rand.ExponentialDist.t
        method min : Rand.ExponentialDist.t
      end
  end