<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fuse_trees(to_tree, from_tree, lib_exts=('.so', '.dylib', '.a')):
 """ 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 """

    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)