code: func (v *visitor) push(val reflect.Value) bool {
  	ptr := val.Pointer()
  	v.L.RawGeti(lua.LUA_REGISTRYINDEX, v.index)
  	v.L.RawGeti(-1, int(ptr))
  	if v.L.IsNil(-1) {
  		// Not visited.
  		v.L.Pop(2)
  		return false
  	}
  	v.L.Replace(-2)
  	return true
  }
docs: // Push visited value on top of the stack.
  // If the value was not visited, return false and push nothing.