The yield-in-threadval variation now expects its root function's signature to have pointers whose types match what the yield will return/take. The values passed to the function will only ever be nullptr, they're there simply as a marker to the manual aspect of the runtime type safety from the creation of the generator to the lookup and invocation of yield in the function.