@salomonbrys probably the best bet is when you see a class that could never have generics, you cache that and in your inline function check the cache before doing the generic resolving path. Then anything that would never have generics takes the optimal path and the rest the slower. Should work fine.