reductions for unary and binary ops