An extended type can change variable types?

BlitzMax Forums/BlitzMax Programming/An extended type can change variable types?

It doesn't. You're creating a NEW Field with the same name, which is something you can do, because it's a different scope. If you're relying on Polymorphism it's almost certainly going to screw up.
WriteStdout(Main.data.name+" bleh is ")
WriteStdout(Main.bleh+"~n")
WriteStdout(MainType(Child).data.name+" bleh is ")
WriteStdout(MainType(Child).bleh+"~n")
or
Local Temp:TList = New TList

Temp.AddLast(Main)
Temp.AddLast(Child)

For Local i:MainType = EachIn Temp
	WriteStdout(i.data.name+" bleh is ")
	WriteStdout(i.bleh+"~n")
Next