There is a comment about a global state variable in the Text object of TagRender.scala:
// TODO Don't mutate global state
private[pine] var lineBreak = false
The lineBreak variable for rendering nodes is a bit confusing to have as I think it is intuitive to assume that methods like toText on an immutable tree like Node are themselves not going to modify global state.
It would be great to remove this global state so that rendering can be done on multiple threads.