Even just the Ada ability to define integer and other ranges always seemed great! Rust doesn't provide integer overflow checking on release builds unless you use specialized methods.
I think creating new number types like "Positive" also seems to require using unsafe, or at least the stdlib used it for a few of the number types I looked into.