Proof using.
intros.
unfold list_serialize_rec.
cheerios_crush. simpl.
induction l.
- simpl. cheerios_crush.
- simpl.
rewrite sequence_rewrite.
rewrite ByteListReader.bind_unwrap.
rewrite ByteListReader.map_unwrap.
rewrite IOStreamWriter.append_unwrap.
rewrite app_ass.
rewrite serialize_deserialize_id.
rewrite ByteListReader.bind_unwrap.
rewrite IHl.
cheerios_crush.
Qed.

(* Specifications: *)
Lemma serialize_snoc : forall (a : A) l,
(IOStreamWriter.unwrap
(list_serialize_rec (l ++ [a]))) =
(IOStreamWriter.unwrap (list_serialize_rec l) ++ IOStreamWriter.unwrap (serialize a)).