It's really important I feel, to keep functions, vars, Types and their instances all very clearly distinctly named.
Like how this can compile and run … but is terrible.
Global A$ = "A"
Type A
Field A%
End Type
A
Print A
WaitKey()
Function A()
Local A.A = New A
A\A = "A"
End Function