Two copies of getSymLERange in RangeConstraintManager are virtually identical, which is clearly bad.
This patch uses lambdas to call one from another (assuming that we would like to avoid getting ranges from the state when necessary).
If the latter is not even the concern, it would be even easier to do the computation eagerly, and then pass RangeSet directly instead of a lambda.