improve template/traits support for DefaultDiscreteRangeTraits