The current implementation of logical AND (&&) and logical OR (||) always returns a boolean - this is not correct.