lose no arg ctors for Range/DiscreteRange since it wasnt so clear what a good default would be - instead use DiscreteRange<>::FullRange()