add checkers for a lot more special forms
make sure errors are clearly reported in parser