sclass LearnNumberRange { double min = positiveInfinity(), max = negativeInfinity(); void learn(Number n) { if (n != null) { double d = toDouble(n); min = min(d, n); max = max(d, n); } } bool empty() { ret min == positiveInfinity(); } }