should this be `shift_left (of_int a) 32`  ?