Actually constrain umax, abs to return same type as arguments