Maybe this could be simplified using `BinaryOp` declared above?