code: func (m *Mapper) TraversalsByNameFunc(t reflect.Type, names []string, fn func(int, []int) error) error {
  	t = Deref(t)
  	mustBe(t, reflect.Struct)
  	tm := m.TypeMap(t)
  	for i, name := range names {
  		fi, ok := tm.Names[name]
  		if !ok {
  			if err := fn(i, nil); err != nil {
  				return err
  			}
  		} else {
  			if err := fn(i, fi.Index); err != nil {
  				return err
  			}
  		}
  	}
  	return nil
  }
docs: // TraversalsByNameFunc traverses the mapped names and calls fn with the index of
  // each name and the struct traversal represented by that name. Panics if t is not
  // a struct or Indirectable to a struct. Returns the first error returned by fn or nil.