// SetFromValue creates a set containing every leaf field mentioned in v. func SetFromValue(v value.Value) *Set { … } type objectWalker … func (w *objectWalker) walk() { … } var AssociativeListCandidateFieldNames … // GuessBestListPathElement guesses whether item is an associative list // element, which should be referenced by key(s), or if it is not and therefore // referencing by index is acceptable. Currently this is done by checking // whether item has any of the fields listed in // AssociativeListCandidateFieldNames which have scalar values. func (w *objectWalker) GuessBestListPathElement(index int, item value.Value) PathElement { … }