I've historically been on the side of saying that I don't think it's good for types of different categories to compare equally, e.g. <foo> = "foo"
being true can cause some headaches.
But these headaches can work the other way as well. I just had a bug where I was passing something as a string, but the caller was comparing it as a WORD!.
if info.name = 'startup* [
... ; it was a string, so actually "startup*"
]
This makes me wonder if different-typed comparisons need some distinction in the comparison, to help say that you know the type you're comparing against is completely different.
if info.name =T 'startup* [
;
; ugly example... but imagine =T is a way of saying "I know the type
; should be the type on the right (e.g. WORD!), so tell me if it is
; not...
]
>> 'foo =T 'bar
== #[false]
>> "foo" =T 'bar
** Error: =T expected a WORD! on the left but got a TEXT!
It's always the latest such bug to bite you in languages of this nature that make you wish for stricter typing policies.