code: func (c *ChainConfig) CheckCompatible(newcfg *ChainConfig, height uint64) *ConfigCompatError {
  	bhead := new(big.Int).SetUint64(height)
  
  	// Iterate checkCompatible to find the lowest conflict.
  	var lasterr *ConfigCompatError
  	for {
  		err := c.checkCompatible(newcfg, bhead)
  		if err == nil || (lasterr != nil && err.RewindTo == lasterr.RewindTo) {
  			break
  		}
  		lasterr = err
  		bhead.SetUint64(err.RewindTo)
  	}
  	return lasterr
  }
docs: // CheckCompatible checks whether scheduled fork transitions have been imported
  // with a mismatching chain configuration.