code: func (p *Pager) page(index int) (Page, error) {
  
  	if pages, ok := p.element().(Pages); ok {
  		if pages != nil && len(pages) > index {
  			return pages[index], nil
  		}
  		return nil, nil
  	}
  
  	// must be PagesGroup
  	// this construction looks clumsy, but ...
  	// ... it is the difference between 99.5% and 100% test coverage :-)
  	groups := p.element().(PagesGroup)
  
  	i := 0
  	for _, v := range groups {
  		for _, page := range v.Pages {
  			if i == index {
  				return page, nil
  			}
  			i++
  		}
  	}
  	return nil, nil
  }
docs: // page returns the Page with the given index