Inductive map: Type :=
  | Leaf: map
  | Node: map -> option A -> map -> map.Inductive map: Type :=
  | Leaf: map
  | Node: map -> option A -> map -> map.Inductive map: Type :=
  | Leaf: map
  | Node: map -> option A -> map -> map.

(* Specifications: *)
Lemma map_eq: forall (m1 m2: map), {m1=m2} + {m1<>m2}.
Lemma map_eq: forall (m1 m2: map), {m1=m2} + {m1<>m2}.
Lemma map_eq: forall (m1 m2: map), {m1=m2} + {m1<>m2}.