sig
  type t
  val append : Monoid.S.t -> Monoid.S.t -> Monoid.S.t
  val zero : Monoid.S.t
end