sig val mempty : t val mappend : t -> t -> t end