Loop over the range of constraints and apply the lambda. The range is treats constraints of all types as a contiguous list and the function loops over constraint types and maps the range into the solver ranges for each type.