```struct Foo { } class Bar { } void main() { Bar b = new Bar(); Foo* f = cast(Foo*)b; }``` this code compiles. Why? What is even the result in "f" in this case?