Global Instance list_Serializer : Serializer (list A).Fixpoint vector_serialize {n} (v : Vector.t A n) : IOStreamWriter.t :=
    match v with
    | Vector.nil => IOStreamWriter.empty
    | Vector.cons a v' => IOStreamWriter.append (fun _ => serialize a)
                                        (fun _ => vector_serialize v')
    end.

(* Specifications: *)
Lemma vector_serialize_deserialize_id : forall n, serialize_deserialize_id_spec vector_serialize (@vector_deserialize n).