Proof using.
induction n; intros.
- destruct a using Vector.case0. auto. unfold vector_serialize,  vector_deserialize.
cheerios_crush.
- destruct a using Vector.caseS'.
simpl.
cheerios_crush.
rewrite IHn.
cheerios_crush.
Qed.
Global Instance vector_Serializer n : Serializer (Vector.t A n).
End BasicCombinators.
(* This has to go here because it depends on having a serializer for lists available. *)
Fixpoint string_to_list s :=
match s with
| String.EmptyString => nil
| String.String c s' => c :: (string_to_list s')
end.
Fixpoint list_to_string l :=
match l with
| nil => String.EmptyString
| h::l' => String.String h (list_to_string l')
end.

Lemma string_to_list_to_string :
forall s, list_to_string (string_to_list s) = s.