human
Complete this python program:
def _merge_yaml(dest, source):
assistant
#Here is the Python program you requested.

    """Merges source into dest; entries in source take precedence over dest.
    This routine may modify dest and should be assigned to dest, in
    case dest was None to begin with, e.g.:
    dest = _merge_yaml(dest, source)
    Config file authors can optionally end any attribute in a dict
    with `::` instead of `:`, and the key will override that of the
    parent instead of merging.
    """
    def they_are(t):
        return (isinstance(dest, t) and isinstance(source, t))
    if ((source is None) and (dest is None)):
        return None
    elif (source is None):
        return None
    if they_are(list):
        dest[:] = (source + [x for x in dest if (x not in source)])
        return dest
    elif they_are(dict):
        for (sk, sv) in iteritems(source):
            if (override(sk) or (sk not in dest)):
                dest[sk] = copy.copy(sv)
            else:
                dest[sk] = _merge_yaml(dest[sk], source[sk])
        return dest
    else:
        return copy.copy(source)