class_docstr: This class represents a possible unification of a group of variables
  with each other or with tangible values.
  Parameters
  ----------
  inplace : bool
      If inplace is False, the merge method will return a new Unification
      that is independent from the previous one (which allows backtracking).
class_docstr_tok: ["This","class","represents","a","possible","unification","of","a","group","of","variables","with","each","other","or","with","tangible","values",".","Parameters","--","--","--","--","--","inplace",":","bool","If","inplace","is","False",",","the","merge","method","will","return","a","new","Unification","that","is","independent","from","the","previous","one","(","which","allows","backtracking",")","."]
docstr: Links all the specified vars to a Variable that represents their
  unification.
docstr_tok: ["Links","all","the","specified","vars","to","a","Variable","that","represents","their","unification","."]
code: def merge(self, new_best, *vars):
      """
      Links all the specified vars to a Variable that represents their
      unification.
  
      """
      if self.inplace:
          U = self
      else:
          # Copy all the unification data.
          U = Unification(self.inplace)
          for var, (best, pool) in iteritems(self.unif):
              # The pool of a variable is the set of all the variables that
              # are unified to it (all the variables that must have the same
              # value). The best is the Variable that represents a set of
              # values common to all the variables in the pool.
              U.unif[var] = (best, pool)
      # We create a new pool for our new set of unified variables, initially
      # containing vars and new_best
      new_pool = set(vars)
      new_pool.add(new_best)
      for var in copy(new_pool):
          best, pool = U.unif.get(var, (var, set()))
          # We now extend the new pool to contain the pools of all the variables.
          new_pool.update(pool)
      # All variables get the new pool.
      for var in new_pool:
          U.unif[var] = (new_best, new_pool)
      return U
  
imports: from __future__ import absolute_import, print_function, division
  from copy import copy
  from functools import partial
  from theano.gof.utils import ANY_TYPE, comm_guard, FALL_THROUGH, iteritems
label_desc: Use image node_id 2 for calling the Unification obj's underlying member method code with example usage: obj.merge(new_best) and returns: U