I feel like #ziglang is making a mistake by holding on so strictly to the "no hidden calls" rule.
Specifically, automatically calling a destructor/drop/deinit is easily the best feature of many other systems programming languages. It prevents memory leaks, enables safer primitives and efficient memory management through reference counting.
But in Zig you have to manually `defer deinit()`, `defer unref()`, `defer unlock()` etc., which immediately reduces the language's usefulness.

