precedence_climbing has been adapted