throw bad-syntax errors when reading a list, in keeping with DrRacket's behavior. (WeScheme throws the right error location, but gives the wrong error message)
when throwing an error for unbalanced |s, the location should span the remainder of the program
catch escaped newlines in identifiers properly, instead of a (buggy) hack to detect them after the fact
teeny-tiny