Remark xelements_empty:
    forall (A: Type) (m: t A) i, (forall i, get i m = None) -> xelements m i nil = nil.

Lemma xelements_remove: forall (A: Type) v (m: t A) i j, get i m = Some v -> exists l1 l2, xelements m j nil = l1 ++ (prev (prev_append i j), v) :: l2 /\ xelements (remove i m) j nil = l1 ++ l2.