All afternoon I’ve been pulling weeds and wishing I could retract this. It’s not really how I feel deep down, after all. I have nothing against _prefixing, but (in Python, which also doesn’t have the concept of “private”) I don’t think of it as shouting “private”, but “not envisioned for your direct use”. Or, “if you’re inspecting this file of code to understand how to use it, you can basically ignore these implementation details (variables and methods), and just focus on the rest". NOT “better keep your hands off my private stuffs!” Well, here, with intrusive interfaces, we have exactly the opposite - you ARE supposed to use the interface! So the “getter function” would just be the way to hand over the proper form of the interface (the address, that is).
While I have nothing against _prefixing, I do vehemently dislike “getter” and “setter” functions. It has something to do with the OOP tinge, sure, but there are other reasons. In short, I “like it how it is” with zig Reader/Writer intrusive interfaces. But… maybe it could still be slightly tweaked…? What one really always wants is the pointer to the interface, so, would it make any sense to make the type of interface *Reader instead of Reader? This is an underdeveloped brainfart, though. Quick consideration at least reveals “unnaturalness” within the implementation (e.g. File.Reader.initInterface()). But I guess the idea should be shot down with more robust ammunition.