Like issubclass(subtype, supertype) except that TypeVars
        are not taken into account.

def _is_possible_subclass(self, subtype, supertype):
        """
        Like issubclass(subtype, supertype) except that TypeVars
        are not taken into account.
        """
        subparams = getattr(subtype, "__parameters__", None)
        if subparams is None:
            return issubclass(subtype, supertype)  # a non-generic actual type
        # It is surprisingly difficult to ignore the type variables in a
        # subclass check. We therefore compare __name__ (along mro) only.
        # This can produce false positives in principle.
        # (previous "nullify __parameters__" logic deleted 2016-01-24 14:52)
        for subtype_super in subtype.mro():
            if subtype_super.__name__ == supertype.__name__:
                # squeeze your thumbs this is not just by accident
                return True  # TODO: ensure __parameters__ are compatible
        return False