docs: def multi_assoc(self, values):
          '''Return a new tree with multiple values associated. The parameter
          values can either be a dictionary mapping indices to values, or a list
          of (index,value) tuples'''
          if isinstance(values, dict):
              nndict = dict([(i, LookupTreeNode(i, values[i])) for i in values])
          else:
              nndict = dict([(i, LookupTreeNode(i, val)) for (i,val) in values])
          newtree = LookupTree()
          newtree.root = _multi_assoc_down(self.root, nndict, 0)
          return newtree