human
Write me a the Python program you requested given the following:
Complete the below
def _merge_yaml(dest, source):

    ''''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.'
    '''
assistant
#Here is the Python program you requested.
    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)