'Given the input types in `idtypes`, return a compatible sequence of
types that is defined in `kernelmap`.
Note: Ordering is guaranteed by `kernelmap` being a OrderedDict'

def _search_matching_signature(self, idtypes):

    for sig in self.kernelmap.keys():
        if all((np.can_cast(actual, desired) for (actual, desired) in zip(sig, idtypes))):
            return sig
    else:
        raise TypeError('no    matching    signature')
