Improved type checking (but lvalue pointers don't log what they point to yet)