in-place arithmetic opt & fix gc bug in `eval`
gc optimization: pending list