Control flow
No truthiness
That if (list) / if (x) habit doesn’t transfer here. A condition has to actually be Bool — no number, string, or collection gets to stand in for one.
Ascent stops you right there and says why: items is a List<Int>, not a Bool. Say what you mean instead:
and, or, and not are the same deal — plain words, Bool-only, no coercion lurking underneath.
One quirk worth knowing: not binds looser than a comparison, so not a == b reads as not (a == b), not (not a) == b.