Definition F (A : Set) (f : ad -> A -> M) (r : ad * A) 
  (m : M) := let (a, y) := r in op (f a y) m.

Lemma myMapFold_as_fold_2 : forall (A B : Set) (f : ad -> A -> Map B) (m : Map A), eqmap _ (MapFold _ (Map B) (M0 _) (MapMerge _) f m) (fold_right (fun (r : ad * A) (m : Map B) => let (a, y) := r in MapMerge _ (f a y) m) (M0 _) (alist_of_Map _ m)).