docs: def are_worth_chaining(left_converter, right_converter) -> bool:
          """
          Utility method to check if it makes sense to chain these two converters. Returns True if it brings value to
          chain the first converter with the second converter. To bring value,
          * the second converter's input should not be a parent class of the first converter's input (in that case, it is
            always more interesting to use the second converter directly for any potential input)
          * the second converter's output should not be a parent class of the first converter's input or output. Otherwise
          the chain does not even make any progress :)
          * The first converter has to allow chaining (with converter.can_chain=True)
  
          :param left_converter:
          :param right_converter:
          :return:
          """
          if not left_converter.can_chain:
              return False
  
          elif not is_any_type(left_converter.to_type) and is_any_type(right_converter.to_type):
              # we gain the capability to generate any type. So it is interesting.
              return True
  
          elif issubclass(left_converter.from_type, right_converter.to_type) \
                  or issubclass(left_converter.to_type, right_converter.to_type) \
                  or issubclass(left_converter.from_type, right_converter.from_type):
              # Not interesting : the outcome of the chain would be not better than one of the converters alone
              return False
  
          # Note: we dont say that chaining a generic converter with a converter is useless. Indeed it might unlock some
          # capabilities for the user (new file extensions, etc.) that would not be available with the generic parser
          # targetting to_type alone. For example parsing object A from its constructor then converting A to B might
          # sometimes be interesting, rather than parsing B from its constructor
  
          else:
              # interesting
              return True