I’ve tested against HEAD. I think the change you link is helpful, but it doesn’t quite get there: the usage gets dumped before specHeader even gets a chance to look at the call. The relevant bit of code is here:
Specifically, this line seals the deal:
ClassPred cls _ -> not (isIPClass cls) -- Superclasses can't be IPs
So maybe the right fix is just to change the role of type_determines_value so that it turns SpecDicts into UnspecArgs, and then with your change everything would just happily work out.
_______________________________________________