docs: def tuple_type_compare(types0, types1):
      """doufo.tuple_type_compare: compare two types  
          if `types0` is 'bigger' than `types1`, return negative (<0);   
          otherwise, return positive (>0). Here 'bigger' is defined by   
          whether they are 'parent and child', or ituitively bigger    
      Args:  
          types0 (`type`): types0  
          types1 (`type`): types1  
      Returns:  
          return (`int`): comparison results  
      Raises:
      """
      compares = [single_type_compare(types0[0], types1[0]),
                  single_type_compare(types0[1], types1[1])]
      if compares[0] != 0:
          return compares[0]
      if compares[1] != 0:
          return compares[1]
      if types0[0] is types1[0] and types0[1] is types1[1]:
          return 0
      return hash(types1) - hash(types0)