extract functions take a shift_t value again