In case you happen to have a generic method that returns a generic value but doesn't have generic parameters, you can use default(t) + (t)(object) cast, together with c# 8 pattern. Static generic methods allow type-inference to make usage really easy; Static fields on generic classes allow virtually overhead-free storage of (meta)data. It wouldn't surprise me at all if.

Understanding the Context

What keeps us from comparing the values of generic types which are known to be icomparable? Doesn't it somehow defeat the entire purpose of generic constraints?