This support is ugly and probably incorrect, but it passes all the current tests and handles test cases in the original documentation.
This also adds a number of accesory functions necessary for rationalizing the record structure of an object in the lex/parse phase into something more lisp-like. There's a metadata issue here that I'm not quite wrapping my head around.