make SETCAR a macro, remove some error checks
Merge branch '22-gc-old-to-new' into 23