imap_tr(m, ...) yields a copy of the immutable map m in which the keywords have been translated
      according to the given arguments. Arguments may be any number of dictionaries followed by any
      number of keyword arguments, all of which are merged left-to-right then used as the
      translation.

def imap_tr(imap, *args, **kwargs):
    '''
    imap_tr(m, ...) yields a copy of the immutable map m in which the keywords have been translated
      according to the given arguments. Arguments may be any number of dictionaries followed by any
      number of keyword arguments, all of which are merged left-to-right then used as the
      translation.
    '''
    if not is_imap(imap):
        raise TypeError('IMap object required of imap_tr')
    return imap.tr(*args, **kwargs)