Add an issue: -(A * B) = ((-A) * (B)) = (A  * (-B)) likewise with #*#.  So, we can just call negate on the smaller of A or B (left or right). No need to materialize this into a TypedPipe yet.