I think the tuple itself is lazy
So when one of elements are called the whole tuple is evaluated.
scala> lazy val (a, b) = (2, { println("hello"); 4 })
a: Int = <lazy>
b: Int = <lazy>
scala> a
hello
res25: Int = 2
scala> lazy val (a, b) = (2, { println("hello"); 4 })
a: Int = <lazy>
b: Int = <lazy>
scala> b
hello
res26: Int = 4
> missingfaktor <
http://twitter.com/#!/missingfaktor>.