public NeighborProvider getReverseProvider() {
        NeighborProvider result = reversed;

        if (result == null) {
            Model model = getOrThrowModel();
            synchronized (this) {
                result = reversed;
                if (result == null) {
                    reversed = result = NeighborProvider.reverse(model, provider);
                }
            }
        }

        return result;
    }
Gets a reversed, bottom up neighbor provider.

@return Returns the reversed neighbor provider.
smithy-model/src/main/java/software/amazon/smithy/model/knowledge/NeighborProviderIndex.java