Global Instance tree_Serializer : Serializer (tree A) :=
    {| serialize := tree_serialize;
       deserialize := tree_deserialize;
       serialize_deserialize_id := tree_serialize_deserialize_id
    |}.Definition sexp := tree string.(*
       (define (id x) x)
     *)
    Definition id : sexp :=
      node [atom "define"; node [atom "id"; atom "x"]; atom "x"]%string.

(* Specifications: *)
Lemma foo: ByteListReader.unwrap deserialize (IOStreamWriter.unwrap (serialize id)) = Some (id, []).