sig
  module type S =
    sig
      type elt
      type t
      val mean : Distributions.Features.S.t -> Distributions.Features.S.elt
      val variance :
        Distributions.Features.S.t -> Distributions.Features.S.elt
      val skewness :
        Distributions.Features.S.t -> Distributions.Features.S.elt
      val kurtosis :
        Distributions.Features.S.t -> Distributions.Features.S.elt
    end
  module type Opt =
    sig
      type elt
      type t
      val mean_opt :
        Distributions.Features.Opt.t -> Distributions.Features.Opt.elt option
      val variance_opt :
        Distributions.Features.Opt.t -> Distributions.Features.Opt.elt option
      val skewness_opt :
        Distributions.Features.Opt.t -> Distributions.Features.Opt.elt option
      val kurtosis_opt :
        Distributions.Features.Opt.t -> Distributions.Features.Opt.elt option
    end
end