OK, here’s a simple modification of @jules’s code to impose hygiene.
macro or(args...)
args_esc = esc.(args)
length(args_esc) == 1 && return only(args_esc)
quote
if $(args_esc[1])
true
else
@or $(args_esc[2:end]...)
end
end
end