typ.__mro__ works when typ.mro() doesn't

This creates a tiny function that tries one and then the other