Module L := FMapList.Raw E.(** Not exactly pretty nor perfect, but should suffice as a first naive implem. 
    Anyway, map2 isn't in Ocaml...
  *)

  Definition anti_elements (A:Type)(l:list (key*A)) := L.fold (@add _) l (empty _).Definition map2 (A B C:Type)(f:option A->option B -> option C)(m:t A)(m':t B) : t C := 
    anti_elements (L.map2 f (elements m) (elements m')).

Lemma add_spec : forall (A:Type)(m:t A) x y e, find x (add y e m) = if E.eq_dec x y then Some e else find x m.