impl add[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], Add[AI, BI, OI], Add[AR, BR, OR], Tuple[O, OI, OR]]: Add[A, B, O];
impl sub[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], Sub[AI, BI, OI], Sub[AR, BR, OR], Tuple[O, OI, OR]]: Sub[A, B, O];
impl mul[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], Mul[AI, BI, OI], Mul[AR, BR, OR], Tuple[O, OI, OR]]: Mul[A, B, O];
impl div[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], Div[AI, BI, OI], Div[AR, BR, OR], Tuple[O, OI, OR]]: Div[A, B, O];
impl rem[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], Rem[AI, BI, OI], Rem[AR, BR, OR], Tuple[O, OI, OR]]: Rem[A, B, O];
impl pow[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], Pow[AI, BI, OI], Pow[AR, BR, OR], Tuple[O, OI, OR]]: Pow[A, B, O];
impl bit_and[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], BitAnd[AI, BI, OI], BitAnd[AR, BR, OR], Tuple[O, OI, OR]]: BitAnd[A, B, O];
impl bit_or[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], BitOr[AI, BI, OI], BitOr[AR, BR, OR], Tuple[O, OI, OR]]: BitOr[A, B, O];
impl bit_xor[A, AI, AR, B, BI, BR, O, OI, OR; Tuple[A, AI, AR], Tuple[B, BI, BR], BitXor[AI, BI, OI], BitXor[AR, BR, OR], Tuple[O, OI, OR]]: BitXor[A, B, O];