functor (M : sig val element_name : string end) -> DocumentFormat