That is NOT at all clear for me. Why is: (new Foo).fiz = "fuz" // valid?
fiz is Final! Why would you be allowed to re-assign a final variable on an instance??