(** * Conversions between maps and association lists. *)
Definition of_list :=
List.fold_right (uncurry (@add _)) (empty elt).
Definition to_list := elements.

(** * Fold *)
(** Alternative specification via [fold_right] *)
Lemma fold_spec_right m (A:Type)(i:A)(f : key -> elt -> A -> A) :
fold f m i = List.fold_right (uncurry f) i (rev (elements m)).