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