code: def fuse_trees(to_tree, from_tree, lib_exts=('.so', '.dylib', '.a')):
      
      for from_dirpath, dirnames, filenames in os.walk(from_tree):
          to_dirpath = pjoin(to_tree, relpath(from_dirpath, from_tree))
          # Copy any missing directories in to_path
          for dirname in tuple(dirnames):
              to_path = pjoin(to_dirpath, dirname)
              if not exists(to_path):
                  from_path = pjoin(from_dirpath, dirname)
                  shutil.copytree(from_path, to_path)
                  # If copying, don't further analyze this directory
                  dirnames.remove(dirname)
          for fname in filenames:
              root, ext = splitext(fname)
              from_path = pjoin(from_dirpath, fname)
              to_path = pjoin(to_dirpath, fname)
              if not exists(to_path):
                  _copyfile(from_path, to_path)
              elif cmp_contents(from_path, to_path):
                  pass
              elif ext in lib_exts:
                  # existing lib that needs fuse
                  lipo_fuse(from_path, to_path, to_path)
              else:
                  # existing not-lib file not identical to source
                  _copyfile(from_path, to_path)
docs: Fuse path `from_tree` into path `to_tree`
  
      For each file in `from_tree` - check for library file extension (in
      `lib_exts` - if present, check if there is a file with matching relative
      path in `to_tree`, if so, use :func:`delocate.tools.lipo_fuse` to fuse the
      two libraries together and write into `to_tree`.  If any of these
      conditions are not met, just copy the file from `from_tree` to `to_tree`.
  
      Parameters
      ---------
      to_tree : str
          path of tree to fuse into (update into)
      from_tree : str
          path of tree to fuse from (update from)
      lib_exts : sequence, optional
          filename extensions for libraries