The type checker cannot properly deal with `or` and `and` operators (it infers the results to be bool, which is obviously very bad).