This is an excellent point, but I'm happy to say that `recast.print` knows to add parentheses when necessary, at least according to this experiment:
```js
var r = require("recast");
var b = r.types.builders;
r.print(
  b.binaryExpression(
    "+",
    b.yieldExpression(b.literal(1), false),
    b.yieldExpression(b.literal(2), false)
  )
);
```
which prints `(yield 1) + (yield 2)`.