struct S(i32); impl std::ops::BitAnd for () { type Output = (); fn bitand(self, rhs: S) { print!("{}", rhs.0); } } fn main() { let f = || ( () & S(1) ); let g = || { () & S(2) }; let h = || ( {} & S(3) ); let i = || { {} & S(4) }; f(); g(); h(); i(); }