functor
(
M1
:
S
) (
M2
:
S
)
->
sig
type
t =
M1
.t *
M2
.t
val
append : t
->
t
->
t
val
zero : t
end