Local Notation "[ ]" := nil.Local Notation "[ a ; .. ; b ]" := (a :: .. (b :: []) ..).(** contents of a list *)

Fixpoint list_contents (l:list A) : multiset A :=
  match l with
  | [] => emptyBag
  | a :: l => munion (singletonBag a) (list_contents l)
  end.

(* Specifications: *)
Lemma list_contents_app : forall l m:list A, meq (list_contents (l ++ m)) (munion (list_contents l) (list_contents m)).