Assertions for partially ordered types in Rust