minimal support for displaying errors.
make error detection more reliable.
support top-level assignments.