Hmm I do see some merit in being able to see that a program or library never performs any disk I/O, but this seems quite cumbersome. I think it would be nicer if zig’s dead code eliminiation could take care of this in a way where if you don’t use something, you don’t pay the cost for it. The VTable-approach doesn’t allow for that, but this kind of technical discussion is more suited to the original thread:
Also:
Although practicality beats purity.
If I have to specify that a function does I/O by adding a parameter, that’s also explicit.