Re: Chasing ghosts
In IBM's PCOMMS API, at least the aged version my illustrious employer still uses, there are functions that return phantom "true" values that do not trigger "if Blah= True then" statements.
But... they aren't strings, or ints, or anything else you might see kicking around pretending to be a boolean. They're very explicitly Boolean values. You can see this clear as day in your Locals, they happily work with declared Boolean variables, but they remain unholy ghost-values.
I mean, when they're False, they can be tested for "= False" like you'd expect. But if they're True, they can't be tested for "= True". I spent hours trying to work out what I'd done wrong - surely that had to be a mistake - maybe I wasn't declaring the type properly, or had misspelled "true" in the test or something - but nothing made it behave.
So now, buried in some of my old automation code next to some rather explicit comments is:
If Cbool(Cstr([foo])) != False then ...