parser combinators for deserializing token sequences directly into
any type, without building the intermediate Sexpr.t. GADT are now necessary, to keep the
Sexpr.parse function type-safe