Description
Ideas for increasing performance
(a) minimize how much we have to copy to create one of these things
(b) use local pools of reusable objects instead of the heap. The pool would live in the "original" ustate which is a thread-local data structure.
(c) optimize away most alignment fill and mandatory text alignment since those will generate tons of suspensions
(d) queue suspensions on the infoset elements or data-output-streams they are blocked on, so they can be unblocked as early as possible, (and only once. The current implementation may retry them over and over unnecessarily)