<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def validate_vertex_field_directive_interactions(parent_location, vertex_field_name, directives):
 """Ensure that the specified vertex field directives are not mutually disallowed."""

    fold_directive = directives.get('fold', None)
    optional_directive = directives.get('optional', None)
    output_source_directive = directives.get('output_source', None)
    recurse_directive = directives.get('recurse', None)

    if fold_directive and optional_directive:
        raise GraphQLCompilationError(u'@fold and @optional may not appear at the same '
                                      u'vertex field! Parent location: {}, vertex field name: {}'
                                      .format(parent_location, vertex_field_name))

    if fold_directive and output_source_directive:
        raise GraphQLCompilationError(u'@fold and @output_source may not appear at the same '
                                      u'vertex field! Parent location: {}, vertex field name: {}'
                                      .format(parent_location, vertex_field_name))

    if fold_directive and recurse_directive:
        raise GraphQLCompilationError(u'@fold and @recurse may not appear at the same '
                                      u'vertex field! Parent location: {}, vertex field name: {}'
                                      .format(parent_location, vertex_field_name))

    if optional_directive and output_source_directive:
        raise GraphQLCompilationError(u'@optional and @output_source may not appear at the same '
                                      u'vertex field! Parent location: {}, vertex field name: {}'
                                      .format(parent_location, vertex_field_name))

    if optional_directive and recurse_directive:
        raise GraphQLCompilationError(u'@optional and @recurse may not appear at the same '
                                      u'vertex field! Parent location: {}, vertex field name: {}'
                                      .format(parent_location, vertex_field_name))