It's the same with && and ||: ➜ &infix:<&&>(1, -> {say 2}); # 2 ➜ say 1 && -> {say 2}; # -> { #`(Block|169403552312) ... }
➜ &infix:<||>(0, -> {say 2}); # 2 ➜ say 0 || -> {say 2}; # -> { #`(Block|786414142008) ... } And also with the loose-precedence versions `and`, `or`, `xor`. And also with `xx`: ➜ &infix:<xx>(-> {say 2}, 2) 2 2 ➜ say -> {say 2} xx 2 (-> { #`(Block|315591575136) ... } -> { #`(Block|315591575208) ... }) I.e., it's apparently a general rule for "thunky" operators. Whether it's intentional, I don't know. The design docs don't mention it: https://design.perl6.org/S03#Tight_and_precedence