code: func string__concat(L *lua.State) int {
  	v1, t1 := luaToGoValue(L, 1)
  	v2, t2 := luaToGoValue(L, 2)
  	s1 := valueToString(L, v1)
  	s2 := valueToString(L, v2)
  	result := s1 + s2
  
  	if t1 == t2 || isPredeclaredType(t2) {
  		v := reflect.ValueOf(result)
  		makeValueProxy(L, v.Convert(t1), cStringMeta)
  	} else if isPredeclaredType(t1) {
  		v := reflect.ValueOf(result)
  		makeValueProxy(L, v.Convert(t2), cStringMeta)
  	} else {
  		L.PushString(result)
  	}
  
  	return 1
  }
docs: // Lua accepts concatenation with string and number.