You probably don't want to use and. There are two problems, and, firstly, since you noticed that its priority is strange, and secondly, it does not close its second argument.
1> false and exit(oops). ** exception exit: oops 2> false andalso exit(oops). false
and was also introduced later into the language and behaves in a way that is probably more familiar. In general, use andalso if you have no good reason to prefer and.
Btw, orelse is the equivalent of or.
source share