functor (G : G->
  sig
    val contract :
      (Contraction.G.E.t -> bool) -> Contraction.G.t -> Contraction.G.t
  end