functor (G : Sig.I) -> sig type edgeset = (G.V.t * G.V.t) list val md : G.t -> G.t * Md.I.edgeset * G.V.t list val triangulate : G.t -> G.t end