sig
  type t = { hyper_m : int; hyper_t : int; hyper_k : int; }
  type elt = int
  val sample : ?rng:Gsl.Rng.t -> size:int -> t -> elt array
  val cumulative_probability : t -> n:elt -> float
  val probability : t -> n:elt -> float
  val mean : t -> float
  val variance : t -> float
  val skewness : t -> float
  val kurtosis : t -> float
  val create : m:int -> t:int -> k:int -> Distributions.Hypergeometric.t
end