functor (DS : DugADT.S) (A : Types.Mono.ArbitraryComparable->
  sig
    val generate :
      DugProfile.Make(DS).t ->
      int ->
      ((A.t, Dug.Id.t) DS.generator, (A.t, Dug.Id.t) DS.mutator,
       (A.t, Dug.Id.t) DS.observer)
      Reins.Dug.t
  end