> You will notice the trust keyword here. Any operation (such as IO) that has an underlying unsafe mechanism (such as the @print builtin that std.stdio.print uses), must be explicitly trusted, as it is inherently impure.
just document the impure operations and stop forcing the programmer to type extra characters.
To me, the main draw looks to be the invariants that you can supply within functions, but this isn't a new concept outside of it being a dedicated keyword. Otherwise this looks like rust without all of the functionality
I'm not really sure what your point is. "Rust without all of the functionality" is sort of a ridiculous thing to say given the goals of the two projects are completely different. You can't really apply DbC in Rust, and Rust makes it difficult to iterate upon ideas due to its rigid borrow checker.
The usability is poor and I dislike stacking an endless quantity of function attribute markers, but if a library can replace your language, your priorities are wrong.
...I really don't think stacking an insane amount of attribute markers will replace any dedicated programming language aiming to solve the issue. I would rather use Eiffel than use Rust like that.