1 2 3 4 5 6 7 8 9 10 11 12 13 14
class Arne[@specialized(Long) T](x: T) { val regularVal = x lazy val lazyVal = x def apply(f: (T, T) => T): T = f(regularVal, lazyVal) } object Test { val arne = new Arne(5L) def f = arne(_ + _) def main(args: Array[String]): Unit = { println(f) } }