##
2.1.2 Boolean Operations

These are the Boolean operations, ordered by ascending priority:

Operation | Result | Notes
--- | --- | ---
`x or y` | if x is false, then y, else x | (1)
`x and y` | if x is false, then x, else y | (1)
`not x` | if x is false, then `1`, else `0` | (2)

Notes:

(1)
  These only evaluate their second argument if needed for their outcome.

(2)
  "`not`" has a lower priority than non-Boolean operators, so e.g. `not a == b` is interpreted as `not(a == b)`, and `a == not b` is a syntax error.