sig
  module type S =
    sig
      type t
      val mempty : Algebra.Monoid.S.t
      val mappend :
        Algebra.Monoid.S.t -> Algebra.Monoid.S.t -> Algebra.Monoid.S.t
    end
end