(** Applying a function to all data of a tree. *)
Parameter map:
forall (A B: Type), (elt -> A -> B) -> t A -> t B.

(* Specifications: *)
Axiom gmap:
forall (A B: Type) (f: elt -> A -> B) (i: elt) (m: t A),
get i (map f m) = option_map (f i) (get i m).
Axiom gmap:
forall (A B: Type) (f: elt -> A -> B) (i: elt) (m: t A),
get i (map f m) = option_map (f i) (get i m).