When merge function called for TypePolicy object?

Hey there! I can’t find it in the documentation, so I hope for explain.

For example I have:

const client = new ApolloClient({
    link: from([authMiddleware, errorMiddleware, httpLink]),
    cache: new InMemoryCache({
        possibleTypes,
        typePolicies: {
            User: {
                merge: (existing, incoming, { mergeObjects }) => mergeObjects(existing, incoming),
            },
        },
    }),
});

When the merge callback will be called?