code: func indirectInterface(v reflect.Value) reflect.Value {
  	if v.Kind() != reflect.Interface {
  		return v
  	}
  	if v.IsNil() {
  		return reflect.Value{}
  	}
  	return v.Elem()
  }
docs: // Based on: https://github.com/golang/go/blob/178a2c42254166cffed1b25fb1d3c7a5727cada6/src/text/template/exec.go#L931