You write `small` but I think you mean `large`, but does the doc have to spill the guts here? Either the small or the large string case, the CString or buffer is just a temporary and the pointer will be invalid after the closure exits, that's all the user should need to know