rem: if (!(SCHEME_HASHTP(argv[0]) || SCHEME_BUCKTP(argv[0])) || SCHEME_IMMUTABLEP(argv[0]))
add: if (!(SCHEME_HASHTP(argv[0]) && SCHEME_MUTABLEP(argv[0])) && !SCHEME_BUCKTP(argv[0]))
context: static Scheme_Object *hash_table_put(int argc, Scheme_Object *argv[]){  if (!(SCHEME_HASHTP(argv[0]) || SCHEME_BUCKTP(argv[0])) || SCHEME_IMMUTABLEP(argv[0]))    scheme_wrong_type("hash-table-put!", "mutable hash-table", 0, argc, argv);  if (SCHEME_BUCKTP(argv[0])) {    Scheme_Bucket_Table *t = (Scheme_Bucket_Table *)argv[0];    if (t->mutex) scheme_wait_sema(t->mutex,0);    scheme_add_to_table(t, (char *)argv[1], (void *)argv[2], 0);    if (t->mutex) scheme_post_sema(t->mutex);  } else{    Scheme_Hash_Table *t = (Scheme_Hash_Table *)argv[0];    if (t->mutex) scheme_wait_sema(t->mutex, 0);    scheme_hash_set(t, argv[1], argv[2]);    if (t->mutex) scheme_post_sema(t->mutex);  }  return scheme_void;}