I have a hard time trying to understand the purpose of exclude in go.mod file. The specification states that if for instance version 1.0.1 is excluded, the higher will be chosen. The problem is that require specifies exact version that is going to be used. How these two work togheter?