code: func (p *parser) negation(t *Token) (Pattern, Error) {
  	// a negation appears before a path specification, so
  	// skip the negation token
  	_next, _err := p.next()
  	if _err != nil {
  		return nil, _err
  	}
  
  	// extract the sequence of tokens for this path
  	_tokens, _err := p.sequence(_next)
  	if _err != nil {
  		return nil, _err
  	}
  
  	// include the "negation" token at the front of the sequence
  	_tokens = append([]*Token{t}, _tokens...)
  
  	// return the Pattern instance
  	return NewPattern(_tokens), nil
  }
docs: // negation attempts to build a well-formed negated .gitignore Pattern starting
  // from the negation Token t. As with build, negation returns an Error if the
  // sequence of tokens returned by the Lexer does not represent a valid Pattern.