:$ a |a return(1) :$ b |b return(()) |{a! & b!} = a b () |{b! & a!} = b () |{a! & a!} = a a 1 |{b! & b!} = b () |{a! | b!} = a 1 |{b! | a!} = b a 1 |{a! | a!} = a 1 |{b! | b!} = b b ()