Scala Real Interval, Int Interval

Как определить родительский класс этих два простых класса Interval?

class IntInterval(val from: Int, val to: Int) { 
    def mid: Double = (from+to)/2.0 
    def union(other: IntInterval) = IntInterval(from min other.from, to max other.to)
}

class DoubleInterval(val from: Double, val to: Double) { 
    def mid: Double = (from+to)/2.0 
    def union(other: DoubleInterval) = DoubleInterval(from min other.from, to max other.to)
}

Я пробовал

class Interval[T <: Number[T]] (val from: T, val to: T) { 
    def mid: Double = (from.doubleValue+to.doubleValue)/2.0 
    def union(other: IntInterval) = Interval(from min other.from, to max other.to)
}

, но minи maxне скомпилировались в методе union(поскольку Number[T] делает не имеет min/max).

Можете ли вы предоставить элегантный суперкласс, который имеет дело с методами midи unionв аккуратном, однократном коде? шаблонный способ обхода?

5
задан Perfect Tiling 12 May 2012 в 23:25
поделиться