Agreed. The && operator does an implicit cast to boolean values, so
it should work, since it shouldn't actually be comparing int and time,
but comparing two booleans which have been derived from int and time.
I'd say its a bug.
Yes, that's how I look at it as well.
Behind the scenes, BTW, it turns out "true" is treated as a integer (we don't have booleans at all), at least according to the error messages but that doesn't matter much. Stefan is right that we can't go casting anything into anything, but we're not; we are evaluating the value for being non-zero, which is different and in fact has been shown to work already for single clauses.