I don't think any of these need to be monomorphic and can instead be defined in terms of `MatchClass`.