sig
  module Make :
    functor (DS : DugADT.S->
      sig
        type t = private {
          gen_cdf : ((unit, unit) DS.generator * float) list;
          mut_cdf : ((unit, unit) DS.mutator * float) list;
          obs_cdf : ((unit, unit) DS.observer * float) list;
          gen_ratio : float;
          obs_mut_ratio : float;
          mortality : float;
          pmf : float;
          pof : float;
        }
        val random_op : ('a * float) list -> 'a
        val to_string : Reins.DugProfile.Make.t -> string
        val profile :
          (('a, 'b) DS.generator, ('a, 'b) DS.mutator, ('a, 'b) DS.observer)
          Reins.Dug.t -> Reins.DugProfile.Make.t
      end
end