import Specializable._ class A[@specialized(Primitives) T](x: T) { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) } class B[@specialized(Everything) T] { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) } class C[@specialized(Bits32AndUp) T] { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) } class D[@specialized(Integral) T] { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) } class E[@specialized(AllNumeric) T] { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) } class F[@specialized(BestOfBreed) T] { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) } class G[@specialized(Byte, Double, AnyRef) T] { def f1[@specialized(Primitives) U](x: T, y: U) = ((x, y)) def f2[@specialized(Everything) U](x: T, y: U) = ((x, y)) def f3[@specialized(Bits32AndUp) U](x: T, y: U) = ((x, y)) def f4[@specialized(Integral) U](x: T, y: U) = ((x, y)) def f5[@specialized(AllNumeric) U](x: T, y: U) = ((x, y)) def f6[@specialized(BestOfBreed) U](x: T, y: U) = ((x, y)) def f7[@specialized(Byte, Double, AnyRef) U](x: T, y: U) = ((x, y)) }