PrintContext is produced by the LHS parser and printer, and

consumed by the RHS parser and printer
This seems a little odd. Why did you use this instead of a `bool`?