One problem I could foresee is that it breaks value equality of two instances. For example, this won't hold: `(= (load-tsv "foo") (load-tsv "foo"))` because they'll have different generated symbols, no? If they have different symbols that would break deduping and the structural unit tests.