assert smob types to help trap bad calls
call remember_upto_here to protect smob data from GC