Wrap class sigs in an implication constraint
Two patches here. The first fixes #17841 (closed) -- see its commit message.
The second is just refactoring.
Two patches here. The first fixes #17841 (closed) -- see its commit message.
The second is just refactoring.