Hi! I found src/eval.c (let) has redundant conditions, that compares the length of the list with the current index and also checks if the current list is cons. I remove latter check, and it compiled fine and passed all the tests I added. However, in such cases, Lisper prefers to compare that the current list is cons, rather than comparing indices. Taking a `cdr` and checking that it is cons is a Lisp idiom in situations where `mapc` and `dolist` are not available. The concern is it may be faster to check the index than CONSP. This would be fast enough because CONSP in C is a macro, which is eventually converted to a bitwise operation. The code is considered to be easier to read and less prone to bugs than the current code that includes variable reuse and reassignment. Regards, Naoya.