Using the LIST builder to parse and unparse (defvar x) results in (defvar x nil) which does not have the same semantics as the original.