functor (G_Src : E_SRC) (G_Dst : E_DST->
  sig
    val map : (G_Src.E.t -> G_Dst.edge) -> G_Src.t -> G_Dst.t
    val filter_map : (G_Src.E.t -> G_Dst.edge option) -> G_Src.t -> G_Dst.t
  end