module T: sig .. end
sig
end
mappend x mempty = x mappend mempty x = x
type 't monoid = {
't
mempty : 't;
mappend : 't -> 't -> 't;
't -> 't -> 't