pub open spec fn partial_ordering<T>(r: FnSpec<(T, T), bool>) -> bool
{ &&& reflexive(r) &&& transitive(r) &&& antisymmetric(r) }