uses nth/nthcdr in eval.cc