I'm not sure why this is but I think you need a version of the interface for value types and another version for reference types (the nullable thing in C# is kind of half-baked).
I.e., this interface works:
public interface IMinMaxDecl<T> where T : struct, IComparable