cleanup

* the `in` keyword doesn't like undef as a lvalue
* fail instead of just warning