struct      include Metadoc   let to_markdown_string ?(line_width=72) sm =     to_string ~line_width ~indent:4 sm    let new_par = n % n   let h underliner t =      let title = to_markdown_string t in     let l = String.length title in     let underline = String.make l underliner in     verbatim title % n % verbatim underline % new_par   let h1 t = h '=' t   let h2 t = h '-' t   let par t = t % new_par   let emph t = s "*" % t % s "*"   let ul_filter l =     concat (List.filter l ~f:(fun t -> t <> empty)              |> List.map ~f:(fun t -> s "- " % t % n))     % n   let ul_inner l =     indent (separate n (List.map l ~f:(fun t -> s "- " % t)))   let url u = s "<" % verbatim u % s ">"   let link t ~url = brakets t % parens (s url) end