Make.Semiring
S : Interface.SEMIRING
A : ARBITRARY with type t := S.t and type 'a arbitrary := 'a Q.arbitrary
module V : sig ... end
val suite : string -> T.test T.suite