Utility method to register any converter. Converters that support any type will be stored in the "generic"
        lists, and the others will be stored in front of the types they support
        :return:

def register_converter(self, converter: Converter[S, T]):
        """
        Utility method to register any converter. Converters that support any type will be stored in the "generic"
        lists, and the others will be stored in front of the types they support
        :return:
        """
        check_var(converter, var_types=Converter, var_name='converter')

        # (0) sanity check : check that parser handles jokers properly
        res = converter.is_able_to_convert_detailed(from_type=JOKER, to_type=JOKER, strict=True)
        if not (res[0] is True and res[1] is None and res[2] is None):
            raise ValueError('Converter ' + str(converter) + ' can not be registered since it does not handle the JOKER'
                             ' cases correctly')

        # compute all possible chains and save them
        generic_chains, generic_nonstrict_chains, specific_chains, specific_nonstrict_chains \
            = self._create_all_new_chains(converter)
        self._generic_nonstrict_conversion_chains += generic_nonstrict_chains
        self._generic_conversion_chains += generic_chains
        self._specific_non_strict_conversion_chains += specific_nonstrict_chains
        self._specific_conversion_chains += specific_chains

        # sort all lists by length
        self._generic_nonstrict_conversion_chains = sorted(self._generic_nonstrict_conversion_chains, key=len,
                                                           reverse=True)
        self._generic_conversion_chains = sorted(self._generic_conversion_chains, key=len, reverse=True)
        self._specific_non_strict_conversion_chains = sorted(self._specific_non_strict_conversion_chains, key=len,
                                                             reverse=True)
        self._specific_conversion_chains = sorted(self._specific_conversion_chains, key=len, reverse=True)