code: func (c *Clique) VerifyHeaders(chain consensus.ChainReader, headers []*types.Header, seals []bool) (chan<- struct{}, <-chan error) {
  	abort := make(chan struct{})
  	results := make(chan error, len(headers))
  
  	go func() {
  		for i, header := range headers {
  			err := c.verifyHeader(chain, header, headers[:i])
  
  			select {
  			case <-abort:
  				return
  			case results <- err:
  			}
  		}
  	}()
  	return abort, results
  }
docs: // VerifyHeaders is similar to VerifyHeader, but verifies a batch of headers. The
  // method returns a quit channel to abort the operations and a results channel to
  // retrieve the async verifications (the order is that of the input slice).