The example of bad allocations
def first[A](left: A, right: A): A = left
first(12, 42) // => 12
actually allocates nothing, because both numbers are in the Integer box cache range (-128 to 127 inclusive by default, but configurable to be greater). The general argument is good though, so mabye first(128,129) is a better example :)