code: def tr(self, *args, **kwargs):
          '''
          imap.tr(...) yields a copy of the immutable map imap in which both the plan and the keys of
          the new map have been translated according to the translation given in the arguments list.
          The translation is found from merging the list of 0 or more dictionary arguments given
          left-to-right followed by the keyword arguments.
          '''
          d = merge_args(args, kwargs)
          # make a copy of the plan first:
          new_plan = self.plan.tr(d)
          # now use that plan to re-initialize ourself
          return new_plan(**{(d[k] if k in d else k):v for (k,v) in six.iteritems(self.afferents)}f tr(self, *args, **kwargs):
          '''
          imap.tr(...) yields a copy of the immutable map imap in which both the plan and the keys of
          the new map have been translated according to the translation given in the arguments list.
          The translation is found from merging the list of 0 or more dictionary arguments given
          left-to-right followed by the keyword arguments.
          '''
          d = merge_args(args, kwargs)
          # make a copy of the plan first:
          new_plan = self.plan.tr(d)
          # now use that plan to re-initialize ourself
          return new_plan(**{(d[k] if k in d else k):v for (k,v) in six.iteritems(self.afferents)})
docs: imap.tr(...) yields a copy of the immutable map imap in which both the plan and the keys of
          the new map have been translated according to the translation given in the arguments list.
          The translation is found from merging the list of 0 or more dictionary arguments given
          left-to-right followed by the keyword arguments.