Anyerror!void versus !void

‘Reader/Writer’ interfaces in Zig stdlib are awful (IMHO),
cause UNIX “everything in UNIX is a file” abstraction is already
quite a “high level” “abstraction”.

Well, BSD sockets was not very well designed
(
special API to create (socket, not open(/dev/some/tcp),
and then very special bind, setsockopt etc)
)

But POSIX write() and read() works for almost everything,
Why these not so easy to grasp reader/writer interfaces in Zig?

How many “objects/things” in Zig stdlib do use this kind of (very weird) “interface”?