It appears that local variables don't override (global) function definitions. Can't tell if it's expected, but it can lead to interesting fails.
'------ Running ------
'Function
'<bsTypedValue: Function>
'String
'hi!
'Function
'<bsTypedValue: Function>
'String
'hi!
function main()
test1("hi!", "hi!")
test2("hi!")
end function
function s()
end function
function test1(s as string, s2 as string)
print type(s)
print s
print type(s2)
print s2
end function
function test2(s2 as string)
s = s2
print type(s)
print s
print type(s2)
print s2
end function