@staticmethod
def type_comparator(a, b):
    """
        Types precede strings, which precede ``None``

        :param a: First element
        :param b: Second element
        :return: ``-1``, ``0``, or ``1``, depending on outcome of comparison
        """
    if isinstance(a, type) and not isinstance(b, type):
        return -1
    elif not isinstance(a, type) and isinstance(b, type):
        return 1
    elif isinstance(a, str) and not isinstance(b, str):
        return -1
    elif isinstance(b, str) and not isinstance(a, str):
        return 1
    else:
        return 0
