functor (DS : DugADT.S->
  functor (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