I've been bitten several times by this.
logical_or (a, b, c)
is silently accepted when I really meant
logical_or (logical_or (a, b), c)
because the logic functions are binary, where I expected them to be m-ary.
Dunno if anything can be done about it.
Sure would like it if they were m-ary and out was a kw arg.